2017年5月10日水曜日

ブラシレスモータのコギングやトルクリプル抑制について考察

しばらく悩んだ内容をメモします。

続編書きました。

ブラシレスモータのコギングやトルクリプル抑制について考察(2)



コギングとは

低速回転でベクトル制御(D=1、Q=0)で回転させたときに発生する回転のひずみ。


トルクリプルとは

ベクトル制御(D=0、Q=1)で回転させたときに発生する回転速度のムラ。
 応答遅れなどによる時定数があるので、即応性が得られず遅延を考慮する必要がある。


コギングの問題

・静止時の位置決めの精度に影響を及ぼす。
・回転時のトルクリプルに影響を及ぼす。


コギングの補正案

ゴール:ベクトル制御(D=1、Q=0)できれいな円を描けるようにする。

成功案

・UVW出力波形に第3高調波成分を付加することで回転の動きが変わる。

失敗案

・ベクトル制御(D=1)は固定してQ成分を付加するとモータが音鳴りする。
・ベクトル制御(Q=0)は固定してD成分を変動させても効果がない。


トルクリプル補正案

ゴール:ベクトル制御(D=0、Q=1)で速度を一定にする。

成功案

・速度制御、加速度制御の2ブロックで制御する。

未検証案

・フーリエ変換を用いてUVW波形を生成する。




加減速について

制御の視点をどこに置くかで変わるし、外乱の影響や遅延時間がとても影響していて何とも言えない部分。


加速側

・タイムチャートの時系列を基準に制御した時、外乱の影響や遅延時間を考慮しなければならないので現実的ではない。
・現在速度を基準に制御した時、タイムチャート通りの変化は得られないが外乱の影響や遅延時間を考慮しなくてよくなる。

減速側

・タイムチャートの時系列を基準に制御した時、減速中にもかかわらず加速したり減速したりして波打つ。
・現在速度を基準に制御した時、最初の遅延時間が影響して遅れて減速が始まる。
・停止位置を考慮する場合も遅延時間が影響して最適な速度が得られない。


まとめ

以上の問題1つ1つが悩ましい問題で、モータ固有の特性も考慮しなくてはならないし、すべてが明確な解決方法というのが存在しない。
こういう自分は画像処理のフィルタ処理を思い浮かべて考えている。
画像処理にはノイズだらけの画像をきれいに見せるのにメディアンフィルタやソベル、ラプラシアン、ガウシアン、NL-Meanなどいろんなフィルタがあり、これらフィルタリング技術はそのままブラシレスモータにも転用できるからである。
ブラシレスモータの場合、フィードバック制御内で計算するので、計算処理自体軽くする必要があるので、軽くて一番効果が期待できるメディアンフィルタが一番最有力。本来はガウシアンフィルタにしたいけど、計算量が増えるのでまだ導入はしていない。
あとオーディオ関係のノイズフィルタでKL法というのがあり、これも試してみたところではある。


最後に色ぶつかって通ってきた道のりを書いておきます。

レベル1.モータを動かすまで
 ブラシレスモータを扱うにはまずUVW3波出力する所から始まります。
その次にFETのターンオン・ターンオフ時間、デッドタイム補間を行わないといけないのが分かってきます。
それらを攻略してオシロでUVW波形を見てみるといびつな波形をしてて訛っています。
これが先ほどのデッドタイムの影響+回路上の誤差。
これが個体ごとに異なっているのです。
単純にUVW波形を出力するのからPWMのスイッチング周期時間とUVW波形のセクタを考慮してタイミングの調整が始まります。
調整が終わるとモータの出力トルクの改善が実感できます。

レベル2 回転を制御する。
 ここでベクトル制御の実装が始まります。
ベクトル制御はD,Qの値で回転指令するものなので、そんな難しく考える必要はないです。
まずは現在の電気角、これをDベクトル、電気角を基準に進角方向をQベクトルとします。
これをDQ変換とか、AB変換など単語が出てきますがレベル1で作ったUVWテーブルがあれば、角度とDQ値さえ分かればなんとかなります。

レベル3 速度制御する。
 ベクトル制御ができるようになったので、D=0、Q=1指令すると回転します。
もちろんQの値を弱めれば遅い回転になっていると思います。
しかしよく見ると回転ムラがあることに気が付きます。
ようこそ、ここが樹海の入り口です。
そのムラはトルクリプルといいます。詳細は上へ。。


レベル3 位置制御する。
 モーターを回すだけじゃもの足りなくて、電気角で現在角度が分かるならモータで位置制御ができるだろうという考えで進みます。
位置制御というのは、目的地点まで移動させ停止させるものですが、これが意外と厄介。モータの遅延時間というのが存在するという事に気が付く。
目的地でD=1、Q=0にすればすぐ解決するのだが、モーターが発熱するのでD=0、Q=1で目的地で静止させたい。そんな欲望丸出しで突き進むと回転させるベクトルを停止させるにはモータの遅延時間を予測して外乱とモータ出力を均一化する作業となる。
さらに低出力で低回転させてると途中で止まってしまう問題と出くわすと思います。
ようこそ、ここが樹海の入り口パート2です。
その止まってしまうのはコギングといいます。詳細は上へ。。

レベル4 高効率化へ
 レベル2とレベル3が割とヘビーな問題でレベル1が全部ひっくり返すくらいのインパクトを持つ問題点なので、どの程度までチューニングするかは人によると思います。
大型モータを扱わなければ特に気にしなくてもいいのですが、世の中にはVVVF制御というものがあります。最近の鉄道関係はこのVVVF制御で音階ドレミを鳴らしたりMIDIを再生したりモータを楽器にして動画にしてる人がいてびっくりします。
このVVVF制御というのはPWM周期をいじって低回転の時は大電流を流して、高回転の時は小電流にしようという技です。
具体的には電圧÷周波数を一定になるように変化させていきます。電圧を強くすれば音が強くなるので遊びながらいじってみると楽しいですよ。


続編書きました。

ブラシレスモータのコギングやトルクリプル抑制について考察(2)


コメントを投稿

Androider