激光原理課程設(shè)計(jì)平行平面腔自再現(xiàn)模FoxLi數(shù)值迭代解法及MATLAB實(shí)現(xiàn)_第1頁(yè)
激光原理課程設(shè)計(jì)平行平面腔自再現(xiàn)模FoxLi數(shù)值迭代解法及MATLAB實(shí)現(xiàn)_第2頁(yè)
激光原理課程設(shè)計(jì)平行平面腔自再現(xiàn)模FoxLi數(shù)值迭代解法及MATLAB實(shí)現(xiàn)_第3頁(yè)
激光原理課程設(shè)計(jì)平行平面腔自再現(xiàn)模FoxLi數(shù)值迭代解法及MATLAB實(shí)現(xiàn)_第4頁(yè)
激光原理課程設(shè)計(jì)平行平面腔自再現(xiàn)模FoxLi數(shù)值迭代解法及MATLAB實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 激光原理課程設(shè)計(jì)題目:方形鏡平行平面腔自再現(xiàn)模fox-li 數(shù)值迭代解法及matlab實(shí)現(xiàn)院 系 理學(xué)院 專(zhuān)業(yè)班級(jí) 0910101 學(xué)生姓名 指導(dǎo)教師 提交日期 2012年4 月 15 日 目 錄一、設(shè)計(jì)目的1二、設(shè)計(jì)要求和設(shè)計(jì)指標(biāo)1三、設(shè)計(jì)內(nèi)容13.1 fox-li平行平面腔的迭代解法13.2 matlab實(shí)現(xiàn)33.2.1 迭代解法的過(guò)程33.2.2 程序?qū)崿F(xiàn)43.2.3 自再現(xiàn)模形成的判斷63.3 gui界面的制作8四、本設(shè)計(jì)改進(jìn)建議9五、設(shè)計(jì)感想9六、主要參考文獻(xiàn)9附錄一、設(shè)計(jì)目的為了加深對(duì)激光原理中fox-li平行平面腔的迭代解法的理解,學(xué)習(xí)matlab的使用,鍛煉運(yùn)用數(shù)值方法解決專(zhuān)

2、業(yè)問(wèn)題的能力。二、設(shè)計(jì)要求和設(shè)計(jì)指標(biāo)在matlab用fox-li平行平面腔的迭代解法求得激光器腔鏡面上的光場(chǎng)分布。求出距離鏡面中點(diǎn)為x處的光場(chǎng)的振幅a和相位p,并作出二維圖像。在得出的一維圖像的基礎(chǔ)上作出鏡面上光強(qiáng)的二維分布。三、設(shè)計(jì)內(nèi)容3.1 fox-li平行平面腔的迭代解法諧振腔是激光器必備條件之一,它使激光反復(fù)通過(guò)增益物質(zhì),從而實(shí)現(xiàn)光的自激振蕩。在激光的發(fā)展史上最早提出的是平行平面腔,又稱(chēng)為fp腔,它由兩塊平行平面反射鏡組成,第一臺(tái)紅寶石激光器的諧振腔就是用它來(lái)做成的。對(duì)于開(kāi)放式光腔,鏡面上穩(wěn)態(tài)場(chǎng)分布的形成可以看成是光在兩個(gè)界面間往返傳播的結(jié)果。因此,兩個(gè)界面上的場(chǎng)必然是互相關(guān)聯(lián)的:一個(gè)

3、鏡面上的場(chǎng)可以視為由另一個(gè)鏡面上的場(chǎng)所產(chǎn)生,于是求解鏡面上穩(wěn)態(tài)場(chǎng)的分布問(wèn)題就歸結(jié)為求解一個(gè)積分方程??紤]在開(kāi)腔中往返傳播的一列波。設(shè)初始時(shí)刻在鏡i上有某一個(gè)場(chǎng)分布,則當(dāng)波在腔中經(jīng)第一次渡越而到達(dá)鏡ii時(shí),將在鏡ii上形成一個(gè)新的場(chǎng)分布,場(chǎng)經(jīng)第二次渡越后又將在鏡i上形成一個(gè)新的場(chǎng)分布。每次渡越時(shí),波都將因?yàn)檠苌鋼p失一部分能量,并引起能量分布變化,如此重復(fù)下去由于衍射主要是發(fā)生在鏡的邊緣附近,因此在傳播過(guò)程中,鏡邊緣附近的場(chǎng)將衰落得更快,經(jīng)多次衍射后所形成的場(chǎng)分布,其邊緣振幅往往都很?。ㄅc中心處比較),具有這種特征的場(chǎng)分布受衍射的影響也將比較小??梢灶A(yù)期:在經(jīng)過(guò)足夠多次渡越之后,能形成這樣一種穩(wěn)態(tài)

