「シミュレーション」の版間の差分

編集の要約なし
編集の要約なし
編集の要約なし
181行目: 181行目:
*2次のルンゲ・クッタ法(ホイン法)の原理
*2次のルンゲ・クッタ法(ホイン法)の原理


前節でオイラー法を用いてシミュレーションした1階の微分方程式と,2階の微分方程式をそれぞれホイン法でシミュレーションするOctaveスクリプトは以下のようになります.2階の微分方程式の場合は<math>k_1</math>, <math>k_</math>もベクトルになることに注意してください.
前節でオイラー法を用いてシミュレーションした1階の微分方程式と,2階の微分方程式をそれぞれホイン法でシミュレーションするOctaveスクリプトは以下のようになります.2階の微分方程式の場合は<math>k_1</math>, <math>k_2</math>もベクトルになることに注意してください.


また,オイラー法に比べてサンプリングタイムを大きくとっても精度よくシミュレーションできることを確かめてみてください.
また,オイラー法に比べてサンプリングタイムを大きくとっても精度よくシミュレーションできることを確かめてみてください.
330行目: 330行目:


一般にシステム制御で取り扱う対象は,ある変数を入力,別のある変数を出力とした入出力システムと考えます.
一般にシステム制御で取り扱う対象は,ある変数を入力,別のある変数を出力とした入出力システムと考えます.
これまでの例では明示的に入出力を考えていませんでしたが,入力を&math(\boldsymbol{u}(t));,出力を&math(\boldsymbol{y}(t));としてシステムを表現すると一般的に次のように書くことができます.
これまでの例では明示的に入出力を考えていませんでしたが,入力を<math>\boldsymbol{u}(t)</math>,出力を<math>\boldsymbol{y}(t)</math>としてシステムを表現すると一般的に次のように書くことができます.


#math(\begin{array}{l l l}\frac{d \boldsymbol{x}(t)}{dt} &=& \boldsymbol{f}(\boldsymbol{x}(t), \boldsymbol{u}(t), t) \\\boldsymbol{y}(t) &=& \boldsymbol{g}(\boldsymbol{x}(t), \boldsymbol{u}(t), t)\end{array})
<math>\begin{array}{l l l}\frac{d \boldsymbol{x}(t)}{dt} &=& \boldsymbol{f}(\boldsymbol{x}(t), \boldsymbol{u}(t), t) \\\boldsymbol{y}(t) &=& \boldsymbol{g}(\boldsymbol{x}(t), \boldsymbol{u}(t), t)\end{array}</math>


一つ目の式は,先に述べた連立多元1階常微分方程式において入力&math(\boldsymbol{u}(t));を明示的に表記したものです.二つ目は,出力方程式と呼ばれるもので,関数&math(\boldsymbol{g}());を出力関数と呼びます.
一つ目の式は,先に述べた連立多元1階常微分方程式において入力<math>\boldsymbol{u}(t)</math>を明示的に表記したものです.二つ目は,出力方程式と呼ばれるもので,関数<math>\boldsymbol{g}()</math>を出力関数と呼びます.


ここで,システムのパラメータ(係数)が時間によって変化せず(時不変),関数&math(\boldsymbol{f}());&math(\boldsymbol{g}());が状態変数と入力変数の一次結合(定数倍して加算)だけで表される場合,そのシステムは線形時不変であるといいます.このとき,システムを表す方程式は以下のように行列を使って簡単に表されます.
ここで,システムのパラメータ(係数)が時間によって変化せず(時不変),関数<math>\boldsymbol{f}()</math><math>\boldsymbol{g}()</math>が状態変数と入力変数の一次結合(定数倍して加算)だけで表される場合,そのシステムは線形時不変であるといいます.このとき,システムを表す方程式は以下のように行列を使って簡単に表されます.




#math(\begin{array}{l l l}\frac{d \boldsymbol{x}(t)}{dt} &=& \boldsymbol{A} \boldsymbol{x}(t) + \boldsymbol{B} \boldsymbol{u}(t) \\ \boldsymbol{y}(t) &=& \boldsymbol{C} \boldsymbol{x}(t) + \boldsymbol{D} \boldsymbol{u}(t)\end{array})
<math>\begin{array}{l l l}\frac{d \boldsymbol{x}(t)}{dt} &=& \boldsymbol{A} \boldsymbol{x}(t) + \boldsymbol{B} \boldsymbol{u}(t) \\ \boldsymbol{y}(t) &=& \boldsymbol{C} \boldsymbol{x}(t) + \boldsymbol{D} \boldsymbol{u}(t)\end{array}</math>


簡単な例として,粘性係数&math(D);のダンパーと弾性係数&math(K);のバネとで壁面に接続されている質量&math(M);の物体を考え,入力を物体への力&math(u(t));,出力を物体の変位&math(y(t));としたシステムの状態方程式を求めてみます.
簡単な例として,粘性係数<math>D</math>のダンパーと弾性係数<math>K</math>のバネとで壁面に接続されている質量<math>M</math>の物体を考え,入力を物体への力<math>u(t)</math>,出力を物体の変位<math>y(t)</math>としたシステムの状態方程式を求めてみます.


*慣性・粘性・弾性系
*慣性・粘性・弾性系
348行目: 348行目:
物体の運動方程式は,
物体の運動方程式は,


#math(M \frac{d^2 y(t)}{dt^2} = - D \frac{dy(t)}{dt} - K y(t) + u(t))
<math>M \frac{d^2 y(t)}{dt^2} = - D \frac{dy(t)}{dt} - K y(t) + u(t)</math>


となります.これを状態変数&math(x_1(t));, &math(x_2(t));
となります.これを状態変数<math>x_1(t)</math>, <math>x_2(t)</math>


#math(\begin{array}{l l l}x_1(t) &=& y(t) \\x_2(t) &=& \frac{d y(t)}{dt}\end{array})
<math>\begin{array}{l l l}x_1(t) &=& y(t) \\x_2(t) &=& \frac{d y(t)}{dt}\end{array}</math>


とおくことで以下のような連立微分方程式に書き換えられます.
とおくことで以下のような連立微分方程式に書き換えられます.


#math(\begin{array}{l l l}\frac{d x_1(t)}{dt} &=& x_2(t) \\\frac{d x_2(t)}{dt} &=& - \frac{K}{M} x_1(t) - \frac{D}{M} x_2(t) + \frac{1}{M} u(t)\end{array})
<math>\begin{array}{l l l}\frac{d x_1(t)}{dt} &=& x_2(t) \\\frac{d x_2(t)}{dt} &=& - \frac{K}{M} x_1(t) - \frac{D}{M} x_2(t) + \frac{1}{M} u(t)\end{array}</math>


これを行列を用いて表現すると以下のようになります.
これを行列を用いて表現すると以下のようになります.