【发布时间】:2011-11-17 19:43:50
【问题描述】:
我正在尝试从我拥有的状态空间矩阵生成传递函数。 问题是矩阵有变量而不是数值,所以我必须在 Matlab 中使用符号变量。
所以我开始了:
A =
[ -a0, 0, 0, 0, 0, 0, a1]
[ 0, -a2, 0, 0, 0, 0, a3]
[ 0, 0, -a4, 0, 0, 0, a5]
[ 0, 0, 0, -a6, 0, 0, a7]
[ 0, 0, 0, 0, -a8, 0, a9]
[ 0, 0, 0, 0, 0, -a10, a11]
[ a12, a13, a14, a15, a16, a17, -a18]
B =
[ b0, b1]
[ 0, b2]
[ 0, b3]
[ 0, b4]
[ 0, b5]
[ 0, b6]
[ 0, 0]
C =
[ 0, 0, 0, 0, 0, 0, 1]
D = 0
然后我在网上找到了一个方法,使用
Phi=inv(s*eye(7)-A)
其中 Phi 是一个传输矩阵。然后使用
H = C * Phi * B + D
H 应该是结果。
但是 MATLAB 无法处理 7 x 7 矩阵并最终截断结果。
有没有更好的方法可以实现我需要的传递函数?
【问题讨论】:
-
看起来手工更容易。您是否尝试过简单地计算出您那里的公式?
-
是的。它不是。我用手试了一下,但很快就变得可笑了。
-
“截断结果”到底是什么意思?
-
根据 Matlab,结果有超过 25000 个术语,不会再显示,因此停止显示和计算它们。可能是因为内存不足。我不确定。
标签: matlab truncated state-space