主要内容

超级电容器参数标识

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

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

要验证实际超级电容器的参数,您可以:

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

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

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

  1. 通过模拟使用已知值的超级电容器参数来生成电压和电流波形。

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

  3. 使用识别的超级电容器参数值配置和模拟超级电容器。

要了解如何为真正的超级电容器工作方式,通过比较来评估识别方法的准确性:

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

  • 已知的参数值和标识的参数值。

如果准确性不足,则可以使用Simulink设计优化中的参数估计工具来改进它。金宝app使用识别的参数值作为优化的起始值。

生成数据

通过使用超级电容器的固定电阻,固定电容和电压相关电容器增益参数配置和模拟模型来产生电压和电流波形。使用现实值模拟输入电流,配置超级电容器的物理特性和自放电电阻。

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

  1. 恒定电流充电

  2. 从立即到延迟分支的充电再分配

  3. 从立即和延迟分支到长期分支机构的充电重新分配

%开放式模型modelname =.'ee_supercapacitor_identification';Open_System(ModelName);set_param(find_system('ee_supercapacitor_identification''找到所有''在''类型''注解''标签''modeveeatures'),'口译员''离开'%使用已知的参数值配置超级电容器。%超级电容器块单元特征参数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;%通过配置步骤块来指定输入电流。%步骤块参数步骤= [40 1900 1917];%步骤时间initialValue = [28 0 0];% 初始值FinalValue = [0 -25 25];%最终价值%指定超级电容器的物理特征。%超级电容器块单元特性和配置参数r_discharge = 9e3;%自放电阻力n_series = 1;%系列单元格数n_parallel = 1;%并行细胞数%指定模拟持续时间停止= 2100;%模拟和存储电压和电流波形数据sim(modelname);t = simlog_ee_supercapacitor_identified.sensing_current.it.i.series.time;i = simlog_ee_supercapacitor_identified.sensing_current.it.i.series.values;v = simlog_ee_supercapacitor_identified.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} $

%事件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] =唯一(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);

延迟分支参数识别

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

通过测量保持电荷特性来计算延迟分支参数。

一旦电压从$ 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_ {总} $提供给超级电容器的总费用,$ \ rm {c} $

  • $ c_d $是延迟分支电容,$ \ rm {f} $

%事件n = 5v5 = v4-delta_v;distrate_idx =查找(i <-20,1,'第一的');t_discharge = t(v_max_idx:distrate_idx);v_discharge = v(v_max_idx:distrate_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 / (ddiff * delta_v);%事件n = 6arianrdtimescd = 100;T6 = T5 + 3 * Animrdtimescd;v6 = Interp1(t,v,t6);CD =(qtotal / v6) - (ci0 +((ci1 / 2)* v6));

长期分支参数识别

在第三个和最终阶段的识别阶段,从立即和延迟分支到长期分支的指控。

通过测量保持电荷特性来计算长期分支参数。

一旦电压从$ 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} $

%事件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 / (ddiff * delta_v);%RL值大%事件n = 8T8 = 30 * 60;V8 = Interp1(t,v,t8);cl =(qtotal / v8) - (ci0 +(v8 * ci1 / 2)) -  cd;%cl值太大了

整理时间和电压数据

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

DataTable =表((1:8)',......[T1 T2 T3 T4 T5 T6 T7]',......[v1 v2 v3 v4 v5 v6 v7 v8]',......'variablenames',{'事件''时间''电压'})%#OK 
DataTable = 8x3表事件时间电压_____ _______ ________ 1 0.02 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 = [ci0cc cl];kv_identified = kv;r_identified = r;c_identified = c;%模拟模型和存储电压和电流波形。sim(modelname);t_ = simlog_ee_supercapacitor_identified.sensing_current.it.i.series.time;v_ = simlog_ee_supercapacitor_identified.sensing_voltage.v.v.series.values;%绘制以与已知参数的模拟生成的数据%相同的轴作为从识别的模拟生成的数据% 参数。数字;绘图(T,V,DataTable.Time,DataTable.Voltage,'o',电视_);网格('在');传奇('已知参数模拟'......'参数识别的测量'......'识别的参数仿真');

优化

先决条件:

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

如果迹线不足以满足要求,则识别的参数值可以作为来自Simulink设计优化的参数估计工具的初始参数值。金宝app

  • Spetool('ee_supercapacitor_spessession');

优化结果

显示使用的参数轨迹和平方错误成本职能非线性最小二乘法优化方法。

OpenFig('ee_supercapacitor_sparesults');

参考

[1] Zubieta,L.和R.Bonert。“用于电力电子应用的双层电容器的表征。”IEEE行业应用的交易,Vol。36,第1,2000,PP。199-205。