JAJT298 February 2024 TMS320F280025C , TMS320F280039C , TMS320F280049C
昇圧力率補正 (PFC) などのデジタル電源を設計する際に、図 1 に示すような電流の振動を目にしたことがありますか。
この不安定な発振は、制御帯域が広すぎることが原因だとお考えかもしれません。その場合、比例積分 (PI) コントローラの比例ゲイン (Kp) と積分ゲイン (Ki) を小さくし、交差周波数を大幅に低減します。すると、発振は消えます。
しかし、それが最善の解決策でしょうか。電流ループ帯域幅が狭いと、制御速度が低下しますが、全高調波歪 (THD) テストで不合格になることがあります。そして、ソース インピーダンスが少し大きくなると、再び発振が現れることがあります。
この不安定性には他に考えられる原因があるのでしょうか。十分な位相マージンが確保された最善の制御帯域幅を実現するにはどうすればよいでしょうか。デジタル制御ループを詳細に分析し、この潜在的な誤りがどのように発生したかを確認しましょう。また、お使いの制御ファームウェアでこのような不安定性が発生しているかどうかを確認する方法もご説明します。
図 2 に、MCU ベースのデジタル制御システムを示します。
制御ループは、対象の電流 / 電圧をサンプリングするためのアナログ / デジタル コンバータ (ADC)、調整値を生成するためのデジタル コントローラ、調整を実行するためのパルス幅変調器 (PWM) で構成されており、デューティまたは周波数を変更することで電流 / 電圧の目標値を変更します。
スイッチ モード電源 (SMPS) での ADC サンプリングはしばしば、2 スイッチング サイクルの中間点で行われるため、スイッチングによるノイズを回避できるだけでなく、連続導通モード (CCM) でのパワー インダクタ電流の平均値を取得することもできます。
デジタル コントローラは割り込みサービス ルーチン (ISR) で計算され、PWM 出力と同期してトリガされます。トリガ イベントは PWM の「カウンタ」が「ゼロ」、「周期」、特定の値「CMP」のいずれかと等しくなると発生します。
コントローラがすべての計算を完了した時点で PWM を直ちに更新することは不可能ですが、PWM カウンタが「ゼロ」または「周期」と等しい場合など、特定のタイミングで PWM レジスタにシャドウ レジスタの値をロードする必要があります。カウンタの立ち上がりまたは立ち下がり中に PWM 値が変更された場合、PWM の誤動作、パルスの喪失、パルスの重複が発生する可能性が高くなります。
アナログ制御システムとは異なり、デジタル制御はサンプリング周波数によって実行されるため、サンプリングから新しい値が PWM にリロードされるまでの遅延時間 (Td) が必要です。PWM の変更は、PWM 出力が変化する瞬間を調整することで実装されます。この瞬間はシングル エッジ変調 (カウント アップ / カウント ダウン モード) の場合 1 回発生し、デュアル エッジ変調 (カウント アップダウン モード) の場合 2 回発生します。したがって、Td の最小値は、選択した変調リロード周波数に応じて、1 スイッチング サイクル Ts (図 3 の a を参照) または 1/2 スイッチング サイクル Ts/2 (図 3 の b を参照) となります。
図 4 に示すように、Td はその伝達関数で e-sxT d として表されており、位相マージンを減少させます。もちろん、位相マージンが 45 度未満になると、システムは不安定になり、発振が発生します。
正しい実行では、Td の最小値は 1 スイッチング サイクル (Ts) の半分のスイッチング サイクル (Ts/2) です。しかし、ADC、ISR、PWM リロードの結果を考慮していない場合、制御遅延を 1 スイッチング サイクルよりも延ばすと、位相マージンが減少し、不安定性につながる可能性があります。
たとえば、図 5 において、ADC の ISR トリガと PWM リロードは、PWM カウンタがゼロになった同じタイミングで開始しています。
すべてのブロックが同時に実行されていますが、ここで Td が 0 になることを期待できるでしょうか。もちろん、そうではないでしょう。
これは、ADC 変換と ISR 計算の両方が、1 MCU クロック サイクルよりもはるかに長い時間を必要とするためです。ISR が ADC 結果を読み取った時点で、ADC 変換はまだ完了していません。したがって、ISR は計算のために「古い」サンプル値を取得し、最新の値の計算は次のスイッチング サイクルまで先延ばしにされます。ISR の計算が完了すると、新しい PWM 値はシャドウ レジスタのみに書き込まれ、その値は次のスイッチング サイクルでリロードされます。実際には、Td の総制御遅延は 2 スイッチング サイクル (2 × Ts) になります。
ここに示した例のほかにも、その他の実装で同様に制御遅延が延びる場合があります。たとえば、ISR コードの中でコントローラの計算の後に ADC 値の読み取りを配置した場合、コントローラの計算の前に N サイクル アルゴリズム平均を追加した場合などです。
図 6 に示すように、図 5 の誤った実装を使用してゲイン交差周波数を約 3kHz に設定した場合、位相マージンは 41.68 度になります。これは 45 度未満であり、チョーク電流に大きな発振 (図 1 の波形を参照) が現れるため、交差周波数を 2kHz 未満に下げる必要があります。すると今度は iTHD が悪化し、要件を満たさなくなります。
この問題は、「カウンタが周期と等しくなる瞬間」に ADC 変換を移動し、次の「カウンタが周期と等しくなる瞬間」に PWM をリロードすることで、簡単に解決できます (図 7 を参照)。
制御遅延は 1 スイッチング サイクルに短縮されます。図 8 と図 9 に示すように、位相マージンは大幅に増加し、電流の発振はなくなります。
デジタル実装での制御遅延 (ADC サンプリングから PWM 調整まで) は、位相マージンを減少させ、発振の原因となります。この問題に取り組む際には、ADC のサンプリング、コントローラの計算、PWM のリロードの結果を考慮してください。適切に構成された制御方式では、遅延を半分 (1 スイッチング サイクル) に最小化できるため、位相マージンとループ帯域幅が増加しています。