固有値と固有ベクトルで線形システムの常微分方程式を解く(2):制御工学入門

本シリーズでは、制御工学で学ぶ基本的な知識から実際の応用例までを、なるべく分かりやすく解説しています。

制御工学(Control Engineering)についての情報を紹介します。 動的システムと制御方法 世の中にあふれる動的シス...

前回の記事では、常微分方程式で表された線形システムの状態方程式の一般解について紹介しました。

本シリーズでは、制御工学で学ぶ基本的な知識から実際の応用例までを、なるべく分かりやすく解説しています。 ...

前回紹介したように、状態ベクトルxの一般解を求めるためには、行列An乗という複雑な計算が必要という問題があります。

今回の記事では、この線形システムの解を簡単に求めるために、行列Aの固有値と固有ベクトルを用いた方法を紹介していきたいと思います。

常微分方程式と固有値・固有ベクトルの関係

線形システムの状態を表した常微分方程式

$$ \dot{\boldsymbol{ x }} = \boldsymbol{ A } \boldsymbol{ x } $$

に含まれる行列Aについて、行列Aの固有値(Eigenvalue)と固有ベクトル(Eigenvector)を用いることで

$$ \boldsymbol{ A } \boldsymbol{ \zeta } = \lambda \boldsymbol{ \zeta } $$

という計算式が成り立ちます。

ここで、ζ(ジータ)は行列Aの固有ベクトル、λ(ラムダ)は行列Aの固有値です。

固有値と固有ベクトルとは

固有ベクトルζは行列Aにとって、特別なベクトルです。

固有ベクトルζは向きは、行列Aと掛け合わせた後でも変わりません。

ベクトルの方向は同じで、大きさのみが固有値λだけ変わります。

ここで、行列Aの固有値λ1λ2λ3,… λnと固有ベクトルζ1ζ2ζ3,…, ζnについて

$$ \begin{eqnarray} \boldsymbol{ T } &=& \begin{bmatrix} \boldsymbol{ \zeta_1 } & \boldsymbol{ \zeta_2 } & \boldsymbol{ \zeta_3 } & \cdots & \boldsymbol{ \zeta_n } \end{bmatrix} \\ \boldsymbol{ D } &=& \begin{bmatrix} \lambda_1 & & & & 0 \\ & \lambda_2 & & & \\ & & \lambda_3 & & \\ & & & \ddots & \\ 0 & & & & \lambda_n  \end{bmatrix} \end{eqnarray} $$

と表します。

このとき、最初に紹介した一組の固有値と固有ベクトルに対する

$$ \boldsymbol{ A } \boldsymbol{ \zeta } = \lambda \boldsymbol{ \zeta } $$

の関係式を、行列Aに対する複数組の固有値と固有ベクトルについて

$$ \boldsymbol{ A } \boldsymbol{ T } = \boldsymbol{ T } \boldsymbol{ D } $$

と関係式をまとめて表すことが出来ます。

固有値と固有ベクトルによる座標空間の変換

状態ベクトルxの座標空間から固有ベクトルζによる行列Tを用いて

$$ \boldsymbol{ x }  = \boldsymbol{ T }  \boldsymbol{ z } $$

という関係式を用いて表される、ベクトルzの座標空間に変更します。

この座標変換をすることで、動的システムの微分方程式を解くために必要な計算量が少なくなります。

では、なぜ計算量が少なくなるかの理由を説明していきます。

このx座標空間とz座標空間の関係式について、両辺を時間で微分すると

$$ \dot{\boldsymbol{ x }} = \boldsymbol{ T } \dot{\boldsymbol{ z }} $$

となります。

ここで、取り扱う線形システムの状態方程式(常微分方程式)が

$$ \dot{\boldsymbol{ x }} = \boldsymbol{ A } \boldsymbol{ x } $$

と表されるので

$$ \boldsymbol{ T } \dot{\boldsymbol{ z }} =  \boldsymbol{ A } \boldsymbol{ x } $$

の関係式が成り立ちます。

さらに、x座標空間とz座標空間の関係式

$$ \boldsymbol{ x }  = \boldsymbol{ T }  \boldsymbol{ z } $$

より、このxについての式を先ほどの式に代入して

$$ \boldsymbol{ T } \dot{\boldsymbol{ z }} =  \boldsymbol{ A } \boldsymbol{ T }  \boldsymbol{ z } $$

となります。

最後に、両辺に左側からTの逆行列を掛けることで

