最近Twitter上でベクトル制御が流行っているようですので、自分もやってみることにしました。
というのも、実はまたVVVFカートを作ろうとしていてですね、以前のVVVFカートは単純なV/f制御だったので、今回はできればベクトル制御で動かしてみたいわけです。その試作ということです。
ちなみに前回の記事の3レベinvもVVVFカートに搭載予定だったりします。


「ベクトル制御」は聞いたことあるけど、そもそもベクトル制御ってなんぞや?ってところから始まりました。
自分は交流モータをいい感じに回すやつだと思ってたのですが、やはりそれであってるようです。
具体的には、交流モータを直流モータと同じように簡単に制御できるようにするものです。
直流電動機は界磁巻線に「界磁電流」と電機子に「電機子電流」それぞれをいい感じに流すことでトルクを制御できます。
交流電動機は交流を流せば回りますが、「界磁電流」「電機子電流」がなく制御が難しいです。
そこで、それらに対応するように、交流モータに流れる電流をうまいこと演算して「界磁電流」(Id)と「トルク電流」(Iq)に分解します。そうすると交流モータも直流モータに見えてきて簡単だよね!ってお話らしいです。


とはいえ何をどうすればいいか全然わからなかったので、すでにベクトル制御履修済みのっょっょオタクにアドバイスを貰いまくって作っていきました。

回す対象ですが、今回は誘導電動機を使ってやることにしました。
制御するなら同期電動機のほうが簡単らしいですが、入手性の問題的に無理矢理でも誘導機を使ってやります。オタクによると誘導機はスベリがあるせいですごく面倒な感じになってるらしいです。

センサありにしろセンサレスにしろ速度センサが必要っぽいので3Dプリンタでエンコーダを作りました。15枚羽で解像度が荒すぎるので一旦速度を得てから機械角に変換します。誘導機なのでそのへんは雑でも大丈夫だと信じてる(てきとう)
EMPfRQvVAAAyZYj


そんなこんなでいろいろ試して、なんとか完成したのがこちら。
Iqに音声を重畳させることでモータから音声発生させるものです。



これの元ネタはこちらの動画で、自分はn番煎じとなります。
キャリア周波数で音声を出してるのではなく、トルクをいじって回転子を細かくプルプルさせて反作用でモータと床が振動することで音が出ます。
ベクトル制御ではd軸・q軸を制御することと、スピーカアンプのD級アンプをかけて、dqアンプとか勝手に言っています。

制御ブロック図はこちら(pdf)の図8-1とほぼ同じ構成になっています。センサあり・すべり周波数型ベクトル制御です。
制御にはSTM32F446REを使っています。PWMキャリアは25kHz、制御周期は50kHz(キャリアと山と谷でPWM値を更新できるので)です。
インバータは昔作ったコレ
オシロはIq指令(水色)と実際のIq(黄色)を表示しています。それぞれの波形はマイコンからDACで出しています。

ステップ応答を確認してみました。なんかノイズが乗っちゃっていますが見なかったことにしてください。
DS1Z_QuickPrint116
100HzでIqをふってみています。
Iq指令にIqが素早く応答すればベクトル制御がうまく動いてると言えるらしいのですが、まぁ初めてにしてはまずまずなんじゃないの?って感じです。

ベクトル制御履修済みっょっょオタクに確認していただいたところ、ベクトル制御ちゃんと動いてる認定をしていただけました。教えていただきありがとうございました。

というわけでなんとかベクトル制御ができたみたいです。とりあえず満足したし切りもいいのでここからの進捗はありませんが、VVVFカートを作るときにまたいじることになりそうです。