実践で使えるDCモータの位置決め制御サーボシステムをマイコンで構築する

前回ではレゴEV3モータをテーマとして実践で使える速度サーボ運転をマイコンで実現するのに、このサイトで紹介したPI制御方式ハイゲインフィードバック方式そして2自由度ロバスト方式を適用してそれぞれの特性を実機において検証しました。

今回は速度サーボのさらなる発展としてモータの回転位置をコントロールする位置サーボ(位置追従制御)を実機を使って検証していきたいと思います。

位置決めサーボ(加速度指令方式)

めかのとろ

速度制御系でハイゲインフィードバック方式や2自由度ロバスト制御が適用されて指令値通りに応答できるようになっていれば、位置決めサーボ系に発展させることは容易です。

めかのとろ

ここでは位置決めサーボ系において応答を決めるゲインをほぼ一意的に選定できる加速度指令方式を採用して実機に適用してその有効性を検証していきます。加速度指令方式についてはマイコンで実現するフィードバック制御のための基礎知識【発展編で詳細を解説しています。

めかのとろ

この方式では設定する目標軌道の位置のみならず、速度および加速度に分解したものを予め作成して指令値として与えます。

めかのとろ

ゲインKp,Kvの決め方マイコンで実現するフィードバック制御のための基礎知識【解析編】で解説している2次遅れ特性を参考にしてください。ゲインを適切に設定することにより位置偏差がゼロに収束していわゆる位置決めサーボが実現できます。

加速度指令値
めかのとろ

上式が成立するのは速度系にロバスト制御が施されていて速度指令値θ‘ref ≒ 速度θ となることにより加速度指令値θ“ref ≒ 加速度θ とみなせるからです。

めかのとろ

上式だけ見ているとゲインKv、Kpは任意に決めても問題なさそうですが ゲイン選定を適当にすると応答は乱れる可能性があります。 実際にはわずかでも近似したところに遅れ要素等の誤差が存在するためです。

めかのとろ

そのため2次遅れ系の特性をもつゲインKv、Kpで目標値 θoに対する位置θの追従特性を決めることになります。

加速度指令方式位置決めサーボ系
めかのとろ

今回は速度制御系にハイゲインフィードバック方式を採用して簡易的なロバスト制御を実現しています。

ハイゲインフィードバック方式による簡易的なロバスト制御モータ

実機への適用

めかのとろ

指令値台形速度パターンが最も簡単なので今回はこれを採用しています。プログラムで浮動小数点を使用すればsin関数を用いた加速度曲線などが定義でき、よりスムーズなパターンが作成できます。

めかのとろ

指令値を作成するにあたってはマイクロソフトExcelを使用してサイクルタイム毎に刻んで演算すれば下図のような数値が得られます。

めかのとろ

実際のプログラミングではExcelの演算と同じものをそれぞれ加速度、速度および位置指令値の配列に代入すればよいわけです。準備する配列の個数は下図の例ではサイクルタイムを5msとしているため各1000個ずつ必要です(5s/5ms個)。

指令値
  • ピーク速度が360p/s
  • 加減速期間1.5s
  • 定常速度期間2.0sの台形速度パターン
コラム

指令値作成は高校数学の関数問題レベルのものです。微分・積分の基本的な考え方と1次・2次関数のおさらいです。ちょっとした頭の体操になりますのでやってみてください。

めかのとろ

フィードバックおよび実機計測に取り込む速度と位置のデータはエンコーダからのパルスをNucleoに取り組みますが、速度と位置はそれぞれ別個のタイマ・カウンタで計測します。

実際の動作

めかのとろ

外乱負荷を与えない状態での速度変化の指令値と実測値です。起動時はどうしてもわずかに乱れていますがハイゲインフィードバックの影響かもしれません。エンコーダ分解能が極めて粗いのと、演算を整数化しているため、一工夫しているとはいえ特に低速時には理想通りには動作させるにはあと何か必要かもしれません。

めかのとろ

位置決めサーボでの速度実測値ですので速度定常時にわずかに脈動しているのは問題ではありません。

モータ速度(外乱負荷なし)
めかのとろ

0.5s毎に外乱負荷を与えた場合の速度です。わずかに外乱の影響はありますが、ハイゲインフィードバックが効いてほぼ安定しています。

モータ速度(外乱負荷あり)
めかのとろ

実際のモータの移動位置です。位置指令値と実測値にはずれが見られず遅れなく追従していのが確認できます。外乱負荷を与えた場合でも位置にはほぼ影響がありません

モータ位置(外乱負荷あり)
めかのとろ

レゴEV3Lモータには一回転あたり180パルスのエンコーダが内蔵されています。この指令値はちょうど7回転で最終到達パルスが1260パルスになるものです。

動画1 シリアルモニター
上段が速度、下段が位置です。5秒で台形加減速して設定位置1260に到達しています。

動画2  レゴEV3Lモータ7回転位置決め
起動してからちょうど7回転(1260パルス分)で停止しています。

めかのとろ

レゴEV3Lモータのような簡易的なエンコーダがついたものでも高度なロバスト制御を施した位置決めサーボに発展させると高精度な位置の追従制御ができることが確認できました。

めかのとろ

ハードウェアはマイコンと電圧制御タイプのドライバのごく普通の組み合わせのものなのですが、本格的な理論を適用したモーションコントロールが簡単に実現できてしまうのです。

めかのとろ

制御理論の応用も特殊なハードウェアを必要とするものでなくだれでも身近に応用できるものを紹介しました。ここではモータを使ったモーションコントロールを例にあげて解説してきましたが、それ以外の用途に活用しても面白いと思います。

ポイント

モーションコントロールを始めとする制御系をプログラミングによりマイコン等で操作を行うためにはまずシミュレーションで動作を確認して理論通りに実現できるかどうかを見極めることです。理論段階ではScilab等のシミュレーションソフトで動作確認をし、プログラミングのためにはExcel等などを使って離散系を意識したシミュレーションをすることが実現化の早道です。

コラム

高度な制御理論を適用したものでもそのツボとなる部分は実際の何百行に渡るプログラムにおいてほんの数行足らずの数式にすぎません。ですが、このほんの数行の記述でもともとの特性が全く高度なものに化けるのです。物理的な対象が化学のように化けるのがフィードバック制御の面白いところです。興味深いと思いませんか。

Follow me!