MATLAB實驗指導(dǎo)_第1頁
MATLAB實驗指導(dǎo)_第2頁
MATLAB實驗指導(dǎo)_第3頁
MATLAB實驗指導(dǎo)_第4頁
MATLAB實驗指導(dǎo)_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 實驗一 MATLAB運算基礎(chǔ)1. 實驗?zāi)康?) 熟悉啟動和退出MATLAB的方法。2) 熟悉MATLAB命令窗口的組成。3) 掌握建立矩陣的方法。4) 掌握MATLAB各種表達(dá)式的書寫規(guī)則以及常用函數(shù)的使用。2. 實驗內(nèi)容1、 用邏輯表達(dá)式求下列分段函數(shù)的值。2、 求100-999之間能被21整除的數(shù)的個數(shù)。3、 建立一個字符串向量,刪除其中的大寫字母。4、 輸入矩陣,并找出A中大于或等于5的元素(用行列表示)。5、 求矩陣的行列式值、逆和特征根。6、 不采用循環(huán)的形式求出和式的數(shù)值解。3. 實驗程序及結(jié)果1、 程序如下:t=0:0.5;2.5.y=t.2*(t>=0)&(t&

2、lt;1)+(t.2-1).*(t>=1)&(t<2)+(t.2-2*t+1).*(t>=2)&(t<3)結(jié)果如下:2、 程序如下: p=rem(100:999,21)=0;sum(p)運行結(jié)果如下:3、 程序代碼如下:ch='ABcdefGHd',k=find(ch>='A'&ch<='Z'),ch(k)=4、 程序代碼如下:A=1 2 3;4 5 6;7 8 9,i,j=find(A>=5),for n=1:length(i)m(n)=A(i(n),j(n)endM運行結(jié)果:5

3、、 程序代碼:a11=input('a11='),a12=input('a12='),a21=input('a21='),a22=input('a22='),A=a11,a12,a21,a22,DA=det(A),IA=inv(A),EA=eig(A)運行結(jié)果如下:6、程序代碼如下:sum(2.0:63)結(jié)果如下:4 心得體會 通過本次的學(xué)習(xí),使我對MATLAB的使用有了基本的了解。熟悉了MATLAB的一系列運用和命令窗口的基本組成。掌握如何去建立矩陣及各種表達(dá)式的書寫規(guī)則和常規(guī)函數(shù)的使用。對行列式的運用有了進(jìn)一本的了解。實驗二

4、M函數(shù)與M文件的編寫與應(yīng)用1. 實驗?zāi)康?、 熟悉MATLAB的環(huán)境與工作空間。2、 熟悉變量與矩陣的輸入、矩陣的運算。3、 熟悉M文件與M函數(shù)的編寫及應(yīng)用。4、 熟悉MATLAB控制語句與邏輯運算。2. 實驗內(nèi)容1、1行100列的Fibonacc數(shù)組a,a(1)=a(2)=1,a(i)=a(i-1)+a(i-2),用for循環(huán)指令來尋求該數(shù)組中第一個大于10000的元素,并指出其位置i。2、 編寫M腳本文件,定義下列分段函數(shù),并分別求出當(dāng)(x1=1,x2=0.5)、(x1=-1,x2=0)和(x1=0,x2=-0.5)時的函數(shù)值。3、 編寫M函數(shù)表示曲線sint以及其它的包絡(luò)線,并從命令窗口

5、輸入命令語句繪制曲線。t的取值范圍是0-4。4、 設(shè)編寫一個M文件,使的調(diào)用函數(shù)f(x)時,x可用矩陣代入,得出的f(x)為同價矩陣。5、 實驗程序及結(jié)果心得體會3.實驗程序及結(jié)果1、程序代碼如下:n=100;a=ones(1,n);for i=3:na(i)=a(i-1)+a(i-2);if a(i)>10000a(i),break;end;end,i程序運行結(jié)果如下:2、程序代碼如下:functionp=ff(x1,x2) if x1+x2>1p=0.5457*exp(-0.75*x22-3.75*12-1.5*1);elseif x1+x2<=-1p=0.5457*ex

6、p(-0.75*x22-3.75*12-1.5*1);else p=0.7575*exp(-x22-6.*x12);End在命令窗口輸入x1=0.x2=-0.5ff(x1,x2)運行結(jié)果:ans=0.5899輸入 X1=-1,x2=0 Ff(x1,x2) 程序結(jié)果如下: Ans= 0.00229 輸入 X1=1,x2=0.5 Ff(x1,x2)程序結(jié)果如下Ans= 0.02243、 程序代碼如下:function y=ff(t )y1=exp(-t/3)y2=exp(-t/3).*sin(3*t);y=y1;y2單擊M文件編輯器的SAVE圖標(biāo),使出現(xiàn)標(biāo)準(zhǔn)的文件保存對話框在文件對話框中選定目錄填