4、場(chǎng):分布不再受衍射的影響,在腔內(nèi)往返一次后能夠“再現(xiàn)”出發(fā)時(shí)的場(chǎng)分布,即實(shí)現(xiàn)了模的“自再現(xiàn)”,具體過(guò)程圖1所示:圖1 開(kāi)腔中自再現(xiàn)模的形成光學(xué)中的惠更斯菲涅爾原理是從理論上分析衍射問(wèn)題的基礎(chǔ),該原理的嚴(yán)格數(shù)學(xué)表示是菲涅爾基爾霍夫衍射積分。設(shè)已知空間任意曲面s上光波場(chǎng)地振幅和相位分布函數(shù)為,由它所要考察的空間任一點(diǎn)p處場(chǎng)分布為,二者之間有以下關(guān)系式:式中,為與連線(xiàn)的長(zhǎng)度,為s面上點(diǎn)處的法線(xiàn)和上述連線(xiàn)之間的夾角,為s面上的面積元,k為波矢的模。而對(duì)于方形鏡平行平面鏡將按,的冪級(jí)數(shù)展開(kāi),當(dāng)滿(mǎn)足和時(shí)從而得到將上式分離變量。令得到方形鏡中 。3.2 matlab實(shí)現(xiàn)3.2.1 迭代解法的過(guò)程本文采用fo

5、xli數(shù)值迭代法得到了了鏡面上自再現(xiàn)模在x方向的分布并推廣到整個(gè)鏡面,最終動(dòng)態(tài)顯示每次渡越鏡面上光場(chǎng)分布。雖然是復(fù)數(shù)積分,但其和實(shí)數(shù)積分實(shí)現(xiàn)方法相同,即取一定步長(zhǎng),用矩形面積的和代替函數(shù)的定積分。下面是程序框圖:3.2.2 程序?qū)崿F(xiàn)源程序:clear,clcglobal steps l k alamda=input(波長(zhǎng)lamda=);l=input(腔長(zhǎng)l=);a=input(鏡長(zhǎng)a=);n=input(渡越次數(shù)n=);k=2*pi/lamda; %波失steps=500; %步長(zhǎng)x=linspace(-a,a,steps);u_=ones(1,steps);for m=1:n for mm

