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

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

Чтобы оценить точность методологии, пример сравнивает идентифицированные параметры с известными значениями параметров. Пример также показывает, как далее совершенствовать значения параметров с помощью инструмента Parameter Estimation, обеспеченного Simulink® Design Optimization™.

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

  1. Соберите напряжение и формы тока от суперконденсатора.

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

Идентифицировать параметры смоделированного суперконденсатора, этого примера:

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

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

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

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

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

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

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

Сгенерируйте данные

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

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

  1. Обвините в постоянном токе

  2. Заряжайте перераспределение от мгновенного до задержанного ответвления

  3. Заряжайте перераспределение от мгновенных и задержанных ответвлений до долгосрочного ответвления

% Open model
modelName = 'ee_supercapacitor_identification';
open_system(modelName);

% 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].

Мгновенная идентификация параметра ответвления

Во время первой стадии идентификации полностью разряженный суперконденсатор обвинен в постоянном токе. Метод принимает, что мгновенные магазины-филиалы весь первоначальный сбор, потому что временная константа для ответвления является относительно небольшой.

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

где:

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • зарядный ток в,

  • зафиксированное сопротивление мгновенного ответвления,

Если напряжение увеличилось с приблизительно, мера и и использование

где:

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • зафиксированная емкость мгновенного ответвления,

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

где:

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • зависимый напряжением коэффициент емкости,

% 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);

Задержанная идентификация параметра ответвления

Во время второго этапа идентификации заряд перераспределяет от мгновенного ответвления до задержанного ответвления.

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

Если напряжение уменьшилось с приблизительно, мера и и использование

где:

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • напряжение, при котором общая мгновенная емкость должна быть вычислена,

  • общая мгновенная емкость в,

  • задержанное параллельное сопротивление,

Ожидайте в течение 300 секунд, меры и и использование

где:

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • общий заряд, предоставленный суперконденсатору,

  • задерживается емкость ответвления,

% 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));

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

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

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

Если напряжение уменьшилось с приблизительно, мера и и использование

где:

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • долгосрочное параллельное сопротивление,

После 30 минут от запуска процесса зарядки/разряда измерьтесь и и использование

где:

  • время в идентификационном событии параметра,

  • терминальное напряжение в,

  • долгосрочная емкость ответвления,

% 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

Если трассировки не достаточно подобны, чтобы удовлетворить требования, то идентифицированные значения параметров могут служить начальными значениями параметров для инструмента Parameter Estimation от Simulink Design Optimization.

  • spetool ('ee_supercapacitor_spesession');

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

Отобразитесь траектория параметра создала использование функции стоимости Квадратичной невязки Суммы и метода оптимизации Нелинейного метода наименьших квадратов.

openfig('ee_supercapacitor_speresults');

Ссылки

[1] Zubieta, L. и Р. Бонерт. "Характеристика Конденсаторов Двойного Слоя для Приложений Силовой электроники". Транзакции IEEE на Промышленных Приложениях, Издании 36, № 1, 2000, стр 199-205.