2017年5月27日土曜日

ブラシレスモータのコギングやトルクリプル抑制について考察(3)

はじめに

(1)がとても人気だったので(2)を書いたのですが、どうも一時的な人気だったようで需要がないと判断して今回が最後の回となります。
(1)と(2)を書いた後に実はハマっていたハンチング問題を解決することができたというのもあって
そのあたりについても少し触れていきたいと思います。

前回のまとめ

位置情報を微分すると速度になり、速度を微分すると加速度になり、加速度を微分すると加加速度になる。
加加速度を積分すると加速度になり、加速度を積分すると速度になり、速度を積分すると位置情報になる。
まず、この仕組みのどこを制御すればよいのかを考えます。
制御対象について
位置制御の場合、当然「位置」ですが、
位置を制御するには速度が必要で、
速度を制御するには加速度が必要で、
加速度を制御するには加加速度が必要、、、

上記の事を考えずにモータに電圧を流せば回るのですが、
一体何を制御しているのでしょうか。
最初に答えを書いてしまうと、
 最終的には加加速度を制御している
という事です。

まずブラシレスモータをコントロールするのにPID制御を使います。
このPID制御は、指示量Pは速度を指していて、Iは加速度の積分なので速度になるので
速度制御だという事が分かります。

では位置制御を行う場合、速度制御なPID制御で行えるかというとうまくいきません。
なぜかというと位置と速度は位相が90度ずれているからです。
PIDのゲインを最適値にすることである程度狙って位置で止まれるようになりますが、
外乱の影響などで条件が変わると最適な結果が得られません。
ではどうするかというと、速度制御の先の加速度を注目します。

加速度はΔt時間に進んだ時間であり、位置と180度位相がずれているパラメータです。
速度とは90度位相がずれています。
速度制御で位置をもとめようとどうしても止めたい位置で止められないというのは
位置と速度は90度位相がずれているからなので、
位置制御は加速度制御を行って速度を求めればよいわけです。

ハンチングを抑制するには

この問題は上の例と同じやり方で考えれます。
ハンチングは目標位置で止めようと頑張った証であり、
目標位置を何度も往復してしまっている状態です。
速度を落とせば収まると思っても加速度があって滑ってしまい
結果ハンチングとなってしまっているとも言えます。
ではどうやって収束させるのかを考えます。

・速度=0、加速度=0になれば完全停止になる。
・目標位置で止めるには速度が必要になる。

つまり、加速度=0な速度を作れれば良い事が見えてきます。
では加速度=0にする方法はどうすればいいんでしょうか。。
もう上の内容をおさらいすると答えが出てきます。
上の方式以外でFFTを用いたりZ変換したりいろんな研究は手法があるので
色々とやってみるといいと思います。


0 件のコメント:

Androider