測控技術(shù)與儀器課程設(shè)計(jì)-電流環(huán)磁場的分布_第1頁
測控技術(shù)與儀器課程設(shè)計(jì)-電流環(huán)磁場的分布_第2頁
測控技術(shù)與儀器課程設(shè)計(jì)-電流環(huán)磁場的分布_第3頁
測控技術(shù)與儀器課程設(shè)計(jì)-電流環(huán)磁場的分布_第4頁
測控技術(shù)與儀器課程設(shè)計(jì)-電流環(huán)磁場的分布_第5頁
已閱讀5頁,還剩12頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、測試與光電工程學(xué)院課程設(shè)計(jì)任務(wù)書 測控技術(shù)與儀器 系 090812 班 學(xué)號(hào) 09081209 姓名 王若玨 課題名稱: 電流環(huán)磁場的分布 課題要求:1. 建立電流環(huán)磁場模型2. 掌握?qǐng)D形的繪制3. 編寫圖形顯示界面4. 顯示電流環(huán)磁場分布圖課題進(jìn)程:第一周:確定使用哪種計(jì)算機(jī)語言編程; 編寫主要功能。第二周:程序的完善、運(yùn)行與調(diào)試;撰寫課程設(shè)計(jì)報(bào)告。 指導(dǎo)教師: 袁麗華 第14頁(共13頁)【摘要】 MATLAB是由美國MathWorks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成

2、在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計(jì)算軟件的先進(jìn)水平。 本課程設(shè)計(jì)根據(jù)畢奧一薩伐爾定律推導(dǎo)出圓環(huán)電流磁場分布的積分表示,利用MATLAB的符號(hào)積分得出計(jì)算結(jié)果,并繪制磁場分布曲線。并通過GUI制作可交互式界面進(jìn)行仿真與演示。本課程設(shè)計(jì)選用MATLAB R2008a軟件。 關(guān)鍵詞: 圓環(huán)電流;磁場;MATLAB;符號(hào)積分;GUI 目錄一 引言11.1 課題簡介11.2 課題制作要點(diǎn)11.3 MATLAB軟件1二 理論分析2

3、2.1 畢奧一薩伐爾定律22.2 電流元在圓環(huán)外的磁場22.3 電流元在圓環(huán)內(nèi)的磁場32.4 距離圓心z處的磁感應(yīng)強(qiáng)度3三 程序設(shè)計(jì)43.1 GUI界面設(shè)計(jì)43.1.1 創(chuàng)建GUI文件43.1.2 GUI布局與控件設(shè)計(jì)43.1.3 GUI菜單欄設(shè)計(jì)63.2 功能實(shí)現(xiàn)63.2.1 菜單功能63.2.2 繪圖設(shè)置相關(guān)控件功能實(shí)現(xiàn)7四 GUI運(yùn)行效果114.1 GUI初始化效果114.2 菜單欄效果114.3 繪圖效果12五 心得體會(huì) 13六 參考文獻(xiàn)131 引言1.1 課題簡介圓電流是一個(gè)經(jīng)典的物理模型。對(duì)圓電流內(nèi)磁場分布特性的研究,在宏觀上可以改善線圈繞組在電機(jī)中的應(yīng)用。微觀上。可以給分子電流提

4、供理論基礎(chǔ),對(duì)進(jìn)一步研究磁介質(zhì)的磁性特征也有重要參考價(jià)值。本課題主要著重于對(duì)電流環(huán)磁場進(jìn)行建模與仿真,根據(jù)畢奧一薩伐爾定律通過設(shè)定電流環(huán)半徑、電流強(qiáng)度,模擬不同情況下磁場與磁感線的分布情況,并繪制成圖像。 1.2 課題制作要點(diǎn) 電流環(huán)磁場參數(shù)的設(shè)定 電流環(huán)磁場的建模與仿真 可交互式GUI界面的設(shè)計(jì)1.3 MATLAB軟件簡介MATLAB是由美國MathWorks公司發(fā)布的主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的高科技計(jì)算環(huán)境。它將數(shù)值分析、矩陣計(jì)算、科學(xué)數(shù)據(jù)可視化以及非線性動(dòng)態(tài)系統(tǒng)的建模和仿真等諸多強(qiáng)大功能集成在一個(gè)易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計(jì)以及必須進(jìn)行有效數(shù)值計(jì)算的眾多科

