主要内容

数字双胞胎的参数调优

本示例展示了如何在现场监测电动汽车电池的状态,使用Simulink®Design Optimization™中的参数估计部署版本,以及Simulink Compiler™。金宝app

电池监控

电动汽车的电池更换成本高昂,需要仔细监控和维护,以确保它们在预期寿命内正常工作。在这个例子中,一辆电动汽车每天上下班。在家里,汽车被插入一个智能充电器,它可以监测电流和电池电压。该充电器通过分析电池数据来估计电池参数,使用Simulink Design Optimization中的参数估计部署版本以及Simulink Compiler。金宝app充电器通过物联网(IoT)连接将这些参数传递给汽车制造商,这样制造商就可以随时监控电池的健康状况。

电池模型

这个例子估计了一个简单的可充电电池模型的参数,sdoBattery.的输入sdoBattery为电池电流,模型输出为电池端电压,由电池充电状态计算得出。

电池模型基于以下公式:

E 1 - 损失 V - K 马克斯 1 - 年代 年代

地点:

  • E 为电池端电压,单位为伏特。

  • V 为电池恒压,单位为伏特。

  • K 为电池极化电阻,单位为欧姆。

  • 马克斯 为电池最大容量,单位为安培小时。 0 为电池初始充电状态,单位为安培小时。

  • 年代 是电池的充电状态,1充满电,0放电。电池的充电状态由电池电流的积分计算,正电流表示放电,负电流表示充电。

  • 损失 是充电时的电压降,表示为电池恒压的一个分数。

使用以下命令打开模型。

