主要内容

估计模型参数值(GUI)

这个例子说明了如何使用实验数据来估计模型参数。你估计发动机节气门系统的参数。

发动机节气门系统模型

打开Simulink®模型。

open_system (“spe_engine_throttle”

节流阀型号说明

节流阀控制进入发动机进气歧管的空气质量。节流阀体内有一个蝶阀,当驾驶员踩下加速踏板时,蝶阀就会打开。这让更多的空气进入汽缸,使发动机产生更大的扭矩。

直流电机控制蝶阀的开启角度。还有一个弹簧连接到阀门上,当直流电机断电时将其返回到关闭位置。阀门的旋转量被限制在大约90度。因此,如果一个大的指令输入应用到电机,阀门击中硬停止阻止它进一步旋转。

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

估计实验数据

双击模型中带有预加载数据块的参数估计,打开预配置的估计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”
Baidu
map