参数调优数码双胞胎
这个例子展示了如何监视电动汽车电池的情况,部署版本的参数估计的仿真软件®设计优化™,连同仿真软件编译器™。金宝app
电池监控
电池在电动汽车是昂贵的更换,需要仔细监测和维护,以确保他们对它们的功能。在这个例子中,电动汽车驱动工作,每天上下班。在家里,汽车插入智能充电器,监控电池电流和电压。电池充电器分析数据来估计电池参数,使用部署版本模型参数估计的优化设计,结合仿真软件的编译器。金宝app充电器继电器这些参数对汽车制造商通过物联网(物联网)连接,所以制造商可以监视电池健康。
电池模型
这个例子估计参数的一个简单的、可充电电池模型,sdoBattery
。的输入sdoBattery
电池电流,计算模型输出的电池端电压的电池电荷状态。
电池模型是基于方程:
地点:
伏电池端电压。
伏电池恒压。
是电池的欧姆极化电阻。
在安时最大的电池容量。 是在安时电池的初始状态。
电池充电状态,1是完全充电和0放电。电池电荷状态计算的积分与积极的电流放电指示电池电流和负电流指示充电。
充电时的电压降,表示为电池恒压的一小部分。
使用以下命令打开模型。
open_system (“sdoBattery”)
电池特性
以下电池特性已知:
电压, 400 v
损失的因素, = 0.012
阻力, 0.32欧姆。
是250安时(100千瓦时)当电池是新的。随着电池的老化, 预计将减少,这是监视跟踪电池的健康。初始状态 和新电池容量 需要估计。
步骤部署参数估计
有两个主要步骤运行参数估计在部署模式:
做一个设置文件,设置参数估计对象用于部署模式
做一个运行文件,该文件是一个MATLAB函数的参数估计,可以编译和运行部署模式
建议创建设置和运行通过从MATLAB代码生成的文件参数估计量。复制、分裂和修改生成的代码的设置和运行文件见下一节。
参数估计在没有部署的模式
首先生成MATLAB代码估计 和 在没有部署的模式。使用下面的命令来加载预配置评估会议:
负载sdoBattery_spesession_forDeploymentspetool (SDOSessionData)
这一步加载和情节的实验测量电压和电流数据和配置参数估计量估计 和 。
导航到估计在将来发布按钮,从下拉列表中,选择生成MATLAB函数(见生成参数估计问题的MATLAB代码(GUI))。这个步骤生成一个MATLAB函数添加到MATLAB编辑,和MAT-fileparameterEstimation_sdoBattery_Data.mat
。生成的代码可以在文件中parameterEstimationSdoBattery.m
。您可以使用生成的代码来估计参数没有部署的模式。
建议首先生成的代码,复制、分裂和修改代码来创建设置和运行以下各部分将描述文件。
安装文件部署参数估计
在部署模式中,估计参数的代码没有部署参数估计可以分成设置文件使用没有部署的模式,和一个运行文件在部署模式。安装文件是可用的parameterEstimationSdoBattery_setup.m
主要部分是:
定义参数
定义实验
准备部署并保存
定义参数
中定义的参数parameterEstimationSdoBattery_setup.m
以同样的方式生成的MATLAB代码,parameterEstimationSdoBattery.m
。使用sdo.getParameterFromModel
命令来创建一个参数对象,包含字段参数值、最小值和最大值,一个字段(“自由”)指示是否期间将调谐参数估计。
在这个例子中,参数信息也存储在数据库中,汽车是由一个编码标识类似伪车辆识别号码(VIN)。汽车制造商可以使用这个监控电池的健康。的parameterEstimationSdoBattery_setup.m
文件使用VIN数据库更新电池参数值。看到parameterEstimationSdoBattery_setup.m
申请更多的细节。
MATLAB的初始加载数据库文件sdoBatteryVinDatabase.mat
VIN的数据库存储在变量vinDatabase
。这是一个containers.Map
对象,VIN的关键4 def
查找参数用于电池在这个例子。
运行
vinDatabase (“4 def”)
显示如下表:
定义实验
实验中定义parameterEstimationSdoBattery_setup.m
以同样的方式生成的MATLAB代码,parameterEstimationSdoBattery.m
。实验测量数据和特定端口的信息或信号模型与数据相关联。
准备部署并保存
结束的时候parameterEstimationSdoBattery_setup.m
文件定义一个模拟器,可以运行模型和比较模型的输出测量数据。使用prepareToDeploy
命令来配置实验和模拟器,这样他们就可以被用于部署模式。保存这些MAT-file准备对象。
当运行这些步骤和准备部署在另一个模型,您可能会提示保存模型后继续运行设置函数。保存模型保存日志设置,需要在部署模式。
的运行文件parameterEstimationSdoBattery_run.m
使用对象保存在sdoBatteryObjectsToDeploy.mat
参数估计的部署模式。
运行文件部署参数估计
的运行文件是可用的parameterEstimationSdoBattery_run.m
主要部分是:
加载预配置部署对象
更新实验和参数
运行优化
更新数据库参数
加载预配置部署对象
的parameterEstimationSdoBattery_run.m
需要编译指示,以便仿真软件编译器包括模型的编译后的代码金宝app如下:
加载预配置对象保存的parameterEstimationSdoBattery_setup.m
文件如下:
更新实验和参数
的parameterEstimationSdoBattery_run.m
文件有两个输入参数:
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”)
另外,在仿真软件使用金宝app建模将来发布并单击选项卡模型设置。在配置对话框中,选择数据导入/导出并找到的变量名信号
日志记录
盒子。
更新数据库参数
后调用sdo.optimize
的主要功能parameterEstimationSdoBattery_run.m
、更新VIN数据库。对于每个参数估计,复制CurrentValue
到PreviousValue
然后使用新的参数估计来更新CurrentValue
。看到parameterEstimationSdoBattery_run.m
为更多的细节。
运行参数估计在部署模式
使用世纪挑战集团
命令来编译parameterEstimationSdoBattery_run.m
函数从MATLAB命令窗口或DOS或UNIX命令提示符。你需要安装MATLAB运行时完成以下步骤。有关更多信息,请参见安装和配置MATLAB运行时(MATLAB编译器)。
运行参数估计在部署模式。
在MATLAB中,运行
vinDatabase (“4 def”)
显示下面的结果:
随着时间的推移跟踪电池参数
下表显示了电池参数的估计
和
随着时间的推移。该文件sdoBattery_Data1.csv
包含数据的电池是新的,sdoBattery_Data2.csv
包含电池的数据时,1岁sdoBattery_Data3.csv
包含电池的数据时2岁。
观察到随着时间的推移在电池容量有退化。高降解率在第一年之后,降解率降低。当电池是新的,往返通勤离开了电池电荷状态在61%,而两年后,通勤离开了电池电荷状态为47%。如果电荷状态低于40%,这种情况会减少电池可以充电的次数。通过跟踪电池参数随着时间的推移,制造商可以监视电池健康状况,并确定汽车是否需要一个新电池。
另请参阅
prepareToDeploy(实验)
|prepareToDeploy(模拟)
|updateIOData(实验)
|sdo.Experiment
|sdo.SimulationTest