ちょっと Tea Time!? DCモータのブレーキを考える。 2024.12.24

#オーディオネタではありません。あしからず。


今年はじめに完成したテニスマシンですが、完成したときは色々と公園で活用しましたが、
春のおとずれとともに鎮座してしまいました。なんせ、春休みは子供がでてくるし、
夏場は暑いし、秋らしい季節はほとんどなかったし、冬は寒いし(笑。
ほとんど動いていませんでしたが、久しぶりにバッテリをつないだら元気に動いてくれました。

手をいればければならないところは基本的には無いのですが、手を入れたいところは山ほどあります。
*表示器が見にくい!太陽光の下ではほぼ見えない。
*回転ローラを平坦に加工したい(現状は凸なので、ボールが正確に噛まないと、まっすぐ飛びません)。
*フレームを塗装したい(濡れると赤さびがでてきそう)。
*電子回路が剥き出しなので、ケースに入れたい(でないと錆びちゃいます)。
*回転モータのブレーキを加えたい(現状ではボールを打ち出さないと、なかなか回転数が落ちない)。
*等等

本当は年末モードで忙しいのだけど、おもわず現実逃避して、今しなくても大丈夫なことを
かんがえ出したりします。ああ〜悪い癖だなあ〜。


今年の初めに完成したテニスマシン。あまりつかっていないので埃が積もりだしています。

とりあえず、ハードを動かしだしたら時間がいくらあっても足りないので、机上で検討できるものを考えてみます。
ということでモータの駆動方法の検討です。

現状のDCモータの駆動法

現状の回路は、超シンプルにモータを電源のハイサイドに配置して、
NchのMOSFETでPWM制御しています。PWMの周期は1kHzです。
そのため、回転させるとピーという音がでます。できれば、20kHz以上に
したいところです。まあ、回っているのがわかるのでそれはそれでOKとします。
 あと、モータの回転はモータ起電力を計測していますが、モータの両端電圧
は測定が複雑になるので、単純にNMOSの出力電圧を計測して、元電圧からの
差を計算しています。そのため、元電圧が変化すると、計測誤差が発生してしまいます。


現状もモータ駆動回路。1kHzでのPWM制御制御です。モータ電圧検知はNMOS出力から逆算です。

そこでの回路案!

まず、モータの起電力が測定しやすいように、モータ自体をローサイドに配置します。
そのため、PchのMOSFETで駆動です。そして、モータのブレーキはモータ両端にNchのMOSFETを
配置してやります。下図のような回路です。


モータのドライブはPchMOSFETをつかい、ブレーキはNchMOSFETを使います。


上図の回路で、1kHz周期で10%のPWMでドライブした場合のSPICEです。ブレーキはつかっていません。
MOSFETゲートの入力容量のために、ON時間以上にモータに電流が流れていることがわかります。
これでは、PWM制御はむずかしそうです。というか、DUTYが40%越えると、実質100%になっちゃいそう!


PWMのパルス(緑)に比べて、モータ電流(青)の尾が長くなっています(R2=22kΩ)

改善のために、R2を小さくすればよさそうです。そこで1kΩにしてみました。
そうすると、尾の長さは20usほどに減りましたが、もうちょっと短くしたいところです。
というのもSPICEで用いたMOSFETの入力容量は高々60pF程度です。
実際につかう大電流のMOSFETだと入力容量は数100pFにはなるでしょうから、
もっと尾の長さが長くなる可能性が高いです。
しかしR2=1kΩだと制御電流は36mA流れます。ツエナー(D1)は30Vになっているので、
ここで1Wのピーク電力消費です。容量の大きなツエナーをつかわなければなりません。


R2を1kΩと小さくしました。でも、制御電流が無駄に大きくなってしまいます。


PWMのパルス(緑)に比べて、モータ電流(青)の尾がまだ約20usほど長くなっています(R2=1kΩ)

トライブ回路にバッファーを入れてみる

そこで、MOSFETの入力容量を早く引き抜くためにプッシュプルでのドライバを追加です。
単なるモータ駆動だけだけど、だんだん部品点数が増えてきます。
しかし、結果はよさそうです。これでいきましょう!

Pch-MOSFETのドライバにプッシュプル回路を追加です。これでMOSFETに溜まった電荷を早く抜きます。


PWMのパルス(緑)とモータ電流(青)はほぼ同期しました。

ちょっと実験してみるかな?

ちょうど手元にP-chのパワーMOSFETがあるので、実験してみることに。
ハードに手をだしたら時間がいくらあっても足りないのはわかっているのですが、
ここまでやったら止まりません(笑。

秋月で安価に手に入るPch-MOSFETってこれくらいかなあ〜。



入力容量でかいなあ〜3300oFもあります。

簡単にPICでPWM信号を生成して、ブレッドボードでテストです。

モータに繋いでテストです。


まずはドライブ側の回路だけ組んでいます。

さて、動かしてみましょう。最初はちょっと怖いのと、実験用電圧の最大値から24Vで実験です。
観測結果から、ドライブ信号の区間だけドレイン電圧が上がっていてます。すなわちモータには
パルス幅に等しい電圧が印加されていることが確認できました。SPICE通りですね。


PWM20%の場合。モータはゆっくりとしか回転しないのでモータモータ起電圧も低いです。


PWM40%。だんだんモータ起電圧があがってきました。


PWM60%


PWM80%。ここまでPWM%があがると、電源電圧に近い
モータ起電圧が発生しています。

やべ!
調子にのってモータ回していたらMOSFET(2SJ334)がアッチチです。
ON抵抗が30mΩほどありますから、平均PWM50%とすると、約6Aの電流ですから、
消費電力は180mWほど発生します。小さくても放熱板は必要な感じです。

ブレーキテストは
夜も更けてきたので、明日にしましょう。

電源があ〜、PchMOSFETがあ〜!!! 2024.12.25

さて、ブレーキテストです。最初は直接MOSFETのみでブレーキをかけるのが心配だったので、
抵抗(R5、5Ω)を入れておきました。モータを回したあとで、PWM50%でブレーキをかけます。

で、ブレーキが作動した瞬間に実験用電源の電圧ならびに電流が急にあがり、
保護回路が動作してシャットダウンしてしまいました。

まずは、これでブレーキテストです。


一番右端がブレーキ用のMOSFETです(100V80Aの低on抵抗品)

何が起こった?どうやら電源電圧が急激に上がったことを考えると、モータにブレーキパルスをONしたあと、
OFFした瞬間に逆起電力が発生して、電流が回路を遡上してしまったようです。
PchMOSFETの内部にはD→Sにダイオードが入っているので、しかたないようです。
しかし、実験用電源は保護回路があったのでシャットダウンだけで済みましたが、
PchMOSFET(2SJ334)の調子がおかしいです。再度、回したときのモータ音が違います。
こりゃ、MOSFETも逝かれたようです。


ブレーキをOFFした瞬間にモータぼ逆電圧が電源まで達して、電源の保護回路が動作したようです。

対策として、モータの駆動MOSFETの前にダイオードを入れました。これで、モータの逆電圧が遡上しないようにします。
そしてPchMOSFETも交換して再テスト。

今度はうまく行きました!

最終的に、下記の位置にD4を挿入しました。そして、モータの電圧観測のためのフィルターを追加です。
これで、フルブレーキをかけた場合に、高速に回転しているモータも、キュっという音とともにおよそ0.5秒以内で停止です。
PWM50%でブレーキをかけると、やや緩やかに減速します。このときのモータ電圧を観測すると、
逆起電力は約110Vくらい発生しているようです。こりゃ、使う素子は色々と、耐圧を考える必要がありそうです。

最終的な回路です。


モータブレーキのOFF直後の逆起電圧は約110Vでした。

とりあえず、ブレーキ回路はこれでできることがわかりました。次は一定回転のための制御だなあ〜。

(とりあえず、今回はおしまい)