見出し画像

実際に使える制御工学:応用編(3)「ノッチフィルタによる振動抑制。お手軽にできる振動対策。」

<この記事で伝えたい事> 

  • 制御の高性能化を目指す上で、振動は避けてとおれない問題です
    それだけに、対策も色々あります。
    今回は、ノッチフィルタによる振動抑制方法を紹介します。

  • ある方法がうまくいかないときは、別方法への切り替えも大事です
    例えば、直感を頼りにした方法がうまくいかないとき、理論重視の方法に切り替えると意外にアッサリうまくいくことがあります。




1. はじめに

自己紹介はこちらです。

この記事は、主に若手~中堅エンジニアに向けた技術紹介・解説記事シリーズの第3弾です。

今回は、最もお手軽な振動対策と思われる方法を紹介・解説します。


2. 速度制御ゲインを上げたときの発振

応用編(1)の3重ループ制御で、位置・速度・電流制御ループ応答周波数の大小関係が

(位置制御) ≪ (速度制御) ≪ (電流制御)

になるよう調整すると言いました。
基本的に、そうすべきです。
 
しかし、ときには電流制御と同等かそれ以上の速度制御ループ応答周波数を要求されます。
チャンピオンデータを測定したい場合などは、その代表例ですね。 

 
例えば、PWMキャリア周波数を16[kHz]とします。
ふつう、電流制御のサンプリング時間はPWMキャリア周波数に合わせます。

すると、電流制御ループ応答周波数は1.6[kHz]程度とするのが妥当です。
(制御ループの応答周波数上限はサンプリング周波数の1/10程度が推奨されるため) 

普通なら、速度制御ループ応答周波数は更に1/10の160[Hz]程度に留めるのが良いでしょう。

ところが、今回は
「チャンピオンデータ測定のため速度制御ループ応答周波数をできるだけ上げてほしい」
と頼まれたとします。


そこで、ちょっと頑張って速度制御ループ応答周波数を1.4[kHz]まで上げたとします。
下図は、この条件でのシミュレーション結果です。
(シミュレーションの詳細条件は付録に示します)

ゲインを上げすぎたときの速度波形
ゲインを上げすぎたときの速度波形

一見、速度波形は振動していないように見えます。
しかし、拡大すると振動しているのが分かります。 


次は、トルク波形を見てみましょう。

ゲインを上げすぎたときのトルク波形
ゲインを上げすぎたときのトルク波形

明らかに振動しているのが分かります。
この周波数は約1.7[kHz](1周期599[μs])です。


3. 直感に従ったときのノッチフィルタ適用結果

「1.7[kHz]で振動するなら、ノッチフィルタで1.7[kHz]をカットすれば振動は止まるのでは?」

と思うのが、直感的で自然な発想でしょう。
私自身、何も知らなければそうすると思います。

トルク指令にそのノッチフィルタ処理をかけたときのシミュレーション結果を下図に示します。

直感的にノッチフィルタを使ったときの波形
直感的にノッチフィルタを使ったときの波形

制御系が不安定化して、速度・トルク共に発散するのが分かります。
(実機だと摩擦が止めてくれるかもしれませんが) 

何故、このようなことが起こるのでしょうか?
それは、速度制御ループ一巡伝達関数の周波数特性を見ると分かります。

速度制御ループ一巡伝達関数の周波数特性
速度制御ループ一巡伝達関数の周波数特性

ノッチフィルタ適用後は、1.7[kHz]でゲインが急低下しています。
このことから、ノッチフィルタは正常に機能していると分かります。
それにも関わらず、制御系は不安定化してしまっているのです。 

一方、位相に着目すると、以下が分かります。

•ノッチフィルタ適用前の位相余裕は$${\bm{26.8_{[deg]}}}$$

•ノッチフィルタ適用後の位相余裕は$${\bm{-4.3_{[deg]}}}$$
(不安定)

このことから、不安定化の原因は、ノッチフィルタ適用による位相遅れの増大と言えます。


4. 不安定化原因の深掘り

不安定化の原因は、ノッチフィルタと分かりました。
そこで、その特性を再確認してみましょう。

ノッチフィルタ単体での周波数特性
ノッチフィルタ単体での周波数特性

ノッチフィルタは、ゲインが0[dB]を超えることはありません。
このため、ゲイン余裕の観点では必ず有利にはたらきます。
(ゲインが下がると、ゲイン余裕は大きくなります)


