Hauptinhalt

fiteisfom

Fit single electrochemical impedance spectroscopy profile

Since R2025a

Description

fractionalOrderModel = fiteisfom(myFitEISFOM,eisData,Name=Value) fits the electrochemical impedance spectroscopy (EIS) profile in eisData by using the fitting method specified in the FittingMethod property of myFitEISFOM, and returns an EISModel object with the estimated parameters. The function retrieves the EISModel object to fit the EIS data in from the EISFOM property of myFitEISFOM.

example

Examples

collapse all

This example shows how to fit a single EIS profile inside an EIS model by using the fitting method of a FitFractionalOrderModel object.

Note

This workflow is not recommended. To fit EIS data inside an EIS model, use the fitEISModel function instead.

Import the package required to use the FitFractionalOrderModel object and its methods.

import simscape.battery.parameters.*;

Open the DownloadBatteryEISData example and load the required electrochemical impedance spectroscopy (EIS) data. This data has been generated from a battery with a nominal capacity of 30/1000 A*Hr at a temperature of 25 °C. This data consists of a 500-by-3 matrix. The columns of the matrix refer to the frequency, real impedance, and imaginary impedance values, respectively.

openExample("simscapebattery/DownloadBatteryEISDataExample")
load("generatedEISData.mat")

Store the EIS data inside an EISTest object by using the eisTest function.

eisExp = eisTest(eisData);

Analyze the TestSummary property of the eisExp object. This property contains a summary of the EIS test that shows all the identified profiles and related data.

eisExp.TestSummary
ans =

  5×7 table

    ProfileID    ImpedanceData    Breakpoint1    Breakpoint2    Breakpoint3    ProfileStartIndex    ProfileEndIndex
    _________    _____________    ___________    ___________    ___________    _________________    _______________

        1        {87×3 double}         1             25              1                  1                 100      
        2        {87×3 double}         2             25              1                101                 200      
        3        {87×3 double}         3             25              1                201                 300      
        4        {87×3 double}         4             25              1                301                 400      
        5        {87×3 double}         5             25              1                401                 500   

Extract the data of a single profile from the loaded EIS data.

singleProfile = eisExp.TestSummary.ImpedanceData{1};

Fit the data of the single EIS profile to a fractional-order equivalent circuit model by using the fiteisfom method of a FitFractionalOrderModel object. The fiteisfom function fits the single-profile EIS data inside the EISModel object specified in the EISFOM property of the FitFractionalOrderModel object.

fitFom = FitFractionalOrderModel;
fitEis = fiteisfom(fitFom,singleProfile)
fitEis = 

  EISModel with properties:

     CircuitTopology: "R0+L1+(R1,CPE1)+(R2,CPE2)+CPE3"
       NumParameters: 10
       ParameterList: ["R0"    "L1"    "R1"    "CPE1n"    "CPE1Q"    "R2"    "CPE2n"    "CPE2Q"    "CPE3n"    "CPE3Q"]
     ParameterValues: [0.3137 2.8943e-06 4.7315e-07 1.5453e-06 0.1214 3.6973e-06 1.9251e-06 40.1841 0.2146 0.2423]
    CircuitImpedance: "((((R0 + (i*w*L1)) + ((R1 * (1/(((i*w)^CPE1n)*CPE1Q))) / (R1 + (1/(((i*w)^CPE1n)*CPE1Q))))) + ((R2 * (1/(((i*w)^CPE2n)*CPE2Q))) / (R2 + (1/(((i*w)^CPE2n)*CPE2Q))))) + (1/(((i*w)^CPE3n)*CPE3Q)))"
       ParameterList: ["R0"    "L1"    "R1"    "CPE1n"    "CPE1Q"    "R2"    "CPE2n"    "CPE2Q"    "CPE3n"    "CPE3Q"]
The fiteisfom method returns an EISModel object with estimated fitted parameters from the single-profile EIS data.

Input Arguments

collapse all

Fit fractional-order equivalent circuit model, specified as a FitFractionalOrderModel object. This object contains the data that the fiteisfom function requires to estimate the parameters of the battery EIS model, including the EISModel object, fitting method, and fitting options.

EIS data that the fiteisfom function uses to estimate the EIS model parameters from, specified as a matrix or table.

If you specify this argument as a table, you must specify each column or variable name by using the FrequencyVariable, RealImpedanceVariable, and ImaginaryImpedanceVariable name-value arguments.

Name-Value Arguments

collapse all

Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

Example: FOMobj = fiteisfom(myFitEISFOM,data,FrequencyVariable="MyFrequencyName")

Name of the frequency variable in the eisData table, specified as a string scalar or character vector.

Data Types: string | char

Name of the real impedance variable in the eisData table, specified as a string scalar or character vector.

Data Types: string | char

Name of the imaginary impedance variable in the eisData table, specified as a string scalar or character vector.

Data Types: string | char

Output Arguments

collapse all

Fractional-order equivalent circuit model with estimated parameters, returned as an EISModel object.

Version History

Introduced in R2025a