SimpleFOC ライブラリの勉強2
前回はMakerbase社製 ESP32搭載ブラシレスモータコントローラを元にSimpleFOCの学習を開始いたしました。
オープンループ制御はもちろんのことエンコーダによるクローズドループ制御もSimpleFOCライブラリの活用により容易に出来てしまいました。
以下、お勉強の続きです。
目次
電流センシング
Makerbase社製 ブラシレスモータコントローラにはモータ電流センサも実装されています。
以下の通りモータの3相ラインの内2相に電流センシング抵抗(10mΩ)を挿入して電流測定しています。
電流センサ:INA181
電流センサの動作を試すサンプルコードを実施しました。
9_online_current_sense_test.ino
電流センサもバッチリ動作
動画では誘導電流を観測 pic.twitter.com/3V2QwYkA6i— HomeMadeGarbage (@H0meMadeGarbage) September 11, 2024
モータを手回しした際に発生する誘導電流を電流センサで検出できています。
参考動画:Example 9 Online Current Sense
電流制御駆動 (ベクトル制御)
電流センシングが可能となりましたので、モータ電流を指定して駆動します。
7_current_control_example.ino
電流値指定で回転 pic.twitter.com/kZRPnEqo9o
— HomeMadeGarbage (@H0meMadeGarbage) September 11, 2024
サンプルコードのままではモータの初期化動作時に異常がでてESP32がリセットしてしまいました。
SimpleFOC公式の電流制御コードを参考にコード修正しました。
電流センサとモータドライバを紐づける記述が抜けておりました。追加で問題なく動作。
1 |
current_sense.linkDriver(&driver); |
電流制御コードではモータの回転トルク制御モードとして “foc_current” が選択されています。
サンプルコードでは3相-2相変換された電流(Iq, Id)をPI制御することでモータを回転させています。
こうも簡単にベクトル制御が実現できてしまいました。。恐るべきSimpleFOCライブラリ
参考動画:Example 7 Dual Motor Current Control
おわりに
Makerbase社製コントローラでのSimpleFOCライブラリ学習を通し、電流センスによるベクトル制御まで堪能しました。
ライブラリの利用で1日たらずでベクトル制御が実現できてしまいました。驚き。。
以前自作したESP32によるブラシレスモータ駆動システムでは電流センスベクトル制御の実現に1カ月以上かかりました。。
一度手を動かして理解している分、より自然により速くSimpleFOCライブラリが私に浸透したとは言えますが それにしても便利ですしもっと早く知りたかったです。
以後はSimpleFOCライブラリを使ってブラシレスモータ活用工作を実施したいと考えております。
賢明な読者諸君ならHomeMadeGarbageがSimpleFOCブラシレスモータで何をするかは容易に想像がつくよね。
それではまた