一方、位相については、

•ノッチ中心より低い周波数では、位相が遅れる

•ノッチ中心より高い周波数では、位相が進む

という二面性を持ちます。


ノッチ中心を振動周波数にピタリ合わせると、それより低い周波数域での位相は遅れます。

低い周波数でのゲインは大きい傾向があるので、増大した位相遅れによって制御が不安定化するケースはそれなりにあります。


ノッチ中心は、振動周波数よりやや低く設定すると良いです。
そうすると、振動周波数付近でゲイン低下と位相進みが同時に生じます。
いずれも安定性改善に有利なので、振動改善が期待できます。


ちなみに、この調整指針は経験則的にも知られています。
(web検索で「ノッチ中心は振動周波数よりやや低く設定すると効果的」とする技術文書を見つけたことがあります)



なお、ノッチの深さが∞だと、ノッチ中心より低い周波数での位相遅れが大きく、狙った振動抑制効果が得られない場合があります。
分子側にも減衰係数を持たせ、ノッチの深さを浅くするのが実践的です。


分子側にも減衰係数を持たせたときのノッチフィルタ伝達関数は下式です。
($${\zeta_n}$$は分子側減衰係数、$${\zeta_d}$$は分母側減衰係数、$${\omega_n}$$はノッチ中心角周波数)

$$
G_{(s)}=\frac{s^2+2\cdot \zeta_n\cdot \omega_n\cdot s+\omega_n^2}{s^2+2\cdot \zeta_d\cdot \omega_n\cdot s+\omega_n^2}
$$


5. 適切なノッチフィルタによる振動改善

•ノッチ中心角周波数を振動周波数より30% 低く設定
($${\omega_n≒(2\cdot \pi)\cdot1.2\times 10^{3}_{[rad/s]}}$$)

•分子減衰係数$${\bm{\zeta_n}}$$を分母減衰係数$${\bm{\zeta_d}}$$の2/3程度の数値に設定
($${\zeta_n=0.33, \zeta_d=0.5}$$)

としたときのシミュレーション結果を下図に示します。

適切なノッチフィルタの効果
適切なノッチフィルタの効果

完璧ではないものの、大幅に振動が改善します。
より滑らかなモーションを使えば、更に振動を抑えられます。


なお、このときの速度制御ループ一巡伝達関数の周波数特性は下図のようになっています。

適切なノッチフィルタを使ったときの一巡ループ伝達関数特性
適切なノッチフィルタ適用時の一巡ループ伝達関数特性

位相余裕という指標だけ見ると、わずか3[deg]しか改善していません。

しかし、1.2[kHz]付近より高い周波数域での特性を見ると、ノッチフィルタ適用後の方がゲイン・位相共に安定性面で有利です。

これが振動の大幅改善につながっています。


6. おわりに

この記事では、ノッチフィルタによる振動抑制を紹介・解説しました。
 
おそらく、ノッチフィルタは、最もお手軽に振動を抑制できる方法です。
スケジュールに余裕がない場合、とりあえず試す価値はあると思います。
 
また、多くの場合、人間の直感はアテになりますが、そうでないこともあります。
そんなときは理論面から仕組みを読み解くアプローチへの切り替えをオススメします。
 

前回:応用編(2)「モーション生成」はこちら
次回:応用編(4)「外乱オブザーバ」はこちら


付録. シミュレーションの詳細条件

下図は、Simulinkモデルの全体図です。

シミュレーションに使ったSimulinkモデル
シミュレーションに使ったSimulinkモデル

シミュレーションパラメータは以下のとおりです。

// パラメータの定義
Kt=0.01;
Ke=0.01;
R=1.0;
L=0.5e-3;
J=3e-4;
Td=31.25e-6;
// Kt:トルク定数[Nm], Ke:逆起電圧定数[V/(rad/s)], R:電気抵抗[Ω]
// L:コイルインダクタンス[H], J:モータ慣性モーメント[kgm^2], Td:ムダ時間[s]


ts=62.5e-6;
wi=2*pi*1600;
wv=2*pi*1400;
// ts:サンプル時間[s](電流・速度制御共通)
// wi:電流制御応答周波数[rad/s]
// wv:速度制御応答周波数[rad/s]

前回:応用編(2)「モーション生成」はこちら
次回:応用編(4)「外乱オブザーバ」はこちら

いいなと思ったら応援しよう!