Please switch off AdBlock for this webside to display it correctly (there are no ads here).
Cvičení 3 - kombinace více druhů měření
V tomto cvičení si ukážeme jak kombinovat různé druhy měření (konkrétně elipsometrii a odrazivost). Bude prezentován unkátní algoritmus
umožňující automatické vážení jednotlivých experimentálních dat, tak aby měla optimální příspěvek do sumy čtverců.
-
Vytvořte nový adresář a stáhněte si vstupní datové soubory pro odrazivost a elispometrii (vzorek X2551).
-
Pro
modelfile
vyjdeme ze cvičení 2, pouze je nutné ho rozšířit o definici elipsometrického měření.
Stále budeme nicméně používat aproximaci polonekonečného substrátu.
Elipsometrická data jsou vyjádřena jako sdružené elipsometrické parametry \(I_{\rm s}\), \(I_{\rm c}\) a \(I_{\rm n}\) tomu odpovídá funkce IsIcIn
která vrací odpovídající tři členy z Müllerovy matice měření.
Stáhnout modelfile
-
S tímto modelfilem načtěte obě měření a pomocí postupu popsaném v předchozím návodě nafitujte data.
V grapheru prohlédněte výsledek.
-
Spusťte si textový terminál a v něm textové rozhraní
newAD
. Napište příkaz informations (možné zkrátit až na tři písmena inf), který nám poskytne mimo jiné informace o průběhu posledního fitu.
Je vidět, že program našel výsledek v průběhu 17 iterací.
-
Při kombinování dat z různých výpočtů používá newAD2 pro výpočet sumy čtverců následující vzorec
$$S = \sum_m S^m f^m\text{,}$$
kde \(S^m\) je parciální suma čtverců pro jednotlivá měření (v tomto případě elipsometrie a odrazivost ve viditelné a blízké ultrafialové oblasti) a \(f^m\) je váhový faktor. Parciální sumy čtverců se spočítají jako
$$S^m = \sum_{i=1}^{N^m} (X_i^\mathrm{exp} - X_i^\mathrm{th})^2 w_i^m \text{,}$$
kde \(X_i^\mathrm{exp}\) a \(X^\mathrm{th}\) jsou měřené a teoretické hodnoty, \(w_i^m\) je inverzní hodnota čtverce odhadované chyby měřených veličin a \(N^m\) je zde počet získaných experimentálních hodnot pro dané měření.
Potom platí
$$\chi = \sqrt \frac{S}{\sum_m N^m f^m} \mathrm{,}$$
kde \(\chi\) je parametr určující celkovou shodu fitu s experimentálními daty, jedná se vlastně o normovanou sumu čtverců. Podobně můžeme vyjádřit \(\chi_m\) pro jednotlivé měření jako
$$\chi_m = \sqrt \frac{S^m}{f^m N^m} \mathrm{.}$$
Pro minimalizaci sumy čtverců je používán Levenberg-Marquardtův algoritmus.
newAD2 implementuje dva způsoby fitování kombinující více druhů dat zároveň. První model uvažuje pro každý typ měření pevný faktor \(f^m\) (ve výchozím stavu 1).
Toto nicméně není výhodné, pokud máme například dva typy měření s velmi rozdílným počtem bodů (třeba daného rozdílným krokem při měření), kdy vliv měření měřeného s větším krokem bude menší.
Druhý způsob fitování mění faktory dynamicky v průběhu fitu a volí je tak aby parciální sumy čtverců pro jednotlivá měření \(S^m\) byly konstantní.
Tímto je zaručeno, že všem typům měření bude přikládána předem cílená váha v celkové sumě.
V textovém režimu je možné zjistit různá nastavení pomocí příkazu
settings
.
Ve výchozím stavu je aktivován druhý způsob s dynamickými faktory (S equalization: on
).
newAD bohužel ve stávajícím stavu neimplementuje možnost přepínat mezi módy v grafickém rozhraní.
Pro vypnutí je potřeba v textovém režimu použít příkaz let Sequalization = off
(lze zkracovat, pokud to není v konfliku s jinými idetifikátory).
-
Příkazem info je možné zobrazit aktuální hodnoty parciálních sum čtverců faktorů \(S^m\), \(f^m\) a \(\chi_m\) (všechny tyto veličiny se také zapisují do výstupních souborů v outputu).
Ručně je možné faktory \(f^m\) měnit pomocí příkazu
factor
což má vliv na výsledek společného fitu.
Poznamenejme, že mezi nastavením faktorů a příkazem info byl spuštěn v grafickém rozhraní příkaz Fit. Stejně tak bychom v textovém rozhraní mohli napsat příkaz fit, respektive v interaktivním módu
příkaz .fit, který nám spustí fitování na pozadí a v průběhu iterací nám umožní s programem komunikovat.
-
Nastavte rozdílné faktory a podívejte se, jak moc velký vliv to hraje na výsledné hodnoty parametrů. Přepněte si zpět mód fitování do dynamického vážení faktorů jednotlivých
experimentálních dat pomocí příkazu
let Sequalization = on
. Poté si vyzkoušejte vliv cílových hodnot parciálních sum,
které můžete změnit pomocí příkazu target
,
na výsledek fitu.
-
Celý postup si můžete zopakovat také pro další SiO2 vrstvu.
Odrazivost a elipsometrie (vzorek A51).