当記事では、python-controlでリカッチ方程式の解を求める方法について紹介します。
リカッチ方程式とは
リカッチ方程式とは、最適レギュレータを設計するのに必要な微分方程式です。
(この微分方程式を解かないと最適フィードバックゲインが求まらない)
python-controlの「control.lqr」メソッドを用いると、Matlabのlqr関数のようにリカッチ方程式の解Pを計算できます。
※python-controlはMatlab風ライブラリなので、Matlabの資料が役に立ちます
– | 参考文献 |
---|---|
1 | 【制御理論】リカッチ方程式 |
2 | python-controlドキュメント:lqrメソッドの使い方 |
3 | Matlabドキュメント:lqr関数の使い方 |
ソースコード
リカッチ方程式の解を求めるサンプロプログラムです。
# -*- coding: utf-8 -*- from control.matlab import * import numpy as np def main(): # システム行列の定義 A = np.array([[0, 1], [0, -1]]) B = np.array([[0], [1]]) Q = np.array([[1, 0], [0, 1]]) R = np.array([[1]]) # LQRでリカッチ方程式の解Pを計算 K, P, e = lqr(A, B, Q, R) # 結果表示 print("リカッチ方程式の解:\n",P) if __name__ == "__main__": main()
実行結果
サンプルプログラムの実行結果です。
リカッチ方程式の解: [[ 2. 1.] [ 1. 1.]]
関連ページ
【Python】制御工学シミュレーション入門
プログラミング言語「Python」を用いて、無料で簡単に制御工学シミュレーションを行う方法を紹介します。
401 Unauthorized
コメント