DCモータのマイコンPWM出力による回転速度制御(オープンループ制御)

レゴ®マインドストームEV3のLモータを使って、STM32Nucleoボードにより実際にモータを動作させてみます。EV3のモータにはエンコーダが内蔵していますので速度のモニターをするのみならず、フィードバックさせることでより高度な運転ができるようになります。

まず、マイコンを使ったモーションコントロールの手始めとしてエンコーダからのフィードバックを使わないPWM信号によるオープン制御をしてみたいと思います。

実機で使うモータモジュール

めかのとろ

マイコンで実現するフィードバック制御のための基礎知識【応用編】でDCモータの開ループ特性について解説しました。ここではマイコンのPWM出力を利用した電圧制御による速度制御について実機を使って確認します。

めかのとろ

DCモータは無負荷という条件付きではありますが端子電圧を調整することで回転速度もそれに比例して調整できます。そこで、端子電圧にPWMで設定したパルス状電圧を与えて回転させてみることにします。

めかのとろ

実機にはレゴ®マインドストームEV3のLモータを使用します。このモータには多段のギアが組み込まれていてギア比は48:1、エンコーダは負荷側に装着されていて互いに1/4周期ずれたA相、B相のパルスを出力します。各相パルスの実測値分解能は180P/Rです。つまり1回転あたり180パルスが出力されます。負荷側の定格回転数は160-170r/minとなっています。

めかのとろ

このモータモジュールを使うにあたって、モータ単体のものでなくギアも含めた一体のものとして特性を調べることにします。つまり、入力はモータの端子電圧出力は負荷側の回転速度となります。

レゴ®マインドストーム EV3 Lモータ

マイコンによるモータドライブ

めかのとろ

モータは誘導性負荷の典型的なもので、電力も大きく、マイコン出力を直接つないで運転させることはできません。そこで、マイコン用の電源とは別途のモータドライブ用電源VMを用意し、トランジスタなどの増幅素子を介してマイコンからの運転信号でドライブします。

めかのとろ

一から始めてトランジスタ等を組み合わせてドライブ回路を構成することもありますが、ちょっとした用途ではモータを運転するための専用のICを使用することをおすすめします。必要な機能が内蔵されていてサイズは小さい割にドライブの容量が大きく価格も低いためです。

めかのとろ

これはモータドライバと呼ばれる一種のパワーアンプです。 詳細は割愛しますが、ドライバにはトランジスタ、FET等のパワーエレクトロニクス回路が内蔵されていてマイコンからの信号によりモータへの任意の電圧や電流を調整できるものです。ドライバの種類により電圧制御タイプ電流制御タイプがあります。 今回使用するTB6612FNGは電圧制御タイプです。

電圧制御型ドライバTB6612FNG
めかのとろ

モータドライバTB6612FNGはドライバに接続したモータ用電源VMをマイコンから与えたPWMパルスのデューティ比率に応じてモータ端子電圧とするICです。モータの回転方向はIN1とIN2を組み合わせて切り替えます。

めかのとろ

DCモータはブラシを内蔵しているために整流子との間でノイズが発生し、マイコンに影響を及ぼします。 そこで、通常はモータ端子にセラミックコンデンサ(100nF)をつないでおきます。小型モータであればこれでよいと思います。今回使用するTB6612FNGのドライバモジュールはコンデンサを内蔵しています。

マイコンによるモータドライブ全体図

モータドライバのPWMスイッチング周波数

めかのとろ

マイコンからのPWM出力によりモータ端子電圧はパルス状になりON期間に駆動トルクによるドライブ運転OFF期間に逆起電力によるブレーキがかかる運転となります。端子電圧がパルス状でもモータにはインダクタンス成分がありますので電流は電圧の1次遅れとなり連続になります。

めかのとろ

電流の変化率はモータのインダクタンスおよび抵抗値成分で決まる電気的時定数L/Rによりますが、PWMのスイッチング周波数が低いと電圧オフ期間(ブレーキ運転時)に電流は低下しすぎてしまい、モータ軸慣性があるとはいえ発生トルクに脈動が生じることになり、逆に周波数が高いと電流はなめらかになりますがノイズやスイッチング損失が大きくなるのでやみくもに高くもできません。

めかのとろ

一般にモータ電気的時定数に対して10倍程度のスイッチング周波数にすればよいといわれています。 とはいえ、電気的時定数が不明であるため、まずは10kHzあたりのPWMスイッチング周波数で試してみようとおもいます。

PWMによるモータ端子電圧とモータ電流
めかのとろ

下表はドライバ仕様書に記載の運転モードについてです。入力IN1とIN2の組み合わせでモータ回転方向を指定したり、俗に言うRUN信号の機能として使用します。PWMは信号のパターンがモータ端子電圧になるものです。ON時に駆動して、OFF時にモータからの逆起電力が発生してブレーキがかかることになります。PWM入力はマイコンのPWMタイマ出力に接続します。

ドライバ TB6612FNG 運転モード

4象限チョッパ

めかのとろ

電動モータのドライブ機器でインバータはよく耳にすることがあると思います。これもパワーエレクトロニクス搭載のモータドライブ機器ですが、インバータは3相誘導モータ用交流出力の周波数を変更することでモータ速度を任意に変更する機器です。

コラム

インバータ回路は電源回路のダイオードブリッジや平滑コンデンサなどで直流化した電源を再び交流に変換する回路(逆変換回路)のことで、この逆の交流から直流への変換回路はコンバータ回路と呼ばれています。もっと広い変換器としての意味で直流間電圧変換のDC-DCコンバータや交流間変換のAC-ACコンバータなどと呼ばれる製品もあります。

