【python-control】リアプノフ方程式の解を計算

スポンサーリンク

当記事では、python-controlでリアプノフ方程式の解を求める方法について紹介します。

スポンサーリンク

リアプノフ方程式とは

リアプノフ方程式(Lyapunov)とは、システムの安定性を調べるのに使われる式です。
リアプノフ方程式は次のように表されます。
\begin{eqnarray}
\mathbf{A}\mathbf{X}+\mathbf{X}\mathbf{A}^{T}+\mathbf{Q}=0
\end{eqnarray}
このリアプノフ方程式が方程が任意の正定行列 \(\mathbf{Q}>0\) に対して唯一の正定解を持つとき、システムが漸近安定となります。
(正定行列は対称行列なので、全ての固有値が正の実数値)

【詳細】
【制御理論】リアプノフ方程式

python-controlの「control.lqr」メソッドを用いると、Matlabのlyap関数のようにリカッチ方程式の解Pを計算できます。

【参考文献】
・python-controlドキュメント:lyapメソッドの使い方
・Matlabドキュメント:lyap関数の使い方
※python-controlはMatlab風ライブラリなので、Matlabの資料が役に立ちます

ソースコード

次のシステムのリアプノフ方程式の解を求めるサンプロプログラムです。

\begin{eqnarray}
\left[\begin{array}{c}
\dot{x}_1 \\
\dot{x}_2 \\
\end{array}\right]
=
\left[\begin{array}{cc}
-2 & 1 \\
2 & 3 \\
\end{array}\right]
\left[\begin{array}{c}
x_1 \\
x_2 \\
\end{array}\right]
+
\left[\begin{array}{c}
1 \\
1 \\
\end{array}\right]
u \\
\end{eqnarray}

\begin{eqnarray}
Q=
\left[\begin{array}{cc}
1 & 0 \\
0 & 1 \\
\end{array}\right]
\end{eqnarray}

実行結果

リアプノフ方程式の解P=:
[[ 0.35 0.2 ]
[ 0.2 0.3 ]]
スポンサーリンク

シェア&フォローお願いします!