next up previous
Next: 1次微分方程式の数値解 Up: 線形システムのシミュレーション Previous: 線形システムのシミュレーション

常微分方程式

時間関数x(t)のi次の時間微分を

\begin{displaymath}
x^{(i)}:=\frac{\mbox{d}^i}{\mbox{dt}^i} x(t)\end{displaymath}

を表すものとします.

u(t)を時間変数,$f(\cdot)$を適当な関数として  
 \begin{displaymath}
x^{(n)}(t) = f(x^{(n-1)}(t),\cdots,x^{(0)}(t),u^{(n-1)}(t),\cdots,u^{(0)}(t))\end{displaymath} (1)
と表されるものをn次の常微分方程式とよびます. 例えば,

\begin{displaymath}
\ddot{x}(t) = - x(t)\left(u(t)+1\right) - x^3(t)\end{displaymath}

は2次の(非線型)常微分方程式です.

$a_i,x^{(i)}_0(i=0,\cdots,n-1)$および $b_i(i=0,\cdots,m)$を定数, u(t)を時間関数としたとき,  
 \begin{displaymath}
\begin{array}
{c}
 x^{(n)}+a_{n-1}x^{(n-1)}+\cdots+a_{1}x^{(...
 ...{(n)}(0)=x^{(n)}_0 \\ \vdots \\ x^{(0)}(0)=x^{(0)}_0\end{array}\end{displaymath} (2)
n次の線形常微分方程式とよびます.

例えばMを質量,Cをダンパ係数,Kをバネ定数,xを釣り合いの位置からの ずれ,u(t)を外力とするバネマスダンパ系の運動方程式は次のようになります.  
 \begin{displaymath}
M \ddot{x}(t) + C \dot{x}(t) + K x(t) = u(t)\end{displaymath} (3)

\includegraphics [width=10cm,clip]{mck.ps}
これは,

\begin{displaymath}
n = 2,\hspace*{1zw}m=1,\hspace*{1zw}a_1 = \frac{C}{M},\hspace*{1zw}
a_0 = \frac{K}{M},\hspace*{1zw}b_0 = \frac{1}{M}\end{displaymath}

とする線形常微分方程式です.

(1)(2)を満す

\begin{displaymath}
x(t) = \phi(t)\end{displaymath}

(右辺は時間関数)をその常微分方程式の解と呼びます. (2)は解くことが出来るのですが, (1)は一般には解くことが出来ません. そして解$\phi(t)$を解くことができても,複雑な形をしているため, あまり実用的とは言えません.

例えばバネマスダンパ系(3)に外力u(t)として, u(t) = sin(t)といった力を加えた場合, 位置x(t)がどのような挙動を示すかを数値化してグラフに示すことが 出来れば,その挙動を理解するのに役立ちます. この数値化する作業がシミュレーションです.

以後ではプログラム例を示しながら解説をしていきます. [1]の第17章の例題もあわせて参考にしてください.



Kenichiro Nonaka
5/15/1998