JAJU922A October   2022  – February 2024

 

  1.   1
  2.   概要
  3.   リソース
  4.   特長
  5.   アプリケーション
  6.   6
  7. CLLLC システムの説明
    1. 1.1 主なシステム仕様
  8. CLLLC システムの概要
    1. 2.1 ブロック図
    2. 2.2 設計上の考慮事項とシステム設計理論
      1. 2.2.1 タンクの設計
        1. 2.2.1.1 電圧ゲイン
        2. 2.2.1.2 トランス ゲイン比の設計 (NCLLLC)
        3. 2.2.1.3 磁化インダクタンスの選択 (Lm)
        4. 2.2.1.4 共振インダクタとコンデンサの選択 (Lrp と Crp)
      2. 2.2.2 電流および電圧センシング
        1. 2.2.2.1 VPRIM 電圧センシング
        2. 2.2.2.2 VSEC 電圧センシング
        3. 2.2.2.3 ISEC 電流センシング
        4. 2.2.2.4 ISEC タンクおよび IPRIM タンク
        5. 2.2.2.5 IPRIM 電流センシング
        6. 2.2.2.6 保護 (CMPSS および X-Bar)
      3. 2.2.3 PWM 変調
  9. トーテムポール PFC システムの説明
    1. 3.1 トーテムポール ブリッジレス PFC の利点
    2. 3.2 トーテムポール ブリッジレス PFC の動作
    3. 3.3 主なシステム仕様
    4. 3.4 システム概要
      1. 3.4.1 ブロック図
    5. 3.5 システム設計理論
      1. 3.5.1 PWM
      2. 3.5.2 電流ループモデル
      3. 3.5.3 DCバス電圧制御ループ
      4. 3.5.4 電流スパイクを除去または低減するゼロクロス付近のソフトスタート
      5. 3.5.5 電流の計算
      6. 3.5.6 インダクタの計算
      7. 3.5.7 出力コンデンサの計算
      8. 3.5.8 電流および電圧センシング
  10. 主な使用製品
    1. 4.1 C2000 マイクロコントローラ TMS320F28003x
    2. 4.2 LMG352xR30-Q1
    3. 4.3 UCC21222-Q1
    4. 4.4 AMC3330-Q1
    5. 4.5 AMC3302-Q1
  11. ハードウェア、ソフトウェア、試験要件、試験結果
    1. 5.1 必要なハードウェアとソフトウェア
      1. 5.1.1 ハードウェアの設定
        1. 5.1.1.1 制御カードの設定
      2. 5.1.2 ソフトウェア
        1. 5.1.2.1 Code Composer Studio 内でプロジェクトを開く
        2. 5.1.2.2 プロジェクト構造
    2. 5.2 テストと結果
      1. 5.2.1 テストのセットアップ (初期設定)
      2. 5.2.2 CLLLC のテスト手順
        1. 5.2.2.1 ラボ 1.1 次側から 2 次側への電力フロー、PWM ドライバの開ループ チェック
        2. 5.2.2.2 ラボ 2.1 次側から 2 次側への電力フロー、PWM ドライバおよび保護付き ADC の開ループ チェック (2 次側に抵抗性負荷が接続されている状態)
          1. 5.2.2.2.1 ラボ 2 のソフトウェア オプションの設定
          2. 5.2.2.2.2 プロジェクトのビルドおよびロードとデバッグ環境の設定
          3. 5.2.2.2.3 リアルタイム エミュレーションの使用
          4. 5.2.2.2.4 コードの実行
          5. 5.2.2.2.5 電圧ループに対する SFRA プラントの測定
          6. 5.2.2.2.6 アクティブ同期整流の検証
          7. 5.2.2.2.7 電流ループに対する SFRA プラントの測定
        3. 5.2.2.3 ラボ 3.1 次側から 2 次側への電力フロー、閉電圧ループ チェック (2 次側に抵抗性負荷が接続されている状態)
          1. 5.2.2.3.1 ラボ 3 のソフトウェア オプションの設定
          2. 5.2.2.3.2 プロジェクトのビルドおよびロードとデバッグ環境の設定
          3. 5.2.2.3.3 コードの実行
          4. 5.2.2.3.4 閉電圧ループに対する SFRA の測定
        4. 5.2.2.4 ラボ 4.1 次側から 2 次側への電力フロー、閉電流ループ チェック (2 次側に抵抗性負荷が接続されている状態)
          1. 5.2.2.4.1 ラボ 4 のソフトウェア オプションの設定
          2. 5.2.2.4.2 プロジェクトのビルドおよびロードとデバッグの設定
          3. 5.2.2.4.3 コードの実行
          4. 5.2.2.4.4 閉電流ループに対する SFRA の測定
        5. 5.2.2.5 ラボ 5.1 次側から 2 次側への電力フロー、閉電流ループ チェック (2 次側で抵抗性負荷が電圧源と並列に接続されてバッテリ接続をエミュレートしている状態)
          1. 5.2.2.5.1 ラボ 5 のソフトウェア オプションの設定
          2. 5.2.2.5.2 電流ループ補償器の設計
          3. 5.2.2.5.3 プロジェクトのビルドおよびロードとデバッグの設定
          4. 5.2.2.5.4 コードの実行
          5. 5.2.2.5.5 バッテリ エミュレーション モードでの閉電流ループに対する SFRA 測定
      3. 5.2.3 TTPLPFC のテスト手順
        1. 5.2.3.1 ラボ 1:開ループ、DC
          1. 5.2.3.1.1 BUILD 1のソフトウェアオプションの設定
          2. 5.2.3.1.2 プロジェクトのビルドおよびロード
          3. 5.2.3.1.3 デバッグ環境設定ウィンドウ
          4. 5.2.3.1.4 リアルタイム エミュレーションの使用
          5. 5.2.3.1.5 コードの実行
        2. 5.2.3.2 ラボ 2:閉電流ループ DC
          1. 5.2.3.2.1 BUILD 2のソフトウェアオプションの設定
          2. 5.2.3.2.2 電流ループ補償器の設計
          3. 5.2.3.2.3 プロジェクトのビルドおよびロードとデバッグの設定
          4. 5.2.3.2.4 コードの実行
        3. 5.2.3.3 ラボ 3:閉電流ループ、AC
          1. 5.2.3.3.1 ラボ 3 のソフトウェア オプションの設定
          2. 5.2.3.3.2 プロジェクトのビルドおよびロードとデバッグの設定
          3. 5.2.3.3.3 コードの実行
        4. 5.2.3.4 ラボ 4:閉電圧および電流ループ
          1. 5.2.3.4.1 BUILD 4のソフトウェアオプションの設定
          2. 5.2.3.4.2 プロジェクトのビルドおよびロードとデバッグの設定
          3. 5.2.3.4.3 コードの実行
      4. 5.2.4 テスト結果
        1. 5.2.4.1 効率
        2. 5.2.4.2 システム性能
        3. 5.2.4.3 ボード線図
        4. 5.2.4.4 効率とレギュレーションのデータ
        5. 5.2.4.5 熱データ
        6. 5.2.4.6 PFC の波形
        7. 5.2.4.7 CLLLC の波形
  12. デザイン ファイル
    1. 6.1 回路図
    2. 6.2 部品表 (BOM)
    3. 6.3 Altium プロジェクト
    4. 6.4 ガーバー ファイル
  13. ソフトウェア ファイル
  14. 関連資料
    1. 8.1 商標
  15. 用語
  16. 10著者について
  17. 11改訂履歴

