2018年5月7日月曜日

加速テーブルを使わずにステッピングモータで台形加速する

Mice入って早1年たった中の人です。

ステッピングモーターを回すのに加速テーブルを使う例は多々ありますが、テーブルなしで回す例は意外とないのでメモ。





まずはステッピングモーター(のドライバIC)送るパルス周期を出してみましょう。

①1ステップで動く距離を出す
 ステッピングモータは励磁する磁石を次々に変えながら回します。そのため1ステップで回る角度が定義できます。オリエンタルモーター様の無償提供モーターPKE-243A-Lの場合、1相励磁でのステップ角は1.8°で、1-2相励磁はその半分で0.9°となります。
 ここからタイヤ直径51[mm]の場合、1ステップで"車体"が進む距離d[mm]は
となります。

②単位時間に何ステップ進めるかを決める
 1ステップでどれぐらい"車体"が進むかがわかったところで、モーターを単位時間に何ステップ分回すか、つまりステップ速度を決めましょう。
 単位ステップ距離が出ているので、これを使って求めることを考えます。1ステップで進む"車体"の距離が出ているので、"車体"の動きを記述するパラメータであり、かつ単位時間が絡むものが良いですね。例えば車体が単位時間に進む距離とか...








そう、車体速度です!
具体的には、"車体"速度をステップ距離で割るだけです。まあ、単位時間に進む距離を1ステップで進む距離で割れば、距離が消えて単位時間当たりのステップ数が出るって落ちです。
③ステップ周期を出す
 単位時間に何ステップ出すかが決まったので、1ステップにかかる時間を求めます。まあ、1[s]で何ステップ出すかが決まっているので、逆数を取れば1ステップにかかる秒数がわかります。
 では何故ステップ周期を出すかといえば、マイコンのタイマを使うためです。タイマで半周期と1周期を計って出力のHIGH-LOWを切り替えます。

④回転を加減速させる
 加減速するとき、ステップ周期を変更しながら回すのですが、ステッピングモータ特有の問題として、"脱調"があります。
 脱調とは、入力パルス周波数が大きすぎたり、小さすぎたり、変化が大きすぎるためにうまく回らなくなることです。僕の場合、200[mm/s]-1000[mm/s]、2000[mm/s^2]くらいで今のところやっています。
 
 最初に回すのなら、現在速度と目標速度の差分を取り、目標速度より速かったら、(割り込み時間x設定した加速度)を現在速度から差し引き、目標速度より遅かったら(割り込み時間x設定した加速度)を現在速度に加算するやり方で十分かと思います。


今回はこの辺を参考にしました

JASALMAのプログラム解読Part1 走行系1



それでは良きマウスライフを!
 

©2018 shts All Right Reserved.

0 件のコメント:

コメントを投稿