平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现_第1页
平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现_第2页
平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现_第3页
平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现_第4页
平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、必籲懐7塞乂厚(威海)HARBININSTITUEOFTECHNOLOGYATWE1HAI激光原理课程设计题目:方形镜平行平面腔自再现模Fox-Li数值迭代解法及MATLAB实现院系理学院专业班级0910101学生姓名指导教师提交日期2012年4月15日激光原理课程设计激光原理课程设计四、五、六、设计目的1设计要求和设计指标1设计内容13.1Fox-Li平行平面腔的迭代解法132matlab实现33.2.1迭代解法的过程33.2.2实现43.2.3自再现模形成的判断63.3GUI界面的制作8 HYPERLINK l bookmark20本设计改进建议9设计感想主要参考文献附录激光原理课程设计

2、一设计目的为了加深对激光原理中Fox-Li平行平面腔的迭代解法的理解,学习matlab的使用,锻炼运用数值方法解决专业问题的能力。二、设计要求和设计指标在matlab用Fox-Li平行平面腔的迭代解法求得激光器腔镜面上的光场分布。求出距离镜面中点为x处的光场的振幅A和相位P,并作出二维图像。在得出的一维图像的基础上作出镜面上光强的二维分布。三、设计内容3.1Fox-Li平行平面腔的迭代解法谐振腔是激光器必备条件之一,它使激光反复通过增益物质,从而实现光的自激振荡。在激光的发展史上最早提出的是平行平面腔,乂称为FP腔,它由两块平行平面反射镜组成,第一台红宝石激光器的谐振腔就是用它来做成的。对于开

3、放式光腔,镜面上稳态场分布的形成可以看成是光在两个界面间往返传播的结果。因此,两个界面上的场必然是互相关联的:一个镜面上的场可以视为由另一个镜面上的场所产生,于是求解镜面上稳态场的分布问题就归结为求解一个积分方程。考虑在开腔中往返传播的一列波。设初始时刻在镜I上有某一个场分布“1,则当波在腔中经第一次渡越而到达镜II时,将在镜II上形成一个新的场分布“2,场“2经第二次渡越后乂将在镜I上形成一个新的场分布“3。每次渡越时,波都将因为衍射损失一部分能量,并引起能量分布变化,如此重复下去由于衍射主要是发生在镜的边缘附近,因此在传播过程中,镜边缘附近的场将衰落得更快,经多次衍射后所形成的场分布,其边

4、缘振幅往往都很小(与中心处比较),具有这种特征的场分布受衍射的影响也将比较小。可以预期:在经过足够多次渡越之后,能形成这样一种稳态场:分布不再受衍射的影响,在腔内往返一次后能够“再现”出发时的场分布,即实现了模的“自再现”,具体过程图1所示:图1开腔中自再现模的形成光学中的惠更斯一菲涅尔原理是从理论上分析衍射问题的基础,该原理的严格数学表示是菲涅尔一基尔霍夫衍射积分。设己知空间任意曲面S上光波场地振幅和相位分布函数为(/,/),由它所要考察的空间任一点P处场分布为“(X,),),二者之间有以下关系式:r-ikp(x,刃二ff(1+cos&)dS7tJJsp式中,。为(#$)与(匕刃连线的长度,

5、0为S面上点(玖旳处的法线和上述连线之间的夹角,力为S面上的面积元,k为波矢的模。而对于方形镜平行平面镜p=J(x_x)2+(y_y)2+芒将Q按a-xL,(y-y/L的幕级数展开,当满足a2/LA(L/a)2和夕/(厶/疔时-zml+1(ay,)1(vv,)2i一旧gf+上空eikp_e2l2l=eikLe2L2L从而得到心刃*&)严广匚咻即弋%砂AL丿一“将上式分离变量。令心y)=v(x)v(y)得到vU)=/aKxxvdx1f+bv(y)=/J_/?Kv(y,y”azn一泌、f=叫2Li-沁_)KyW)=厂叫2LAL/.80),如下图:0Z807?O7G0740730711OT12051

