【モータ制御】三相モータドライバ回路入門【三相フルブリッジインバータ】

モータ制御をする上で欠かすことが出来ないハードウェアの知識として、三相モータドライバの回路の概要を説明します

これからモータ制御に挑戦する人にはもちろん、既にモータ制御に取り組んでいる方の参考になれば幸いです

一般的な三相モータドライバの回路例

一般的な三相モータドライバの回路例(回路ブロック図)です

今回の例は非絶縁のインバータで、3シャントによる電流検出・過電流検出を行う方式としております

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0V
Text is not SVG – cannot display

三相フルブリッジ回路

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0V三相フルブリッジ回路
Text is not SVG – cannot display

三相フルブリッジ回路は、モータに任意の電圧を印加するための電圧可変回路です

今回の場合は三相モータなので、三つの電圧可変回路にて構成されます

それぞれの電圧可変回路のことをレグと呼び、レグの上下のスイッチング素子をアームと呼びます

また、レグの入力電圧のことをDCリンク電圧母線電圧などと呼びます

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0VアームレグDCリンク電圧
Text is not SVG – cannot display

三相フルブリッジ回路はスイッチング素子(IGBTやMOS-FETなど)とそれと逆並列に接続された循環ダイオードにより構成されるアームを上下に持つレグが3つ並列に接続された6アーム/3レグの構成となります

レグはCMOSロジックと同様、上アームONの時はHigh下アームONの時はLow上下アームOFFのときはHi-Zといったトライステート出力となりますが、スイッチングすることでDCリンク電圧範囲内の任意の電圧値に制御することが出来ます(上下アームONは短絡状態となるためNG)

実際にはマイコンなどのコントローラより出力されるPWM信号で各アームをスイッチングします

+Vdc0V出力はHigh(+Vdc)+Vdc0V出力はLow(0V)+Vdc0V出力はHi-Z+Vdc0V短絡(NG)①上アームON②下アームON③上下アームOFF④上下アームON(禁止)+Vdc0V⑤PWMスイッチング(0.0<α<1.0)ON Duty: α×100 %ON Duty: (1.0-α)×100 %出力はVdc×α

デッドタイムについて

上下アームONは短絡によってスイッチング素子や電源を破壊するだけではなく、最悪の場合マイコンやその他制御回路すらも破壊してしまう可能性があります

特に上下アームがスイッチングする際に回路の遅れ要素などで同時ONしてしまう可能性があり、それを防止するために上下アーム共にOFFとするデッドタイムを設けます

ただし、上下アーム短絡はノイズなどが原因で発生してしまう可能性もあるため、基板パターンのレイアウトやノイズ対策部品での誤動作対策や、万が一発生してしまった場合に備えた保護回路は必須となります

上アームON信号下アームON信号①デッドタイムがない場合②デッドタイムがある場合上アームON信号下アームON信号デッドタイム上下アームONの可能性あり

ゲートドライバ

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0Vゲートドライバ
Text is not SVG – cannot display

ゲートドライバは、マイコンなどのコントローラのPWM信号(3.3V、5V)をIGBTやMOS-FETなどのスイッチング素子が駆動出来るレベル(10~15V)に変換するレベルシフト回路です

スイッチング素子によってはマイコンで直接駆動出来るものもありますが、一般的にはゲートドライバを用いて駆動します

オリジナルのゲートドライバの回路を自分で組むことも出来ますが、各社ゲートドライバICとしてラインナップがあったり、三相フルブリッジ回路と共に1パッケージにモジュール化されている製品(IPM:Inteligent Power Module)もあるのでそれらを使用することが一般的だと思います

各社ゲートドライバ(IPM)の製品ページリンク

電流検出回路(3シャント)

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0V電流検出回路(3シャント)
Text is not SVG – cannot display

電流検出回路は各レグの出力電流(モータ電流)を検出する回路です

モータ制御の方式にもよりますが、モータ電流をフィードバック制御する場合やモータ電流をモニタして保護機能を構成する場合などは必須となります

電流検出回路の構成には複数種類がありますが、今回の例では3シャント電流検出回路を採用しております

3シャント電流検出回路は、各レグの下アームに電流検出用のシャント抵抗を接続し、シャント抵抗の両端子間の電圧を測定することで電流を検出する方式です

