【倒立振子part4】状態空間モデルを作る
下記のpart2,3でモデルの運動方程式が作成が完了した。
今回は導出した運動方程式を状態方程式と出力方程式に変形してシステムの状態空間表現を行う。
現代制御について
式を変更する前になぜ現代制御(状態方程式)で制御するのかを考える。
詳しく書いてある記事があったので引用させていただく。
controlabo.com
記事にもあるが現代制御はモデルの運動方程式に強く時間領域で制御できるため今回使用するのである。
簡単な制御するとき、例えばモータの角速度は測定せずに現在の振子の角度と0度(直立状態)の偏差がなくなるようにPID制御する際には古典制御で事足りるが
今回のようにモータの角速度なども考慮するため場合は現代制御を使用する。
またできそうな事も多そうなので、今後いろいろ試していくため現代制御を使用する。
運動方程式から状態方程式へ
前提として状態方程式の基本形は
で表され、は状態ベクトル、は入力ベクトル、は出力ベクトルである。
式(4)(5)を状態方程式の形式へするためにベクトルについて整理する。
上式の定数部分を計算しやすいように下記のように定義する。
この定義を適用すると元の状態方程式は下記のようになる。
この式をベクトルについて解く。
ただし行列式とする。
ここで倒立振子の状態ベクトルをあらゆる状態を表現できるために次のように決める。
上記を用いて状態ベクトルに従う行列微分方程式を求めると状態方程式になる。
状態ベクトルの項目は角度センサとエンコーダで測定できるため倒立振子の出力方程式は
以上より式(6)の行列項目は
以上でシステムの状態空間表現ができた。
今回は強引に計算で導出したけど運動方程式から状態空間モデルに状態ベクトル入れたら勝手に計算してくれるソフト欲しい。
こんだけ現代制御理論が進んでるならありそうだけど見つけられなかった。。。
もしMatlabでできるなら、値段も個人使用なら15000円くらいなので今後のシュミレーションとかのことも考えて購入も検討に入れたい。
次回
状態空間モデルが出来上がったので次は実機の設計とかを進めつつ、パラメータ同定について調べていく。
P.S
全然関係ないけどモデルの意味がごっちゃになるので定義をメモしておく
モデル:事物や現象の本質的な部分を強調し、余分な要素や条件などを取り去って単純化したもの
モデル化:モデルを作ること