ミニグラインダー(DCブラシモーター)の速度制御コントローラー
◆まえがき
DCブラシモーターを使ったミニグラインダー(リューター)の速度制御が上手く行くようになったのでその内容を紹介します。
いつもだったら、開発の経緯を順に記事にして行くのですが、今回はいきなり(ほぼ)完成状態の回路とソフトの紹介から入ります。なお、細かい話は後日書いて行きます。
・ブラシモーターを使ったツール
今回はこの写真の上側のミニグラインダー(ミニリューター)を制御してみます。ちなみにこれ、DC16Vで27000rpmで廻ります。
・AliExpressのページ
この商品のAliExpressのページ。
DIN-3ピンなどもありますが、普通の充電コネク付きの物を買いました。
なお、コントローラー付きが3000円くらいで売られていますが、そのコントローラーが無駄に大きいので買う気がしませんでした。たぶんネイルサロンなどで立派な道具を使ってる感じになって良いのでしょう。
◆背景と原理
世の中、ブラシレスDCモーターが旬ですが、小さなモーターではDCブラシモーター(整流子モーター)もまだまだ使われています。模型に使われているようなDCブラシモーターは、レーシングエンジンのように高回転でパワーが出ますが、電圧を絞って回転数を落とすと、からっきしパワーが出なくなります。
電圧を絞ると電流も減ってトルクが出なくなる訳です。でも、電流を増やせば回転数が上がってしまって同じ回転数を維持することは出来ません。だったら回転数やローターの位置を検出してフィードバック制御すれば良いのですが、それをやるための仕掛けが大掛かりになってしまいます。ちなみにDCサーボモーターはそういうことをやっています。
普通のDCブラシモーター単体で回転数を測定出来れば仕掛けが大幅に簡単になりますが、その方法として回転子の誘導電圧を測定する方法があります。モーターを外から回してやれば発電機になりますがまさにその現象を利用します。具体的には、モーターの電源供給をON/OFF繰り返しで行い、OFFにした期間に電圧を測れば回転数を知ることが出来ます。
回転数さえ判れば後はフィードバック制御するだけなので、マイコンを使えば回転数一定の運転が可能になります。
以下、実際に実験を行った内容を紹介します。
◆全体
左から、Arduino NANOを使った制御回路、DCモーター(ミニグラインダー)、電源アダプタ(16V / 2.5A)です。
◆回路図
可変抵抗にはAカーブの物を使うと低速側の設定が楽になります。
モーター電圧が5Vなら回路は大幅に簡単になります。
・ブレッドボード
◆プログラム
20230912_MiniGrinderControllerV1.txt (BOM付きUTF-8)
解説が必要な個所がいっぱいあるので、ポイントだけ書くと、
1. パワー一定と回転数一定モードの切り替え付き
2. PWMは timer1 で発生させ、周波数は5kHz。1周期の間を400ステップで刻んでPWM波形を発生。
3. 誘導電圧測定のためにPWMを停止する操作は、割り込みルーチン内のPWM波数カウンタで実施。
4. フィードバック制御はPID
◆動作波形
・全体
上の波形が制御タイミングのインデックス信号で、周期40msで制御を行っています。
下がモーターの電圧波形で振幅は16V。サイクルの先頭の1.8msの間で誘導電圧測定を行い、残りの期間は指定比率のPWM出力です。
・先頭部拡大
上側のインデックス信号がHighになった後で1100μsの間Lowになっていますが、この期間で誘導電圧を測定しています。
下がモーター端子電圧で、PWMを停止しても短時間はコイルからの逆起電力の影響で誘導電圧が現れません。低回転させた場合には逆起電力の影響が長く続き、その時間は500μsにもなります。そこで誘導電圧の測定はそういう過渡現象が収まってから行っています。
誘導電圧にはこの写真のようにリップルがあります。交流発電機の出力を整流子でバサバサと切り替えているようなものなので、このようなリップルが出るのは原理上避けられないと思います。単純にADコンバーターで瞬間の値を測定すると測定誤差が大きくなってしまうので、測定期間の間で64回測定を行ってその平均値を採用するようにしています。更に、過去8回の測定値の移動平均を使ってフィードバック制御の入力に使っています。
◆動画
Xに投稿した動いている様子。
ミニグラインダーの制御ソフトを改良してタクトスイッチで操作出来るようにした。もちろん定パワーと定回転数モードの切り替えが可能で、画面の→の値をボリュームで設定する方式。
— ラジオペンチ (@radiopench1) September 12, 2023
これでほぼ完成したので、そろそろケースに入れる作業を始めるかな、 pic.twitter.com/rtlYsxVfQf
◆まとめ
なかなか良い感じで動いています。回転数表示があるのは便利です。
一定回転数モードでは、負荷が掛かった時に回転数を維持しようとしてパワーを上げて来るので、加工速度が落ちなくて使い易いです。特に低回転で使う時に効果が大きいです。
ちなみに普通のコントローラーで低回転にすると、トルクが小さくなるので簡単に回転停止してしまいます。例えば、フェルトに研磨剤を付けてバフ研磨する場合などは、低速で廻さないと周囲に研磨剤が飛んでえらいことになりますが、そういう時でも定速回転モードでは安定した作業が出来て使い易いと思います。
この記事ではミニグラインダーの制御に使いましたが、これ以外にもいろいろな用途がありそうです。思い付くところでは、鉄道模型のモーター制御に使うと面白そうです。低速でもトルクが出るので上り坂をゆっくりと登らせるなんて芸当が出来そうです。あと、実際の車速が判るのも楽しいかも知れません。と書いたけど実は鉄道模型は持ってません。
◆参考
私のツイッターへの書き込みに頂いた、まるは maruha @maruhapower さんの返信です。同じようなことを既にやられていました。