プロジェクト構造

TIDM-02013 プロジェクト構造の概要図 5-4 プロジェクト構造の概要

プロジェクトの一般構造を図 5-4 に示します。プロジェクトがインポートされると、図 5-5 に示すように CCS 内に Project Explorer が表示されます。

コア アルゴリズム コードで構成される、デバイスに依存しないソリューション固有のファイルは、<solution>.c/h にあります。 たとえば、TTPPLPFC.c または CLLLC.hです。

基板固有およびデバイス固有のファイルは、<solution>_hal.c/h にあります。 このファイルは、ソリューションを実行するデバイス特定のドライバで構成されています。別の変調方式やデバイスを使用する場合、プロジェクト内のデバイス サポート ファイルを変更する以外に変更を加える必要があるのは、これらのファイルのみです。

<solution>-main.c ファイルは、プロジェクトのメイン フレームワークで構成されています。 このファイルは、システム フレームワークの作成に役立つボード ファイルとソリューション ファイルの呼び出し、割り込みサービス ルーチン (ISR)、低速なバックグラウンド タスクで構成されています。

このデザインには、obc_7_4kw、clllc、ttplpfc の 3 つの <solution> 名があります。 最大限の柔軟性を維持するために、CLLLC コード ベースと TTPPLPFC コード ベースをできるだけ独立させることにしました。一方で、obc_7_4kw ファイルは、TTPPFC や CLLLC に依存しない設定を含めるために必要な場所に追加されました。 これにより、エンド ユーザーは各段を独立して動作させ、必要に応じて最終設計に PFC 段または DCDC 段のさまざまなトポロジを簡単に組み込むことができます。

