50日後にセンサレスベクトル制御してみたい俺 (前編)

Home > Advent Calendar > 50日後にセンサレスベクトル制御してみたい俺 (前編)
すき 2
うんこ 0

HomeMadeGarbage Advent Calendar 2022 |6日目

これまで弊ブログにて ブラシレスモータ駆動への道 と題してブラシレスモータの回転制御に関する勉強をやってきました。

  • センサレス クローズドループ矩形波制御
  • オープンループ正弦波駆動
  • クローズドループ正弦波駆動

ベクトル制御も勉強したいなと思いつつ なんか難しそうだしと敬遠する自分がいたので “50日後にセンサレスベクトル制御してみたい俺” と銘打って毎日少しずつ勉強することにしました。

毎日少しでもモータのことを考えれば少しは理解も深まるだろうと思った次第です。
ここでは前後編に分けて私のこの50日間について記載します。

 

構成と思想

回路構成は以下の通りです。

クローズドループ正弦波駆動の時の構成に電流センサを追加したのみです。
変数調整用にと可変抵抗を繋げていますがここでは使用せず、BlynkレガシーアプリでBLEで変数調整しました。

部品

取り組むための思想

“50日後にセンサレスベクトル制御してみたい俺”に取り組む際に意識した点についてまとめます。

  • 専用評価キットや専用コントローラは使用しない
    これは原理を理解するために”ブラシレスモータ駆動への道”から決めている掟です。
    専用のものは高いですし、それを使って回しても私の場合は理解につながらないため。
  • 制御ループを一定で管理しない
    これはESP32を採用した弊害とも言えるかもしれないのですが、仮にモータを自由に制御できるようになったとしてコントローラをモータ専用で使用する機会は私の人生においてないであろうと考えこの思想に至りました。
    モータを回しつつ何かを実行することになるだろうし無線で何かしらしたいであろう。
    ここではESP32を用いて制御ループ時間は一定管理せず2コアで一方でセンシング、他方で駆動で実験を進めました。

3相->2相変換

モータ回転時の3相電流をセンシングして2相変換する手法を学びます。

 

電流は2個のセンサを用いて測定し、Iwは3相平衡が成立していると考えて Iu + Iv +Iw = 0 から導出しました。
またモータは正弦波駆動で回転させています。

 

Iα, Iβ算出 (Clarke変換)

 

Id, Iq算出 (Park変換)

 

電流の2相変換の理解のために色々な記事・書籍を参考にしました。

ここまでは特に以下が参考になりました。

  • Clarke-Park 変換(クラーク・パーク変換)
  • STマイコンで始めるブラシレス・モータ制御

 

正弦波駆動にて正弦波の周期を変えてId, Iqを観測


正弦波駆動にて正弦波の振幅を変えてId, Iqを観測


振幅を変えるとモータに流れる電流が変わりIqが大きく変化する様子が観測できました。

 

3相電流から直接 Id, Iq算出


以下を参考に直接Id, Iqを算出してClarke変換、Park変換して算出した値と比較しましたが違いはありませんでした。

以後は3相電流から直接 Id, Iqを算出して使用します。

磁気エンコーダで回転検出

磁気エンコーダ AS5048を1周 (機械角) 0~512の値を出力するようにして観測しました。
モータは正弦波駆動で回しています。

 

モータを正弦波駆動で1周自由回転させて止まった地点のエンコーダ値をゼロとオフセットをかけるようにしました。

 

機械角から電気角を算出。14極 (7ペア)のモータを使用しており電気角は機械角の1/7となり値が荒くなってしまった。。

 

これまではESP32のコアを1つで実験してきました。
以下は2コア用いてcore0でエンコーダ検知とシリアル出力実施してcore1で電流 センシング&モータ正弦波駆動。
コア倍でエンコーダ検出及びシリアル出力処理が早くなった。


メガドライブミニ2をやらなくてはいけないのでサボったよね。(16日目も同様)

 

こちらの書籍も非常に参考になりました。

 

ベクトル制御にむけて準備

電流センスと磁気エンコーダによる回転検出が確認できましたので、更にベクトル制御にむけて調査を進めます。

 

Iqを指定して実測値と差分をとってPI制御によって正弦波駆動の振幅を制御してみた。

エンコーダ値から回転速度算出[rpm]。

ラジオ収録で忙しくてサボり

回転速度を指定して実測値と差分をとってPI制御によって正弦波駆動の周期を制御してみた。

 

正弦波駆動の位相をエンコーダによる電気角にして、Iq指定のPI制御で正弦波駆動の振幅を制御するがうまく回らず。。

しかし低速回転ではうまくいきました。

 

おわりに

ここまでで電流センスによる3相-2相変換と磁気エンコーダによる回転検出が確認できました。

更に低速ではありますが正弦波駆動の位相をエンコーダによる電気角にして、Iqを指定してPI制御で正弦波駆動の振幅を制御する方法でのモータ回転を確認できました。

徐々に機能と原理を確認しつつベクトル制御の準備を進め、実現に向けての機運も高まってまいりました。
しかし、この先には非常に険しい道が待っていたのでした。

後半につづく

コメントはこちらから

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

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