5、學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計(jì)語言(如C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計(jì)算軟件的先進(jìn)水平。MATLAB是一個(gè)高級(jí)的矩陣/陣列語言,它包含控制語句、函數(shù)、數(shù)據(jù)結(jié)構(gòu)、輸入和輸出和面向?qū)ο缶幊烫攸c(diǎn)。用戶可以在命令窗口中將輸入語句與執(zhí)行命令同步,也可以先編寫好一個(gè)較大的復(fù)雜的應(yīng)用程序(M文件)后再一起運(yùn)行。而且這種語言可移植性好、可拓展性極強(qiáng),這也是MATLAB能夠深入到科學(xué)研究及工程計(jì)算各個(gè)領(lǐng)域的重要原因。MATLAB是一個(gè)包含大量計(jì)算算法的集合。其擁有600多個(gè)工程中要用到的數(shù)學(xué)運(yùn)算函數(shù),可以方便的實(shí)現(xiàn)用戶所需的各種計(jì)算功能。函數(shù)中所使用

6、的算法都是科研和工程計(jì)算中的最新研究成果,而前經(jīng)過了各種優(yōu)化和容錯(cuò)處理。在通常情況下,可以用它來代替底層編程語言,如C和C+ 。在計(jì)算要求相同的情況下,使用MATLAB的編程工作量會(huì)大大減少。MATLAB自產(chǎn)生之日起就具有方便的數(shù)據(jù)可視化功能,以將向量和矩陣用圖形表現(xiàn)出來,并且可以對(duì)圖形進(jìn)行標(biāo)注和打印。新版本的MATLAB對(duì)整個(gè)圖形處理功能作了很大的改進(jìn)和完善,使它不僅在一般數(shù)據(jù)可視化軟件都具有的功能而且對(duì)于一些其他軟件所沒有的功能,MATLAB同樣表現(xiàn)了出色的處理能力。同時(shí)對(duì)一些特殊的可視化要求,另外新版本的MATLAB還著重在圖形用戶界面(GUI)的制作上作了很大的改善,對(duì)這方面有特殊要求

7、的用戶也可以得到滿足。 2 理論分析2.1 畢奧一薩伐爾定律畢奧一薩伐爾定律是以實(shí)驗(yàn)為基礎(chǔ)經(jīng)過科學(xué)抽象而得到的,描述的是電流元在空間任一點(diǎn)產(chǎn)生的磁感應(yīng)強(qiáng)度。原則上利用畢奧一薩伐爾定律并結(jié)合磁感應(yīng)強(qiáng)度疊加原理,可以計(jì)算任意形狀的電流所產(chǎn)生的磁場。 畢奧薩伐爾定律指出:載流導(dǎo)線上的電流元在真空中某點(diǎn)P的磁感度dB的大小與電流元的大小成正比,與電流元和從電流元到P點(diǎn)的位矢r之間的夾角 的正弦成正比,與位矢r的大小的平方成反比,即: 上式中,為位矢的單位矢量。此即畢奧薩伐爾定律的公式表述。2.2 電流元在圓環(huán)外的磁場 圖1 電流元在電流環(huán)外的磁場如圖1所示,根據(jù)畢奧一薩伐爾定律,任一電流元在P點(diǎn)產(chǎn)生的

8、磁感應(yīng)強(qiáng)度 ,考慮到,, 有(1)。2.3 電流元在圓環(huán)內(nèi)的磁場 圖2 電流元在電流環(huán)內(nèi)的磁場 如圖2所示,電流元在P點(diǎn)所產(chǎn)生的磁感應(yīng)強(qiáng)度,即(2)。2.4 距離圓心z處的磁感應(yīng)強(qiáng)度比較電流元在圓環(huán)內(nèi)、外的磁場表達(dá)式,兩式僅相差一個(gè)負(fù)號(hào)。該負(fù)號(hào)體現(xiàn)了兩種情況下磁場方向正好相反。若規(guī)定垂直紙面向外為磁感應(yīng)強(qiáng)度的正方向,則電流元在圓環(huán)內(nèi)、外產(chǎn)生的磁感應(yīng)強(qiáng)度可統(tǒng)一表示為( 2 )式的形式。結(jié)合磁感應(yīng)強(qiáng)度疊加原理,整個(gè)圓環(huán)電流在距圓心處產(chǎn)生的磁感應(yīng)強(qiáng)度為: 3 程序設(shè)計(jì)3.1 GUI界面設(shè)計(jì)3.1.1 創(chuàng)建GUI文件打開MATLAB軟件后,點(diǎn)擊菜單欄中的“GUIDE”按鈕,進(jìn)入“GUIDE quick

