Advertisement
moyamartin

generate_dynamic_parameters.m

Aug 10th, 2020
2,312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.43 KB | None | 0 0
  1. %% Obtaining Tz, Tp1 and Tp2
  2. current_dir = pwd;
  3.  
  4. load([current_dir '/25degC/5 pulse disch/03-11-17_08.47 25degC_5Pulse_HPPC_Pan18650PF.mat'])
  5. load([current_dir '/ocv_soc.mat'])
  6. load([current_dir '/indexes_current_pulses.mat'])
  7.  
  8. % Inicializa arreglos z, p, k
  9. z = zeros(length(indexes) - 1, 1);
  10. p = zeros(length(z), 2);
  11. k = zeros(length(p), 1);
  12. for i = 1:length(indexes) - 1
  13.     % Guarda el voltage entre rangos
  14.     voltage_buffer = meas.Voltage(indexes(i):indexes(i+1)) - meas.Voltage(indexes(i));
  15.     % Guarda la corriente entre rangos
  16.     current_buffer = meas.Current(indexes(i):indexes(i+1));
  17.     % Guarda el pico de corriente
  18.     current_step = min(current_buffer);
  19.     % Guarda el espacio temporal entre indices
  20.     time_buffer = meas.Time(indexes(i):indexes(i+1)) - meas.Time(indexes(i));
  21.     fs = 1/.001;    % Frecuencia de sampleo
  22.     % Resamplea las muestras a una frecuencia
  23.     [current_resampled, ~] = resample(current_buffer, time_buffer, fs, 5, 20);
  24.     [voltage_resampled, ~] = resample(voltage_buffer, time_buffer, fs, 5, 20);
  25.     % Genera el iddata del voltage y la corriente
  26.     data_buffer = iddata(voltage_resampled, current_resampled, 1/fs);
  27.     % Estima de la funcion transferencia
  28.     battery_model = tfest(data_buffer, 2, 1)
  29.     % Extrae los ceros, polos y ganancia
  30.     zpk_buffer = zpk(battery_model)
  31.     z(i) = cell2mat(zpk_buffer.Z);
  32.     p(i, :) = cell2mat(zpk_buffer.P);
  33.     k(i) = zpk_buffer.K;
  34. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement