安曇野の森から> TurtleRealを作る> モーターの制御方法

モーターの制御方法


H-ブリッジ回路

H-ブリッジ回路

モーターの回転制御は左図のようなH-ブリッジ回路を内蔵したモータードライバーによって行います。今回使用したモータードライバーには1つのICパッケージに2つのH-ブリッジ回路が内臓されています。

左図は原理をわかりやすく説明するため、スイッチで表現していますが、実際にはトランジスタやFETなどの半導体が使われます。
丸にMが書かれているのがモーターを表しています。このモーターを含んだ回路全体の形がH字になっているのでH-ブリッジ回路と呼ばれています。

H-ブリッジ回路には左図に示すような4つの状態があります。この状態を切り替えることによりモーターの回転方向を変えます。
これらの状態の中でも「回生ブレーキ」は少し特殊です。回転中のモーターは発電機として働きますので発電機状態のモーターを短絡させると発電された電流がモーターの回転を抑える方向に働き回転にブレーキがかかります。この時、運動エネルギーは回路内の抵抗によって熱に変換されます。
これが回生ブレーキと呼ばれる方式で電車やハイブリッド車などでも使われています。
電車やハイブリッド車の場合はモーターを短絡させるのではなく発電された電流を架線に戻したり、バッテリーの充電に使用することにより運動エネルギーを回収しています。


PWM制御

PWM制御

左図のようにモータードライバーの状態を周期的に変え、一周期内でモーターがONしている時間の比率を変えることによってモーターにかかる平均電圧を変えることが出来ます。この方式をPWM(Pulse Width Modulation)制御といいます。
直流モーターの場合、負荷が変わらなければ回転速度はモーターに与える電圧に比例します。従って負荷が一定であればPWMだけで速度制御が出来ますが、実際には負荷が変動しますので、負荷変動があっても回転速度が変わらないようにフィードバック制御を入れます。

モータドライバーにはRaspberry PiのGPIOが直接接続されており、このままではPWMはソフトウェア制御で行なわなければいけません。しかし、Raspberry Pi上で動作する周期起動ノードの場合、ジッタがあまり出ない実用的な周期は早くても10ms程度です。従って、まともにPWMをやろうとした場合には周期割り込みを使ったPWM出力用のドライバを作る必要があり面倒です。

ちょうどRaspberry Piからは1チャンネルだけハードウェアでPWMを出力している出力ピンがあります。回路図でENABLEA, ENABLEBにつながっているGPIO18がハードウェアPWMの出力ピンです。
また、TurtleRealでは1度に1自由度しか動かさないという特徴(「2軸車輪による位置・姿勢の変更」参照)がありますので、これを利用して、このPWM出力を使って2軸車輪に同時にPWMを行います。


フィードバック制御

申し訳ありません。工事中です。



ギアボックスバックラッシュ

ギアボックスバックラッシュ

今回使用したギアボックスには実測で出力軸に±3mm(6mm)のバックラッシュがあります。(バックラッシュは出力軸のガタとか遊びといわれるものです。)

このため停止位置精度を±3mmに入れるのは難くなります。
通常のサーボモーターを使った位置制御ではモーター軸に回転角を検出するエンコーダーが付いているため、ギアボックスの出力軸側にバックラッシュがある場合、このバックラッシュ分の補正は不可能です。
それに対してTurtleRealの場合は位置をマウスセンサから得ているので、工夫次第によっては停止位置精度を±3mmに入れられる可能性はあります。




inserted by FC2 system