MATLAB仿真技术与应用实验指导书.doc

上传人:仙人指路1688 文档编号:2388370 上传时间:2023-02-17 格式:DOC 页数:86 大小:2.13MB
返回 下载 相关 举报
MATLAB仿真技术与应用实验指导书.doc_第1页
第1页 / 共86页
MATLAB仿真技术与应用实验指导书.doc_第2页
第2页 / 共86页
MATLAB仿真技术与应用实验指导书.doc_第3页
第3页 / 共86页
MATLAB仿真技术与应用实验指导书.doc_第4页
第4页 / 共86页
MATLAB仿真技术与应用实验指导书.doc_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《MATLAB仿真技术与应用实验指导书.doc》由会员分享,可在线阅读,更多相关《MATLAB仿真技术与应用实验指导书.doc(86页珍藏版)》请在三一办公上搜索。

1、MATLAB仿真技术与应用实验指导书(教师用)MATLAB是基于矩阵的一种计算工具,它已经成为世界各国高校和研究人员中最为流行的软件之一。它提供了丰富可靠的矩阵运算、数据处理、图形绘制、图像处理等便利工具,并且由于MATLAB的广泛应用,很多理论的创始人在MATLAB上开发了相关的工具箱,现在MATLAB附带的各方面工具箱有:控制系统、通讯、符号运算、小波计算、偏微分方程、数据统计、图像、金融、LMI控制、QFT控制、数字信号处理、模糊控制、模型预估控制、频域辨识、高阶谱分析、统计学、非线性控制系统、图像处理、神经元网络、m 分析、信号处理、插值、优化、鲁棒控制、控制系统设计、系统辨识等等,并

2、且MATLAB提供了图形化的时域仿真程序-Simulink,在高校中还开发有振动理论、化学统计学、语音处理等等方面的工具箱。本实验课的基本目标是学会使用MATLAB基本功能,为在科研中应用打下基础。主要应掌握在MATLAB中进行矩阵运算、多项式处理、控制语句、数字信号处理、基本绘图;掌握MATLAB的基本编程技巧,可以比较熟练的编写MATLAB程序;掌握SimuLink仿真的基本方法和元件构成,可以使用SimuLink建立一般的时域仿真程序;掌握MATLAB的优化工具箱、插值工具箱、符号运算几个通用工具箱的使用和基本函数。参考文献:1 薛定宇,陈阳泉基于MATLAB/Simulink的系统仿真

3、技术与应用北京:清华大学出版社,20022 苏晓生掌握MATLAB6.0及其工程应用北京:科学出版社,20023 崔怡MATLAB5.3实例详解北京:航空工业出版社,20004 孙亮. MATLAB语言与控制系统仿真. 北京:北京工业大学出版社,20015 黄文梅,杨勇,熊桂林,成晓明. 系统仿真分析与设计MATLAB语言工程应用. 长沙:国防科技大学出版社,20016 王沫然. Simulink4建模及动态仿真. 北京:电子工业出版社,20027 董景新,赵长德. 控制工程基础. 北京:清华大学出版社,19928 陈亚勇等编著. MATLAB信号处理详解. 北京:人民邮电出版社,20011

4、MATLAB语言基础实验1.1 MATLAB语言平台及基本运算一 实验目的1 学习了解MATLAB语言环境;练习MATLAB命令的基本操作;练习m文件的基本操作;2 学习MATLAB的基本矩阵运算;学习MATLAB的点运算;学习复杂运算;3 学习MATLAB的基本符号运算;学习MATLAB的矩阵符号运算。二 实验内容1 学习了解MATLAB语言环境(1) MATLAB语言操作界面:在命令提示符位置键入命令,完成下述练习。(2) 练习DOS相似命令,dir、type、cd(3) MATLAB的数据格式 合法的数据格式有:short、long、hex、shortE、longE、rational等。

