主要内容

超级电容参数识别

本示例展示如何识别超级电容的参数。本例不是从真正的超级电容器中收集电压和电流波形,而是通过使用已知的参数值运行超级电容器的模拟来生成电压和电流波形。然后将参数识别方法[1]应用到波形中。

为了评估该方法的准确性,该示例将识别的参数与已知参数值进行比较。该示例还展示了如何使用Simulink®Design Optimization™提供的参数估计工具进一步细化参数值。金宝app

要根据经验识别实际超级电容器的参数,您可以:

  1. 从超级电容器中收集电压和电流波形。

  2. 使用波形数据和[1]中描述的方法识别参数值。

要识别建模超级电容器的参数,以下示例:

  1. 通过模拟模型生成电压和电流波形,该模型使用超级电容器参数的已知值进行配置。

  2. 使用生成的波形数据和[1]中描述的方法识别超级电容器参数值。

  3. 使用指定的超级电容参数值配置和模拟超级电容。

要了解该方法如何适用于真正的超级电容器,请通过比较来评估识别方法的准确性:

  • 使用已知参数值生成的数据和使用已识别参数值生成的数据。

  • 已知参数值和已识别参数值。

如果精度不够,您可以使用Simulink Design Optimization中的参数估计工具来改进它。金宝app使用确定的参数值作为优化的起始值。

生成数据

通过使用超级电容器的固定电阻、固定电容和电压依赖电容增益参数的已知值配置和模拟模型,生成电压和电流波形。模拟输入电流,配置物理特性和自放电电阻的超级电容器使用实际值。

观察超级电容器在三个不同阶段的行为:

  1. 恒流充电

  2. 电荷从即时分支重新分配到延迟分支

  3. 从即时分支和延迟分支到长期分支的费用再分配

%开放模式modelName =“ee_supercapacitor_identification”;open_system (modelName);set_param (find_system (“ee_supercapacitor_identification”“FindAll”“上”“类型”“注释”“标签”“ModelFeatures”),“翻译”“关闭”%使用已知参数值配置超级电容。超级电容块电池特性参数Kv = 190;%电压依赖性电容器增益R = [2.5e-3 0.9 5.2];%固定电阻,[R1 R2 R3]C = [270 100 220];%固定电容,[C1 C2 C3]存储已知参数值的副本,以便最终与%使用[1]中描述的方法识别的参数值。Kv_known = Kv;R_known = R;C_known = C;通过配置Step块指定输入电流。步骤块参数stepTime = [40 1900 1917];%步骤时间initialValue = [28 0 0];初始值finalValue = [0 -25 25];最终值%指定超级电容的物理特性。超级电容块电池特性及配置参数R_discharge = 9e3;自放电电阻%N_series = 1;%系列单元格数N_parallel = 1;%平行单元格数%指定模拟持续时间stopTime = 2100;模拟和存储电压和电流波形数据sim (modelName);t = simlog_ee_supercapacitor_identity . sensing_current . it .i.series.time;i = simlog_ee_supercapacitor_identity . sensing_current . it .i.series.values;v = simlog_ee_supercapacitor_identity . sensing_voltage . v.v. series.values;

进行参数识别

使用来自模拟的波形数据,应用[1]中描述的方法。

直接分支参数识别

在识别的第一阶段,一个完全放电的超级电容器被恒流充电。该方法假定直接分支存储所有初始电荷,因为分支的时间常数相对较小。

直接支路参数是通过测量电荷特性来计算的。一旦充电电流达到稳态$ t_1 = 20 e ^ {3} \ rm{年代}$、测量v_1美元和使用

$ R_i = \压裂{v_1} {i_1} $

地点:

  • t_1美元时间是否在参数识别事件n = 1美元$ \ rm{年代}$

  • v_1美元端电压为t_1美元$ \ rm {V} $

  • i_1美元充电电流为t_1美元$ \ rm{一}$

  • R_i美元是直接分支的固定电阻,$ \ rm{\ω}$

一旦电压从v_1美元50美元e ^ {3} \ rm {V} $、测量t_2美元而且v_2美元和使用

美元C_ {i0} = i_1 \压裂{t_2-t_1} {v_2-v_1} $

地点:

  • t_2美元时间是否在参数识别事件n = 2美元$ \ rm{年代}$

  • v_2美元端电压为t_2美元$ \ rm {V} $

  • 美元C_ {i0} $为直接支路固定电容,$ \ rm {F} $

一旦电压达到额定电压,测量v_3美元而且t_3美元,并关闭充电电流。后20美元e ^ {3} \ rm{年代}$,一旦充电电流达到稳态值0美元\ rm {} $测量t_4美元而且两者的美元和使用

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

美元C_ {i1} = \压裂{2}{两者}(\压裂{i_1 (t_4-t_1)}{两者}-C_ {i0})美元

地点:

  • t_3美元时间是否在参数识别事件n = 3美元$ \ rm{年代}$

  • v_3美元端电压为t_3美元$ \ rm {V} $

  • t_4美元时间是否在参数识别事件n = 4美元$ \ rm{年代}$

  • 两者的美元端电压为t_4美元$ \ rm {V} $

  • 美元C_ {i1} $为电压依赖性电容系数,$ \ rm {F / V} $

%事件n=1T1 = 20e-3;I1 = interp1(t,i,t1);V1 = interp1(t,v,t1);Ri = v1/i1;提取interp1可用于查找时间值的收费数据比电压值%[v3, v_max_idx] = max(v);[v_charge, v_charge_idx] = unique(v(1:v_max_idx));T_charge = t(v_charge_idx);%事件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;%事件n=3T3 = t(v_max_idx);%事件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);

