《现代控制理论》实验指导书
武汉理工大学自动化学院
《现代控制理论》实验
实验一 系统的传递函数阵和状态空间表达式的转换
一、实验目的
1. 学习多变量系统状态空间表达式的建立方法、了解统状态空间表达式与传递函数相互转换
的方法;
2. 通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。
二、实验要求
学习和了解系统状态方程的建立与传递函数相互转换的方法;
三、实验设备
1. 计算机1台
2. MATLAB6.X软件1套。
四、实验原理说明
设系统的模型如式(1-1)示。
??Ax?Bu?x??y?Cx?Dx?Rnu?Rmy?Rp (1-1)
其中A为n×n维系数矩阵、B为n×m维输入矩阵 C为p×n维输出矩阵,D为传递阵,一般情况下为0,只有n和m维数相同时,D=1。系统的传递函数阵和状态空间表达式之间的关系如式(1-2)示。
G(s)?num((s)?C(SI?A)?1B?D (1-2)
den(s)式(1.2)中,num(s)表示传递函数阵的分子阵,其维数是p×m;den(s)表示传递函数阵的按s降幂排列的分母。
五、验步骤
1. 据所给系统的传递函数或(A、B、C阵),依据系统的传递函数阵和状态空间表达式之间的
关系如式(1-2),采用MATLA的file.m编程。注意:ss2tf和tf2ss是互为逆转换的指令; 2. 在MATLA界面下调试程序,并检查是否运行正确。
3. [例1.1] 已知SISO系统的状态空间表达式为(1-3),求系统的传递函数。
?1??010??x1??1??x?x??x???3?u,?2???001?????2?????3??x????4?3?2????x3?????6???x1??y??100??x2?? (1-3) ??x3??
第 1 页
《现代控制理论》实验
程序:
%首先给A、B、C阵赋值; A=[0 1 0;0 0 1;-4 -3 -2]; B=[1;3;-6]; C=[1 0 0]; D=0;
%状态空间表达式转换成传递函数阵的格式为[num,den]=ss2tf(a,b,c,d,u) [num,den]=ss2tf(A,B,C,D,1)
程序运行结果: num =
0 1.0000 5.0000 3.0000
den =
1.0000 2.0000 3.0000 4.0000 从程序运行结果得到:系统的传递函数为:
s2?5s?3G(S)?3 (1-4)
s?2s2?3s?44. [例1.2] 从系统的传递函数(1.4)式求状态空间表达式。 程序:
num =[0 1 5 3]; %在给num赋值时,在系数前补0,必须使num和den赋值的个数相同; den =[1 2 3 4];
[A,B,C,D]=tf2ss(num,den)
程序运行结果:
A = B = -2 -3 -4 1 1 0 0 0 0 1 0 0 C = D =
1 5 3 0
由于一个系统的状态空间表达式并不唯一, [例1.2]程序运行结果虽然不等于式(1-3)中的A、B、C阵,但该结果与式(1-3)是等效的。不防对上述结果进行验证。
5. [例1.3] 对上述结果进行验证编程
%将[例1.2]上述结果赋值给A、B、C、D阵; A =[-2 -3 -4;1 0 0; 0 1 0]; B =[1;0;0]; C =[1 5 3]; D=0;
[num,den]=ss2tf(A,B,C,D,1)
第 2 页