当前位置:文档之家› 控制系统数字仿真第二章习题答案

控制系统数字仿真第二章习题答案

控制系统数字仿真与CAD第二章习题答案2-1 思考题:(1)数学模型的微分方程,状态方程,传递函数,零极点增益和部分分式五种形式,各有什么特点?(2)数学模型各种形式之间为什么要互相转换?(3)控制系统建模的基本方法有哪些?他们的区别和特点是什么?(4)控制系统计算机仿真中的“实现问题”是什么含意?(5)数值积分法的选用应遵循哪几条原则?答:(1)微分方程是直接描述系统输入和输出量之间的制约关系,是连续控制系统其他数学模型表达式的基础。

状态方程能够反映系统内部各状态之间的相互关系,适用于多输入多输出系统。

传递函数是零极点形式和部分分式形式的基础。

零极点增益形式可用于分析系统的稳定性和快速性。

利用部分分式形式可直接分析系统的动态过程。

(2)不同的控制系统的分析和设计方法,只适用于特定的数学模型形式。

(3)控制系统的建模方法大体有三种:机理模型法,统计模型法和混合模型法。

机理模型法就是对已知结构,参数的物理系统运用相应的物理定律或定理,经过合理的分析简化建立起来的各物理量间的关系。

该方法需要对系统的内部结构和特性完全的了解,精度高。

统计模型法是采用归纳的方法,根据系统实测的数据,运用统计规律和系统辨识等理论建立的系统模型。

该方法建立的数学模型受数据量不充分,数据精度不一致,数据处理方法的不完善,很难在精度上达到更高的要求。

混合法是上述两种方法的结合。

(4)“实现问题”就是根据建立的数学模型和精度,采用某种数值计算方法,将模型方程转换为适合在计算机上运行的公式和方程,通过计算来使之正确的反映系统各变量动态性能,得到可靠的仿真结果。

(5)数值积分法应该遵循的原则是在满足系统精度的前提下,提高数值运算的速度和并保证计算结果的稳定。

2-2.用matlab语言求下列系统的状态方程、传递函数、零极点增益、和部分分式形式的模型参数,并分别写出其相应的数学模型表达式:(1) G(s)=324327242410355024s s ss s s s+++++++(2).X=2.25 -5 -1.25 -0.542.25 -4.25 -1.25 -0.2520.25 -0.5 -1.25 -121.25 -1.75 -0.25 -0.75 0X⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦u y=[0 2 0 2] X(1)解:(1)状态方程模型参数:编写matlab程序如下>> num=[1 7 24 24];>> den=[1 10 35 50 24];>> [A B C D]=tf2ss(num,den)得到结果:A=-10 -35 -50 -241 0 0 00 1 0 00 0 1 0⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,B=1⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,C=[]1 7 24 24,D=[0]所以模型为:.X=-10 -35 -50 -241 0 0 00 1 0 00 0 1 0⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦X+1⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦u,y=[]1 7 24 24X(2)零极点增益:编写程序>> num=[1 7 24 24];>> den=[1 10 35 50 24];>> [Z P K]=tf2zp(num,den)得到结果Z= -2.7306 + 2.8531 , -2.7306 - 2.8531i ,-1.5388P= -4, -3 ,-2 ,-1K=1(3) 部分分式形式:编写程序>> num=[1 7 24 24];>> den=[1 10 35 50 24];>> [R P H]=residue(num,den)得到结果R= 4.0000 ,-6.0000, 2.0000, 1.0000P= -4.0000, -3.0000 , -2.0000 ,-1.0000 H=[]G(s)=46214321s s s s -+++++++(2)解:(1)传递函数模型参数:编写程序>> A=[2.25 -5 -1.25 -0.52.25 -4.25 -1.25 -0.250.25 -0.5 -1.25 -1 1.25 -1.75 -0.25 -0.75];>> B=[4 2 2 0]'; >> C=[0 2 0 2];>> D=[0];>> [num den]=ss2tf(A,B,C,D)得到结果num = 0 4.0000 14.0000 22.0000 15.0000 den =1.0000 4.0000 6.2500 5.2500 2.2500324324 s + 14 s + 22 s + 15()s + 4 s + 6.25 s + 5.25 s + 2.25G s =(2) 零极点增益模型参数:编写程序>> A=[2.25 -5 -1.25 -0.52.25 -4.25 -1.25 -0.25 0.25 -0.5 -1.25 -1 1.25 -1.75 -0.25 -0.75];>> B=[4 2 2 0]'; >> C=[0 2 0 2];>> D=[0];>> [Z,P,K]=ss2zp(A,B,C,D)得到结果Z =-1.0000 + 1.2247i -1.0000 - 1.2247i -1.5000P= -0.5000 + 0.8660i -0.5000 - 0.8660i -1.5000 -1.5000 K = 4.0000表达式 ()()()()()4s+1-1.2247i s+1+1.2247i ()s+0.5-0.866i s+0.5+0.866i s+1.5G s =(3)部分分式形式的模型参数:编写程序>> A=[2.25 -5 -1.25 -0.52.25 -4.25 -1.25 -0.25 0.25 -0.5 -1.25 -11.25 -1.75 -0.25 -0.75];>> B=[4 2 2 0]'; >> C=[0 2 0 2];>> D=[0];>> [num den]=ss2tf(A,B,C,D)>> [R,P,H]=residue(num,den)得到结果R = 4.0000 -0.0000 0.0000 - 2.3094i 0.0000 + 2.3094iP = -1.5000 -1.5000 -0.5000 + 0.8660i -0.5000 - 0.8660i H =[]4 2.3094 2.3094() 1.50.50.8660.50.866i iG s s s i s i=-+++-++2-3.用欧拉法求下面系统的输出响应y(t)在0≤t ≤1上,h=0.1时的数值。

