主要内容

本页采用了机器翻译。点击此处可查看英文原文。

estimateBatteryEISParameters

估计电化学阻抗谱分数阶模型的初始参数

自 R2025a 起

说明

estimateBatteryEISParameters 函数用于估计特定电化学阻抗谱 (EIS) 分数阶模型的初始参数。

estimateBatteryEISParameters 函数基于对多种锂离子电池的先验拟合结果来计算参数,仅提供参数数量级的近似值。参数初始估计值的计算取决于电池容量、温度和剩余容量。

EISModel 对象用于建模该函数用于估计初始参数的分数阶模型。该 EISModel 对象的 CircuitTopology 属性等于 "R0+L1+(R1,CPE1)+(R2,CPE2)+CPE3"。该值用于建模一个具有此 2-ZARC 电路拓扑的 EISModel 对象:

这些初始参数估计值可作为基于优化的 EIS 参数拟合策略的近似初始估计值。该函数返回的值仅为近似值,并非最终参数值,亦不代表任何系统。因此,预计电池系统的仿真行为与实际物理行为之间会存在显著偏差。为确保所需精度,需将仿真行为与实验数据进行验证,并优化参数值与模型。

initialParameters = estimateBatteryEISParameters(Name=Value) 根据电池容量、温度和剩余容量,估算具有 "R0+L1+(R1,CPE1)+(R2,CPE2)+CPE3" 电路拓扑的 EIS 分数阶模型的初始参数。

示例

示例

全部折叠

本例演示了如何根据初始参数建议,对 EIS 模型的参数进行估计。

打开 DownloadBatteryEISData 示例,并加载所需的电化学阻抗谱 (EIS) 数据。该数据是在 25 摄氏度的温度下,由一块标称容量为 30/1000 A·h 的电池生成的。该数据由一个 500-by-3 的双精度矩阵组成。矩阵的列分别表示频率、实阻抗和虚阻抗值。

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

将 EIS 数据拟合到分数阶等效电路模型中。要对数据进行拟合并创建一个 EISModel 对象,请使用 fitEISModel 函数。

eisfom = fitEISModel(eisData);

使用 plot 函数分析该函数如何在频率模型上执行拟合。该图展示了仿真数据与测量数据的对比,其中 X 轴代表阻抗的实部,Y 轴代表阻抗的虚部。

plot(eisfom,Parent=figure,DisplayMode="Nyquist")

Plot of the simulated and measured impedance data with a Nyquist display for the fit without initial parameters.

现在,请使用 estimateBatteryEISParameters 函数获取 EIS 模型初始参数的建议值。

initParameters = estimateBatteryEISParameters("BatteryCapacity",simscape.Value(25/1000,"A*hr"));
initParameters =

    0.8262    0.0000    7.6919    0.6339    0.0410    1.1282    1.0000    0.0085    0.6877    6.4704

创建另一个 EISModel 对象,并为其赋值您估算的初始参数。

eisfom = eisModel(ParameterValues=initParameters)
eisfomtest = 

  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.8262 1.0000e-06 7.6919 0.6339 0.0410 1.1282 1 0.0085 0.6877 6.4704]
    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"]

Show all properties

根据您估计的初始参数拟合 EIS 模型。

eisfom = fitEISModel(eisData,EISFOM=eisfom);

分析拟合的准确性。请注意,使用估计的初始参数时,模型的拟合精度更高。

plot(eisfom,Parent=figure,DisplayMode="Nyquist")

Plot of the simulated and measured impedance data with a Nyquist display for the fit with initial parameters.

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: initialParameters = estimateBatteryEISParameters(BatteryCapacity=simscape.Value(10,"A*Hr"))

电池的额定容量,指定为一个标量或一个 simscape.Value 对象,该对象表示一个由非负元素组成的向量,单位为安培时。

如果您直接使用标量值设置此属性,而不是使用 simscape.Value 对象,则该对象会将该值转换为物理单位为安培时的 simscape.Value 对象。

电池的标称温度,指定为一个标量或一个 simscape.Value 对象,该对象表示一个由非负元素组成的向量,单位为摄氏度。

如果您直接使用标量值设置此属性,而不是使用 simscape.Value 对象,则该对象会将该值转换为以摄氏度为物理单位的 simscape.Value 对象。

电池的剩余容量,指定为一个标量或一个表示 [0,1] 范围内标量的 simscape.Value 对象。

如果您直接使用标量值设置此属性,而不是使用 simscape.Value 对象,则该对象会将该值转换为 simscape.Value 对象。

输出参量

全部折叠

EIS 分数阶模型初始参数的估计值,以包含 10 个元素的向量形式返回。下表展示了该向量中每个元素与分数阶模型的电路元件之间的关系:

向量元素电路元件描述
元素 1R0R0 电阻元件的初步估算
元素 2L1L1 电感元件的初步估算
元素 3R1R1 电阻元件的初步估算
元素 4CPE1nCPE1 恒相位元件拉普拉斯指数的初步估计
元素 5CPE1QCPE1 常相元素大小的初步估计
元素 6R2R2 电阻元件的初步估算
元素 7CPE2nCPE2 恒相位元件拉普拉斯指数的初步估计
元素 8CPE2QCPE2 常相元素大小的初步估计
元素 9CPR3nCPE3 恒相位元件拉普拉斯指数的初步估计
元素 10CPR3QCPE3 常相元素大小的初步估计

版本历史记录

在 R2025a 中推出