<solution>_settings.h ファイルには、どのラボをビルドするかなどのコード構成設定が含まれています。 一方、<solution>_user_settings.h には、ADC マッピングや GPIO などの #define マクロのような基板レベルの構成が含まれています。

solution.js ファイルには、各ラボの実行中に観測対象に関連する変数を入力するのに役立つスクリプト ファイルが含まれています。 これらのスクリプトを使用するには、スクリプト コンソール ([View] - [Scripting Console]) を開きます。solution.js ファイルの内容をスクリプト コンソールに貼り付け、[Enter] キーを押してください。これにより、後でデバッグに使用するための [Expressions] ウィンドウに入力されます。

ソリューション名は、ソリューションで使用されるすべての変数のモジュール名および定義としても使用されます。そのため、すべての変数および関数呼び出しの前に CLLLC 名が追加されます (CLLLC_vSecSensed_pu など)。この命名規則により、名前の競合を回避しながら、異なるソリューションを組み合わせることができます。

TIDM-02013 CLLLC プロジェクトの Project Explorer ビュー図 5-5 CLLLC プロジェクトの Project Explorer ビュー

OBC プロジェクトは、C28x コア と CLA コアの 2 つのコアで動作する 3 つの ISR (ISR1、ISR2、ISR3) で構成されています。ISR1 のトリガに ePWM、ISR2 のトリガに eCAP、ISR3 のトリガに ADC を使用することで、ISR の優先順位をハードウェアで完全に制御できます。表 5-4 に、各 ISR がどのように分割され、どのようなタスクが実行されるかを示します。

表 5-4 ISR の分割とタスク
ISRトリガ ソースC28xCLA
ISR1 (120kHz)ePWM該当なしCLLLC PWM 値の更新
ISR2 (120kHz)eCAPPFC 電流ループCLLLC 制御コード、ISR1 有効化
ISR3 (10kHz)ADCPFC 電圧ループ、計測該当なし

ISR1 は、PWM 更新のために予約された最速かつネスト不可能な ISR で、すべて CLA で実行されます。ISR1 は、PRIM_LEG1_PWM_BASE → EPWM_INT_TBCTR_U_CMPC イベントでトリガされます。一般に、この割り込みは、PRIM_LEG1_PWM_BASE に対して考えられるすべての TBPRD レジスタ値よりも大きい値を CMPC に書き込むことによって無効にされます。これは、CLLLC_HAL_setupISR1Trigger 関数で行います。この ISR に関連する定義は以下のとおりです。

#define CLLLC_ISR1_PERIPHERAL_TRIG_BASE CLLLC_PRIM_LEG1_PWM_BASE
#define CLLLC_ISR1_TRIG INT_EPWM1
#define CLLLC_ISR1_PIE_GROUP INTERRUPT_ACK_GROUP3
#define CLLLC_ISR1_TRIG_CLA CLA_TRIGGER_EPWM1INT

ISR2 は両方のコアに分割されます。これにより、TTPLPFC と CLLLC のコードを簡単にモジュール化できます。C28x で実行される ISR2 と CLA で実行される ISR2 は、どちらも同じソースによってトリガされ、同時に動作します。C28x コアは TTPPLPFC に関連するタスクを実行し、CLA コアは CLLLC の実行に関連するタスクを実行します。

ISR2 は、ISR1 が必要なときに、CMPC への書き込みによって ISR1 をトリガするために有効な値を書き込む役割を担っています。(注:CMPC は、これを可能にするためにグローバル負荷メカニズムに接続されていません。また、CMPC のシャドウ負荷は無効にされています。)CMPC 値を調整して、ISR1 から目的のタイミングを得ることができます。ISR1 が有効になるたびに、2 回トリガされます。最初の ISR1 では、PWM レジスタが更新され、同期が有効になります。2 回目の ISR1 では、PWM 同期が無効にされ、CMPC は ISR1 が再度トリガされないような値に設定されます。分かりやすくするために、ソフトウェア構成図と構造には、最初にトリガされた ISR1 のみが示されています。

