ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:94.91KB ,
资源ID:7453454      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7453454.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中南大学系统仿真实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

中南大学系统仿真实验报告.docx

1、中南大学系统仿真实验报告实验一 MATLAB中矩阵与多项式的基本运算实验任务1了解MATLAB命令窗口和程序文件的调用。2熟悉如下MATLAB的基本运算: 矩阵的产生、数据的输入、相关元素的显示; 矩阵的加法、乘法、左除、右除; 特殊矩阵:单位矩阵、“1”矩阵、“0”矩阵、对角阵、随机矩阵的产生和运算; 多项式的运算:多项式求根、多项式之间的乘除。基本命令训练1、 eye(2)ans = 1 0 0 1 eye(4)ans = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 12、 ones(2)ans = 1 1 1 1 ones(4)ans = 1 1 1 1 1 1 1 1

2、1 1 1 1 1 1 1 1 ones(2,2)ans = 1 1 1 1 ones(2,3)ans = 1 1 1 1 1 1 ones(4,3)ans = 1 1 1 1 1 1 1 1 1 1 1 13、 zeros(2)ans = 0 0 0 0 zeros(4)ans = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 zeros(2,2)ans = 0 0 0 0 zeros(2,3)ans = 0 0 0 0 0 0 zeros(3,2)ans = 0 0 0 01 04、随机阵 rand(2,3)ans = rand(2,3)ans = 5、 diag(5)a

3、ns = 5 diag(5,5)ans = 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diag(2,3)ans = 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 06、(inv(A)为求A的逆矩阵) B=5 3 1;2 3 8;1 1 1,inv(B)B = 5 3 1 2 3 8 1 1 1ans = A=2 3;4 4,B=5 3;3 8,inv(A),inv(B);AB,A/B,inv(A)*B,B*inv(A)A = 2 3 4 4B = 5 3 3 8ans = ans

4、 = ans = ans = ans = 7、 p =1,-6,-72,-27, roots(p)p = 1 -6 -72 -27ans = p=2,3,6,roots(p)p = 2 3 6ans = + - 8、(A为n*n的方阵) A=0 1 0;-4 4 0;-2 1 2,poly(A),B=sym(A),poly(B)A = 0 1 0 -4 4 0 -2 1 2ans = 1 -6 12 -8 B = 0, 1, 0 -4, 4, 0 -2, 1, 2 ans = x3-6*x2+12*x-89,、(conv是多项式相乘,deconv是多项式相除) u=1 2 4 6 ,v=5 0

5、 0 -6 7,conv(u,v)u = 1 2 4 6v = 5 0 0 -6 7ans = 5 10 20 24 -5 -10 -8 42 v=1 2 4 6 ,u=5 0 0 -6 7,deconv(u,v)v = 1 2 4 6u = 5 0 0 -6 7ans = 5 -1010、(点乘是数组的运算,没有点的乘是矩阵运算) a = 2 5;3 4, b =3 1;4 7,a.*b,a*ba = 2 5 3 4b = 3 1 4 7ans = 6 5 12 28ans = 26 3725 31 a = 2 3; b = 4 7;a.*b = 8 21;a*b %错误a*b = 29;1

6、1、(who 可以看到你用过的一些变量,whos是把该变量及所存储的大小等信息都显示出来了) whoYour variables are:A B a ans b p u v whos Name Size Bytes Class Attributes A 2x2 32 double B 2x2 32 double a 1x2 16 double ans 1x2 16 double b 1x2 16 double p 1x3 24 double u 1x5 40 double v 1x4 32 double 12、 A=2 5 3;6 5 4,disp(A),size(A),length(A)A

7、= 2 5 3 6 5 4 2 5 3 6 5 4ans = 2 3ans = 3实验二 MATLAB绘图命令实验任务 熟悉MATLAB基本绘图命令,掌握如下绘图方法: 1坐标系的选择、图形的绘制; 2图形注解(题目、标号、说明、分格线)的加入; 3图形线型、符号、颜色的选取。基本命令训练1、t=0:pi/360:2*pi;x=cos(t)+ cos(t*4);y=sin(t)+ sin(t*4);xlabel(x轴);ylabel(y轴);plot(y,x),grid; 2、t=0:100;x=3*t;y=4*t;z=sin(2*t);plot3(x,y,z,g:)3、x = linspac

8、e(-2*pi,2*pi,40);y=sin(x);stairs(x,y) 4、t=0:pi/360:2*pi;x=cos(t)+ cos(t*4) + sin(t*4);y=sin(t)+ sin(t*4);plot(y,x,r:);xlabel(x轴);ylabel(y轴); 5、th=0:pi/1000:2*pi;r=cos(2*th);polar(th,r);title(四叶草图)6、th=0:pi/20:2*pi;x=exp(j*th);plot(real(x),imag(x),r-.) ;grid; text(0,0,中心) ; 7、x=-2:2;8、y=-2:2;9、X,Y =