7、寫文件名單擊SAVE按鈕把M文件保存到制定的文件目錄中輸入如下命令 T=0:pi/100:4*pi; Plot(t,ff(tt)4、 程序代碼如下:function f=fx(x) f=1./(x-2).2+0.1)+1./(x-3).4+0.01)4 實驗心得 通過對M函數(shù)與M文件的編寫與應(yīng)用使我對MATLAB的環(huán)境與工作空進(jìn)有了更近一步的熟悉,可以在文件保存對話框中選定目錄,填寫文件名并設(shè)置M文件保存在制定的目錄中,熟悉了M文件與M函數(shù)的編寫與應(yīng)用和MATLAB的控制語句與邏輯運算。實驗三 選擇與循環(huán)結(jié)構(gòu)程序的設(shè)計1. 實驗?zāi)康?、 掌握if語句、switch語句、try語句的使用。2、

8、掌握利用for語句、while語句實現(xiàn)循環(huán)結(jié)構(gòu)的方法。2. 實驗內(nèi)容1、 根據(jù)求(1) y<時的最大值;(2) 與(1)的n值對應(yīng)的y值。2、 已知 求f1f100中,最大值最小值、各數(shù)之和,以及正數(shù)、零、負(fù)數(shù)的個數(shù)。3、 輸入一個百分制成績,要求輸出成績等級A.B.C.D.E.其中,90100分為A,8089分為 B ,7079分為C,6069分明為D,60分一下為E。4、 求分段函數(shù)的值。用if語句實現(xiàn)輸出x=-0.5,-3.0,1.0,2.0,2.5,3.0,5.0時的y值。3 實驗程序及結(jié)果1、用for循環(huán),程序如下:for n=1:100%取足夠大的n值,這里取100 f(n)

9、=1./(2*n-1) y=sum(f) if y>=3 my=y-f(n)%y<3時的最大y值 mn=n-1%y<3時的最大n值 break endendmyMn運行結(jié)果如下:my = 2.9944mn = 562、程序代碼如下:f(1)=1,f(2)=0,f(3)=1for n=4:100 f(n)=f(n-1)-2*f(n-2)+f(n-3)enda=sum(f)%各數(shù)之和b=max(f)%最大值c=min(f)%最小值p=f=0,d=sum(p)%零的個數(shù)p1=f>0,e=sum(p1)%正數(shù)的個數(shù)p2=f<0,f=sum(p2)%負(fù)數(shù)的個數(shù)a,b,c,d

10、,e,f程序運行結(jié)果如下:a = -7.4275e+11b = 4.3776e+11c = -8.9941e+11d = 2e = 49f = 493、 程序代碼如下:per=input('輸入成績:')switch floor(per/10)%將grade向負(fù)無窮方向取整,不能為fix case 9 grade='A'%100>grade>=90 case 8 grade='B' case 7 grade='C' case 6 grade='D' case num2cell(0:5)%數(shù)值向量必須轉(zhuǎn)換

11、為元胞數(shù)組才能作為判決條件 grade='E' otherwise if per=100 grade='A'%grade=100 else grade='error'%grade<0或>100 endend程序運行,在命令窗口輸入成績后可顯示成績等級。4、 程序代碼如下:function y=ex3_4(x)for i=1:length(x) if (x(i)<0)&(x(i)=-3)%如果x為一向量,x<0只能是x的每個元素小于0才返回1 y(i)=x(i)2+x(i)-6elseif (x(i)>=0)&

12、amp;(x(i)<5)&(x(i)=2)&(x(i)=3) y(i)=x(i)2-5*x(i)+6else y(i)=x(i)2-x(i)-1endendy 程序運行如下:在命令窗口輸入下列語句:X=-5.0,-3.0,1.0,2.0,2.5,3.0,5.0,Y=ex3_4(x)有如下結(jié)果:y= 14.0000 11.0000 2.0000 1.0000 -0.2500 5.0000 19.00004 心得體會 本實驗是對循環(huán)與選擇結(jié)構(gòu)程序設(shè)計,在本實驗中有對IF語句SWITCH語句TRY語句的使用。其中有當(dāng)條件成立時,則執(zhí)行語句組,執(zhí)行完之后執(zhí)行IF語句的后續(xù)語句,若

