среда, 28 декабря 2011 г.

Введение эффективной оптической плёнки в Matlab

1. Формулировка задачи

  Прикладная эллипсометрия часто сталкивается с расчётами слоистых плёночных структур. Если в структуре имеется 3 или более плёнки, то методика решения, например, обратной/прямой задачи эллипсометрии должна быть универсальной, подходить для общих случаев. Оптимизация подобного рода методик часто сводится к введению эффективных элементов. 


  Одним из таких элементов может послужить сама плёнка, а точнее комплексный показатель преломления плёнки Nэф = n - i*k. При этом нужно сделать допущение, что свет падает на бесконечную плёнку. Рациональность введения Nэф объясняется тем, что структуру нескольких плёнок с Ni можно представить в виде одной плёнки c Nэф. 


  Итак, условие задачи формулируется предельно просто: дано n плёнок с Ni, найти Nэф.


2. Решение

  Вообще говоря, решение данной задачи не выходит за рамки школьного курса оптики. Понятно, что только толщина будет величиной аддитивной, показатель преломления N вычисляется с помощью закона преломления (закон Снеллиуса).

Скрипт 1. Создание класса ‘layer’

classdef layer
properties
n
k
d
end


methods

%constructor
function obj = layer(n, k, d)

obj.n = n;
obj.k = k;
obj.d = d;

end

%operator overloading
function obj = plus(obj1, obj2)


D = [obj1.d obj2.d];
N = [(obj1.n - i*obj1.k) (obj2.n - i*obj2.k)];
phi0 = pi/6;
phi = asin(sin(phi0)./N);
phi_new = atan(sum(D.*tan(phi))/sum(D));
N = sin(phi0)/sin(phi_new);

obj.n = real(N);
obj.k = -imag(N);
obj.d = sum(D);

end


function obj = mtimes(num, obj2)

obj = obj2
for t=1:(num-1)
obj = obj + obj2

end

end

end

end


Скрипт 2. Пример использования ‘layer’

%создание слоёв

l1 = layer(0.05, 0.07, 3600);
l2 = layer(0.02, 0.012, 1200);
l3 = layer(0.09, 0.01, 125);

%изменение параметров в первом слое
l1.n = 0.06;
l1.d = 720;

%получение эквивалентного
l0 = l1 + l2 + l3;

%чуть сложнее
L =(6*l1+l2) + l3;

Комментариев нет:

Отправить комментарий