Main Content

スーパーコンデンサのパラメーターの特定

この例では、スーパーコンデンサのパラメーターの特定方法を説明します。実際のスーパーコンデンサから電圧と電流の波形を収集する代わりに、この例では、既知のパラメーター値を使用してスーパーコンデンサのシミュレーションを実行することによって、電圧と電流の波形を生成します。その後、例においてパラメーター特定の方法論 [1] を波形に適用します。

方法論の正確性を評価するため、この例では、特定されたパラメーターを既知のパラメーター値と比較します。この例ではまた、Simulink® Design Optimization™ に備わっているパラメーター推定ツールを使用して、パラメーター値の精度をさらに高める方法も説明します。

実際のスーパーコンデンサのパラメーターを経験的に特定するには、次が可能です。

  1. 電圧と電流の波形をスーパーコンデンサから収集します。

  2. 波形データと [1] で説明されている方法論を使用してパラメーター値を特定します。

モデル化されたスーパーコンデンサのパラメーターを特定するために、この例は

  1. スーパーコンデンサのパラメーターの既知の値を使用し、例で構成したモデルをシミュレートすることによって、電圧と電流の波形を生成します。

  2. 生成された波形データと [1] で説明されている方法論を使用して、スーパーコンデンサのパラメーター値を特定します。

  3. 特定されたスーパーコンデンサのパラメーター値を使用してスーパーコンデンサを設定し、シミュレーションを実行します。

このアプローチが実際のスーパーコンデンサでどのように機能するかを確認するには、以下を比較して、特定のための方法論の正確性を評価します。

  • 既知のパラメーター値を使用して生成されたデータと、特定されたパラメーター値を使用して生成されたデータ。

  • 既知のパラメーター値と特定されたパラメーター値。

正確性が十分でない場合には、Simulink Design Optimization のパラメーター推定ツールを使用して改善できます。特定されたパラメーター値を最適化の開始値として使用してください。

データの生成

スーパーコンデンサの固定抵抗パラメーター、固定静電容量パラメーター、電圧依存コンデンサ ゲイン パラメーターの既知の値を使用してモデルを設定し、シミュレートすることによって、電圧と電流の波形を生成します。入力電流をモデル化し、現実的な値を使用してスーパーコンデンサの物理特性と自己放電抵抗を構成します。

次の異なる 3 つのフェーズにおけるスーパーコンデンサの動作を観察します。

  1. 定電流による充電

  2. 即時分岐から遅延分岐への電荷再分配

  3. 即時分岐および遅延分岐から長期分岐への電荷再分配

% Open modelmodelName ='ee_supercapacitor_identification'; open_system(modelName); set_param(find_system('ee_supercapacitor_identification','FindAll','on','type','annotation','Tag','ModelFeatures'),'Interpreter','off')% Configure the supercapacitor using known parameter values.%% Supercapacitor block Cell Characteristics parametersKv = 190;% Voltage-dependent capacitor gainR = [2.5e-3 0.9 5.2];% Fixed resistances, [R1 R2 R3]C = [270 100 220];% Fixed capacitances, [C1 C2 C3]% Store a copy of the known parameter values for an eventual comparison to% parameter values identified using the methodology described in [1].Kv_known = Kv; R_known = R; C_known = C;% Specify input current by configuring the Step block.%% Step block parametersstepTime = [40 1900 1917];% Step timeinitialValue = [28 0 0];% Initial valuefinalValue = [0 -25 25];% Final value% Specify the physical characteristics of the supercapacitor.%% Supercapacitor block Cell Characteristics and Configuration parametersR_discharge = 9e3;% Self-discharge resistanceN_series = 1;% Number of series cellsN_parallel = 1;% Number of parallel cells% Specify the simulation durationstopTime = 2100;% Simulate and store voltage and current waveform datasim(modelName); t = simlog_ee_supercapacitor_identification.Sensing_current.It.i.series.time; i = simlog_ee_supercapacitor_identification.Sensing_current.It.i.series.values; v = simlog_ee_supercapacitor_identification.Sensing_voltage.V.V.series.values;

パラメーターの特定の実行

シミュレーションからの波形データを使用し、[1] で説明されている方法論を適用します。

即時分岐パラメーターの特定

特定を行う最初の段階で、完全に放電済みのスーパーコンデンサが定電流で充電されます。この方法では、即時分岐の時定数が比較的小さいため、すべての初期電荷が即時分岐に蓄積されると仮定します。

即時分岐パラメーターは、電荷特性を測定することによって計算されます。充電電流が$t_1=20e^{-3} \rm{s}$で定常状態に達したら,$v_1$を測定し、以下を使用します。