13、條件不成立,則直接執(zhí)行IF語句的后續(xù)語句。而SWITCH語句是更具表達(dá)式的取值不同,分別執(zhí)行不同的語句。最后學(xué)習(xí)了循環(huán)結(jié)構(gòu)有FOR WHILE循環(huán)。,F(xiàn)OR循環(huán)變量可以為數(shù)據(jù),WHILE循環(huán)以不定次數(shù)求一組命令的值,而BREAK語句與CONTINUE語句他們一般與IF語句配合使用。 實驗四 繪圖函數(shù)的應(yīng)用1. 實驗?zāi)康?、 熟悉二維和三維繪圖函數(shù)的命令。2、 熟悉圖形修飾和控制方法。3、 了解特殊坐標(biāo)圖形的繪制。2. 實驗內(nèi)容1、 在同一圖形窗口繪制sinx,cosx曲線,要求用不同顏色和線型、數(shù)據(jù)點標(biāo)記字符,X軸范圍為0-2,y軸范圍為-2-2,并加注解說明sinx、cosx以區(qū)分,圖例注解

14、放置在圖形右下角。2、 定義函數(shù)myfun:y(1,2)=200sinx/x,x2,繪制該函數(shù)在X=-20-20區(qū)間內(nèi)的圖形。3、 試將圖形窗口分割成三個區(qū)域,分別格繪制y=lgx在0-100區(qū)間內(nèi)的對數(shù)坐標(biāo),x半對數(shù)坐標(biāo)及y半對數(shù)坐標(biāo),并加上標(biāo)題添加圖。4、 t=-3:0.125:3,x=cos2t,y=cos2t,z=x2+2*y2,請繪制帶有等高線的基于x,y,z的三維網(wǎng)格曲面圖,并填充顏色。坐標(biāo)軸范圍為-1,1,-1,1,0,2.5、 繪制出飽和非線性特性方程的曲線。3. 實驗程序及結(jié)果1、輸入的程序代碼如下:t=0:0.05:2*pi;plot(t,sin(t),'r-.o&

15、#39;,t,cos(t),'m-s')legend('sinx','cosx',4)axis(0 2*pi -2 2)運行結(jié)果如下:2、 程序代碼如下:function Y=myfun(x)Y(:,1)=200*sin(x(:)./x(:);Y(:,2)=x(:).2;程序運行結(jié)果如下:3、程序代碼如下:x=0:0.1:100;y=log10(x);subplot(311),loglog(x,y)gridtitle('loglog graph')subplot(312),semilogx(x,y)gridtitle('s

16、emilogx graph')subplot(313),semilogy(x,y)gridtitle('semilogy graph')程序運行結(jié)果如下:4、 程序代碼如下:t=-3:0.125:3;x=sin(2.*t);y=cos(2.*t);x,y=meshgrid(x,y);z=x.2+2*y.2;mesh(x,y,z)axis(-1 - -1 - 0 3)pausemeshc(x,y,z)pausesurf(x,y,z)運行結(jié)果如下:5、 程序代碼如下:x=-2:0.02:2;y=1.1*sign(x).*(abs(x)>1.1)+x.*(abs(x)&

17、lt;=1.1);plot(x,y)程序運行結(jié)果如下:4 心得體會本節(jié)學(xué)習(xí)了對MATLAB的繪圖使用,MATLAB可以提供很多圖形函數(shù),可以繪制二維,三維和一些專業(yè)的數(shù)據(jù)圖形,學(xué)習(xí)到了關(guān)于MATLAB其他控制函數(shù)的使用方法。其中對基本的繪圖命令,軸的形式與刻度設(shè)置以及圖形的標(biāo)注網(wǎng)格及圖例說明有了清楚的認(rèn)識,對各個命令如fplot subplot plotyy polar等有了基本的了解。在后章節(jié)對三維圖形的繪制有了一定的方法。對三維圖形的圖形繪制函數(shù)如surf mesh函數(shù)有了一定的認(rèn)識。 實驗六 Simulink仿真應(yīng)用1. 實驗?zāi)康?、 熟悉Simulink環(huán)境。2、 熟悉建立Sinuli

18、nk仿真框圖并進(jìn)行系統(tǒng)仿真。3、 熟悉編寫S函數(shù)和M函數(shù)對系統(tǒng)進(jìn)行仿真。2. 實驗內(nèi)容1、 Van der Pol 方程所描述系統(tǒng)的仿真。設(shè)置初始條件x1(0)=x2(0)=0.25,仿真時間t=20s及Van der Pol方程要求:(1) 繪出Simulink仿真模塊圖并進(jìn)行仿真得到系統(tǒng)的時間相應(yīng)和相平面圖。(2) 編寫M函數(shù)和M文件得到系統(tǒng)的時間響應(yīng)和相平面圖。(3) 編寫S函數(shù)并繪出S函數(shù)仿真框圖,仿真得到系統(tǒng)的時間響應(yīng)和相了、平面圖。2、 采用S函數(shù)來構(gòu)造非線性分段函數(shù)。 3. 實驗程序及結(jié)果1、 程序代碼如下:先編寫一個m函數(shù)文件如下:function xdot=vdpol(t,x

19、)xddot1(1)=x(1)*(1-x(2)2)-x(2);xdot1(2)=x(1);xdot=xdot1'然后編寫另一個M文件:ts=0 20;x0=0.25 0.25t,x=ode45('vdpol',ts,x0);subplot(121),plot(t,x)subplot(122),plot(x(:,1),x(:,2)程序運行結(jié)果如下:系統(tǒng)仿真塊圖如下:采用S函數(shù)編寫如下:function sys,x0,str,ts = sy6_13(t,x,u,flag) switch flag, case 0, sys,x0,str,ts=mdlInitializeSiz

