MATLAB仿真 课后习题

合集下载

matlab课后习题答案(附图)

matlab课后习题答案(附图)

matlab课后习题答案(附图)习题2.1画出下列常见曲线的图形y (1)⽴⽅抛物线3x命令:syms x y;ezplot('x.^(1/3)')(2)⾼斯曲线y=e^(-X^2);命令:clearsyms x y;ezplot('exp(-x*x)')(3)笛卡尔曲线命令:>> clear>> syms x y;>> a=1;>> ezplot(x^3+y^3-3*a*x*y)(4)蔓叶线命令:>> clear>> syms x y;>> a=1ezplot(y^2-(x^3)/(a-x))(5)摆线:()()tsin-=,=-by1命令:>> clear>> t=0:0.1:2*pi;>> x=t-sin(t);>>y=2*(1-cos(t)); >> plot(x,y)7螺旋线命令:>> clear >> t=0:0.1:2*pi; >> x=cos(t); >> y=sin(t); >> z=t;>>plot3(x,y,z)(8)阿基⽶德螺线命令:clear>> theta=0:0.1:2*pi;>> rho1=(theta);>> subplot(1,2,1),polar(theta,rho1)(9) 对数螺线命令:cleartheta=0:0.1:2*pi;rho1=exp(theta);subplot(1,2,1),polar(theta,rho1)(12)⼼形线命令:>> clear >> theta=0:0.1:2*pi; >> rho1=1+cos(theta); >> subplot(1,2,1),polar(theta,rho1)练习2.21. 求出下列极限值(1)nnn n3→命令:>>syms n>>limit((n^3+3^n)^(1/n)) ans = 3(2))121(lim n n n n ++-+∞→命令:>>syms n>>limit((n+2)^(1/2)-2*(n+1)^(1/2)+n^(1/2),n,inf) ans = 0(3)x x x 2cot lim 0→命令:syms x ;>> limit(x*cot(2*x),x,0) ans = 1/2 (4))(coslimcm xx ∞→命令:syms x m ; limit((cos(m/x))^x,x,inf) ans = 1(5))111(lim 1--→exx x命令:syms x>> limit(1/x-1/(exp(x)-1),x,1) ans =(exp(1)-2)/(exp(1)-1) (6))(2lim x x xx -+∞>> limit((x^2+x)^(1/2)-x,x,inf)ans = 1/2练习2.41. 求下列不定积分,并⽤diff 验证:(1)+x dxcos 1>>Clear >> syms x y >> y=1/(1+cos(x)); >> f=int(y,x) f =tan(1/2*x) >> y=tan(1/2*x); >> yx=diff(y ,x); >> y1=simple(yx) y1 =1/2+1/2*tan(1/2*x)^2 (2)+exdx1clear syms x yy=1/(1+exp(x));f=int(y,x) f =-log(1+exp(x))+log(exp(x)) syms x yy=-log(1+exp(x))+log(exp(x)); yx=diff(y,x); y1=simple(yx) y1 = 1/(1+exp(x)) (3)dx x x ?sin 2syms x yy=x*sin(x)^2; >> f=int(y,x) f =x*(-1/2*cos(x)*sin(x)+1/2*x)-1/4*cos(x)^2-1/4*x^2 clearsyms x y y=x*(-1/2*cos(x)*sin(x)+1/2*x)-1/4*cos(x)^2-1/4*x^2; yx=diff(y,x); >> y1=simple(yx) y1 = x*sin(x)^2 (4)xdx ?sec3syms x y y=sec(x)^3;f=int(y,x) f =1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x)) clear syms x yy=1/2/cos(x)^2*sin(x)+1/2*log(sec(x)+tan(x)); yx=diff(y,x); y1=simple(yx) y1 =1/cos(x)^32. 求下列积分的数值解 1)dx x-10clearsyms xy=int(x^(-x),x,0,1) y =int(x^(-x),x = 0 .. 1) vpa(y,10) ans =1.291285997 2)xdx e x cos3202?πclearsyms xy=int(exp(2*x)*cos(x)^3,x, clear syms xy=int((1/(2*pi)^(1/2))*exp(-x^2/2),x,0,1) y =7186705221432913/36028797018963968*erf(1/2*2^(1/2))*2^(1/2)*pi^(1/0,2*pi) y =22/65*exp(pi)^4-22/65vpa(ans,10)(3)dx xe21221-π>> clear >> syms x>> y=int(1/(2*pi)^(1/2)*exp(-x^2/2),0,1); >> vpa(y,14) ans =.341344746068552(4)>> clear >> syms x>> y=int(x*log(x^4)*asin(1/x^2),1,3); Warning: Explicit integral could not be found. > In sym.int at 58 >> vpa(y,14) ans = 2.45977212823752(5) >> clear >> syms x1判断下列级数的收敛性,若收敛,求出其收敛值。

MATLAB语言与控制系统仿真-参考答案-第7章

MATLAB语言与控制系统仿真-参考答案-第7章

7.3控制系统根轨迹分析MATLAB 仿真实训7.3.1实训目的1. 掌握运用MATLAB 绘制180度、0度根轨迹图的编程方法;2. 学会通过根轨迹图获取相关信息的方法;3. 利用仿真结果对系统根轨迹进行分析;4.学会通过根轨迹图分析和解决一些实际问题。

7.3.2实训内容1. 单位反馈系统的开环传递函数为试编程绘制闭环系统的根轨迹。

并回答 (1 )闭环系统稳定的 K g 的取值范围; (2 )系统的阶跃响应有超调的 Kg 的取值范围;(3 )分离点的坐标。

%ggj01.mz=[-1]; p=[0;-2;-3]; k=[1]; sys=zpk(z,p,k);系统的阶跃响应有超调的 K g 的取值范围:K g 0.419分离点的坐标:d 2.472. 设单位反馈控制系统的开环传递函数为G(s) s(s 1)(s 3.5)(s 2 6s 13)试编程绘制闭环系统的根轨迹。

并回答G(s)Kg(S 1) s(s 2)(s 3)(1 )闭环系统稳定的K的取值范围;(2) 根轨迹与虚轴的交点坐标; (3) 分离点的坐标。

ggj02.m%根轨迹仿真实训第 2题 n=1;d=co nv([1,0],co nv([1,1],co nv([1,3.5],[1,6,13]))); rlocus( n,d)10 -s由图上数据可知:闭环系统稳定的 K 的取值范围:0 K 70.9 ; 根轨迹与虚轴的交点坐标:j1.02 ;分离点的坐标:d 0.403。

3. 设单位反馈控制系统的开环传递函数为KG(s)- s(s 4)( s 4s 20)试编程绘制闭环系统的根轨迹。

并回答 (1 )闭环系统稳定的K 的取值范围;(2) 根轨迹与虚轴的交点坐标; (3) 各个分离点的坐标。

%根轨迹仿真实训第 3题Root Locus640 ■2-10-40 2斗6Real AxisDaimninn- -Fl IT10125System 割g j : i go^ainc £4祁怎比〕:3.15Pole : -2 + 7.51e-D06i Damping: 1 Overshoot (%): 0 Frequency (racVsec): 2由图上数据可知:闭环系统稳定的 K 的取值范围:0 K 262 ; 根轨迹与虚轴的交点坐标:j3.18 ;分离点的坐标:d,2,d 2,32 j2.45。

控制系统仿真matlab第六章习题答案汇总

控制系统仿真matlab第六章习题答案汇总

控制系统仿真第六章课后题作业6.1试编写matlab 程序,设计系统的超前矫正器 Gc (s ),要求:1) 在斜坡信号r ( t )=2t 作用下,系统的稳态误差 ess<=0.002;2)校正后系统的相位裕度 Pm 范围为:45~55 ; 3) 绘制系统校正后的 bode 图和阶跃响应曲线。

