当記事では、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」を用いて、無料で簡単に制御工学シミュレーションを行う方法を紹介します。

404 NOT FOUND | Python超入門速報

コメント