Note
This notebook is already available in your BattMo installation. In Matlab, run
open runCalibrateEcmFromP2D
Calibration ECM model from P2D model
We calibrate the ECM model parameters from the EIS response of a P2D model. The calibration is done for a set of state of charge.
P2D reference model
We load the data of the P2D model. The input is the same as for the P2D simulation
We load first the material parameters
[1]:
filename = fullfile('ParameterData','ParameterSets','Chen2020','chen2020_lithium_ion_battery.json');
jsonstruct_material = parseBattmoJson(filename);
Then, the geometrical parameters
[2]:
filename = fullfile('Examples', 'JsonDataFiles', 'geometryChen.json');
jsonstruct_geometry = parseBattmoJson(filename);
We merge the two
[3]:
jsonstruct_p2d = mergeStructs({jsonstruct_material, ...
jsonstruct_geometry});
The calibration is done at different state of charge. To dei
[4]:
soc_values = linspace(0, 1, 5);
The results of the calibration is given in a struct where the fields are functions given in the battmo table format (see below)
[5]:
jsonstruct = calibrateEcmFromP2D(jsonstruct_p2d, soc_values);
[5]:
==================================================
EIS fitting for SOC = 0.00 (1/5)
==================================================
Linearization...
It: 0 | val: 6.987e+00 | ls-its: NaN | pgrad: 5.308e+03
It: 1 | val: 6.800e+00 | ls-its: 3 | pgrad: 4.615e+03
Line search at max step size, Wolfe conditions not satisfied for this step.
Hessian not updated during iteration 2.
It: 2 | val: 3.511e+00 | ls-its: 3 | pgrad: 2.404e+03
It: 3 | val: 1.981e+00 | ls-its: 2 | pgrad: 3.104e+03
It: 4 | val: 1.850e+00 | ls-its: 2 | pgrad: 5.327e+03
It: 5 | val: 1.657e+00 | ls-its: 2 | pgrad: 4.937e+03
It: 6 | val: 1.472e+00 | ls-its: 2 | pgrad: 1.324e+03
It: 7 | val: 1.134e+00 | ls-its: 1 | pgrad: 6.249e+03
It: 8 | val: 4.576e-01 | ls-its: 1 | pgrad: 1.162e+04
It: 9 | val: 3.201e-01 | ls-its: 1 | pgrad: 4.032e+03
It: 10 | val: 2.851e-01 | ls-its: 3 | pgrad: 3.832e+03
It: 11 | val: 2.749e-01 | ls-its: 1 | pgrad: 2.151e+03
It: 12 | val: 2.655e-01 | ls-its: 1 | pgrad: 1.033e+03
It: 13 | val: 2.640e-01 | ls-its: 1 | pgrad: 1.031e+03
It: 14 | val: 2.634e-01 | ls-its: 1 | pgrad: 2.418e+02
It: 15 | val: 2.628e-01 | ls-its: 1 | pgrad: 6.937e+02
It: 16 | val: 2.605e-01 | ls-its: 1 | pgrad: 6.110e+02
It: 17 | val: 2.559e-01 | ls-its: 1 | pgrad: 3.902e+02
It: 18 | val: 2.514e-01 | ls-its: 1 | pgrad: 1.282e+03
It: 19 | val: 2.414e-01 | ls-its: 1 | pgrad: 1.471e+03
It: 20 | val: 2.265e-01 | ls-its: 2 | pgrad: 1.625e+03
It: 21 | val: 1.982e-01 | ls-its: 1 | pgrad: 1.920e+03
It: 22 | val: 1.609e-01 | ls-its: 3 | pgrad: 1.991e+03
It: 23 | val: 1.601e-01 | ls-its: 2 | pgrad: 2.019e+03
It: 24 | val: 1.452e-01 | ls-its: 1 | pgrad: 1.166e+03
It: 25 | val: 1.195e-01 | ls-its: 2 | pgrad: 1.080e+03
It: 26 | val: 1.100e-01 | ls-its: 1 | pgrad: 4.560e+02
It: 27 | val: 7.173e-02 | ls-its: 1 | pgrad: 5.756e+03
It: 28 | val: 5.756e-02 | ls-its: 1 | pgrad: 1.623e+03
It: 29 | val: 4.753e-02 | ls-its: 1 | pgrad: 4.670e+01
It: 30 | val: 4.060e-02 | ls-its: 1 | pgrad: 9.065e+02
It: 31 | val: 3.631e-02 | ls-its: 1 | pgrad: 5.973e+02
It: 32 | val: 3.236e-02 | ls-its: 1 | pgrad: 1.212e+03
It: 33 | val: 3.062e-02 | ls-its: 1 | pgrad: 1.444e+03
It: 34 | val: 3.004e-02 | ls-its: 1 | pgrad: 3.458e+02
It: 35 | val: 2.946e-02 | ls-its: 1 | pgrad: 1.179e+02
It: 36 | val: 2.834e-02 | ls-its: 1 | pgrad: 1.257e+02
It: 37 | val: 2.772e-02 | ls-its: 2 | pgrad: 1.074e+02
It: 38 | val: 2.447e-02 | ls-its: 1 | pgrad: 1.549e+02
It: 39 | val: 2.385e-02 | ls-its: 2 | pgrad: 2.377e+02
It: 40 | val: 2.231e-02 | ls-its: 1 | pgrad: 6.483e+02
It: 41 | val: 2.161e-02 | ls-its: 1 | pgrad: 1.690e+02
It: 42 | val: 2.148e-02 | ls-its: 2 | pgrad: 8.733e+01
It: 43 | val: 2.139e-02 | ls-its: 1 | pgrad: 1.047e+02
It: 44 | val: 2.137e-02 | ls-its: 1 | pgrad: 3.075e+01
It: 45 | val: 2.125e-02 | ls-its: 1 | pgrad: 2.788e+01
It: 46 | val: 2.116e-02 | ls-its: 1 | pgrad: 1.872e+02
It: 47 | val: 2.106e-02 | ls-its: 1 | pgrad: 3.666e+01
It: 48 | val: 2.097e-02 | ls-its: 1 | pgrad: 1.040e+02
It: 49 | val: 2.094e-02 | ls-its: 2 | pgrad: 9.732e+01
It: 50 | val: 2.087e-02 | ls-its: 1 | pgrad: 2.102e+02
It: 51 | val: 2.086e-02 | ls-its: 1 | pgrad: 6.675e+01
It: 52 | val: 2.086e-02 | ls-its: 1 | pgrad: 2.948e+00
It: 53 | val: 2.086e-02 | ls-its: 1 | pgrad: 3.978e+00
It: 54 | val: 2.086e-02 | ls-its: 2 | pgrad: 3.674e+00
It: 55 | val: 2.086e-02 | ls-its: 1 | pgrad: 1.563e+01
It: 56 | val: 2.086e-02 | ls-its: 1 | pgrad: 8.952e+00
It: 57 | val: 2.086e-02 | ls-its: 2 | pgrad: 6.091e+00
It: 58 | val: 2.085e-02 | ls-its: 1 | pgrad: 9.093e+00
It: 59 | val: 2.085e-02 | ls-its: 1 | pgrad: 6.168e+00
It: 60 | val: 2.085e-02 | ls-its: 1 | pgrad: 2.234e+00
It: 61 | val: 2.085e-02 | ls-its: 2 | pgrad: 3.760e+00
It: 62 | val: 2.085e-02 | ls-its: 1 | pgrad: 4.217e-01
It: 63 | val: 2.085e-02 | ls-its: 2 | pgrad: 2.573e-01
It: 64 | val: 2.085e-02 | ls-its: 2 | pgrad: 1.353e-01
It: 65 | val: 2.085e-02 | ls-its: 1 | pgrad: 2.454e-01
It: 66 | val: 2.085e-02 | ls-its: 2 | pgrad: 2.312e-01
It: 67 | val: 2.085e-02 | ls-its: 2 | pgrad: 3.120e-01
It: 68 | val: 2.085e-02 | ls-its: 1 | pgrad: 3.737e-01
It: 69 | val: 2.085e-02 | ls-its: 1 | pgrad: 1.634e-01
It: 70 | val: 2.085e-02 | ls-its: 2 | pgrad: 3.669e-03
It: 71 | val: 2.085e-02 | ls-its: 1 | pgrad: 8.036e-04
It: 72 | val: 2.085e-02 | ls-its: 1 | pgrad: 7.337e-04
It: 73 | val: 2.085e-02 | ls-its: 1 | pgrad: 4.399e-04
It: 74 | val: 2.085e-02 | ls-its: 1 | pgrad: 3.450e-04
It: 75 | val: 2.085e-02 | ls-its: 1 | pgrad: 2.058e-04
Stopped because reached objChangeTol = 1.000000e-15.
==================================================
EIS fitting for SOC = 0.25 (2/5)
==================================================
Linearization...
It: 0 | val: 8.954e+00 | ls-its: NaN | pgrad: 4.214e+04
It: 1 | val: 2.386e+00 | ls-its: 2 | pgrad: 4.200e+04
It: 2 | val: 6.237e-01 | ls-its: 3 | pgrad: 3.946e+03
It: 3 | val: 5.353e-01 | ls-its: 1 | pgrad: 7.458e+02
It: 4 | val: 3.913e-01 | ls-its: 2 | pgrad: 6.875e+02
It: 5 | val: 3.550e-01 | ls-its: 2 | pgrad: 2.365e+03
It: 6 | val: 3.357e-01 | ls-its: 1 | pgrad: 2.153e+03
It: 7 | val: 3.301e-01 | ls-its: 1 | pgrad: 5.395e+02
It: 8 | val: 3.260e-01 | ls-its: 1 | pgrad: 4.899e+02
It: 9 | val: 3.029e-01 | ls-its: 1 | pgrad: 7.325e+02
It: 10 | val: 2.420e-01 | ls-its: 1 | pgrad: 1.377e+03
It: 11 | val: 2.039e-01 | ls-its: 2 | pgrad: 2.739e+03
It: 12 | val: 1.404e-01 | ls-its: 1 | pgrad: 3.469e+03
It: 13 | val: 1.183e-01 | ls-its: 2 | pgrad: 1.943e+03
It: 14 | val: 1.162e-01 | ls-its: 1 | pgrad: 2.148e+02
It: 15 | val: 1.157e-01 | ls-its: 1 | pgrad: 1.999e+02
It: 16 | val: 1.153e-01 | ls-its: 1 | pgrad: 2.001e+02
It: 17 | val: 1.135e-01 | ls-its: 1 | pgrad: 1.030e+02
It: 18 | val: 1.099e-01 | ls-its: 1 | pgrad: 1.310e+02
It: 19 | val: 1.032e-01 | ls-its: 1 | pgrad: 3.729e+02
It: 20 | val: 9.360e-02 | ls-its: 1 | pgrad: 6.802e+02
It: 21 | val: 8.685e-02 | ls-its: 1 | pgrad: 6.299e+02
It: 22 | val: 6.986e-02 | ls-its: 1 | pgrad: 1.655e+03
It: 23 | val: 6.036e-02 | ls-its: 1 | pgrad: 5.115e+02
It: 24 | val: 5.377e-02 | ls-its: 1 | pgrad: 3.121e+02
It: 25 | val: 4.659e-02 | ls-its: 1 | pgrad: 5.152e+02
It: 26 | val: 4.465e-02 | ls-its: 2 | pgrad: 3.302e+02
It: 27 | val: 4.290e-02 | ls-its: 1 | pgrad: 2.813e+02
It: 28 | val: 4.190e-02 | ls-its: 1 | pgrad: 1.497e+02
It: 29 | val: 3.992e-02 | ls-its: 1 | pgrad: 1.382e+02
It: 30 | val: 3.903e-02 | ls-its: 1 | pgrad: 1.295e+02
It: 31 | val: 3.711e-02 | ls-its: 1 | pgrad: 7.179e+02
It: 32 | val: 3.687e-02 | ls-its: 1 | pgrad: 1.207e+02
It: 33 | val: 3.676e-02 | ls-its: 1 | pgrad: 5.912e+01
It: 34 | val: 3.643e-02 | ls-its: 1 | pgrad: 5.583e+01
It: 35 | val: 3.611e-02 | ls-its: 2 | pgrad: 6.219e+01
It: 36 | val: 3.563e-02 | ls-its: 1 | pgrad: 1.908e+02
It: 37 | val: 3.549e-02 | ls-its: 1 | pgrad: 4.919e+01
It: 38 | val: 3.537e-02 | ls-its: 1 | pgrad: 3.616e+01
It: 39 | val: 3.502e-02 | ls-its: 1 | pgrad: 2.474e+02
It: 40 | val: 3.487e-02 | ls-its: 1 | pgrad: 2.491e+01
It: 41 | val: 3.452e-02 | ls-its: 1 | pgrad: 5.456e+01
It: 42 | val: 3.449e-02 | ls-its: 1 | pgrad: 1.233e+02
It: 43 | val: 3.436e-02 | ls-its: 1 | pgrad: 1.709e+02
It: 44 | val: 3.434e-02 | ls-its: 1 | pgrad: 4.096e+01
It: 45 | val: 3.432e-02 | ls-its: 1 | pgrad: 1.751e+01
It: 46 | val: 3.428e-02 | ls-its: 1 | pgrad: 2.534e+01
It: 47 | val: 3.423e-02 | ls-its: 1 | pgrad: 5.108e+01
It: 48 | val: 3.421e-02 | ls-its: 2 | pgrad: 5.952e+01
It: 49 | val: 3.418e-02 | ls-its: 1 | pgrad: 6.323e+01
It: 50 | val: 3.417e-02 | ls-its: 1 | pgrad: 3.145e+01
It: 51 | val: 3.417e-02 | ls-its: 1 | pgrad: 5.244e+00
It: 52 | val: 3.417e-02 | ls-its: 1 | pgrad: 5.087e+00
It: 53 | val: 3.417e-02 | ls-its: 2 | pgrad: 4.511e+00
It: 54 | val: 3.417e-02 | ls-its: 2 | pgrad: 5.002e+00
It: 55 | val: 3.417e-02 | ls-its: 1 | pgrad: 2.569e+00
It: 56 | val: 3.417e-02 | ls-its: 1 | pgrad: 8.637e-01
It: 57 | val: 3.417e-02 | ls-its: 1 | pgrad: 1.030e-01
It: 58 | val: 3.417e-02 | ls-its: 1 | pgrad: 9.724e-02
It: 59 | val: 3.417e-02 | ls-its: 1 | pgrad: 1.051e-01
It: 60 | val: 3.417e-02 | ls-its: 1 | pgrad: 1.737e-01
It: 61 | val: 3.417e-02 | ls-its: 2 | pgrad: 2.269e-01
It: 62 | val: 3.417e-02 | ls-its: 1 | pgrad: 2.204e-01
It: 63 | val: 3.417e-02 | ls-its: 1 | pgrad: 8.585e-02
It: 64 | val: 3.417e-02 | ls-its: 1 | pgrad: 2.120e-02
It: 65 | val: 3.417e-02 | ls-its: 1 | pgrad: 2.090e-02
It: 66 | val: 3.417e-02 | ls-its: 2 | pgrad: 1.646e-02
It: 67 | val: 3.417e-02 | ls-its: 1 | pgrad: 2.709e-02
It: 68 | val: 3.417e-02 | ls-its: 1 | pgrad: 5.177e-03
It: 69 | val: 3.417e-02 | ls-its: 1 | pgrad: 1.041e-02
It: 70 | val: 3.417e-02 | ls-its: 1 | pgrad: 3.425e-03
It: 71 | val: 3.417e-02 | ls-its: 1 | pgrad: 1.920e-03
It: 72 | val: 3.417e-02 | ls-its: 1 | pgrad: 1.339e-04
Stopped because reached objChangeTol = 1.000000e-15.
==================================================
EIS fitting for SOC = 0.50 (3/5)
==================================================
Linearization...
It: 0 | val: 1.150e+01 | ls-its: NaN | pgrad: 5.878e+04
It: 1 | val: 1.073e+00 | ls-its: 2 | pgrad: 5.866e+04
It: 2 | val: 8.239e-01 | ls-its: 1 | pgrad: 9.193e+03
It: 3 | val: 7.788e-01 | ls-its: 1 | pgrad: 2.364e+03
It: 4 | val: 4.909e-01 | ls-its: 1 | pgrad: 2.317e+03
It: 5 | val: 3.994e-01 | ls-its: 1 | pgrad: 5.931e+03
It: 6 | val: 3.483e-01 | ls-its: 1 | pgrad: 2.371e+03
It: 7 | val: 3.427e-01 | ls-its: 1 | pgrad: 8.959e+02
It: 8 | val: 3.204e-01 | ls-its: 1 | pgrad: 7.436e+02
It: 9 | val: 3.155e-01 | ls-its: 1 | pgrad: 2.069e+02
It: 10 | val: 3.120e-01 | ls-its: 1 | pgrad: 3.157e+02
It: 11 | val: 3.010e-01 | ls-its: 1 | pgrad: 4.231e+02
It: 12 | val: 2.770e-01 | ls-its: 1 | pgrad: 4.085e+02
It: 13 | val: 1.273e-01 | ls-its: 3 | pgrad: 1.998e+03
It: 14 | val: 8.989e-02 | ls-its: 2 | pgrad: 3.888e+03
It: 15 | val: 6.593e-02 | ls-its: 2 | pgrad: 1.338e+03
It: 16 | val: 6.409e-02 | ls-its: 1 | pgrad: 1.941e+02
It: 17 | val: 6.389e-02 | ls-its: 1 | pgrad: 6.918e+01
It: 18 | val: 6.378e-02 | ls-its: 1 | pgrad: 3.875e+01
It: 19 | val: 6.348e-02 | ls-its: 1 | pgrad: 3.881e+01
It: 20 | val: 6.242e-02 | ls-its: 1 | pgrad: 6.615e+01
It: 21 | val: 6.141e-02 | ls-its: 1 | pgrad: 1.965e+02
It: 22 | val: 5.936e-02 | ls-its: 1 | pgrad: 5.304e+02
It: 23 | val: 5.479e-02 | ls-its: 1 | pgrad: 3.560e+02
It: 24 | val: 5.213e-02 | ls-its: 1 | pgrad: 2.238e+02
It: 25 | val: 4.745e-02 | ls-its: 1 | pgrad: 1.290e+02
It: 26 | val: 4.606e-02 | ls-its: 2 | pgrad: 1.353e+02
It: 27 | val: 4.231e-02 | ls-its: 1 | pgrad: 2.688e+02
It: 28 | val: 4.100e-02 | ls-its: 1 | pgrad: 4.648e+01
It: 29 | val: 3.991e-02 | ls-its: 1 | pgrad: 3.603e+02
It: 30 | val: 3.969e-02 | ls-its: 1 | pgrad: 1.680e+02
It: 31 | val: 3.897e-02 | ls-its: 1 | pgrad: 1.042e+02
It: 32 | val: 3.880e-02 | ls-its: 1 | pgrad: 6.176e+01
It: 33 | val: 3.858e-02 | ls-its: 1 | pgrad: 4.736e+01
It: 34 | val: 3.852e-02 | ls-its: 2 | pgrad: 4.864e+01
It: 35 | val: 3.850e-02 | ls-its: 1 | pgrad: 5.742e+01
It: 36 | val: 3.848e-02 | ls-its: 1 | pgrad: 7.624e+01
It: 37 | val: 3.848e-02 | ls-its: 1 | pgrad: 1.116e+01
It: 38 | val: 3.847e-02 | ls-its: 1 | pgrad: 3.494e+00
It: 39 | val: 3.847e-02 | ls-its: 1 | pgrad: 3.644e+00
It: 40 | val: 3.847e-02 | ls-its: 2 | pgrad: 6.669e+00
It: 41 | val: 3.847e-02 | ls-its: 1 | pgrad: 5.988e+00
It: 42 | val: 3.847e-02 | ls-its: 1 | pgrad: 4.873e-01
It: 43 | val: 3.847e-02 | ls-its: 1 | pgrad: 3.308e-01
It: 44 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.179e-01
It: 45 | val: 3.847e-02 | ls-its: 1 | pgrad: 6.464e-02
It: 46 | val: 3.847e-02 | ls-its: 1 | pgrad: 4.684e-02
It: 47 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.208e-02
It: 48 | val: 3.847e-02 | ls-its: 1 | pgrad: 7.294e-03
It: 49 | val: 3.847e-02 | ls-its: 1 | pgrad: 7.494e-03
It: 50 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.449e-02
It: 51 | val: 3.847e-02 | ls-its: 1 | pgrad: 2.642e-02
It: 52 | val: 3.847e-02 | ls-its: 1 | pgrad: 3.491e-02
It: 53 | val: 3.847e-02 | ls-its: 1 | pgrad: 5.656e-02
It: 54 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.827e-02
It: 55 | val: 3.847e-02 | ls-its: 1 | pgrad: 5.862e-03
It: 56 | val: 3.847e-02 | ls-its: 1 | pgrad: 7.887e-03
It: 57 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.741e-02
It: 58 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.154e-02
It: 59 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.943e-03
It: 60 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.514e-03
It: 61 | val: 3.847e-02 | ls-its: 1 | pgrad: 9.195e-04
It: 62 | val: 3.847e-02 | ls-its: 1 | pgrad: 1.601e-04
It: 63 | val: 3.847e-02 | ls-its: 1 | pgrad: 2.821e-04
It: 64 | val: 3.847e-02 | ls-its: 1 | pgrad: 5.473e-04
It: 65 | val: 3.847e-02 | ls-its: 1 | pgrad: 3.376e-04
It: 66 | val: 3.847e-02 | ls-its: 1 | pgrad: 9.340e-05
Stopped because reached objChangeTol = 1.000000e-15.
==================================================
EIS fitting for SOC = 0.75 (4/5)
==================================================
Linearization...
It: 0 | val: 8.482e+00 | ls-its: NaN | pgrad: 4.450e+04
It: 1 | val: 1.638e+00 | ls-its: 2 | pgrad: 4.438e+04
It: 2 | val: 1.310e+00 | ls-its: 1 | pgrad: 9.690e+03
It: 3 | val: 1.187e+00 | ls-its: 1 | pgrad: 3.459e+03
It: 4 | val: 5.903e-01 | ls-its: 2 | pgrad: 3.475e+03
It: 5 | val: 5.155e-01 | ls-its: 2 | pgrad: 5.984e+03
It: 6 | val: 3.935e-01 | ls-its: 1 | pgrad: 5.144e+03
It: 7 | val: 3.896e-01 | ls-its: 1 | pgrad: 4.230e+02
It: 8 | val: 3.778e-01 | ls-its: 1 | pgrad: 6.503e+02
It: 9 | val: 3.614e-01 | ls-its: 1 | pgrad: 1.200e+03
It: 10 | val: 3.410e-01 | ls-its: 1 | pgrad: 1.064e+03
It: 11 | val: 3.136e-01 | ls-its: 1 | pgrad: 2.141e+02
It: 12 | val: 2.846e-01 | ls-its: 1 | pgrad: 1.665e+03
It: 13 | val: 2.069e-01 | ls-its: 1 | pgrad: 2.632e+03
It: 14 | val: 1.615e-01 | ls-its: 1 | pgrad: 5.373e+03
It: 15 | val: 1.238e-01 | ls-its: 1 | pgrad: 1.806e+03
It: 16 | val: 9.826e-02 | ls-its: 2 | pgrad: 1.685e+03
It: 17 | val: 7.680e-02 | ls-its: 1 | pgrad: 1.500e+03
It: 18 | val: 7.623e-02 | ls-its: 1 | pgrad: 3.795e+02
It: 19 | val: 7.616e-02 | ls-its: 1 | pgrad: 8.791e+01
It: 20 | val: 7.602e-02 | ls-its: 1 | pgrad: 5.311e+01
It: 21 | val: 7.381e-02 | ls-its: 2 | pgrad: 3.835e+01
It: 22 | val: 7.087e-02 | ls-its: 1 | pgrad: 5.011e+02
It: 23 | val: 6.979e-02 | ls-its: 2 | pgrad: 5.178e+02
It: 24 | val: 5.899e-02 | ls-its: 1 | pgrad: 4.272e+02
It: 25 | val: 5.481e-02 | ls-its: 1 | pgrad: 2.538e+01
It: 26 | val: 5.395e-02 | ls-its: 2 | pgrad: 1.176e+02
It: 27 | val: 5.148e-02 | ls-its: 1 | pgrad: 2.440e+02
It: 28 | val: 4.983e-02 | ls-its: 1 | pgrad: 7.540e+01
It: 29 | val: 4.963e-02 | ls-its: 2 | pgrad: 2.914e+01
It: 30 | val: 4.881e-02 | ls-its: 1 | pgrad: 1.295e+02
It: 31 | val: 4.833e-02 | ls-its: 1 | pgrad: 5.560e+01
It: 32 | val: 4.813e-02 | ls-its: 1 | pgrad: 6.207e+00
It: 33 | val: 4.810e-02 | ls-its: 2 | pgrad: 2.320e+01
It: 34 | val: 4.804e-02 | ls-its: 1 | pgrad: 3.457e+01
It: 35 | val: 4.803e-02 | ls-its: 1 | pgrad: 1.182e+01
It: 36 | val: 4.801e-02 | ls-its: 1 | pgrad: 3.005e+01
It: 37 | val: 4.801e-02 | ls-its: 1 | pgrad: 8.466e+00
It: 38 | val: 4.800e-02 | ls-its: 1 | pgrad: 7.938e+00
It: 39 | val: 4.800e-02 | ls-its: 2 | pgrad: 2.719e+00
It: 40 | val: 4.800e-02 | ls-its: 1 | pgrad: 5.741e+00
It: 41 | val: 4.800e-02 | ls-its: 1 | pgrad: 1.173e+00
It: 42 | val: 4.800e-02 | ls-its: 2 | pgrad: 1.979e+00
It: 43 | val: 4.800e-02 | ls-its: 1 | pgrad: 5.084e-01
It: 44 | val: 4.800e-02 | ls-its: 1 | pgrad: 4.403e-01
It: 45 | val: 4.800e-02 | ls-its: 1 | pgrad: 3.442e-01
It: 46 | val: 4.800e-02 | ls-its: 2 | pgrad: 1.536e-01
It: 47 | val: 4.800e-02 | ls-its: 1 | pgrad: 6.506e-02
It: 48 | val: 4.800e-02 | ls-its: 1 | pgrad: 3.327e-02
It: 49 | val: 4.800e-02 | ls-its: 1 | pgrad: 2.957e-02
It: 50 | val: 4.800e-02 | ls-its: 1 | pgrad: 1.003e-01
It: 51 | val: 4.800e-02 | ls-its: 1 | pgrad: 6.067e-02
It: 52 | val: 4.800e-02 | ls-its: 1 | pgrad: 6.585e-03
It: 53 | val: 4.800e-02 | ls-its: 1 | pgrad: 1.925e-03
It: 54 | val: 4.800e-02 | ls-its: 1 | pgrad: 1.107e-03
It: 55 | val: 4.800e-02 | ls-its: 1 | pgrad: 3.668e-04
It: 56 | val: 4.800e-02 | ls-its: 1 | pgrad: 3.561e-04
It: 57 | val: 4.800e-02 | ls-its: 2 | pgrad: 9.269e-05
Stopped because reached objChangeTol = 1.000000e-15.
==================================================
EIS fitting for SOC = 1.00 (5/5)
==================================================
Linearization...
It: 0 | val: 2.621e+00 | ls-its: NaN | pgrad: 8.263e+03
It: 1 | val: 2.017e+00 | ls-its: 3 | pgrad: 7.736e+03
It: 2 | val: 1.700e+00 | ls-its: 1 | pgrad: 6.742e+03
It: 3 | val: 5.475e-01 | ls-its: 2 | pgrad: 3.835e+03
It: 4 | val: 5.228e-01 | ls-its: 2 | pgrad: 2.868e+03
It: 5 | val: 4.326e-01 | ls-its: 1 | pgrad: 2.808e+03
It: 6 | val: 4.081e-01 | ls-its: 1 | pgrad: 9.097e+02
It: 7 | val: 3.719e-01 | ls-its: 1 | pgrad: 8.472e+02
It: 8 | val: 2.844e-01 | ls-its: 1 | pgrad: 1.840e+03
It: 9 | val: 2.010e-01 | ls-its: 1 | pgrad: 3.173e+03
It: 10 | val: 1.568e-01 | ls-its: 1 | pgrad: 2.809e+03
It: 11 | val: 1.483e-01 | ls-its: 1 | pgrad: 9.534e+02
It: 12 | val: 1.470e-01 | ls-its: 1 | pgrad: 2.361e+02
It: 13 | val: 1.357e-01 | ls-its: 1 | pgrad: 2.783e+02
It: 14 | val: 1.303e-01 | ls-its: 1 | pgrad: 4.738e+02
It: 15 | val: 1.207e-01 | ls-its: 1 | pgrad: 7.659e+02
It: 16 | val: 1.176e-01 | ls-its: 1 | pgrad: 2.781e+02
It: 17 | val: 1.167e-01 | ls-its: 1 | pgrad: 1.482e+02
It: 18 | val: 1.156e-01 | ls-its: 1 | pgrad: 9.965e+01
It: 19 | val: 1.109e-01 | ls-its: 1 | pgrad: 9.822e+01
It: 20 | val: 1.031e-01 | ls-its: 1 | pgrad: 3.841e+02
It: 21 | val: 9.081e-02 | ls-its: 1 | pgrad: 5.495e+02
It: 22 | val: 7.771e-02 | ls-its: 1 | pgrad: 9.180e+02
It: 23 | val: 7.128e-02 | ls-its: 1 | pgrad: 7.882e+02
It: 24 | val: 6.887e-02 | ls-its: 1 | pgrad: 2.541e+02
It: 25 | val: 6.676e-02 | ls-its: 1 | pgrad: 1.989e+02
It: 26 | val: 6.323e-02 | ls-its: 1 | pgrad: 1.333e+02
It: 27 | val: 5.939e-02 | ls-its: 1 | pgrad: 1.583e+02
It: 28 | val: 5.452e-02 | ls-its: 1 | pgrad: 1.735e+02
It: 29 | val: 5.065e-02 | ls-its: 1 | pgrad: 6.160e+02
It: 30 | val: 4.898e-02 | ls-its: 1 | pgrad: 1.243e+02
It: 31 | val: 4.787e-02 | ls-its: 1 | pgrad: 2.180e+02
It: 32 | val: 4.664e-02 | ls-its: 1 | pgrad: 1.587e+02
It: 33 | val: 4.598e-02 | ls-its: 1 | pgrad: 8.902e+01
It: 34 | val: 4.512e-02 | ls-its: 1 | pgrad: 5.662e+01
It: 35 | val: 4.467e-02 | ls-its: 1 | pgrad: 6.442e+01
It: 36 | val: 4.361e-02 | ls-its: 1 | pgrad: 3.138e+02
It: 37 | val: 4.331e-02 | ls-its: 1 | pgrad: 6.196e+01
It: 38 | val: 4.301e-02 | ls-its: 1 | pgrad: 4.959e+01
It: 39 | val: 4.299e-02 | ls-its: 2 | pgrad: 5.398e+01
It: 40 | val: 4.293e-02 | ls-its: 1 | pgrad: 3.661e+01
It: 41 | val: 4.290e-02 | ls-its: 1 | pgrad: 1.407e+01
It: 42 | val: 4.287e-02 | ls-its: 1 | pgrad: 8.715e+00
It: 43 | val: 4.286e-02 | ls-its: 2 | pgrad: 8.915e+00
It: 44 | val: 4.285e-02 | ls-its: 1 | pgrad: 2.261e+01
It: 45 | val: 4.284e-02 | ls-its: 1 | pgrad: 1.222e+01
It: 46 | val: 4.284e-02 | ls-its: 1 | pgrad: 1.236e+01
It: 47 | val: 4.284e-02 | ls-its: 1 | pgrad: 9.632e+00
It: 48 | val: 4.284e-02 | ls-its: 1 | pgrad: 4.082e+00
It: 49 | val: 4.284e-02 | ls-its: 1 | pgrad: 2.898e+00
It: 50 | val: 4.284e-02 | ls-its: 1 | pgrad: 6.594e+00
It: 51 | val: 4.284e-02 | ls-its: 1 | pgrad: 4.076e+00
It: 52 | val: 4.284e-02 | ls-its: 1 | pgrad: 1.116e+00
It: 53 | val: 4.284e-02 | ls-its: 1 | pgrad: 1.790e+00
It: 54 | val: 4.284e-02 | ls-its: 1 | pgrad: 1.499e+00
It: 55 | val: 4.284e-02 | ls-its: 1 | pgrad: 2.878e-01
It: 56 | val: 4.284e-02 | ls-its: 1 | pgrad: 6.808e-02
It: 57 | val: 4.284e-02 | ls-its: 1 | pgrad: 7.552e-02
It: 58 | val: 4.284e-02 | ls-its: 1 | pgrad: 1.240e-01
It: 59 | val: 4.284e-02 | ls-its: 1 | pgrad: 9.468e-02
It: 60 | val: 4.284e-02 | ls-its: 1 | pgrad: 5.519e-02
It: 61 | val: 4.284e-02 | ls-its: 1 | pgrad: 7.811e-03
It: 62 | val: 4.284e-02 | ls-its: 1 | pgrad: 2.609e-03
It: 63 | val: 4.284e-02 | ls-its: 1 | pgrad: 1.549e-03
It: 64 | val: 4.284e-02 | ls-its: 2 | pgrad: 1.176e-03
It: 65 | val: 4.284e-02 | ls-its: 1 | pgrad: 5.081e-04
It: 66 | val: 4.284e-02 | ls-its: 2 | pgrad: 5.620e-04
It: 67 | val: 4.284e-02 | ls-its: 1 | pgrad: 5.226e-04
It: 68 | val: 4.284e-02 | ls-its: 1 | pgrad: 2.083e-04
It: 69 | val: 4.284e-02 | ls-its: 1 | pgrad: 4.363e-05
Stopped because reached objChangeTol = 1.000000e-15.
SOC R0 R1 C1 R2 C2
____ ________ ______ ______ ________ ______
0 0.052519 76.352 8866.9 0.018174 2079.9
0.25 0.035298 16.864 22967 0.014803 3136.9
0.5 0.032967 8.729 37441 0.01416 3591.5
0.75 0.034937 10.646 29455 0.016338 3350.5
1 0.045339 13.785 24495 0.018915 3215.2
plot the results
[6]:
soc = sort(soc_values);
figure
tiledlayout(2, 3, 'tileindexing', 'columnmajor');
nexttile
% the function |setupFunction| creates a function handle from the battmo function input format.
fn = setupFunction(jsonstruct.OCP);
plot(soc, fn(soc), '*-')
title('OCP')
xlabel('SOC / -')
ylabel('OCP / V');
nexttile
fn = setupFunction(jsonstruct.R0);
plot(soc, fn(soc), '*-')
title('R0')
xlabel('SOC / -')
ylabel('R0 / \Omega');
nexttile
fn = setupFunction(jsonstruct.R1);
plot(soc, fn(soc), '*-')
title('R1')
xlabel('SOC / -')
ylabel('R1 / \Omega');
nexttile
fn = setupFunction(jsonstruct.C1);
plot(soc, fn(soc), '*-')
title('C1')
xlabel('SOC / -')
ylabel('C1 / F');
nexttile
fn = setupFunction(jsonstruct.R2);
plot(soc, fn(soc), '*-')
title('R2')
xlabel('SOC / -')
ylabel('R2 / \Omega');
nexttile
fn = setupFunction(jsonstruct.C2);
plot(soc, fn(soc), '*-')
title('C2')
xlabel('SOC / -')
ylabel('C2 / F');
[6]: