LTspiceでモータードライバーの動作をシミュレーションしてみる

LTspice

関連記事 第1回 抵抗とコイルの直列接続 電流値をエクセルで計算してグラフ化してみる
関連記事 第2回 抵抗とコイルの直列接続 逆起電力をエクセルで計算してグラフ化してみる
関連記事 LTspice

DE0-NanoのFPGAを使ってモーターの制御をしたいと思っていますが、その前にLTspiceを使ってモータードライバーがどんな動きをしているのかを確認しておきたいと思います。

スポンサーリンク

モータードライバー

モータードライバーは、秋月電子で販売していた東芝製TB6643KQのデーターシートを参考にさせてもらいました。
http://akizukidenshi.com/catalog/g/gI-07688/

モータードライバーのインターフェースは上図の感じになっています。

電源とGND、モーターを制御するIN1とIN2、モーターを駆動するOUT1とOUT2の端子があります。

モータードライバーの中は上図の感じで、P-ch MOSFET(M1とM2:ハイサイド側)とN-ch MOSFET(M3とM4:ローサイド側)が2個づつで、合計4個のMOSFETでモーターを駆動します。

MOSFETを使うのか、P-chとN-chのどちらを使うのか、などはそれぞれのモータードライバーで違うと思います。

それと、このような構成はHブリッジとか、フルブリッジと呼ばれる構成になるのかなと。

MOSFET ON/OFF制御回路

4個のMOSFETは、IN1とIN2の2本の信号を使って制御します。

以下は、TB6643KQのデーターシートから抜粋した入出力ファンクション表です。

IN1とIN2の制御で、MOSFETをON/OFFして、OUT1とOUT2の出力が変化してモーターを駆動します。

ここで正転と逆転は以下のように定義しておきます。
IN1=L、IN2=Hの時を逆転
IN1=H、IN2=Lの時を正転

IN1=H、IN2=Hのショートブレーキモードは、OUT1もOUT2もLow出力になっています。
つまり、ショートブレーキモードは、ハイサイド側のM1とM2のMOSFETがOFFで、ローサイド側のM3とM4のMOSFETがON状態です。

IN1=L、IN2=Lのストップモードは、OUT1もOUT2もハイインピーダンス出力になっています。
つまり、4個のMOSFETがすべてOFF状態です。

さて、MOSFETのON/OFF制御回路のシミュレーションモデルは以下のようにしました。

電圧源V2がIN1信号を出力し、V3がIN2信号を出力します。
この2本の信号の組み合わせで4個のMOSFETを制御します。

後のデットタイムの項目で書きますが、これはかなり簡略化した回路で、このまま使うと瞬間的に電源とGNDがショートする時間が発生して貫通電流が流れるという問題があります。

抵抗負荷

ではシミュレーションを始めたいと思いますが、まずはモーターではなく、抵抗で試してみたいと思います。

シミュレーション回路は以下で、モーターの代わりに100Ωの抵抗を接続しました。

下図がシミュレーション結果です。

IN1とIN2、OUT1とOUT2の状態は、上に示したファンクション表と一致していそうです。

抵抗に流れてる負荷電流は約50mAですが、電源電圧は5V、抵抗値は100Ωなので、電流値も問題なさそうです。

次に、各MOSFETのゲート電圧を確認してみます。

M1とM2はP-ch MOSFETなので、ゲート電圧がHighレベルの時がOFFで、Lowレベル時がONです。

M3とM4はN-ch MOSFETなので、ゲート電圧がHighレベルの時がONで、Lowレベル時がOFFです。

こちらの波形も問題なさそうです。

次は、各MOSFETのドレインーソース電流です。

こちらの波形も問題なさそうです。

結局のところ、抵抗負荷の場合には、ショートブレーキとストップモードの時には抵抗に電流は流れません

以下の図のように、
正転モードの時は赤線のルートでM1 -> 抵抗 -> M4に電流が流れ
逆転モードの時は緑線のルートでM2 -> 抵抗 -> M3に電流が流れる、
ということが確認できました。

モーター(コイル)負荷

抵抗負荷の次はモーターでシミュレーションしたいと思いますが、ここではコイルで代用したいと思います。

