椭圆偏振光的仿真计算.doc_第1页
椭圆偏振光的仿真计算.doc_第2页
椭圆偏振光的仿真计算.doc_第3页
椭圆偏振光的仿真计算.doc_第4页
椭圆偏振光的仿真计算.doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

光电综合设计 学院:理学院学院:理学院 专业:应用物理学专业:应用物理学 姓名:闻奚跃姓名:闻奚跃 学号:学号:B11080623B11080623 2015 年年 1 月月 4 日日2015 年年 1 月月 8 日日 目目 录录 一、课题一、课题 1 1:课题名称课题名称 1 1.1.1.1.课题任务要求及技术指标课题任务要求及技术指标.1 1.2.1.2.课题分析及设计思路课题分析及设计思路.1 1.3.1.3.系统设计(建模)系统设计(建模).1 1.4.1.4.仿真结果与结果分析仿真结果与结果分析.1 二、课题二、课题 2 2:课题名称课题名称 2 2.1.2.1.课题任务要求及技术指标课题任务要求及技术指标.2 2.2.2.2.课题分析及设计思路课题分析及设计思路.2 2.3.2.3.系统设计(建模)系统设计(建模).2 2.4.2.4.仿真结果与结果分析仿真结果与结果分析.2 三、课题三、课题 3 3:课题名称课题名称 3 3.1.3.1.课题任务要求及技术指标课题任务要求及技术指标.3 3.2.3.2.课题分析及设计思路课题分析及设计思路.3 3.3.3.3.系统设计(建模)系统设计(建模).3 3.4.3.4.仿真结果与结果分析仿真结果与结果分析.3 四、课程设计小结四、课程设计小结 .4 0 一、课题1 1:课题名称 1.1.1.1.课题任务要求及技术指标课题任务要求及技术指标 椭圆偏振光的仿真计算 设计任务:设计任务: 根据椭圆偏振光公式: 2 0000 ()()2()()cossin2 yy xx xyxy EE EE EEEE (1)做出对应不同值的椭圆偏振图; (2)两椭圆(包括圆)偏振光的叠加。 设计要求:设计要求: (1)具有友好输入输出界面; (2)可根据输入的不同参数值,查看结果。 参考:参考:物理光学椭圆偏振光 1.2.1.2.课题分析及设计思路课题分析及设计思路 1 1.3.1.3.系统设计(建模)系统设计(建模) function varargout = wxy3(varargin) gui_Singleton = 1; gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, wxy3_OpeningFcn, . gui_OutputFcn, wxy3_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end function wxy3_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = wxy3_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function editx_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function editx_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edity_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end 2 guidata(hObject, handles); function edity_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); Else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edita_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function edita_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function pushbutton1_Callback(hObject, eventdata, handles) X=str2num(get(handles.editx,String); Y=str2num(get(handles.edity,String); a=str2num(get(handles.edita,String); syms x y f=(x./X).2+(y./Y).2-2.*(x./X).*(y./Y).*cos(a)-sin(a).*sin(a); axes(handles.axes1); ezplot(f,-2*X,2*X); grid on; guidata(hObject, handles); function editx2_Callback(hObject, eventdata, handles) function editx2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edity2_Callback(hObject, eventdata, handles) function edity2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); 3 else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edita2_Callback(hObject, eventdata, handles) function edita2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function pushbutton2_Callback(hObject, eventdata, handles) X=str2num(get(handles.editx2,String); Y=str2num(get(handles.edity2,String); a=str2num(get(handles.edita2,String); syms x y f=(x./X).2+(y./Y).2-2.*(x./X).*(y./Y).*cos(a)-sin(a).*sin(a); axes(handles.axes2); ezplot(f,-2*X,2*X); grid on; guidata(hObject, handles); function pushbutton3_Callback(hObject, eventdata, handles) X=str2num(get(handles.editx,String); Y=str2num(get(handles.edity,String); a=str2num(get(handles.edita,String); syms x y f1=(x./X).2+(y./Y).2-2.*(x./X).*(y./Y).*cos(a)-sin(a).*sin(a); X2=str2num(get(handles.editx2,String); Y=str2num(get(handles.edity2,String); a=str2num(get(handles.edita2,String); syms x y f2=(x./X2).2+(y./Y).2-2.*(x./X2).*(y./Y).*cos(a)-sin(a).*sin(a); f=f1+f2; axes(handles.axes3); ezplot(f,-2*(X+X2),2*(X+X2); grid on; guidata(hObject, handles); 4 1.4.1.4.仿真结果与结果分析仿真结果与结果分析 5 6 二、课题2 2:课题名称 2.1.2.1.课题任务要求及技术指标课题任务要求及技术指标 高斯光束特性参数的仿真计算 设计任务:设计任务: 某平凹腔激光器,若已知凹面镜曲率半径,腔长及激光波长。求它所产生的高RL 斯光束的腰斑半径的大小和位置,以及该高斯光束发散角的大小。 0 0 设计要求:设计要求: (1)具有友好输入输出界面; (2)可改变参数值(曲率半径,腔长、激光波长) ,查看结果变化情况;RL (3)比较所得结果,分析曲率半径、腔长以及激光波长分别对高斯光束的腰斑半径和 发散角有何影响。 参考:参考:激光原理高斯光束 2.2.2.2.课题分析及设计思路课题分析及设计思路 7 2.3.2.3.系统设计(建模)系统设计(建模) function varargout = wxy6(varargin) gui_Singleton = 1; gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, wxy6_OpeningFcn, . gui_OutputFcn, wxy6_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); end function wxy6_OpeningFcn(hObject, , handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = wxy6_OutputFcn(, , handles) varargout1 = handles.output; function popupmenuB_Callback(hObject, , handles) index=get(hObject,Value); set(handles.uipanelbc,Visible,off); switch(index) case 6 set(handles.uipanelbc,Visible,on); otherwise end function popupmenuB_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; End function editR_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); 8 function editR_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function editL_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function editL_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function editW_Callback(hObject, eventdata, handles) function editW_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function editJ_Callback(hObject, eventdata, handles) function editJ_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function pushbuttonCalc_Callback(hObject, eventdata, handles) R = str2double(get(handles.editR,String); L = str2double(get(handles.editL,String); if(isempty(get(handles.editR,String) msgbox(请输入曲率半径,出错.); elseif(isempty(get(handles.editL,String) 9 msgbox(请输入腔长,出错.); elseif(R=L) msgbox(平凹稳定腔的曲率半径应大于腔长,请重新输入,出错啦.); set(handles.editR,String,); set(handles.editL,String,) else B=0; index=get(handles.popupmenuB,Value); switch(index) case 1 B=441.6; case 2 B=632.8; case 3 B=694.3; case 4 B=1060.0; case 5 B=10600; case 6 B=str2double(get(handles.editB,String); otherwise end f = sqrt(L*(R-L); w = sqrt(f*B*0.000000001/3.14); j=2*sqrt(B*0.000000001/(3.14*f); w j set(handles.editW,String,num2str(w); set(handles.editJ,String,num2str(j); guidata(hObject, handles); end function editB_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function editB_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) 10 ; end function pushbuttonwb_Callback(hObject, eventdata, handles) function editR2_Callback(hObject, eventdata, handles) function editR2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function editL2_Callback(hObject, eventdata, handles) function editL2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function pushbutton6_Callback(hObject, eventdata, handles) function edit16_Callback(hObject, eventdata, handles) function edit16_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edit17_Callback(hObject, eventdata, handles) function edit17_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edit18_Callback(hObject, eventdata, handles) function edit18_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; 11 end function edit19_Callback(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function axes1_CreateFcn(hObject, eventdata, handles) function editB4_Callback(hObject, eventdata, handles) function editB4_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function editB3_Callback(hObject, eventdata, handles) function editB3_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edit22_Callback(hObject, eventdata, handles) function edit22_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function editL4_Callback(hObject, eventdata, handles) function editL4_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function editR3_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); 12 else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function popupmenu3_Callback(hObject, eventdata, handles) function popupmenu3_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function popupmenu2_Callback(hObject, eventdata, handles) function popupmenu2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function pushbutton7_Callback(hObject, eventdata, handles) i1=get(handles.popupmenu2,Value) i2=get(handles.popupmenu3,Value) if(i1=1) if(i2=1) L=str2double(get(handles.editL,String); i3=get(handles.popupmenuB,Value) switch(i3) case 1 B=441.6; case 2 B=632.8; case 3 B=694.3; case 4 B=1060.0; case 5 B=10600; case 6 B=str2double(get(handles.editB,String); end R=L:1:4*L; f=sqrt(L.*(R-L); 13 w=sqrt(f*B.*L/31.4).*0.0001; axes(handles.axes1); plot(R,w); title(腰斑半径跟曲率半径的关系图); xlabel(曲率半径); ylabel(腰斑半径); grid on; else if(i2=2) R=str2double(get(handles.editR,String); i3=get(handles.popupmenuB,Value) switch(i3) case 1 B=441.6; case 2 B=632.8; case 3 B=694.3; case 4 B=1060.0; case 5 B=10600; case 6 B=str2double(get(handles.editB,String); end L=0:R/10:R; f=sqrt(L.*(R-L); w=sqrt(f*B.*L/31.4).*0.0001; axes(handles.axes1); plot(L,w); title(腰斑半径跟腔长的关系图); xlabel(腔长); ylabel(腰斑半径); grid on; else R=str2double(get(handles.editR,String); L=str2double(get(handles.editL,String); B=0:100:1000; f=sqrt(L.*(R-L); w=sqrt(f*B.*L/31.4).*0.0001; axes(handles.axes1); plot(B,w); title(腰斑半径跟激光波长的关系图); xlabel(激光波长); ylabel(腰斑半径); 14 grid on; end end else if(i2=1) L=str2double(get(handles.editL,String); i3=get(handles.popupmenuB,Value) switch(i3) case 1 B=441.6; case 2 B=632.8; case 3 B=694.3; case 4 B=1060.0; case 5 B=10600; case 6 B=str2double(get(handles.editB,String); end R=L:1:4*L; f=sqrt(R-L).*L); j=sqrt(B./(31.4.*f).*0.0002; axes(handles.axes1); plot(R,j); title(发散角跟曲率半径的关系图); xlabel(曲率半径); ylabel(发散角); grid on; else if(i2=2) R=str2double(get(handles.editR,String); i3=get(handles.popupmenuB,Value) switch(i3) case 1 B=441.6; case 2 B=632.8; case 3 B=694.3; case 4 B=1060.0; case 5 B=10600; 15 case 6 B=str2double(get(handles.editB,String); end L=0:R/10:R; f=sqrt(R-L).*L); j=sqrt(B./(31.4.*f).*0.0002; axes(handles.axes1); plot(L,j); title(发散角跟腔长的关系图); xlabel(腔长); ylabel(发散角); grid on; else R=str2double(get(handles.editR,String); L=str2double(get(handles.editL,String); B=0:100:1000; f=sqrt(L*(R-L) j=sqrt(B./(31.4.*f).*0.0002; axes(handles.axes1); plot(B,j); title(发散角跟激光波长的关系图); xlabel(激光波长); ylabel(发散角); grid on; end end end function pushbutton9_Callback(hObject, eventdata, handles) f_handle=figure(IntegerHandle,off); new_axes=copyobj(handles.axes1,f_handle); FileName,PathName=uiputfile(*.jpg,Save File); file=strcat(PathName,FileName); print(f_handle,-djpeg,file); delete(f_handle); function editR_ButtonDownFcn(hObject, eventdata, handles) 16 2.4.2.4.仿真结果与结果分析仿真结果与结果分析 17 18 19 三、课题3 3:课题名称 3.1.3.1.课题任务要求及技术指标课题任务要求及技术指标 光电探测器光电流的计算(参考光电子学第五章 P139) 设计任务:设计任务: 计算光电探测器的光电流。 设计要求:设计要求: (1)具有友好输入输出界面; (2)参量可任意输入; (3)模拟输入一组数据(数据值应与实际相当) ,给出结果。 参考:参考:光电子学光电探测器 3.2.3.2.课题分析及设计思路课题分析及设计思路 20 3.3.3.3.系统设计(建模)系统设计(建模) function varargout = wxy11(varargin) gui_Singleton = 1; gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, wxy11_OpeningFcn, . gui_OutputFcn, wxy11_OutputFcn, . gui_LayoutFcn, , . gui_Callback, ); if nargin end if nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:); else gui_mainfcn(gui_State, varargin:); End function wxy11_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = wxy11_OutputFcn(hObject, eventdata, handles) varargout1 = handles.output; function pushbutton1_Callback(hObject, eventdata, handles) VR=str2num(get(handles.edit1,String); Dn=str2num(get(handles.edit5,String); Dp=str2num(get(handles.edit6,String); tn=str2num(get(handles.edit7,String); tp=str2num(get(handles.edit8,String); Ln=sqrt(Dn.*tn)*104; Lp=sqrt(Dp.*tp)*104; e=1.6*10(-19); Na=str2num(get(handles.edit3,String); Nd=str2num(get(handles.edit4,String); Vbi=0.026*log(Na.*Nd./(1.5*10(10)2); W=sqrt(2*11.9*8.85*10(-14)*(Na+Nd).*(Vbi+VR)/(e.*Na.*Nd)*104; A=str2num(get(handles.edit2,String); Gl=str2num(get(handles.edit9,String); I=e.*A.*10(-8).*Gl.*(W+Ln+Lp)*0.1 set(handles.edit10,String,num2str(I); guidata(hObject, handles); 21 function edit1_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function edit1_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; End function edit2_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function edit2_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; End function edit3_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function edit3_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end 22 function edit4_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, handles); function edit4_CreateFcn(hObject, eventdata, handles) if ispc set(hObject,BackgroundColor,white); else set(hObject,BackgroundColor,get(0,defaultUicontrolBackgroundColor) ; end function edit5_Callback(hObject, eventdata, handles) input = str2num(get(hObject,String); if (isempty(input) set(hObject,String,); end guidata(hObject, hand

温馨提示

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

评论

0/150

提交评论