exponenta event banner

Идентификация параметров суперконденсатора

В этом примере показано, как идентифицировать параметры суперконденсатора. Вместо сбора сигналов напряжения и тока от реального суперконденсатора пример генерирует сигналы напряжения и тока путем выполнения моделирования суперконденсатора с использованием уже известных значений параметров. Затем пример применяет методологию [1] идентификации параметра к формам сигнала.

Для оценки точности методологии пример сравнивает идентифицированные параметры с известными значениями параметров. В примере также показано, как уточнить значения параметров с помощью инструмента «Оценка параметров», предоставляемого Simulink ® Design Optimization™.

Для эмпирической идентификации параметров фактического суперконденсатора можно:

  1. Сбор сигналов напряжения и тока от суперконденсатора.

  2. Определите значения параметров с помощью данных формы сигнала и методологии, описанной в [1].

Чтобы определить параметры моделируемого суперконденсатора, выполните следующие действия.

  1. Генерирует сигналы напряжения и тока путем моделирования модели, которую настраивает с использованием известных значений параметров суперконденсатора.

  2. Определяет значения параметров суперконденсатора с использованием сгенерированных данных формы сигнала и методологии, описанной в [1].

  3. Настройка и моделирование суперконденсатора с использованием идентифицированных значений параметров суперконденсатора.

Чтобы увидеть, как работает подход для реального суперконденсатора, оцените точность методологии идентификации, сравнив:

  • данные, сгенерированные с использованием известных значений параметров, и данные, сгенерированные с использованием идентифицированных значений параметров.

  • известные значения параметров и идентифицированные значения параметров.

Если точность недостаточна, для ее улучшения можно воспользоваться инструментом «Оценка параметров» модуля Simulink Design Optimization. Используйте определенные значения параметров в качестве начальных значений для оптимизации.

Генерировать данные

Генерирование сигналов напряжения и тока путем конфигурирования и моделирования модели с использованием известных значений для фиксированных сопротивлений, фиксированных емкостей и зависимых от напряжения параметров усиления конденсатора суперконденсатора. Моделирование входного тока, настройка физических характеристик и сопротивления саморазряда суперконденсатора с использованием реалистичных значений.

Наблюдайте за поведением суперконденсатора в течение трех различных фаз:

  1. Заряд постоянным током

  2. Перераспределение расходов с немедленного на задержанный филиал

  3. Перераспределение расходов между непосредственными и задержанными филиалами и долгосрочным филиалом

% Open model
modelName = '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 parameters
Kv = 190;                   % Voltage-dependent capacitor gain
R = [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 parameters
stepTime = [40 1900 1917];  % Step time
initialValue = [28 0 0];    % Initial value
finalValue = [0 -25 25];    % Final value

% Specify the physical characteristics of the supercapacitor.
%
% Supercapacitor block Cell Characteristics and Configuration parameters
R_discharge = 9e3;          % Self-discharge resistance
N_series = 1;               % Number of series cells
N_parallel = 1;             % Number of parallel cells

% Specify the simulation duration
stopTime = 2100;

% Simulate and store voltage and current waveform data
sim(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=1
t1 = 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=2
delta_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=3
t3 = t(v_max_idx);

% Event n=4
delta_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_{total}$ - общий заряд, подаваемый на суперконденсатор, $\rm{C}$

  • $C_d$ - емкость задержанного ответвления, $\rm{F}$

% Event n=5
v5 = 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=6
TypicallyRdTimesCd = 100;
t6 = t5 + 3*TypicallyRdTimesCd;
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}$

% Event n=7
v7 = 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=8
t8 = 30*60;
v8 = interp1(t,v,t8);
Cl = (Qtotal/v8)-(Ci0+(v8*Ci1/2))-Cd; % Cl value too large

Сопоставление данных о времени и напряжении

Сопоставьте данные о времени и напряжении для каждого события идентификации параметров в таблице MATLAB ®:

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<NOPTS>
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;

% Simulate the model and store voltage 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 _ spession');

Результаты оптимизации

Отобразите траекторию параметра, созданную с помощью функции затрат Сумма квадрата ошибки (Sum Squared Error) и метода оптимизации нелинейных наименьших квадратов.

openfig('ee_supercapacitor_speresults');

Ссылки

[1] Зубиета, Л. и Р. Бонерт. «Характеристика двухслойных конденсаторов для электроники питания». IEEE Transactions on Industry Applications, том 36, № 1, 2000, стр. 199-205.