延迟支路参数识别

在识别的第二阶段,电荷从直接分支重新分配到延迟分支。

通过测量保持电荷特性,计算出延迟支路参数。

一旦电压从两者的美元50美元e ^ {3} \ rm {V} $、测量t_5美元而且v_5美元和使用

$ \δv = v_4-v_5美元

美元V_ {ci} =两者- \压裂{\δV} {2} $

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

$ R_d = \压裂{(两者\压裂{\δV} {2}) (t_5-t_4)} {C_ {diff} \δV} $

地点:

  • t_5美元时间是否在参数识别事件n = 5美元$ \ rm{年代}$

  • v_5美元端电压为t_5美元$ \ rm {V} $

  • 美元V_ {ci} $是计算总瞬时电容时的电压,$ \ rm {V} $

  • 美元C_ {diff} $总瞬时电容为美元V_ {ci} $$ \ rm {F} $

  • R_d美元是延迟支路电阻,$ \ rm{\ω}$

等待300秒,测量t_6美元而且v_6美元和使用

美元Q_{总}= i_1 (t_4-t_1)美元

重金属镉美元= \压裂{Q_总}{}{v_6} - C_ ({i0} + \压裂{C_ {i1}} {2} v_6)美元

地点:

  • t_6美元时间是否在参数识别事件n = 6美元$ \ rm{年代}$

  • v_6美元端电压为t_6美元$ \ rm {V} $

  • 美元Q_{总}$总电荷供给超级电容器,$ \ rm {C} $

  • 重金属镉美元为延迟支路电容,$ \ rm {F} $

%事件n=5V5 = v4-delta_v;Discharge_idx = find(i<-20,1,“第一”);T_discharge = t(v_max_idx:discharge_idx);v_放电= v(v_max_idx:放电_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);%事件n=6typallyrdtimescd = 100;t6 = t5 + 3* typallyrdtimescd;V6 = interp1(t,v,t6);Cd = (Qtotal/v6)-(Ci0+((Ci1/2)*v6));

长期分支参数辨识

在识别的第三个阶段,也是最后一个阶段,电荷从即时分支和延迟分支重新分配到长期分支。

通过测量持有电荷特性,计算出长支路参数。

一旦电压从v_6美元50美元e ^ {3} \ rm {V} $、测量t_7美元而且v_7美元和使用

$ \δv = v_6-v_7美元

$ R_l = \压裂{(v_6 \压裂{\δV} {2}) (t7-t_6)} {C_ {diff} \δV} $

地点:

  • t_7美元时间是否在参数识别事件n = 7美元$ \ rm{年代}$

  • v_7美元端电压为t_7美元$ \ rm {V} $

  • R_l美元是长期分支阻力,$ \ rm{\ω}$

充电/放电过程开始30分钟后,测量t_8美元而且v_8美元和使用

$ C_l = \压裂{Q_{总}}{v_8} - C_ ({i0} + \压裂{C_ {i1}} {2} v_8)重金属镉美元

地点:

  • t_8美元时间是否在参数识别事件n = 8美元$ \ rm{年代}$

  • v_8美元端电压为t_8美元$ \ rm {V} $

  • C_l美元为长支路电容,$ \ rm {F} $

%事件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值大%事件n=8T8 = 30*60;V8 = interp1(t,v,t8);Cl = (Qtotal/v8)-(Ci0+(v8*Ci1/2))- cd;% Cl值太大

整理时间和电压数据

在MATLAB®表中整理每个参数识别事件的时间和电压数据:

DataTable = table((1:8)',...[t1 t2 t3 t4 t5 t6 t7 t8]',...[v1 v2 v3 v4 v5 v6 v7 v8]',...“VariableNames”, {“事件”“时间”“电压”})% #好< NOPTS >
DataTable = 8x3 table事件时间电压_____ _______ ________ 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

评估识别参数的准确性

使用确定的超级电容器参数配置和模拟模型。然后,为了评估识别参数值的准确性,将波形输出与使用已知参数的模拟生成的数据进行比较。

使用已识别的值和创建超级电容块参数%创建副本以方便参考。Kv = Ci1;R = [Ri Rd Rl];C = [Ci0 Cd Cl];Kv_identified = Kv;R_identified = R;C;模拟模型并存储电压和电流波形。sim (modelName);t_ = simlog_ee_supercapacitor_identity . sensing_current . it .i.series.time;v_ = simlog_ee_supercapacitor_identity . sensing_voltage . v.v. series.values;将已知参数模拟生成的数据绘制在%相同的轴与模拟生成的数据相识别%的参数。图;情节(t v, DataTable.Time DataTable.Voltage,“o”, t_,识别v_);网格(“上”);传奇(“已知参数模拟”...“参数识别测量”...“识别参数模拟”);

优化

先决条件:

  1. 金宝appSimulink设计优化许可证

如果轨迹不够相似,不能满足需求,则识别出的参数值可以作为Simulink Design Optimization中的参数估计工具的初始参数值。金宝app

  • spetool(“ee_supercapacitor_spesession”);

优化结果

方法创建的参数轨迹和平方误差成本函数和非线性最小二乘优化方法。

openfig (“ee_supercapacitor_speresults”);

参考文献

[1]祖比塔,L.和R.博纳特。电力电子应用中双层电容器的表征IEEE工业应用学报,Vol. 36, No. 1, 2000, pp. 199-205。