ISR2 は ISR2_FREQUENCY で定期的にトリガされます。予備の CAP モジュールを使用して、タイム ベースを生成し、割り込みをトリガします。予備の ePWM モジュールも同じタイム ベースで構成されており、ADC 変換のトリガに使用されます。ISR2 は、制御規則を実行し、PWM に必要なクロック ティックを計算する役割を担っています。シャドウ レジスタへの書き込みが完了すると、ISR2 は有効な値 (現在の TBPRD レジスタより小さい値) を CMPC レジスタに書き込むことで、ISR1 トリガを有効にします。ISR2 には、1 次側から 2 次側への電力フロー用と 2 次側から 1 次側への電力フロー用の ISR2_primToSecPowerFlow と ISR2_secToPrimPowerFlow の 2 つのバリエーションがあります。これは、さまざまな方向の電力フローを制御するときに CPU サイクルを最適化するために行われます。分かりやすくするために、各ラボではどちらも ISR2 と呼ばれています。タイミングによっては、ISR1 は、タイミングが非常に重要な更新の書き込みのために ISR2 をネストすることがあります。この ISR に関連する定義は以下のとおりです。

#define CLLLC_ISR2_ECAP_BASE ECAP1_BASE
#define CLLLC_ISR2_PWM_BASE EPWM5_BASE
#define CLLLC_ISR2_TRIG INT_ECAP1
#define CLLLC_ISR2_PIE_GROUP INTERRUPT_ACK_GROUP4
#define CLLLC_ISR2_TRIG_CLA CLA_TRIGGER_ADCA2

ISR3 はすべて C28x コアで実行され、ADCINT2 によってトリガされます。ADCINT2 は、CPU タイマを使用して開始される変換によって開始されます。TTPPLPFC の電圧ループの実行や、電流と電圧信号の移動平均を計算してノイズを除去するなどのハウスキーピング機能に使用されます。コマンド リファレンスのスルーレート機能を実行するのにも使用されます。

#define CLLLC_ISR3_TIMEBASE CLLLC_TASKC_CPUTIMER_BASE
#define CLLLC_ISR3_PERIPHERAL_TRIG_BASE ADCC_BASE
#define CLLLC_ISR3_TRIG INT_ADCC2
#define CLLLC_ISR3_PIE_GROUP INTERRUPT_ACK_GROUP10

これにより、割り込みを簡単にネストできます。図 5-6 は、3 つの割り込みのネストを示しています。この図は、開ループのシステムで、[Watch] ウィンドウを通して周期の変化が開始され、ISR1 トリガが 1 回だけ観測されたときのものです。閉ループのシステムの場合、周期はある制御 ISR サイクルから他の制御 ISR サイクルへとわずかに変化するだけであるため、ISR1 は繰り返しトリガされます。

TIDM-02013 3 階層にネストされた ISR図 5-6 3 階層にネストされた ISR

さらに、CPU タイマは、低速なバックグラウンド タスクのトリガに使用されます (割り込み駆動ではなく、ポーリング)。

A タスクは、100Hz の TASKA_FREQ でトリガされます。SFRA GUI はこのレートで呼び出す必要があります。1 つのタスク A1 がこのレートで実行されます。

B タスクは、10Hz の TASKB_FREQ でトリガされます。これらは、一部の基本的な LED トグルや、タイミングが重要ではないステート マシンの項目に使用されます。3 つのタスク (B1、B2、B3) がこれによって処理されるため、それぞれの実行レートは 3.33Hz です。

#define TASKA_FREQ 100
#define TASKB_FREQ 10

このリファレンス デザインのソフトウェアは、ソリューションごとに分けられたラボで構成されており、それぞれにインクリメンタル ビルド (INCR_BUILD) があります。これらのテストによって、システムの立ち上げや設計が簡略化されます。

CLLLC ラボ

ラボ 1:1 次側から 2 次側への電力フロー、PWM ドライバの開ループ チェック (基板に大電力が印加されていない状態)。セクション 5.2.2.1 を参照してください。

ラボ 2:1 次側から 2 次側への電力フロー、PWM ドライバおよび保護付き ADC の開ループ チェック (2 次側に抵抗性負荷が接続されている状態)。セクション 5.2.2.2 を参照してください。

ラボ 3:1 次側から 2 次側への電力フロー、閉電圧ループ チェック (2 次側に抵抗性負荷が接続されている状態)。セクション 5.2.2.3 を参照してください。

ラボ 4:1 次側から 2 次側への電力フロー、閉電流ループ チェック (2 次側に抵抗性負荷が接続されている状態)。セクション 5.2.2.4 を参照してください。

ラボ 5:1 次側から 2 次側への電力フロー、閉電流ループ チェック (2 次側で抵抗性負荷が電圧源と並列に接続されてバッテリ接続をエミュレートしている状態)。セクション 5.2.2.5 を参照してください。

これらの定義は settings.h ファイル内にあり、そのファイル内で直接変更できます。