【python-control】最適レギュレータの設計

当記事では、python-controlで最適レギュレータを設計する方法について紹介します。

## 最適レギュレータとは

最適レギュレータとは、状態$x$と入力$u$に関する評価関数を最小とするようにフィードバックゲインを設計する手法です。

【詳細】
【制御理論】最適レギュレータで状態フィードバックゲインの設計

python-controlの「control.lqr」メソッドを用いると、Matlabのlqr関数のように最適レギュレータで状態フィードバックゲインを計算できます。

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

ソースコード

次のシステムの状態フィードバックゲインFを最適レギュレータで求めるサンプロプログラムです。

\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}


実行結果

リカッチ方程式の解:
[[ 2. 1.]
[ 1. 1.]]
状態フィードバックゲイン:
[[ 1. 1.]]
閉ループ系の固有値:
[-1. +1.48799231e-08j -1. -1.48799231e-08j]

コメント