概述
需要用到的函数:
ss函数:在已知各矩阵的情况下直接建立系统的状态空间模型。
参数A,B,C,D分别为系统矩阵,输入矩阵(或控制矩阵),输出矩阵,直接传递矩阵。
详见系统的数学模型-(状态空间表达式的建模)
>> g=ss(A,B,C,D);
tf2ss函数:用于从系统的传递函数建立系统的状态空间模型。
参数num,den分别为系统传递函数的分母多项式系数和分子多项式系数。
未知参数A,B,C,D分别为系统矩阵,输入矩阵(或控制矩阵),输出矩阵,直接传递矩阵。
tf2ss是Transfer Function To State-Space representation的简写
>> [A,B,C,D]=tf2ss(num,den);
zp2ss函数:用于已知系统零极点的情况下,建立系统的状态空间表达式。
参数Z,P,Gain分别为系统的零点,极点,增益。
未知参数A,B,C,D分别为系统矩阵,输入矩阵(或控制矩阵),输出矩阵,直接传递矩阵。
zp2ss是Zero Pole To State-Space representation的简写
>> [A,B,C,D]=zp2ss(Z,P,Gain);
例1:把系统的微分方程
d
2
y
d
t
2
+
0.4
d
y
d
t
+
y
=
2
d
u
d
t
+
3
u
frac{d^2y}{dt^2}+0.4frac{dy}{dt}+y=2frac{du}{dt}+3u
dt2d2y+0.4dtdy+y=2dtdu+3u写成状态空间表达式。
解:经过拉普拉斯变换,
s
2
y
(
s
)
+
0.4
s
y
(
s
)
+
1
y
(
s
)
=
2
s
u
(
s
)
+
3
u
(
s
)
s^2y(s)+0.4sy(s)+1y(s)=2su(s)+3u(s)
s2y(s)+0.4sy(s)+1y(s)=2su(s)+3u(s)
得传递函数为,
G
(
s
)
=
y
(
s
)
u
(
s
)
=
2
s
+
3
s
2
+
0.4
s
+
1
G(s)=frac{y(s)}{u(s)}=frac{2s+3}{s^2+0.4s+1}
G(s)=u(s)y(s)=s2+0.4s+12s+3
>> num=[2 3];
>> den=[1 0.4 1];
>> [A,B,C,D]=tf2ss(num,den)
A =
-0.4000 -1.0000
1.0000 0
B =
1
0
C =
2 3
D =
0
例2:将系统传递函数 G ( s ) = ( s + 2 ) ( s + 3 ) ( s + 1 ) ( s + 4 ) ( s + 7 ) G(s)=frac{(s+2)(s+3)}{(s+1)(s+4)(s+7)} G(s)=(s+1)(s+4)(s+7)(s+2)(s+3)写成状态空间表达式。
>> Gain=1;
>> Z=[2;3];
>> P=[1;4;7];
>> [A,B,C,D]=zp2ss(Z,P,Gain)
A =
7 0 0
1 5 -2
0 2 0
B =
1
0
0
C =
1 0 1
D =
0
最后
以上就是暴躁超短裙为你收集整理的MATLAB-微分方程or传递函数转换成状态空间表达式的全部内容,希望文章能够帮你解决MATLAB-微分方程or传递函数转换成状态空间表达式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复