電子工作

BLDCモーターの実験の続き

 

PIDの制御ゲインを気が済むまで調整してみた。

 

それに先立ってコントロールアプリを改良

 

ゲインの書き換えでその都度ESP32にプログラムを送り、実行を繰り返すのは余りにも大変なのでアプリ上から各設定を更新出来る様にしました。

比例制御、積分制御、微分制御とバイアス(バイアスはモーターが回りだす最低限の値

 

機能を追加したアプリ

     

各ゲインが送れるのと個別に有効,無効が設定出来るので、どの様に影響するのかが分かり易い。

何十通り、何百通り(ちょっとオーバーだけど百通り以上は間違いない)と繰り返して見つけた制御ゲインが

こちら

P 0.036

I 0.0004

D 10.0

B 30

この実験装置に対応したゲインで他の装置では?

 

流石にESP32のプログラム書き換えでは無理だったと思います。

 

今、ベストと思われる制御ゲインで動かした様子


www.youtube.com

前回アップした動画との差は歴然

揺れもなくジョグダイアルの追従性も良い感じです。

 

因みに前回の動画の各ゲインは

P 0.06

I 0.0

D 0.0

B 55

 

ただ、今回の動画で手を付けていないものが有ります。

それは、

外乱に対するゲイン調整です。

 

今回の調整でそこは目をつぶりました。

 

外乱に対する反応を良くしようとするとどうしてもハンチングが出てしまいます。

バイアスを上げるのが効果的なのですが安定動作とトレードオフの関係があり悩ましい所です。

 

まだまだ研究の余地ありです。

 

また、更新します。

電子工作

BLDCモーターの実験の続き

 

ESP32に乗り換えました。

 

アルディーノUNOでは10スリットが限界だったのでマイコンを変えて25スリットに挑戦しました。25スリットは楽々クリア。50スリットも処理速度的にはクリア出来てそうなのですが、印刷精度の問題か回転数をそれほど上げて無いにも関わらずカウントが不規則です。

なので、今回は25スリットで組み込んでいます。

25スリット 360÷(25×4)=3.6 の1カウント3.6度

7.2 : 1 で減速しているので出力側は 3.6÷7.2=0.5の1カウント0.5度

 

今回作った実験装置

回路に 5v ↔ 3.3v のレベルコンバーターを追加しました。

 

ESP32に乗り換えたと言う事はBluetoothが使えます。

 

そこで、Bluetooth接続でコントロール出来るアプリを作ってみました。

ジョグダイアル風のアプリで本人も気に入っています。

 

コントロールアプリで動かしている様子


www.youtube.com

比例制御のみ使用

 

1カウント0.5度の精度が生かし切れていない(とにかくよく揺れる)

比例制御、積分制御、微分制御を極めるにはまだまだ ...

 

ビシッと決まらずこれからと言った感じですが今後が楽しみ!

 

また、更新します。

電子工作

BLDCモーターの実験の続き

 

実験用にエンコーダーのスリットを10,25,50の3種類作ってみた。

 

上から10,25,50

分解能は

10スリット 360÷(10×4)=9 の1カウント9度

25スリット 360÷(25×4)=3.6 の1カウント3.6度

50スリット 360÷(50×4)=1.8 の1カウント1.8度

 

今回、簡単に取り換えが出来る様にとプレートを交換式にした。

が、無意味でした。

センサーの位置を微妙に変えないといけないので結局のところ側から作り変えなければならない。

 

読み取りの結果

10スリットは前回の9スリットと大差なく問題ありません。

25スリットが結局、ダメでした。

回転を上げると取りこぼしが有る様でカウントが不規則に変化します。

PWMのデューティー比で言うと60%位でアウト

アルディーノUNOではスペック的にしんどいのかな。

 

試しにエンコーダーのライブラリを何種類か使っても少し改善されるだけで対応できなかったです。(この辺りを使った<MsTimer2.h><TimerOne.h><Encoder.h>)

 

当然50スロットは試していません。

 

当分は10スリットで遊んでいくしかないかなぁ

 

それともESP32に乗り換えるか

 

また、更新します。

 

電子工作

BLDCモーターの実験の続き

 

フィードバックの実験装置にPID制御を追加してみた。

 

PID制御を追加するにあたり何時も様にYouTube動画で情報収集

そんな中、良いのを見つけた。「枚方ロボットプログラミング学習塾」小中学生向けPID制御のシリーズです。PID制御に関係する動画は多数アップされていますが一番分かり易かった。(今どきの小中学生はこんなことをやっているのか、びっくり!

 

フィードバックの実験装置

7.2 : 1の遊星ギアで減速をしています。

その他、回路もシュミットトリガICを追加しました。

フォトセンサーの読み取りをanalogRead → digitalReadへ変更しました。

回転数を上げるとanalogReadでは追いつかないのか取りこぼしが有る様です。

 

実験の様子


www.youtube.com

比例制御、積分制御、微分制御をそれぞれ弄り倒してここまで来た。

比例制御は動きが分かり易くて良いが、積分制御、微分制御は兼ね合いが微妙で調整が難しい。

 

今回はエンコーダーのスリットを9個で作っているので分解能は低めです。1カウントあたりモーター側で10度、出力側で 10÷7.2=1.39 の1.39度です。

 

一般のステッピングモーター並みにするには5倍ほどのスリットが必要です。

3dプリンターで精度よく作れるか、フォトセンサーの読み取りが上手く行くか。

 

次の課題です。

 

また、更新します。

電子工作

BLDCモーターの実験の続き

 

フォトセンサーが届いたのでエンコーダーを組み込んでみた。

マイコンはアルディーノを使用

 

3dプリンターで作ったスリット板と届いたセンサー

今回のエンコーダーYouTube動画の「Control and Robotics」エンコーダ編を参考にさせて頂きました。

て、言うかプログラムも含めてほぼ丸写しです。

 

動かしている様子


www.youtube.com

実験の初期段階としてはこんなもんでしょう。

 

実験で感じたことは各種パラメーターで動きが激変します。

YouTube動画で綺麗に制御出来ているのを見ると簡単なのかなと錯覚してしまうがとんでもないです。

 

フィードバックの実験装置として活用できるものが完成したので良かったです。

スリットの数を変えたりセンサーの感度を変えたりプログラムをいじったりとやることが沢山。ギアボックスも考えなくては。

 

今後が楽しみ!

 

また、更新します。

電子工作

前回

「次はもっと複雑で凝ったものを作ってみようかな」

と言ったが結局何も思い付かず買った20個のサーボは押し入れへ

 

そうこうしているうちにAliExpressで面白そうなものを見つけた。

 

ブラシレスモーター

送料込みで800円弱

PWM制御、正逆転の切替が出来ると説明に有ったので試しに買ってみました。

 

以前からフィードバック機構が作ってみたかったから。

 

制御基板が付いているのでエンコーダーを追加するだけで良さそうです。

 

試しに回してみようとサーボコントロール用のアプリを少し変更してpwmコントローラーに改造

 

信号をオシロスコープで確認


www.youtube.com

 

ブラシレスモーターを回してみた。


www.youtube.com

速度制御と正逆転

 

実験用アプリでは上手く行っています。

 

次はエンコーダーを付けてフィードバックにトライです。

 

ただフォトセンサーが届いていないので(モーターと同時に発注したのにモーターだけ先に来た)到着待ちです。

 

スマホのサーボコントロール用のアプリでは入力が出来ないのでESP32かArduinoの出番です。

 

また、更新します。

電子工作

シリアル・サーボモータコントローラ「RBIO-5P」で制御

 

注文していたサーボ(20個)が届いたので手始めに7セグメント表示器を作ってみた。

 

3dプリンターを使うのも8ヶ月ぶりでご機嫌斜め、1層目の定着不良、ノズル詰まり、挙句の果てにビスの付け忘れ、そのビスがベルトに嚙みこんでベルトにダメージを与えてしまった。幸い切れはしなかったが稼働中に異音がするようになった。

 

どうにかこうにか印刷出来た部品群

ウインナーみたいのが回転して数字を表します。

 

ベース部分

印刷できるサイズぎりぎりの大きさ

サーボホーン

周りにゴムが巻いてある

 

組み込んだ様子

仕組みは簡単でサーボホーンのゴムがウインナーを回すだけ

 

動かしている様子


www.youtube.com

2桁までならこのRBIO-5Pで動かせます。

 

単純な割に面白いものが出来たかなと思います。

 

次はもっと複雑で凝ったものを作ってみようかな

 

また、面白いものが出来たら更新します。