20、es; case 1, sys=mdlDerivatives(t,x,u); case 3, sys=mdlOutputs(t,x,u); case 2,4,9 sys=; otherwise error('Unhandled flag = ',num2str(flag); end function sys,x0,str,ts=mdlInitializeSizes sizes = simsizes; sizes.NumContStates = 2;sizes.NumDiscStates = 0;sizes.NumOutputs = 2;sizes.NumInputs = 0;s

21、izes.DirFeedthrough = 0;sizes.NumSampleTimes = 1; % at least one sample time is needed sys = simsizes(sizes); x0 = 0.25;0.25; str = ; ts = 0 0; function sys=mdlDerivatives(t,x,u) sys(1)=1=x(1).*(1-x(2).2)-x(2);sys(2)=x(1); function sys=mdlOutputs(t,x,u) sys =x;然后繪制S函數(shù)仿真框圖:仿真可以得到與上圖一樣的結(jié)果。我用的的是matlab8

22、.0仿真得到的結(jié)果與書上不一致2、 編寫的S函數(shù)如下:function sys,x0,str,ts=ex5sf2(t,x,u,flag)switch flag,case 0, sys,x0,str,ts=mdlInitializeSizes;case 3, sys=mdlOutputs(t,x,u);case 1,2,4,9 sys=;otherwise error('Unhandled flag=',num2str(flag);endfunctionsys,x0,str,ts=mdlInitializeSizessizes= simsizes;sizes.NumContSta

23、tes= 0;sizes.NumDiscStates= 0;sizes.NumOutputs= 1;sizes.NumInputs= 1;sizes.DirFeedthrough= 1;sizes.NumSampleTimes= 1;sys=simsizes(sizes);x0=;str=;ts=0 0;function sys=mdlOutputs(t,x,u)if u<1 sys=3*sqrt(u);elseif u>=1&u<3 sys=3;elseif u>=3&u<4 sys=3-(u-3)2;elseif u>=4&u&l

24、t;5 sys=2;elseif u>=5&u<6 sys=2-(u-5)2;else sys=1;end系統(tǒng)框圖如下:仿真得到:4實驗心得 本章學(xué)習(xí)了SIMULINK仿真工具箱,知道了他是對動態(tài)系統(tǒng)進(jìn)行建模,仿真和分析的一個軟件包,支持連續(xù),離散及兩者混合的線性和非線性的系統(tǒng)仿真。知道了它的作用是提供了封裝和模塊化工具,提高了仿真的集成化和可視化程度,簡化了設(shè)計過程,減輕了設(shè)計負(fù)擔(dān)。更加熟悉的去編寫S函數(shù)和M函數(shù)并對系統(tǒng)進(jìn)行仿真 實驗七 線性系統(tǒng)分析與設(shè)計1. 實驗?zāi)康?、熟悉MATLAB控制系統(tǒng)工具箱。2、掌握MATLAB控制系統(tǒng)工具箱中進(jìn)行分析設(shè)計的函數(shù)命令。3、了解控制系統(tǒng)的計算機(jī)輔助分析與設(shè)計方法。2.實驗內(nèi)容1、設(shè)一高階系統(tǒng)的傳遞函數(shù)為將系統(tǒng)的傳遞函數(shù)模型轉(zhuǎn)換為狀態(tài)空間模型及零點增益模型。2、 已知二階系統(tǒng)傳遞函數(shù)為當(dāng)=1時,試計算阻尼比從0.11時的二階系統(tǒng)的階躍響應(yīng),并繪制階躍響應(yīng)三維網(wǎng)格曲面圖。3、 已知一系統(tǒng)的傳遞函數(shù)為繪制Bode圖、Nichlos圖、Nyquist圖。4、 設(shè)系統(tǒng)的開環(huán)傳遞函數(shù)為畫出系統(tǒng)的根軌跡,并求出臨界點(即跟在虛軸上)的增益。3. 實驗

溫馨提示

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

評論

0/150

提交評論