',(0)1y y y =-=要求保留4位小数,并将结果与真解()t y t e -=比较。

解:欧拉法1'00*(,)(,)()k k k k k k y y h f t y y f t y y t y+=+⎧⎪=⎨⎪=⎩(前向欧拉法,可以自启动)其几何意义:把f(t,y)在[,k k t y ]区间内的曲边面积用矩形面积近似代替。

利用matlab 提供的m 文件编程,得到算法公式。

如下所示(1) m 文件程序为 h=0.1;disp('函数的数值解为'); %显示 …‟中间的文字% disp('y='); %同上%y=1;for t=0:h:1m=y;disp(y); %显示y 的当前值% y=m-m*h;end保存文件q2.m在matalb 命令行中键入>> q2得到结果 函数的数值解为y= 1 0.9000 0.8100 0.7290 0.6561 0.5905 0.5314 0.4783 0.4305 0.3874 0.3487(2)另建一个m 文件求解t y e -=在t ∈[0,1]的数值 ( %t y e -=是',(0)1y y y =-=的真解%)程序为h=0.1;disp('函数的离散时刻解为'); disp('y='); for t=0:h:1 y=exp(-t); disp(y);end 保存文件q3.m 在matalb 命令行中键入>> q3 函数的离散时刻解为y= 1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.3679比较欧拉方法求解与真值的差别显然误差与2h 为同阶无穷小,欧拉法具有一阶计算精度,精度较低,但算法简单。

2-4用二阶龙格库塔法求解2-3的数值解,并于欧拉法求得的结果比较。

解:我们经常用到 预报-校正法 的二阶龙-格库塔法, 112121'()2(,)(,)(,)k k k k k k h y y k k k f t y k f t h y hk f t y y+⎧=++⎪⎪⎪=⎨⎪=++⎪=⎪⎩此方法可以自启动,具有二阶计算精度,几何意义:把f(t,y)在[,k k t y ]区间内的曲边面积用上下底为k f 和1k f 、高为h 的梯形面积近似代替。

利用matlab 提供的m 文件编程,得到算法公式。

如下所示 (1)m 文件程序为 h=0.1;disp('函数的数值解为');disp('y='); y=1; for t=0:h:1disp(y); k1=-y;k2=-(y+k1*h); y=y+(k1+k2)*h/2;end 保存文件q4.m在matlab 的命令行中键入 >> q4 显示结果为 函数的数值解为y= 1 0.9050 0.8190 0.7412 0.6708 0.6071 0.5494 0.4972 0.4500 0.4072 0.3685(2) 比较欧拉法与二阶龙格-库塔法求解.(误差为绝对值)明显误差为3h 得同阶无穷小,具有二阶计算精度,而欧拉法具有以阶计算精度,二阶龙格-库塔法比欧拉法计算精度高。

2-5.用四阶龙格-库塔法求解题2-3数值解,并与前两题结果相比较。

解:四阶龙格-库塔法表达式112341213243(22)6(,)(,)22(,)22(,)k kk kk kk kk khy y k k k kk f t yh hk f t y kh hk f t y kk f t h y hk+⎧=++++⎪⎪=⎪⎪⎪=++⎨⎪⎪=++⎪⎪=++⎪⎩,其截断误差为5h同阶无穷小,当h步距取得较小时,误差是很小的.(1)编辑m文件程序h=0.1;disp('四阶龙格-库塔方法求解函数数值解为');disp('y=');y=1;for t=0:h:1disp(y);k1=-y;k2=-(y+k1*h/2);k3=-(y+k2*h/2);k4=-(y+k3*h);y=y+(k1+2*k2+2*k3+k4)*h/6;end 保存文件q5.m在matlab命令行里键入>> q5得到结果四阶龙格-库塔方法求解函数数值解为y= 1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.3679 (2)比较这几种方法:对于四阶龙格-库塔方法显然四阶龙格-库塔法求解精度很高,基本接近真值。

相关主题