6、=1:steps u0(mm)=qu(x(mm),u_); end; u_=u0/max(abs(u0);endsubplot(2,1,1)plot(x,abs(u0)/abs(u0(steps/2)xlabel(x);ylabel(相對(duì)振幅);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(相對(duì)相位);function y=qu(x,u)global steps l k ax_=linspace(-a,a,steps);st

7、ep_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;在菲涅耳數(shù)為6.25,渡越次數(shù)為1的時(shí)候做出下圖:在菲涅耳數(shù)為6.25,渡越次數(shù)為1的時(shí)候做出下圖:3.2.3 自再現(xiàn)模形成的判斷畫(huà)出每次渡越在x=0.5a處的相對(duì)振幅(n80),如下圖:圖中連續(xù)的30個(gè)點(diǎn)中縱坐標(biāo)最大值和縱坐標(biāo)最小值的差可以作為自再現(xiàn)模是否形成的標(biāo)志,認(rèn)為x=a/2處振幅大小基本不變了就是自再現(xiàn)了。由此可以寫(xiě)判據(jù)判斷自再現(xiàn)模在第幾次渡越形成,并以此作為循環(huán)結(jié)束的標(biāo)志。下面程序中寫(xiě)了的判據(jù):在

8、x=a/2處連續(xù)的30次渡越振幅最大值與最小值之差小于eps_u=0.01。用該判據(jù)得到渡越188次后可認(rèn)為是自再現(xiàn)模。實(shí)現(xiàn)方法是這樣的:設(shè)一次積分將計(jì)算steps個(gè)點(diǎn),先迭代30次,用個(gè)30*steps的矩陣把這30次的結(jié)果儲(chǔ)存下來(lái),取出該矩陣的第steps/4列(對(duì)應(yīng)x=-a/2處),判斷該列最大值與最小值之差是否小于0.01,是則結(jié)束判斷,第30次就自再現(xiàn)了,否則,計(jì)算第31次的振幅,用31次的結(jié)果去覆蓋矩陣中的第一行數(shù)據(jù),再取出該矩陣的第steps/4列,判斷該列最大值與最小值之差是否小于0.01,是則結(jié)束判斷,第31次就自再現(xiàn)了,否則,計(jì)算第32次的振幅程序:clear,clcglo

9、bal steps l k alamda=input(波長(zhǎng)lamda=);l=input(腔長(zhǎng)l=);a=input(鏡長(zhǎng)a=);eps_u=input(精度=);k=2*pi/lamda;steps=500;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; endflag=1; %自再現(xiàn)標(biāo)志位u30_flag=1; %判據(jù)矩陣維數(shù)標(biāo)記為n=30;while(flag=1) if max(abs(u

10、30(:,steps/4)-min(abs(u30(:,steps/4)eps_u %steps/4為x=-a/2處,判據(jù)為連續(xù)30次渡越中最大振幅減去最小振幅小于eps_u flag=0; else n=n+1; for mm=1:steps u0(mm)=qu(x(mm),u_); end; u_=u0/max(abs(u0); if u30_flag=31 u30_flag=1; end u30( u30_flag,:)=u0; u30_flag=u30_flag+1; endendnsubplot(2,1,1)plot(x,abs(u0)/abs(u0(steps/2)xlabel(x

11、);ylabel(相對(duì)振幅);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(相對(duì)相位);function y=qu(x,u)global steps l k ax_=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;3.3 gui界面的制作由于

12、制作了多種圖像顯示方式,為了方便使用,設(shè)計(jì)了如下圖的gui界面:在gui中可以動(dòng)態(tài)地顯示振幅和相位在x方向以及在鏡面上相對(duì)分布。程序見(jiàn)附錄。四、本設(shè)計(jì)改進(jìn)建議由于時(shí)間有限,只討論了方形鏡平行平面腔。而且在計(jì)算積分的時(shí)候運(yùn)用了循環(huán)的嵌套,使得計(jì)算效率比較低。相位分布圖像由于matlab函數(shù)問(wèn)題有一段會(huì)變得很大(略小于360,其實(shí)應(yīng)該為0)。五、設(shè)計(jì)感想通過(guò)這個(gè)課程設(shè)計(jì)收獲主要有兩點(diǎn):一是練習(xí)了matlab軟件的使用,學(xué)會(huì)了一些用matlab做光學(xué)仿真的方法;二是更深入理解了激光諧振腔在激光器中的地位和作用,鞏固了課本上的知識(shí)。六、主要參考文獻(xiàn)1 周炳琨. 激光原理(第六版) m . 北京: 國(guó)防

13、工業(yè)出版社, 2009.2 a.g fox,tingye li. resonant modes in a maser interferometer. j.bellsystem technology, 1961, 40: 453-488.附錄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% singleton*.% h = laser_gui

14、 returns the handle to a new laser_gui or the handle to% the existing singleton*.% laser_gui(callback,hobject,eventdata,handles,.) calls the local% function named callback in laser_gui.m with the given input arguments.% laser_gui(property,value,.) creates a new laser_gui or raises the% existing sing

15、leton*. starting from the left, property value pairs are% applied to the gui before laser_gui_openingfcn gets called. an% unrecognized property name or invalid value makes property application% stop. all inputs are passed to laser_gui_openingfcn via varargin.% *see gui options on guides tools menu.

16、choose gui allows only one% instance to run (singleton).% see also: guide, guidata, guihandles % edit the above text to modify the response to help laser_gui % last modified by guide v2.5 21-apr-2012 16:07:57 % begin initialization code - do not editgui_singleton = 1;gui_state = struct(gui_name, mfi

17、lename, . gui_singleton, gui_singleton, . gui_openingfcn, laser_gui_openingfcn, . gui_outputfcn, laser_gui_outputfcn, . gui_layoutfcn, , . gui_callback, );if nargin & ischar(varargin1) gui_state.gui_callback = str2func(varargin1);end if nargout varargout1:nargout = gui_mainfcn(gui_state, varargin:);

18、else gui_mainfcn(gui_state, varargin:);end% end initialization code - do not edit % - executes just before laser_gui is made visible.function laser_gui_openingfcn(hobject, eventdata, handles, varargin)% this function has no output args, see outputfcn.% hobject handle to figure% eventdata reserved -

19、to be defined in a future version of matlab% handles structure with handles and user data (see guidata)% varargin command line arguments to laser_gui (see varargin) % choose default command line output for laser_guihandles.output = hobject; % update handles structureguidata(hobject, handles); % uiwa

20、it makes laser_gui wait for user response (see uiresume)% uiwait(handles.figure1);axes(handles.axes3)logo=imread(hit.jpg);imshow(logo) % - outputs from this function are returned to the command line.function varargout = laser_gui_outputfcn(hobject, eventdata, handles) % varargout cell array for retu

21、rning output args (see varargout);% hobject handle to figure% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) % get default command line output from handles structurevarargout1 = handles.output; function wavelength_callback

22、(hobject, eventdata, handles)% hobject handle to wavelength (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) % hints: get(hobject,string) returns contents of wavelength as text% str2double(get(hobject,string) ret

23、urns contents of wavelength as a double % - executes during object creation, after setting all properties.function wavelength_createfcn(hobject, eventdata, handles)% hobject handle to wavelength (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles empty - handles not

24、 created until after all createfcns called % hint: edit controls usually have a white background on windows.% see ispc and computer.if ispc & isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor) set(hobject,backgroundcolor,white);end function length_callback(hobject, eventdat

25、a, handles)% hobject handle to length (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) % hints: get(hobject,string) returns contents of length as text% str2double(get(hobject,string) returns contents of length as

26、 a double % - executes during object creation, after setting all properties.function length_createfcn(hobject, eventdata, handles)% hobject handle to length (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles empty - handles not created until after all createfcns ca

27、lled % hint: edit controls usually have a white background on windows.% see ispc and computer.if ispc & isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor) set(hobject,backgroundcolor,white);end function area_callback(hobject, eventdata, handles)% hobject handle to area (see

28、 gcbo)% eventdata reserved - to be defined in a future version of matlab% handles structure with handles and user data (see guidata) % hints: get(hobject,string) returns contents of area as text% str2double(get(hobject,string) returns contents of area as a double % - executes during object creation,

29、 after setting all properties.function area_createfcn(hobject, eventdata, handles)% hobject handle to area (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles empty - handles not created until after all createfcns called % hint: edit controls usually have a white ba

30、ckground on windows.% see ispc and computer.if ispc & isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor) set(hobject,backgroundcolor,white);end function times_callback(hobject, eventdata, handles)% hobject handle to times (see gcbo)% eventdata reserved - to be defined in a

31、future version of matlab% handles structure with handles and user data (see guidata) % hints: get(hobject,string) returns contents of times as text% str2double(get(hobject,string) returns contents of times as a double % - executes during object creation, after setting all properties.function times_c

32、reatefcn(hobject, eventdata, handles)% hobject handle to times (see gcbo)% eventdata reserved - to be defined in a future version of matlab% handles empty - handles not created until after all createfcns called % hint: edit controls usually have a white background on windows.% see ispc and computer.

33、if ispc & isequal(get(hobject,backgroundcolor), get(0,defaultuicontrolbackgroundcolor) set(hobject,backgroundcolor,white);end % - executes on button press in pushbutton2.function pushbutton2_callback(hobject, eventdata, handles)% hobject handle to pushbutton2 (see gcbo)% eventdata reserved - to be d

34、efined in a future version of matlab% handles structure with handles and user data (see guidata) global steps l k alamda=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=linspac

35、e(-a,a,steps);u_=ones(1,steps);for m=1:n for 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, eventdata, handles)% hobject handle to pushbutton3 (see gcbo)% eventda

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論