モーターインダクタンスはどのくらいなのかわからなかったので、1mHとしました。あと、直流抵抗を1Ωと設定しました。

下図がシミュレーション用の回路です。

これでシミュレーションを実行しますが、IN信号には10kHz、50%DutyのPWMを入力したいと思います。

ですので、モードとしては、50usごとに正転モードとショートブレーキモードが切り替わります。

PWM駆動の後は、ショートブレーキモードで動作を固定させます。

下図がIN1とIN2、OUT1とOUT2、コイルに流れる負荷電流のシミュレーション結果です。

下図は、正転モード⇔ショートブレーキモード切り替わりの拡大図です。

負荷電流は、正転モードで増加し、ショートブレーキモードで減少していってます。これを繰り返しながら、トータルとしては負荷電流が増加していきました。そして、最終的には約2.5Aに収束していきました。

正転モードでは、M1とM4がONするので、電流が増加していきます(駆動電流)。

これがショートブレーキモードになると、M1とM2がOFF、M3とM4がONして、コイルに溜まっているエネルギーで還流電流が流れている状態なので、徐々に電流値が減っていきます(還流電流)。

この駆動電流と還流電流の流れは、下図のようになります。

赤線が正転モード時の駆動電流で、緑線がショートブレーキモード時の還流電流の流れです。

OUT2の電圧値は、負荷電流と波形が同じですが、
OUT2電圧 = 負荷電流 × M4のON抵抗
となるためです。

最後に、正転モード⇔ショートブレーキモードからのストップモードをシミュレーションしてみました。

先ほどの正転モード⇔ショートブレーキモードからのショートブレーキモード固定と比較すると、負荷電流が0Aに収束するまでの時間が短くなっています。

あと、OUT1とOUT2の端子電圧が発振してしまっていますね。

下図はストップモードになるタイミングを拡大した図で、IN1とIN2、M2とM3のドレインーソース電流、負荷電流を示しています。

M2とM3のドレインーソース電流、負荷電流が同じ電流値になっています。

ストップモードは、4個のMOSFETがすべてOFF状態なので、コイルに溜まったエネルギーで、M2とM3の寄生ダイオード経由で還流電流が流れているためだと思います。

図にすると以下のような感じです。寄生ダイオードは図示されていませんが。

赤線が正転モード、緑線がショートブレーキモードで、これがストップモードになると黄色線の経路になります。

ストップモードになると寄生ダイオードを流れるので、消費電力が大きくなり、それで負荷電流が0Aになるまでの時間が短くなったのだと思います。

正転モードからの逆転モード

正転モードから逆転モードのシミュレーションもやってみました。

負荷電流が、約2.5Aの正電流から負電流に切り替わる様子がわかりました。

デットタイム

いくつかの条件でシミュレーションしてきましたが、このシミュレーションに含まれていないのがデットタイムの設定です。

デットタイムは、例えばM1とM3が同時にONすると、電源とGNDがショート状態になり大きな貫通電流が流れてしまうので、同時ONを避けるための時間です。

今回のシミュレーションでは、この部分が波形に示されていませんでした。

これについては、TB6643KQのデータシートの6.PWM制御機能に詳しく書かれているので、こちらを参照ください。

まとめ

やっぱりコイル負荷は逆起電力が発生するので、制御が複雑です。

使い方を間違えると、部品を壊しそうです。

それもあってTB6643KQにも保護回路がいくつか入ってます。

ただ、過電流保護に関しては、以下の記載がデータシートにあります。

動作した場合、絶対大定格電流を超えています。あくまでも補助的な回路であります。天絡、地絡、負 荷短絡等の過電流からいかなる場合でも IC を保護するというものではありません。

というわけで、100%保護してくれるわけではないようです。

モータードライバーを使う際はいろいろ注意が必要そうです。

関連記事 第1回 抵抗とコイルの直列接続 電流値をエクセルで計算してグラフ化してみる
関連記事 第2回 抵抗とコイルの直列接続 逆起電力をエクセルで計算してグラフ化してみる
関連記事 LTspice

タイトルとURLをコピーしました