5、键入a=pi;b=exp(1);改变数据结构,观察并记录变量值。在workspace里双击变量便可在弹出的窗口中进行修改。对api有short 3.1416; shortG 3.1416; shortE 3.1416e+000;long 3.14159265358979; longE 3.141592653589793e+000longG 3.14159265358979;hex 400921fb54442d18;rational 355/113(4) 变量查询,命令有who,whos,查询变量并作记录。who Your variables are:a b whosName Size Byte

6、s Class a 1x1 8 double array b 1x1 8 double arrayGrand total is 2 elements using 16 bytes(5) 目录与目录树结构:目录项显示命令dir查询当前目录项(6) 路径函数与搜索路径path 路径函数 which 文件定位(7) 联机帮助:help(8) 字符串查询:help lookfor(9) MATLAB语言演示:键入命令intro,阅读命令平台内容;键入命令demo,MATLAB语言功能演示。2 练习MATLAB命令的基本操作(1) 常数矩阵输入a=1 2 3 a=1;2;3 记录结果,并比较不同;b=1

7、 2 5 b=1 2 5; 记录结果,并比较不同;a a b b ;记录结果,比较变量加“”后的区别;c=a*b c=a*b 记录显示结果与出错原因;a=1 2 3;4 5 6;7 8 0 a2 a0.5 记录显示结果。a=1 2 3a = 1 2 3 a=1;2;3a = 1 23 b=1 2 5b = 1 2 5 b=1 2 5; aa = 1 2 3 aans = 1 2 3 bb = 1 2 5 bans = 1 2 5 c=a*bc = 1 2 5 2 4 10 3 6 15 c=a*b? Error using = *Inner matrix dimensions must agr

8、ee. a=1 2 3;4 5 6;7 8 0a = 1 2 3 4 5 6 7 8 0 a2ans = 30 36 15 66 81 42 39 54 69 a0.5ans = 0.5977 + 0.7678i 0.7519 + 0.0979i 0.5200 - 0.4680i 1.4102 + 0.1013i 1.7741 + 0.6326i 1.2271 - 0.7467i 1.2757 - 1.0289i 1.6049 - 1.0272i 1.1100 + 1.6175i(2) 循环命令程序makesum=0; for i=1:1:100 makesum=makesum+i;end键入

9、makesum,记录计算结果 makesummakesum = 5050(3) 执行下列命令a=1 2 3;4 5 6;7 8 0poly(a)、rank(a)、det(a)、trace(a)、inv(a)、eig(a)、diag(a)、tril(a)并观察记录显示结果,使用联机帮助help查阅相应的m函数的意义和函数格式,并作记录。poly 求特征多项式和由根求多项式rank 求矩阵的秩det 求行列式trace 矩阵的迹(对角线元素的和)inv 矩阵求逆eig 计算矩阵特征系统diag 建立或提取对角阵tril 下三角形矩阵 a=1 2 3;4 5 6;7 8 0a = 1 2 3 4 5

10、 6 7 8 0 poly(a)ans = 1.0000 -6.0000 -72.0000 -27.0000 rank(a)ans = 3 det(a)ans = 27 trace(a)ans = 6 inv(a)ans = -1.7778 0.8889 -0.1111 1.5556 -0.7778 0.2222 -0.1111 0.2222 -0.1111 eig(a)ans = 12.1229 -0.3884 -5.7345 tril(a)ans = 1 0 0 4 5 0 7 8 0 diag(a)ans = 1 5 03 练习m文件的基本操作:open、run4 MATLAB的基本矩阵

11、运算(1) 创建数值矩阵键入a=1 2 3;4 5 6;7 8 9 观察a(3,2),a(:,1)键入t=0:10;u=0:0.1:10,观察向量t,u的值键入 a(:,3)=2;3;4; a,观察矩阵a的变化键入b=1 1+2i;3+4i 3,观察复数矩阵 a=1 2 3;4 5 6;7 8 9a = 1 2 3 4 5 6 7 8 9 a(3,2)ans = 8 a(:,1)ans = 1 4 7 t=0:10t = 0 1 2 3 4 5 6 7 8 9 10 u=0:0.1:10u =略 a(:,3)=2;3;4; aa = 1 2 2 4 5 3 7 8 4 b=1 1+2i;3+4

