gpt4 book ai didi

Matlab 传递函数到可观察性规范形式

转载 作者:行者123 更新时间:2023-12-04 17:58:56 25 4
gpt4 key购买 nike

在这方面我真的需要你的帮助,假设我有一个原始的 TF2(见下面的代码),我想将它转换为状态空间。从那个状态空间,我想再次获得传递函数。如您所见,这可能是一个循环,但是我无法使用可观察性规范形式获得相同的传递函数。有什么想法吗?

syms m1 m2 b ks kd s;
TF2=-1*((s^2*m1+ks+s*b)/(s^2*m2+s*kd)) %Original TF
A=[0 0;1 -kd/m2]
B=[-ks/m2; -b/m2+((kd*m1)/(m2*m2))]
C=[0 1]
D=[-m1/m2]
phi=s*eye-A
TF=C*inv(phi)*B+D %TF from observability canonical form

这是可观察性规范形式的公式:

enter image description here

在哪里 enter image description here

这是我得到的答案:

TF =

(ks*(s - 1))/(s*(kd + m2)) - (m2*(b/m2 - (kd*m1)/m2^2))/(kd + m2) - m1/m2


TF2 =

-(m1*s^2 + b*s + ks)/(m2*s^2 + kd*s)

提前致谢!

最佳答案

是因为s*eye实际上是 s*1每当您对矩阵和标量执行加法/减法时,标量会自动与 ones 相乘 矩阵而不是 eye 矩阵。

因此您得到了 phi其实是

[s | s]
[-----] - A
[s | s]

而不是

[s | 0]
[-----] - A
[0 | s]

应该是后者。您可以使用 eye(2) 修复它.

对于此类符号计算,计算 phi 的行列式总是很方便无论如何这将是分母,看看你是否在正确的轨道上。

关于Matlab 传递函数到可观察性规范形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37817557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com