電源回路設計の安定化の評価と電子回路の事前検証

DC/DCコンバータの安定性評価

スイッチング電源回路(DC/DCコンバータ回路)の設計で課題のひとつとなるのが、帰還ループのゲイン特性と位相余裕です。この2つのパラメータは、負荷変動に対する応答特性を左右するとともに、発振のない安定した動作の確保にとても重要です。

両者を評価するには、横軸に周波数を置いて、縦軸に帰還ループのゲインと位相をプロットしたボード線図(あるいはボーデ線図)を用います

図1において、赤はゲイン(左の目盛)、青は位相(右の目盛)を表します。負帰還ですので、周波数が低い領域では位相は180°ずれていますが、周波数が高くなるに連れて帰還ループの遅れ成分により減少していきます。

このボード線図で重要となるのがゲインが0dBとなる周波数で、これをクロスオーバー周波数(fc)と呼びます。もうひとつがクロスオーバー周波数における位相量で、これを位相余裕と呼びます。また、位相が0°と交わった周波数における利得を利得余裕と呼びます。

図1のグラフからは、クロスオーバー周波数はおよそ76kHz、位相余裕は53°、利得余裕は16dBと読み取れます。

位相余裕と利得余裕から帰還ループの安定度が分かります。あくまで参考値で条件によって異なりますが、位相余裕60°、利得余裕10dB程度が適切とされています。最良の応答が得られるのは、位相余裕45°、利得余裕7dB前後の場合です。位相余裕がこれよりも小さくなると、負荷変動に対して出力電圧のリンギングなどの現象が発生します。

図1. 横軸に周波数を、縦軸にゲインと位相をプロットしたボード線図 ゲインが0dBとなる周波数をクロスオーバー周波数、クロスオーバー周波数における位相量を位相余裕、位相が0°と交わった周波数における利得を利得余裕と呼ぶ
図1. 横軸に周波数を、縦軸にゲインと位相をプロットしたボード線図 ゲインが0dBとなる周波数をクロスオーバー周波数、クロスオーバー周波数における位相量を位相余裕、位相が0°と交わった周波数における利得を利得余裕と呼ぶ

スイッチング電源の帰還ループのボード線図を得るには、FRA(Frequency Response Analyzer:周波数特性分析器)という測定器を用います(図2)。

まず、図2に示すように、出力電圧を帰還ループに与える経路に50Ωから100Ω程度の注入抵抗を直列に挿入します。注入抵抗の下側端子にFRAから与えられた交流信号は、帰還抵抗、誤差アンプ、PWM回路、スイッチング回路、およびフィルタを経由して、注入抵抗の上側端子に現れます。周波数をスイープしながら測定した抵抗両端のそれぞれ電圧と位相から、ボード線図が描かれます。

図2. ボード線図を得るにはFRAを用いる DC/DCコンバータの帰還ループに対しては、注入抵抗を挿入して、周波数をスイープしながら交流電圧を与え、注入抵抗の両端の電圧と位相を測定する
図2. ボード線図を得るにはFRAを用いる DC/DCコンバータの帰還ループに対しては、注入抵抗を挿入して、周波数をスイープしながら交流電圧を与え、注入抵抗の両端の電圧と位相を測定する

 

ループ位相補償とトランジェント特性

位相余裕が少ない場合は帰還ループにRCの位相補償回路を挿入します。位相補償用の専用ピンを備えるDC/DCコンバータデバイスもあります。

ボード線図とスイッチング電源の応答特性の関係を調べてみます。図3はあるスイッチング電源の帰還ループのボード線図(左)と、負荷変動応答に対する電圧変動(右)です。

 

図3. ボード線図と負荷変動応答の関係 位相補償端子に15kΩ+ 470pFのRCを接続したとき、位相余裕は45°となって、良好なトランジェントが得られた。この状態からCを増やすと応答は鈍化し、Rを大きくすると電圧の変動幅は小さくなる
図3. ボード線図と負荷変動応答の関係 位相補償端子に15kΩ+ 470pFのRCを接続したとき、位相余裕は45°となって、良好なトランジェントが得られた。この状態からCを増やすと応答は鈍化し、Rを大きくすると電圧の変動幅は小さくなる

ループ補償が15kΩと1000pFの直列RC回路のとき、ボード線図から、クロスオーバー周波数は43kHz、位相余裕は応答が最良となる45°であることが分かります。特性を見てみると、電流変化(緑色)に対して電圧の変動応答は高速で、リンギングなどは見られません。

ここで、補償RC回路のうちCの容量を増やすと、位相余裕は大きくなりますが電圧応答は鈍化します。また、Rを大きくすると、クロスオーバー周波数は高くなり、電圧の変動幅(ΔV)は小さくなるという性質を示します。

一般に、電圧応答の変動幅ΔVを小さくするには出力コンデンサ(COUT)の容量を大きくしようと考えがちですが、実はΔVはCOUTの関数ではありません。改善するには補償回路のRを大きくします。

 

LTspiceでボード線図を描く

FRAが揃えられない場合や電源回路の完成前に検証したい場合などは、LTspiceでもボード線図を描くことができます。

まず、FRAでの計測と同じように、100Ωの注入抵抗(R9)と電圧源(V4)を帰還ループに挿入します(図4)。電圧源(V4)から20kHzから80kHzの範囲の正弦波をループに注入し、注入抵抗の上側(A点)と下側(B点)の電圧値を .measure コマンドを用いて求めます。結果はSPICE Error Logに出力されるので、"Plot .stepped .meas data" メニューからグラフ化することで、ボード線図が得られます(図5)。

