主要内容

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

parameterizeEquivalentCircuitBlock

根据 ECM 数据对 Battery Equivalent Circuit 模块进行参数化

自 R2025a 起

说明

parameterizeEquivalentCircuitBlock(circuitModel,blockHandle) 使用 ECM 对象 circuitModel 中的数据,对由数值句柄 blockHandle 指定的 Battery Equivalent Circuit 模块进行参数化。

示例

parameterizeEquivalentCircuitBlock(circuitModel,blockHandle,ParameterizePseudoOCV=true) 使用 ECM 对象 circuitModel 中的数据,对由数值句柄 blockHandle 指定的 Battery Equivalent Circuit 模块进行参数化。该语法还对该模块的开路电压进行了参数化。

parameterizeEquivalentCircuitBlock(circuitModel,blockHandle,ParameterizePseudoOCV=false) 使用 ECM 对象 circuitModel 中的数据,对由数值句柄 blockHandle 指定的 Battery Equivalent Circuit 模块进行参数化。该语法未将该模块的开路电压作为参数。

示例

全部折叠

本示例演示了如何利用 ECM 对象中的模型参数对 Battery Equivalent Circuit 模块进行参数化。

打开 DownloadBatteryData 示例,并加载在 25 °C 条件下针对 BAK 2.9 Ah 电池电芯获取的所需 HPPC 数据。该数据由一个包含三列的表格组成。该表格的各列分别表示时间、电压和电流值。

openExample("simscapebattery/DownloadBatteryDataExample")
load("testDataBAKcells/hppcDataBAKcell25degC.mat")

使用 hppcTest 函数将 HPPC 数据存储到 HPPCTest 对象中。HPPC 数据是一个表格,因此您还必须使用 TimeVariableVoltageVariableCurrentVariable 参量来指定每一列的列名。这些名称必须与 hppcData 表中的列名一致。

hppcExp = hppcTest(hppcData,...
    TimeVariable="time (s)",...
    VoltageVariable="voltage (V)",...
    CurrentVariable="current (A)");

hppcExp 对象中的 HPPC 数据拟合到电池等效电路模型 (ECM) 中。要对数据进行拟合并创建一个 ECM 对象,请使用 fitECM 函数。

batteryEcm = fitECM(hppcExp);

检查 batteryECM 对象中的估计模型参数。

