《现代控制理论》.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《现代控制理论》实验指导书
俞立徐建明编
浙江工业大学信息工程学院
2007年4月
实验1 利用MATLAB 进行传递函数和状态空间模型间的转换
1.1 实验设备
PC 计算机1台(要求P4-1.8G 以上),MATLAB6.X 或MATLAB7.X 软件1套。 1.2 实验目的
1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数相互转换的方法;
2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。 1.3 实验原理说明
设系统的状态空间模型是
x
Ax Bu y Cx Du
=+⎧⎨
=+⎩& (1.1) p y R ∈其中:n x R ∈是系统的状态向量,是控制输入,m u R ∈是测量输出,A 是维状态矩阵、是维输入矩阵、是n n ×m n ×n p ×B D C 维输出矩阵、是直接转移矩阵。系统传递函数和状态空间模型之间的关系如式(1.2)所示。
1()()G s C sI A B D −=−+ (1.2) 表示状态空间模型和传递函数的MATLAB 函数。
函数ss (state space 的首字母)给出了状态空间模型,其一般形式是 SYS = ss(A,B,C,D)
函数tf (transfer function 的首字母)给出了传递函数,其一般形式是 G=tf(num,den)
其中的num 表示传递函数中分子多项式的系数向量(单输入单输出系统),den 表示传递函数中分母多项式的系数向量。
函数tf2ss 给出了传递函数的一个状态空间实现,其一般形式是 [A,B,C,D]=tf2ss(num,den)
函数ss2tf 给出了状态空间模型所描述系统的传递函数,其一般形式是
[num,den]=ss2tf(A,B,C,D,iu) 其中对多输入系统,必须确定iu 的值。例如,若系统有三个输入和,则iu 必须是1、2或3,其中1表示,2表示,3表示。该函数的结果是第iu 个输入到所有输出的传递函数。 21,u u 3u 1u 2u 3u 1.4 实验步骤
1、根据所给系统的传递函数或(A 、B 、C 、D ),依据系统的传递函数阵和状态空间模型之间的关系(1.2),采用MATLAB 的相关函数编写m-文件。
2、在MATLAB 界面下调试程序。
例1.1 求由以下状态空间模型所表示系统的传递函数,
⎥⎥
⎥
⎦
⎤
⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢
⎢⎢⎣⎡−+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡−−−=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡321321321]001[1202505255100010x x x y u x x x x x x
&&&
编写并执行以下的m-文件:
A=[0 1 0;0 0 1;-5 –25 –5]; B=[0;25;-120]; C=[1 0 0]; D=[0];
[num,den]=ss2tf(A,B,C,D)
得到:
num=
0 -0.0000 25.0000 5.0000 den=
1.0000 5.0000 25.0000 5.0000
因此,所求系统的传递函数是
5
2555
25)(23++++=
s s s s s G
例1.2 考虑由以下状态空间模型描述的系统:
⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣
⎡−−=⎥⎦⎤⎢⎣⎡21212121211001101142510x x y y u u x x x x
&&
求其传递函数矩阵。
解 这是一个2输入2输出系统。描述该系统的传递函数是一个22×维矩阵,它包括4个传递函数:
⎥⎦
⎤
⎢⎣⎡)()()()()()()()(22122111s U s Y s U s Y s U s Y s U s Y
当考虑输入时,可设为零,反之亦然。执行以下的m-文件: 1u 2u
A=[0 1;-25 –4]; B=[1 1;0 1]; C=[1 0;0 1]; D=[0 0;0 0];
[num1,den1]=ss2tf(A,B,C,D,1) [num2,den2]=ss2tf(A,B,C,D,2)
得到:
num1=
0 1 4
0 0 -25
den1=
1 4 25
num2=
0 1.0000 5.0000 0 1.0000 -25.0000
den2=
1 4 25
因此,所求的4个传递函数是
25
425
)()(,2545
)()(25425
)()(,2544
)()(2
222212
12211++−=+++=++−=+++=s s s s U s Y s s s s U s Y s s s U s Y s s s s U s Y
例1.3 试给出以下传递函数的状态空间实现
10
5610
10)(23
++++=s s s s s G 解 执行以下的m-文件:
num=[0 0 10 10]; den=[1 6 5 10];
[A,B,C,D]=tf2ss(num,den) 得到
A=
-6 -5 -10
1 0 0 0 1 0 B=
1 0 0 C=
0 10 10 D=
因此,所考虑传递函数的一个状态空间实现是