DCモータの定回転数制御


【概要】

 通常のブラシDCモータ(マブチモータ)を一定回転数で制御する実験です。
モータが回転しているとき発生する起電力(BackEMF)を使ってフィードバック
することでPWM制御のデューティ比を変えて、一定回転数の制御をします。

 制御結果は、一定回転の安定度としては、それほど良くありませんが、遅い
回転数でDCモータを回したいときには、トルクを落とさずに回せますので便利です。
つまり負荷がかかってモータが遅くなるとPWMディーティを上げて回転数を上げ
ようとしますから、トルクも上がります。

【構成と回路図】

 構成は至って簡単で、CCPを内蔵しているPIC12F683を使ってDCモータの
PWM制御をします。出力には大電流が流せるようにMOSFETを追加します。
このモータの+極からアナログ入力端子GP1に接続しています。
モータの速度を可変するためGP0に可変抵抗を接続しています。
これで可変抵抗の電圧に比例させてモータの回転数を制御することにします。
SW1はこのモータの制御モードを切り替えるためのスイッチで、回転数のフィード
バック制御をする、しないを切り替えます。




 これをベースにして作成した回路図が下図となります。
クロック発振には、PWMの周期周波数をできるだけ高くしたいので、最高の20MHz
とし、セラミック振動子を使いました。
モータの起電力計測には単純にRCのローパスフィルタを挿入しています。
モータ出力にはPWMのオフ期間に、逆起電力によるマイナス電圧が発生しますので、
ダイオードD2でこれを吸収しています。
電源はリチウムイオンバッテリの3.7Vか、DCアダプタの5Vを使うものとします。
データシート上では、20MHzの発振には5Vが必要なのですが、3.7Vでも問題なく
発振します。




【ハードウェア製作】

 製作には基板が必要ですが、プリント基板を作るほどでも無いので、EジスPenで
作成しました。簡単にお絵かきで作成できるのでこういうときには便利です。
 できあがった基板は写真のようになります。


右下がモータ制御用MOSFETとダイオード等
上の可変抵抗が速度設定用
左下のスイッチがモード変更用
モータ電流が流れるパターンは幅広くした。


パターン図は下図となっています。




モータを固定する必要がありますので、タミヤのプレートを使って写真のように
実装しました。


モータは固定用ラグを使って固定しています


モータには、マブチのRE-260を使いましたが、RA380の方が制御しやすいでしょう。
RE-260の仕様は下記となっています。

   限界電圧   : 1.5V〜3.0V
   適正電圧   : 3.0V
   適正負荷   : 0.98mN・m
   無負荷回転数: 11,600rpm
   適正負荷時
    回転数   : 8,900rpm
    消費電流  : 700mA


【プログラム製作】

 このプログラムはCCS社のC言語で作成しました。
実験レベルでの動作確認用なので、パラメータを変更すると、いろいろな
パラメータでの動作変化の確認ができます。

まず下記リストが宣言部、タイマ1割り込み処理、メイン初期設定部の部分です。
データはA/DコンバータもPWMも10ビットで扱いますのですべてlong型とします。
タイマ1の割り込みでは、可変抵抗の値を読みとって速度設定データとします。
タイマ1の割り込みは約104msec周期で発生します。

メインの初期設定部では、タイマ1、A/Dコンバータ、CCP、タイマ2の初期設定
を行ったあと、変数の初期値を設定しています。
DutyとSpeedは初期値としてフルスケールの1/2の値としていいます。





次にメインループの部分で、BackEMFによる制御モードの部分と、単純に可変抵抗の
値をデューティ値にするだけのモードの2つから構成されます。
 BackEMFモードでは、一旦PWMを停止してオフとし、このときモータが発電機として
動作しますから、電圧が発生します。100usec程度待ってから、この電圧をA/Dコンバータで
読み込んでBackEMF値とします。
モータには雑音など外乱が多いので、Max回(10回)読み込んで平均を取っています。
そしてこの平均値と速度設定値Speedとを比較して大小によりDutyを増減して
速度を制御します。この制御を5msec間隔で実行しています。
このMax値や制御間隔を変えるとモータの制御応答がいろいろ変わります。
(05/10/6)



実際のモータ出力端子をオシロスコープで観測すると下記のようになっています。
下図はPWMが停止して、BackEMFを計測している部分になります。A/D変換を10回
連続で行うので、400μsec必要とし、最初に100μsec待っていますから、合計で
500μsec以上PWMが停止することになります。
この時間の間はモータは慣性で回っているので、発電をしますから、その電圧を測定
し、一定電圧になるように制御することになります。






  ★★ プログラムダウンロード





  目次ページに戻る