基于matlab的光学薄膜特性分析,基于matlab的光学薄膜特性分析.doc

基于matlab的光学薄膜特性分析.doc

目录 1 技术指标 1 2 基本原理 1 2.1 单层光学薄膜 1 2.2 多层光学薄膜及矩阵理论 2 3 基于 matlab 的光学薄膜特性分析 . 4 4 结论 9 5 参考文献 9 6 附录基于 matlab 的光学薄膜特性分析源程序代码 10 武汉理工大学能力拓展训练报告书 1 基于 matlab 的光学薄膜特性分析 1 技术指标 对 光学薄膜的理论进行分析,从电磁理论出发分析单层膜和多层膜的反射和透射率特性;并分析各参数对其光学性能的影响; 运 用 Matlab 对单层介质 薄膜和多层介质薄膜的光学特性 进行仿真;编写可用于一般多层膜的图形用户界面,并利用该程序对几种典型的薄膜系统进行验证。 2 基本原理 光射到任何一个光学零件的表面上都要发生反射和折射 ,不同的光学系统对反射率和透射率有不同的要求 .对于透射成像的光学系统 ,反射不仅降低了透过光学系统的能量 ,而且造成杂散光 ,降低系统的成像清晰度 .而对于一个有多个镜片的光学系统 ,其反射损失更为可观 .为了降低反射损失 ,需要在镜片上镀光学薄膜 ,是每个光学面的反射损失都降到约等于百分之一 ,甚至更小。 薄膜光学发展至今,已经形成一套比较完整的实用理论。本文将利用多光束的 干涉理论和矩阵理论,并运用 matlab 对薄膜光学系统的光学性质做简要分析。 2.1 单层光学薄膜 折射率为gn的光学基底上镀上一层厚度为 h ,折射率为 n 的透明薄膜,就构成典型的单层光学薄膜结构。薄膜可以看成一块平行薄板,光在这个薄板上下表面发射和透射的光叠加将会发生多光束干涉。利用已有的结果,可得反射光叠加后的合震动的复振幅 021 211 EerrerrEii ( 2-1-1) 式中, 1r 是薄膜表面上的反射振幅比, 2r 是下表面的反射振幅比, 是两相邻光束之间的相位差 nh22 ( 2-1-2) 武汉理工大学能力拓展训练报告书 2 而反射率 2221212221210*c o s21c o s2rrrrrrrrEEER ( 2-1-3) 且透射率和反射率的关系 1RT 。 2.2 多层光学薄膜及矩阵理论 图( a) 两个界面的多膜系统 下面根据电磁理论分析 在界面 1 2 22111111 21111c osc osc osc os iritiriirtriHHHHHEEEEE ( 2-2-1) 由电磁场与电磁波 H 与 E 的关系 EeHz 得 EH , 取 0 则 21 21001011001 c osc os irtiri nEEnEEH ( 2-2-2) 在界面 2 220021220022222c o sc o s tGtiritrinEnEEHEEEE ( 2-2-3) 在不考虑薄膜对 光能的吸收时, 12 EtiE 和 , 2 2 ErrE 和 的关系如下 0nGn1n 武汉理工大学能力拓展训练报告书 3 122112ex pex piEEiEErrti ( 2-2-4) 平面波通过薄膜一次 A,B 两点的位相变化2111 c os2 ihn 。 2100211212112c o se x p e x p e x p e x p 1 irtrtniEiEHiEiEE( 2-2-5) 21001222212211c o s2e x p 2e x p irtnHEiEHEiE( 2-2-6) c o s s ins inc o s121121112121iHiEHiHEEt ( 2-2-7) 写成矩阵形式 波)(对波)对Pc o sSc o sc o s2c o ss ins inc o s210012100121112211111111iiinnhnHEiiHE( 2-2-8) 当膜系包含 N 层膜时,则有 112111 . NNN HEMMMHE( 2-2-9) 整个膜系的特征矩阵 NMMMM .21 。 令 M 的矩阵元为 A,B,C,D 即 DC BAM,则 武汉理工大学能力拓展训练报告书 4 1111 NNHEDC BAHE( 2-2-10) 膜系反射系数 GGGGir DCBA DCBAEEr 000011 ( 2-2-11) 膜系透 射系数 GG DCBAt 0002 ( 2-2-12) 反射率 rrR ,透 射率 ttT 。 由两种不同介电常数( ,AB)和厚度( ,ABdd)的电磁材料所组成的一维周期性光学薄膜结构。利用传输矩阵计算光在介质薄膜。 图( b)一维周期性光学薄膜结构 本文中所选取的色散材料,如 11,12, LiF(模型中的 A 层)的折射率在 1.25 2.35 m范围内的关系为 2 2 41 . 3 8 7 6 1 0 . 0 0 1 7 9 6 0 . 0 0 0 4 1 0 . 0 0 2 3 0 4 5 0 . 0 0 0 0 0 5 5 7An L L Si(模型中的 B 层)的折射率在同一波段为 2 2 43 . 4 1 6 9 6 0 . 1 3 8 4 9 7 0 . 0 1 3 9 2 4 0 . 0 0 0 0 2 0 9 0 . 0 0 0 0 0 0 148Bn L L 其中 21 / 0 .0 2 8L 。 在本课程设计中取 m 5.1 ,则 bn1.3831,an 3.4770。 3 基于 matlab 的光学薄膜特性分析 matlab是一种以矩阵运算为基础的交互式程序语言,广泛应用于自动控制、数学运算、信号分析、航天工业和绘图等各行各业本文使用 Matlab计算膜系特征矩阵,进行数值的武汉理工大学能力拓展训练报告书 5 运算 仿真 研究与验证 。 仿真模拟的光学特性 matlab程序 见附录。 图( c) 光学特性分析的 GUI交互界面 图 d 单膜反射率和透射率与入射波长的关系(正入射) 武汉理工大学能力拓展训练报告书 6 图 e 单膜反射率和透射率与入射波长的关系(斜入射) 图 f 多膜反射率和透射率与入射波长的关系(正入射) 武汉理工大学能力拓展训练报告书 7 图 g 单膜反射率和透射率与入射波长的关系(斜入射) 图中,纵坐标表示反射率和透射率,其中,红实线表示反射率,蓝虚线表示透射率,二者之和等于 1。横坐标则表示入射光的波长 ( um) 。 从图中分别对比分析知, 对于一个介 质折射率和厚度固定等参数固定的薄膜系统,其反射率或透射率达到最大值的时候所对应的这一固定波长称为中心波长,当入射光偏离中心波长的时候,其反射率必定会相应的下降,因此,每一种具体的膜系,只对一定波长范围的光波才能有反射率。以上各图反射率最大值(接近于 1)时所对应的波长范围称为反射带的宽度。 武汉理工大学能力拓展训练报告书 8 图( h) 8层膜 偶数 系反射率和透射率与波长的关系 图( i) 9层膜(奇数)系反射率和透射率与波长的关系 从上面两个图对比可知,在同一波长情况下,奇数层膜的反射率要比偶数层 反射率略高。这是因 为,膜系第一层的折射率高于第二层折 射率,如果膜系为奇数层,那武汉理工大学能力拓展训练报告书 9 么最后一层的折射率也是高反射率层。层数为 12 m 时,1204-1mnnR 。 犹豫mm nn 212 ,故可以获得更高的反射率。反之,膜系为偶数层时,达不到增加反射率的目的。 4 结论 由上述的计算公式可知,光学薄膜的特性计算在引入矩阵 理论 后成为一个相对简单的问题,只要给定每一层膜系的参数,多层膜就可以利用矩阵的连乘方便地求出在每一特定入射角和波长下的透射率、反 射率等参数许多计算机软件的出现,能方便进行自动数值计算,如 matlab软件的应用,不仅能计算并保存数据,而且更好地调用资源,作图、仿真模拟使得研究清晰明了,易于操作理解,为光学薄膜的研究提供了有利的计算工具因此,计算机软件的应用促进了光学薄膜的发展,它与传统的理论研究相辅相成,是理论应用与实践的有力保障,使光学薄膜的发展迈上了新的台阶光学薄膜已经在光学技术发展的历史中创造了光辉的成绩,如今广泛地渗透到各个新型的科技领域各种新型微结构的功能薄膜正在不断开发出来,并造福于人类 5 参考文献 1 廖延彪 .光学原理与应用 .电子工业出版社 .2006.10 2 蒙庆华,梁志铭 ,郑荣江 . Matlab环境下多层光学薄膜的数值计算 .广西师范学院学报 .2010.09;27-03 武汉理工大学能力拓展训练报告书 10 6 附录基于 matlab 的光学薄膜特性分析源程序代码 function varargout untitledvarargin UNTITLED M-file for untitled.fig UNTITLED, by itself, creates a new UNTITLED or raises the existing singleton*. H UNTITLED returns the handle to a new UNTITLED or the handle to the existing singleton*. UNTITLEDCALLBACK,hObject,eventData,handles,. calls the local function named CALLBACK in UNTITLED.M with the given arguments. UNTITLEDProperty,Value,. creates a new UNTITLED or raises the existing singleton*. Starting from the left, property value pairs are applied to the GUI before untitled_OpeningFunction gets called. An unrecognized property name or invalid value makes property application stop. All s are passed to untitled_OpeningFcn via varargin. *See GUI Options on GUIDEs Tools menu. Choose “GUI allows only one instance to run singleton“. See also GUIDE, GUIDATA, GUIHANDLES Copyright 2002-2003 The MathWorks, Inc. Edit the above text to modify the response to help untitled Last Modified by GUIDE v2.5 25-Aug-2011 125011 Begin initialization code - DO NOT EDIT gui_Singleton 1; gui_State structgui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, untitled_OpeningFcn, . gui_OutputFcn, untitled_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ; if nargin end if nargout varargout1nargout gui_mainfcngui_State, varargin; 武汉理工大学能力拓展训练报告书 11 else gui_mainfcngui_State, varargin; end End initialization code - DO NOT EDIT - cutes just before untitled is made visible. function untitled_OpeningFcnhObject, eventdata, handles, varargin This function has no output args, see OutputFcn. hObject handle to figure eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA varargin command line arguments to untitled see VARARGIN Choose default command line output for untitled handles.output hObject; Update handles structure guidatahObject, handles; UIWAIT makes untitled wait for user response see UIRESUME uiwaithandles.figure1; - Outputs from this function are returned to the command line. function varargout untitled_OutputFcnhObject, eventdata, handles varargout cell array for returning output args see VARARGOUT; hObject handle to figure eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA Get default command line output from handles structure varargout1 handles.output; function edit1_CallbackhObject, eventdata, handles hObject handle to edit1 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA Hints gethObject,String returns contents of edit1 as text str2doublegethObject,String returns contents of edit1 as a double str2numgethObject,String; if isempty sethObject,String,0 end guidatahObject, handles; 武汉理工大学能力拓展训练报告书 12 - cutes during object creation, after setting all properties. function edit1_CreateFcnhObject, eventdata, handles hObject handle to edit1 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles empty - handles not created until after all CreateFcns called Hint edit controls usually have a white background on Windows. See ISPC and COMPUTER. if ispc sethObject,BackgroundColor,white; else sethObject,BackgroundColor,get0,defaultUicontrolBackgroundColor; end function edit2_CallbackhObject, eventdata, handles hObject handle to edit2 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA Hints gethObject,String returns contents of edit2 as text str2doublegethObject,String returns contents of edit2 as a double str2numgethObject,String; if isempty sethObject,String,0 end guidatahObject, handles; - cutes during object creation, after setting all properties. function edit2_CreateFcnhObject, eventdata, handles hObject handle to edit2 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles empty - handles not created until after all CreateFcns called Hint edit controls usually have a white background on Windows. See ISPC and COMPUTER. if ispc sethObject,BackgroundColor,white; else sethObject,BackgroundColor,get0,defaultUicontrolBackgroundColor; end function edit3_CallbackhObject, eventdata, handles hObject handle to edit3 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA Hints gethObject,String returns contents of edit3 as text 武汉理工大学能力拓展训练报告书 13 str2doublegethObject,String returns contents of edit3 as a double str2numgethObject,String; if isempty sethObject,String,0 end guidatahObject, handles; - cutes during object creation, after setting all properties. function edit3_CreateFcnhObject, eventdata, handles hObject handle to edit3 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles empty - handles not created until after all CreateFcns called Hint edit controls usually have a white background on Windows. See ISPC and COMPUTER. if ispc sethObject,BackgroundColor,white; else sethObject,BackgroundColor,get0,defaultUicontrolBackgroundColor; end function edit4_CallbackhObject, eventdata, handles hObject handle to edit4 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA Hints gethObject,String returns contents of edit4 as text str2doublegethObject,String returns contents of edit4 as a double str2numgethObject,String; if isempty sethObject,String,0 end guidatahObject, handles; - cutes during object creation, after setting all properties. function edit4_CreateFcnhObject, eventdata, handles hObject handle to edit4 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles empty - handles not created until after all CreateFcns called Hint edit controls usually have a white background on Windows. See ISPC and COMPUTER. if ispc sethObject,BackgroundColor,white; else 武汉理工大学能力拓展训练报告书 14 sethObject,BackgroundColor,get0,defaultUicontrolBackgroundColor; end function edit5_CallbackhObject, eventdata, handles hObject handle to edit5 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA Hints gethObject,String returns contents of edit5 as text str2doublegethObject,String returns contents of edit5 as a double str2numgethObject,String; if isempty sethObject,String,0 end guidatahObject, handles; - cutes during object creation, after setting all properties. function edit5_CreateFcnhObject, eventdata, handles hObject handle to edit5 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles empty - handles not created until after all CreateFcns called Hint edit controls usually have a white background on Windows. See ISPC and COMPUTER. if ispc sethObject,BackgroundColor,white; else sethObject,BackgroundColor,get0,defaultUicontrolBackgroundColor; end function edit6_CallbackhObject, eventdata, handles hObject handle to edit6 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA Hints gethObject,String returns contents of edit6 as text str2doublegethObject,String returns contents of edit6 as a double str2numgethObject,String; if isempty sethObject,String,0 end guidatahObject, handles; - cutes during object creation, after setting all properties. function edit6_CreateFcnhObject, eventdata, handles 武汉理工大学能力拓展训练报告书 15 hObject handle to edit6 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles empty - handles not created until after all CreateFcns called Hint edit controls usually have a white background on Windows. See ISPC and COMPUTER. if ispc sethObject,BackgroundColor,white; else sethObject,BackgroundColor,get0,defaultUicontrolBackgroundColor; end - cutes on button press in pushbutton1. function pushbutton1_CallbackhObject, eventdata, handles hObject handle to pushbutton1 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA 以下为计算模拟输出的主程序 n01; n1 gethandles.edit1,String; n1str2numn1; n2gethandles.edit2,String; n2str2numn2; ngethandles.edit6,String; nstr2numn; theta1gethandles.edit5,String; theta1str2numtheta1; d1gethandles.edit4,String; d1str2numd1; d1d1*1e-6; d2gethandles.edit3,String; d2str2numd2; d2d2*1e-6; for lambda12502350; theta2asinn0*sintheta1/n1; theta3asinn0*sintheta2/n2; delta12*pi*n1*d1/costheta1/lambda*1e9; delta22*pi*n2*d2/costheta2/lambda*1e9; msqrt144*pi2*100; eta0n0*costheta1/m; eta1n1*costheta2/m; eta2n2*costheta3/m; M11cosdelta1; M12-1i*sindelta1/eta1; M13-1i*eta1*sindelta1; M14cosdelta1; 武汉理工大学能力拓展训练报告书 16 M1M11,M12;M13,M14; M21cosdelta2; M22-1i*sindelta2/eta2; M23-1i*eta2*sindelta2; M24cosdelta2; M2M21,M22;M23,M24; MM1*M2; MMn; AM1,1; BM1,2; CM2,1; DM2,2; rA*eta0B*eta02-C-D*eta0/A*eta0B*eta02CD*eta0; Rr*r Tt*t k1,sR; g1,sT; end lambda12502350; axeshandles.axes1; plotlambda,k,r,lambda,g,-.b; guidatahObject, handles; - cutes on button press in pushbutton3. function pushbutton3_CallbackhObject, eventdata, handles hObject handle to pushbutton3 see GCBO eventdata reserved - to be defined in a future version of MATLAB handles structure with handles and user data see GUIDATA value1gethandles.edit1,string; sethandles.edit1,string,; value1gethandles.edit2,string; sethandles.edit2,string,; value1gethandles.edit6,string; sethandles.edit6,string,; value1gethandles.edit3,string; sethandles.edit3,string,; value1gethandles.edit4,string; sethandles.edit4,string,; value1gethandles.edit5,string; sethandles.edit5,string,; 注此程序包含 GUI的运用框架结构。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值