12、i 3b = 1.0000 1.0000 + 2.0000i 3.0000 + 4.0000i 3.0000 (2) 生成特殊矩阵键入a=ones(3,3);b=zeros(2,2);c=eye(4);magic(4);观察特殊矩阵 a=ones(3,3)a = 1 1 1 1 1 1 1 1 1 b=zeros(2,2)b = 0 0 0 0 c=eye(4)c = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 magic(4)ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1(3) 矩阵乘、乘方、加减、右除、左除运算键入 a=0 1

13、0;0 0 1;-6 -11 -6; b=1 2;3 4;5 6; c=1 1 0;0 1 1;作矩阵乘运算v1=c*a v2=a*b v3=c*a*b v4=b*c v5=c*b矩阵乘方运算a2 a(1/2)矩阵加减运算a1=a+b*c a2=c*b-a(1:2,1:2) a3=a(1:2,2:3)+c*b矩阵右除(常规除) a/c矩阵左除 ab a=0 1 0;0 0 1;-6 -11 -6; b=1 2;3 4;5 6; c=1 1 0;0 1 1; v1=c*av1 = 0 1 1 -6 -11 -5 v2=a*bv2 = 3 4 5 6 -69 -92 v3=c*a*bv3 = 8

14、10 -64 -86 v4=b*cv4 = 1 3 2 3 7 4 5 11 6 v5=c*bv5 = 4 6 8 10 a2ans = 0 0 1 -6 -11 -6 36 60 25 a(1/2)ans = 0.0000 + 0.4894i -0.0000 - 0.5588i -0.0000 - 0.0482i 0.0000 + 0.2891i 0.0000 + 1.0195i -0.0000 - 0.2696i 0.0000 + 1.6179i 0.0000 + 3.2553i 0.0000 + 2.6374i a1=a+b*ca1 = 1 4 2 3 7 5 -1 0 0 a2=c*b

15、-a(1:2,1:2)a2 = 4 5 8 10 a3=a(1:2,2:3)+c*ba3 = 5 68 11 ar=a/car = 0.3333 0.3333 -0.3333 0.6667 -5.6667 -5.6667 al=abal = -5.6667 -8.6667 1.0000 2.0000 3.0000 4.0000(4) 矩阵特征运算完成如下矩阵特征运算a、poly(a)、rank(a)、det(a)、trace(a)、inv(a)、eig(a)、diag(a)、tril(a)见练习2 5MATLAB的点运算(1) 练习点乘与点除a1=1 2;3 4; a2=0.2*a1;观察 a

