私は本当にあなたの助けが必要です。元のTF2(下記のコードを参照)があるとしましょう。私はそれを状態空間に変換したいと思います。その状態空間から、私は再び伝達関数を得たいと思う。ご覧のとおり、これはおそらくループですが、私は観測可能性標準形を使って同じ伝達関数を得ることができませんでした。何か案が?Matlabの伝達関数を観測可能な正規形に変換する
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
これは観測正準形式のための式である:
そして、これは私が得る答えは:advancの中
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)
感謝e!
ところで、「TF」は単純化されていないことに注意してください。 'simplify(TF)'を試してみると ' - (ks + b * s-ks * s + m1 * s)/(s *(kd + m2))'が得られます。あなたの状態空間方程式にマイナーエラーがあるかもしれません。 –
あなたの 'A、B、C、D'でエラーを見つけることができませんので、次の2行で推測してください。あなたはちょうど余分な '-ks * s'を持っています –
確かに:あなたは本当にそれを象徴的に行う必要がありますか? – thewaywewalk