SimpleFOC ライブラリの応用

Home > 電子工作 > SimpleFOC ライブラリの応用
すき 0
うんこ 0

前回までにMakerbase社製 ESP32搭載ブラシレスモータコントローラを用いてSimpleFOCライブラリの基本的学習を済ませました。

SimpleFOC ライブラリの勉強2

SimpleFOCへの理解が深まりましたので、いよいよ応用です。
応用してこそのエンジニアリングです。

 

AudiostockでBGM・効果音を販売中!

おかもち

以前試したブラシレスモータによる おかもちをSimpleFOCライブラリを用いて実施してみました。

正弦波駆動の応用 ーブラシレスモータ駆動への道11ー

 

ここでは前回の学習と同様にMakerbase社製 コントローラとエンコーダAS5600付きブラシレスモータを用いました。

 

Makerbase社製 コントローラ

 

エンコーダAS5600付きブラシレスモータ

 

 

コントローラの2台目のエンコーダを接続するコネクタにIMUセンサMPU6050を接続してI2C通信させています。

動作

ここではSimpleFOCのクローズドループ制御の回転位置制御モードを用いました。

 

IMUによって検出された角度(kalAngle )とモータの角度(エンコーダ値)の差でモータを制御して平衡を保ています。

 

SimpleFOCのクローズドループ制御 回転位置制御モードは以下のようなブロック図で構成されます。

指定角度とエンコーダによってセンシングされた角度の差をPID制御によってモータを駆動しています。

実験ではこのPIDを調整しながら動作を楽しみました。

このパラメータもう少し追い込めばスムーズなおかもちになるかもしれません。

 

回転位置のPID調整はESP32をWiFi APモードにしてスマホから調整ました。
この時のライブラリバージョンは以下のとおりです
・ESP32 ver. 2.0.13
・SimpleFOC ver. 2.3.3

参考

SimpleFOCのコーディングには以下を参考にしました。
Getting to know the SimpleFOClibrary code
SimpleFOCGenerator :モータやエンコーダ、動作モードを選択することでコードが自動生成され便利!

姿勢制御モジュール

SimpleFOCによってブラシレスモータを割と自由自在に動かせるようになってきたので、ここではもはやHomeMadeGarbageのシグネチャーテックと言っても過言ではない姿勢制御モジュールを試してみます。

おかもちと同様にIMUセンサによってモータを制御します。

動作

残念ながらモータのスピードが足りず安定倒立は実現できませんでした。
以後 モータを変えて再度チャレンジしたいと思います。

ここではクローズドループのトルク制御モードでモータを駆動しました

トルク制御モードは非常にシンプルなループで構成されます。

 

IMUによる機体の角度と角速度とエンコーダによるモータ回転速度をフィードバックしてトルクを指定して倒立を目指しました。

 

筐体を変えてみましたが結果は同様でスピードたらず。。

モータ動作自体はSimpleFOCによってうまく出来ております。

おわりに

ここではSimpleFOCライブラリを用いて応用を試しました。

実現したい動作にあわせてコーディングし動作を確認することで、私とSimpleFOCとの距離は非常に近くなりブラシレスモータ活用が容易になりました。

姿勢制御モジュールではモータスピードが足りず、またコントローラ自体が大きく負荷となりモータやドライバの変更が必須となりました。

Makerbase社製コントローラではなく自作のドライバで大きめのブラシレスモータ動作をSimpleFOCを用いて動作確認できましたので今後色々なモータやドライバを活用したいと考えております。

 

更なるブラシレスモータの応用を目指して勉強を進めます。

追記

姿勢制御モジュール倒立成功 (2024/9/19)

モータスピードが足らず倒立できてませんでしたがコード内で指定したカレントリミットが効いていたことが判明しました。

無事に倒立

カレントリミット上限を変更して本来のモータトルクを活用できました。
 motor.current_limit :2A -> 8A に変更

次の記事

SimpleFOC で倒立振子1

コメントはこちらから

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

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