disp(batteryEcm.ModelParameterTables);
       ChargeOpenCircuitVoltage: [3.5098 3.5098 3.5098 3.5695 3.6224 3.6936 3.7905 3.8751 3.9674 4.0570 4.1158]
                       ChargeR0: [0.0442 0.0442 0.0442 0.0431 0.0426 0.0420 0.0415 0.0412 0.0415 0.0427 0.0467]
                       ChargeR1: [0.0112 0.0112 0.0112 0.0104 0.0105 0.0123 0.0132 0.0124 0.0121 0.0121 0.0150]
                     ChargeTau1: [13.5612 13.5612 13.5612 13.5502 13.5336 13.3463 13.1510 13.2508 13.2585 13.4524 12.6611]
                       ChargeC1: [1.2079e+03 1.2079e+03 1.2079e+03 1.2973e+03 1.2843e+03 1.0826e+03 993.6645 1.0672e+03 1.0918e+03 1.1137e+03 842.2532]
                       ChargeR2: [0.0140 0.0140 0.0140 0.0145 0.0144 0.0138 0.0140 0.0138 0.0139 0.0138 0.0137]
                     ChargeTau2: [104.3014 104.3014 104.3014 102.6275 102.9727 103.6730 101.2828 103.3495 104.4130 103.4471 102.1891]
                       ChargeC2: [7.4513e+03 7.4513e+03 7.4513e+03 7.0729e+03 7.1611e+03 7.4953e+03 7.2523e+03 7.4783e+03 7.4884e+03 7.4746e+03 7.4722e+03]
                    ChargeFitPc: [6.6661e-10 6.6661e-10 6.6661e-10 8.5981e-10 9.6784e-10 7.6042e-10 3.4343e-11 2.5804e-10 7.5818e-09 7.4191e-10 9.3651e-11]
    DischargeOpenCircuitVoltage: [3.5507 3.5507 3.5507 3.6015 3.6500 3.7353 3.8460 3.9226 4.0132 4.0837 4.1745]
                    DischargeR0: [0.0423 0.0423 0.0423 0.0407 0.0399 0.0393 0.0389 0.0388 0.0388 0.0402 0.0428]
                    DischargeR1: [0.0096 0.0096 0.0096 0.0091 0.0089 0.0089 0.0096 0.0098 0.0090 0.0105 0.0120]
                  DischargeTau1: [12.7536 12.7536 12.7536 12.8370 12.5963 13.0530 12.8092 12.4682 12.4945 12.3932 12.4108]
                    DischargeC1: [1.3235e+03 1.3235e+03 1.3235e+03 1.4038e+03 1.4081e+03 1.4658e+03 1.3355e+03 1.2717e+03 1.3951e+03 1.1759e+03 1.0352e+03]
                    DischargeR2: [0.0133 0.0133 0.0133 0.0133 0.0135 0.0132 0.0133 0.0135 0.0135 0.0134 0.0132]
                  DischargeTau2: [111.5192 111.5192 111.5192 112.1673 112.9559 111.6426 111.9445 112.6992 114.3181 111.9695 109.5712]
                    DischargeC2: [8.3541e+03 8.3541e+03 8.3541e+03 8.4106e+03 8.3800e+03 8.4506e+03 8.4134e+03 8.3759e+03 8.4974e+03 8.3326e+03 8.2816e+03]
                 DischargeFitPc: [2.3846e-09 2.3846e-09 2.3846e-09 1.7385e-09 9.1796e-10 5.7450e-10 6.2766e-10 1.2186e-10 1.1128e-09 6.6898e-10 2.4574e-09]

使用 parameterizeEquivalentCircuitBlock 函数,您可以利用这些模型参数的值,将 Simulink 模型中的 Battery Equivalent Circuit 模块参数化。

在此示例中,您将通过编程方式创建一个包含 Battery Equivalent Circuit 模块的 Simulink 模型。

创建并打开 Simulink 模型。定义模型名称并使用 open_system 函数。

modelname = "parameterizeBatteryEqCirc";
open_system(new_system(modelname));

若要通过编程方式添加 Battery Equivalent Circuit 模块,请在工作区中将模块路径定义为一个变量。

batteryEquivalentCircuitBlockPath = strcat(modelname,"/","Battery Equivalent Circuit");

使用 add_block 函数将该模块添加到模型中。

add_block("batt_lib/Cells/Battery Equivalent Circuit",batteryEquivalentCircuitBlockPath,position=[-80,280,-30,320]);

双击模型中的 Battery Equivalent Circuit 模块,以查看该模块的参数。

Block Parameters window of the Battery Equivalent Circuit block.

使用 batteryECM 对象中的数据对该 Battery Equivalent Circuit 模块进行参数化。

parameterizeEquivalentCircuitBlock(batteryEcm,gcb);

请再次检查 Battery Equivalent Circuit 模块的参数。在模型中双击该模块。请注意,现在该模块参数的值与 batteryECM 对象内部相应模型参数的值相等。

Block Parameters window of the Battery Equivalent Circuit block.

输入参数

全部折叠

该函数用于对 Battery Equivalent Circuit 模块进行参数化的等效电路模型,指定为一个 ECM 对象。

模块的数值句柄,指定为标量或向量。句柄是一种 MATLAB 数据类型,用于存储与目标对象的关联。要获取模块句柄,请使用 getSimulinkBlockHandle 函数。

数据类型: double

用于对开路电压进行参数化的选项,可指定为 falsetrue,也可指定为数值型或逻辑型的 1 (true) 或 0 (false)。

数据类型: logical

版本历史记录

在 R2025a 中推出