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

5.6 控制系统的时域响应MATLAB 仿真实训5.6.1实训目的 1. 学会利用MATLAB 绘制系统的单位阶跃响应曲线,掌握读取系统动态性能指标的方法; 2. 学会利用MATLAB 绘制系统的单位脉冲响应曲线的方法; 3. 掌握利用MATLAB 绘制系统的零输入响应曲线的方法; 4. 掌握利用MATLAB 绘制系统的一般输入响应曲线的方法;5.学会通过仿真曲线读取相关信息,并依据有关信息进行系统的时域分析。

5.6.2实训内容1.编写程序求取下列各系统的单位阶跃响应,完成表5-5并记录相关曲线。

162.316)(21++=s s s G 164.216)(22++=s s s G 166.116)(23++=s s s G 1616)(24++=s s s G 解:>> n1=16;>> d1=[1,3.2,16]; >> sys1=tf(n1,d1); >> step(sys1)>> n2=16;>> d2=[1,2.4,16]; >> sys2=tf(n2,d2); >> step(sys2)>> n3=16;>> d3=[1,1.6,16]; >> sys3=tf(n3,d3); >> step(sys3) >> n4=16;>> d4=[1,1,16]; >> sys4=tf(n4,d4); >> step(sys4)序号ξnωm axcptst(%5=∆) 计算值实验计算值实验计算值实验值1 0.4 4 1.2538 1.25 0.8569 0.863 2.1875 2.12 0.34 1.3723 1.37 0.8233 0.828 2.9167 2.813 0.24 1.5266 1.53 0.8016 0.8 4.3750 4.94 0.125 4 1.6731 1.67 0.7916 0.803 7.0000 7.33 >> z1=0.4;w=4;cmax1=1+exp(-z1*pi/sqrt(1-z1^2));tp1=pi/(w*sqrt(1-z1^2));ts1=3.5/(z1*w);[cmax1,tp1,ts1]ans =1.2538 0.85692.1875>> z2=0.3;w=4;cmax2=1+exp(-z2*pi/sqrt(1-z2^2));tp2=pi/(w*sqrt(1-z2^2));ts2=3.5/(z2*w);[cmax2,tp2,ts2]ans =1.3723 0.82332.9167 >> z3=0.2; w=4;cmax3=1+exp(-z3*pi/sqrt(1-z3^2)); tp3=pi/(w*sqrt(1-z3^2)); ts3=3.5/(z3*w); [cmax3,tp3,ts3]ans =1.5266 0.8016 4.3750 >> z4=0.125; w=4;cmax4=1+exp(-z4*pi/sqrt(1-z4^2)); tp4=pi/(w*sqrt(1-z4^2)); ts4=3.5/(z4*w); [cmax4,tp4,ts4] ans =1.6731 0.7916 7.0000说明:对于二阶欠阻尼系统(10<<ξ),若系统的闭环传递函数为2222)(nn ns s s Φωξωω++= 则系统单位阶跃响应的输出最大值21max 1ξξπ--+=ec峰值时间21ξωπ-=n p t调整时间估算值ns t ξω5.3= (以5%为误差带) ns t ξω4.4=(以2%为误差带)2.已知二阶系统的闭环传递函数如下,编程求取系统的单位阶跃响应并完成表5-6,记录相关曲线。

(1)828)(21++=s s s Φ(2)10210)(22++=s s s Φ(3)12212)(23++=s s s Φ(4)16216)(24++=s s s Φ>> n1=8;>> d1=[1,2,8]; >> sys1=tf(n1,d1); >> impulse(sys1) >> n2=10;>> d2=[1,2,10]; >> sys2=tf(n2,d2); >> impulse(sys2) >> n3=12;>> d3=[1,2,12]; >> sys3=tf(n3,d3); >> impulse(sys3)>> n4=16;>> d4=[1,2,16]; >> sys4=tf(n4,d4); >> impulse(sys4)表5-6序号 ξn ωm ax c 实验p t 实验1 0.354 2.828 1.79 0.442 2 0.316 3.162 2.08 0.4423 0.289 3.464 2.36 0.387 40.2542.840.3513.已知某单位负反馈系统的开环传递函数为)11.0)(1(5)(++=s s s s G若系统的输入信号分别为(1)t u =1, )20,0(∈t (2)tteu 5.02-=, )20,0(∈t(3)te t u 5.03)2sin(-=,)20,0(∈t(4)te t u 34)2cos(-=,)20,0(∈t编写程序分别求取系统的在给定的输入信号下的响应,记录相应的曲线。

>> n=5;>> d=conv([1,1,0],[0.1,1]); >> [nc,dc]=cloop(n,d) >>sysc=tf(nc,dc); >> t=0:0.01:20; >> u1=t;>> u2=t.*exp(-0.5*t);>> u3=sin(2*t).*exp(-0.5*t); >> u4=cos(2*t).*exp(-3*t); >>subplot(221);lsim(sysc,u1,t);subplot(222);lsim(sysc,u2,t);subplot(223);lsim(sysc,u3,t);subplot(224);lsim(sysc,u4,t);4.编写程序绘制以下系统的单位阶跃响应曲线和单位脉冲响应曲线。

(1)u x x ⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--=114001[]u x y 65.30+=>> a1=[-1,0;0,-4]; >> b1=[1;1]; >> c1=[0,3.5]; >> d1=6;>> sys1=ss(a1,b1,c1,d1);>> subplot(1,2,1);step(sys1);subplot(1,2,2);impulse(sys1);(2)u x x ⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=733412219553641251308342 x y ⎥⎦⎤⎢⎣⎡=05132301 >> a2=[2,4,3,8;0,3,1,5;2,1,4,6;3,5,-5,9]; >> b2=[1,2;2,1;4,3;3,7]; >> c2=[1,0,3,2;3,1,5,0]; >> d2=0;>> sys2=ss(a2,b2,c2,d2); >> step(sys2)>> impulse(sys2)(3))53)(4)(5()8.13.6)(2(5)(23++++++=s s s s s s s G >> sysa=zpk([-2],[-5;-4],[5]) Zero/pole/gain: 5 (s+2) ----------- (s+5) (s+4)>> sysb=tf([6.3,1.8],[1,3,0,5]) Transfer function: 6.3 s + 1.8 --------------- s^3 + 3 s^2 + 5 >> sys3=sysa*sysb Zero/pole/gain:31.5 (s+2) (s+0.2857)------------------------------------------------------- (s+5) (s+4) (s+3.426) (s^2 - 0.426s + 1.459) >> step(sys3)>> impulse(sys3)5.有三个系统如图5-17(a)、(b)、(c)所示,编程分别绘制各系统的单位阶跃响应和单位脉冲响应。

(a)>> sysa1=tf([5],[1,3,5]);>> sysa2=zpk([-2],[0;-3;-5],[20]);>> sysa3=tf([0.1,1],[2,1]);>> sysa=sysa1*sysa2*sysa3Zero/pole/gain:5 (s+2) (s+10)------------------------------------------------s (s+3) (s+5) (s+0.5) (s^2 + 3s + 5)>> step(sysa)>> impulse(sysa)(b)>> sysb1=tf([22,1],[1,5,23,15]);>> sysb2=zpk([-6],[0;-3;-10],[0.2]);>> sysb3=5*tf([0.6,1],[2,1])*tf([1.5,1],[3,7,1]);>> sysb=sysb1-sysb2+sysb3Zero/pole/gain:0.75 (s+32.84) (s+10.05) (s+3.02) (s+2.269) (s+0.5509) (s-0.0083) (s^2 + 0.6734s + 0.3865) -------------------------------------------------------------------------------------------------------------------- s (s+3) (s+2.18) (s+0.7582) (s+0.5) (s+10) (s+0.1529) (s^2 + 4.242s + 19.78)>> step(sysb)>> impulse(sysb)(c)>> G1=tf([10],[1,2,0]);>> G2=cloop(tf([1],[0.5,1]),1)Transfer function:1------------0.5 s + 1>> G2=feedback(tf([1],[0.5,1]),1,-1)Transfer function:1------------0.5 s + 2>> G=G1*G2Transfer function:10---------------------------0.5 s^3 + 3 s^2 + 4 s>> H=tf([3],[1,6,0])+tf([1],[0.1,1])Transfer function:s^2 + 6.3 s + 3-----------------------------0.1 s^3 + 1.6 s^2 + 6 s>> sys=G/(1+G*H)Transfer function:0.5 s^6 + 11 s^5 + 82 s^4 + 244 s^3 + 240 s^2------------------------------------------------------------------------------------------------------------------ 0.025 s^9 + 0.7 s^8 + 7.6 s^7 + 41.2 s^6 + 123 s^5 + 231.1 s^4 + 340 s^3 + 342 s^2 + 120 s >> step(sys)>> impulse(sys)6.设三阶系统闭环传递函数为81066)52()()(232+++++==Φs s s s s s R s C s )(试绘制其单位阶跃响应在]3.5,2.1[∈t 内的部分响应曲线。

合集下载

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

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

5、6控制系统的时域响应MATLAB 仿真实训5、6、1实训目的 123 4 5学会利用MATLAB绘制系统的单位阶跃响应曲线 ,掌握读取系统动态性能指标的方法 学会利用MATLAB 绘制系统的单位脉冲响应曲线的方法 掌握利用MATLAB 绘制系统的零输入响应曲线的方法 掌握利用MATLAB 绘制系统的一般输入响应曲线的方法 学会通过仿真曲线读取相关信息 ,并依据有关信息进行系统的时域分析。

5、6、2实训内容 1、编写程序求取下列各系统的单位阶跃响应 ,完成表5-5并记录相关曲线。

G(s) 16 ~2 s 3.2s 16 G 2(s) 16~2 s 2.4s 16 G a (s)16 s 21.6s 16G 4(s)16 -2s s 16解:>> n1=16; >> d 仁[1,3、2,16]; >> sys1=tf( n1,d1); >> step(sys1)-X r倚 25 3 7百'imeQ -4o.a■rp3±±-i_l r v>> n2=16; >> d2=[1,2、4,16]; >> sys2=tf( n2,d2); >> step(sys2)041.4D Q粘EEdE'luaJ 05 1 15 2 2.3 3 55 4<1.5Tim (lie)11-o02:>> n3=16;>> d3=[1,1、6,16];>> sys3=tf( n3,d3);>> step(sys3)lim* (t«c) >> n4=16; >> d4=[1,1,16];>> sys4=tf( n4,d4);>> step(sys4)表5-5序号nc maxt pt s (5%)计算值实验计算值实验计算值实验值1 0、4 4 1、2538 1、250、85690、8632、 18752、12 0、34 1 3723 1、370、 82330、8282、 91672、813 0、24 1、52661、530、80160、8 4 3750 4、940、125 4 1、6731 1、670、 79160、8037、 00007、33>> z1=0、4; w=4;cmax 1=1+exp(-z1*pi/sqrt(1-z1A2)); tp1=pi/(w*sqrt(1-z1A 2)); ts1=3、5/(z1*w); [cmax1,tp1,ts1] ans =>> z2=0、3;w=4;cmax2=1+exp(-z2*pi/sqrt(1-z2A2)); tp2=pi/(w*sqrt(1-z2A2)); ts2=3、5/(z2*w); [cmax2,tp2,ts2]ELIIds1、 2538 0、 85692、 1875ans =1、3723 0、82332、 9167>> z3=0、2;w=4;cmax3=1+exp(-z3*pi/sqrt(1-z3A2));tp3=pi/(w*sqrt(1-z3A2));ts3=3、5/(z3*w);[cmax3,tp3,ts3] ans =1、5266 0、8016 4、3750 >> z4=0、125;w=4;cmax4=1+exp(-z4*pi/sqrt(1-z4A2));tp4=pi/(w*sqrt(1-z4A2));ts4=3、5/(z4*w);[cmax4,tp4,ts4]ans =1、6731 0、7916 7、0000说明:对于二阶欠阻尼系统(0 1),若系统的闭环传递函数为则系统单位阶跃响应的输出最大值cmaxt pn 1 2调整时间估算值t s3.5n(以5%为误差带)t s 4.4(以2%为误差带)2、已知二阶系统的闭环传递函数如下,编程求取系统的单位阶跃响应并完成表峰值时间曲线。

MATLAB与控制系统仿真练习题及答案 (2)

MATLAB与控制系统仿真练习题及答案 (2)

MATLAB与控制系统仿真练习题1、在同一坐标系内,画出一条正弦曲线和一条余弦曲线,要求正弦曲线用红色实线、数据点用“+”号显示;余弦曲线用黑色点线、数据点用“*”显示。

x=0:1 /10:2*pi;y=sin(x);plot(x,y,'r--+')hold ont=cos(x);plot(x,t,'k-.*')>>2、绘制单位圆。

a=0:1/10:2*pi;x=cos(a);y=sin(a);plot(x,y)axis squaregrid on3、使用极坐标函数绘制)3/ρ=的曲线。

8θsin10(t=0:0.01:2*pi;>> y=8*sin((10*t)/3);>> polar(t,y)4、绘制方程⎪⎩⎪⎨⎧===)cos()sin(t z t y t x 在[]π20,=t 区间的三维曲线。

t=0:pi/50:2*pi;x=t;y=sin(t);z=cos(t);plot3(x,y,z)5、用不同的线型和颜色在同一坐标内绘制曲线x 5.0e 21y -=、)2sin(2y x π=的图形。

x=0:1/10:10;y1=2*exp(-0.5*x);y2=sin(2*pi*x);plot(x,y1,'r');>> hold onplot(x,y2,'b')6、绘制二维正态分布密度函数)(212221),(y x e y x f +-=π的三维图形。

syms x yz=(1/(2*pi))*exp(-0.5*(x.^2+y.^2));ezsurf(x,y,z)7、选择合适的步长绘制下列函数的图形。

(1)x y cos =,⎥⎦⎤⎢⎣⎡-∈2,2ππx (2)x xe y = x=-2/pi:1/20:2/pi; >> y=sqrt(cos(x)); >> plot(x,y)>> hold on>> y=x.*exp(x);>> plot(x,y)>>8、在同一坐标下绘制函数x 、2x 、3x -、)sin(x x 在()π,0的曲线。

MATLAB语言及控制系统仿真_参考答案解析_第6章

MATLAB语言及控制系统仿真_参考答案解析_第6章

6.4 控制系统频域分析MATLAB 仿真实训6.4.1实训目的 1. 学会利用MATLAB 绘制开环系统的伯德图; 2. 学会利用MATLAB 绘制开环系统的极坐标图;3. 掌握通过编程或相关命令求取系统稳定裕度的方法;4.通过仿真进一步理解掌握系统频域分析的有关知识。

6.4.2实训内容1.已知单位负反馈系统的开环传递函数为()()()10.5s 10.2s 1s 1.0ks G +++=)(要求编程绘制50=k 时的极坐标图,确定曲线与负实轴的交点坐标及频率值;n=50;d=conv([0.1,1],conv([0.2,1],[0.5,1])); sys=tf(n,d); nyquist(sys)曲线与负实轴的交点坐标为-3.76; 曲线与负实轴的交点频率值9.2;2.绘制下列系统的伯德图,并要求在图上显示出幅值裕度、相角裕度等信息。

(1)()()()18s 12s 2.6s G ++=>> n=2.6;>> d=conv([2,1],[8,1]); >> sys=tf(n,d)Transfer function: 2.6---------------------- 16 s^2 + 10 s + 1>> margin(sys)从图上信息可知,幅值裕度为无穷,相角裕度为88.2度。

(2)()()()110s 1s 10s G ++=s>> n=10;>> d=conv([1,0],conv([1,1],[10,1])); >> sys=tf(n,d)Transfer function: 10------------------------ 10 s^3 + 11 s^2 + s >> margin(sys)由图上信息可知,幅值裕度为-19.2dB,相角裕度为-34.3度。

(3)()()()10.5s 1s 1)8(10s s G +++=s从图上信息可知,幅值裕度为无穷,相角裕度为13.2度。

matlab语言与控制系统仿真参考答案第4章

matlab语言与控制系统仿真参考答案第4章

4.5 控制系统的数学模型MATLAB 实训1.练习并掌握TF 模型、ZPK 模型、SS 模型的建立方法。

2.练习并掌握TF 模型、ZPK 模型、SS 模型间的转换方法。

3.练习并掌握求取多个模块串联、并联、反馈后总的模型的方法。

4.练习并掌握模型数据的还原方法。

1.写出以下系统的多项式模型,并将其转换为零极点模型;(1)2153173261552115.35291)(23452341++++++-+-=s s s s s s s s s s G >> n1=[91,-52,3.5,-11,52];d1=[1,15,26,73,31,215];sys1=tf(n1,d1)[z1,p1,k1]=tf2zp(n1,d1)sys1zp=zpk(z1,p1,k1)运行结果如下:Transfer function:91 s^4 - 52 s^3 + 3.5 s^2 - 11 s + 52-------------------------------------------s^5 + 15 s^4 + 26 s^3 + 73 s^2 + 31 s + 215z1 =0.7705 + 0.5468i0.7705 - 0.5468i-0.4848 + 0.6364i-0.4848 - 0.6364ip1 =-13.4656-1.3473 + 1.9525i-1.3473 - 1.9525i0.5801 - 1.5814ik1 =91Zero/pole/gain:91 (s^2 - 1.541s + 0.8927) (s^2 + 0.9697s + 0.6401)--------------------------------------------------------------------------(s+13.47) (s^2 - 1.16s + 2.837) (s^2 + 2.695s + 5.627)(2)21.311395.2251315239.5621.635.711017.38)(23456723452++-+-++++-+-=s s s s s s s s s s s s s G >> n2=[1,-38.7,101,-71.5,63.1,562.39];d2=[1,2,5,-31,51,-22.5,39,311.21];sys2=tf(n2,d2)[z2,p2,k2]=tf2zp(n2,d2)sys2zpkmx=zpk(z2,p2,k2)Transfer function:s^5 - 38.7 s^4 + 101 s^3 - 71.5 s^2 + 63.1 s + 562.4---------------------------------------------------------------------------s^7 + 2 s^6 + 5 s^5 - 31 s^4 + 51 s^3 - 22.5 s^2 + 39 s + 311.2z2 =35.94372.95890.5590 + 1.9214i0.5590 - 1.9214i-1.3206p2 =-2.5015 + 3.1531i-2.5015 - 3.1531i1.9492 + 1.0027i1.9492 - 1.0027i0.2072 - 1.7349i-1.3097k2 =1Zero/pole/gain:(s-35.94) (s-2.959) (s+1.321) (s^2 - 1.118s + 4.004)--------------------------------------------------------------------------------------------------(s+1.31) (s^2 - 3.898s + 4.805) (s^2 - 0.4143s + 3.053) (s^2 + 5.003s + 16.2)2.写出以下系统的零极点模型,并将其转换为多项式模型,并将其展开成为部分分式形式;(1))11.5)(9.4)(5.3)(6.2)(3.1()02.6)(5.0(36)(1+++++++=s s s s s s s s s G >> z=[-0.5;-6.02];>> p=[0;-1.3;-2.6;-3.5;-4.9;-5.11];>> k=36;>> sys=zpk(z,p,k)Zero/pole/gain:36 (s+0.5) (s+6.02)--------------------------------------------------s (s+1.3) (s+2.6) (s+3.5) (s+4.9) (s+5.11)>> [n,d]=zp2tf(z,p,k)n =0 0 0 0 36.0000 234.7200 108.3600d =1.0000 17.4100 116.1430 367.5889 544.8325 296.2114 0>> systfxs=tf(n,d)Transfer function:36 s^2 + 234.7 s + 108.4-------------------------------------------------------------------------------s^6 + 17.41 s^5 + 116.1 s^4 + 367.6 s^3 + 544.8 s^2 + 296.2 s>> [r,p,k]=residue(n,d);>> [r';p']ans =9.1407 -14.8730 17.4236 -14.7227 2.6656 0.3658-5.1100 -4.9000 -3.5000 -2.6000 -1.3000 0即部分分式分解结果为 s s s s s s s G 3658.03.16656.26.27227.145.34236.179.4873.1411.51407.9)(++++-+++-+=(2))6)(5)(4)(2()5.3)(3)(1(15.9)(22+-++-++=s s s s s s s s s G >> z=[-1;-3;3.5];>> p=[0;0;-2;-4;5;6];>> k=9.15;>> sys=zpk(z,p,k)Zero/pole/gain:9.15 (s+1) (s+3) (s-3.5)-------------------------------s^2 (s+2) (s+4) (s-5) (s-6)>> [n,d]=zp2tf(z,p,k)n =0 0 0 9.1500 4.5750 -100.6500 -96.0750d =1 -5 -28 92 240 0 0>> systfxs=tf(n,d)Transfer function:9.15 s^3 + 4.575 s^2 - 100.7 s - 96.08---------------------------------------------------s^6 - 5 s^5 - 28 s^4 + 92 s^3 + 240 s^2>> [r,p,k]=residue(n,d);>> [r';p']ans =0.5004 -0.4183 0.0715 0.1123 -0.2659 -0.40036.0000 5.0000 -4.0000 -2.0000 0 0即部分分式分解结果为 24003.02659.021123.040715.054183.065004.0)(s s s s s s s G --++++---= 3.已知系统的状态空间表达式,写出其SS 模型,并求其传递函数矩阵(传递函数模型),若状态空间表达式为⎩⎨⎧+=+=DuCx y Bu Ax x ,则传递函数矩阵表达式为: D B A sI C s G +-=-1)()(。

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

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

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

7.3.2实训内容1. 单位反馈系统的开环传递函数为)3)(2()1()(+++=s s s s K s G g试编程绘制闭环系统的根轨迹。

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

%ggj01.m z=[-1]; p=[0;-2;-3]; k=[1];sys=zpk(z,p,k); rlocus(sys)系统稳定的g K 的取值范围:0>g K ;系统的阶跃响应有超调的g K 的取值范围:419.0>g K 分离点的坐标:47.2-=d2. 设单位反馈控制系统的开环传递函数为)136)(5.3)(1()(2++++=s s s s s Ks G 试编程绘制闭环系统的根轨迹。

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

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

3. 设单位反馈控制系统的开环传递函数为)204)(4()(2+++=s s s s Ks G试编程绘制闭环系统的根轨迹。

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

%根轨迹仿真实训第3题 n=1;d=conv([1,0],conv([1,4],[1,4,20])); rlocus(n,d)由图上数据可知:闭环系统稳定的K 的取值范围:2620<<K ; 根轨迹与虚轴的交点坐标:18.3j ±; 分离点的坐标:21-=d ,45.2j 232±-=,d 。

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

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

3.5 MATLAB 绘图实训3.5.1 实训目的1.学会MA TLAB 绘图的基本知识;2.掌握MA TLAB 子图绘制、图形注释、图形编辑等基本方法;3.学会通过MA TLAB 绘图解决一些实际问题;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米。

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语言与控制系统仿真-参考答案-第8章

8.6 控制系统的Simulink仿真实训8.6.1实训目的:1.学会运用Simulink进行系统仿真;2.了解子系统的创建方法及简单应用;3.运用Simulink实现混沌控制系统的仿真;4.运用Simulink实现伺服跟踪系统等系统的仿真;8.6.2实训内容:1.按照图8-39所示建立系统的结构图文件。

图8-39(1)K=50,纪录图示三处的波形,分析系统的稳态性并给出稳态误差。

仿真文件:sx8620101.mdl系统稳定,稳态误差为0;(2)K=200,纪录图示三处的波形,根据曲线分析系统的稳定性。

仿真文件:sx8620102.mdl由输出曲线可以看出闭环系统不稳定;(3)编写程序求取K=200时的闭环传递函数,求出系统的闭环极点(特征根),说明系统的稳定性,分析与(2)得出的结论是否一致。

%实训8620103.mn1=3;d1=[1,2];[n2,d2]=cloop(n1,d1);sysa=tf(n2,d2);sysb=tf([200],[1,0])*tf([1],[1,5]);sysc=sysa*sysb/(1+sysa*sysb);[nc,dc]=tfdata(sysc,'v');roots(dc)>> ans =-12.0549 1.0275 + 6.9797i 1.0275 - 6.9797i -5.0000 + 0.0000i -5.0000 - 0.0000i有两个特征根在右半平面,闭环系统不稳定;与(2)得出的稳定性结论一致。

2. 子系统创建实验 (1)建立如下系统。

(2)选定范围,创建子系统并定义变量a 。

图8-40(3)利用创建的子系统,分别记录10,8,6,4,2 a 时所示系统的输出波形。

a=2a=4a=6a=8a=103.已知四维混沌系统的运动方程如下,试用Simulink 进行仿真。

⎪⎪⎩⎪⎪⎨⎧+-=+-=-+=+-=321444213343121243212110)(10)(35x x x x xx x x x x x x x x x xx x x x x x (1)四个积分器的初始值自定,建议在(0.01,3.0)范围内随机给出。

MATLAB与控制系统仿真练习题(含图)及答案

MATLAB 与控制系统仿真练习题(含图)1、已知函数x x e x f x sin cos )(-=,作出函数的大致图像。

>> syms x>> y=exp(x)*cos(x)-sin(x); >> ezplot(y)2、求下列极限:(1)30sin lim xx x x -→ >> syms x>> y=(x-sin(x))/(x^3);>> limit(y,x,0)ans =1/6(2) xx x ⎪⎭⎫ ⎝⎛+∞→11lim >> y=(1+1/x)^x;>> limit(y,x,inf)ans =exp(1)3、求下列函数的导数:(1)x e y x sin =>> syms x>> y=exp(x)*sin(x);>> diff(y,x)ans =exp(x)*sin(x)+exp(x)*cos(x)(2) x e x x y 22sin +=>> syms x>> y=sin(x)+x^2*exp(2*x);>> diff(y,x)ans =cos(x)+2*x*exp(2*x)+2*x^2*exp(2*x)4、求.)1(532⎰-dx x x 和.sin ⎰xdx e x(1).)1(532⎰-dx x xsyms x>> int(x^2*(1-x^3)^5)ans =-1/18*x^18+1/3*x^15-5/6*x^12+10/9*x^9-5/6*x^6+1/3*x^3(2).sin ⎰xdx e x>> int(exp(x)*sin(x))ans =-1/2*exp(x)*cos(x)+1/2*exp(x)*sin(x)5、求.)(102⎰-dx x x 和.1102⎰-dx x x (1) .)(102⎰-dx x x>> syms x>> int(x-x^2,0,1)ans =1/6(2) .1102⎰-dx x x>> syms x>> int(x*(1-x^2)^0.5,0,1)ans =1/36、已知二元函数),(cos )sin(2xy xy z +=试求y x z x z y z x z ∂∂∂∂∂∂∂∂∂222,,,。

MATLAB语言及控制系统仿真_参考答案解析_第2章

2.12 MATLAB 语言的数值运算-实训2.12.1实训目的1.学会矩阵的建立方法及其矩阵的转置、相乘、求逆等运算;2.识别了解特殊矩阵;3.学会求解方程与方程组;4.学会通过编程解决一些实际问题; 2.12.2实训内容 1.矩阵建立及其运算]4321012345[1-----=A[]0.19.08.07.06.05.04.03.02.01.02=A ]0.19.08.07.06.05.04.03.02.01.0[3=A][40.19.08.07.06.05.04.03.02.01.0e e e e e e e e e e A = ]2222222222[50.19.08.07.06.05.04.03.02.01.0=A求(1)211A A D += (2)232A A D -= (3)4/.13A D = (4)5*.44A A D = (5)5*35A D = (6))2(.^16A D =>> A1=-5:4;>> A2=0.1:0.1:1.0; >> A3=sqrt(A2); >> A4=exp(A2); >> A5=2.^(A2); >> format bank >> D1=A1+A2 D1 =-4.90 -3.80 -2.70 -1.60 -0.50 0.60 1.70 2.80 3.90 5.00 >> D2=A3-A2 D2 =0.22 0.25 0.25 0.23 0.21 0.17 0.14 0.09 0.05 0 >> D3=1./A4 D3 =0.90 0.82 0.74 0.67 0.61 0.55 0.50 0.45 0.41 0.37 >> D4=A4.*A5D4 =1.18 1.40 1.66 1.972.33 2.763.27 3.874.595.44 >> D5=3*A5 D5 =3.22 3.45 3.69 3.964.24 4.55 4.875.22 5.606.00 >> D6=A1.^2 D6 =25.00 16.00 9.00 4.00 1.00 0 1.00 4.00 9.00 16.002.建立矩阵⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡-----=1418712106114231359152345686420B(1)矩阵B 的逆矩阵)(inv B (2)矩阵B 对应的行列式)det(B>> B=[0:2:8;-6:-2;15,9,5,13,3;2,4,11,6,10;12,7,8,1,14]B =0 2.00 4.00 6.00 8.00 -6.00 -5.00 -4.00 -3.00 -2.00 15.00 9.00 5.00 13.00 3.00 2.00 4.00 11.00 6.00 10.00 12.00 7.00 8.00 1.00 14.00 >> inv(B) ans =-0.18 0.29 0.11 0.07 0.07 0.31 -0.72 -0.20 -0.23 -0.07 -0.21 0.11 0.03 0.21 -0.02 0.05 0.11 0.08 0.02 -0.04 0.12 0.04 -0.02 -0.06 0.06 >> det(B) ans =-17568.00(3)利用矩阵元素的提取方法建立以下矩阵 ①矩阵b01:矩阵B 的3~4行元素; ②矩阵b02:矩阵B 的2~5列元素;③矩阵b03:由矩阵B 的1~3行2~4列交叉点所对应的元素组成; >> B=[0:2:8;-6:-2;15,9,5,13,3;2,4,11,6,10;12,7,8,1,14]; >> b01=B(3:4,:) b01 =15.00 9.00 5.00 13.00 3.002.00 4.00 11.00 6.00 10.00 >> b02=B(:,2:5) b02 =2.00 4.00 6.00 8.00 -5.00 -4.00 -3.00 -2.00 9.00 5.00 13.00 3.004.00 11.00 6.00 10.00 7.00 8.00 1.00 14.00 >> b03=B(1:3,2:4) b03 =2.00 4.00 6.00 -5.00 -4.00 -3.00 9.00 5.00 13.00 3.矩阵的转置与翻转已知矩阵⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=151413121110987654321m ,求取以下矩阵观察并记录。

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