控制系统计算机辅助设计实验报告
- 格式:doc
- 大小:608.00 KB
- 文档页数:14
控制系统计算机辅助设计实验报告姓名:学号:学院:自动化学院专业:自动化2013-11实验一一、实验要求:1、用matlab语言求下列系统的状态方程、传递函数、零极点增益、和部分分式形式的模型参数,并分别写出其相应的数学模型表达式:(1)(2)2、用欧拉法求下面系统的输出响应 y(t)在0≤t≤1 上,h=0.1时的数值。
y ' = -y, y(0) =1要求保留4 位小数,并将结果与真解 y(t) = e-t比较。
3、用二阶龙格库塔法求解 2 的数值解,并于欧拉法求得的结果比较。
二、实验步骤:1、求(1)的M文件如下:clear;num=[1 7 24 24];den=[1 10 35 50 24];sys=tf(num,den)[A,B,C,D]=tf2ss(num,den)[Z,P,K]=tf2zp(num,den)[R,P,H]=residue(num,den)1.1系统系数矩阵A,系统输入矩阵B,系统输出矩阵C,直接传输矩阵D分别为:所以系统的状态方程为: x(t)=A x(t)+B u(t);y(t)=C x(t)1.2零极点增益模型:G(s)=【(s+2.7306-2.8531i)(s+2.7306+2.8531i)(s+1.5388)】/【(s+4)(s+3)(s+2)(s+1)】1.3系统零点向量Z, 极点向量P,系数H分别为:部分分式形式:G(s)=4/(s+4)-6/(s+3)+2/(s+2)+1/(s+1)2.求(2)的M文件如下:clear;a=[2.25,-5,-1.25,-0.5;2.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;sys=ss(a,b,c,d)[num,den]=ss2tf(a,b,c,d)[Z,P,K]=ss2zp(a,b,c,d)[R,P,H]=residue(num,den)2.1传递函数模型参数:G(S)=(4 s^3 + 14 s ^2+ 22 s + 15)/(s^4 + 4 s^3 + 6.25 s ^2+ 5.25 s + 2.25)2.2 系统零点向量Z, 极点向量P,系数K分别为:零极点增益模型参数:G(s)= 【4(s+1-1.2247i )(s+1+1.2247i)】/【(s+0.5-0.866i)( s+0.5+0.866i s+1.5)】2.3部分分式形式的模型参数::G (s)=4/(s+1.5)-2.3094i/(s+0.5-0.866i)+2.3094i/(s+0.5+0.866i)3原理:把 f(t,y)在[t k,y k]区间内的曲边面积用矩形面积近似代替M文件如下:cleary=1;h=0.1;j=0;for i=1:11j=j+1;a(j)=yy=y+h*(-y);endj=0;for i=0:0.1:1f=exp(-i);j=j+1;b(j)=f;endfigure(1)x=0:0.1:1;abplot(x,a,'y-*')hold onplot(x,b,'--ro')得到图形:1 0.9000 0.8100 0.7290 0.6561 0.5905 0.5314 0.4783 0.4305 0.3874 0.3487 欧拉真 1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.36794.原理:把 f(t,y)在[t k,y k]区间内的曲边面积用上下底为f k和f k+1、高为 h 的梯形面积近似代替。
M文件如下:clear;y=1;h=0.1;j=0;for i=1:11j=j+1;a(j)=yk1=-y;k2=-(y+0.5*h*k1);y=y+h*k2;endj=0;for i=0:0.1:1f=exp(-i);j=j+1;b(j)=f;endfigure(2)x=0:0.1:1;abplot(x,a,'y-*')hold onplot(x,b,'--ro')得到图形:1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.3679 真值1 0.9050 0.8190 0.7412 0.6708 0.6071 0.5494 0.4972 0.4500 0.4072 0.3685 龙库0 0.0002 0.0003 0.0004 0.0005 0.0006 0.0006 0.0006 0.0007 0.0006 0.0006 误差二阶龙格-库塔法比欧拉法计算精度高。
三、实验总结:此次实验只要平时上课认真听过课,参考课件和书本便能顺利完成实验。
由此实验也可以总结出很多问题都会有多种解法,我们要通过实践总结出最佳解法。
实验二一、实验内容:1、用四阶龙格-库塔法求解题 2-3 数值解,并与前两题结果相比较。
2、已知二阶系统状态方程为(1)写出取计算步长为 h 时,该系统状态变量的四阶龙格-库塔法递推关系式。
(2)令上式中u(t)=0,用试探法选取参数带入(a)所得公式,给出仿真图形。
要求选取两组参数,一组使系统稳定,一组使系统发散。
(注:系统稳定从仿真图形上看,可视为系统的状态曲线x(t)趋于一定的值,发散可视为系统的状态曲线x(t)趋于无穷,当时间t趋于无穷时。
)二、实验步骤:1.求四阶龙格-库塔方法求解函数数值解:M文件:clear;y=1;h=0.1;j=0;for i=1:11j=j+1;a(j)=yk1=-y;k2=-(y+0.5*h*k1);k3=-(y+0.5*h*k2);k4=-(y+h*k3);y=y+h/6*(k1+2*k2+2*k3+k4);endj=0;for i=0:0.1:1f=exp(-i);j=j+1;b(j)=f;endfigure(3)x=0:0.1:1;abplot(x,a,'y-*')hold onplot(x,b,'--ro')得到图形:1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.3679 真值1 0.9048 0.8187 0.7408 0.6703 0.6065 0.5488 0.4966 0.4493 0.4066 0.3679 龙库误0 0 0 0 0 0 0 0 0 0 0差于二阶龙格库塔法,二阶龙格库塔法求解精度高于欧拉法。
2 当u(t)=0时:. M源程序:clear;h=0.1;i=1;j=1;x=[2;1];A=[-1,0;2,-2]for t=0:h:10disp(x);k1=A*x;k2=A*(x+k1*h/2);k3=A*(x+k2*h/2);k4=A*(x+k3*h);M(i)=x(1,:);T(i)=x(2,:);i=i+1j=j+1m=xx=m+h/6*(k1+2*k2+3*k3+k4);endeig(A)x=0:h:10;plot(x,M)hold onplot(x,T)得到结果:特征根ans =-3.5616 , 0.5616图像:将A改为[-1,0;2,-2]得到:特征根ans = -2 ,-1 图形为:三、实验总结:此次实验需要耐心调整矩阵A的值,并且h需要设置合适的大小,才能保证图形的圆滑。
实验三一、实验内容:1、针对2-6中问题(b),对所选取的使系统发散的一组参数,设置控制u(t)=Kx(t)使系统稳定,其中K可以设计为一个常数(一般而言是个负数)或者为一个2*2的矩阵(一般而言其特征值均为负)。
2、将上述控制系统在Matlab/Simulink平台上进行仿真,并选取不同的仿真算法,比较所得的结果。
(注:这里的不同仿真算法是指,在Simulink 仿真参数配置对话框中分别选取:定步长和变步长进行仿真,在定步长中又可以分为欧拉法,或其他,变步长中也可以选择其他算法,并比较不同的仿真算法对仿真结果的影响。
)二、实验步骤:。
在Simulink 下建立系统框图如下:X[2;1] ;A[-1,2;2,-2] ;B[1;1] ;K=[-1,-1]在Simulink 仿真参数配置对话框中分别选取不同算法:定步长的Euler 法、Runge-Kutta 法;变步长的Adams 法、Bogacki-Shampine 法、Dormand-Prince 法。
其中定步长时步长为0.2。
变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测。
固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。
1.1定步长Euler法如图:1.2定步长Runge-Kutta 法:对于定步长分析可知,定步长Runge -Kutta 的图形比较理想,曲线比较平滑。
2.1变步长Dormand-prince法:2.2变步长Bogachi-Shanpine法:2.3变步长Adams法:对于变步长:通过增大步长以减少运算时间。
变步长的最大值也要设置当然越小越好,但是太小了会仿真的时间很长,浪费时间。
通过上述实验图可以发现变步长对于此系统曲线更加平滑。
二、实验总结:此次实验花费的时间比较长,需要耐心地用尝试法使系统稳定。
此次实验我不仅请教了同学而且自己也通过查阅资料最终完成了实验,收获颇多。