Loading [MathJax]/extensions/tex2jax.js

モーター制御  ~ことはじめ

2024年12月2日月曜日

18. モーター制御

t f B! P L

ことはじめ

モーターのベクトル制御って、
これまで担当したことないので、どういう実装するのか興味ある。d軸、q軸っていうやつ。持ってる8bit Arduinoでは無理だなぁ。32bitでFPUがないと。
ということでSTM32を調達。

勢いで買ったものの、デッドタイムとかの確認にはデジタルオシロが必要ってことで、、
結局、デジタルオシロ ポチりました。


4chデジタルオシロで、プローブ4本、日本語マニュアルも付いてる。そんな大層なものが必要?という疑問がなかったわけではないが、買っちゃうよ。3万円でおつりがくる価格だなんだもの。

プログラムに着手する前にいろいろ検討

これまで、昇降圧コンバータの開発を担当したことはあったが、モーター制御を担当したことはない。通電制御で共通するところはあるが、当たり前だがモーターは回るってところが全然違う。

事前にいろいろ考えみて、取り敢えず回ったのでブログに書いていこうと思います。


U/V/W の各通電相の電圧(U:黄, V:青, W:オレンジ)とU相の電流(シャント抵抗電圧:緑)の様子です。不要なフライバック電圧の発生もなく、電流の挙動も想定通りです。

  ■U相のハイサイドアームをPWM(20%)駆動 → ハイサイドアームON(PWM100%)


  ■U相のローサイドアームをPWM(20%)駆動 → ローサイドアームON(PWM100%)


上記の電圧・電流波形や事前検討した内容についての詳細は別途書いていきますが、項目としては基本的なところで、だいたい以下の内容です。

モーターの制御要素(合成磁束、発生トルク)の概要を把握しておく

モーターのドライバで通電相を制御して、U/V/W相の固定子で合成磁束を発生させる。その合成磁束と回転子の角度でトルクが決まる。

励磁電流の制御

励磁電流はPWMでスイッチングして制御する。ハイサイドアームとローサイドアームは相補作動させ、還流電流によるMOSFETのボディダイオードでの損失を抑制する。
(2025/1/17 追記 相補作動はボディダイオードの逆回復電流抑制も目的?)
U/V/W の各通電相同時に3相通電する場合、電流のIN/OUTは 2相/1相 または 1相/2相 になるが、励磁電流のPWM制御は2相側で行う。(残りの1相は、通電制御した2相の合計電流になるので)

デッドタイム

ハイサイドアームとローサイドアームの相補作動時は、貫通電流によるドライバーの破損を防ぐため、ハイサイドアームとローサイドアーム切り替え時には、デッドタイムを設定する。

フライバックを抑制

ドライバーや電源の破損を防ぐため、スイッチングで発生する誘導起電力による還流電流の経路を常に確保してフライバックを抑制する。停止時も誘導起電力によるライバックを抑制するように制御にする。
今回のモーターのインダクタンスは 18μH、ドライバーのデッドタイムは 1μsec。デッドタイムの設定にはマージンがあるはずなので、実際にはMOSFETはその半分の時間で作動すると仮定すると、1Aの通電状態からのスイッチングでは、36V のフライバック電圧が発生する。STM32のレギュレータは、12V以上印加できないので、フライバック電圧の発生は放置できない。

励磁電流のゼロ跨ぎタイミング

還流電流が流れて励磁電流が想定とは逆方向の場合、フライバックを抑制する通電制御が成立しないため、励磁電流がゼロを跨ぐタイミングの通電制御は別の回避方法を検討する。

電流検出タイミング

ローサイドアームのシャント抵抗により電流値を検出する。励磁電流がハイサイドアーム側を還流して、シャント抵抗を通らない状態もあるため、電流値を検出するタイミングを考慮する。

モーターはなぜ回る?

まずは、モーターが回る原理です。下図は代表的なDCブラシレスモーターとインバーターの構成です。基本的な3相モーターでは、120度間隔でステーターコイル配置され、それぞれインバーターのハイサイドアームとローサイドアームのMOSFETにより励磁電流を制御できる構成です。

それぞれ励磁電流を制御できる構成 と言っても、モーターの中で3相の励磁コイルが結線されているわけだから、それほど自由にはならないはず。うまいこと行くんでしょうか?

合成磁束

ということで、代表的な通電制御方法の1つである正弦波駆動を例に考えてみます。正弦波駆動は、U/V/W相に120度づつ位相をずらせた正弦波状に通電する制御方法です。

U/V/W の3相に同時に励磁電流を流していますが、電流のIN/ONTの総和は常に"0"になっています。で、その合成磁束がどうなるか、Excelで3相の合成磁束ベクトルを計算し、10degごとに表示してみると


おぉぉ・・・360度合成磁束が回りますねぇ。これは素晴らしい。回る気がしてきた。

上記のExcelファイルはこちら → リンク にあります。[START]ボタンを押すと、3相の合成磁束ベクトルを10degごとに表示します。

合成磁束とローター(回転子)の角度差とトルクの関係

永久磁石のローター(回転子)に対して、ステーターコイルで発生する合成磁束が、電気角で 90deg 進角すると最大トルクになるようです。

モーターの通電制御は、通電相と励磁電流を以下の観点で制御することになりそうです。

  • ステーターコイルで合成磁束ベクトルを生成
  • 合成磁束ベクトルのローター(回転子)に対する進角制御


ここまでお読みいただきありがとうございました。

モーターが回るイメージができたところで、次回からは、具体的なステーターコイルの通電制御について、検討した内容を書いていきます。 次回リンク → 通電制御

モーター制御については全くの初心者なので、間違いにお気付きの方は末尾のコメント欄からご指摘いただけると幸いです。


Translate

このブログを検索

ページビュー

22480

QooQ