【倒立振子part17】最適制御
前回作成した状態空間モデルに対してモデルの評価と最適制御を利用して倒立させるレギュレータ極を求めていく。
状態空間モデルの評価
状態フィードバック制御
状態方程式の極の実部を負にすることで漸近安定になるため
という入力を適用すると、状態方程式は
となる。Kは状態フィードバックゲインとする。
ここで行列の固有値(レギュレータ極)の実部が負になるような状態フィードバックを設計できれば漸近安定となる。
LQR
上記の状態フィードバックゲインKを求める方法は極配置法やLQRなどがある。
今回はLQR制御を使用する。
LQRは下記の評価関数Jを最小にすることである。
ここでは状態重み行列、は入力重み行列を設定することで決まる。
途中の計算式は省略するが
として求められる。
ここでは下記のリカッチ方程式の解である。
(シュミレーション計算するのには専用の関数を利用するのでそんなに深く詰めないことにする。。。)
シュミレーション
今回は倒立することに重きを置きたいので振子の角度と角速度に対するの重みを大きくする。
は大きくするとモータを激しく動かさないシステム、小さくするとモータを激しく動かして素早く安定化させるシステムとなる。
ただし小さくしすぎると印可電圧が大きくなりすぎるので入力可能電圧を考慮して決定する。
] ,
としたときのシュミレーション結果は下記の通りとなった。
【初期値0.017[rad]】
【初期値0.085[rad]】
漸近安定化することはできたが入力電圧が大きすぎる結果となった。
Rを高くしすぎてもあまり改善しなかった。(1000000倍しても変わらなかった)
次回
入力値が正しいのかそれともDCモータのパラメータ同定があっているのか判断するための方法を考えてみる。
どうしても分からなかったらブラシ付きDCモータに変えるのか古典制御をつかうのかも考える必要があるかも。。。