皆さんお疲れ様です。
本記事は非絶縁降圧スイッチングレギュレータの勉強をしてみよう。という記事の第8回目です。
今回は電圧モード制御の制御器設計を解説します。
電圧モード制御にはType3補償器を使います。
過去の私はType3制御器は「LCの共振周波数がここだから、まずその前後に一個ずつ配置してみて、ボード線図書いてみてどうだろう」というように、トライ&エラー的な設計をやっていました。
しかし最近、最高に簡単に設計する方法を知ったので、それを紹介します。この方法だと一撃で超簡単にType3補償器の設計をすることができます。
Type3補償器の設計方法がちょっとわかんないな
という方に参考になれば、幸いです。
【結論】セパレーションファクターを使う!
まず結論として設計手順を示します。
意味わからんすね。詳しく解説します。
Type3補償器の超簡単な設計方法の解説
Type3補償器は2つのゼロ点と2つのポールがあります。伝達関数を書くとこう↓で
$$\small{
G_{type3}=Kω_z\frac{(1+\frac{s}{ω_{z1}})(1+\frac{s}{ω_{z2}})}{(1+\frac{s}{ω_{p1}})(1+\frac{s}{ω_{p2}})}
}$$
ボード線図を描くとこんな感じです↓。
このゼロ点ωz1,ωz2と極ωp1,ωp2を一緒の位置に配置してやろうよ。っていうのが今回の設計方法の考え方です。
なので、伝達関数はこうなって↓
$$\small{
G_{type3}=Kω_z\frac{(1+\frac{s}{ω_z})^2}{(1+\frac{s}{ω_p})^2}
}$$
ボード線図はこうなります↓。
ここでセパレーションファクターkが登場します。
$$\small{
k=\frac{ω_p}{ω_z}
}$$
単純にゼロ点と極の比です。これを使うと、Type3補償器の位相の最大値は
$$\small{
Φ_{max}=-90deg+2tan^{-1}\frac{k-1}{2\sqrt{k}}
}$$
となります。クロスオーバー周波数ωcを使うと極の周波数は
$$\small{
ω_p=ω_c\sqrt{k}
}$$
となり、ゼロ点周波数は
$$\small{
ω_z=ω_c\frac{1}{\sqrt{k}}
}$$
となります。
Φmaxとkをグラフにすると以下のようになります。
このグラフから位相の最大値を決めるとセパレーションファクターkが自動的に決まります。kが決まるとωpとωzが自動的に決まります。
あとはDCゲインを上げ下げしたら、制御設計終了。簡単じゃないですか?すごくないですか?
設計具体例
具体例を設計してみて、理解を深めましょう。
この記事でパワーラインのみを設計した非絶縁降圧スイッチングレギュレータの制御設計をしてみましょう。
使用条件は以下の通りです。
項目 | 値 |
---|---|
入力電圧[V] | 12 |
出力電圧[V] | 5 |
負荷電流[A] | 1 |
スイッチング周波数[kHz] | 100 |
出力リップル電圧[mV] | 10 |
回路定数は見ての通り、インダクタは100μHとコンデンサは68μFです。
この回路にフィードバック回路を加えました↓。
制御設計を出来るようになりたい人はここで一度読むのを止めて、K,fp,fzはいくつに設定したらいいかを考えてみて下さい。
答えは出たでしょうか?では、実際にセパレーションファクターを使用して、制御設計してみようと思います。
狙いのクロスオーバー周波数と位相余裕度を設定する
クロスオーバー周波数はスイッチング周波数の1/10程度が目安です。なので、今回は100kHzの1/10の10kHzをクロスオーバー周波数とします。
位相余裕度は45deg以上が目安です。今回はより余裕をもって60degを目標とします。
$$\small{
fc=10kHz\\
位相余裕度=60deg
}$$
次です。
ゼロ点をωz1=ωz2、極をωp1=ωp2として、セパレーションファクターを導入
先ほどの説明の通りなので、ここは省略します。
自分の欲しい位相の最大値からセパレーションファクターを決定する
ここで、制御対象の周波数特性を測定し、クロスオーバー周波数fc時点で位相余裕度がいくつあるかを確認します。
は?周波数特性ってどうやって測定するの?ってなるかもですが、PSIMという無料で使えるシミュレータを使うとすぐに測定できます。(PSIM導入記事はこちらを参照ください。)
まずはPSIMで制御対象の回路図を書きます。
出力電圧が5V程度になる入力(2.2)を与えて、それに微小変動を加えて、出力電圧の揺れ具合を測定してます。
その結果が以下になります。
クロスオーバー周波数の位相余裕度はほぼ0degであると分かります。つまり、目標に対して60deg足りてないってことです。つまり、補償器のfc=10kHzにおける位相余裕度最大値は60deg必要ってなります。
ではセパレーションファクターのグラフを見てみましょう。
このグラフからΦmax=60degのときはk=57くらいと分かります。キリ良く、k=60とします。
はい、次です。
決定したセパレーションファクターからゼロ点と極周波数を計算する
あとは単純計算です。
$$\small{
fp=fc*\sqrt{k}≒77kHz\\
fz=fc*\frac{1}{\sqrt{k}}≒1.3kHz
}$$
はい、これでゼロ点と極の位置を決定できました。
DCゲインKを調整する
ためしにK=1として、Type3補償器の周波数特性を確認します。
結果は以下の通り
プラントと合わせて、ゲインが20dB/decで落ちていって、10kHzで交差すれば良いです。なので大体、100Hz付近で40dB程度あれば良いかな。って感じです。
プラントの100Hz時点でのゲインは10dB程度あり、↑の波形を見ると23dB程度あります。合わせて33dBくらいですかね。まぁK=1で良いんじゃね?と言う感じでK=1に決定します。
ボード線図の確認
ボード線図を最終確認します。
前回記事で解いたプラントの伝達関数とType3補償器の伝達関数を記述してpythonに計算して貰いました。その結果は以下です。
ちょっとfcが低いけど、まぁ良いのではないでしょうか。
ちなみにpythonでボード線図ってどう描くの?と思った方はこちら↓の本が超オススメです。良かったら読んでみて下さい。
回路で動作確認
せっかく設計したので、動かしてみます。補償器のパラメータを設定して↓
シミュレーション結果が以下の通りです。
ちゃんと動いてます。OKです!!
この補償器が伝達関数の状態からどうやって実際の回路に落とし込めば良いの?と思う方はこちらの記事で解説しておりますので、良かったら見てみて下さい。
はい、本記事はこれで終わりです。
何かの参考になれば幸いです。最後までお読みいただきありがとうございました!!