程序:>> s=tf('s');>> G=1000/(s*(0.1*s+1)*(0.001*s+1));>> margin(G)% 绘制校正前的 bode 图 专 Figure 1 - □ X File Edit View Insert Took Desktop Window Het* »□ a J ®毀謠° 匡11 ■ a >> figure(2)>> sys=feedback(G,1); 在图6.1中,已知单位负反馈系统被控对象的传递函数为G(s)= Ks(0.1s 1)(0.0QQo oBtjde Diagram Gm = 0.D&64 dB [at 100 rad/aec) ( Pm = 0.05&4 (at 99.5 rad/&ec)flu o-5 5 mE mprl 左一6『左 a 10>> step(sys) %绘制校正前的单位阶跃响应曲线Figure 2File Edit 过ew Insert Tools Window Help□已鸟|罠4紗®悬乙| 口目| ■回Step Response1.3>> [Gm,Pm]=margin(G); %该句值计算bode图的增益裕量Gm和相位裕量Pm >> [mag,phase,w]=bode(G); %该句只计算bode图上多个频率点w对应的幅值和相位>> QWPm=50; %取矫正后的相位为50>> Flm=QWPm-Pm+5;>> Flm=Flm*pi/180;>> alfa=(1-si n(FIm))/(1+si n( FIm));>> adb=20*log10(mag);>> am=10*log10(alfa);>> wc=spli ne(adb,w,am);>> T=1/(wc*sqrt(alfa));>> alfat=alfa*T;>> Gc=tf([T 1],[alfat 1]) %校正器的传递函数Tran sfer function:0.01794 s + 1Time 330.00179 s + 1>> figure(3)>> margin(Gc*G) %系统矫正后的bode图Ffgure 3Filt gdit yisw ifisert Hcdt Mfimdcw title】I ■回Bode DiagramGm = 17.6 dB (st 69B rad/sec) s Pm = 4S.2 deg (at 176 rad/sec)"I 0 0 N -- 1 1 I I I ! 1 ! | ! ■' I I ' ' I J I I ........... | I I « i i i | i | i f ■ J !!|!|>> figure(4)>> step(feedback(Gc*G ,1)) % 校正后的单位阶跃响应曲线Figure 4n xl Fie Edit 辺足w Insert Tools Desktop Window HelpO t3 J -S □ S ■ Q1010°ID1 1 孑10Frequency (r&fh'see)作业6.2在图6.1中,已知单位负反馈系统被控对象的传递函数为试编写matlab 程序,设计系统的滞后校正器 Gc ( s ),要求:1) 在斜坡信号r(t)=t 作用下,系统的稳态误差ess 乞0.01 ; 2) 校正后系统的相位裕度 Pm 范围为:40~50 ;3) 绘制系统矫正前后的 bode 图和阶跃响应曲线。

MATLAB课后习题集附标准答案

MATLAB课后习题集附标准答案

第2章MATLAB概论1、与其他计算机语言相比较,MA TLAB语言突出的特点是什么?答:起点高、人机界面适合科技人员、强大而简易的作图功能、智能化程度高、功能丰富,可扩展性强.2、MA TLAB系统由那些部分组成?答:开发环境、MATLAB数学函数库、MATLAB语言、图形功能、应用程序接口3、安装MATLAB时,在选择组件窗口中哪些部分必须勾选,没有勾选的部分以后如何补安装?答:在安装MATLAB时,安装内容由选择组件窗口中各复选框是否被勾选来决定,可以根据自己的需要选择安装内容,但基本平台(即MATLAB选项)必须安装.第一次安装没有选择的内容在补安装时只需按照安装的过程进行,只是在选择组件时只勾选要补装的组件或工具箱即可.4、MATLAB操作桌面有几个窗口?如何使某个窗口脱离桌面成为独立窗口?又如何将脱离出去的窗口重新放置到桌面上?答:在MATLAB操作桌面上有五个窗口,在每个窗口的右下角有两个小按钮,一个是关闭窗口的Close 按钮,一个是可以使窗口称为独立的Undock按钮,点击Undock按钮就可以使该窗口脱离桌面称为独立窗口,在独立窗口的view菜单中选择Dock,菜单项就可以将独立的窗口重新防止的桌面上.5、如何启动M文件编辑/调试器?答:在操作桌面上选择“建立新文件”或“打开文件”操作时,M文件编辑/调试器将被启动.在命令窗口中键入edit命令时也可以启动M文件编辑/调试器.6、存储在工作空间中的数组能编辑吗?如何操作?答:存储在工作空间的数组可以通过数组编辑器进行编辑:在工作空间浏览器中双击要编辑的数组名打开数组编辑器,再选中要修改的数据单元,输入修改内容即可.7、命令历史窗口除了可以观察前面键入的命令外,还有什么用途?答:命令历史窗口除了用于查询以前键入的命令外,还可以直接执行命令历史窗口中选定的内容、将选定的内容拷贝到剪贴板中、将选定内容直接拷贝到M文件中.8、如何设置当前目录和搜索路径,在当前目录上的文件和在搜索路径上的文件有什么区别?答:当前目录可以在当前目录浏览器窗口左上方的输入栏中设置,搜索路径可以通过选择操作桌面的file菜单中的Set Path菜单项来完成.在没有特别说明的情况下,只有当前目录和搜索路径上的函数和文件能够被MATLAB运行和调用,如果在当前目录上有与搜索路径上相同文件名的文件时则优先执行当前目录上的文件,如果没有特别说明,数据文件将存储在当前目录上.9、在MA TLAB中有几种获得帮助的途径?答:(1)帮助浏览器:选择view菜单中的Help菜单项或选择Help菜单中的MATLAB Help菜单项可以打开帮助浏览器.(2)help命令:在命令窗口键入“help”命令可以列出帮助主题,键入“help 函数名”可以得到指定函数的在线帮助信息.(3)lookfor命令:在命令窗口键入“lookfor 关键词”可以搜索出一系列与给定关键词相关的命令和函数.(4)模糊查询:输入命令的前几个字母,然后按Tab键,就可以列出所有以这几个字母开始的命令和函数.注意:lookfor和模糊查询查到的不是详细信息,通常还需要在确定了具体函数名称后用help命令显示详细信息.第3章 MATLAB 数值运算3.1在MA TLAB 中如何建立矩阵⎥⎦⎤⎢⎣⎡194375,并将其赋予变量a ? 答:在Command Window 窗口输入操作:>> a=[5 7 3;4 9 1]3.2有几种建立矩阵的方法?各有什么优点? 答:(1)直接输入法,如a=[1 2 3 4],优点是输入方法方便简捷;(2)通过M 文件建立矩阵,该方法适用于建立尺寸较大的矩阵,并且易于修改; (3)由函数建立,如y=sin(x),可以由MATLAB 的内部函数建立一些特殊矩阵; (4)通过数据文件建立,该方法可以调用由其他软件产生数据.3.3在进行算术运算时,数组运算和矩阵运算各有什么要求?答:进行数组运算的两个数组必须有相同的尺寸.进行矩阵运算的两个矩阵必须满足矩阵运算规则,如矩阵a 与b 相乘(a*b )时必须满足a 的列数等于b 的行数.渗釤呛俨匀谔鱉调硯錦。

matlab课后习题及答案

matlab课后习题及答案

第一章 5题已知a=4.96,b=8.11,计算)ln(b a eba +-的值。

解:clear clc a=4.96; b=8.11;exp(a-b)/log(a+b) ans =0.0167 6题已知三角形的三边a=9.6,b=13.7, c=19.4,求三角形的面积。

提示:利用海伦公式area =))()((c s b s a s s ---计算,其中S=(A+B+C)/2. 解:clear clc a=9.6; b=13.7; c=19.4; s=(a+b+c)/2area=sqrt(s*(s-a)*(s-b)*(s-c)) s =21.3500 第二章 8题已知S=1+2+2^2+2^3+……+2^63,求S 的值 解:clear clc S=0;for i=0:1:63 S=S+2^i; end S S =1.8447e+019 9题分别用for 和while 循环结构编写程序,计算∑=-1001n 1n 2)(的值。

解:clear clc s=0;for n=1:100 s=s+(2*n-1); end s s =10000 clear clc n=1; s=0;while n<=100 s=s+(2*n-1); n=n+1; end s s =10000 第三章 2题在同一坐标下绘制函数x ,,2x-,2x xsin(x)在()∏∈,0x 的曲线。

解:clear clcx=0:0.2:pi; y1=x; y2=x.^2; y3=-(x.^2); y4=x.*sin(x);plot(x,y1,'-' ,x,y2,'-' ,x,y3,'-' ,x,y4,'-')0.511.522.53-10-8-6-4-202468109题用不同的线型和颜色在同一坐标内绘制曲线y1=2ex5.0 、y2=sin(2∏x )的图形。

matlab的控制系统仿真上机习题

matlab的控制系统仿真上机习题

1.已知系统结构图如下图所示。

试建立Simulink 仿真模型,并确定K 值,使阻尼系数ζ=0.5,画出此时系统的单位阶跃响应曲线并求出动态性能指标(超调量、上升时间、调节时间和峰值时间)。

-R(s)C(s)K8.016s -s1syms s G1 G2 H1 H2 phi1 phi K;G1=16/(s+0.8); H1=K; phi1=G1/(1+G1*H1); G2=phi1*1/s;H2=1; phi=factor(G2/(1+G2*H2)) wn=sqrt(16);zeta=0.5; k=(2*zeta*wn-0.8)/16 zeta=0.5;wn=4;beta=acos (zeta); tr=(pi-beta)/(wn*sqrt(1-(zeta)^2)) tp=pi/(wn*sqrt(1-(zeta)^2))ts=3/(zeta*wn)sigma=exp(-pi*zeta/(1-(zeta)^2)^(1/2))--2. 试画出如图所示系统的零极点图,并确定系统的稳定性。

-C(s)4s()11.0302+s s -50R(s)syms s G1 G2 H1 H2 phi1 phi;G1=30/(0.1*s^3+s^2);H1=4*s; phi1=G1/(1+G1*H1);G2=50;H2=1;phi=factor(G2*phi1/(1+G2*phi1*H2))phi =15000/(s^3+10*s^2+1200*s+15000) closys=tf(15000,[1,10,1200,15000]);pzmap(closys)3.已知某系统开环传递函数为:()()()15.012102+++=sssssG,试用Bode图法判断闭环系统的稳定性,并用阶跃响应曲线加以验证;求出相位裕量和幅值裕量。

num=10;den=(conv(conv([1,0],[2,1]),[1,0.5,1]));sys=tf(num,den);subplot(1,2,1);bode(sys);grid onsubplot(1,2,2);step(sys);grid onsubplot(1,1,1);margin(sys); [wn,pm,wg,wc]=margin(sys)-140-120-100-80-60-40-200204060M a g n i t u d e (d B )10-210-110101102-360-315-270-225-180-135-90P h a s e (d e g )Bode DiagramGm = -22.5 dB (at 0.707 rad/sec) , P m = -136 deg (at 1.62 rad/sec)Frequency (rad/sec)wn =0.0750 pm =-136.3866 wg =0.7067 wc =1.62104.已知某系统开环传递函数为:()122+++=ssssG,试用Nyquist稳定判据判断闭环系统的稳定性,并用阶跃响应曲线加以验证。

Matlab与控制系统仿真部分习题答案

Matlab与控制系统仿真部分习题答案

【4.2】程序:num=[5,0];den=conv([1,1],conv([1,2],[1,3])); [numc,denc]=cloop(num,den);[z,p,k]=tf2zp(numc,denc);[A,B,C,D]=tf2ss(numc,denc);g_zp=zpk(z,p,k)g_tf=tf(numc,denc)g_ss=ss(A,B,C,D)运行结果:Zero/pole/gain:5 s----------------------------------(s+0.4432) (s^2 + 5.557s + 13.54)Transfer function:5 s----------------------s^3 + 6 s^2 + 16 s + 6a =x1 x2 x3x1 -6 -16 -6x2 1 0 0x3 0 1 0b =u1x1 1x2 0x3 0c =x1 x2 x3y1 0 5 0d =u1y1 0【4.3】程序:A=[0 0 0 -1;1 0 0 -2;0 1 0 -3;0 0 1 -4]; B=[0;0;0;1];C=[1 0 0 0];g_ss=ss(A,B,C,D)[num,den]=ss2tf(A,B,C,D);g_tf=tf(num,den)[z,p,k]=ss2zp(A,B,C,D);g_zpk=zpk(z,p,k)运行结果:a =x1 x2 x3 x4x1 0 0 0 -1x2 1 0 0 -2x3 0 1 0 -3x4 0 0 1 -4b =u1x1 0x2 0x3 0x4 1c =x1 x2 x3 x4y1 1 0 0 0d =u1y1 0Continuous-time model.Transfer function:-3.109e-015 s^3 - s^2 - 3.331e-015 s - 4.441e-016 -------------------------------------------------s^4 + 4 s^3 + 3 s^2 + 2 s + 1Zero/pole/gain:- s^2----------------------------------------------(s+0.6724) (s+3.234) (s^2 + 0.0936s + 0.4599)【5.1】(1)程序num=[0,10];den=conv([1,0],[1,7,17]); [numc,denc]=cloop(num,den,-1); G=tf(numc,denc)[y,t]=step(G);plot(t,y,'b-')C=dcgain(G);n=1;while y(n)<0.1*Cn=n+1;endm=1;while y(m)<0.9*Cm=m+1;endrisetime=t(m)-t(n)[Y,k]=max(y); percentovershoot=100*(Y-C)/Ci=length(t);while(y(i)>0.98*C)&(y(i)<1.02*C) i=i-1;endsettlingtime=t(i)运行结果:Transfer function:10-----------------------s^3 + 7 s^2 + 17 s + 10risetime =2.7312percentovershoot =-0.4399settlingtime =5.1372图:0123456700.10.20.30.40.50.60.70.80.91(2)程序k=[10,100,1000];t=linspace(1,20,200);num=1;den=conv([1,0],[1,7,17]);for j=1:3;s1=tf(num*k(j),den);sys=feedback(s1,1)y(:,j)=step(sys,t);endplot(t,y(:,1),'r',t,y(:,2),'b',t,y(:,3),'g')gtext('k=10');gtext('k=100');gtext('k=1000') 运行结果:Transfer function:10-----------------------s^3 + 7 s^2 + 17 s + 10Transfer function:100------------------------s^3 + 7 s^2 + 17 s + 100Transfer function:1000-------------------------s^3 + 7 s^2 + 17 s + 1000图:024681012141618200.20.40.60.811.21.41.61.8图:02468101214161820-3-2-1123422【6.1】程序:(1)num1=[1,1];den1=conv([1,0,0],conv([1,2],[1,4]));sys1=tf(num1,den1)rlocus(sys1)运行结果:-12-10-8-6-4-2024-8-6-4-202468Root LocusReal Axis I m a g i n a r y A x i s(2)num2=[1,1];den2=conv([1,0],conv([1,-1],[1,4,16]));sys2=tf(num2,den2)rlocus(sys2)运行结果:-10-8-6-4-2024-8-6-4-202468Root LocusReal Axis I m a g i n a r y A x i s(3)num3=[1,8];den3=conv([1,0,0],conv([1,3],conv([1,5],conv([1,7],[1,15])))); sys3=tf(num3,den3)rlocus(sys3)运行结果:-30-25-20-15-10-5051015-20-15-10-505101520Root LocusReal Axis I m a g i n a r y A x i s【6.3】程序:num=[1,2];den=conv([1,0],conv([1,4],conv([1,8],[1,2,5])));sys=tf(num,den)rlocus(sys)[k,poles]=rlocfind(sys)运行结果:Transfer function:s + 2---------------------------------------s^5 + 14 s^4 + 61 s^3 + 124 s^2 + 160 sSelect a point in the graphics windowselected_point =0.0296 + 2.2826i k =135.8815poles =-7.3248-5.41040.0145 + 2.3021i0.0145 - 2.3021i -1.2939图:-20-15-10-5051015-15-10-551015Root LocusReal Axis I m a g i n a r y A x i s【7.3】程序(1)画波特图num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)bode(sys)grid图(1)-150-100-50050100M a g n i t u d e (d B)10-210-1100101102103-270-225-180-135-90P h a s e (d e g )Bode DiagramFrequency (rad/sec)程序(2)画奈奎斯特图num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)nyquist(sys)grid图(2)-16-14-12-10-8-6-4-20-300-200-100100200300Nyquist DiagramReal Axis I m a g i n a r y A x i s程序(3)画零极点图num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)pzmap(sys1)gird图(3)P ole-Zero MapReal Axis I m a g i n a r y A x i s -12-10-8-6-4-20-1.5-1-0.50.511.5程序(4)计算相角裕量和幅值裕量num=[50];den=conv([1,0],conv([1,10],[3,1]));sys=tf(num,den)sys1=feedback(sys,1)[gm,pm,wcg,wcp]=margin(sys)运行结果Transfer function:50---------------------3 s^3 + 31 s^2 + 10 sTransfer function:50--------------------------3 s^3 + 31 s^2 + 10 s + 50gm =2.0667pm =7.5615wcg =1.8257wcp =1.2645程序(5)绘制阶跃响应曲线num=[50];den=conv([1,0],conv([1,10],[3,1])); sys=tf(num,den)sys1=feedback(sys,1)step(sys1)图(5)00.20.40.60.811.21.41.61.82Step ResponseTime (sec)A m p l i t u d e【7.4】程序如下:num=[300];den=conv([1,0,0],conv([0.2,1],[0.02,1]));sys=tf(num,den)margin(sys)grid波特图如下:-150-100-50050100M a g n i t u d e (d B )10-1100101102103-360-315-270-225-180P h a s e (d e g )Bode DiagramGm = Inf , P m = -78 deg (at 11 rad/sec)Frequency (rad/sec)【9.3】程序:A=[-2 2 -1;0 -2 0;1 -4 0];B=[0;0;1];C=[1,0,0];D=0;M=ctrb(A,B)m=rank(M)if m==3;disp('系统可控')elsedisp('系统不可控')endN=obsv(A,C)n=rank(N)if n==3;disp('系统可观')elsedisp('系统不可观') endsys=ss(A,B,C,D) [num,den]=ss2tf(A,B,C,D) sys1=tf(num,den)[z,p,k]=ss2zp(A,B,C,D)运行结果:M =0 -1 20 0 01 0 -1m =2系统不可控N =1 0 0-2 2 -13 -4 2n =2系统不可观a =x1 x2 x3x1 -2 2 -1x2 0 -2 0x3 1 -4 0b =u1x1 0x2 0x3 1c =x1 x2 x3y1 1 0 0d =u1y1 0 Continuous-time model.0 0 -1 -2den =1 4 5 2Transfer function:-s - 2---------------------s^3 + 4 s^2 + 5 s + 2z =-2p =-1-1-2k = -1【10.1】(1)程序:A=[0,1,0,0;0,5,0,0;0,0,-7,0;0,0,0,-8]; B=[0;1;0;1];C=[1,2,3,4];D=zeros(1,1);G_ss=ss(A,B,C,D)运行结果:a =x1 x2 x3 x4x1 0 1 0 0x2 0 5 0 0x3 0 0 -7 0x4 0 0 0 -8u1x1 0x2 1x3 0x4 1c =x1 x2 x3 x4y1 1 2 3 4d =u1y1 0(2):程序:[num1,den1]=ss2tf(A,B,C,D); p=roots(den1)i=0;for k=1:1:length(p)if real(p(k))>0i=i+1;endendif i>0disp('系统不稳定');elsedisp('系统稳定');end运行结果:p =5.0000-8.0000-7.0000系统不稳定(3)(4)程序:AA=[0,1,0;0,5,0;0,0,-8];BB=[0;1;1];P=[-1,-2,-8];K=acker(AA,BB,P);i=4;K(4)=0;Kpp=eig(A-B*K)sys1=tf(num1,den1);[y1,t]=step(sys1);plot(t,y1)hold onA_feedback=A-B*K;[num2,den2]=ss2tf(A_feedback,B,C,D); sys2=tf(num2,den2);[y2,t]=step(sys2);plot(t,y2,'r')gridgtext('反馈前')gtext('反馈后')运行结果:K =2 8 0 0pp =-8-2-1-7图形:01234560123456【13.1】程序:A=[0,1;0,0];B=[0;1];C=[1,0];D=zeros(1,1);G_ss=ss(A,B,C,D)M=ctrb(A,B);if rank(M)==2disp('系统完全能控'); elsedisp('系统不完全能控'); endS=[1,0];N=obsv(A,S);if rank(N)==2disp('(A,S)可观测'); elsedisp('(A,S)不可观测'); endR=1;Q=[1,0;0,0];[K,P,E]=Lqr(A,B,Q,R)A_new=A-B*K;G_new=ss(A_new,B,C,D);t=linspace(0,5,100)';y1=step(G_ss,t);y2=step(G_new,t);plot(t,y1,'r:',t,y2,'b-')gridgtext('反馈前')gtext('反馈后')运行结果:a =x1 x2x1 0 1x2 0 0b =u1x1 0x2 1c =x1 x2y1 1 0d =u1y1 0Continuous-time model. 系统完全能控(A,S)可观测K =1.0000 1.4142P =1.4142 1.00001.0000 1.4142E =-0.7071 + 0.7071i-0.7071 - 0.7071i图形:00.51 1.52 2.53 3.54 4.5502468101214。

