椭圆偏振光的仿真计算.docx
《椭圆偏振光的仿真计算.docx》由会员分享,可在线阅读,更多相关《椭圆偏振光的仿真计算.docx(37页珍藏版)》请在冰豆网上搜索。
![椭圆偏振光的仿真计算.docx](https://file1.bdocx.com/fileroot1/2023-7/13/4aed8c1c-a449-4a49-be06-f15ebb2c8057/4aed8c1c-a449-4a49-be06-f15ebb2c80571.gif)
椭圆偏振光的仿真计算
光电综合设计
学院:
理学院
专业:
应用物理学
姓名:
闻奚跃
学号:
B11080623
2015年1月4日~2015年1月8日
目录
一、课题1:
课题名称1
1.1.课题任务要求及技术指标1
1.2.课题分析及设计思路1
1.3.系统设计(建模)1
1.4.仿真结果与结果分析1
二、课题2:
课题名称2
2.1.课题任务要求及技术指标2
2.2.课题分析及设计思路2
2.3.系统设计(建模)2
2.4.仿真结果与结果分析2
三、课题3:
课题名称3
3.1.课题任务要求及技术指标3
3.2.课题分析及设计思路3
3.3.系统设计(建模)3
3.4.仿真结果与结果分析3
四、课程设计小结4
一、课题1:
课题名称
1.1.课题任务要求及技术指标
椭圆偏振光的仿真计算
设计任务:
根据椭圆偏振光公式:
(1)做出对应不同
值的椭圆偏振图;
(2)两椭圆(包括圆)偏振光的叠加。
设计要求:
(1)具有友好输入输出界面;
(2)可根据输入的不同参数值,查看结果。
参考:
《物理光学》椭圆偏振光
1.2.课题分析及设计思路
1.3.系统设计(建模)
functionvarargout=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',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
functionwxy3_OpeningFcn(hObject,eventdata,handles,varargin)
handles.output=hObject;
guidata(hObject,handles);
functionvarargout=wxy3_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
functioneditx_Callback(hObject,eventdata,handles)
input=str2num(get(hObject,'String'));
if(isempty(input))
set(hObject,'String','');
end
guidata(hObject,handles);
functioneditx_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedity_Callback(hObject,eventdata,handles)
input=str2num(get(hObject,'String'));
if(isempty(input))
set(hObject,'String','');
end
guidata(hObject,handles);
functionedity_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
Elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedita_Callback(hObject,eventdata,handles)
input=str2num(get(hObject,'String'));
if(isempty(input))
set(hObject,'String','');
end
guidata(hObject,handles);
functionedita_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionpushbutton1_Callback(hObject,eventdata,handles)
X=str2num(get(handles.editx,'String'));
Y=str2num(get(handles.edity,'String'));
a=str2num(get(handles.edita,'String'));
symsxy
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]);
gridon;
guidata(hObject,handles);
functioneditx2_Callback(hObject,eventdata,handles)
functioneditx2_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedity2_Callback(hObject,eventdata,handles)
functionedity2_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedita2_Callback(hObject,eventdata,handles)
functionedita2_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionpushbutton2_Callback(hObject,eventdata,handles)
X=str2num(get(handles.editx2,'String'));
Y=str2num(get(handles.edity2,'String'));
a=str2num(get(handles.edita2,'String'));
symsxy
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]);
gridon;
guidata(hObject,handles);
functionpushbutton3_Callback(hObject,eventdata,handles)
X=str2num(get(handles.editx,'String'));
Y=str2num(get(handles.edity,'String'));
a=str2num(get(handles.edita,'String'));
symsxy
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'));
symsxy
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)]);
gridon;
guidata(hObject,handles);
1.4.仿真结果与结果分析
二、课题2:
课题名称
2.1.课题任务要求及技术指标
高斯光束特性参数的仿真计算
设计任务:
某平凹腔激光器,若已知凹面镜曲率半径
,腔长
及激光波长
。
求它所产生的高斯光束的腰斑半径
的大小和位置,以及该高斯光束发散角
的大小。
设计要求:
(1)具有友好输入输出界面;
(2)可改变参数值(曲率半径
,腔长
、激光波长
),查看结果变化情况;
(3)比较所得结果,分析曲率半径、腔长以及激光波长分别对高斯光束的腰斑半径和发散角有何影响。
参考:
《激光原理》高斯光束
2.2.课题分析及设计思路
2.3.系统设计(建模)
functionvarargout=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',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
functionwxy6_OpeningFcn(hObject,~,handles,varargin)
handles.output=hObject;
guidata(hObject,handles);
functionvarargout=wxy6_OutputFcn(~,~,handles)
varargout{1}=handles.output;
functionpopupmenuB_Callback(hObject,~,handles)
index=get(hObject,'Value');
set(handles.uipanelbc,'Visible','off');
switch(index)
case6
set(handles.uipanelbc,'Visible','on');
otherwise
end
functionpopupmenuB_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
End
functioneditR_Callback(hObject,eventdata,handles)
input=str2num(get(hObject,'String'));
if(isempty(input))
set(hObject,'String','');
end
guidata(hObject,handles);
functioneditR_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functioneditL_Callback(hObject,eventdata,handles)
input=str2num(get(hObject,'String'));
if(isempty(input))
set(hObject,'String','');
end
guidata(hObject,handles);
functioneditL_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functioneditW_Callback(hObject,eventdata,handles)
functioneditW_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functioneditJ_Callback(hObject,eventdata,handles)
functioneditJ_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionpushbuttonCalc_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')))
msgbox('请输入腔长','出错...');
elseif(R<=L)
msgbox('平凹稳定腔的曲率半径应大于腔长,请重新输入','出错啦...');
set(handles.editR,'String','');
set(handles.editL,'String','')
else
B=0;
index=get(handles.popupmenuB,'Value');
switch(index)
case1
B=441.6;
case2
B=632.8;
case3
B=694.3;
case4
B=1060.0;
case5
B=10600;
case6
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
functioneditB_Callback(hObject,eventdata,handles)
input=str2num(get(hObject,'String'));
if(isempty(input))
set(hObject,'String','');
end
guidata(hObject,handles);
functioneditB_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionpushbuttonwb_Callback(hObject,eventdata,handles)
functioneditR2_Callback(hObject,eventdata,handles)
functioneditR2_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functioneditL2_Callback(hObject,eventdata,handles)
functioneditL2_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
else
set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionpushbutton6_Callback(hObject,eventdata,handles)
functionedit16_Callback(hObject,eventdata,handles)
functionedit16_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit17_Callback(hObject,eventdata,handles)
functionedit17_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit18_Callback(hObject,eventdata,handles)
functionedit18_CreateFcn(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionedit19_Callback(hObject,eventdata,handles)
ifispc
set(hObject,'BackgroundColor','white');
elseset(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));
end
functionaxes1_CreateFcn(hObject,eventdata,handles)
functioneditB4_Callback(hObject,eventdata,handles)
function