ただし、LTspiceでのボード線図の取得にはそれなりの実行時間と手間が必要ですので留意してください。また、DC/DCコンバータデバイスのモデルには周波数成分は組み込まれていませんので、結果はあくまで参考として解釈する必要があります。

図4. LTspiceでボード線図を描くには、出力電圧から帰還ループへの経路にFRAでの測定と同じように注入抵抗(R9)と電圧源(V4)を挿入する
図4. LTspiceでボード線図を描くには、出力電圧から帰還ループへの経路にFRAでの測定と同じように注入抵抗(R9)と電圧源(V4)を挿入する
図5. SPICE Error Logに出力された実行結果を "Plot stepʼed .meas data" メニューでグラフ化した例右下がりの直線がゲイン、山になっている折れ線が位相を表している
図5. SPICE Error Logに出力された実行結果を "Plot stepʼed .meas data" メニューでグラフ化した例右下がりの直線がゲイン、山になっている折れ線が位相を表している

 

LTspiceを用いたコーナーケース解析

セミナーの後半では、電子回路の特性検証で課題になるコーナーケース挙動をLTspiceで解析する方法を説明します。LCRなどの受動部品は、特性のグレードにもよりますが、一般にコンデンサは±10%、インダクタは±20%程度のばらつきを持ちます。設計は公称値で行うにしても、値がばらついたときのコーナーケースを把握しておかなければなりません。

受動部品の個数が少なければ人手で求められますが、部品数が多く、かつ、複雑な回路の場合、どの部品がどうばらついたときにコーナーケースが生じるかがそもそも分かりません。そのため総当り的に求めていく必要があります。

ここでは、インダクタ4個、コンデンサ4個、抵抗2個で構成される、カットオフ周波数1MHzの8次のチェビシェフフィルタを題材として取り上げます(図6)。このうち抵抗は精度1%のものもありますのでばらつきは無視し、インダクタとコンデンサのみのばらつきを考えます。

図6. インダクタ4個、コンデンサ4個、抵抗2個で構成されたカットオフ周波数1MHzの8次のチェビシェフフィルタ
図6. インダクタ4個、コンデンサ4個、抵抗2個で構成されたカットオフ周波数1MHzの8次のチェビシェフフィルタ

LTspiceでパラメータを変えるには、ユーザー定義変数をスイープする .step param文を使う方法、モンテカルロ法のmc(x, y)を使う方法、ガウス分布のgauss(x)を使う方法があります。

このうち.step param文は3部品までしかネストできないため、今回のように8部品のパラメータを振りたい場合には対応できません。また、mc(x, y)とgauss(x)は、ばらつきによる特性変化分布はシミュレーションできても、どのパラメータのときにコーナーケースが得られたのかが分からないという制約があります。

 

LTspiceを用いたコーナーケース解析

そこで、ユーザー定義関数である .func文を用いて、インダクタとコンデンサの8個の部品に対するばらつきの組み合わせ256通りについて、順にシミュレーションを実行する方法を考えてみます。

まず、対象となる8個の部品にindexを振り、それぞれ、マイナスばらつきに対しては0を、プラスばらつきには1を割り当てます。こうすることで256通り(0~255)のrun番号が得られます(図7)。この真理値表はユーザー関数binaryとして次のように定義できます。

.func binary(run,index) floor(run/(2**index))
-2*floor(run/(2**(index+1)))

さらに、この binary 関数によって得られた各素子のrun番号に対する数値(0または1)から、各素子の最小値と最大値を返すユーザー関数 wc を次のように定義します。

.func wc(nom,tol,index)
if(run==numruns,nom,if(binary(run,index),
nom*(1+tol),nom*(1-tol)))

以上の関数を実行すると、ばらつきの組み合わせ256通りと公称値を合わせた257通りの波形が得られます(図8)。ここから、振幅が最小となるrun番号と最大になるrun番号が分かりますので、先ほどの真理値表から各部品の値(マイナス側またはプラス側)を求めます。

チェビシェフフィルタの場合、たとえばカットオフ周波数の2倍の周波数にて減衰特性を調べ、減衰度がもっとも大きいrun番号ともっとも小さいrun番号から、コーナーケースが把握できます。

パラメータを振るこのようなパラメトリック解析の手順については、「LTspice:Worst-Case Circuit Analysis with Minimal Simulations Runs」という技術記事(LTspice:Worst-Case Circuit Analysis with Minimal Simulations Runs 英文)がアナログ・デバイセズのホームページにまとめられていますのでご参照ください。

図7. 各素子をindexとし、マイナスばらつきを0、プラスばらつきを1にした256通り(run)の真理値表をMicrosoft Excelなどで作成しておく
図7. 各素子をindexとし、マイナスばらつきを0、プラスばらつきを1にした256通り(run)の真理値表をMicrosoft Excelなどで作成しておく
図8. 真理値表を表すユーザー定義関数binaryと、最小値と最大値を表すユーザー定義関数wcを用いて、ばらつきの組み合わせ256通りと公称値とを合わせた257通りのシミュレーションを実行し、振幅が最大となったrun番号と最小となったrun番号をコーナーケースとし、真理値表から各素子のパラメータを求める
図8. 真理値表を表すユーザー定義関数binaryと、最小値と最大値を表すユーザー定義関数wcを用いて、ばらつきの組み合わせ256通りと公称値とを合わせた257通りのシミュレーションを実行し、振幅が最大となったrun番号と最小となったrun番号をコーナーケースとし、真理値表から各素子のパラメータを求める

以上、DC/DCコンバータ回路におけるボード線図を用いた安定性の評価手法と、高次フィルタを題材にLTspiceを使ってコーナーケースを求める方法を説明しました。いずれもページ数の都合から手順の一部を省略していますので、ご不明な点などがあればお問合せください。

Generic_Author_image

原田 秀一