9、 start”,選擇“Create New GUI”選項(xiàng)卡,選擇“Blank GUI(default)”創(chuàng)建一空白GUI文檔。并命名為“cichang1.fig”如圖3所示。圖3 創(chuàng)建一空白GUI3.1.2 GUI布局與控件設(shè)計(jì) GUI布局如圖4,所用控件羅列于表1。圖4 GUI布局控件名稱控件屬性控件用途FontSizeString(Title)TagPanel15繪圖設(shè)置uipanel4放置繪圖設(shè)置的其他控件Panel15視角切換uipanel3放置用于視角切換的控件Axesaxes1顯示磁場及磁感線分布圖像Static Text25帶電電流環(huán)周圍空間的磁場分布text1標(biāo)題Static

10、Text15電流值text3顯示Static Text15Atext4電流值單位Static Text15環(huán)半徑text5顯示Static Text15mtext6環(huán)半徑單位Listbox15電流環(huán)的磁場分布圖;電流環(huán)的磁感線分布圖listbox1選擇繪圖類型Push Button15繪制圖像pushbutton2繪制圖像Push Button15重置參數(shù)pushbutton7重置參數(shù)Edit Text15edit3設(shè)置電流參數(shù)值Edit Text15edit4設(shè)置環(huán)半徑數(shù)值Edit Text15測試圖edit1顯示圖像名稱Radio Button12自由視角radiobutton1開啟三維圖

11、像自由視角Radio Button12鎖定視角radiobutton1關(guān)閉三維圖像自由視角表1 所用控件3.1.3 GUI菜單欄設(shè)計(jì)為使用戶獲得更方便的使用體驗(yàn),故增加菜單欄。點(diǎn)擊“Menu Editor”進(jìn)行制作。如圖5。圖5 菜單欄編輯3.2 功能實(shí)現(xiàn)GUI界面設(shè)計(jì)過后,對(duì)相關(guān)控件的“View Callbacks”中的函數(shù)進(jìn)行編輯,以實(shí)現(xiàn)既定功能。3.2.1 菜單功能(1) 菜單欄中的退出功能 點(diǎn)擊“Menu Editor”中的“退出”選項(xiàng),設(shè)置Tag屬性為“Untitled_1”,并對(duì)回調(diào)函數(shù)進(jìn)行編輯。如圖6.圖6 退出功能編輯程序代碼如下:function Untitled_1_Cal

12、lback(hObject, eventdata, handles)selection=questdlg('是否關(guān)閉',get(gcf,'Name'),'窗口?', . 'Close ',get(gcf,'Name'),'.','是','否','是');if strcmp(selection,'否') return; else clc;%當(dāng)選擇關(guān)閉時(shí),清空所有matla輸入面上的所有錯(cuò)誤信息,同時(shí)關(guān)閉圖像窗口 clear all;del

13、ete(gcf); End(2) 菜單欄中的說明功能 點(diǎn)擊“Menu Editor”中的“說明”選項(xiàng),設(shè)置Tag屬性為“Untitled_2”,并對(duì)回調(diào)函數(shù)進(jìn)行編輯。程序代碼如下:function Untitled_2_Callback(hObject, eventdata, handles)msgbox('利用畢奧薩伐爾定律作圖','說明')3.2.2 繪圖設(shè)置相關(guān)控件功能實(shí)現(xiàn) (1) 選擇繪制圖像類型 當(dāng)選擇“l(fā)istbox1”中的某一選項(xiàng)時(shí),坐標(biāo)軸下方的“EditText”也顯示相應(yīng)的文字說明。鼠標(biāo)右鍵點(diǎn)擊“l(fā)istbox1”選擇“View Callbac

14、ks”中的“Callback”進(jìn)行編輯。如圖7。圖7 程序代碼如下:function listbox1_Callback(hObject, eventdata, handles)selected.index=get(handles.listbox1,'value');str=get(handles.listbox1,'string');set(handles.edit1,'string',strselected.index);(2) 繪制圖像按鈕功能實(shí)現(xiàn) 當(dāng)使用者選擇好所要繪制的圖像類型后,點(diǎn)擊“繪制圖像”按鈕,則在坐標(biāo)軸中出現(xiàn)相應(yīng)的圖像。圖像下