$R_i=\frac{v_1}{i_1}$

ここで、

  • $t_1$はパラメーター特定イベント$n=1$の時間 ($\rm{s}$)

  • $v_1$$t_1$での端子電圧 ($\rm{V}$)

  • $i_1$$t_1$での充電電流 ($\rm{A}$)

  • $R_i$は即時分岐の固定抵抗 ($\rm{\Omega}$)

電圧が$v_1$から約$50e^{-3} \rm{V}$上昇したら、$t_2$$v_2$を測定し、以下を使用します。

$C_{i0}=i_1\frac{t_2-t_1}{v_2-v_1}$

ここで、

  • $t_2$はパラメーター特定イベントn = 2美元の時間 ($\rm{s}$)

  • $v_2$$t_2$での端子電圧 ($\rm{V}$)

  • $C_{i0}$は即時分岐の固定静電容量 ($\rm{F}$)

電圧が定格電圧に達したら、$v_3$$t_3$を測定し、充電電流をオフにします。$20e^{-3} \rm{s}$後、充電電流が定常値$0 \rm{A}$に達したら、$t_4$$v_4$を測定し、以下を使用します。

$t_4 = t_3+20e^{-3}$

$C_{i1}=\frac{2}{v_4}(\frac{i_1(t_4-t_1)}{v_4}-C_{i0})$

ここで、

  • $t_3$はパラメーター特定イベント$n=3$の時間 ($\rm{s}$)

  • $v_3$$t_3$での端子電圧 ($\rm{V}$)

  • $t_4$はパラメーター特定イベント$n=4$の時間 ($\rm{s}$)

  • $v_4$$t_4$での端子電圧 ($\rm{V}$)

  • $C_{i1}$は電圧依存の静電容量係数 ($\rm{F/V}$)

% Event n=1t1 = 20e-3; i1 = interp1(t,i,t1); v1 = interp1(t,v,t1); Ri = v1/i1;% Extract charging data that interp1 can use to find time values rather% than voltage values[v3, v_max_idx] = max(v); [v_charge, v_charge_idx] = unique(v(1:v_max_idx)); t_charge = t(v_charge_idx);% Event n=2delta_v = 50e-3; v2 = v1+delta_v; t2 = interp1(v_charge,t_charge,v2); i2 = interp1(t,i,t2); Ci0 = i2*(t2-t1)/delta_v;% Event n=3t3 = t(v_max_idx);% Event n=4delta_t = 20e-3; t4 = t3+delta_t; v4 = interp1(t,v,t4); Qtotal = i1*(t4-t1); Cq = Qtotal/v4; Ci1 = (2/v4)*(Cq-Ci0);

遅延分岐パラメーターの特定

第 2 段階の特定で、電荷は即時分岐から遅延分岐に再分配されます。

遅延分岐パラメーターは、電荷保持特性を測定することによって計算されます。

電圧が$v_4$から約$50e^{-3} \rm{V}$低下したら、$t_5$$v_5$を測定し、以下を使用します。

$\Delta v=v_4-v_5$

$V_{ci}=v_4-\frac{\Delta V}{2}$

$C_{diff}=C_{i0}+C_{i1}V_{ci}$

$R_d=\frac{(v_4-\frac{\Delta V}{2})(t_5-t_4)}{C_{diff}\Delta V}$

ここで、

  • $t_5$はパラメーター特定イベント$n=5$の時間 ($\rm{s}$)

  • $v_5$$t_5$での端子電圧 ($\rm{V}$)

  • $V_{ci}$は合計即時静電容量が計算される際の電圧 ($\rm{V}$)

  • $C_{diff}$$V_{ci}$での合計即時静電容量 ($\rm{F}$)

  • $R_d$は遅延分岐の抵抗 ($\rm{\Omega}$)

300 秒間待機してから$t_6$$v_6$を測定し、以下を使用します。

$Q_{total}=i_1(t_4-t_1)$

$C_d=\frac{Q_{total}}{v_6}-(C_{i0}+\frac{C_{i1}}{2}v_6)$

ここで、

  • $t_6$はパラメーター特定イベント$n=6$の時間 ($\rm{s}$)

  • $v_6$$t_6$での端子電圧 ($\rm{V}$)

  • $Q_{total}$はスーパーコンデンサに供給された合計電荷($\rm{C}$)

  • $C_d$は遅延分岐の静電容量 ($\rm{F}$)

