主要内容

参数估计的应用

此示例显示了如何使用Simulink®Design Optimization中部署的参数估计版本在现场监控电动汽车电池的状况™, 与Simulink编译器一起使用™.万博1manbetx

电池监测

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

电池模型

本例估计了简单可充电电池模型的参数,斯多巴特里。输入斯多巴特里是蓄电池电流,模型输出是根据蓄电池充电状态计算得出的蓄电池端子电压。

电池模型基于以下等式:

E = ( 1. - 丧失 ) v - K Q 最大值 1. - s s

哪里:

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

  • v 是以伏特为单位的蓄电池恒定电压。

  • K 是以欧姆为单位的蓄电池极化电阻。

  • Q 最大值 为以安培小时为单位的最大电池容量。 Q 0 是以安培小时为单位的蓄电池初始充电状态。

  • s 是蓄电池充电状态,1充满电,0放电。蓄电池充电状态由蓄电池电流的积分计算得出,正极电流表示放电,负极电流表示充电。

  • 丧失 为充电时的压降,用电池恒压的分数表示。

使用以下命令打开模型。

open_system (“斯多巴特里”)

电池特性

以下是已知的电池特性:

  • 电压 v = 400 v

  • 损失系数, 丧失 = 0.012

  • 阻力, K = 0.32欧姆。

Q 最大值 当电池是新的时,已知为250安培小时(100千瓦时)。随着电池老化, Q 最大值 预计会降低,并对其进行监控以跟踪电池的运行状况。初始充电状态 Q 0 以及新电池的容量 Q 最大值 需要估计。

参数估计的步骤

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

  1. 制造设置文件,以设置参数估计对象以在部署模式下使用

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

建议创建设置文件由MATLAB代码开始生成,由参数估计器。复制、拆分和修改生成的代码以使设置如以下部分所示的文件。

非部署模式下的参数估计

首先生成MATLAB代码进行估计 Q 0 Q 最大值 在非部署模式下。使用以下命令加载预配置的估算会话:

负载sdoBattery_spesession_用于部署spetool (SDOSessionData)

此步骤使用测量的电压和电流数据加载和绘制实验,并配置参数估计器估计 Q 0 Q 最大值

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

建议从生成的代码开始,复制、拆分和修改代码以创建设置以下各节中描述的文件。

已部署参数估计的安装文件

要在部署模式下估计参数,可将非部署参数估计代码拆分为设置要在非部署模式下使用的文件,以及要在部署模式下使用的文件。安装文件可作为参数估计数据库设置.m主要部分包括:

  1. 定义参数

  2. 定义实验

  3. 准备部署并保存

定义参数

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

在此示例中,参数信息也存储在数据库中,在该数据库中,车辆通过类似于伪车辆识别号(VIN)的代码进行识别。汽车制造商可以使用它来监测电池的健康状况。这个参数估计数据库设置.m文件使用VIN数据库更新电池参数值。请参阅参数估计数据库设置.m文件以获取更多详细信息。

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

葡萄酒数据库(“4DEF”)

要显示下表,请执行以下操作:

定义实验

实验定义见参数估计数据库设置.m与生成的MATLAB代码相同,参数估计数据库.m.实验测量了模型中与数据相关的特定端口或信号的数据和信息。

准备部署和保存

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

在另一个模型上运行这些步骤并准备部署时,可能会提示您保存模型以在运行后继续设置作用保存模型以保留部署模式需要的日志记录设置。

这个文件参数估计数据库\u run.m使用中保存的对象sdoBatteryObjectsToDeploy.mat用于部署模式下的参数估计。

为部署的参数估计运行文件

这个该文件可作为参数估计数据库\u run.m主要部分包括:

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

  2. 更新实验和参数

  3. 运行优化

  4. 更新参数数据库

加载预配置的部署对象

这个参数估计数据库\u run.m需要pragma,以便Simulink编译器在编译的代万博1manbetx码中包含模型,如下所示:

加载在结束时保存的预配置对象参数估计数据库设置.m文件如下:

更新实验和参数

这个参数估计数据库\u run.m文件接受两个输入参数:

  • 数据文件名 - 用于实验数据的数据文件名称

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

读取指定的CSV (comma-separated-values)文本文件中的数据数据文件名. 使用奥达塔酒店命令使用新的输入和输出数据(此模型的电流和电压数据)更新已部署的实验。由于数据来自CSV文件,因此不需要获取数据生成的MATLAB代码中存在的函数,参数估计数据库.m

使用VIN作为键,在参数数据库中查找此车的蓄电池参数。在运行新估算之前,使用数据库中的当前值更新初始参数值。见参数估计数据库\u run.m文件以获取更多详细信息。

运行优化

接下来的几个步骤参数估计数据库\u run.m与中的代码非常相似参数估计数据库.m(对于未部署的估算)。定义估算目标函数的句柄,指定优化选项,并使用优化作用此步骤运行模型并将模型输出与实验数据进行比较。调整参数以实现模型和数据之间的紧密匹配。

目标函数在子函数中定义sdoBattery_optFcn这也类似于中的目标函数参数估计数据库.m.但是,需要指定信号测井变量的名称,因为在部署模式下,无法从模型中查询到它。

要确定变量的名称('罗格苏特'在这种情况下),在非部署模式下从MATLAB查询模型:

获取参数(“斯多巴特里”,“SignalLoggingName”)

或者,在Simulink中使用万博1manbetx建模选项卡,然后单击模型设置。在“配置”对话框中,选择数据导入/导出并在信号登录中盒子。

更新参数数据库

后调用优化主要功能参数估计数据库\u run.m,更新VIN数据库。对于每个估计的参数,复制当前值PreviousValue然后使用新的参数估计来更新当前值.看到参数估计数据库\u run.m更多细节。

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

使用世纪挑战集团命令编译参数估计数据库\u run.m从MATLAB命令窗口或DOS或UNIX命令提示符执行函数。您需要安装MATLAB运行时来完成以下步骤。有关详细信息,请参阅安装和配置MATLAB运行时(MATLAB编译器)

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

在MATLAB中,运行

葡萄酒数据库(“4DEF”)

要显示以下结果:

随时间跟踪电池参数

下表显示了电池参数的估计值 Q 0 Q 最大值 随着时间的推移。档案sdoBattery_Data1.csv包含新电池时的数据,sdoBattery_Data2.csv包含电池使用1年时的数据,以及sdoBattery_Data3.csv包含电池使用2年时的数据。

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

另见

||||