めかのとろ

DCモータのドライブ回路はこのインバータ出力3相のうち単相部分を使ったものに相当し、4象限チョッパ回路とも呼ばれるものです。 モータ回転の正転逆転、発生トルクの正と負を4通り組み合わせた運転ができるのことから4象限回路といいます。ドライブ運転とは回転方向にトルクを発生して駆動させる通常運転のことで、ブレーキ運転回転方向とは逆のトルク、つまり逆起電力を発生させながらブレーキをかける運転のことです。

めかのとろ

モータドライバTB6612FNG ではドライバへの入力IN1とIN2の組み合わせで第1象限から第4象限の運転を切り替えます。

 4象限運転
4象限運転
めかのとろ

チョッパ回路は下図の4つのトランジスタなどのパワースイッチング素子(Tr1,Tr2,Tr3,Tr4)で構成されています。PWMのパターンに応じてこれらのスイッチング素子のON・OFFで組み合わせますが、スイッチ切り替えの過渡期に組み合わせが重なって同時にONとなり短絡になってしまうのを防止するためにデッドタイムというものを設けています。

4象限チョッパ回路
めかのとろ

ドライバTB6612FNGはブレーキ運転時にコイルで発生した電力を電源に返す回生は行われませんが、電流制御タイプTB67H450FNGでは回生をおこなっています。ドライバによりスイッチング素子の組み合わせは違うようです。

正転ドライブ
正転ブレーキ
逆転ドライブ
逆転ブレーキ

ドライバTB6612FNGの4象限スイッチングパターン

コラム

ドライバを自作する場合はデッドタイムも考慮してハードウェアで回路を組む場合もありますが、STM32マイコンの高機能タイマ(Advanced-control timer TIM1やTIM8)にはこのデッドタイム付きPWMを発生する機能が含まれています

マイコンを使用したモータドライブ回路

めかのとろ

VR(可変抵抗)からのアナログ入力信号を速度指令信号として与えます。モータドライバへのPWMパルスデューティ比率はアナログ入力値と連動させて速度を変化させるプログラムです。

めかのとろ

今回はDCモータのオープンループ制御ですので速度指令値に相当するPWMデューティ比率を変化させてモータ回転速度が変化する様子を確認してみます。

めかのとろ

エンコーダ、シリアル通信はモニタ用です。

入力側配線図
めかのとろ

出力側にはドライバへモータ電圧指令としてのPWMタイマ出力を与えます。ドライバのIN1/IN2には運転モードにあったロジックの組み合わせをプログラムで指定します。

めかのとろ

USER SWを押すたびに正転(CW)、ブレーキ停止、逆転(CCW)、 ブレーキ停止のサイクルを繰り返すプログラムとしています。

めかのとろ

ドライバ入力は内部でプルダウンとなっていて6Vまでのロジック電圧入力仕様なのでマイコンはプッシュプル出力とします。

出力側配線図
めかのとろ

EV3Lモータのコネクタ仕様です。エンコーダからは電圧パルスが出力されます。

コネクタ仕様
コラム

いわゆるPWM制御によるモータ駆動電圧制御型ドライバを使用するのですが、PWMスイッチング周波数の決め方もポイントの一つです。これはモータの電気的時定数にも関わっていて今回は10kHzとしましたが、タイマのCLKを1MHzに設定しているのでPWMの分解能は10kHz/1MHz=1/100です。電流制御型ドライバの場合はモータの電気時定数は考慮せずとも直接トルクに比例した電流を高い分解能で指令値にできるので制御理論の適用には有利です。

実際のうごき

めかのとろ

マイコンボードNucleo-F103RBでEV3Lモータを動かす全容です。 レゴモータのソケット部は特殊なので汎用の電話用モジュラーコードに変換しました。

試験用実機
めかのとろ

PWM出力のduty比とエンコーダによるモータ速度をシリアル通信モニターにてPCに表示します。モータ電源VMが7.2Vの場合、ボリュームを調整してPWMデューティ比を0から100まで変化させると 速度は比率にほぼ比例して0から約40まで変化します。

めかのとろ

速度40とは100msサイクル内で計測したエンコーダパルス数なので1秒当たり400パルス、つまり400/180回転に相当します。1分当たりだと約133回転です。規定の回転数(最大)が160-170rpmだそうですので モータ電源VM を最大の9Vにするとほぼ一致します。

シリアルモニター デューティ比50%時の速度
めかのとろ

無負荷運転時の入力指令値に対する速度です。端子電圧が極めて小さい領域(duty比0-5%)ではモータ軸、ギアの摩擦などの影響で起動しませんが、一度回転始めると出力速度はデューティ比つまり端子電圧にほぼ比例しています。

PWMduty-速度特性
めかのとろ

PWMスイッチング周波数を5kHz, 20kHzおよび40kHzに変更してドライブさせてみたのですが、気になるトルクの脈動はなく状態の違いはみられませんでしたので、10kHzのままでいいかと思います。機会があれば電流波形で確認してみたいと思います。

めかのとろ

DCモータのオープンループ制御なので、無負荷であれば回転速度は端子電圧に比例しているのですが少しでも負荷をかけると速度は簡単に変動します。負荷によらず安定した速度を保つためにはセンサーによる速度フィードバック制御が必要です。次回はフィードバックループで構成した速度制御システムを実機にて検証したいと思います。

Follow me!