EcmParamEstimator
Estimate ECM parameters from pulse-test data and build lookup tables.
This class estimates Equivalent-Circuit Model (ECM) parameters using results from a PulseTestEmulator and organizes them into lookup tables across state of charge (SoC), ambient temperature, and C-rate for both charge and discharge conditions.
Syntax
obj = EcmParamEstimator ( pulseEmulatorObj , thetaInit , thetaLB , thetaUB )
Name
Type
Description
pulseEmulatorObj
PulseTestEmulator
Source of pulse test inputs/results.
thetaInit
double
Initial parameter vector with odd length ≥ 3 in the form [R0, Rp1,...,Rp_n, tau1,...,tau_n].
thetaLB
double
Lower bounds, same size as thetaInit (all ≥ 0).
thetaUB
double
Upper bounds, same size as thetaInit (strictly greater than thetaLB).
Methods
Name
Description
Run_Parameterisation()
Fits ECM parameters for all (SoC, Temp, C-rate) breakpoints and populates LUTs.
Properties
Name
Type
Description
pulseEmulatorObj
PulseTestEmulator
Pulse-Based Model input object.
modelOrder
double
ECM order n where n = (numel(thetaInit) - 1)/2.
thetaInit
double
Initial parameter guess.
thetaBounds
struct
Struct with fields .lb and .ub for parameter bounds.
ecmOptParameters
struct
Fitted ECM parameter lookup tables for charge and discharge.
paramNames
string
Names of parameters stored in the LUTs (R0, R1..Rn, tau1..taun).
Fields of ecmOptParameters.(pulseType)
Field
Type
Description
dim1_socBPs
double
SoC breakpoints.
dim2_tempBPs
double
Ambient temperature breakpoints (°C).
dim3_crateBPs
double
C-rate breakpoints (positive for charge, negative for discharge).
lookUpTables.R0
double array
3D LUT for R0 over [soc, temp, crate].
lookUpTables.R1..Rn
double array
3D LUTs for Rp branches.
lookUpTables.tau1..taun
double array
3D LUTs for time constants.
lookUpTables.ecmModelVoltFits
cell array
Fit tables per grid point with columns time, voltageEcmFit, voltagePhyModel.
Examples
Basic Usage
% First-order ECM example (theta = [R0, Rp1, tau1])
thetaInit = [ 0.01 , 0.02 , 100 ];
thetaLB = [ 0 , 0 , 1 ];
thetaUB = [ 0.1 , 0.1 , 1e4 ];
est = EcmParamEstimator ( pulseEmulatorObj , thetaInit , thetaLB , thetaUB );
est = est . Run_Parameterisation ();
R0_lut = est . ecmOptParameters . discharge . lookUpTables . R0 ;
See also
Version 73723266