今回はJuliaの制御工学系パッケージ"ControlSystems.jl"で遊んでみたいと思います。
Document
バネマスダンパ台車系の過渡応答解析
下記Matlab用制御工学の参考書から例題を解いてみます。

- 作者: 尾形克彦著,石川潤訳
- 出版社/メーカー: 東京電機大学出版局
- 発売日: 2010/04/30
- メディア: 単行本(ソフトカバー)
- 購入: 1人 クリック: 2回
- この商品を含むブログを見る
下記のような台車にのったバネマスダンパ系を考えます。
uは台車の位置の変位で入力です。
yはマスの位置の変位で、出力です。
この系を微分方程で立式すると以下のようになります。
$$ \begin{equation} m\frac{d^{2}y}{dt^{2}} + b\frac{dy}{dt} + ky = b\frac{du}{dt} + ku \end{equation} $$
これをラプラス変換すると以下の式になります。
$$ \begin{equation} (ms^{2} + bs + k)Y(s) = (bs + k)U(s) \end{equation} $$
ここで各定数を
$$
m = 10 {\rm kg},\quad
b = 20 {\rm Ns/m}, \quad
k = 100 {\rm N/m} \quad
$$
とすると伝達関数は以下のようになる。
$$ \begin{equation} G(s) = \frac{Y(s)}{U(s)} = \frac{20s + 100}{10s^{2} + 20s + 100} = \frac{2s + 10}{s^{2} + 2s + 10} \end{equation} $$
この式の単位ステップ応答を求めてみます。
using ControlSystems 分子 = [2;10] 分母 = [1;2;10] sys = tf(分子,分母) print(sys) stepplot(sys)
出力は以下になります.
2*s + 10 --------------- 1s^2 + 2*s + 10
Matlabに近い感覚でステップ応答を出力できました。 伝達関数を記述するときの分子[num]と分母[den]について Juliaでは列表現なのに対しMatlabは行表現になるのが大きな違いでしょうか。
今回はここまでにします。