実践で使えるDCモータの速度サーボ制御をマイコンで構築する

これまではDCモータを使ったレゴEV3モータをさまざまな制御方式のステップ応答(一定値入力)でそれぞれの特性を確認しました。実際にモータを運転する場合は一定の速度だけで使うのみならず加減速も任意に与えたパターンに追従させるいわゆるサーボ運転をさせる用途も多いです。

そこで、今回はそれぞれの制御方式において、あらかじめ作成した台形の速度パターンを指令値入力としたときに、手動で負荷を加えたときの追従性と外乱による変動の影響を確認してみます。

まずそれぞれの制御方式をシミュレーションで確認してから、プログラムを実機に適用して制御方式による特性の違いを確認して、より実用的な方式を探求していきたいと思います。

シミュレーションおよび実機での動作確認ともにこれまでにステップ応答で解説してきたものと同じ装置に台形速度入力指令を与えたもので検討します。

コラム

厳密にはサーボとは目標値に対する出力との偏差がゼロになる設計としたものですがここでは任意の入力値に追従することを広い意味でサーボといっています。

オープン制御での速度サーボ制御

めかのとろ

オープン制御の場合は、速度指令値を台形パターンにするにはその指令値に比例した電圧となるようなPWMデューティ比率に指定します。

オープン速度制御のブロック線図
めかのとろ

モータ速度は無負荷の状態では与えた電圧に比例して動作するはずです。

めかのとろ

実際の運転で起こり得る負荷を想定してモータ軸にブレーキがかかる向きに約0.5s間隔で一定の負荷トルクを与えて出力のモータ速度にどのような影響がでるかを調べてみます。

めかのとろ

マイコンで実現するフィードバック制御のための基礎知識【応用編】で解説しましたが、DCモータはオープン制御の場合は負荷がかかると、大きく影響を受けてしまいます。

めかのとろ

まずシミュレーションで確認してみると、やはり理論で証明されているように出力の速度はかなり変動してしまうことがわかります。

オープン速度制御の の外乱影響(シミュレーション)
めかのとろ

今度は、シミュレーションと同じ条件になるプログラムを作成して、速度指令値が台形パターンとなる電圧をモータに与えたときの速度を実測してみます。

めかのとろ

シミュレーションと同じ結果で、ちょっとした負荷ですぐに速度は変動してしまうことが確認できます。

オープン速度制御の外乱影響(実測値)
めかのとろ

この無防備な状態で、例えばマイクロマウスなどの駆動に適用すると勾配やちょっとした段差などの障害でも望むような動作ができない場合が起こりえます。

めかのとろ

そこで、より性能を向上すべくモータ速度をフィードバックした種々の方式で速度指令値(目標値)に対する追従性と外乱の影響を確認していきます。

コラム

速度指令パターンは制御のサイクルタイム(今回は5ms)ごとの算出データを配列に入れ、加減速時間1.5s, 定常速度時間2sの台形パターンとしています。使用モータの定格速度(7.2V印加時)は410p/sであるため、ゆとりをもたせて指令値の速度ピークは少し低い350p/sとしています。

PI制御での速度サーボ

めかのとろ

PID制御のうち、比例と積分要素を補償器としたフィードバック速度制御を構成して性能を確認します。

めかのとろ

ステップ応答時と同じ条件で速度指令値を台形パターンにしたものです。補償器の条件は比例ゲインを0.5, 積分ゲインを15にしたものです。

PI速度制御のブロック線図
めかのとろ

まずシミュレーションで確認してみると、この条件においては外乱の影響に関してはぼぼオープン制御と同じほとんど改善効果は見られません

PI速度制御の の外乱影響(シミュレーション)
めかのとろ

シミュレーションと全く同じ条件で実測した結果をみても同様ですが、オープン制御と異なる点は速度指令値と実際の速度には定常偏差がなくなっている点です。

PI速度制御の外乱影響(実測値)
めかのとろ

今回の条件ではゲインを比較的小さめに設定したこともあり、外乱の影響を抑制する効果はほとんどないといえます。もっとも、ゲインをより大きく設定すると外乱の影響を抑えることはできますが、ループ内全体のゲインをあまり大きくするとノイズ等の影響も受けやすくなりあまり好ましくはありません。

めかのとろ

PI制御は定常状態の偏差をなくすには有効な方式ですが、外乱負荷の影響をなくすにはあまり効果が期待できないことがわかります。

ハイゲインフィードバック制御での速度サーボ

めかのとろ

今度は最もシンプルなフィードバック方式で、効果もあげやすいハイゲインフィードバック方式で検討してみます。

