LTspiceを使った回路設計手法 7、NFBのループゲインと、安定性の評価 |
---|
ここでは、LTspiceを使ってNFBの安定度を評価する場合の基本的なポイントを確認します。 ●基礎知識: 発振はどのような条件で起こるか NFBの安定性については、「自動制御理論」で扱われるのが一般的ですが、面倒な数式がどんどん出てくるので結論にたどり着くまでが結構大変です。 定性的な説明として、「正帰還」で「ループ一巡のゲインが1を超える」と、振幅がどんどん増大して発振すると考えると理解しやすいです。ところが話はそう単純ではなく、「正帰還でループ一巡ゲインが1を超え」ても発振しない場合もあります。 発振するか否かは、ゲイン余裕(位相が180°回って負帰還のはずが正帰還になる周波数でのゲイン)ではなく、位相余裕(ループゲインが1になった時の位相回転が180°以内か)が最後の決め手になるのです。 注:NFBのゲイン余裕とか位相余裕とかの用語は、調べればすぐわかるのでこれ以上の説明は省略 これを理解するために、例として状態変数型の発振回路を見てみます。回路はこれ ↓ NFBループはVoutからR4=10kΩに戻されますが、オープンループゲインを見るためにR4への帰還を切って、U1の+入力に信号を入れています。 この場合のオープンループゲインは下のグラフのようになり、位相は常に180°なのでNFB側では正帰還、ゲインは発振周波数の1kHzで1です。 foより低い周波数ではどんどんゲインが上がるので、「正帰還でループ一巡ゲインが1を超える」度合いは1kHzより低いほど強くなります。 にもかかわらず、発振周波数はゲインが1となる1kHzになるのです。(NFBループを閉じた場合、100Hzでのゲインはほぼ0dB) 一番最初の理解:一巡のゲインが1を超えると振幅がどんどん増大するはず:では「何故?」と思いますが、ここは「現実はそんなもの」と認めるしかありません。 実際、周波数軸の理解ではなくて、微分方程式で時間軸の挙動を記述して式を解くと、ちゃんと1kHzの周波数の正弦波の応答波形が得られることが導かれ、この回路はきれいな1kHzの正弦波を出力するのです。(アナログコンピューターで微分方程式を解く実例として有名ですね。) つまり、「正帰還でループ一巡ゲインが1を大きく超える」状態の周波数では発振しません。 発振するのは、必ず 「ループゲインが1となる周波数」 です。 |
●発振するかしないかの分かれ目 回路の実例として、CR3段の位相型発振回路の解析で、NFB前後でゲインと位相の関係を見てみます。 右の回路は、10kHzカットオフのCR-LPFを3段重ねた回路で、10kHzでは45x3=135°、最終的には90x3=270°まで位相が回ります。 位相回転が180°になるのは、グラフのピンクの点線で約24kHz、その時の減衰量は29dBでアンプのゲインが28.3以上あれば発振条件が成立します。 グラフでは、アンプのゲインが15、20、28、40、60の場合をそれぞれプロットしています。 NFBループは閉じていないので、ゲインが変化してもグラフが上下に平行移動するだけで位相や形は全く変わりません。 位相が180°回るのは、常に24kHzで一定、 一巡ゲインが1(0dB)になるのは{gain}で変化し、それぞれ {gain}/周波数 15 / 16kHz 20 / 20kHz 28 / 24kHz 40 / 28kHz 60 / 33kHz この時の位相余裕は、ゲイン28でゼロ(180°回転)、ゲインがさらに上がると位相余裕はマイナス(180°以上回転)になっていきます。 位相余裕がゼロ以下になった所が発振ゾーン。 |
次に、右図のようにNFBループを閉じて、NFB後の周波数特性を計算させます。 赤い線がゲイン=28で、24kHzに於いてゲインが非常に上昇して発振開始するのが分かります。 ところがゲインがそれ以上に上がると、周波数特性のピークは下がっていき、一見安定してNFBが掛かっているかのように見えます。 これがシミュレーションの落とし穴で、水色とピンクの条件は、実は発振しているのです。 したがって、AC解析で周波数特性にピークもなく、フラットな特性が得られたとしても「発振しない」かどうかは判断できません。 このようになってしまうメカニズムとしては、振幅解析を単純に複素数の分数計算だけで済ましている事が挙げられますが、理論的には間違いでないのでやむを得ません。 グラフを良く見ると、NFB後の位相回転が本来は遅れるはずなのに、発振条件を超えた所では逆に進み位相になっているのに気が付きます。 これは、位相変化の軌跡が発振ポイントの"180°0dB" の外側を通る(=発振する)か、内側を通る(=発振しない)かを示していますが、位相回転がもっとひどくなると常にこのように反転するかは保証の限りではありません。 LTspiceで発振していないかを見るには、トランジェント解析も併用することが必須。 |
実際に0.4ms周期の100mV方形波を入力した時のトランジェント解析がこれ。 発振限界の赤い線は、短時間では振幅が成長しきらないので、24kHzの一定振幅。 発振開始条件を超えた水色とピンクの線は、時間と共に振幅がどんどん成長し、その速度はゲインが大きい(位相余裕の超過量が大きい)ほど早くなります。 実際に発振している周波数を見ると、オープンループゲインが1となる周波数であることが確認できます。 つまり、回路の固有振動数はNFBループゲインが1となる周波数で決まり、この条件での位相回転が180°未満では減衰振動、180°を超えると振動が成長=発振するのです。(位相が180°の周波数でゲインがいくら大きくても無関係) 【結論】 NFB後のAC解析で周波数特性を見ても、発振しないかは全く判断できない。 オープンループゲインが1となる周波数で、位相回転が180°未満なら基本的には発振しないが、 念のためにトランジェント解析で波形応答を見る必要がある。 ●NFB時のループゲインの簡易的な測定法 最後はトランジェント解析で確認するとしても、設計途中段階で発振してしまう場合、どうすれば止められるか(何が悪くて発振するのか)を検討するには、オープンループゲインを見て基本的なゲイン余裕と位相余裕がどれだけ不足しているかを確認しなければなりません。 DCゲインの大きな回路ではオープンループで動作点を正常に保つには、DCサーボ回路を追加するなどの工夫が必要なので、普通はNFBループを閉じた状態で回路の一巡ゲインを評価します。 具体的には、出力端子とNFB信号端子の間に電圧源を挿入し、その両端の電圧比を測定します。 最初に取り上げた、「複合ダーリントン(SAP)を使用したシンプルアンプの実験」で試作した回路で説明すると、下の図のように出力端子からNFBを戻す所に信号電圧源を割り込ませ、その両端の電圧(ここではV(NFB)とV(OUT)の2つ)の割り算「V(OUT)/V(NFB)」の値をグラフにプロットします。 結果が赤いグラフで、ループゲインが1となるのは2.6MHz、この時の位相余裕は約50°、 位相が180°回るのは10MHzでゲイン余裕は約20dBあります。→つまり、この条件では安定 (アンプ部その物の位相余裕はもっと小さいが、NFBの進み補償:150pF:で安定化している。) この回路の場合、仕上がりゲインが20倍と大きいのでこのような単純な方法で済みますが、条件によってはこの方法は使えない場合があります。 【この方法の限界と改善方法】 回路の増幅度がゼロ(-∞dB)の時でも電圧源を挿入することで出力端子にも電流が流れ、その結果として観測されるV(OUT)/V(NFB)の値は、裸の出力インピーダンスとNFB側の入力インピーダンスとの単純比になる。 一巡ループゲインがこのインピーダンス比に近づくと、計算結果が裸の出力インピーダンスに発生する電圧に支配され、正しい判定が出来なくなります。 (上の例では10MHzでもインピーダンス比は-30dB以下なので、0dBをクロスする部分には影響しない。) NFB後のゲインが1の0dBバッファで負荷がOPENの時など、高周波でNFB側のインピーダンスが相対的に低下し、比の値(見かけの裸ゲイン)が1を超える場合もよくあります。このような場合は肝心の0dB付近の特性がでたらめなので、全く使い物になりません。(一巡ゲイン20dB以上の周波数では正確な値が出るので、低周波でNFB量が大きい領域での検討は全く問題ない) この方法で位相余裕の値(ループゲイン=0db)が信用できるかは、ゲインのカーブがどこまで素直に低下しているかで判断できます。0dB付近から急激に落ちて、鋭い谷から再び0dBに戻るようなカーブでは、0dB付近ですでにカーブが変わっているのでNG。 -10dB以下に落ち切らないのもダメ。-20dBあたりまですっと落ちて、その後上昇に転じても-10dBより上がらなければOK。 根本的な原因は挿入した電圧源の電流が出力側に流れてしまう事にあるので、BV素子で出力側の電圧をバッファして返せば完全にその影響を遮断できます。この時注意が必要なのは、出力側から見てNFB回路の負荷も遮断されるので、同じ回路をダミーとしてぶら下げる必要があります。 ●(理論的に正しい)ループゲインの測定法 =Middlebrook LTspiceのEducationalで説明されている、「Middlebrook法」が理論的には誤差のない測定法です。 (LTC\LTspiceIV\examples\Educational\のフォルダに、LoopGain.ascとLoopGain2.ascのサンプルが入っている) LoopGain.ascと、LoopGain2.ascで解説されている内容を抜き出したのが右図。 要するに、出力端のノードで測った電圧ゲインと電流ゲインを合わせて、電圧印加による影響(測定誤差)を計算で除去します。 Middlebrookでは、電圧ゲインと電流ゲインをそれぞれ別々に測定してから計算が必要。 そのため、右図のように同じ回路を2つ並べて個別に計算した値を同時に使うか、 または下の図のように LTspiceのコマンドを駆使して、同じ回路で電圧ゲインと電流ゲインを個別に計算してその結果を計算式に反映させるか、が必要となります。 (計算式の中に"@n"でn回目に解析した値を指定できるとか、u(prb)関数など、まさにこの為に用意された機能がある。) 上の方法では、同じ回路を2つ並べるので、複雑な回路では回路規模がとても大きくなる。(解析する回路をSUBCKTとしていちいち登録するのは面倒) 下の方法では一つの回路で済みますが、.step param コマンドを使うので回路定数を.step paramで変化させての検討がやりにくくなる。 もっと簡単に(理論的に完全ではなくても)そこそこの精度で計算できる方法はないのでしょうか。 |
●(簡単でそこそこ正確な)ループゲインの測定法 目的を「オープンループゲインが1になる周辺のみの解析」に特化すれば、方法はあります。 (低周波でゲインが高い部分は、上の「簡易的な方法」でカバーする。) ポイントは、 ・回路的に最も影響の少ない部分でNFBループを切る ・直流動作点を保つためにNFBループをDC的なバイパスで閉じる ・AC的に開いた部分に信号を入力し、反対に出てくる出力でゲインを計算 ・できるだけループを閉じた時と同じ状態を作る 実例で見てみましょう。回路図は下のように、OPアンプの100%帰還を掛けた状態(OUTとNFBを直結)で、まずは「簡易的な方法」での値。 OUTとNFB入力の間に信号電圧源を割り込ませ、V(out)とV(NFB)の比を計算してグラフにします。 赤い実線がループゲインで、約25MHzで0dBをクロスし、位相回転が180°(グラフでは0表示)になるのは30MHzでぎりぎり発振しないように見えます。 ところが、ゲインの値は40MHzを超えると再び上昇し、100MHzで0dBを上回ります。 この時の位相は、はるかに回っているので発振しそうです。 40MHz以上での上昇は実際にゲインが上がったのではなく、NFBが効かなくなってOUT側の裸の出力インピーダンスが上昇したために見かけ上現れた電圧のはずですが、本当に何かの共振でゲインが上がっているのでは?という疑問に答える解はなく、このままでは安定性の判断はできません。 この問題を解決するために、改善した測定法が次の図。 ・この回路でループを切った時に前後での干渉が最も小さい点(受け側と送り出し側のインピーダンス比が大きい)は初段出力(インピーダンス高い)と2段目入力(位相補正CRで高周波では10Ωと低い)の接続ポイントであり、ここで回路を切断してAA, BB と名前を付ける。 ・直流的に繋ぐために、1GHのインダクタンスでAAとBBをショート。 ・2段目入力(BB点)はインピーダンス低いので、電流で信号を注入する。(信号源I1をBBに接続) ・切ったAA点に一巡した信号が戻ってくるので、BB点と同じ負荷をダミーとして繋ぎ、そこに流れる電流値を測定。 →この値がループゲインとなる。 注意する点は、信号の注入とダミー負荷が回路の直流動作点を乱さないようにすること。また、切ったポイント以外から信号が伝達されていない事も重要。 以上の方法で測定した結果が右のグラフ。(ダミーのR10に流れる電流を測定) シミュレーションの際に、位相補正CNの値を 1nF, 1.5nF, 2.2nF, 3.3nF の4つの条件でグラフを書かせています。(緑が1000pFの値) ゲインが0dBになるのは、簡易計算とほぼ同じ25MHz付近。 この時の位相は、1nFでは180°を少し超え、発振ゾーン。赤が2.2nF条件で、25MHzでは170°でぎりぎりセーフ。100MHz以上ではゲインは急激に落ちており、0dB付近に戻ることはありません。 この方法での測定で、CNが1.5nF以上ならぎりぎり発振はしないことが分かりましたが、位相余裕が小さいのでNFB後の周波数特性に25MHzの大きなピークを発生し、問題があることも判明しました。 このような解析で、位相余裕をもっと大きくして安定に動かす方法をシミュレーションで検討できます。 次は、「8、外乱要因によるNFB安定性の評価」 です。 目次に戻る 次に進む アンプ設計のTOPに戻る |