STM32 ベースの双方向 Buck-Boost DC-DC コンバータ設計ドキュメント集

システム概要

本プロジェクトは、STMicroelectronics の STM32F334C8T6 マイコンをコアとした双方向 DC-DC バッファ電源システムを構築する技術資料のセットです。このコントローラーは入力電圧と出力電圧のレベルをリアルタイムで検出し、Buck(降圧)、Boost(昇圧)、または双モード動作を自動的に切り替える機能を提供します。また、負荷変動に対する定电压制御および各種パラメータのディスプレイ機能も備えています。

ハードウェアアーキテクチャ

設計データの中心には、以下のブロック構成を含む AD プレイアウトが含まれています。

  • パワーエレクトロニクス回路:Buck および Boost トポロジーに対応したメインスイッチングステージと誘導性素子、ダイオード配列。
  • 補助電源供給:マイコン、ゲートドライバ、アナログ部品を動作させるための安定化電源段。
  • 信号処理部:ADC 入力を得るための分圧抵抗ネットワーク、ノイズ除去フィルター、および演算増幅器によるレベルシフト回路。
  • 制御ユニット:STM32F334C8T6 を中心に、GPIO、PWM タイマー、中断管理機能を統合した論理回路。

ファームウェア実装と保護ロジック

ソフトウェアは、特定の運転モードに特化した三つの主要モジュールとして構成されています。これらは、ソフトスタートアップシーケンス、過流、短絡、出力過電圧、入力電圧監視(UV/OV)などの安全機構を網羅しています。

以下は、電流保護ロジックの実装パターンの一例です。

/**
 * 電流制限値(アンペア)
 */
const float MAX_CURRENT_LIMIT = 5.0f; 

// 現在値保持用の ADC サンプリングバッファ
static float sensed_adc_voltage; 

/**
 * 短絡および過電流保護チェックルーチン
 */
void monitor_overcurrent_condition(void) {
    // 電流測定値を取得
    float current_amperes = calculate_current_from_voltage(sensed_adc_voltage);

    // 閾値超過時の処理
    if (current_amperes > MAX_CURRENT_LIMIT) {
        // PWM デューティ比をリセットして電力カット
        TIMx->CCR1 = 0; 
        TIM_Cmd(TIMx, DISABLE);
        
        // エラーインジケータ点灯
        GPIO_WritePin(GPIOA, PIN_ERR_LED, SET);
        return;
    }
    
    // 正常動作時はエラーランプ消去
    GPIO_WritePin(GPIOA, PIN_ERR_LED, RESET);
}

このコードは、サンプリングされた電流値が設定された限界値を超えた場合に PWM 出力を遮断し、ハードウェア損傷を防ぐ典型的なアプローチを示しています。これに加えて、入力電圧が許容範囲外になった場合のカットオフや、熱制御のためのインターバル監視も実装可能です。

モデル検証と制御理論

システム動特性の評価には PSIM ソフトウェアを用いた仿真が行われます。開ループ特性の確認に加え、フィードバックループを含んだ閉ループ解析も行えます。電圧制御ループには通常、比例積分(PI)コントローラーが採用され、そのゲインはデジタル制御計算書に基づいて決定されます。

MATLAB を使用した制御パラメータ算出の例は以下の通りです。

% PI コントローラー関数定義
function [output] = pid_compensation(reference, measurement, Kp, Ki)
    persistent last_error integral_term
    
    if isempty(last_error)
        last_error = 0;
        integral_term = 0;
    end

    % 誤差計算
    error = reference - measurement;
    
    % 積分項の更新
    integral_term = integral_term + (error * dt);
    
    % 比例項と積分項の合成
    proportional_part = Kp * error;
    output = proportional_part + (Ki * integral_term);
end

上記スクリプトは、目標値とフィードバック値の差異を基に、安定性を確保しつつ応答速度を最適化する出力値を生成するプロセスを表しています。

設計関連文書リスト

開発プロセスを完結させるために、以下の形式のドキュメントセットが提供されています。

  • ハードウェア設計レポート:各部品の選定理由、耐圧・定格電流の評価、PCB レイヤ構造の提案。
  • ソフトウェア設計マニュアル:各 API 関数の仕様、タイマクロの初期化値、割り込み優先度の設定。
  • 制御理論計算書:MATLAB および Mathcad を用いた位相余裕、ゲインクロスオーバー周波数の算出結果。
  • 部品リスト (BOM):半導体、パスティブコンポーネントのメーカー推奨品番一覧。
  • データシート:メインコントローラー STM32F334C8T6 ならびに関連 IC の仕様書。

タグ: STM32F334C8T6 Buck-Boost DC-DC 電源設計 PSIM PID 制御

8月20日 00:35 投稿