BLDCベクトル制御を理解するまで(これ色々間違ってました)
✍🏻

BLDCベクトル制御を理解するまで(これ色々間違ってました)

Tags
Research
BLDC
Published
February 10, 2022
🥲
個人的にベクトル制御を理解するために(inProgress)書いているノートを公開します。ここに書いてあることは正解ではないです。情報は公開しますが見られるだけは寂しいので間違っている部分があれば指摘してくださいると嬉しいですし、よかったところがあったらクチコミしていただけると嬉しいです。頑張れます。

Hello なんもわからん

数学もわからんし。言葉もわからないしもうダメ。こんにちは何もわからない人です。
まずはこの動画をみましょう。
Video preview
💬
センサレスベクトル制御、センサレスといいながらも電流センサで電流の大きさをみていますね…”センサレス”なのに”電流をセンシング”しています!!面白いですね…(?)
この動画で分かる通り、数学の知識がめっちゃ必要です。座標変換系の数学知識がないと理解できないので線形代数は軽く勉強しておいて方が良さそうです。東芝さんが神みたいな教材を作ってくださっていますのでこちらも合わせて見ていこうと思います。

センサレス駆動って何

電流を読んでPI制御をする。電流値はId,Iqという2つの変数で与えられる。
単純に言えばこれがセンサレス駆動なのでしょうか。
notion image
📌
この動画と図から読み取ったメモ
  1. ⑥→⑦3本の電流(IuIvIw)を監視
  1. ⑦→⑧2相の電流の座標(,)を回転座標(IdIq)に変換
  1. ⑧→②回転座標(IdIq)をあらかじめ決めておいた目標値(Idref,Iqref)に近づけるためにPI制御を使う。ついでに角度θも取得(?)
  1. ②→③電流を制御したいけど電流の制御はできないので電圧(VdVq)を与えて制御できるように頑張る
  1. ③→④回転座標(あたえられたVdVq)から固定座標に変換(,)
  1. ④→⑤空間ベクトル変換で与えられた2相の電圧(,)をインバータに入れる信号(U,V,W)に変換
  1. MDでモータが回る

変換の数学について

何もわからんけどここで解説してくれている。
Video preview
  • クラーク変換
  • パーク変換
これが変換の数学で出てくる公式名たち。
何もわからないんでここで勉強しようと思う。

3相電流から2相電流を取得する

上の記事を全部見たら少しは今から書くことが理解できそうです。
3相(a,b,c)から2相(d,q)に電流を変換します。しかし3相の電流の合計値は0になりますので、これを利用することで2つの電流値(Iu,Iw)からIvを算出することもできます。
どうやら3相のうち2つの電流値を使うことで2相電流(Iα,Iβ)を導けるっぽい。””
📌
クラーク変換で3相から2相へ変換する時に2つの電流値だけで計算できてしまう理由
  1. 理想の3相交流では(というよりキルヒホッフの法則では)
    1. になる
  1. クラーク変換の式は
// 私は数式を書くよりもコーダー寄りなのでこっちで書きます。 struct threePhaseCurrent{ // U,W,Vの電流値を代入する float a; // 0度 float b; // 120度 float c; // 240度 使わないということで }; struct DQCurrent{ // U,W,Vの電流値を代入する float d; float q; }; const float root3 = 1.73205080757; // sqrt(3) threePhaseCurrent current3; DQCurrent currentDQ; float electricAngle; // 電気角(シャフトの角度 * 磁石の極数(偶数) float iAlpha,iBeta; // 2相の電流 //current.a = Uの電流値 //current.b = Vの電流値 //3相から2相iα,iβに変換 iAlpha = current.a; // 各軸に並行な成分を集めたもの iBeta = (current.a + 2 * current.b)/root3; // 各軸に直行する成分を集めたもの //パーク変換(これってただの座標回転では?) currentDQ.d = iAlpha * cos(electricAngle*(180/PI)) + iBeta * sin(electricAngle*(180/PI)); currentDQ.q = iBeta * cos(electricAngle*(180/PI)) - iAplha * sin(electricAngle*(180/PI));
あっているかすごく怖い。

電気角と機械角

電気角とは磁石S極からN極までで1周期でカウントする世界のことです。
機会角はモーターのシャフトの角度を表しています。
電気角(electricAngle)シャフトの角度*磁石の極数になります。
  • NSの2ペアで磁石は成り立つので極数は2の倍数になります
  • 機械角はモーターの軸の角度
notion image

センサレスとセンサードの違いはどこで生まれるか

💬
電気角の取得方法によって別れます
センサレス:電流センサの値(逆起電力)から電気角を推定する場合
センサード:エンコーダなどから取得できる角度を使って電気角を取得する場合

センサレスベクトル制御じゃなくても…

電流センサだけでベクトル制御をしなくても、モータは回すことはできます。
ホールセンサを使って120度通電制御でモータを回せます。
以下のサイトがわかりやすく書いてくれていたので載せておきます。
notion image

PI制御??フィードフォワード制御?

PI制御やフィードフォワード制御というのは、
この図はPI制御?フィードフォワード制御?どっだと思いますか?
🐴
この馬は走り続けていたらずっとにんじんをいただくことはできないのですが、急ブレーキかけたらその勢いでにんじんが跳ね返ってきてて食すことも可能なはずですが…かわいいですね😌
notion image
PI(D)制御はフィードバック制御と呼ばれるものです。
制御結果に応じてよしなにする制御です。値をみて、それに対して動かしてみる。それで外乱が生じたらそれに対して処理をする。なんというか、地球に隕石が降ってくるのを研究者が観測して、降ってくることだけはわかっていてもフィードバック制御では地球に降り注いでから「じゃあどうしましょっか」ってなっている人です。
フィードフォワードは未来を予測するような制御とも言えます。
一方フィードフォワード制御はあらかじめどのように動くかを知っていて、近い未来でどのように動くかを予想し、未来を信じて行動し続ける制御のことですね。いつの日か隕石が降ってくることが確定しているのだから地球に降ってきて影響が大きくなる前にシェルターを作るとか。

これはフィードバックかフィードフォワードか

RoboCupのサッカーロボットです。このロボットは前を向き続けてあらゆる方向に動くことができるオムニホイールを搭載しています。
Video preview
💬
この姿勢制御ではつぎの10ミリ秒後に自分がどっちの方向を向くのかを常に予想しながら比例制御をして、追い越しそうなら逆向きの回転成分をプラスするように(減速/ブレーキ)しています。これはフィードバックです。

BLDCを回す時のPI制御はどんなことをしているか

東芝ではPI制御で書かれているので一旦こっちで理解を進めます。
先ほどdq電流について求めたので、理想とする電流値(Idref,Iqref)を目指してにPI制御します。
しかしPI制御で制御できるのは電流ではなく電圧(PWMで作り出す平均的な疑似電圧)
💬
手の上に棒を置いてバランスを保つゲームしたことありませんか???
notion image
片手でも倒れないように棒の角度を決められればいいんですが、できないので現在の傾き具合を目で確認してから手の位置をを動かす。それでバランスを保ちますよね。
電流を制御したいけどできないから、現在の電流値を見て、電圧でフィードバックして、電流を保つのはこういうイメージだと思います。

資料