LoginSignup
18
9

More than 1 year has passed since last update.

BLDC回してみたいってツイートしただけなのに!〜気がついたら回っていた〜

Last updated at Posted at 2021-02-12

今回の記事は本当に日記ですね。自己満足記事です。

やっとBLDCモータが回った・・・

私は制御ツールベンダ社員かつパワエレネタで記事を書いておきながら
いままで自力でモータを回したことがないことに負い目を感じておりました。(個人の感想です)

ですがその負い目を感じる日々も終わりです。
ついにモータを回せたのでその時やったことを書こうと思います!
まずは回ったときの動画をどうぞ。

では回すために何をやったかを紹介します。

ツイートする

オシロスコープとSTのモータ駆動評価ボードを買ったことをツイートしました。
思えばここら辺から始まったのだと思います。
image.png
https://www.st.com/ja/evaluation-tools/p-nucleo-ihm001.html

絶望する

買ってみたはいいんですが、どうやって回せばいいかわかりません。
「系統連系とモータ制御ってだいたい同じだろ」などと舐めていた私は速攻撃沈しました。

じたばたしてみる

サンプルプログラムは書き込まれてるので
とりあえず回るのは回るんですがどういう理屈で回ってるのかよくわかりません。
そこで、色々とっかかりを得るためにオシロスコープでいろんなとこの波形をみてみました。

そんなツイートをしているとですね・・・
なぜかアドバイスをくださるモータ制御大好きエンジニアの皆さんがよってきてくださります。なぜか。
image.png

image.png

だんだんわかってくる

アドバイスいただいた中からなんとなく私がモータの特性というものを理解していないから、どういうインバータ波形をだせば回るのかがわかっていないのだということがわかってきました。分からないところがどこかがわかるとしめたものです。

それに関連する資料をネットで漁ってみました、するとこういう記事にたどりつきました。

STのモータ制御開発キットで『自力で』モータを回す Vol.1 強制転流
https://qiita.com/motorcontrolman/items/5a9c17008314f0224ef9
これはまさにアドバイスいただいたモータ制御マンさんの記事です。
ここでSTMのペリフェラル部分のコード実装についてだいぶ勉強になりました。

BLモータのベクトル制御を実装する手順
https://qiita.com/fumiya_sato/items/ecc9f22c6f137f9dc0ac

この記事は私に足りてなかったモータが回る原理についてだいぶヒントを与えてくれました。これでモータ制御の本の内容がちょっとだけわかるようになってきました!

MATLAB Youtubeチャンネル:モーター制御 Part1 ブラシレスDCモーター入門
手前味噌になっちゃいますが。。。
これも勉強になりました。
https://www.youtube.com/watch?v=gNpoTPzEkco&list=PLn8PRpmsu08qL-EG3DRMtRyokpXQJyhp7

#モデリングができそうになってくる
せっかくモータのことも理解でき始めたし、MBDを推進している会社で働いてるのでSimulinkでソフトウェアの挙動をモデリングしてそれをコード生成してみることをやってみました。

モータのモデリング

Simulinkには別途Simscapeという物理モデリングがされたブロックが存在します。ここにBLDCのブロックがありますので、パラメータを入力してバーチャル上に今手元にあるモータに近しいモデルをつくりました。
image.png

パラメータについてはRRいにょさん
のこちらの記事を参考にさせて頂きました。ありがとうございます。
https://negligible.hatenablog.com/entry/2020/11/11/195751

## モータドライバのモデリング
購入したサンプルボートにはL6230というモータドライバが載っています。
これも特徴としてはPWMの入力と各ハーフブリッジをEnable/Disableにする信号をうまく組み合わせることがモータを回すのに重要なポイントであることが理解でき始めていたので、データシートを参考にしながらしっかりモデリングしました。
image.png

コントローラのモデリング

ここまでくれば回転するために必要な計算をモデリングしていきます。
ここではrpmを指定すれば3相のPWM波形を生成してくれる変調部分をモデリングしました。
image.png

そうやって作られたモデルの全体図がこちらです。
左下のバーはコントローラに入力するrpm値を操作するものです。
image.png

グラフの一番下がモータの機械角です。しっかり回ってることが確認できますし、
RPMの値を急激に変えすぎるとモータが脱調してしまうところも確認できました。
image.png

動画でみるとこんな感じです

ここまで理解がすすむと回る

ここまできたらしめたもの。
EmbeddedCoderのパワーをフルに使いコントローラ部をコード生成、
予めペリフェラル部だけ作っておいたハンドコードコードといっしょにビルドしました。

その結果まさかの一発動作。
モデルベース開発の神髄をいまさらながら確認することができました。

#まとめ

  • twitterでモータについてつぶやくと色々教えてくれる
  • 情報が断片的でもそれをまとめると自分が知りたかったところに導いてくれる
  • モデルにして検討することで より早く現象を理解することができる
  • モータ回るのはとても楽しい

以上です。 

ここにくるまでに助けてくださった皆さん!本当にありがとうございます!
皆さんの助けやツールによる助けによってできてしまった気もしますが、
これからも自分のペースで勉強していきたいなと思っています!

18
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
9