平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.pdf

上传人:tbuqq 文档编号:4649288 上传时间:2019-11-24 格式:PDF 页数:17 大小:871.37KB
返回 下载 相关 举报
平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.pdf_第1页
第1页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.pdf》由会员分享,可在线阅读,更多相关《平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现.pdf(17页珍藏版)》请在三一文库上搜索。

1、激光原理课程设计 题目:方形镜平行平面腔自再现模Fox-Li 数值迭代解法及 MATLAB 实现 院系理学院 专业班级 0910101 学生姓名 指导教师 提交日期2018年4 月15 日 目录 一、设计目地1b5E2RGbCAP 二、设计要求和设计指标1p1EanqFDPw 三、设计内容1DXDiTa9E3d 3.1 Fox-Li平行平面腔地迭代解法1RTCrpUDGiT 3.2 matlab实现 35PCzVD7HxA 3.2.1 迭代解法地过程3jLBHrnAILg 3.2.2 程序实现4xHAQX74J0X 3.2.3 自再现模形成地判断6LDAYtRyKfE 3.3 GUI 界面地制

2、作8Zzz6ZB2Ltk 四、本设计改进建议9dvzfvkwMI1 五、设计感想9rqyn14ZNXI 六、主要参考文献9EmxvxOtOco 附录 一、设计目地 为了加深对激光原理中Fox-Li 平行平面腔地迭代解法地理解, 学习 matlab 地使用 , 锻炼运用数值方法解决专业问题地能力.SixE2yXPq5 二、设计要求和设计指标 在 matlab 用 Fox-Li 平行平面腔地迭代解法求得激光器腔镜面上地光场分布. 求出距离镜面中点为x 处地光场地振幅 A和相位 P,并作出二维图像 . 在得出地一维 图像地基础上作出镜面上光强地二维分布.6ewMyirQFL 三、设计内容 3.1 F

3、ox-Li平行平面腔地迭代解法 谐振腔是激光器必备条件之一, 它使激光反复通过增益物质, 从而实现光地自激振 荡. 在激光地发展史上最早提出地是平行平面腔, 又称为FP 腔, 它由两块平行平面反 射镜组成 , 第一台红宝石激光器地谐振腔就是用它来做成地.kavU42VRUs 对于开放式光腔 , 镜面上稳态场分布地形成可以看成是光在两个界面间往返传播地 结果. 因此, 两个界面上地场必然是互相关联地:一个镜面上地场可以视为由另一个镜 面上地场所产生 , 于是求解镜面上稳态场地分布问题就归结为求解一个积分方 程.y6v3ALoS89 考虑在开腔中往返传播地一列波. 设初始时刻在镜 I 上有某一个场

