クローズドループ正弦波駆動 その1 ーブラシレスモータ駆動への道5ー

Home > 電子工作 > クローズドループ正弦波駆動 その1 ーブラシレスモータ駆動への道5ー
すき 2
うんこ 0

 

前回はオープンループでのブラシレスモータ正弦波駆動を確認しました。
矩形波駆動では出来なかった低速回転が実現され大変満足した次第です。

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

 

ここからはセンサを用いてモータの回転位置をフィードバックしたクローズドループ正弦波駆動に挑戦したいと考えております。

 

オープンループ正弦波駆動 BLE制御

クローズドループにとりかかる前に復習をかねて、BLEで回転速度や正転・逆転切り替えをできるようにしました。

正弦波駆動によってセンサレス矩形波駆動では実現できなかった低速回転が実現されています。

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

 

磁気エンコーダ

クローズドループに向けてモータの回転位置を把握するために磁気エンコーダ AS5048 を購入したしました。

 

AS5048はインターフェースがSPIで付属の磁石の回転を1周 14 bit (16384)でエンコードします。

 

付属の磁石は面の上下が磁極になっていました。
以下では磁石の磁場をマグネットビューアシートでみています。

 

 

専用の磁気エンコーダケースを設計し3Dプリントしてロータに磁石をつけてブラシレスモータと一体化しました。

 

ブラシレスモータは以下を使用。極数は14。

エンコーダ動作

エンコーダの電源とSPI配線をESP32に接続して、動作確認しました。

以下は手回し。

 

AS5048のライブラリとして以下を使用しました。
https://github.com/eborghi10/AS5048A

 

オープンループで回して、エンコーダ値を見てみました。

エンコーダ値が1巡 (モータが1回転) する間にブラシレスモータのu, v, w相にはそれぞれ7周期の正弦波が印可されています。

これはロータの磁石が14個 (7ペア)のモータを使用したためです。

 

クローズドループ検討

矩形波駆動の時のように速度を指定して回転させる制御を実施したかったのですが現状うまくいっておらず勉強中のため、ここではモータの回転位置を可変抵抗で指定してモータを動かしてみました。

構成

前回のものに磁気エンコーダ  AS5048 を追加した構成となります。

 

Arduinoコード

 

疑似正弦波を生成するためにドライバ駆動ピン(IO25~27)はledcWriteを用いて20kHz PWM出力します。分解能は10ビット(0~1023) (L. 44-52)。

モータの回転位置rotData をデュアルコアのcore0で検出しています。
1周の分解能を14bitから9bit (512)にしています (L. 32)。

可変抵抗でモータの位置period を0~511で指定します  (L. 67)。

指定した位置とエンコーダによる実際の位置の差diff を導出し (L. 71)、その正負によって回転させるための正弦波のU相の位相のインクリメント・デクリメントを決定します(L. 73-77)。
V相とW相はそれぞれ120°づつ位相をずらします (L. 79, 80)。

正弦波の振幅は回転位置の差diffに比例させて定めます(P制御) (L. 86, 87)。
比例係数Kはもう一方の可変抵抗で調整できるようにしました (L. 68)。

上位の位相と振幅に従って正弦波を生成します (L. 89-95)。
正弦波の周期はモータが1周(分解能512)する間に7周期となるようにしています。

動作

動作は以下の通り、可変抵抗で指定した位置にモータが移動します。
手でずらしても指定の位置に戻ります。

比例係数Kは2.5ほどで安定動作しました。

参考

 

おわりに

ここでは磁気エンコーダを用いたクローズドループ正弦波駆動で位置指定による回転追従動作を確認いたしました。

回転速度を指定した回転動作は現在猛勉強中ですので、後日できましたら報告したいと考えております。

次の記事

クローズドループ正弦波駆動 その2 ーブラシレスモータ駆動への道6ー

「クローズドループ正弦波駆動 その1 ーブラシレスモータ駆動への道5ー」への1件のフィードバック

  1. こんにちは、趣味でBLDCモータドライバを作っている者です。
    手でずらして、その位置で保持した時のモータの挙動を教えていただきたいです。

コメントはこちらから

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

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