データからのバッテリー パラメーターの抽出
この例では、さまざまな温度にわたって定義されたデータを近似するための、Battery ブロックのパラメーターの最適化を示します。MATLAB® 最適化関数 fminsearch
を使用します。Simscape™ Electrical™ モデルに対するこの種のパラメーター近似の実行に使用可能なその他の製品には、Optimization Toolbox™ や Simulink® Design Optimization™ があります。これらの製品は、GUI またはコマンド ライン アプローチを使用してブロックの操作と解析を行うための、事前定義された関数を提供します。
手法
4 ステップの手順を使用して、Battery の出力電圧曲線をデータに近似します。
Battery の [メイン] ダイアログ タブのパラメーターを最適化します。
Battery の [ダイナミクス] ダイアログ タブのパラメーターを最適化します。
Battery の [温度依存性] ダイアログ タブで、定格電圧と内部抵抗を最適化します。
Battery の [温度依存性] ダイアログ タブで、温度依存の電荷ダイナミクスのパラメーターを最適化します。
データとブロックのセットアップ
Battery データは、MATLAB データ ファイル BatteryParameterizationData.mat に構造体の配列として保存されています。各構造体には、v (電圧)、i (電流)、t (時間)、SOC0 (最初の SOC) および T (温度) の 5 つのフィールドが含まれています。スコープは、出力電圧を構造体データ out.Vo.signals.values として保存します。
初期パラメーター指定
fminsearch
の開始値は、Battery ブロックの既定値とデータシートの値の組み合わせを使用して推定できます。
最適化前のパラメーターと初期値のリスト
Vnom = 3.6 R1 = 0.045 AH = 2.7 V1 = 3.4 AH1 = 1.4 Rp1 = 0.006 tau1 = 200 Vnom_T2 = 3.8 R1_T2 = 0.055 V1_T2 = 3.6 Rp1_T2 = 0.006 tau1_T2 = 200
fminsearch
は関数の局所的最小値を特定する、制約なしの非線形オプティマイザーであるため、初期推定値を変更すると解のセットが変わります。
初期パラメーターを使用した、Battery の出力に対するデータのプロット
単一のセルの Battery モデルを読み込み、パラメーターを設定します。
誤差の二乗和の計算
BatteryParameterizationCostFunction
は、fminsearch
で最小化される関数です。この関数は、Battery の出力電圧とデータの差に対する誤差の二乗和を返します。fminsearch
によって無効なパラメーター値が供給された場合、catch
ステートメントは、誤差として大きな値を返します。
電荷ダイナミクスなしの [メイン] タブ ダイアログのパラメーターの最適化 (手順 1)
Optimized parameters for the battery main dialog tab are: Vnom = 3.6999 R1 = 0.050299 AH = 2.6033 V1 = 3.5265 AH1 = 1.4
電荷ダイナミクス パラメーターの最適化 (手順 2)
Optimized parameters for the Battery, including charge dynamics, are: Vnom = 3.699931 R1 = 0.05019736 AH = 2.603326 V1 = 3.526493 AH1 = 1.4 Rp1 = 0.005029392 tau1 = 109.691
温度依存のパラメーターの最適化 (手順 3)
Optimized temperature dependent parameters for the Battery are: Vnom_T2 = 3.9003 R1_T2 = 0.081404 V1_T2 = 3.8133
2 つ目の温度用の電荷ダイナミクス パラメーターの最適化 (手順 4)
Optimized temperature dependent parameters for the Battery, including charge dynamics, are: Vnom_T2 = 3.900266 R1_T2 = 0.07979468 V1_T2 = 3.813256 Rp1_T2 = 0.007920818 tau1_T2 = 160.2999