15、方的文本框中顯示圖像名稱。對(duì)“PushButton 2”的回調(diào)函數(shù)進(jìn)行編輯。程序代碼如下:function pushbutton2_Callback(hObject, eventdata, handles)axes(handles.axes1);cla;popup_sel_index = get(handles.listbox1, 'Value');Rh=str2double(get(handles.edit4, 'String'); %通過edit4輸入環(huán)半徑值I0=str2double(get(handles.edit3, 'String')

16、; %通過edit3輸入電流值switch popup_sel_index case 1mu0=4*pi*1e-7; c0=mu0/(4*pi)*I0; Nh=40; %將電流分段為40段x=linspace(-3,3,Nh);y=x; %確定觀察點(diǎn)的范圍 thta0=linspace(0,2*pi,Nh+1); %環(huán)周的分段數(shù) thta1=thta0(1:Nh);y1=Rh*cos(thta1); %環(huán)各段矢量的起點(diǎn)坐標(biāo)y1,z1;z1=Rh*sin(thta1);thta2=thta0(2:Nh+1); y2=Rh*cos(thta2); %環(huán)各段矢量的起點(diǎn)坐標(biāo)y2,z2; z2=Rh*s

17、in(thta2); xc=0;yc=(y2+y1)/2;zc=(z2+z1)/2; %計(jì)算環(huán)各段矢量中點(diǎn)的3個(gè)坐標(biāo)分量 dlx=0;dly=y2-y1;dlz=z2-z1; %計(jì)算環(huán)各段矢量dl的3個(gè)長度分量 NGx=Nh;NGy=NGx; %確定網(wǎng)格數(shù)for i=1:NGy %循環(huán)計(jì)算各網(wǎng)格點(diǎn)上的B(x,y)值 for j=1:NGx rx=x(j)-xc;ry=y(i)-yc;rz=0-zc; r3=sqrt(rx.2+ry.2+rz.2).3; dlxr_x=dly.*rz-dlz.*ry; dlxr_y=dly.*rx-dlx.*rz; Bx(i,j)=sum(c0*dlxr_x./

18、r3); %把環(huán)各段產(chǎn)生的磁場分量累加 By(i,j)=sum(c0*dlxr_y./r3); B=(Bx.2+By.2).0.5; %計(jì)算B的大小 endendsurf(x,y,B); %繪制磁場分布圖像shading interpgrid on case 2mu0=4*pi*1e-7; c0=mu0/(4*pi)*I0;Nh=40; x=linspace(-3,3,Nh);y=x; thta0=linspace(0,2*pi,Nh+1); thta1=thta0(1:Nh); y1=Rh*cos(thta1); z1=Rh*sin(thta1); thta2=thta0(2:Nh+1);y

19、2=Rh*cos(thta2); z2=Rh*sin(thta2); xc=0;yc=(y2+y1)/2;zc=(z2+z1)/2; dlx=0;dly=y2-y1;dlz=z2-z1; NGx=Nh;NGy=NGx; for i=1:NGy for j=1:NGx rx=x(j)-xc;ry=y(i)-yc;rz=0-zc; r3=sqrt(rx.2+ry.2+rz.2).3; dlxr_x=dly.*rz-dlz.*ry; dlxr_y=dly.*rx-dlx.*rz; Bx(i,j)=sum(c0*dlxr_x./r3); By(i,j)=sum(c0*dlxr_y./r3); B=(B

20、x.2+By.2).0.5; end end quiver(x,y,Bx,By,0.5,'LineWidth',1); %繪制磁感線圖線 grid on end(3) 重置參數(shù)按鈕功能實(shí)現(xiàn) 初始化GUI圖形界面:坐標(biāo)軸中的圖像還原為初始時(shí)的“測試圖”,坐標(biāo)軸下方的文本框顯示文字“測試圖”,EditText3、EditText4無顯示,Listbox1中選項(xiàng)顯示為“電流環(huán)的磁場分布圖”,視角切換中的單選框選中“視角鎖定”。首先對(duì)cichang1.fig中的“OpenFunction”進(jìn)行編輯。程序代碼如下:function cichang1_OpeningFcn(hObject,

21、 eventdata, handles, varargin)guidata(hObject, handles); if strcmp(get(hObject,'Visible'),'off') surf(peaks); rotate3d off;end然后對(duì)PushButton7的回調(diào)函數(shù)進(jìn)行編輯。程序代碼如下:function pushbutton7_Callback(hObject, eventdata, handles)cla;surf(peaks);rotate3d off;set(handles.radiobutton2,'value'

22、,1);set(handles.radiobutton1,'value',0);set(handles.edit3,'string',' ');set(handles.listbox1,'value',1);set(handles.edit4,'string',' ' );set(handles.edit1,'string','測試圖');(4) 視角切換功能實(shí)現(xiàn) 當(dāng)選擇“自由視角”時(shí),用戶可通過鼠標(biāo)自由旋轉(zhuǎn)坐標(biāo)軸中的圖像;當(dāng)選擇“鎖定視角”時(shí),用戶可以鎖定任意視角時(shí)

23、的圖像。 首先對(duì)RadioButton2的回調(diào)函數(shù)進(jìn)行編輯。程序代碼如下:function radiobutton2_Callback(hObject, eventdata, handles)rotate3d off; 然后對(duì)RadioButton1的回調(diào)函數(shù)進(jìn)行編輯。程序代碼如下:function radiobutton1_Callback(hObject, eventdata, handles)rotate3d on; 最后再保存一次“cichang1.fig”。4 GUI運(yùn)行效果4.1 GUI初始化效果打開“cichang1.fig ”,顯示如圖8效果。圖84.2 菜單欄效果點(diǎn)擊菜單欄“

24、退出”選項(xiàng),顯示一對(duì)話框,如點(diǎn)擊“是”則關(guān)閉GUI,如選擇“否”則返回GUI界面。如圖9效果。圖9點(diǎn)擊菜單欄“說明”選項(xiàng),顯示一對(duì)話框,如圖10效果。圖104.3 繪圖效果首先分別輸入電流值和環(huán)半徑值兩個(gè)參數(shù),例如80A,1.5m;之后選擇“電流環(huán)的磁場分布圖”選項(xiàng),點(diǎn)擊“繪制圖像”則出現(xiàn)如圖11效果。當(dāng)選擇“自由視角”時(shí),可以通過鼠標(biāo)旋轉(zhuǎn)圖像,選定“鎖定視角”可以鎖定該角度圖像,如圖12。擇“電流環(huán)的磁感線分布圖”選項(xiàng),點(diǎn)擊“繪制圖像”則出現(xiàn)如圖13效果。當(dāng)點(diǎn)擊“重置參數(shù)”按鈕時(shí),出現(xiàn)如圖14效果。 圖11 圖12 圖14圖135 心得體會(huì) 通過此次課程設(shè)計(jì),使我更加扎實(shí)的掌握了有關(guān)MATL

25、AB GUI、圖像處理方面的知識(shí),在設(shè)計(jì)過程中雖然遇到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查終于找出了原因所在,也暴露出了前期我在這方面的知識(shí)欠缺和經(jīng)驗(yàn)不足。實(shí)踐出真知,通過親自動(dòng)手制作,使我們掌握的知識(shí)不再是紙上談兵。過而能改,善莫大焉。在課程設(shè)計(jì)過程中,我不斷發(fā)現(xiàn)錯(cuò)誤,不斷改正,不斷領(lǐng)悟,不斷獲取。從初次接觸MATLAB GUI編程,到運(yùn)用物理知識(shí)分析電流環(huán)磁場的模型,我經(jīng)歷了知識(shí)接觸、學(xué)習(xí)到吸收的過程,這使我收獲頗多。雖然在設(shè)計(jì)中遇到了很多問題,但在自己的努力下,還是游逆而解。正所謂“紙上得來終覺淺,絕知此事要躬行”在今后的學(xué)習(xí)實(shí)踐過程中,一定要不懈努力,不能遇到問題就想到

26、要退縮,一定要不厭其煩的發(fā)現(xiàn)問題所在,然后一一進(jìn)行解決,只有這樣,才能成功的做成想做的事,才能在今后的道路上劈荊斬棘,而不是知難而退。6 參考文獻(xiàn)1 孫慶龍.利用 MATLAB分析圓環(huán)電流在其平面內(nèi)的磁場分布,20092 陳懷琛.MATLAB及其在理工課程中的應(yīng)用指南.西安電子科技大學(xué)出版 社,2004tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwYDIAWGMeR4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGZ7R4I30kA1DkaGtgKQ

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論