实验八 线性系统的状态空间分析
§8.1 用MATLAB分析状态空间模型
1、状态空间模型的输入
线性定常系统状态空间模型
将各系数矩阵按常规矩阵形式描述。
在MATLAB里,用函数SS()来建立状态空间模型
例8.1 已知某系统微分方程
求该系统的状态空间模型。
解:将上述微分方程写成状态空间形式
,
,
调用MATLAB函数SS(),执行如下程序
% MATLAB Program example 6.1.m
A=[0 1;-7 -3];
B=[0;1];
C=[5 0];
D=0;
sys=ss(A,B,C,D)
运行后得到如下结果
a =
x1 x2
x1 0 1
x2 -7 -3
b =
u1
x1 0
x2 1
c =
x1 x2
y1 5 0
d =
u1
y1 0
Continuous-time model.
2、状态空间模型与传递函数模型转换
状态空间模型用sys表示,传递函数模型用G表示。
G=tf(sys)
sys=ss(G)
状态空间表达式向传递函数形式的转换
G=tf(sys)
Or [num,den]=ss2tf(A,B,C,D) 多项式模型参数
[num,den]=ss2tf(A,B,C,D,iu)
[z,p,k]=ss2zp(A,B,C,D,iu) 零、极点模型参数
iu用于指定变换所需的输入量,iu默认为单输入情况。
传递函数向状态空间表达式形式的转换
sys=ss(G)
or [A,B,C,D]=tf2ss(num,den)
[A,B,C,D]=zp2ss(z,p,k)
例 8.2
试用矩阵组[a,b,c,d]表示系统,并求出传递函数。
% MATLAB Program example 6.2.m
a=[-0.56 0.05;-0.25 0];
b=[0.03 1.14;0.11 0];
c=[1 0;0 1];
d=zeros(2,2);
sys=ss(a,b,c,d)
G1=tf(sys)
G2=zpk(sys)
运行后得到如下结果
a =
x1 x2
x1 -0.56 0.05
x2 -0.25 0
b =
u1 u2
x1 0.03 1.14
x2 0.11 0
c =
x1 x2
y1 1 0
y2 0 1
d =
u1 u2
y1 0 0
y2 0 0
Continuous-time model.
Transfer function from input 1 to output...
0.03 s + 0.0055
#1: ---------------------
s^2 + 0.56 s + 0.0125
0.11 s + 0.0541
#2: ---------------------
s^2 + 0.56 s + 0.0125
Transfer function from input 2 to output...
1.14 s
#1: ---------------------
s^2 + 0.56 s + 0.0125
-0.285
#2: ---------------------
s^2 + 0.56 s + 0.0125
Zero/pole/gain from input 1 to output...
0.03 (s+0.1833)
#1: ----------------------
(s+0.5367) (s+0.02329)
0.11 (s+0.4918)
#2: ----------------------
(s+0.5367) (s+0.02329)
Zero/pole/gain from input 2 to output...
1.14 s
#1: ----------------------
(s+0.5367) (s+0.02329)
-