1

状態方程式(物理じゃないよ)を解く

66
0
$$\newcommand{bm}[1]{\boldsymbol{#1}} \newcommand{Lvec}[1]{\overrightarrow{\mathrm{#1}}} $$

導入

 今回は状態方程式を解きます.状態方程式ってのは,熱力学で登場する$PV = n R T$ではなく
$$ \dot{x} = A x + B u $$
です.これは制御工学で登場します.

準備

 厳密に定式化すると以下のようになります.

状態方程式

 ベクトル$\bm{x}(t) \in M_{n,1}(\mathbb{R}),\ \bm{u}(t) \in M_{r,1}(\mathbb{R})$,行列$A \in M_{n,n}(\mathbb{R}),\ B \in M_{n,r}(\mathbb{R})$に対して
$$ \dot{\bm{x}} = A \bm{x} + B \bm{u} $$
状態方程式という.

制御工学(特に現代制御)では,$\bm{x}$状態ベクトル$\bm{u}$入力ベクトルと呼び,状態方程式からシステムの制御や解析を行います.たとえば,力学システムでは状態ベクトルを$x = (\text{位置},\ \text{速度})^T$などとおきます.
 また遷移行列を定義します.

遷移行列

 正方行列$A$,実数$t$に対して,遷移行列$e^{At}$
$$ e^{A t} := \sum_{n=0}^\infty \frac{1}{n!} (A t)^n $$
と定義する.ただし$(At)^0$は単位行列$I$とする.

これは指数関数$e^x$$x=0$まわりのTaylor展開:$e^x = \sum x^k/(k!)$に行列$At$を代入することで得られる形になっています.この遷移行列は,以下のような指数関数と同じ性質が成り立ちます.

遷移行列の性質

 遷移行列$e^{At}$は指数関数と同様に$\dfrac{d}{dt}(e^{At}) = A e^{At}$$e^{A 0} = I$$e^{A(t_1 + t_2)} = e^{A t_1} e^{A t_2}$$\{e^{At}\}^{-1} = e^{-At}$が成り立つ.

定義に従って計算

 $\displaystyle e^{A t} = \sum_{n=0}^\infty \frac{A^n}{n!} t^n = I + \sum_{n=1}^\infty \frac{A^n}{n!} t^n$より
\begin{align*} \frac{d}{dt} (e^{A t}) &= O + \sum_{n=1}^\infty \frac{A^n}{(n-1)!} t^{n-1} = A \sum_{n=0}^\infty \frac{A^n}{n!} t^n = A e^{A t}, \\ e^{A 0} &= I + \sum_{n=1}^\infty \frac{A^n}{n!} 0^n = I, \\ e^{A (t_1 + t_2)} &= \sum_{n=0}^\infty \frac{A^n}{n!} (t_1 + t_2)^n = \sum_{n=0}^\infty \frac{A^n}{n!} \sum_{k=0}^n \frac{n!}{k!(n-k)!} t_1^k t_2^{n-k} \\ &= \sum_{n=0}^\infty \sum_{k=0}^n \frac{A^n}{k!(n-k)!} t_1^k t_2^{n-k} = \sum_{i=0}^\infty \sum_{j=0}^\infty A^{i+j} \frac{t_1^i t_2^j}{i! j!} \\ &= \left(\sum_{i=0}^\infty A^i \frac{t_1^i}{i!}\right) \left(\sum_{j=0}^\infty A^j \frac{t_2^j}{j!}\right) = e^{A t_1} e^{A t_2}, \\ e^{A t} e^{- A t} &= e^{A 0} = I. \end{align*}

導出

発見的導出

$B = O$のとき

 状態方程式は
$$ \dot{\bm{x}} = A \bm{x} $$
となります.この微分方程式の解空間$W$は次元が1の線形空間になります.したがって具体的に解$\bm{\xi}(t)$を見つければ,$W$の一般解は$\bm{x}(t) = C \bm{\xi}(t)$となります($C$は定数).そこで$\bm{x} = e^{At}$としてみると,これは状態方程式を満たします.これで具体的な解$\bm{\xi}(t) = e^{At}$が見つかったので,初期条件$\bm{x}(0) = \bm{x}_0$として,$W$の一般解は
$$ \bm{x}(t) = e^{A t} \bm{x}_0 $$
となります.

$B \neq O$のとき

 状態方程式は
$$ \dot{\bm{x}} = A \bm{x} + B \bm{u} $$
です.ここで$\displaystyle \bm{x} = \int_0^t e^{A(t - \tau)} B \bm{u}(\tau) \, d \tau$とおいてみます.すると
\begin{align*} \dot{\bm{x}} &= \frac{d}{d t} \left(e^{A t} \int_0^t e^{- A \tau} B \bm{u}(\tau) \, d \tau\right) \\ &= A e^{A t} \int_0^t e^{- A \tau} B \bm{u}(\tau) \, d \tau + e^{A t} (e^{-At} B \bm{u}(t)) \\ &= A \bm{x} + B \bm{u} \end{align*}
となって,状態方程式の特殊解であることがわかります.よって$\bm{X} = \displaystyle \bm{x} - \int_0^t e^{A(t - \tau)} B \bm{u}(\tau) \, d \tau$とおくと,$\bm{X}$
$$ \dot{\bm{X}} = A \bm{X} $$
を満たします.これは前節$B = O$の場合と同じ微分方程式なので$\bm{X} = e^{A t} \bm{x}_0$となります(ここで$\bm{X}(0) = \bm{x}(0) = \bm{x}_0$に注意).よって,状態方程式の一般解は
$$ \bm{x}(t) = e^{A t} \bm{x}_0 + \int_0^t e^{A(t - \tau)} B \bm{u}(\tau) \, d \tau. $$

解析的導出

 状態方程式は
$$ \dot{\bm{x}} = A \bm{x} + B \bm{u} $$
です.両辺に$e^{-At} \in M_{n,n}(\mathbb{R})$を左から乗じると$e^{-A t} \dot{\bm{x}} = e^{-At} A \bm{x} + e^{-At} B \bm{u}$.定義から$e^{-At} A = A e^{-At}$で,定理1と積の微分法から
$$ \frac{d}{d t} (e^{-At} \bm{x}) = e^{-A t} B \bm{u}. $$
両辺を積分すると
\begin{align*} \int_0^t \frac{d}{d \tau} (e^{-A \tau} \bm{x}(\tau)) \, d\tau &= \int_0^t e^{-A \tau} B \bm{u}(\tau) \, d \tau \\ e^{-A t} \bm{x}(t) - e^{-A 0} \bm{x}(0) &= \int_0^t e^{-A \tau} B \bm{u}(\tau) \, d \tau \\ e^{-A t} \bm{x}(t) &= \bm{x}_0 + \int_0^t e^{-A \tau} B \bm{u}(\tau) \, d \tau \end{align*}
両辺に$e^{At} \in M_{n,n}(\mathbb{R})$を左から乗じて
$$ \bm{x}(t) = e^{A t} \bm{x}_0 + \int_0^t e^{A(t - \tau)} B \bm{u}(\tau) \, d \tau. $$

具体例で確認

 導出した公式をまとめると以下のようになります.

状態方程式の一般解

 状態方程式:$\dot{\bm{x}} = A \bm{x} + B \bm{u}$の一般解は
$$ \bm{x}(t) = e^{A t} \bm{x}_0 + \int_0^t e^{A (t - \tau)} B \bm{u}(\tau) \, d \tau. $$

これを具体的な例で確認してみます.

単振動系

入力なし($\bm{u} = \bm{0}$)のとき

 水平で摩擦のない床に質量$m$の物体がばね(ばね定数:$k$)によって壁と接続されているとします.物体の位置をばねの伸び$X$で表すとき,状態ベクトルを$\bm{x} = (\text{位置}, \text{速度})^T = (X,\ \dot{X})^T$とおけば,状態方程式は
$$ \dot{\bm{x}} = A \bm{x}, \qquad \text{ただし,} A = \begin{pmatrix} 0 & 1 \\ - k/m & 0 \end{pmatrix}. $$
初期条件を$\bm{x}(0) = (X_0,\ v_0)^T (=: \bm{x}_0)$とすれば,公式から$\bm{x} = e^{A t} \bm{x}_0$.遷移行列$e^{A t}$を計算すると,$\omega = \sqrt{\frac{k}{m}}$として
\begin{align*} e^{A t} &= \sum_{n=0}^\infty \frac{t^{2n}}{(2n)!} A^{2n} + \sum_{n=0}^\infty \frac{t^{2n+1}}{(2n+1)!} A^{2n+1} \\ &= \sum_{n=0}^\infty \frac{t^{2n}}{(2n)!} \begin{pmatrix} - \omega^2 & 0 \\ 0 & - \omega^2 \end{pmatrix}^n + \sum_{n=0}^\infty \frac{t^{2n+1}}{(2n+1)!} A \begin{pmatrix} - \omega^2 & 0 \\ 0 & - \omega^2 \end{pmatrix}^n \\ &= \sum_{n=0}^\infty \frac{t^{2n}}{(2n)!} \left(- \omega^2\right)^n I + \sum_{n=0}^\infty \frac{t^{2n+1}}{(2n+1)!} \left(- \omega^2\right)^n A \\ &= \begin{pmatrix} \sum \frac{(-1)^n}{(2n)!} (\omega t)^{2n} & \frac{1}{\omega} \sum \frac{(-1)^n}{(2n+1)!} (\omega t)^{2n+1} \\ - \omega \sum \frac{(-1)^n}{(2n+1)!} (\omega t)^{2n+1} & \sum \frac{(-1)^n}{(2n)!} (\omega t)^{2n} \end{pmatrix} \\ &= \begin{pmatrix} \cos{\omega t} & \frac{1}{\omega} \sin{\omega t} \\ - \omega \sin{\omega t} & \cos{\omega t} \end{pmatrix} \end{align*}
よって
\begin{equation} \bm{x} = \begin{pmatrix} X \\ \dot{X} \end{pmatrix} = e^{A t} \bm{x}_0 = \begin{pmatrix} X_0 \cos{\omega t} + \dfrac{v_0}{\omega} \sin{\omega t} \\ - \omega X_0 \sin{\omega t} + v_0 \cos{\omega t} \end{pmatrix}. \end{equation}

入力あり(強制振動)のとき

 先ほどの系に入力として外力$f = F \sin{\Omega t}$を与える場合を考えます.すると運動方程式は$m \ddot{X} + k X = F \sin{\Omega t}$ゆえ,状態ベクトル:$\bm{x} = (X,\ \dot{X})^T$,入力ベクトル:$\bm{u} = f$とすれば状態方程式は
$$ \dot{\bm{x}} = A \bm{x} + B \bm{u}, \qquad \text{ただし,} A = \begin{pmatrix} 0 & 1 \\ - k/m & 0 \end{pmatrix} = \begin{pmatrix} 0 & 1 \\ - \omega^2 & 0 \end{pmatrix} , \quad B = \begin{pmatrix} 0 \\ 1/m \end{pmatrix}. $$
よって一般解は
\begin{align*} \bm{x} &= e^{A t} \bm{x}_0 + \int_0^t e^{A (t - \tau)} B \bm{u}(\tau) \, d\tau. \end{align*}
第2項の積分は
\begin{align*} \int_0^t e^{A (t - \tau)} B \bm{u}(\tau) \, d\tau &= \int_0^t \begin{pmatrix} \cos{\omega (t - \tau)} & \frac{1}{\omega} \sin{\omega (t - \tau)} \\ - \omega \sin{\omega (t - \tau)} & \cos{\omega (t - \tau)} \end{pmatrix} \begin{pmatrix} 0 \\ \frac{F}{m} \sin{\Omega \tau} \end{pmatrix} \, d \tau \\ &= \frac{F}{m} \int_0^t \begin{pmatrix} \frac{1}{\omega} \sin{\omega (t - \tau)} \sin{\Omega \tau} & \cos{\omega (t - \tau)} \sin{\Omega \tau} \end{pmatrix}^T \, d \tau \\ &= \frac{F}{m} \int_0^t \left(\frac{\cos{((\omega + \Omega) \tau - \omega t)} - \cos{((\Omega - \omega) \tau + \omega t)}}{2 \omega} \quad \frac{\sin{((\omega + \Omega) \tau - \omega t)} + \sin{((\Omega - \omega)\tau + \omega t)}}{2}\right)^T \, d \tau \\ &= \frac{F}{2 m} \left(\frac{\sin{\Omega t} + \sin{\omega t}}{\omega (\omega + \Omega)} - \frac{\sin{\Omega t} - \sin{\omega t}}{\omega (\Omega - \omega)} \quad \frac{- \cos{\Omega t} + \cos{\omega t}}{\omega + \Omega} + \frac{- \cos{\Omega t} + \cos{\omega t}}{\Omega - \omega}\right)^T \end{align*}
であるから,一般解は
\begin{align} \bm{x}(t) &= \begin{pmatrix} X_0 \cos{\omega t} + \dfrac{v_0}{\omega} \sin{\omega t} + \dfrac{F}{2 m} \left(\dfrac{\sin{\Omega t} + \sin{\omega t}}{\omega (\Omega + \omega)} - \dfrac{\sin{\Omega t} - \sin{\omega t}}{\omega (\Omega - \omega)}\right) \\ - \omega X_0 \sin{\omega t} + v_0 \cos{\omega t} - \dfrac{F}{2 m} \left(\dfrac{\cos{\Omega t} - \cos{\omega t}}{\Omega + \omega} + \dfrac{\cos{\Omega t} - \cos{\omega t}}{\Omega - \omega}\right) \end{pmatrix} \\ &= \begin{pmatrix} X_0 \cos{\omega t} + \dfrac{v_0}{\omega} \sin{\omega t} + \dfrac{F}{m \omega (\Omega^2 - \omega^2)} (\Omega \sin{\omega t} - \omega \sin{\Omega t}) \\ - \omega X_0 \sin{\omega t} + v_0 \cos{\omega t} + \dfrac{F \Omega}{m (\Omega^2 - \omega^2)} (\cos{\omega t} - \cos{\Omega t}) \end{pmatrix}. \end{align}

ちなみに

 入力の角振動数$\Omega$が固有振動数$\omega$と一致するときはどうなるか調べてみます.$\bm{x}(t)$の第1・2項は収束が明らかですが,第3項は微妙です.そこで
$$ \dfrac{F}{m \omega (\Omega^2 - \omega^2)} (\Omega \sin{\omega t} - \omega \sin{\Omega t}) = \frac{F \Omega}{m (\Omega + \omega)} \times \frac{\frac{\sin{\omega t}}{\omega} - \frac{\sin{\Omega t}}{\Omega}}{\Omega - \omega} $$
と変形し,後半$\frac{\sin{\omega t}/\omega - \sin{\Omega t}/\Omega}{\Omega - \omega}$の収束値を調べてみます.この値の$\Omega = \omega$の場合の収束値は,微分係数の定義から$g(x) = \sin{(t x)}/x \ (x > 0)$とすれば$- g'(\omega) = \dfrac{- t \cos{\omega t} \cdot \omega + \sin{\omega t}}{\omega^2}$です.よって
$$ \lim_{\Omega \to \omega} \bm{x}(t) = X_0 \cos{\omega t} + \frac{v_0}{\omega} \sin{\omega t} + \frac{F}{2 m \omega^2} (\sin{\omega t} - \omega t \cos{\omega t}) $$
となり,最後が$t \cos{\omega t}$という時間発展に伴って振幅がどんどん増加する項になります.つまり入力の振動数が固有振動数と一致すると大きく振動するという結果が得られます.

投稿日:20241214
更新日:31日前
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。

投稿者

のんびりやります

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中