2016-06-14 18 views
2

私は本当にあなたの助けが必要です。元の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 

これは観測正準形式のための式である:

enter image description here

enter image description here

そして、これは私が得る答えは: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!

+0

ところで、「TF」は単純化されていないことに注意してください。 'simplify(TF)'を試してみると ' - (ks + b * s-ks * s + m1 * s)/(s *(kd + m2))'が得られます。あなたの状態空間方程式にマイナーエラーがあるかもしれません。 –

+0

あなたの 'A、B、C、D'でエラーを見つけることができませんので、次の2行で推測してください。あなたはちょうど余分な '-ks * s'を持っています –

+0

確かに:あなたは本当にそれを象徴的に行う必要がありますか? – thewaywewalk

答えて

1

s*eyeが実際にs*1であり、あなたが行列とスカラーとの加算/減算を実行するたびに、スカラが自動的ones行列ではなくeye行列と乗算されるためです。

従ってあなた得phiは実際後者されている必要があり

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

なく

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

あります。 eye(2)を使用して修正できます。

このような記号計算の場合、正しいトラックにいるかどうかを分母とする行列式を計算することは、常に便利です。phi

+0

ありがとうございました!私はそのような間違いをしたと信じられない! –

+0

@Jdane私の喜び。私たちはすべて時には盲目になります。 – percusse

関連する問題