RT,请问MATLAB中怎么将状态空间模型转变为差分方程?已知A、B、C、D,要想得到差分方程,该用什么语句呢?

9 条回复

ss(A,B,C,D,0.2)创建采样时间为0.2的离散状态模型。输入doc ss可以看到更多的应用。

如果你的ABCD是连续状态方程的系数,用dsys=c2d(tf(ss(A,B,C,D)),Ts); [num,den]=tfdata(dsys,'v'); 得到的num den分别为差分方程输入输出端的系数。
如果ABCD是离散状态方程的系数,用dsys=tf(ss(A,B,C,D,Ts)); [num,den]=tfdata(dsys,'v');
参数Ts是采样时间。

回复 3# pzfs1016 的帖子

非常感谢,做了个双输入双输出的转换,结果得到的num为2*2矩阵,den也为2*2矩阵,请问该怎么理解?

回复 4# 妖精 的帖子

双输入双输出得到的传递函数是二维的,得到的num、den都会是2*2矩阵。

回复 3# pzfs1016 的帖子

请问由差分方程怎么得到它的状态空间模型呢?比如 y(k)=y(k-1)+y(k-2)+u(k-1)+1

:victory::victory::victory::victory::victory:

请问由差分方程怎么得到它的状态空间模型呢?比如 y(k)=y(k-1)+y(k-2)+u(k-1)+1
请问你知道如何由 差分方程求解状态空间模型了么?同问

>> [num,den]=tfdata(Gd,'v')
num =
[1x4 double] [1x4 double]
den =
[1x4 double] [1x4 double]
这样怎么写成差分形式呢?
谢谢哈

如果你的ABCD是连续状态方程的系数,用dsys=c2d(tf(ss(A,B,C,D)),Ts); [num,den]=tfdata(dsys,'v'); 得...
输出结果不是列向量,怎么写差分形式呢、?谢谢哈