Curve-fitting of measured and simulated equivalent circuit impedance to find R/C values.
72 views (last 30 days)
Show older comments
I have measured impedance data (CSV) from EIS measurement of Li-ion batteries. I have also modelled a simulink model for impedance measurement with R - R || C - R || C configuration as equivalent circuit with the same imputs as the EIS measurement.
I need to change the R/C values of the ECM to fit the simulated impedance with the measured impedance and get R/C values for each SOC and Temperature measurement.
Does the parameter estimation toolbox in MATLAB help with my task? If yes, can someone help me with this?
0 Comments
Answers (1)
Javier Gazzarri
on 23 Jul 2023
Hello Aditya,
You can use Optimization Toolbox to fit a R0 + 2RC equivalent circuit to an impedance spectrum as long as this is mainly deconvoluted semicircles. Each one will be fitted by each RC component and the distance from the vertical axis will be given by R0. If the arcs are depressed then you will not be able to map an RC pair to it because you are in the presence of a distributed element like a CPE. In addition, if you see a diffusion tail, that is a feature that requires a Warburg element that is different from an RC pair.
The optimization problem should be formulated as an objective function equal to the measured impedance and the impedance given by a R0 + 2RC circuit, which you can derive from Kirchhoff's Law:
Z = R0 + 1/(1/R1 + jwC1) + 1/(1/R2 + jwC2)
where w is 2 pi f.
Please let me know if this helps.
Javier
2 Comments
Iván
on 10 Jan 2024
Hello Mr. Gazzarri,
I am developing an adapted randles ECM from scratch using simscape library. The final aim is to extract information from an EIS experiment to feed this ECM.
I see that you mentioned in this response the use of a Warburg element. In the development of my AR-ECM, I need to implement such an element. I would like to know if I can find a block to implement this Warburg element in the simscape library or if I need to create a custom simscape block for that.
Thanks a lot for your time and effort, and sorry if this way is not the appropriate to send this enquiry.
Javier Gazzarri
on 10 Jan 2024
Hello Ivan,
Since the Warburg element is defined as a function of frequency and all of Simscape is defined as a function of time, there is no direct way to implement a distributed element in Simscape Battery. One alternative is to generate a ladder circuit with several RC's to approximate the effect of the reaction penetration depth, but this needs to be done from scratch.
Another way of doing this would be to use the Fractional Order Modeling Toolbox (FOTF Toolbox - File Exchange - MATLAB Central (mathworks.com)) to create a Simulink transfer function and wrap it with Simscape sensors and sources to only expose physical ports.
Hope this helps,
Javier
See Also
Categories
Find more on Energy Storage in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!