MATLAB语言与控制系统仿真_参考题答案_第3章

MATLAB语言与控制系统仿真_参考题答案_第3章

3.5 MATLAB 绘图实训3.5.1 实训目的1.学会MATLAB 绘图的基本知识;2.掌握MATLAB 子图绘制、图形注释、图形编辑等基本方法;3.学会通过MATLAB 绘图解决一些实际问题;4.练习二维、三维绘图的多种绘图方式,了解图形的修饰方法;5.学会制作简单的MATLAB 动画。

图3-46 炮弹发射示意图3.5.2 实训内容1. 炮弹发射问题〔1炮弹发射的基础知识炮弹以角度α射出的行程是时间的函数,可以分解为水平距离)(t x 和垂直距离)(t y 。

)cos()(0αtv t x = %水平方向的行程; 205.0)sin()(gt tv t y -=α %垂直方向的行程;其中,0v 是初速度;g 是重力加速度,为9.82m/s ;t 是时间。

〔2炮弹发射程序举例:分析以下程序以及图3-47各个图形的实际意义。

a=pi/4; v0=300; g=9.8;t=0:0.01:50; x=t*v0*cos<a>;y=t*v0*sin<a>-0.5*g*t.^2;subplot<221>;plot<t,x>;grid;title<‘时间-水平位移曲线'>; subplot<222>;plot<t,y>;grid;title<‘时间-垂直位移曲线'>; subplot<223>;plot<x,y>;grid;title<‘水平位移-垂直位移曲线'>; subplot<224>;plot<y,x>;grid;title<‘垂直位移-水平位移曲线'>; 图3-4745角发射曲线 〔3编程解决炮弹发射问题①假设在水平地面上以垂直于水平面的角度向上发射炮弹,即发射角90=α,假设初速度分别为[310,290,270]m/s,试绘制时间-垂直位移曲线,编程求取最高射程;绘图要求:◆ 标题设为"炮弹垂直发射问题";◆ 在图上通过添加文本的方式表明初速度; ◆ 在x 轴标注"时间";◆ 在y 轴上标注"垂直距离"; ◆ 添加网格线;◆ 将310m/s 的曲线改为线粗为2的红色实线; ◆ 将290m/s 的曲线改为线粗为3的绿色点划线;◆ 将270m/s 的曲线改为线粗为2的蓝色长点划线;a=pi/2; v1=310; g=9.8;t=0:0.01:50; x1=t*v1*cos<a>;y1=t*v1*sin<a>-0.5*g*t.^2;plot<t,y1>;grid; title<'炮弹垂直发射问题'>; xlabel<'时间'>; ylabel<'垂直距离'>; hold on; v2=290;x2=t*v2*cos<a>;y2=t*v2*sin<a>-0.5*g*t.^2; plot<t,y2>; v3=270;x3=t*v3*cos<a>;y3=t*v3*sin<a>-0.5*g*t.^2; plot<t,y3>;zgsc=[max<y1>; max<y2>; max<y3>] %三次发射的最高射程 运行结果如下: zgsc =1.0e+003 * 4.9031 4.29083.7194最高射程分别为:4903.1米,4290.8米,3719.4米。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章习题3.请指出以下的变量名(函数名、M文件名)中,哪些是合法的?Abc 2004x lil-1 wu_2004 a&b qst.u _xyz 解:合法的变量名有:Abc wu_20044.指令窗操作(1)求[12+2×(7-4)]÷32的运算结果解:>> [12+2*(7-4)]/3^2ans =2(2)输入矩阵A=[1,2,3;4,5,6;7,8,9],观察输出。

解:>> A=[1,2,3;4,5,6;7,8,9]A =1 2 34 5 67 8 9(3)输入以下指令,观察运算结果;clear;x=-8:0.5:8;y=x';X=ones(size(y))*x;Y=y*ones(size(x));R=sqrt(X.^2+Y.^2)+eps;Z=sin(R)./R;mesh(X,Y,Z);colormap(hot)xlabel('x'),ylabel('y'),zlabel('z')解:7.指令行编辑(1)依次键入以下字符并运行:y1=2*sin(0.3*pi)/(1+sqrt(5))解:>>y1=2*sin(0.3*pi)/(1+sqrt(5))y1 =0.5000(2)通过反复按键盘的箭头键,实现指令回调和编辑,进行新的计算;y2=2*cos(0.3*pi)/(1+sqrt(5))解:>>y2=2*cos(0.3*pi)/(1+sqrt(5))y2 =0.363311.编写题4中(3)的M脚本文件,并运行之。

解:第二章习题1.在指令窗中键入x=1:0.2:2和y=2:0.2:1,观察所生成的数组。

解:>> x=1:0.2:2 x =1.0000 1.2000 1.4000 1.6000 1.80002.0000 >> y=2:0.2:1 y =Empty matrix: 1-by-02.要求在[0,2π]上产生50个等距采样数据的一维数组,试用两种不同的指令实现。

解: y1=0:2*pi/49:2*piy2=linspace(0,2*pi,50)3.计算e -2t sint ,其中t 为[0,2π]上生成的10个等距采样的数组。

解:>> t=linspace(0,2*pi,10); x=exp(-2*t).*sin(t) x =0 0.1591 0.0603 0.0131 0.0013 -0.0003 -0.0002 -0.0001 -0.0000 -0.00004.已知A=⎥⎦⎤⎢⎣⎡4321 , B=⎥⎦⎤⎢⎣⎡8765,计算矩阵A 、B 乘积和点乘. 解:>> A=[1,2;3,4]; B=[5,6;7,8]; x=A*B x =19 22 43 50 >> x=A.*B x =5 1221 325.已知A=⎥⎦⎤⎢⎣⎡05314320,B=⎥⎦⎤⎢⎣⎡05314320,计算A&B, A|B, ~A, A==B, A>B. 解:>> A=[0,2,3,4;1,3,5,0];B=[1,0,5,3;1,5,0,5]; a1=A&Ba2=A|Ba3=~Aa4=(A==B)a5=(A>B)a1 =0 0 1 11 1 0 0a2 =1 1 1 11 1 1 1a3 =1 0 0 00 0 0 1a4 =0 0 0 01 0 0 0a5 =0 1 0 10 0 1 07.将题5中的A阵用串转换函数转换为串B,再size指令查看A、B的结构,有何不同?解:>> A=[0,2,3,4;1,3,5,0]B=num2str(A)size(A)size(B)A =0 2 3 41 3 5 0B =0 2 3 41 3 5 0ans =2 4ans =2 10第三章习题1.已知系统的响应函数为)sin(11)(θββε+-=-t e t y t ,其中⎪⎪⎭⎫⎝⎛-=-=εεθεβ221arctan ,1 ,要求用不同线型或颜色,在同一张图上绘制ε取值分别为0.2、0.4、0.6、0.8时,系统在t ∈[0,18] 区间内的响应曲线,并要求用ε=0.2和 ε=0.8对他们相应的两条曲线进行文字标志。

解: clcclose all clear all t=0:0.02:18;xi=[0.2,0.4,0.6,0.8]'; sxi=sqrt(1-xi.^2); sita=atan(sxi./xi);y=1-exp(-xi*t).*sin(sxi*t+sita*ones(1,901))./(sxi*ones(1,901))plot(t,y(1), 'r-', t,y(2), ' b*', t,y(3), ' g+', t,y(4), ' k.')text(4.2,1.4,'\xi =0.2') text(3.8,0.9,'\xi=0.8')2.用plot3、mesh 、surf 指令绘制()()2222111y x y x z ++++-=三维图(x,y 范围自定)。

解:clc;close all ;clear all ; x=-5:0.1:5;y=-5:0.1:5; [X,Y]=meshgrid(x,y); a=sqrt((1-X).^2+Y.^2); b=sqrt((1+X).^2+Y.^2); Z=1./(a+b);a1=sqrt((1-x).^2+y.^2); b1=sqrt((1+x).^2+y.^2); z=1./(a1+b1);subplot(1,3,1),plot3(x,y,z),xlabel('x'),ylabel('y'),zlabel('z');box on ;subplot(1,3,2),surf(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');boxon ;subplot(1,3,3),mesh(X,Y,Z),xlabel('x'),ylabel('y'),zlabel('z');box on ;3.对向量t 进行以下运算可以构成三个坐标的值向量:x=sin(t),y=cos(t),z=t.利用指令plot3,并选用绿色的实线绘制相应的三维曲线. 解:t=(0:0.01:2)*pi;x=sin(t);y=cos(t);z=t;plot3(x,y,z,'b-');box on1.请分别用for 和while 循环语句计算K=∑=6302i i 的程序,再写出一种避免循环的计算程序。

(提示:可考虑利用MATLAB 的sum(X,n)函数,实现沿数组X 的第n 维求和。

) 解:1)K=0; for i=0:63; K=K+2^i; end KK =1.8447e+019 2)i=0;K=0; while i<=63; K=K+2^i; i=i+1; end; KK =1.8447e+019 3)i=0; X=0:63; for i=0:63;X(i+1)=2^i; endsum(X,2) ans =1.8447e+0191.将下列系统的传递函数模型用MATLAB 语言表达出来。