% Event n=5v5 = v4-delta_v; discharge_idx = find(i<-20,1,'first'); t_discharge = t(v_max_idx:discharge_idx); v_discharge = v(v_max_idx:discharge_idx); t5 = interp1(v_discharge,t_discharge,v5); delta_t = t5-t4; Vci = v4-(delta_v/2); Cdiff = Ci0+Ci1*Vci; Rd = (v4-(delta_v/2))*delta_t/(Cdiff*delta_v);% Event n=6TypicallyRdTimesCd = 100; t6 = t5 + 3*TypicallyRdTimesCd; v6 = interp1(t,v,t6); Cd = (Qtotal/v6)-(Ci0+((Ci1/2)*v6));

長期分岐パラメーターの特定

第 3 (最終) 段階の特定で、電荷は即時分岐と遅延分岐から長期分岐に再分配されます。

長期分岐パラメーターは、電荷保持特性を測定することによって計算されます。

電圧が$v_6$から約$50e^{-3} \rm{V}$低下したら、$t_7$$v_7$を測定し、以下を使用します。

$\Delta v=v_6-v_7$

$R_l=\frac{(v_6-\frac{\Delta V}{2})(t7-t_6)}{C_{diff}\Delta V}$

ここで、

  • $t_7$はパラメーター特定イベント$n=7$の時間 ($\rm{s}$)

  • $v_7$$t_7$での端子電圧 ($\rm{V}$)

  • $R_l$は長期分岐の抵抗 ($\rm{\Omega}$)

充放電処理の開始から 30 分後に$t_8$$v_8$を測定し、以下を使用します。

$C_l=\frac{Q_{total}}{v_8}-(C_{i0}+\frac{C_{i1}}{2}v_8)-C_d$

ここで、

  • $t_8$はパラメーター特定イベント$n=8$の時間 ($\rm{s}$)

  • $v_8$$t_8$での端子電圧 ($\rm{V}$)

  • $C_l$は長期分岐の静電容量 ($\rm{F}$)

% Event n=7v7 = v6-delta_v; t7 = interp1(v_discharge,t_discharge,v7); delta_t = t7-t6; Vci = v6-(delta_v/2); Cdiff = Ci0+Ci1*Vci; Rl = (v6-(delta_v/2))*delta_t/(Cdiff*delta_v);% Rl value large% Event n=8t8 = 30*60; v8 = interp1(t,v,t8); Cl = (Qtotal/v8)-(Ci0+(v8*Ci1/2))-Cd;% Cl value too large

時間と電圧のデータの照合

各パラメーター特定イベントの時間と電圧のデータを MATLAB® の table で照合します。

DataTable = table((1:8)',...[t1 t2 t3 t4 t5 t6 t7 t8]',...[v1 v2 v3 v4 v5 v6 v7 v8]',...'VariableNames',{'Event','Time','Voltage'})%#ok
DataTable = 8x3 table Event Time Voltage _____ _______ ________ 1 0.02 0.071799 2 0.51803 0.1218 3 40 2.2717 4 40.02 2.2019 5 56.675 2.1519 6 356.67 1.8473 7 499.28 1.7973 8 1800 1.5865

特定されたパラメーターの精度の評価

特定されたスーパーコンデンサのパラメーターを使用してモデルを設定し、シミュレートします。次に、特定されたパラメーター値の精度を評価するために、波形出力を、既知のパラメーターを使用したシミュレーションで生成されたデータと比較します。

% Create parameters for supercapacitor block using identified values and% create copies for easy reference.Kv = Ci1; R = [Ri Rd Rl]; C = [Ci0 Cd Cl]; Kv_identified = Kv; R_identified = R; C_identified = C;%模拟模型和存储电压and current waveforms.sim(modelName); t_ = simlog_ee_supercapacitor_identification.Sensing_current.It.i.series.time; v_ = simlog_ee_supercapacitor_identification.Sensing_voltage.V.V.series.values;% Plot the data generated from simulating with known parameters on the% same axis as the data generated from simulating with identified% parameters.figure; plot(t,v,DataTable.Time,DataTable.Voltage,'o',t_,v_); grid('on'); legend('Known parameters simulation',...'Measurements for parameter identification',...'Identified parameters simulation');

最適化

必要条件:

  1. Simulink Design Optimization のライセンス

トレースの類似性が要件に満たない場合には、特定されたパラメーター値を、Simulink Design Optimization のパラメーター推定ツールで初期パラメーター値として使用できます。

  • spetool('ee_supercapacitor_spesession');

最適化の結果

残差平方和のコスト関数と非線形最小二乗の最適化手法を使用して作成されたパラメーターの軌跡を表示します。

openfig('ee_supercapacitor_speresults');

参考文献

[1] Zubieta, L. and R. Bonert. "Characterization of Double-Layer Capacitors for Power Electronics Applications." IEEE Transactions on Industry Applications, Vol. 36, No. 1, 2000, pp. 199-205.