4、分布 1u , 则当波 在腔中经第一次渡越而到达镜II 时, 将在镜 II上形成一个新地场分布2u, 场2u经第二 次渡越后又将在镜I 上形成一个新地场分布3u. 每次渡越时 , 波都将因为衍射损失一部 分能量 , 并引起能量分布变化 , 如此重复下去由于衍射主要是发生在镜地边缘附近, 因此在传播过程中 , 镜边缘附近地场将衰落得更快, 经多次衍射后所形成地场分布, 其边 缘振幅往往都很小 。 L=input( 腔长 L= 。 a=input(镜长 a=。 N=input( 渡越次数N=。 k=2*pi/lamda 。 %波失 steps=500。 %步长 x=linspace(-a,a,st

5、eps。 u_=ones(1,steps。 for m=1:N for mm=1:steps u0(mm=QU(x(mm,u_。 end。 u_=u0/max(abs(u0 。 end subplot(2,1,1 plot(x,abs(u0/abs(u0(steps/2 xlabel(x 。ylabel(相对振幅 。 angle_u0=angle(u0/pi*180 。 angle_u0=angle_u0-angle_u0(steps/2。 subplot(2,1,2 plot(x,angle_u0 xlabel(x 。ylabel(相对相位 。 function y=QU(x,u globa

6、l steps L k a x_=linspace(-a,a,steps。 step_length=2*a/(steps-1 。 y=sqrt(1i/L*exp(-1i*k*L*sum(exp(-1i*k/2/L*(-x_+x.2.*u*step_length。GMsIasNXkA 在菲涅耳数为 6.25, 渡越次数为 1 地时候做出下图: 在菲涅耳数为 6.25, 渡越次数为 1 地时候做出下图: 3.2.3 自再现模形成地判断 画出每次渡越在 x=0.5a 处地相对振幅 80 ), 如下图: 图中连续地 30 个点中纵坐标最大值和纵坐标最小值地差可以作为自再现模是否形成地 标志, 认为 x

7、=a/2 处振幅大小基本不变了就是自再现了. 由此可以写判据判断自再现模 在第几次渡越形成 , 并以此作为循环结束地标志. 下面程序中写了地判据:在x=a/2 处 连续地 30 次渡越振幅最大值与最小值之差小于eps_u=0.01. 用该判据得到渡越188 次 后可认为是自再现模 . 实现方法是这样地:设一次积分将计算steps 个点, 先迭代 30 次, 用个 30*steps 地矩阵把这 30次地结果储存下来 , 取出该矩阵地第steps/4列。 L=input( 腔长 L= 。 a=input(镜长 a=。 eps_u=input(精度 =。 k=2*pi/lamda 。 steps=5

8、00。 x=linspace(-a,a,steps。 u_=ones(1,steps。 for m=1:30 for mm=1:steps u0(mm=QU(x(mm,u_。 end。 u_=u0/max(abs(u0 。 u30(m,:=u0 。 end flag=1。 %自再现标志位 u30_flag=1 。 %判据矩阵维数标记为 N=30。 while(flag=1 if max(abs(u30(:,steps/4-min(abs(u30(:,steps/4=QU(x(mm,u_。 end。 u_=u0/max(abs(u0 。 if u30_flag=31 u30_flag=1 。 e

9、nd u30( u30_flag,:=u0 。 u30_flag=u30_flag+1 。 end end N subplot(2,1,1 plot(x,abs(u0/abs(u0(steps/2 xlabel(x 。ylabel(相对振幅 。 angle_u0=angle(u0/pi*180 。 angle_u0=angle_u0-angle_u0(steps/2。 subplot(2,1,2 plot(x,angle_u0 xlabel(x 。ylabel(相对相位 。 function y=QU(x,u global steps L k a x_=linspace(-a,a,steps。

10、 step_length=2*a/(steps-1 。 y=sqrt(1i/L*exp(-1i*k*L*sum(exp(-1i*k/2/L*(-x_+x.2.*u*step_length。lzq7IGf02E 3.3 GUI 界面地制作 由于制作了多种图像显示方式, 为了方便使用 , 设计了如下图地 GUI界面: 在 GUI中可以动态地显示振幅和相位在x 方向以及在镜面上相对分布. 程序见附录 . 四、本设计改进建议 由于时间有限 , 只讨论了方形镜平行平面腔. 而且在计算积分地时候运用了循环地 嵌套, 使得计算效率比较低 . 相位分布图像由于matlab 函数问题有一段会变得很大 M . 北

11、京: 国防工业出版社 , 2009. 2 A.G Fox,Tingye Li. Resonant Modes in a Maser Interferometer. J.BellSystem Technology, 1961, 40: 453-488. 1nowfTG4KI 附录 GUI 程序: function varargout = Laser_GUI(varargin % LASER_GUI M-file for Laser_GUI.fig % LASER_GUI, by itself, creates a new LASER_GUI or raises the existing fjnF

12、LDa5Zo % singleton*. % % H = LASER_GUI returns the handle to a new LASER_GUI or the handle to tfnNhnE6e5 % the existing singleton*. % % LASER_GUI(CALLBACK,hObject,eventData,handles,. calls the local HbmVN777sL % function named CALLBACK in LASER_GUI.M with the given input arguments. V7l4jRB8Hs % % LA

13、SER_GUI(Property,Value,. creates a new LASER_GUI or raises the 83lcPA59W9 % existing singleton*. Starting from the left, property value pairs are mZkklkzaaP % applied to the GUI before Laser_GUI_OpeningFcn gets called. An AVktR43bpw % unrecognized property name or invalid value makes property applic

14、ationORjBnOwcEd % stop. All inputs are passed to Laser_GUI_OpeningFcn via varargin. 2MiJTy0dTT % % *See GUI Options on GUIDEs Tools menu. Choose “GUI allows only one gIiSpiue7A % instance to run (singleton“. % % See also: GUIDE, GUIDA TA, GUIHANDLES % Edit the above text to modify the response to he

15、lp Laser_GUI uEh0U1Yfmh % Last Modified by GUIDE v2.5 21-Apr-2018 16:07:57 % Begin initialization code - DO NOT EDIT gui_Singleton = 1 。 gui_State = struct(gui_Name, mfilename, . IAg9qLsgBX gui_Singleton, gui_Singleton, . gui_OpeningFcn, Laser_GUI_OpeningFcn, . gui_OutputFcn, Laser_GUI_OutputFcn, .

16、gui_LayoutFcn, , . gui_Callback, 。 if nargin & ischar(varargin1 gui_State.gui_Callback = str2func(varargin1。 end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:。WwghWvVhPE else gui_mainfcn(gui_State, varargin:。 end % End initialization code - DO NOT EDIT % - Executes just before Las

17、er_GUI is made visible. asfpsfpi4k function Laser_GUI_OpeningFcn(hObject, eventdata, handles, varargin ooeyYZTjj1 % This function has no output args, see OutputFcn. % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB BkeGuInkxI % handles structure with handl

18、es and user data (see GUIDATA PgdO0sRlMo % varargin command line arguments to Laser_GUI (see V ARARGIN3cdXwckm15 % Choose default command line output for Laser_GUI handles.output = hObject 。 % Update handles structure guidata(hObject, handles。 % UIWAIT makes Laser_GUI wait for user response (see UIR

19、ESUME h8c52WOngM % uiwait(handles.figure1 。 axes(handles.axes3 LOGO=imread(hit.jpg 。 imshow(LOGO % - Outputs from this function are returned to the command line. v4bdyGious function varargout = Laser_GUI_OutputFcn(hObject, eventdata, handles J0bm4qMpJ9 % varargout cell array for returning output arg

20、s (see VARARGOUT。XVauA9grYP % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB bR9C6TJscw % handles structure with handles and user data (see GUIDATA pN9LBDdtrd % Get default command line output from handles structure DJ8T7nHuGT varargout1 = handles.output

21、。 function wavelength_Callback(hObject, eventdata, handles QF81D7bvUA % hObject handle to wavelength (see GCBO % eventdata reserved - to be defined in a future version of MATLAB 4B7a9QFw9h % handles structure with handles and user data (see GUIDATA ix6iFA8xoX % Hints: get(hObject,String returns cont

22、ents of wavelength as text wt6qbkCyDE % str2double(get(hObject,String returns contents of wavelength as a doubleKp5zH46zRk % - Executes during object creation, after setting all properties.Yl4HdOAA61 function wavelength_CreateFcn(hObject, eventdata, handles ch4PJx4BlI % hObject handle to wavelength

23、(see GCBO % eventdata reserved - to be defined in a future version of MATLAB qd3YfhxCzo % handles empty - handles not created until after all CreateFcns called E836L11DO5 % Hint: edit controls usually have a white background on Windows. S42ehLvE3M % See ISPC and COMPUTER. if ispc & isequal(get(hObje

24、ct,BackgroundColor, get(0,defaultUicontrolBackgroundColor 501nNvZFis set(hObject,BackgroundColor,white 。 end function Length_Callback(hObject, eventdata, handles jW1viftGw9 % hObject handle to Length (see GCBO % eventdata reserved - to be defined in a future version of MATLAB xS0DOYWHLP % handles st

25、ructure with handles and user data (see GUIDATA LOZMkIqI0w % Hints: get(hObject,String returns contents of Length as text ZKZUQsUJed % str2double(get(hObject,String returns contents of Length as a double dGY2mcoKtT % - Executes during object creation, after setting all properties. rCYbSWRLIA functio

26、n Length_CreateFcn(hObject, eventdata, handlesFyXjoFlMWh % hObject handle to Length (see GCBO % eventdata reserved - to be defined in a future version of MATLAB TuWrUpPObX % handles empty - handles not created until after all CreateFcns called 7qWAq9jPqE % Hint: edit controls usually have a white ba

27、ckground on Windows. llVIWTNQFk % See ISPC and COMPUTER. if ispc & isequal(get(hObject,BackgroundColor, get(0,defaultUicontrolBackgroundColor yhUQsDgRT1 set(hObject,BackgroundColor,white 。 end function area_Callback(hObject, eventdata, handles MdUZYnKS8I % hObject handle to area (see GCBO % eventdat

28、a reserved - to be defined in a future version of MATLAB 09T7t6eTno % handles structure with handles and user data (see GUIDATAe5TfZQIUB5 % Hints: get(hObject,String returns contents of area as text s1SovAcVQM % str2double(get(hObject,String returns contents of area as a doubleGXRw1kFW5s % - Execute

29、s during object creation, after setting all properties. UTREx49Xj9 function area_CreateFcn(hObject, eventdata, handles8PQN3NDYyP % hObject handle to area (see GCBO % eventdata reserved - to be defined in a future version of MATLAB mLPVzx7ZNw % handles empty - handles not created until after all Crea

30、teFcns calledAHP35hB02d % Hint: edit controls usually have a white background on Windows. NDOcB141gT % See ISPC and COMPUTER. if ispc & isequal(get(hObject,BackgroundColor, get(0,defaultUicontrolBackgroundColor 1zOk7Ly2vA set(hObject,BackgroundColor,white 。 end function times_Callback(hObject, event

31、data, handles fuNsDv23Kh % hObject handle to times (see GCBO % eventdata reserved - to be defined in a future version of MATLAB tqMB9ew4YX % handles structure with handles and user data (see GUIDATA HmMJFY05dE % Hints: get(hObject,String returns contents of times as text ViLRaIt6sk % str2double(get(

32、hObject,String returns contents of times as a double 9eK0GsX7H1 % - Executes during object creation, after setting all properties. naK8ccr8VI function times_CreateFcn(hObject, eventdata, handles B6JgIVV9ao % hObject handle to times (see GCBO % eventdata reserved - to be defined in a future version o

33、f MATLAB P2IpeFpap5 % handles empty - handles not created until after all CreateFcns called 3YIxKpScDM % Hint: edit controls usually have a white background on Windows. gUHFg9mdSs % See ISPC and COMPUTER. if ispc & isequal(get(hObject,BackgroundColor, get(0,defaultUicontrolBackgroundColor uQHOMTQe79

34、 set(hObject,BackgroundColor,white 。 end % - Executes on button press in pushbutton2. function pushbutton2_Callback(hObject, eventdata, handlesIMGWiDkflP % hObject handle to pushbutton2 (see GCBO % eventdata reserved - to be defined in a future version of MATLAB WHF4OmOgAw % handles structure with h

35、andles and user data (see GUIDATAaDFdk6hhPd global steps L k a lamda=str2num(get(handles.wavelength,String 。 L=str2num(get(handles.Length,String 。 a=str2num(get(handles.area,String 。 N=str2num(get(handles.times,String 。 k=2*pi/lamda 。 steps=500。 x=linspace(-a,a,steps。 u_=ones(1,steps。 for m=1:N for

36、mm=1:steps u0(mm=QU(x(mm,u_。 end axes(handles.axes1 plot(x,abs(u0/abs(u0(steps/2 axis(-a a 0 1.3 angle_u0=angle(u0/pi*180 。 angle_u0=angle_u0-angle_u0(steps/2。 axes(handles.axes2 plot(x,angle_u0 u_=u0/max(abs(u0 。 end % - Executes on button press in pushbutton3. function pushbutton3_Callback(hObject

37、, eventdata, handles ozElQQLi4T % hObject handle to pushbutton3 (see GCBO % eventdata reserved - to be defined in a future version of MATLAB CvDtmAfjiA % handles structure with handles and user data (see GUIDATA QrDCRkJkxh global steps L k a lamda=str2num(get(handles.wavelength,String 。 L=str2num(ge

38、t(handles.Length,String 。 a=str2num(get(handles.area,String 。 N=str2num(get(handles.times,String 。 k=2*pi/lamda 。 steps=500。 x=linspace(-a,a,steps。 X,Y=meshgrid(linspace(-a,a,50,linspace(-a,a,50。4nCKn3dlMX u_=ones(1,steps。 for m=1:N for mm=1:steps u0(mm=QU(x(mm,u_。 end abs_u0=abs(u0/abs(u0(steps/2。

39、Z_A=sqrt(interp1(x,abs_u0,X.2+(interp1(x,abs_u0,Y.2。ijCSTNGm0E axes(handles.axes1 surf(X,Y,Z_A axis(-a a -a a 0 1.5 angle_u0=angle(u0/pi*180 。 angle_u0=angle_u0-angle_u0(steps/2。 Z_P=sqrt(interp1(x,angle_u0,X.2+(interp1(x,angle_u0,Y.2。vfB1pxanfk axes(handles.axes2 surf(X,Y,Z_P axis(-a a -a a -10 90

40、u_=u0/max(abs(u0 。 end % - JbA9VhEou1 function Untitled_1_Callback(hObject, eventdata, handles X7Ahr18pJI % hObject handle to Untitled_1 (see GCBO % eventdata reserved - to be defined in a future version of MATLAB b3zqXLCqXo % handles structure with handles and user data (see GUIDATA pZyytu5rc5 function y=QU(x,u global steps L k a x_=linspace(-a,a,steps。 step_length=2*a/(steps-1 。 y=sqrt(1i/L*exp(-1i*k*L*sum(exp(-1i*k/2/L*(-x_+x.2.*u*step_length。DVyGZezsrM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1