(1))170046842541254289()1700109329135()(23452341+++++++++=s s s s s s s s s s G 解:num=[1,35,291,1093,1700];den=[1,289,254,2541,4684,1700]; sys=tf(num,den) (2))15).(5).(1()3(15)(2++++=s s s s s G 解:z=-3;p=[-1,-5,-15]; k=15;sys=zpk(z,p,k)(3))252).(1).(1()23.()2.(.100)(23223+++-++++=s s s s s s s s s s G 解:z=[0,-2,-2]; p=[-1,1]; k=100;sys1=zpk(z,p,k); num=[1,3,2]; den=[1,2,5,2]; sys2=tf(num,den); sys=series(sys1,sys2)4.求题3中的系统模型的等效传递函数模型和零极点模型。

解:A=[3,2,1;0,4,6;0,-3,-5]; B=[1,2,3]' ; C=[1,2,5]; D=0;sys=ss(A,B,C,D); systf=tf(sys) syszpk=zpk(sys)Transfer function: 20 s^2 - 83 s + 138 --------------------- s^3 - 2 s^2 - 5 s + 6 Zero/pole/gain:20 (s^2 - 4.15s + 6.9) ----------------------- (s-3) (s-1) (s+2)5.已知系统的动力学方程如下,试用MATLAB 语言写出它们的传递函数。

(1))(2)()(500)(50)(15)(......)3(t r t r t y t y t y t y +=+++ 解:num=[1,2,0];den=[1,15,50,500]; sys=tf(num,den) Transfer function: s^2 + 2 s ------------------------- s^3 + 15 s^2 + 50 s + 500(2) )(4)(4)(6)(3)(...t r dt t y t y t y t y =+++⎰ 解:num=[4,0]; den=[1,3,6,4]; sys=tf(num,den) Transfer function: 4 s --------------------- s^3 + 3 s^2 + 6 s + 46.试用MATLAB 语言表示图5-13所示系统。

当分别以y =x 2和f 为系统输出、输入时的传递函数模型和状态空间模型(图中k =7N/m,c 1=0.5N/m.s -1, c 2=0.2N/m.s -1,m 1=3.5kg, m 2=5.6kg)。

f解:)(tk=7;c1=0.5;c2=0.2;m1=3.5;m2=5.6;num=[m1,c1,k];den=[m1*m2,c1*m1+c2*m1+c1*m2,c1*c2+m2*k,c1*k+c2*k,0];sys=tf(num,den)Transfer function:3.5 s^2 + 0.5 s + 7--------------------------------------19.6 s^4 + 5.25 s^3 + 39.3 s^2 + 4.9 s7.试用MATLAB语言分别表示图5-14所示系统质量m1,m2的位移x1,x2对输入f 的传递函数X2(s)/F(s)和X1(s)/F(s),其中m1=12kg, m2=38kg,k=1000N/m, c=0.1N/m.s-1。

相关文档
最新文档