$$ \dot{\boldsymbol{ z }} = \boldsymbol{ T }^{-1} \boldsymbol{ A } \boldsymbol{ T }  \boldsymbol{ z } $$

というzについての常微分方程式を導くことが出来ます。

前に紹介した、行列Aに対する複数組の固有値と固有ベクトルについての関係式

$$ \boldsymbol{ A } \boldsymbol{ T } = \boldsymbol{ T } \boldsymbol{ D } $$

の両辺に左からTの逆行列を掛けると

$$ \boldsymbol{ T }^{-1} \boldsymbol{ A } \boldsymbol{ T } = \boldsymbol{ D } $$

の関係が成り立つため、先に求めたzについての常微分方程式について

$$ \begin{eqnarray} \dot{\boldsymbol{ z }} &=& \boldsymbol{ T }^{-1} \boldsymbol{ A } \boldsymbol{ T }  \boldsymbol{ z } \\ &=& \boldsymbol{ D }  \boldsymbol{ z } \end{eqnarray} $$

というzについての常微分方程式を導くことが出来ます。

なぜ状態変数xについての微分方程式を、zについての微分方程式で表したかというと、行列Dは固有値λにより定義される対角行列

$$ \boldsymbol{ D }= \begin{bmatrix} \lambda_1 & & & & 0 \\ & \lambda_2 & & & \\ & & \lambda_3 & & \\ & & & \ddots & \\ 0 & & & & \lambda_n  \end{bmatrix} $$

なので、zの各値は互いに依存せず、独立して扱うことが出来ます。

つまり、zについての常微分方程式を表し方を変えて

$$ \begin{eqnarray} \begin{array}{l} \dot{\boldsymbol{ z }} = \boldsymbol{ D }  \boldsymbol{ z } \\ \Rightarrow \frac{d}{dt} \begin{bmatrix} z_1 \\ z_2 \\ z_3 \\ \vdots \\ z_n \end{bmatrix} = \begin{bmatrix} \lambda_1 & & & & 0 \\ & \lambda_2 & & & \\ & & \lambda_3 & & \\ & & & \ddots & \\ 0 & & & & \lambda_n  \end{bmatrix} \begin{bmatrix} z_1 \\ z_2 \\ z_3 \\ \vdots \\ z_n \end{bmatrix} \end{array} \end{eqnarray} $$

とした時、状態z1の時間微分はz1λ1のみで求まり、他のz2z3,…, znλ2λ3,…, λnの影響をうけません。

同様に、状態z2の時間微分はz2λ2のみで求まり、状態z3の時間微分はz3λ3のみで求まります。

よって、各状態について微分方程式を解くと

$$ \begin{eqnarray} \dot{z_1} (t) &=& e^{\lambda_1 t} z_1 (0) \\ \dot{z_2} (t) &=& e^{\lambda_2 t} z_2 (0) \\ \dot{z_3} (t) &=& e^{\lambda_3 t} z_3 (0) \\ \dot{z_n} (t) &=& e^{\lambda_n t} z_n (0) \end{eqnarray} $$

と表すことが出来ます。

この各状態についての微分方程式の解をまとめると

$$ \begin{eqnarray} \boldsymbol{ z } (t) &=& e^{\boldsymbol{ D } t} \boldsymbol{ z } (0) \\ &=& \begin{bmatrix} e^{\lambda_1 t} & & & & 0 \\ & e^{\lambda_2 t} & & & \\ & & e^{\lambda_3 t} & & \\  & & & \ddots & \\ 0 & & & & e^{\lambda_n t} \end{bmatrix} \boldsymbol{ z } (0) \end{eqnarray} $$

となり、簡単にz(t)を求めることが出来ます。

まとめ

今回は、複雑な計算が必要であった線形システムの解を簡単に求めるために、固有値と固有ベクトルを用いる方法を紹介しました。

今回紹介した方法では、線形システムを表す行列Aが与えられた際に、固有ベクトルζにより特別な座標系zに移動します。

その結果、このz座標空間では、各値が独立しているため必要な計算が減り、簡単に解を求めることが出来ます。

次回の記事では、今回求めたz座標での解から、実際に求めたい線形システムの状態x(t)を求める方法を紹介したいと思います。

本シリーズでは、制御工学で学ぶ基本的な知識から実際の応用例までを、なるべく分かりやすく解説しています。 ...
スポンサーリンク
レクタングル(大)広告
レクタングル(大)広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

関連コンテンツ