動態系統 MATLAB 例子

redufa發表於2024-11-22

例2.4 現在討論圖2.1所示的機械系統。該系統一開始處於靜止狀態。位移x和y從它們各自的平衡位置開始測量。假設力p(t)是階躍輸入,位移x(t)是輸出,試求該系統的傳遞函式。
然後,假設m = 0.1 kg,b₂ = 0.4 N·s/m,k₁ = 6 N/m,k₂ = 4 N/m,並假設p(t)是幅值為10 N的階躍力,求出解析解x(t)。

image

該系統的運動方程為

\[m\ddot{x} + k_1x + k_2(x - y) = p \]

\[k_2(x - y) = b_2\dot{y} \]

在零初始條件的假設下對這兩個方程進行拉普拉斯變換,可以得到

\[(ms^2 + k_1 + k_2)X(s) = k_2Y(s) + P(s) \]

\[k_2X(s) = (k_2 + b_2s)Y(s) \]

從式(2.3)解得Y(s)並將其代入式(2.2),可得

\[(ms^2 + k_1 + k_2)X(s) = \frac{k_2^2}{k_2 + b_2s}X(s) + P(s) \]

或者

\[[(ms^2 + k_1 + k_2)(k_2 + b_2s) - k_2^2]X(s) = (k_2 + b_2s)P(s) \]

由此可以得到傳遞函式

\[\frac{X(s)}{P(s)} = \frac{b_2s + k_2}{mb_2s^3 + mk_2s^2+(k_1 + k_2)b_2s + k_1k_2} \]

\(m\)\(k_1\)\(k_2\)\(b_2\)的給定數值代入式(2.4),可以得到

\[\frac{X(s)}{P(s)} = \frac{0.4s + 4}{0.04s^3 + 0.4s^2 + 4s + 24} = \frac{10s + 100}{s^3 + 10s^2 + 100s + 600} \]

由於\(P(s)\)是幅值為10 N的階躍力,所以

\[P(s) = \frac{10}{s} \]

於是,從式(2.5)可得

\[X(s) = \frac{10s + 100}{s^3 + 10s^2 + 100s + 600} \cdot \frac{10}{s} \]

為了求得解析解,需要將X(s)展開成為部分分式。為此,可以採用如下MATLAB程式來求留數、極點和直接項:

>> num = [100 1000];
>> den = [1 10 100 600 0];
>> [r,p,k] = residue(num, den)

結果:

r =
  -0.6845 + 0.2233i
  -0.6845 - 0.2233i
  -0.2977
  1.6667

p =
  -1.2898 + 8.8991i
  -1.2898 - 8.8991i
  -7.4204
  0

k =
  []

根據該MATLAB輸出,\(X(s)\)可以被寫成:

\[X(s) = \frac{-0.6845 + j0.2233}{s + 1.2898 - j8.8991} + \frac{-0.6845 - j0.2233}{s + 1.2898 + j8.8991} + \frac{-0.2977}{s + 7.4204} + \frac{1.6667}{s} \]

\[X(s) = \frac{-1.3690(s + 1.2898) - 3.9743}{(s + 1.2898)^2 + 8.8991^2} + \frac{-0.2977}{s + 7.4204} + \frac{1.6667}{s} \]

\(X(s)\)進行拉普拉斯逆變換就可以得到:

\[x(t) = -1.3690e^{-1.2898t} \cos(8.8991t) - 0.4466e^{-1.2898t} \sin(8.8991t) - 0.2977e^{-7.4204t} + 1.6667 \]

其中\(x(t)\)的單位是米,時間\(t\)的單位是秒。這就是該問題的解析解。

參考文獻

控制理論MATLAB教程 KO

相關文章