open_system (“sdoBattery”

电池特性

已知以下电池特性:

  • 电压, V 400 v

  • 损失的因素, 损失 = 0.012

  • 阻力, K 0.32欧姆。

马克斯 当电池是新的时,已知是250安培小时(100千瓦时)。随着电池老化, 马克斯 预计会减少,将对此进行监控以跟踪电池的运行状况。电荷的初始状态 0 以及新的电池容量 马克斯 需要估算。

部署参数估计步骤

在部署模式下运行参数估计有两个主要步骤:

  1. 做一个设置文件,以设置在部署模式中使用的参数估计对象

  2. 做一个运行文件,这是一个用于参数估计的MATLAB函数,可以在部署模式下编译和运行

建议创建设置而且运行文件开始时用MATLAB代码生成参数估计量.复制、拆分和修改生成的代码以生成设置而且运行文件,如下节所示。

非部署模式参数估计

先生成MATLAB代码进行估计 0 而且 马克斯 非部署模式。使用以下命令加载预配置的评估会话:

负载sdoBattery_spesession_forDeploymentspetool (SDOSessionData)

该步骤利用测量到的电压和电流数据对实验进行加载和绘制,并对实验进行配置参数估计量估计 0 而且 马克斯

导航到估计按钮,然后从下拉列表中选择生成MATLAB函数(见生成参数估计问题的MATLAB代码(GUI)).该步骤生成一个MATLAB函数,该函数被添加到MATLAB编辑器中,以及一个mat文件parameterEstimation_sdoBattery_Data.mat.您可以在文件中找到生成的代码parameterEstimationSdoBattery.m.您可以使用生成的代码估算非部署模式下的参数。

建议从生成的代码开始,复制、拆分和修改代码以创建设置而且运行以下部分描述的文件。

部署参数估计的安装文件

要在部署模式下估计参数,可以将非部署参数估计的代码分成设置文件,在非部署模式下使用运行在部署模式下使用的文件。安装文件为parameterEstimationSdoBattery_setup.m主要部分有:

  1. 定义参数

  2. 定义实验

  3. 准备部署并保存

定义参数

参数定义在parameterEstimationSdoBattery_setup.m以与生成的MATLAB代码相同的方式,parameterEstimationSdoBattery.m.使用sdo.getParameterFromModel命令创建一个参数对象,其中包含参数值、最小值和最大值字段,以及一个字段(“Free”),表示在估计期间是否对参数进行调优。

在本例中,参数信息也存储在数据库中,其中汽车由类似于伪车辆识别号码(VIN)的代码标识。汽车制造商可以使用它来监控电池的健康状况。的parameterEstimationSdoBattery_setup.m文件使用VIN数据库更新电池参数值。看到parameterEstimationSdoBattery_setup.m详细信息请存档。

初始数据库从MATLAB文件加载sdoBatteryVinDatabase.mat哪个有VIN数据库存储在变量vinDatabase.这是一个容器。地图对象和VIN键4 def用于在本例中查找电池的参数。

运行

vinDatabase (“4 def”

使用实例显示如下表格:

定义实验

实验定义为parameterEstimationSdoBattery_setup.m以与生成的MATLAB代码相同的方式,parameterEstimationSdoBattery.m.实验已经测量了与数据相关的模型中特定端口或信号的数据和信息。

准备部署和保存

在最后parameterEstimationSdoBattery_setup.m文件中,定义一个模拟器,该模拟器可以运行模型并将模型输出与测量数据进行比较。使用prepareToDeploy命令配置实验和模拟器,使它们可以在部署模式下使用。将这些准备好的对象保存到mat文件中。

在另一个模型上运行这些步骤并为部署做准备时,系统可能会提示您保存模型以便在运行设置函数。保存模型以保留部署模式所需的日志记录设置。

运行文件parameterEstimationSdoBattery_run.m使用保存的对象sdoBatteryObjectsToDeploy.mat用于部署模式下的参数估计。

用于部署参数估计的运行文件

运行文件可通过以下方式获取parameterEstimationSdoBattery_run.m主要部分有:

  1. 加载预配置的部署对象

  2. 更新实验及参数

  3. 运行优化

  4. 更新参数数据库

加载预配置的部署对象

parameterEstimationSdoBattery_run.m需要一个pragma,以便Simulink Compi金宝appler在编译的代码中包含模型,如下所示:

加载在结束时保存的预配置对象parameterEstimationSdoBattery_setup.m文件如下:

更新实验及参数

parameterEstimationSdoBattery_run.mFile接受两个输入参数:

  • dataFilename - 实验数据的数据文件名

  • - 参数值的车辆识别号码

从指定的CSV(逗号分隔值)文本文件中读取数据dataFilename.使用updateIOData命令用新的输入和输出数据(此模型的电流和电压数据)更新已部署的实验。由于数据来自CSV文件,因此不需要getData生成的MATLAB代码中的函数,parameterEstimationSdoBattery.m

使用VIN作为密钥在参数数据库中查找该车的电池参数。在运行新的估计之前,使用数据库中的当前值更新初始参数值。看到parameterEstimationSdoBattery_run.m详细信息请存档。

运行优化

接下来的几个步骤parameterEstimationSdoBattery_run.m都非常类似于代码中的parameterEstimationSdoBattery.m(用于未部署的评估)。定义估计目标函数的句柄,指定优化选项,并使用sdo.optimize函数。该步骤运行模型,并将模型输出与实验数据进行比较。参数被调优以实现模型和数据之间的紧密匹配。

目标函数定义在子函数中sdoBattery_optFcn它也类似于目标函数parameterEstimationSdoBattery.m.但是,需要指定信号记录变量的名称,因为在部署模式下无法从模型中查询到该变量。

要确定变量的名称('logsout’),在非部署模式下从MATLAB中查询模型:

get_param (“sdoBattery”“SignalLoggingName”

或者,在Simulink中使用金宝app建模单击工具条上的选项卡,单击模型设置.在配置对话框中,选择数据导入/导出的变量名信号日志记录盒子。

更新参数数据库

后调用sdo.optimize的主要功能parameterEstimationSdoBattery_run.m,更新VIN数据库。对于估计的每个参数,复制CurrentValuePreviousValue然后用新的参数估计来更新CurrentValue.看到parameterEstimationSdoBattery_run.m欲知详情。

在部署模式下运行参数估计

使用世纪挑战集团命令编译parameterEstimationSdoBattery_run.m函数从MATLAB命令窗口或DOS或UNIX命令提示符。您需要安装MATLAB运行时才能完成以下步骤。有关更多信息,请参见安装和配置MATLAB运行时(MATLAB编译器)

在部署模式下运行参数估计。

在MATLAB中运行

vinDatabase (“4 def”

查询结果如下:

随时间跟踪电池参数

下表是电池参数的估计值 0 而且 马克斯 随着时间的推移。该文件sdoBattery_Data1.csv包含新电池时的数据,sdoBattery_Data2.csv包含电池1岁时的数据和sdoBattery_Data3.csv包含电池使用2年的数据。

观察电池容量随着时间的推移而退化。第一年的退化率很高,之后退化率下降。当电池是新的时,往返通勤的电池电量状态为61%,而2年后,通勤的电池电量状态为47%。如果充电状态低于40%,这种情况会减少电池的充电次数。通过长期跟踪电池参数,制造商可以监控电池的健康状况,并确定汽车是否需要更换新电池。

另请参阅

||||