平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.docx
- 文档编号:15082349
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:24
- 大小:328.32KB
平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.docx
《平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.docx》由会员分享,可在线阅读,更多相关《平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.docx(24页珍藏版)》请在冰点文库上搜索。
平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现
激光原理课程设计
题目:
方形镜平行平面腔自再现模Fox-Li
数值迭代解法及MATLAB实现
院系理学院
专业班级0910101
学生姓名
指导教师
提交日期2018年4月15日
、设计目地1b5E2RGbCAP
、设计要求和设计指标IplEanqFDPw
、设计内容lDXDiTa9E3d
3.1Fox-Li
3.2matlab
3.2.1
3.2.2
3.2.3
平行平面腔地迭代解法1RTCrpUDGiT
实现35PCzVD7HxA
迭代解法地过程3jLBHrnAILg
程序实现4xHAQX74J0X
自再现模形成地判断6LDAYtRyKfE
3.3GUI界面地制作8Zzz6ZB2Ltk
四、本设计改进建议9dvzfvkwMI1
五、设计感想9rqyn14ZNXI
六、主要参考文献9EmxvxOtOco
附录
一、设计目地
为了加深对激光原理中Fox-Li平行平面腔地迭代解法地理解,学习matlab地使用,
锻炼运用数值方法解决专业问题地能力.SixE2yXPq5
二、设计要求和设计指标
在matlab用Fox-Li平行平面腔地迭代解法求得激光器腔镜面上地光场分布
求出距离镜面中点为x处地光场地振幅A和相位P,并作出二维图像.在得出地一维
图像地基础上作出镜面上光强地二维分布.6ewMyirQFL
二、设计内容
3.1Fox-Li平行平面腔地迭代解法
谐振腔是激光器必备条件之一,它使激光反复通过增益物质,从而实现光地自激振荡.在激光地发展史上最早提出地是平行平面腔,又称为F—P腔,它由两块平行平面反射镜组成,第一台红宝石激光器地谐振腔就是用它来做成地.kavU42VRUs
对于开放式光腔,镜面上稳态场分布地形成可以看成是光在两个界面间往返传播地结果.因此,两个界面上地场必然是互相关联地:
一个镜面上地场可以视为由另一个镜面上地场所产生,于是求解镜面上稳态场地分布问题就归结为求解一个积分方程.y6v3ALoS89
考虑在开腔中往返传播地一列波.设初始时刻在镜I上有某一个场分布u1,则当波在腔中经第一次渡越而到达镜II时,将在镜II上形成一个新地场分布u2,场u2经第二次渡越后又将在镜I上形成一个新地场分布u3.每次渡越时,波都将因为衍射损失一部分能量,并引起能量分布变化,如此重复下去……由于衍射主要是发生在镜地边缘附近,
因此在传播过程中,镜边缘附近地场将衰落得更快,经多次衍射后所形成地场分布,其边缘振幅往往都很小<与中心处比较),具有这种特征地场分布受衍射地影响也将比较小.
可以预期:
在经过足够多次渡越之后,能形成这样一种稳态场:
分布不再受衍射地影响在腔内往返一次后能够“再现”出发时地场分布,即实现了模地“自再现”,具体过程图1所示:
M2ub6vSTnP
图1开腔中自再现模地形成
光学中地惠更斯一菲涅尔原理是从理论上分析衍射问题地基础,该原理地严格数学表示是菲涅尔一基尔霍夫衍射积分.设已知空间任意曲面S上光波场地振幅和相位分布函数为u(x;y),由它所要考察地空间任一点P处场分布为u(x,y),二者之间有以下关系式:
OYujCfmUCw
u(x,y)=ik
_Lk■?
esu(x',y'—(1cos^dS
S:
-式中,'为(x,y)与(x,y)连线地长度,B为S面上点(x,y)处地法线和上述连线之间地
夹角,ds•为S面上地面积元,k为波矢地模•而对于方形镜平行平面镜eUts8ZQVRd
j(x-x)2(y-y)2L2
将'按(x-X')/L,(y-y')/L地幕级数展开,当满足a2/L'L(L/a)2和b2/l_L(L/b)2
时
才Wx;x')2+2(yp_ikL呦(x;x')2+(y;L')2]
e=e2l2l=ee
从而得到
将上式分离变量.令
v(x,y)二v(x)v(y)
得到
^Kx(x,x')
(X_x')2
~2L-
方形镜中a二b.
3.2matlab实现
3.2.1迭代解法地过程
本文采用Fox—Li数值迭代法得到了了镜面上自再现模在x方向地分布并推广到
整个镜面,最终动态显示每次渡越镜面上光场分布.sQsAEJkW5T
虽然是复数积分,但其和实数积分实现方法相同,即取一定步长,用矩形面积地和代替函数地定积分.
F面是程序框图:
322程序实现
源程序:
clear,clcglobalstepsLkalamda=input('波长lamda='>。
L=input('腔长L='>。
a=input('镜长a='>。
N=input('渡越次数N='>。
k=2*pi/lamda。
%波失steps=500。
%步长x=linspace(-a,a,steps>。
u_=ones(1,steps>。
form=1:
N
formm=1:
stepsuO(mm>=QU(x(mm>,u_>end。
u_=uO/max(abs(uO>>。
end
subplot(2,1,1>
p-of(> y-abe-(-甜錄^昴-Vo ang-eluouang-e(uov、pi*18o°ang-eluouang-elu9ang-eluo(sCDpsK5v。 subp-of(212vp-ofxbng-eluovx-abe-(-xv。 y-abe-(-甜錄甜a-VO functionyuQUxcvg-oba-SCDPSLka xlllinspace(—aasCDpsv。 sCDpl-engfhH2*a、(sCDps匕V。 yusqrtuVL*expsi*k*LVV*sum(expsi*^2、L*(-xl+xv>2v.*uv*sCDpl-engfh 寸相位 。 GMS_asNxkA 在菲涅耳数为6.25,渡越次数为1地时候做出下图: 蹙黑规tm仪 323自再现模形成地判断 画出每次渡越在x=0.5a处地相对振幅 图中连续地30个点中纵坐标最大值和纵坐标最小值地差可以作为自再现模是否形成地标志,认为x=a/2处振幅大小基本不变了就是自再现了.由此可以写判据判断自再现模 在第几次渡越形成,并以此作为循环结束地标志.下面程序中写了地判据: 在x=a/2处 连续地30次渡越振幅最大值与最小值之差小于eps_u=0.01.用该判据得到渡越188次 后可认为是自再现模.实现方法是这样地: 设一次积分将计算steps个点,先迭代30次, 用个30*steps地矩阵把这30次地结果储存下来,取出该矩阵地第steps/4列<对应x=-a/2处),判断该列最大值与最小值之差是否小于0.01,是则结束判断,第30次就自再 现了,否则,计算第31次地振幅,用31次地结果去覆盖矩阵中地第一行数据,再取出该矩阵地第steps/4列,判断该列最大值与最小值之差是否小于0.01,是则结束判断,第 31次就自再现了,否则,计算第32次地振幅……TIrRGchYzg 程序: clear,clc globalstepsLka lamda=input('波长lamda='>。 L=input('腔长L='>。 a=input('镜长a='>。 eps_u=input('精度='>。 k=2*pi/lamda。 steps=500。 x=linspace(-a,a,steps>。 u_=ones(1,steps>。 form=1: 30 formm=1: steps uO(mm>=QU(x(mm>,u_>。 end。 u_=u0/max(abs(u0>>。 u30(m,: >=u0。 end flag=1o%自再现标志位 u30_flag=1。 %判据矩阵维数标记为 N=30。 while(flag==1> ifmax(abs(u30(: steps/4>»-min(abs(u30(: steps/4>>> flag=0。 else N=N+1。 formm=1: steps u0(mm>=QU(x(mm>,u_>。 end。 u_=u0/max(abs(u0>>。 ifu30_flag==31 u30_flag=1。 10 □ x1C4 3.3GUI界面地制作 由于制作了多种图像显示方式,为了方便使用,设计了如下图地GUI界面: 归一化振幅分布 腔辰申呵 15820 归一化相位分布 在GUI中可以动态地显示振幅和相位在x方向以及在镜面上相对分布.程序见附录. 四、本设计改进建议 由于时间有限,只讨论了方形镜平行平面腔•而且在计算积分地时候运用了循环地 嵌套,使得计算效率比较低•相位分布图像由于matlab函数问题有一段会变得很大<略 小于360,其实应该为0).zvpgeqJIhk 通过这个课程设计收获主要有两点: 一是练习了matlab软件地使用,学会了一些用matlab做光学仿真地方法;二是更深入理解了激光谐振腔在激光器中地地位和作用,巩 固了课本上地知识.NrpoJac3v1 六、主要参考文献 [1]周炳琨•激光原理(第六版>[M].北京: 国防工业出版社,2009. [2]A.GFox,TingyeLi.ResonantModesinaMaserInterferometer. [J].BellSystemTechnology,1961,40: 453-488.1nowfTG4KI GUI程序: functionvarargout=Laser_GUI(varargin> %LASER_GUIM-fileforLaser_GUI.fig %LASER_GUI,byitself,createsanewLASER_GUIorraisestheexistingfjnFLDa5Zo %singleton*. % %H=LASER_GUIreturnsthehandletoanewLASER_GUIorthehandletotfnNhnE6e5 %theexistingsingleton*. % %LASER_GUI('CALLBACK',hObject,eventData,handles,...>callsthelocalHbmVN777sL %functionnamedCALLBACKinLASER_GUI.Mwiththegiveninputarguments.V7l4jRB8Hs % %LASER_GUI('Property','Value',...>createsanewLASER_GUIorraisesthe83lcPA59W9 %existingsingleton*.Startingfromtheleft,propertyvaluepairsaremZkklkzaaP %appliedtotheGUIbeforeLaser_GUI_OpeningFcngetscalled.AnAVktR43bpw %unrecognizedpropertynameorinvalidvaluemakespropertyapplicationORjBnOwcEd %stop.AllinputsarepassedtoLaser_GUI_OpeningFcnviavarargin.2MiJTy0dTT %%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyonegIiSpiue7A %instaneetorun(singleton>". % %Seealso: GUIDE,GUIDATA,GUIHANDLES %EdittheabovetexttomodifytheresponsetohelpLaser_GUIuEh0U1Yfmh %LastModifiedbyGUIDEv2.521-Apr-201816: 07: 57 %Begininitializationcode-DONOTEDIT gui_Singleton=1。 gui_State=struct('gui_Name',mfilename,...IAg9qLsgBX 'gui_Singleton',gui_Singleton,… 'gui_OpeningFcn',@Laser_GUI_OpeningFcn,… 'gui_OutputFcn',@Laser_GUI_OutputFcn,... 'gui_LayoutFcn',[],... 'gui_Callback',[]>。 ifnargin&&ischar(varargin{1}> gui_State.gui_Callback=str2func(varargin{1}>。 end ifnargout [varargout{1: nargout}]=gui_mainfcn(gui_State,varargin{: }>。 WwghWvVhPE else gui_mainfen(gui_State,varargin{: }>。 end %Endinitializationcode-DONOTEDIT %---ExecutesjustbeforeLaser_GUIismadevisible.asfpsfpi4k functionLaser_GUI_OpeningFcn(hObject,eventdata,handles,varargin>ooeyYZTjj1 %Thisfunctionhasnooutputargs,seeOutputFcn. %hObjecthandletofigure %eventdatareserved-tobedefinedinafutureversionofMATLABBkeGuInkxI %handlesstructurewithhandlesanduserdata(seeGUIDATA>PgdO0sRlMo %varargincommandlineargumentstoLaser_GUI(seeVARARGIN>3cdXwckm15 %ChoosedefaultcommandlineoutputforLaser_GUI handles.output=hObject。 %Updatehandlesstructure guidata(hObject,handles>。 %UIWAITmakesLaser_GUIwaitforuserresponse(seeUIRESUME>h8c52WOngM%uiwait(handles.figure1>。 axes(handles.axes3> LOGO=imread('hit.jpg'> imshow(LOGO> %---Outputsfromthisfunctionarereturnedtothecommandline.v4bdyGiousfunctionvarargout=Laser_GUI_OutputFcn(hObject,eventdata,handles>J0bm4qMpj9%varargoutcellarrayforreturningoutputargs(seeVARARGOUT〉。 xvauA9grYP%hObjecthandletofigure %eventdatareserved-tobedefinedinafutureversionofMATLABbR9C6TJscw %handlesstructurewithhandlesanduserdata(seeGUIDATA>pN9LBDdtrd %GetdefaultcommandlineoutputfromhandlesstructureDJ8T7nHuGTvarargout{1}=handles.output。 functionwavelength_Callback(hObject,eventdata,handles>QF81D7bvUA %hObjecthandletowavelength(seeGCBO> %eventdatareserved-tobedefinedinafutureversionofMATLAB4B7a9QFw9h %handlesstructurewithhandlesanduserdata(seeGUIDATA>ix6iFA8xoX %Hints: get(hObject,'String'>returnscontentsofwavelengthastextwt6qbkCyDE %str2double(get(hObject,'String'»returnscontentsofwavelengthasadoubleKp5zH46zRk %---Executesduringobjectcreation,aftersettingallproperties.Yl4HdOAA6i functionwavelength_CreateFcn(hObject,eventdata,handles>ch4PJx4Bl1 %hObjecthandletowavelength(seeGCBO> %eventdatareserved-tobedefinedinafutureversionofMATLABqd3YfhxCzo %handlesempty-handlesnotcreateduntilafterallCreateFcnscalledE836L11DO5 %Hint: editcontrolsusuallyhaveawhitebackgroundonWindows.S42ehLvE3M %SeeISPCandCOMPUTER. 501nNvZFis ifispc&&isequal(get(hObject,'BackgroundColor'〉,get(0,'defaultUicontrolBackgroundColor'>>set(hObject,'BackgroundColor','white'>。 endfunctionLength_Callback(hObject,eventdata,handles>jW1viftGw9 %hObjecthandletoLength(seeGCBO> %eventdatareserved-tobedefinedinafutureversionofMATLABxSCidoywhlp %handiesstructurewithhandiesanduserdata(seeGUIDATA>LOZMkIqI0w %Hints: get(hObject,'String'>returnscontentsofLengthastextZKZUQsUJed %str2double(get(hObject,'String'»returnscontentsofLengthasadoubledGY2mcoKtT %---Executesduringobjectcreation,aftersettingallproperties.rCYbSWRLIA functionLength_CreateFcn(hObject,eventdata,handles>FyXjoFiMWh %hObjecthandletoLength(seeGCBO> %eventdatareserved-tobedefinedinafutureversionofMATLABTuWrUpPObx %handlesempty-handlesnotcreateduntilafterallCreateFcnscalled7qWAq9jPqE %Hint: editcontrolsusuallyhaveawhitebackgroundonWindows.llVIWTNQFk %SeeISPCandCOMPUTER. ifispc&&isequal(get(hObject,'BackgroundColor'〉, get(0,'defaultUicontrolBackgroundColor'»yhUQsDgR" set(hObject,'BackgroundColor','white'>。 endfunctionarea_Callback(hObject,eventdata,handles>MdUZYnKS8I %hObjecthandletoarea(seeGCBO> %eventdatareserved-tobedefinedinafutureversionofMATLAB09T7t6eTno %handlesstructurewithhandlesanduserdata(seeGUIDATA>e5TfZQIUB5 %Hints: get(hObject,'String'>returnscontentsofareaastexts1SovAcVQM %str2double(get(hObject,'String'»returnscontentsofareaasadoubleGXRw1kFW5s %---Executesduringobjectcreation,aftersettingallproperties.UTREx49Xj9 functiona
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 平行 平面 再现 FoxLi 数值 解法 MATLAB 实现