動作原理
スイッチノードのリンギングは、ループの浮遊インダクタンスとノードの容量(スイッチの出力容量、反対側の素子やダイオード、基板)との共振で生じます。周波数を 1 回測るだけでは L_p·C_p の積しか分かりません。値の分かっている C_add をスイッチ両端に付けてもう一度測ると式がもう 1 つ得られ、両方の値を求められます。
ノードに RC 枝を付けると共振が減衰します。C_s が C_p より十分大きいと、抵抗は LC タンクに並列な負荷のように見え、減衰比は ζ = Z0/(2R_s) なので、R_s = Z0 で ζ = 0.5 になります。実際の C_s は C_p の数倍程度なので f_r でのリアクタンスを無視できず、減衰はやや弱くなり、最適な抵抗も少しずれます。オーバーシュートのスイープが入力値での最適点を示します。
C_s は効果とコストを同時に決めます。コンデンサは毎周期ノード電圧まで充電されて放電するので、抵抗は値にかかわらず C_s·V²·f_s を消費します。C_s を 2 倍にすると損失も 2 倍になるため、十分に減衰する最小値、通常は C_p の 3~4 倍にします。TI SLVA255 の ½·C·V²·f の式はエッジ 1 回分を数え、このツールの代表値 C·V²·f_s はハードスイッチングノードの両エッジを数えます。
リンギングのシミュレーションは、L_p が C_p を充電するステップ応答をスナバ枝の有無それぞれについて、LC フィルタ計算機と同じ RK4 ルーチンで積分します。スナバなしのリンギングをいずれ止める損失は、小さなループ抵抗で代用しています。
設計手順
- 1リンギング周波数の 2 倍以上の帯域を持つプローブとオシロスコープで、グラウンドをできるだけ短くしてスイッチノードのリンギング周波数を測ります。
- 2値の分かっているコンデンサをスイッチ両端に付け(周波数がおよそ半分になる値が理想)、もう一度測ります。
- 32 つの周波数から C_p、L_p、Z0 を求めます。
- 4R_s = Z0、C_s = C_p の 3~4 倍から始め、スイープを確認して標準値に合わせます。
- 5抵抗の平均電力とパルスエネルギーを確認して余裕のあるパッケージを選び、スイッチとのループができるだけ小さくなるよう配置します。
- 6再度測定し、オーバーシュート、リンギング、エッジ速度をスナバなしの場合と比べます。
計算式
- 2 回の測定から求める寄生成分
- C_p = C_add / ((f_r1/f_r2)² − 1), L_p = 1 / ((2π·f_r1)²·C_p)
- 共振周波数と特性インピーダンス
- f_r = 1 / (2π·√(L_p·C_p)), Z0 = √(L_p / C_p)
- スナバ抵抗
- R_s = Z0 / (2ζ) (C_s ≫ C_p のときの L_p–C_p ∥ R_s の ζ; R_s = Z0 → ζ = 0.5)
- スナバコンデンサ
- C_s = n·C_p, X_Cs(f_r) / R_s = 2ζ/n
- 抵抗の損失
- P_R = C_s·V²·f_s (ハードスイッチングのノード); TI SLVA255: P = ½·C_s·V_pk²·f_s; E_pulse = ½·C_s·V²
- リンギングのシミュレーション
- V ステップ → L_p (+ R_loop) → C_p ∥ (R_s + C_s), RK4; オーバーシュート = v_pk/V − 1, 整定判定 ±5 %
計算例
初期値は、ノードが 80 MHz でリンギングし、スイッチ両端に 100 pF を付けると 50 MHz に下がる場合です。(f_r1/f_r2)² = 2.56 なので C_p = 64.1 pF、L_p = 61.7 nH、Z0 = 31.0 Ω です。ζ = 0.5 なら R_s = 31.0 Ω、n = 4 なら C_s = 256 pF で、その 80 MHz でのリアクタンスは R_s の 4 分の 1 の 7.8 Ω です。500 kHz でスイッチングする 48 V ハーフブリッジのノードなら、抵抗損失は C_s·V²·f_s = 0.295 W(TI SLVA255 の ½ の式では 0.148 W)で、エッジごとに 0.30 µJ を受けます。ループ抵抗 0.5 Ω でシミュレーションすると、スナバなしではオーバーシュート 97.5 %(ピーク 94.8 V)で、500 ns 経っても ±5 % に入りません。スナバを付けるとオーバーシュートは 35.4 %(65.0 V)に下がり、14.9 ns で整定します。スイープでオーバーシュートが最小になるのは約 26.9 Ω(0.87·Z0)での 34.8 % で、R_s = Z0 との差は 1 ポイント未満です。n を 10 に上げるとオーバーシュートは 23.4 % まで下がりますが、損失は 0.74 W に増えます。
よくある間違い
- 長いグラウンドリードで測ること。プローブのループがインダクタンスを加えてそれ自体がリンギングするため、読んだ周波数は回路のものではありません。
- 周波数がほとんど変わらないほど小さな C_add を使うこと。ほぼ等しい 2 つの値の差から寄生成分を求めることになり、誤差が急速に大きくなります。
- スナバを長いパターンでつなぐこと。そのインダクタンスが R_s、C_s と直列に入り、リンギング周波数で減衰が効かなくなります。
- 抵抗を平均電力だけで選ぶこと。エッジごとに ½·C_s·V² のパルスが入るため、平均が定格内でも小型の薄膜抵抗は繰り返しパルスで壊れることがあります。
- 損失を確認せずにリンギングが消えるまで C_s を大きくすること。損失はそのまま比例して増え、ハードスイッチングのコンバータでは効率から直接差し引かれます。
よくある質問
測定のためにわざわざコンデンサを追加するのはなぜですか?
リンギング周波数 1 つでは L_p·C_p しか決まらず、同じ周波数になる L と C の組み合わせは無数にあります。既知の容量を足してもう一度測ると、両者を分離できます。TI SLVA255 は周波数が半分になる C_add を勧めており、このとき C_p = C_add/3 となり、読み取り誤差の影響も小さくなります。
R_s を Z0 と等しくするのはなぜですか?
C_s が大きいと抵抗は C_p と並列に見え、R_s = Z0 で減衰比が 0.5 になります。リンギングを 1 周期程度で止めるのに十分な減衰でありながら、抵抗が小さすぎて共振を短絡してしまうこともない値です。C_s が C_p の数倍しかない場合は実際の最適点が少しずれ、スイープがその位置を示します。
C_s はどのくらいの大きさにすべきですか?
f_r でのリアクタンスが R_s より十分小さくなる程度、通常は C_p の 3~4 倍にし、損失が比例して増えるので必要以上には大きくしません。初期値の例では、C_s = 2·C_p でオーバーシュート 50.3 %、4·C_p で 35.4 %、10·C_p で 23.4 % となり、そのとき損失は 2.5 倍です。
損失は C·V²·f ですか、½·C·V²·f ですか?
ハードスイッチングのノードでは、スナバコンデンサが一方のエッジで V まで充電され、もう一方のエッジで放電し、そのたびに約 ½·C_s·V² が抵抗で失われるので C_s·V²·f_s になります。TI SLVA255 は ½·C_s·V_pk²·f_sw と書いており、片方のエッジだけを数えています。違いが分かるよう両方を表示しています。ソフトスイッチングのハーフブリッジでは負荷電流がノードを充電するので損失は小さく、スナバコンデンサは共振容量の一部になります。
式はどのように検証しましたか?
TI SLVA255 の例で確認しました。217 MHz のリンギングが 300 pF の追加でおよそ半分になった例で、TI は比を正確に 2 として C_p = 100 pF、L_p = 5.4 nH、R = 7.3 Ω を得ています。217 MHz、300 pF、108.5 MHz を入れると 100 pF、5.38 nH、7.33 Ω、実測の 113 MHz を入れると 112 pF、4.82 nH、6.57 Ω になります。シミュレーションでは C_s ≫ C_p、R_s = Z0 でオーバーシュート 16.4 % となり、ζ = 0.5 の理論値 16.3 % と一致します。
計算結果は工学的な推定値です。データシート、シミュレーション、実測で設計を確認してください。