正弦波駆動の励磁電流の制御を見直しました。
見直し前(→リンク)と比べると、モーターの作動音が大幅に低減しました。
初めて作動させた時は、矩形波駆動から正弦波駆動に変わるタイミングで、モーター止まった?と思ったほどです。
変更前の励磁電流の状態
変更前の励磁電流の状態です。ところどころ励磁電流が逆流しており、想定外の挙動になっています。矩形波駆動では必ず1相はゲートオフしているので単純でしたが、正弦波駆動では3相同時通電となって、通電相間の干渉が発生しているようです。モーターの回転数を上げると、状況は更に壊滅的になっていきます。原因は今回のドライバーL6230の相補作動と考えました。
緑色 : STAGE DAC出力 (STAGE数×480mV)
オレンジ : U相のPWM信号(ハイサイドMOSFET)
※励磁電流はシャント抵抗電圧です。
U相の励磁電流が正確に観測できるのはSTAGE4~6。STAGE1~3は還流電流側のみ。
変更後の励磁電流の状態
ドライバーL6230の相補作動を止めると、下のような状態になり、正弦波駆動中のモーターの作動音も大幅に低減。1000rpm近辺では、ほぼ無音で滑るように滑らかに回転します。
青色 : V相の励磁電流
緑色 : STAGE DAC出力 (STAGE数×480mV)
オレンジ : U相のPWM信号
※励磁電流はシャント抵抗電圧です。
U相の励磁電流が正確に観測できるのはSTAGE4~6。STAGE1~3は還流電流側のみ。
ドライバー L6320 では、ハイサイドMOSFETとローサイドMOSFETを相補作動させています。相補作動とは、ハイサイドMOSFETとローサイドMOSFETを ON/OFF 逆に作動させることです。
L6320の制御信号の構成
STマイクロエレクトロニクスのモーター制御基板 P-NUCLEO-IHM001 は、STM32マイコンボードに搭載しますが、上記の制御信号の接続先は以下のようになっています。
EN1/2/3 ← PC10/11/12 ポート
IN1/2/3 ← TIM1 CH1/CH2/CH3 (PWM信号出力)
この制御信号の接続構成では、各通電相のハイサイドMOSFETとローサイドMOSFETを独立に制御することができません。(相補作動してしまう)
結果として、正弦波駆動では3相同時通電するため、ハイサイドMOSFETから励磁電流を給電する(下図の赤のライン)通電相であっても、PWMのオフ区間ではローサイドMOSFETが ON になるため、他の通電相の励磁電流が流れ込んでしまいます。(下図の青のライン)
L6320の相補作動を止める
マイコンボードの STM32F302R8 には複数のタイマーがあり、出力ピンも変更可能であるため、比較的簡単に対処できると考えましたが、空いている適切な出力ピンはありませんでした。
結局、ドライバー L6320の制御信号 ENx と INx の接続を入れ替えることにしました。
EN1/2/3 ← TIM1 CH1/CH2/CH3 (PWM信号出力)
IN1/2/3 ← PC10/11/12 ポート
励磁電流値を制御するPWM DUTY信号は ENx に入力します。
ハイサイド / ローサイドのいずれのMOSFETを作動させるかは、INx に入力したポート信号で選択します。
これで、各通電相のハイサイドMOSFETとローサイドMOSFETを独立に制御できるようになります。
モーター制御基板 P-NUCLEO-IHM001 に ENx/INx を入れ替えるジャンパーピンがあれば簡単だったのですが、残念ながらないので、、
モーター制御基板 P-NUCLEO-IHM001 と マイコンボード STM32F302R8 のコネクタ間に延長ケーブルを挟んで、延長ケーブル部で信号を入れ替えました。
こんな状態です。
損失はどうなる?
ドライバーの相補作動を止めると、スイッチングに伴う還流電流は全てMOSFETのボディダイオードを経由して流れることになります。還流経路は確保されているので、フライバック電圧が発生することはありませんが、損失がどうなるかは気になります。
デジタルオシロで確認すると、還流電流のピークは 1.0[A] ほどです。
(シャント抵抗 0.33[Ω] オペアンプ増幅率 2.0 )
相補作動を止めた場合のドライバーの損失
ボディダイオードの順方向電圧 0.7[V]×還流電流 1.0[A]
相補作動の場合のドライバーの損失
L6320のオン抵抗 0.73[Ω](typ) ×還流電流 1.0[A]×還流電流 1.0[A]
相補作動を止めてもドライバーでの損失は大差なさそうです。
通電制御
通電制御について簡単にまとめます。
始動時は矩形波駆動、始動後は正弦波駆動に切り替えています。
矩形波駆動、正弦波駆動ともにフライバックは発生しない通電制御になっています。
下図で ENx の入力の ON:PWM DUTY 100%、OFF:PWM DUTY 0% です。
PWM DUTYの算出方法などについては、前回(→リンク)から変更ありません。
矩形波駆動の通電制御(始動時)
正弦波駆動の通電制御(始動後)
これで、驚くほど静かに、滑るように回るようになりました。
最後までお読みいただきありがとうございました。何年か前に家の換気扇のモーター軸のベアリングを交換しました。使い始めて20年以上経過したところで、何か機械的なキュルキュル音が出てきたので、ベアリングだろうと思い交換したところ、その音は解消しました。(普通は換気扇ごと交換するのでしょうが)
20年の耐久性。モーターの作動音は振動ですから、いかに振動なく滑らかに作動させるかで機器の寿命を決めてしまうなぁ と今回あらためて思いました。ベアリングを交換して何年か経過していますが、何の問題もありません。
モーター制御については全くの初心者なので、間違いにお気付きの方はご指摘いただけると幸いです。
0 件のコメント:
コメントを投稿