めかのとろ

ここではこの方式を"ハイゲインフィードバック"と名づけてはいるのですが、実際にはそんなに大きなゲインは使用しないいたって実用的な方式です。

めかのとろ

検証する条件は下記ブロック線図のとおりです。

ハイゲインフィードバック速度制御のブロック線図
めかのとろ

上記の条件では入力から出力間の特性は実質10msの時定数をもった1次遅れ系となります。詳細はDCモータの簡単で実用的な速度フィードバック制御で解説しています。

めかのとろ

まずシミュレーションで確認しますが、オープン速度制御やPI速度制御ではあれだけ負荷外乱の影響をうけていたのですが、この方式では同じ条件であるのにかかわらずほぼ打ち消されていて、速度指令値どおりに追従するサーボ運転となっています

ハイゲインフィードバック速度制御の外乱影響(シミュレーション)
めかのとろ

シミュレーションでは良い結果であったのですが、実測値ではどうでしょうか。

めかのとろ

シミュレーションと同じ条件でプログラムを構成して実測してみました。制御アルゴリズムのプログラミングでは積分器を使用するPI制御よりも単純です。

めかのとろ

ここでも結果はシミュレーションと同じく外乱の影響をキャンセルして安定して指令値に追従していることが確認できます。

ハイゲインフィードバック速度制御の外乱影響(実測値)

2自由度ロバスト制御での速度サーボ

めかのとろ

ハイゲインフィードバック方式はシンプルな構造なのにも関わらず効果も抜群の方式でしたが、外乱抑制を高めるためにゲインを大きくすると同時に応答性も向上してしまうことが短所でした。

めかのとろ

これで問題がなければよいのですが、外乱抑制と応答性を独立して設定したい場合に有効な方式が2自由度ロバスト制御方式です。

めかのとろ

今回の場合もステップ応答で構成したものに速度指令値(目標値)を台形パターンにしたところだけが異なります。シミュレーションやプログラムを構成するのに容易な近似タイプを採用します。【実践で使えるDCモータのロバスト速度制御】参照

2自由度ロバスト速度制御のブロック線図
めかのとろ

まずシミュレーションで確認しますが、ハイゲインフィードバック方式と比較すると、速度が指令値に対してわずかに遅れているのは、近似タイプのため、ロバスト補償器の時定数Tm2をモータ制御対象の時定数Tmと同じ50msにしているからです。

めかのとろ

外乱抑制についてはハイゲインフィードバック方式と同じく十分な効果があることが確認できます。

2自由度ロバスト速度制御の の外乱影響(シミュレーション)
めかのとろ

制御アルゴリズムのプログラミングでは1次遅れのフィルターを構成する必要はありますが、そう複雑なものでもありません。

めかのとろ

シミュレーションと同じ条件で実測したものでも外乱の影響がなく安定して指令値に追従していることが確認できます。近似タイプでも十分効果があることが確認できました。

2自由度ロバスト速度制御の外乱影響(実測値)

まとめ

  1. オープン制御では簡単な速度調整程度はできますが、外乱の影響を簡単にうけてしまうので速度サーボ的な任意な速度で運転させることには向いていません。
  2. DCモータをPI速度制御で運転しても、外乱の影響は受けてしまいます。PI速度制御は一定負荷をかけた状態で一定速度の指令値(目標値)通りに運転させる用途には向いていますが目標値が変化する速度サーボ運転への適用は厳しいです。高いゲインを使用することが条件です。
  3. ハイゲインフィードバック方式は比較的簡単に外乱の影響をキャンセルできる方式でおすすめ。ゲイン値により応答性が高くなりすぎないように注意する必要があります。
  4. 外乱抑制を向上させながら、応答性も任意に調整したい場合には2自由度ロバスト制御が有効です。近似タイプで用が足りるならばよいですが、より本格的な設定をしたい場合は本来のタイプが効果的です。ただし制御補償器の次数が増えるためにプログラム内の制御アルゴリズムは複雑になります。

結論的には外乱抑制をもたせたちょっとした用途にはハイゲインフィードバック方式が実用的でおすすめです。2自由度ロバスト制御を含め、このままでは定常偏差は残るのですが、完全なサーボ化にすることは一工夫すれば簡単です。近日、紹介したいと思います。

ハイゲインフィードバック制御方式および2自由度ロバスト制御方式(近似タイプ)は数行の記述のみでプログラミングできるいたって実用的な方式です。 ちょっとした趣味用途でも簡単に採用できるのではないでしょうか。