Training Tracerのシステム同定とコントローラの設計

Training Tracerのヨー回転運動の伝達関数を同定してコントローラーも設計してみる
①おもむろにsimulinkのブロック図を描く

直進にPWM duty50%を使い、回転の制御量にduty±40%を与える構成にしている。
今回は回転の入力にランダム信号を選択した。信号ソースはPN Sequence Generatorブロックを使用した
Bernoulli Binary Generatorブロックも試したが監視と調整で通信しようとするとXCP通信エラーがでて使いこなせなかった
PN Sequence Generatorブロックの出力を制御周期の5ms毎に切り替えると機体が全く応答しなかったので0.1s間隔で信号を切り替えるようにZero-Order Holdブロックを挿入している

②監視と調整で実機の応答波形を取得する

④MATLABのアプリからシステム同定アプリを起動して1次遅れ系と2次遅れ系の2種で伝達関数を推定した

1次遅れ系としての推定

2次遅れ系として推定

⑤シミュレーション用のsimulinkのブロック図を描く

モデルの部分はTransfer Fcnブロックではなく、LTI Systemブロックを選択してシステム同定アプリで導出したモデル名(tf1)を選択する

⑥コントローラーのゲインを調整する

今回もゲイン調整は自動ではうまく動かず。
1次遅れ系のモデルを使用すると、ちょっと無理な感じのハイゲインまで設定できたので、1次遅れ系は使用を見送り
(2次遅れ系のモデルでも結果的に実機よりもハイゲインまで動くようで、低いゲインから実機との相関をとっていく必要がありそう)

⑦シミュレーション環境でのコントローラーのゲインの合わせこみ結果

(実機と往復してゲインを下げていった最終のもの)

⑧実機制御用のsimulinkを描き、調整したコントローラーをコピペする

⑨監視と調整を行い、シミュレーションと実機の波形を比較する

青がシミュレーションの応答波形で、赤が実機の応答波形
何度かシミュレーションと実機を行き来した結果、ゲインが高すぎない場合はそこそこ一致できた

DCモータのコントローラを作成する

同定したDCモータの伝達関数を利用してコントローラを作成してみる
①おもむろにsimulinkでブロック図を作る

ステップ入力、Sum、PIDコントローラとTransfer Fcnブロックを配置してFB系を作る。Transfer Fcnには前回導出した伝達関数を入力する。
PIDコントローラは離散系にして、サンプリング時間は実機に合わせて0.005sに、実機に合わせて出力の上下限とアンチワインドアップも設定しておく。
②モデル設定のソルバーを固定ステップにして、時間を0.005sに設定する

③PIDコントローラーのゲインを調整する

シミュレーションの結果を見ながら調整を行う。
本当は自動調整を利用したかったが、離散系を選択するとゲインの自動調整ではゲインが強すぎて発振したため断念。

合わせこんだ結果の波形
④実機制御のslimulinkを立ち上げで、調整したPIDコントローラーをコピー貼り付けする

⑤監視と調整を行い実機の波形を取得する

緑がシミュレーション結果で、赤が実機の応答結果。かなり一致しているようだ