2014-11-03 55 views
1

作爲任務的一部分,我必須導出汽車懸架系統的運動方程。本質上它是一個彈簧質量阻尼器問題。還沒有給出汽車質量M1,車輪質量M2,彈簧常數k1和阻尼常數c的值。我推導了運動方程,並導出了一個與路面(輸入)相關的傳遞函數與產生的車體位移(輸出)。 我必須確定這個傳遞函數的極點,因此我需要找到特徵方程(分母)的根。問題是我沒有上述變量的任何值,我試圖在MATLAB中象徵性地分解我的四階多項式或者直接計算根。 我不能假設任何值,它必須象徵性地解決,但我不知道這是否可能在MATLAB中。查找具有符號係數的多項式的根

我沒有很多MATLAB的經驗,所以我不知道它的所有功能。

我試圖解決的特徵方程爲:

(M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s + ((k1*k2)-(k2^2))

預先感謝您。

+0

我可能會幫助你,但我認爲這個方程沒有很好的描述。你首先需要寫下這個方程。然後我們會看到應用的方法。 – arodrisa 2014-11-03 12:59:31

+0

我現在已經糾正了我在等式中的錯誤,現在應該是正確的。 – SimStil 2014-11-03 15:53:01

回答

1

你在等式中有一些錯誤;

c(M1+M2)*s^3 -> c*(M1+M2)*s^3 
+ +k1*c*s -> + k1*c*s 

但是,如果你想解決多元方程,你可以這樣做;

syms M1 M2 c k1 k2 s 
eqn = (your equation) == 0; 
roots = solve(eqn, s); 

點擊此處瞭解詳情:solve

+0

您是否嘗試過運行此代碼?返回的「解決方案」對於OP來說特別有用。 – horchler 2014-11-03 20:37:29

0

現在你只需要按照情況下,這個步驟,你只需要計算方程的根,這類似於之前的評論:

1. syms c s 
2. roots=solve((M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s + ((k1*k2)-(k2^2)),s) 
or 
roots=solve((M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s +((k1*k2)-(k2^2)),c) 
or 
roots=solve((M1*M2)*s^4 + c*(M1+M2)*s^3 + ((M1*k1)+(M1*k2)+c^2+(M2*k2)-c)*s^2 + k1*c*s + ((k1*k2)-(k2^2)),s,c) 

取決於你想要的解決方案

+0

特徵方程的根源是's',這是OP所要求的,所以你的第一個方程就是所有需要的。你應該聲明你的其他符號變量。然後,如果你運行它,你會發現它本身並沒有提供有用的解決方案。 – horchler 2014-11-03 20:36:37

+0

如果你根據c的值得到你的零和極點,你實際上可以移動它們。我認爲他需要,這就是爲什麼他沒有它的價值。另一方面,計算它的另一種方式是將方程式表示爲:G = A * s + B * s^2 + C * s^3 + D * s^4。則G = minreal(tf(G)); [R,p] =餘數(G.num {1},G.den {1});因爲你沒有分母它應該回答1。 – arodrisa 2014-11-03 20:43:34

相關問題