9、meshgrid(x,y);Z = Y.*exp(-X.2-Y.2);C,h = contour(X,Y,Z);set(h,ShowText,on,TextStep,get(h,LevelStep)*2)8、x = 0:10;y = 2*x+3;subplot(411);plot(x,y); grid;title(y的原函数);subplot(412) ;semilogy(x,y); grid;title(对y取对数);subplot(413) ;semilogx(x,y); grid;title(对x取对数);subplot(414) ;loglog(x,y);grid;title(对xy均

10、取对数); 9、x = -3:3;bar(x,exp(-x.*x),g) 实验三 MATLAB程序设计实验任务 1熟悉MATLAB程序设计的方法和思路; 2掌握循环、分支语句的编写,学会使用look for、help命令。程序举例1、f=1,1;i=1;while f(i)+f(i+1)m=3;n=4;for i=1:m for j=1:n a(i,j)=1/(i+j-1); endendformat rataa = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 (分数格式形式。用有理数逼近显示数据)m=5;n=4;for i=1:m for j=

11、1:n a(i,j)=1/(i+j-1); endend format rataa = 1 1/2 1/3 1/4 1/2 1/3 1/4 1/5 1/3 1/4 1/5 1/6 1/4 1/5 1/6 1/7 1/5 1/6 1/7 1/8 3、程序中没有format rat命令时,如果上次运行结果没有清除,输出的结果就是上次运行的结果!但是运用clear命令清楚之前的运行结果之后就会正常运行。4、x=input(请输入x的值:); if x=10 y=cos(x+1)+sqrt(x*x+1); else y=x*sqrt(x+sqrt(x); end y请输入x的值:2y = 2391/6

12、47x=input(请输入x的值:); if x=10 y=fprintf(不在定义域内,请重新输入:);return else y=1/(x-10); end y请输入x的值:2y = -1/85、p=0 0 0 1 3 0 2 0 0 9;for i=1:length(p),if p(1)=0,p=p(2:length(p); end;end;pp = Columns 1 through 5 1 3 0 2 0 Columns 6 through 7 0 9 p=0 0 0 1 3 0 2 0 0 9;p(p=0)=;pp = 1 3 2 96、 e2(500)ans = 1 1 2 3

13、5 8 13 21 34 55 89 144 233 377 lookfor ffibnoe2 - ffibno 计算斐波那契亚数列的函数文件 help e2 ffibno 计算斐波那契亚数列的函数文件 n可取任意自然数 程序如下(用法: lookfor 关键词在所有M文件中找“关键词”,比如:lookfor max(即寻找关键词“max”)其实就和我们平时用CTRL+F来查找“关键词”是一样的而help是显示matlab内置的帮助信息 用法:help 命令,比如 help inv ,作用就是调用inv这个命令的帮助)程序设计题用一个MATLAB语言编写一个程序:输入一个自然数,判断它是否是素

14、数,如果是,输出“It is one prime”,如果不是,输出“It is not one prime.”。要求通过调用子函数实现。最好能具有如下功能:设计较好的人机对话界面,程序中含有提示性的输入输出语句。能实现循环操作,由操作者输入相关命令来控制是否继续进行素数的判断。如果操作者希望停止这种判断,则可以退出程序。如果所输入的自然数是一个合数,除了给出其不是素数的结论外,还应给出至少一种其因数分解形式。例:输入 6, 因为6不是素数。则程序中除了有“It is not one prime”的结论外,还应有:“6=2*3”的说明。function sushuwhile 1 x=input(

15、 请输入一个自然数);if x a=sym(a11 a12;a21 a22);da=det(a)ea=eig(a)da = a11*a22-a12*a21 ea = 1/2*a11+1/2*a22+1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2) 1/2*a11+1/2*a22-1/2*(a112-2*a11*a22+a222+4*a12*a21)(1/2)a=sym(2 3;1 5);da=det(a)ea=eig(a)da =7ea = 7/2+1/2*21(1/2) 7/2-1/2*21(1/2)2. 求方程的解(包括精确解和一定精度的解) r1=solv

16、e(x2+x-1)rv=vpa(r1)rv4=vpa(r1,4)rv20=vpa(r1,20) r1 = 1/2*5(1/2)-1/2 -1/2*5(1/2)-1/2rv = .560 rv4 = .6180 rv20 = .6484820 3 a=sym(a);b=sym(b);c=sym(c);d=sym(d); %定义4个符号变量w=10;x=5;y=-8;z=11; %定义4个数值变量A=a,b;c,d %建立符号矩阵AB=w,x;y,z %建立数值矩阵Bdet(A) %计算符号矩阵A的行列式det(B) %计算数值矩阵B的行列式A = a, b c, dB = 10 5 -8 11

17、ans = a*d-b*cans = 1504. syms x y;s=(-7*x2-8*y2)*(-x2+3*y2);expand(s) %对s展开collect(s,x) %对s按变量x合并同类项(无同类项)factor(ans) % 对ans分解因式ans =7*x4-13*x2*y2-24*y4ans = 7*x4-13*x2*y2-24*y4 ans = (8*y2+7*x2)*(x2-3*y2)5. 对方程 AX=b求解 A=34,8,4;3,34,3;3,6,8;b=4;6;2;X=linsolve(A,b) %调用linsolve函数求解Ab %用另一种方法求解X = ans

18、= 6 对方程组求解a11*x1+a12*x2+a13*x3=b1a21*x1+a22*x2+a23*x3=b2a31*x1+a32*x2+a33*x3=b3syms a11 a12 a13 a21 a22 a23 a31 a32 a33 b1 b2 b3;A=a11,a12,a13;a21,a22,a23;a31,a32,a33;b=b1;b2;b3;XX=Ab %用左除运算求解(X=linsolve(A,b) %调用linsolve函数求的解)XX = (a12*a23*b3-a12*b2*a33+a13*a32*b2-a13*a22*b3+b1*a22*a33-b1*a32*a23)/(

19、a11*a22*a33-a11*a32*a23-a12*a21*a33+a32*a21*a13-a22*a31*a13+a31*a12*a23) -(a11*a23*b3-a11*b2*a33-a21*a13*b3-a23*a31*b1+b2*a31*a13+a21*b1*a33)/(a11*a22*a33-a11*a32*a23-a12*a21*a33+a32*a21*a13-a22*a31*a13+a31*a12*a23) (a32*a21*b1-a11*a32*b2+a11*a22*b3-a22*a31*b1-a12*a21*b3+a31*a12*b2)/(a11*a22*a33-a11

20、*a32*a23-a12*a21*a33+a32*a21*a13-a22*a31*a13+a31*a12*a23)7syms a b t x y z;f=sqrt(1+exp(x);diff(f) %未指定求导变量和阶数,按缺省规则处理f=x*cos(x);diff(f,x,2) %求f对x的二阶导数diff(f,x,3) %求f对x的三阶导数f1=a*cos(t);f2=b*sin(t);diff(f2)/diff(f1) %按参数方程求导公式求y对x的导数ans = 1/2/(1+exp(x)(1/2)*exp(x) ans = -2*sin(x)-x*cos(x) ans = -3*co

21、s(x)+x*sin(x) ans = -b*cos(t)/a/sin(t)三、SIMULINK的使用其中:R(s)为阶跃输入,C(s)为输出 仿真图:波形图:实验五 MATLAB在控制系统分析中的应用实验任务1掌握MATLAB在控制系统时间响应分析中的应用;2掌握MATLAB在系统根轨迹分析中的应用; 3. 掌握MATLAB控制系统频率分析中的应用; 4. 掌握MATLAB在控制系统稳定性分析中的应用基本命令 1. step 2. impulse 3. initial 4. lsim 5. rlocfind 6. bode 7. margin 8. nyquist 9. Nichols 10

22、. cloop程序举例1. 求下面系统的单位阶跃响应 num=4 ; den=1 , 1 , 4 ;step(num , den)y , x , t=step(num , den) ;tp=spline(y , t , max(y) %计算峰值时间max(y) %计算峰值tp = ans =2. 求如下系统的单位阶跃响应 a=0,1;-6,-5;b=0;1;c=1,0;d=0;y,x=step(a,b,c,d);plot(y)3. 求下面系统的单位脉冲响应: num=4 ; den=1 , 1 ,4 ;impulse(num,den)4. 已知二阶系统的状态方程为:求系统的零输入响应和脉冲响应

23、。 a=0 , 1 ; -10 , -2 ; b=0 ; 1 ;c=1 , 0 ; d=0 ;x0=1 ,0;subplot(1 , 2 , 1) ; initial(a , b , c ,d,x0)subplot(1 , 2 , 2) ; impulse(a , b , c , d)5:系统传递函数为:输入正弦信号时,观察输出 信号的相位差。 num=1 ; den=1 , 1 ;t=0 : : 10 ;u=sin(2*t) ; hold onplot(t,u, r)lsim(num,den,u,t)6. 有一二阶系统,求出周期为4秒的方波的输出响应 num=2 5 1;den=1 2 3;

24、t=(0:.1:10);period=4;u=(rem(t,period)=period./2);%看rem函数功能lsim(num,den,u,t);7. 已知开环系统传递函数,绘制系统的根轨迹,并分析其稳定性 num=1 2;den1=1 4 3;den=conv(den1,den1);figure(1)rlocus(num,den)k,p= rlocfind(num,den) figure(2)k=55;num1=k*1 2;den=1 4 3;den1=conv(den,den);num,den=cloop(num1,den1,-1);impulse(num,den)title(imp

25、ulse response (k=55) )figure(3)k=56;num1=k*1 2;den=1 4 3;den1=conv(den,den);num,den=cloop(num1,den1,-1);impulse(num,den)title(impulse response(k=56)Select a point in the graphics windowselected_point = - k = p = + - 8. 作如下系统的bode图 n=1 , 1 ; d=1 , 4 , 11 , 7 ; bode(n , d),grid on9. 系统传函如下 求有理传函的频率响应,然后在同一张图上绘出以四阶伯德近似表示的系统频率响应 num=1;den=conv(1 2,conv(1 2,1 2); w=logspace(-1,2); t=;m1,p1=bode(num,den,2);p1=p1-t*w*180/pi;n2,d2=pade(t,4);numt=conv(n2,num);dent=(conv(den,d2);m2,p2=bode(numt,dent,w);subplot(2,1,1)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1