![](https://garchiving.com/wordpress/wp-content/uploads/2024/02/00_top_view_image_BLDC_Motor04-1920x720.jpg)
モータの回転数を推定できないか試してみました。
概要
![](https://garchiving.com/wordpress/wp-content/uploads/2023/12/231216_03_how-to-use-stepping-motor-with-built-in-driver.jpg)
いま使用しているモータにはエンコーダが内蔵されているため回転数の測定は比較的簡単にできます。ただマイコンの割り込み処理が個人的にあまり好まないのとエンコーダが付いていないタイプのモータを使ったときにでも対応できるよう、エンコーダを使わずに、電圧、電流などから回転数が推定できないかを試してみました。
とりあえず実測
![](https://garchiving.com/wordpress/wp-content/uploads/2024/02/240203_03_rotation-speed-measurement-with-encoder.gif)
モータを適当な速度で散らして回転速度を実測してみます。
実測結果
無負荷で実測してます。
![](https://garchiving.com/wordpress/wp-content/uploads/2024/02/240224_00_estimate-motor-rotation-speed.jpg)
適当にモータ回転数を制御。実測値はエンコーダから取得した回転速度。駆動ドライバ内蔵(エンコーダ付)BLDCモータだからか無負荷だからなのかわかりませんが、思ったより出力される回転数が安定していて推定が簡単?。
回転数を推定してみる
実測からいろいろモータ各種のパラメータを同定して推定値を出してみました。
![](https://garchiving.com/wordpress/wp-content/uploads/2024/02/240224_01_estimate-motor-rotation-speed.jpg)
かなり現物合わせで調整してますが結構推定できる感じ。調整した値をもとにリアルタイムで推定できるようプログラムしてみます。
リアルタイム回転速度推定
それなりに追従してます。
ただ、モータ種類、電源電圧、フライホイール大きさ(負荷)など少し条件を変更するだけでいろいろ定数を取り直さないといけないので大変です。
コメント