ブラシレスモータの制御に関しては、色々なサイトや書籍で詳しく説明されてますが、自分としては、完全に理解した!みたいなところまでいかなくて、なんとなく腑におちない状態でした。
丁度、javascriptからSVGのアニメーションを作る方法を調べてたので、ブラシレスモータのアニメーションとかつくってけば、制御方式もなんとなく分かるはず?みたいなノリで、やってみました。
最終的に完成したのが下です。インナーロータタイプで、簡単のため、2極3スロットのモータになっています。コイルは上からU相、左下がV相、右下がW相になります。
ラジオボタンで、制御モードを変更、スライダーでDUTY比を指定します。グラフや画像をクリックするとアニメーションを中断&開始ができます。
皆さんの参考になれば、幸いです。(間違ってたらすみません)
回路
ブラシレスモータの制御回路のイメージ図を下に示します。右側の3組のコイルがブラシレスモータの等価回路で、左側のスイッチ(実際にはMOSFETやIGBTなどのスイッチングデバイスを使用)のON/OFFの組み合わせで、コイルに流す電流の経路を制御できることが分かります。
ホールセンサ
アニメーションでインナーロータの外側にある3つの〇は、ホールセンサを意味しています。120degの等間隔でセンサを配置してます。ちなみにホールセンサは、下のようにS極が近づくと0、N極が近づくと1になるセンサです。
これが3つあるので、HighとLowの組み合わせで、合計6パターンできることになり、これによって、電流の流す経路をセクション間で、変化させ、モータを回転させるようにしています。
セクション
セクションは2進数で001とか101とかで表現します。bit0がホールセンサC, bit1がホールセンサB,bit2がホールセンサAのHIGH/LOWの信号を示します。例えば、基本的な矩形波制御では、このセクションによって、あらかじめ下の表なようなものをつくっておき、実際の切り替えをおこないます。
ロータ位置 | U相 | V相 | W相 |
---|---|---|---|
001 | + | - | Z |
101 | + | Z | - |
100 | Z | + | - |
110 | - | + | Z |
010 | - | Z | + |
011 | Z | - | + |
PWM
html上の6つのグラフは実際のPWMの制御波形を示します。分かりやすくするため、PWMの周期は実際とは違いますが。モータの回転速度を調整するため、コイルに流す電流をハイサイド側のMOSFETをPWMで、調整します。
html上のスライドバーでDUTY比を指定すると、特定の周期で指定したとおりのPWM信号を出力します。
ちなみに見た目がややこしくなるので、相補反転の信号は表示していません。
中央の矢印はそれぞれのコイルが発生する磁界の向きで、合成磁束をピンクで表しています。アニメーションでは、電流の切り替えによって、ピンクの向きが絶えず変化し、回転磁界がうまれ、内側のロータをその磁界を追いかけるように、回転している様子がわかります。
ちなみにロータのN極とS極の境界を矢印が差す時(ロータの回転磁界とコイルの発生磁界のなす角が90degになる)、発生するトルクが最大となります。
矩形波制御
下が矩形波制御の例です。
色つきの枠で囲っているところがSWがONとなっているところです。矩形波制御の場合、かならず、60degおきにSWが切り替わり、ハイサイド側とローサイド側で同時にひとつしかSWがONになりません。
正弦波制御
アニメーションスタート前にラジオボタンで正弦波制御を有効にすると正弦波制御のアニメーションを行えるようにしました。SIN波生成のための時間計測をはじめにおこなうので、一周目は矩形波制御をおこないその後、正弦波制御に切り替えています。
PWMの波形をみて分かりますが、矩形波制御とはことなり、Dury比が正弦波状に変化していき、各相で、SWがONになって、オーバーラップする瞬間が存在します。
合成磁束の結果をみるとこの制御のメリットがわかります。矩形波制御は回転磁束がカクカク動いていたのに対し、ロータの動きに合わせて、ベクトルが滑らかに動いています。
なんとなく分かってきました。
正弦波制御ばんざい。