実際にはシャント抵抗の両端子間電圧をオペアンプで増幅してマイコンなどのコントローラのA/Dポートに入力します

また、電流は双方向に流れるため、双方向の検出が出来るようにオペアンプの回路を構成する必要があります

VccRsR1R2R3R4VccR5R6IsVo
Vo = R3/R1×Rs×Is+Vcc/2
(R1=R2,R3=R4,R5=R6)
Vo = R3/R1×Rs×Is+Vcc/2…
オペアンプ回路例
Text is not SVG – cannot display

3シャント電流検出回路の注意点として、下アームに電流が流れない期間が存在するため、下アームに電流が流れているタイミングを狙ってサンプリングする必要があります

基本的には下アームが全てONのタイミング(モータ電流還流時)でサンプリングします

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0VIuIvIw下アームが全てONのタイミングでは全ての下アームにモータ還流電流が流れる(左図はIu>0、Iv<0、Iw<0の場合の電流の向き)
Text is not SVG – cannot display
【参考】短いパルス幅でも三相電流を検出する方法

キルヒホッフの法則より、三相フルブリッジ回路の出力電流の総和はゼロになるため、3相の内2相分の電流を検出すれば残りの相の電流は算出で求めることが出来ます(2シャント電流検出)

よって、下アームがONしている期間が短くて正しい電流値の検出が難しい場合は、他の2相の検出結果から算出することで正しい電流値を検出することが出来ます

過電流検出回路

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0V過電流検出回路(3シャント)
Text is not SVG – cannot display

過電流検出回路はモータ側の異常や上下アーム短絡などによって発生する過電流を検出する回路です

こちらも様々な検出方法がありますが、3シャント電流検出回路の場合はそれぞれのシャント抵抗に対してコンパレータで検出するのが一般的です

コンパレータの出力信号はFo信号Brk信号と通称されることがあります

これらの信号が出力されたら出来る限り速く三相フルブリッジ回路の全てのアームをOFFに駆動する必要があります

モータ制御用のマイコンの場合は専用の端子機能が設けられているので、その端子に接続することで即座にPWM信号を停止させることが出来ます(STM32マイコンの場合BKIN端子、RXマイコンの場合POE端子)

また、ゲートドライバにも同様の端子機能が設けられている場合もあります

DCリンク電圧検出回路

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0VDCリンク電圧検出回路
Text is not SVG – cannot display

レグに入力されるDCリンク電圧をマイコンで検出するための回路です

基本的にはDCリンク電圧のレベルをマイコンで検出出来るレベルに減衰させる抵抗分圧回路などのアッテネータとなります

DCリンク電圧は、マイコンで各アームのON Dutyを計算する際に使用したり、モータからの回生電力で過電圧になった際の保護機能などに使用されます

制御回路(マイコン)

M
MCU
MCU
ATTGateAmpAmpAmpGateAmpAmpGateAmpComp+Vdc0V制御回路(マイコン)
Text is not SVG – cannot display

モータ制御を構成するコントローラです

電流検出回路やDCリンク電圧検出回路の検出結果を元に三相フルブリッジ回路の各レグから出力する電圧レベルを算出し、各アームに対してPWM信号として出力します

PWM信号は上下アーム短絡を防止するためのデッドタイムが付与された相補PWM信号である必要があり、万が一過電流検出回路が働いた場合は即座にPWM信号を止めてやる必要があります

こういった機能は全てのマイコンに汎用的に搭載されているわけではないため、モータ制御向けのマイコンを選定する必要があります(STマイクロのSTM32シリーズ、ルネサスのRXxxTシリーズなど)

なお、STM32シリーズについては下記記事にて設定方法を解説しています

【STM32(nucleo)】TIMモジュールでモータ駆動用の三相相補PWM出力+PWMに同期したAD変換+BRK信号によるPWM信号遮断機能を構成する方法【PlatformIO】

まとめ

三相モータドライバ回路について駆け足でしたがそれぞれの回路の概要を説明しました

モータ制御はパワーエレクトロニクスの分野の技術であり、組み込みエンジニアの立場でもハードウェアの知識が必要になってきます

本記事に記載されている内容はモータ制御のプログラムを作成する上で最低限押さえておくべき内容かと思いますので、これからモータ制御に挑戦する人にはもちろん、既にモータ制御に取り組んでいる方に対しても参考になれば幸いです

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA