センサレス クローズドループ矩形波制御 その2 ーブラシレスモータ駆動への道3ー

Home > 電子工作 > センサレス クローズドループ矩形波制御 その2 ーブラシレスモータ駆動への道3ー
すき 1
うんこ 0

前回 ESP32をコントローラとしてセンサレス クローズドループ矩形波制御を実現しました。

センサレス クローズドループ矩形波制御 その1 ーブラシレスモータ駆動への道2ー

ここでは更に検討進めましたので報告いたします。

 

 

オンデューティ指定

前回はモータの回転を駆動するドライバのハイサイドトランジスタのPWMオンデューティを指定して制御しました。

この方法では以下のようにモータの負荷によって回転速度は変わってしまいます。

 

そこでここではモータ回転速度を直接指定してのモータ制御を目指します。

またせっかくESP32を使用しているのでBLEで回転速度や正転・逆転切り替えができるようにしました。

 

最新版のBlynkではBLEが使用できないので、以前のバージョンのBlynkレガシーを使用してBLE通信しています。

 

回転速度指定

回転速度を指定して実際の回転速度と比較してドライバのオンデューティを制御します。

回転速度には以下の誘起電圧から検知される各モータ位置ステートの平均時間を用いました。

 

回転速度からオンデューティの算出には以下の書籍の5.5.11 回転数制御の節のPI制御の原理を参考にいたしました。

 

以下でオンデューティ$D_{ON}$を定め、係数$K_P, K_I$を動作させながら調整しました。

$$D_{ON} = K_P × (実測回転速度 – 指定回転速度) + K_I × \sum{(実測回転速度 – 指定回転速度) }$$

 

動作

BLEで回転速度を指定して、モータを回転させています。
負荷を与えてもドライバのオンデューティを変えることで回転速度を保っています。

 

Arduinoコード

 

前回のオンデューティ指定版と異なる点はBlynkレガシーによるBLE通信の導入と
回転速度からオンデューティを算出する機能です。

L. 149~155で指定回転速度 rotSpeedと実測回転速度 rotTimeAve を比較してPI制御でオンデューティvolPWM を算出しています。

 

おわりに

ここでは回転速度指定によるセンサレス クローズドループ矩形波制御が実現できました。

回転速度の正確性や応答性は別途評価用に外部エンコーダを導入して確認したいと考えております。

書籍で原理を学習し、実機を組んで原理に基づいてプログラミングすることでブラシレスモータについての理解がかなり深まりました。

今後は別の制御方法についても検証し理解をさらに深めたいと思います。

次の記事

オープンループ正弦波駆動 ーブラシレスモータ駆動への道4ー

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください