主要内容

估计模型参数值(GUI)

这个例子展示了如何使用实验数据来估计模型参数。你估计引擎油门系统的参数。

发动机节气门系统模型

打开Simulin万博1manbetxk®模型。

open_system (“spe_engine_throttle”

节流模型描述

节气门控制进入发动机进气歧管的空气质量。节流阀体包含一个蝶阀,当驾驶员按下油门踏板时,蝶阀就会打开。这让更多的空气进入气缸,导致发动机产生更大的扭矩。

直流电机控制蝶阀的开启角度。当直流电机断电时,连接到阀门上的弹簧可以使阀门恢复到关闭位置。阀门的旋转量被限制在大约90度。因此,如果一个大的命令输入应用到电机,阀门撞击硬停止阻止它进一步旋转。

电机被建模为一个转矩增益和一个带有参数Kt和input_delay的时滞输入。将蝶阀建模为参数为J、c和k的质量-弹簧-阻尼系统。该系统增强了硬止动,以限制阀开度为90度。模型的组成部分是已知的,但是系统的参数值是不准确的。

评估实验数据

双击模型中带有预加载数据块的Parameter Estimation,以打开预配置的估算GUI会话。

节省的估算项目定义了三个实验;的EstimationData实验用于参数估计,而ValidationData1ValidationData2用于验证估计参数。的EstimateData实验是策划。

实验信号数据可以从MATLAB®变量、MAT文件、Excel®文件或逗号分隔值文件等多种来源导入。看到实验数据导入及预处理(GUI)为更多的信息。

实验图也用于观察测量数据与当前模型的匹配程度。点击图模型反应在实验区上显示模拟信号数据。

仿真结果表明,模型与实测数据不匹配,模型参数需要估计。

估计参数

下一步是定义要估计的参数。点击选择参数打开一个对话框,选择要估计的模型参数。这个例子包含四个未知参数;蝶阀的惯性,J;阻尼系数,c;返回弹簧常数,k;运动反应的时间滞后,input_delay

因为从物理角度来看,所有这些参数都是正的,所以将它们的下限设为零。同时,设置0.1秒的上限input_delay参数。您还可以为参数选择一个初始值。这些可以从一些决定参数的公式的快速计算中得到。

单击右箭头切换按钮可以修改参数的最小和最大界限。

估计任务

选择参数进行估计后,选择要使用的实验进行估计。点击选择实验并选择EstimationData估计。

您现在可以开始评估,但首先要创建图表来监控评估的进度。点击添加图并选择参数轨迹.这将创建一个图,显示估计参数值在估计期间如何变化。单击视图选项卡来布局绘图,以便实验场景:EstimationDataEstimatedParams都是可见的。

单击估计按钮开始估算。属性可以修改估计选项成本函数组合框并点击更多的选择

在进行评估时,绘图会更新,并且会出现一个显示评估进展的对话框。进度对话框显示了评估迭代,模型被评估的次数(F-count),以及每个迭代的评估成本。

经过多次迭代后,估计收敛并终止。利用估计参数对模型进行更新,并将估计结果保存在数据浏览器中。要查看评估结果的详细信息,请单击鼠标右键EstimatedParams并选择开放

验证

将估计结果与其他实验结果进行对比验证是很重要的。一个成功的估计不仅要匹配用于估计的实验数据,而且要匹配在实验中收集的其他独立的测量数据。

要选择要验证的实验,请单击验证选项卡并单击选择实验.选择两个ValidationData1ValidationData2进行验证。

点击选择的结果选择用于验证的估计结果。选择EstimatedParams和取消选择使用当前参数值

点击验证将估计结果与验证实验进行对比验证。验证使用估计的参数和选定的实验来模拟模型,并创建显示测量和模拟数据的图。使用视图选项卡来布局绘图,以便实验场景:ValidationData1实验场景:ValidationData2都是可见的。

验证图证实了估计是成功的。图中还显示,估计的参数足以处理各种输入。

相关的例子

学习如何使用。估计模型参数sdo.optimize命令,看到估算模型参数值(代码)

关闭模式。

bdclose (“spe_engine_throttle”