6、CTICOX0233?40TO2WW图中连续的30个点中纵坐标最大值和纵坐标最小值的差可以作为自再现模是否形成的标志,认为x二a/2处振幅大小基本不变了就是自再现了。由此可以写判据判断自再现模在第几次渡越形成,并以此作为循环结束的标志。下面程序中写了的判据:在x二a/2处连续的30次渡越振幅最大值与最小值之差小于eps_u=0.Olo用该判据得到渡越188次后可认为是自再现模。实现方法是这样的:设一次积分将计算steps个点,先迭代30次,用个30*steps的矩阵把这30次的结果储存下來,取出该矩阵的第steps/4列(对应x二-a/2处),判断该列最大值与最小值之差是否小于0.01,是则结

7、束判断,第30次就自再现了,否则,计算第31次的振幅,用31次的结果去覆盖矩阵中的第一行数据,再取出该矩阵的第steps/4列,判断该列最大值与最小值之差是否小于0.01,是则结束判断,第31次就自再现了,否则,计算第32次的振幅程序:clear.dcglobalstepsLkalamda=Hiput(波长lamda=,);L=mput(腔长L=?;a=mputC镜长a=,);eps_u=mput(,ln度=);k=2*pvlamda;steps=5OO;x=liiispace(-a5a,steps);u_=ones(l,steps);form=l:30forinin=l:stepsuO(mm

8、)=QU(x(mm)、u_);end;u_=uO/max(abs(uO);u30(m,:)=u0;endflag=l;%自再现标志位u30_flag=l;%判据矩阵维数标记为N=30;wliile(flag=l)ifmax(abs(u30(:,steps/4)-mm(abs(u30(:,steps/4)eps_u%steps/4为x=a/2处,判据为连续30次渡越中最大振幅减去最小振幅小于eps_uflag=O;elseN=N+1;forinin=l:stepsu0(mm)=QU(x(mm)、u_);end;u_=u0/max(abs(u0);ifu3O_flag=31u30_flag=l;激

9、光原理课程设计endu30(u3O_flagJ=uO;u30_flag=u30_flag+l;endendNsubplot(2,l,l)plot(x,abs(u0)/abs(u0(steps/2)xlabelCx);ylabelCffl对振幅?;angle_uO=angle(uO)/pi*180;angle_uO=angle_uO-angle_uO(steps/2);subplot(2,l,2)plot(x.angle.uO)xlabelCx);ylabelCffl对相位,);functionv=QU(x.u)globalstepsLkax_=liiispace(-a,a,steps);ste

10、p_length=2*a/(steps-l);y=sqn(li/L*exp(-li*k*L)*sum(exp(-li*k/2/L*(-x_+x).A2).*u)*step_length;3.3GUI界面的制作由于制作了多种图像显示方式,为了方便使用,设计了如下图的GUI界面:归一化振幅分布动态二维显示动态三维显示归一化相位分布激光原理课程设计 在GUI中可以动态地显示振幅和相位在x方向以及在镜面上相对分布。程序见附录。U!本设计改进建议激光原理课程设计 由于时间有限,只讨论了方形镜平行平面腔。而且在计算积分的时候运用了循环的嵌套,使得计算效率比较低。相位分布图像由于matlab函数问题有一段会

11、变得很大(略小于360,其实应该为0)。五、设计感想通过这个课程设计收获主要有两点:一是练习了matlab软件的使用,学会了一些用matlab做光学仿真的方法;二是更深入理解了激光谐振腔在激光器中的地位和作用,巩固了课本上的知识。六、主要参考文献周炳琨.激光原理(第六版)M北京:国防工业出版社,2009.A.GFox,TingyeLi.ResonantModesinaMaserInterferometerLj.BellSystemTechnology,1961,40:453-488附录GUI程序:functionvarargout=Laser_GUI(varargin)%LASER_GUIM-

12、fileforLaser.GUI.fig%LASER_GUI,byitself,createsanewLASER_GUIorraisestheexisting%singleton*.%H=LASER_GUIreturnstliehandletoanewLASER_GUIorthehandleto%theexistingsingleton*.%LASERGALLBACK.hObjecteventDataJiandles,.)callsthelocal%functionnamedCALLBACKinLASER_GUI.Mwiththegivenmputarguments.%LASERGUPiope

13、ny1,Value1,.)createsanewLASER_GUIorraisesthe%existingsingleton*.Startingfromtheleft,propertyvaluepaiisare%appliedtotheGUIbeforeLaser_GUI_OpeniiigFcngetscalled.An%umecognizedpiopeitynameorinvalidvaluemakespropeityapplication%stopAllinputsaiepassedtoLaser_GUI_OpenmgFcnviavaiargiii%*SeeGUIOptionsonGUID

14、ESToolsmuiu.ChooseGUIallowsonlyone激光原理课程设计%instancetomn(singleton)H.%Seealso:GUIDE,GUIDATA,GUIHANDLES%EdittheabovetexttomodifytheresponsetohelpLaser_GUI%LastModifiedbyGUIDEv2.521-Apr-201216:07:57%Begininitializationcode-DONOTEDITguLSingleton=1;gui_State=stmct(gui_Name;mfilename,.,gui_Singleton;gui_S

15、mgleton,.gui_Op亡ningFcn;Laser_GUI_OpenuigFcn,.Lasei_GUI_OutputFcn,.,);,gui_OutputFcn,guLLavoutFcngui_Callback;ifnargiii&ischai(vaia】gin1)guLState.gui_Callback=sti-2fiinc(vaiaigm1);激光原理课程设计激光原理课程设计激光原理课程设计ifnargoutvarargout1:nargout=gui_mamfcn(guLState,varaigm:);elseguLmainfcn(guLState,vaiaigm:);end%

16、Enduutializationcode-DONOTEDIT%-一ExecutesjustbeforeLaseiGUIismadevisiblefunctionLaser_GUI_OpeningFcn(hObject,eventdata,handles,vaiargin)%Thisfunctionhasnooutputaigs,seeOutputFcn.%hObjecthandletofigure%eventdatareseived-tobedefinedinafutureversionofMATLAB%handles%varargiiistiuctuiewithhandlesanduserd

17、ata(seeGUIDATA)coiniuandlmeaigumentstoLasei_GUI(seeVARARGIN)%ChoosedefaultcommandlineoutputforLaser_GUIhaiidles.output=hObject;%Updatehandlesstmctureguidata(hObject,handles);%UIWAITmakesLaser_GUIwaitforuserresponse(seeUIRESUME)%uiwait(handles.figure1);激光原理课程设计 axes(handles.axes3)LOGO=inuead(lhit.jpg

18、,);iinshow(LOGO)%Outputsfromthisfunctionarereturnedtotheconmiandline,functionvarargout=Laser_GUI_OutputFcn(hObject,eventdata,handles)%varargoutcellarrayforretuniuigoutputaigs(seeVARARGOUT);%hObjecthandletofigure%eventdatareseived-tobedefinedinafutureversionofMATLAB%handlesstiuctuiewithhandlesanduser

19、data(seeGUIDATA)%Getdefaultconmiandlineoutputfromhandlesstmcturevaiaigout1=handles.output;functionwavelengtli_Callback(hObject,eventdata,handles)%hObjecthandletowavelength(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB%handlesstiuctuiewithhandlesanduserdata(seeGUIDATA)%Hmts:get(hObje

20、ct/Strmg,)returnscontentsofwavelengthastext%sti-2double(get(hObject/Strmgf)returnscontentsofwavelengthasadouble%Executesduimgobjectcreation,aftersettmgallpiopeitiesfunctionwavelengtli_CreateFcn(hObject,eventdata,handles)%hObjecthandletowavelength(seeGCBO)%eventdatareseived-tobedefinedinafutureversio

21、nofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hmt:editcontiolsusuallyhaveawliitebackgroundonWindows.%SeeISPCandCOMPUTERifispc&isequal(get(hObject/BackgroundColor),get(0/defaultUicontrolBackgioundColof)setyiObject.BackgroundColorVwhite*);endfunctionLength_Callback(hObject,even

22、tdata,handles)%hObjecthandletoLength(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB激光原理课程设计%handlesstiuctuiewithhandlesanduserdata(seeGUIDATA)%Hmts:get(hObj亡ct,Stnng)returnscontentsofLengthastext%sti2double(get(hObject/Strmg,)returnscontentsofLengthasadouble%Executesdurmgobjectcreati

23、on,aftersettmgallpropertiesfunctionLength_CreateFcn(hObject,eventdata,handles)%hObjecthandletoLength(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hmt:editcontiolsusuallyhaveawliitebackgroundonWindows.%SeeISPCandCOMPUTERifi

24、spc&isequal(get(hObject/BackgroundColor,),get(0/defaultUicontrolBackgioundColor*)setyiObject.BackgroundColorVwhite*);endfunctionarea_Callback(hObject,eventdata,handles)%hObjecthandletoaiea(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB%handlesstiuctuiewithhandlesanduserdata(seeGUIDAT

25、A)%Hmts:get(hObj亡ct,Stnng)returnscontentsofaieaastext%sti2double(get(hObject/Strmg,)returnscontentsofareaasadouble%Executesdurmgobjectcreation,aftersettmgallpropertiesfunctionarea_CreateFcn(hObject,eventdata,handles)%hObjecthandletoaiea(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB%

26、handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hmt:editcontiolsusuallyhaveawliitebackgroundonWindows.%SeeISPCandCOMPUTERifispc&isequal(get(hObject/BackgroundColor,),get(0/defaultUicontrolBackgioundColor*)setyiObject.BackgroundColorVwhite*);endfunctiontmies_Callback(hObject,eventdata,han

27、dles)激光原理课程设计 %hObjecthandletotimes(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB%handlesstiuctuiewithhandlesanduserdata(seeGUIDATA)%Hmts:getyiObject/Stimg*)returnscontentsoftimesastext%sti2double(get(hObject/Strmg,)returnscontentsoftimesasadouble%Executesdurmgobjectcreation,afterse

28、ttmgallpiopeities.functiontmies_CieateFcn(hObject,eventdata,handles)%hObjecthandletotimes(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled%Hmt:editcontiolsusuallyhaveawliitebackgroundonWindows.%SeeISPCandCOMPUTERifispc&isequal

29、(get(hObject/BackgroundColor,),get(0/defaultUicontiolBackgroundColor*)setyiObject/BackgroundColof/white*);end%Executesonbuttonpressmpushbutton2functionpushbutton2_Callback(hObject,eventdata,handles)%hObjecthandletopushbuttoii2(seeGCBO)%eventdatareseived-tobedefinedinafutureversionofMATLAB%handlessti

30、uctuiewithhandlesanduserdata(seeGUIDATA)globalstepsLkalainda=sti-2num(get(haiidles.wavelengthJStiing,);L=sti2num(get(haiidles.Length/Stiing,);a=str2num(get(handles.aiea/Strmg,);N=str2num(get(haiidles.tunes/Strmg,);k=2*pvlamda;steps=500;x=liiispace(-a,a,steps);u_=ones(l,steps);form=l:Nfornun=l:stepsu

31、O(mm)=QU(x(mm),u_);endaxes(handles.axesl)plot(x,abs(u0)/abs(u0(steps/2)axis(-aa01.3)angle_uO=aiigle(uO)/pi*180;angle_u0=aiigle_u0-angle_u0(steps/2);axes(handles.axes2)plot(x,angle_uO)u_=uO/niax(abs(uO);end%-Executesonbuttonpressmpushbutton3functionpushbutton3_Callback(hObject,eventdata,handles)%hObjecthandletopushbutton3(seeGCBO)%eventdataeserved-tobedefinedinafutureversionofMATLAB%handles

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论