【python-control】リカッチ方程式の解を計算

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

リカッチ方程式とは

リカッチ方程式とは、最適レギュレータを設計するのに必要な微分方程式です。
(この微分方程式を解かないと最適フィードバックゲインが求まらない)

【詳細】
【制御理論】リカッチ方程式

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

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

ソースコード

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

\begin{eqnarray}
\left[\begin{array}{c}
\dot{x}_1 \\
\dot{x}_2 \\
\end{array}\right]
=
\left[\begin{array}{cc}
1 & 0 \\
0 & 2 \\
\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}

実行結果

リカッチ方程式の解:
[[ 2. 1.]
[ 1. 1.]]

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