16、1 a2 a1.*a2 a1./a2 a1=1 2;3 4; a2=0.2*a1; a1 a2ans = 1.0000 2.0000 0.2000 0.4000 3.0000 4.0000 0.6000 0.8000 a1.*a2 a1./a2ans = 0.2000 0.8000 5.0000 5.0000 1.8000 3.2000 5.0000 5.0000(2) 正弦、余弦函数 t=0:2*pi/180:2*pi; y1=sin(t);y2=cos(t); y=y1.*y2; plot(t,y y1 y2);(3) 复变函数 w=0.1:0.1:2;g1=(1+0.5*w*i)/(1-

17、0.5*w*i);g1g2=(1+0.5*w*i)./(1-0.5*w*i);plot(g2);xlabel(real g2(w);ylabel(imag g2(w);axis(square) g1g1 = -1.0296 g2g2 = 略6多项式运算(1) 建立多项式向量 ap=1 3 3 1; b=-1 -2 -3;bp=poly(b)bp = 1 6 11 6(2) 多项式乘与根 p=conv(ap,bp) p = 1 9 32 58 57 29 6 roots(p)ans = -3.0000 -2.0000 -1.0003 -1.0000 + 0.0003i -1.0000 - 0.0

18、003i -0.9997 (3) 多项式运算 a=1 2 3 4;b=1 -1; c=a+zeros(1,length(a)-length(b),b; cc =1 2 4 3 poly2str(c,x)ans = x3 + 2 x2 + 4 x + 3 polyvalm(a,3)ans =58 poly2str(c,x) Return polynomial as string,consisting of the polynomial coefficients in the vector c, multiplied by powers of the transform variable x po

19、lyvalm 矩阵多项式求值7数值分析(1) 基本统计 a=randn(1,100) 略 am=mean(a)am = -0.1270 as=std(a)as =0.9447 amed=median(a)amed = -0.2074(2) 快速傅立叶变换 t=1:256; y=sin(2*pi/8*t)+rand(size(t); ty=fft(y); subplot(211),plot(t,y);subplot(212),plot(t,ty); 8基本符号运算(1) 符号微分、积分 f1=sin(2*t); df1=diff(f1) df1 = 2*cos(2*t) if1=int(f1)

20、if1 = -1/2*cos(2*t)(2) 符号代数方程求解 f=a*x2+b*x+c=0; ef=solve(f) ef = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2)(3) 符号微分方程求解 f=D2x+2*Dx+10*x=0;g=Dx(0)=1,x(0)=0; dfg=dsolve(f,g) dfg = 1/3*exp(-t)*sin(3*t)9矩阵符号运算(1) 创建与修改符号矩阵 G1=sym(1/(s+1),s/(s+1)/(s+2);1/(s+1)/(s+2),s/(s+2) G1 = 1/(s+1), s/(s+1)

21、/(s+2) 1/(s+1)/(s+2), s/(s+2) G2=sym(G1,1,1) G2 = 1/(s+1)(2) 符号线性代数inv 符号矩阵求逆 determ 符号矩阵行列式eigensys 符号矩阵特征值 transpose 符号矩阵转置 G1=sym(1/(s+1),s/(s+1)/(s+2);1/(s+1)/(s+2),s/(s+2); inv(G1) ans = (s+2)/(s2+3*s+1)*(s+1)2, -(s+1)*(s+2)/(s2+3*s+1) -(s+1)*(s+2)/s/(s2+3*s+1), (s+1)/s/(s2+3*s+1)*(s+2)2 determ

22、(G1) ans = s*(s2+3*s+1)/(s+1)2/(s+2)2 eigensys(G1) ans = (1/2*s2+s+1+1/2*(s4-4*s2+4*s+4)(1/2)/(s+1)/(s+2) (1/2*s2+s+1-1/2*(s4-4*s2+4*s+4)(1/2)/(s+1)/(s+2) transpose(G1) ans = 1/(s+1), 1/(s+1)/(s+2) s/(s+1)/(s+2), s/(s+2)(3) 符号表达式运算symadd 符号加运算 symsub 符号减运算symmul 符号乘运算 symdiv 符号除运算sympow 符号乘方运算 symop

23、 综合符号运算 d1=1/(s+1);d2=1/(s+2);d=symmul(d1,d2) d = 1/(s+1)/(s+2) ad=sym(s+1 s;0 s+2);G=symmul(d,ad) G = 1/(s+2), 1/(s+1)/(s+2)*s 0, 1/(s+1) x=x; f=symop(1,+,x,+,x,2,/,2); symop(f,-,int(diff(f) ans = 1 symop(exp(x),/,(,f,+,x,3,/,6,) ans = exp(x)/(1+x+1/2*x2+1/6*x3) G=sym(c,s;-s,c); symop(G,*,transpose

24、(G) ans = c2+s2, 0 0, c2+s2 n1=1 2 3 4 5;n2=1 2 3; p1=poly2sym(n1);p2=poly2sym(n2); p=symadd(p1,p2) p = x4+2*x3+4*x2+6*x+8 pn=sym2poly(p)pn = 1 2 4 6 8三 实验报告要求完成上述各题给定要求并做好实验记录。1.2 MATLAB绘图基础一 实验目的1. 学习MATLAB的各种二维绘图和三维绘图;2. 学习MATLAB的绘图修饰(多种绘图,图形注释,绘图颜色)。二 实验内容 1. 基本二维绘图(1) 向量绘图x=0:2*pi/100:2*pi;y1=s

25、in(2*x);y2=cos(2*x);plot(x,y1)plot(x,y2)plot(x,y1,x,y2)保持作图plot(x,y1);hold on;plot(x,y2);hold off;矩阵作图plot(x,y1y2)设定颜色与线型plot(x,y1,c:,x,y2,wo)多窗口绘图figure(1);plot(x,y1);figure(2);plot(x,y2);子图绘图subplot(221);plot(x,y1);subplot(222);plot(x,y2);subplot(223);plot(x,y1,x,y1+y2);subplot(224);plot(x,y2,x,y1

26、-y2);复变函数绘图w=0.01:0.01:10;G=1./(1+2*w*i);subplot(121);plot(G);subplot(122);plot(real(G),imag(G);插值绘图x=0:2*pi/8:2*pi;y=sin(x);plot(x,y,o);hold on;xi=0:2*pi/100:2*pi;yi=spline(x,y,xi);plot(xi,yi,m);反白绘图与绘图背景色设定whitebgwhitebg(b)whitebg(k)(2) 函数绘图fplot(sin,0 4*pi)f=sin(x);fplot(f,0 4*pi)fplot(sin(1/x),0

27、.01 0.1,1e-3)fplot(tan(x),sin(x),cos(x),-2*pi,2*pi,-2*pi,2*pi)(3) 符号函数快捷绘图f=exp(-0.5*x)*sin(x);ezplot(f,0 10)2. 多种二维绘图(1) 半对数绘图(频率特性绘图)w=logspace(-1,1); 横坐标对数分度g=20*log10(1./(1+2*w*i); 幅值纵坐标取分贝(dB)p=angle(1./(1+2*w*i)*180/pi; 相角纵坐标取度()subplot(211);semilogx(w,g);grid; 幅频特性子图,半对数绘图,加网线subplot(212);sem

28、ilogx(w,p);grid; 相频特性子图,半对数绘图,加网线(2) 极坐标绘图t=0:2*pi/180:2*pi;mo=cos(2*t);polar(t,mo);(3) 直方图t=0:2*pi/8:2*pi;y=sin(t);bar(t,y)(4) 离散棒图 t=0:2*pi/8:2*pi;y=sin(t);stem(t,y)(5) 阶梯图t=0:2*pi/8:2*pi;y=sin(t);stairs(t,y)(6) 彗星绘图t=-pi:pi/200:pi;comet(t,tan(sin(t)-sin(tan(t); 3. 图形注释y1=dsolve(D2u+2*Du+10*u=0,Du

29、(0)=1,u(0)=0,x);y2=dsolve(D2u+2*Du+10*u=10,Du(0)=0,u(0)=0,x);y=sym(0 0);y=sym(y,1,1,y1);y=sym(y,1,2,y2);fplot(y,0,5)title(二阶系统时间响应); 图题标注xlabel(时间t);ylabel(响应幅值y); 坐标标注gtext(零输入响应); 用鼠标作曲线标注gtext(零状态响应); 用鼠标作曲线标注grid 加网格线4. 基本三维绘图t=0:pi/50:10*pi;plot3(sin(t),cos(t),t);comet3(sin(t),cos(t),t);三、实验报告要

30、求按照上述步骤进行实验,记录实验结果并完成实验报告。1.3 MATLAB工具箱一 实验目的2. 学习了解MATLAB常用工具箱的基本内容;3. 学习MATLAB工具箱的查询与使用。二实验内容1Toolbox工具箱在工具箱中有公用工具箱,也有各种专用工具箱,几个常用的工具箱为:控制系统工具箱、Matlab主工具箱、神经网络工具箱、最优化工具箱、信号处理工具箱、系统仿真工具箱、系统辨识工具箱、符号运算工具箱等。2工具箱函数清单的获得各专用工具箱都备有清单文件contents.m,可以用下列方法得到工具箱函数清单。(a) 执行在线帮助命令;(b) 使用type命令得到工具箱函数清单;(c) 如果MA

31、TLAB在当前工具箱目录下,执行命令 help contents得到该工具箱函数清单;(d) 通过任何文本编辑器打开阅读。3检索matlab主工具库的完整结构并记录(1)在toolbox下执行命令cd matlabdir记录matlab主工具库中各库的名称。 cd matlab dir. datatypes funfun graphics ops specgraph verctrl . demos general iofun polyfun strfun winfun audio elfun graph2d lang sparfun timefun datafun elmat graph3d

32、matfun specfun uitools (2)查阅并记录几个函数库的功能,如help datafun。 help datafun Data analysis and Fourier transforms.略4MATLAB函数的查阅和定位(1)执行peakstype peaks得到peaks.m函数清单。阅读该函数清单,并确定下面的matlab函数在工具箱中的位置。if nargin isstudent meshgrid max size disp surf axis xlabel peakstype peaks z = 3*(1-x).2.*exp(-(x.2) - (y+1).2) .

33、 - 10*(x/5 - x.3 - y.5).*exp(-x.2-y.2) . - 1/3*exp(-(x+1).2 - y.2) (2)执行 fitdemo type fitdemo得到fitdemo.m非线形曲线拟和演示函数的清单。阅读该函数清单,并确定程序中一些所用到的函数在工具箱中的位置。 fitdemo type fitdemo5执行下述程序,阅读程序清单,确定程序中MATLAB命令的定位klein1 克莱恩瓶Klein bottle generated by revolving a figure-8 curve. Thanks to C. Henry Edwards, Dept.

34、 of Mathematics, University of Georgia. File name: klein1.mspharm2 和谐三维曲面Spherical harmonics are the spherical version of Fourier series. They can be used to model the free oscillations of the earth. The image pictured is the spherical harmonic of degree 6, order 1, and amplitude 2 plotted on the su

35、rface of a sphere of radius 5. File name: spharm2.m tori4 无结4环曲面Four-linked unknotted tori generated by revolving four off-center circles. Thanks to C. Henry Edwards, Dept. of Mathematics, University of Georgia. File name: tori4.m三实验报告要求 按照上述步骤进行实验,并按实验记录完成实验报告。1.4 m函数程序设计一 实验目的1学习m函数的基本结构;2练习简单的m函数

36、程序设计。二实验内容编制单摆动画程序mypend.m。单摆系统的运动如图所示, 忽略空气阻力后,当摆角较小时,简化的运动方程为式中,为摆动角度,为摆线长度,为重力加速度。从初始任意位置开始的自由运动为 其参数为 ,按照下述步骤编制m函数程序。1. 启动MATLAB,将空白的工作空间内容保存为mypend.m,并打开该空白文件。2. 书写m函数定义行,function=mypend()3. 在基本注释部分书写程序说明4. 在扩充注释部分书写参数说明。扩充注释部分由空行分隔。5. 书写主程序体程序。三 实验报告要求在完成上述程序设计中,应用help命令查阅相关matlab函数的功能和使用格式,并完成如下程序结构说明。a) while-end循环结构b) for-end循环结构c) if-else-end分支结构%本程序为单摆系统运动的动画演示程序。%运动方程为D2x+g/L*x=0,g为重力加速度,L为摆长,x为摆角。%x0=pi/6,L=1。%*设计,2003年1月。%单摆初始位置theta0=input(请输入初始摆角 sita(0-pi/2)=,s);theta0=str2nu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号