实验一一 MATLAB系统的传递函数和状态空间表达式的转 换
实验目的
1、 学习多变量系统状态空间表达式的建立方法;
2、 通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互 转换的方法; 3、掌握相应的MATLAB函数
实验原理
设系统的模型如式(1.1 )所示:
x' = Ax + Bu
y = Cx + D
其中A为nXn维系统矩阵、B为nXm维输入矩阵、C为pXn维输出矩阵, D为直接传递函数。系统的传递函数和状态空间表达式之间的关系如式(
所示
x迂 R''
u R''' y RP
(1.1)
1.2)
G(s)=num(s)/den(s)=C (Sl-A) B+D
-1
(1.2)
式(1.2)中,num(s)表示传递函数的分子阵,其维数是 pXm,den(s)表示传 递函数的按s降幕排列的分母
表示状态空间模型和传递函数的 MATLAB函数如下:
函数ss( state space的首字母)给出了状态空间模型,其一般形式是
sys=ss(A,B,C,D)
函数tf(transfer function的首字母)给出了传递函数,其一般形式是
G=tf(num,den)
其中num表示传递函数中分子多项式的系数向量 表示传递函数中分母多项式的系数向量。
函数tf2ss给出了传递函数的一个状态空间实现,其一般形式是
(单输入单输出系统),den
[A,B,C,D]=tf2ss( num,de n)
函数ss2tf给出了状态空间模型所描述系统的传递函数,其一般形式是
[n um,de n]=ss2tf(A,B,C,D,iu)
其中对于多输入系统,必须确定iu的值。例如,若系统有三个输入 U1, U2,
U3,贝U iu必须是1、2、或3,其中1表示Ui,2表示U2,3表示 出。该函数的结 果是第iu
个输入到所有输出的传递函数。
三?实验步骤及结果
1、应用MATLAB对下列系统编程,求系统的 A、B、C、D阵,然后验证 传递函数是相
同的。
[2s +1 * /
G(s)= S +5s+3 一/
S3+4S2+5S+1
程序和运行结果:
'flvt ?J*n“ HaLp
■
? 1眄 EyuE CL-M.1:
I
r-XsiliL iw-i RH\ r YUTLHMf5〉I Wglb4afiVr*KXLzri|\?iHc*UAt? ul |D n 2 ii 6 I 5 S].
rw.i ■ |A. !□£. D:]?L理???— J.b.) 4jtdbl-a iU曲+ ? ?刮 | 蛮WiLlDFEhW ■d M. Wg -Hl i?\每矣工.D): ■ff-isM ?>i!lirr(All:?: ■Sr ■ ■!■ : 0> g^MnhW; ^hEbrM . C~ . F I- ?L? d* U「:年■厲如豎甲禅 \\ wd LI 5P2T/I4 a te- H R wa^to D E l.:Q 1 V ?]: ■J—U 4 5 1] 応.DJ-SEZH (cm.. diiO /■■■i Ki bi?r I EI.rl I T-i-klHrrr?i zl >Kli±Oii4JK i3ia ■事石血订阿 山皿 .1 ■h-LM: num=[0 0 2 1;0 1 5 3]; den=[1 4 5 1]; [A,B,C,D]=tf2ss( num,de n) A =-4 -5 -1 = 1 0 0 0 1 0 B =1 = 0 0 C =0 1 2 5 1 3 D =0 0 A=[-4 -5 -1;1 0 0;0 1 0]; A=[-4 -5 -1;1 0 0;0 1 0]; B=[1;0;0]; C=[0 2 1;1 5 3]; D=[0;0]; [n um1,de n1]=ss2tf(A,B,C,D,1) numl = 0 0.0000 2.0000 1.0000 0 1.0000 5.0000 3.0000 den1 =1.0000 4.0000 5.0000 1.0000 2、给定系统G(s)=s— 4s 5sA3 . 6sA2 11s 6 ,求系统的零极点增益模型 和状态空间 模型 程序和运行结果: nu m=[0 1 4 5]; den=[1 6 11 6]; sys=tf( nu m,de n) Tran sfer function: sA2 + 4 s + 5