现代控制理论实验报告实验一 系统的传递函数阵和状态空间表达式的转换一、实验目的1.熟悉线性系统的数学模型、模型转换。
2.了解MATLAB 中相应的函数 二、实验内容及步骤 1.给定系统的传递函数为1503913.403618)(23++++=s s s s s G 要求(1)将其用Matlab 表达;(2)生成状态空间模型。
2.在Matlab 中建立如下离散系统的传递函数模型y (k + 2) +5y (k +1) +6y (k ) = u (k + 2) + 2u (k +1) +u (k ) 3.在Matlab 中建立如下传递函数阵的Matlab 模型⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+++++++++++=726611632256512)(2322s s s s s s s s s s s s G4.给定系统的模型为)4.0)(25)(15()2(18)(++++=s s s s s G求(1)将其用Matlab 表达;(2)生成状态空间模型。
5.给定系统的状态方程系数矩阵如下:[]0,360180,001,0100011601384.40==⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=D C B A用Matlab 将其以状态空间模型表示出来。
6.输入零极点函数模型,零点z=1,-2;极点p=-1,2,-3 增益k=1;求相应的传递函数模型、状态空间模型。
三、实验结果及分析1. num=[18 36];den=[1 40.3 391 150]; >> G=tf(num,den) Transfer function: 18 s + 36----------------------------s^3 + 40.3 s^2 + 391 s + 150>> sys=ss(G)a =x1 x2 x3x1 -40.3 -24.44 -4.688x2 16 0 0x3 0 2 0b =u1x1 2x2 0x3 0c =x1 x2 x3y1 0 0.5625 0.5625d =u1y1 0Continuous-time model.2. num=[1 2 1];den=[1 5 6];tf(num,den,0.1) Transfer function:z^2 + 2 z + 1-------------z^2 + 5 z + 6Sampling time: 0.13. num={[1 2 1] [1 5] [2 3] [6]};den={[1 5 6] [1 2] [1 6 11 6] [2 7]};>> tf(num,den)Transfer function from input 1 to output:s^2 + 2 s + 1-------------s^2 + 5 s + 6Transfer function from input 2 to output:s + 5-----s + 2Transfer function from input 3 to output:2 s + 3----------------------s^3 + 6 s^2 + 11 s + 6Transfer function from input 4 to output:6-------2 s + 74. sys=zpk([-2],[-15 -25 -0.4],[18])Zero/pole/gain:18 (s+2)---------------------(s+15) (s+25) (s+0.4)z=-2;p=[-15;-25;-0.4];k=18;>> [A,B,C,D]=zp2ss(z,p,k)A =-0.4000 0 01.6000 -40.0000 -19.36490 19.3649 0B =11C =0 0 0.9295D =5. A=[-40.4 -138 -160;1 0 0;0 1 0];B=[1;0;0];C=[0 18 360];D=0; >> sys=ss(A,B,C,D)a =x1 x2 x3 x1 -40.4 -138 -160x2 1 0 0x3 0 1 0b =u1x1 1x2 0x3 0c =x1 x2 x3y1 0 18 360d =u1y1 0Continuous-time model.6. z=[1;-2];p=[-1;2;-3];k=1;>> [A,B,C,D]=zp2ss(z,p,k)A =2.0000 0 01.0000 -4.0000 -1.73210 1.7321 0B =1C =1.0000 -3.0000 -2.8868D =>> [num,den]=ss2tf(A,B,C,D)num =0 1.0000 1.0000 -2.0000 den =1 2 -5 -6 >> tf(num,den) Transfer function: s^2 + s - 2 --------------------- s^3 + 2 s^2 - 5 s - 6 四、实验总结本次实验主要是熟悉利用matlab 建立线性系统数学模型以及模型间的相应转换(如状态空间、传递函数模型等)、并了解matlab 中相应函数的使用,如tf 、ss 、zp2ss 、ss2tf 等。
通过实验指导书的指导和编写相应程序,圆满完成本次实验任务,达到了实验的目的。
实验二 状态空间标准形与控制系统的运动分析一、实验目的1.掌握线性系统的对角线标准形、约当标准形、能控标准形和能观测标准型的表示及相应变换阵的求解。
深入理解状态空间模型的相关理论。
2. 掌握利用Matlab 进行矩阵指数函数的数值计算和符号计算方法;对定常连续系统和定常离散系统的状态空间模型进行求解,分析其运动规律;对连续系统进行离散化。
二、实验内容及步骤1.将实验一的第2题用对角标准型实现。
2.系统的动态方程如下:[]X y u X X 011,0016116100010=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=1)求对角标准型实现,并写出实现变换的非奇异阵和变换关系。
2)求可控准型实现,并写出实现变换的非奇异阵和变换关系。
3.计算如下矩阵的特征值和广义特征向量。
⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=111201634A4..将如下状态空间模型变换为约旦规范形。
[]Xy u X X 001,100584100010=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---= 5.将下列状态方程化为约当型,并写出实现变换的非奇异阵和变换关系。
⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-=⎥⎥⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎢⎢⎣⎡-----=012010121101,110000110000112000110200001111001113B A 6.在Matlab 中计算矩阵A 在t=0.3 时的矩阵指数eAt 的值。
⎥⎦⎤⎢⎣⎡--=3210A 7.计算系统在[0,10s]内, T=3s⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--=∙21,1032100x u x X三、实验结果及分析1.代码:a1 = 5; a0 = 6;b2 = 1; b1 = 2; b0 = 1; c0 = b2;c1 = b1 - a1*c0;c2 = b0 - a0*c0 - a1*c1; G = [0 1;-a0 -a1]; H = [c1;c2]; C = [1 0]; D = [c0];[Q,d] = eig(G); P = inv(Q); Gb = P*G*Q Hb = P*H Cb = C*Q Db = D运行结果: Gb =-2.0000 0.0000 -0.0000 -3.0000 Hb =2.2361 12.6491Cb =0.4472 -0.3162Db =12.代码:A=[0 1 0;0 0 1;-6 -11 -6];B=[1;0;0];C=[1 1 0];D=0;[Q,D]=eig(A)P=inv(Q)%[con_ss,T]=canon(A,B,C,D,'modal')%[con_ss1,T1]=canon(A,B,C,D,'companion')A1=P*A*QB1=P*BQ=-0.5774 0.2182 -0.10480.5774 -0.4364 0.3145-0.5774 0.8729 -0.9435D =-1.0000 0 00 -2.0000 00 0 -3.0000P =-5.1962 -4.3301 -0.8660-13.7477 -18.3303 -4.5826-9.5394 -14.3091 -4.7697A1 =-1.0000 -0.0000 0.00000.0000 -2.0000 0.00000.0000 -0.0000 -3.0000B1 =-5.1962-13.7477-9.5394A=[0 1 0;0 0 1;-6 -11 -6];B=[1;0;0];C=[1 1 0];D=0;Qc=ctrb(A,B)M=eig(A)Q=Qc*[M(2) M(3) 1;M(3) 1 0;1 0 0]P=inv(Q)Ab=P*A*Q,Bb=P*B,Cb=C*QQc =1 0 00 0 -60 -6 36M =-1.0000-2.0000-3.0000Q =-2.0000 -3.0000 1.0000-6.0000 0 054.0000 -6.0000 0P =0.0000 -0.1667 -0.00000.0000 -1.5000 -0.16671.0000 -4.8333 -0.5000Ab =-9.0000 1.0000 0.0000-40.0000 -0.0000 1.0000-144.0000 2.0000 3.0000Bb =0.00000.00001.0000Cb =-8.0000 -3.0000 1.00003.代码:A=[-4 -3 -6;1 0 2;1 1 1];M=eig(A)[V,J]=jordan(A)M =-1.0000 + 0.0000i-1.0000 - 0.0000i-1.0000V =-3 -1 -21 0 01 1 1J =-1 1 00 -1 00 0 -14.代码:A = [0 1 0;0 0 1;-6 -11 -6];B = [1;0;0];C = [1 0 0];[Q,J] = jordan(A);P = inv(Q);Ab = JBb = P*BCb = C*P运行结果为:Ab =-3 0 00 -2 00 0 -1Bb =9.0000-12.00003.0000Cb =9.0000 13.5000 4.50005.代码:A = [3 -1 1 1 0 0;1 1 -1 -1 0 0;0 0 2 0 1 1;0 0 0 2 -1 -1;0 0 0 0 1 1;00 0 0 1 1];B = [1 0;-1 1;2 1;0 -1;0 2;1 0];[Q,J] = jordan(A)P = inv(Q)Ab = JBb = P*B运行结果:Q =2.0000 2.0000 1.0000 0 0 02.0000 0 0 0 0 00 0 1.0000 0 1.0000 00 0 0 0 -1.0000 00 0 0 0.5000 0 0.50000 0 0 -0.5000 0 0.5000J =2 1 0 0 0 00 2 1 0 0 00 0 2 0 0 00 0 0 0 0 00 0 0 0 2 10 0 0 0 0 2P =0 0.5000 0 0 0 00.5000 -0.5000 -0.5000 -0.5000 0 00 0 1.0000 1.0000 0 00 0 0 0 1.0000 -1.00000 0 0 -1.0000 0 00 0 0 0 1.0000 1.0000Ab =2 1 0 0 0 00 2 1 0 0 00 0 2 0 0 00 0 0 0 0 00 0 0 0 2 10 0 0 0 0 2Bb =-0.5000 0.50000 -0.50002.0000 0-1.0000 2.00000 1.00001.00002.00006.代码:A = [0 1;-2 -3];syms s t;F = s*eye(length(A))-A;Q = inv(F);f = ilaplace(Q);x = subs(f,'t',0.3)运行结果:x =[ 2*exp(-3/10) - exp(-3/5), exp(-3/10) - exp(-3/5)] [ 2*exp(-3/5) - 2*exp(-3/10), 2*exp(-3/5) - exp(-3/10)]7.代码:A = [0 1;-2 -3];B = [0;1];C = [];D = [];x0 = [1;2];sys = ss(A,B,C,D);[u,t] = gensig('square',3,10,0.1);[y,t,x] = lsim(sys,u,t,x0);plot(t,u,t,x) 运行结果:四、实验总结本次实验的主要目的是:掌握线性系统的对角线标准形、约当标准形、能控标准形和能观测标准型的表示及相应变换阵的求解;掌握利用Matlab 进行矩阵指数函数的数值计算和符号计算方法;对定常连续系统和定常离散系统的状态空间模型进行求解,分析其运动规律;对连续系统进行离散化。