从数据估计查找表值
目标
中的时域输入输出(I/O)数据估计查找表值参数估计量。
关于数据
在本例中,使用的I/O数据lookup_regular.mat
估算查找表的值。mat文件包含以下变量:
xdata1
-由范围[0,6.5]内63个均匀采样的输入数据点组成ydata1
—由输入数据样本对应的输出数据组成time1
-时间向量
中的查找表值使用I/O数据进行估计lookup_regular
动态仿真模块®模型。模型中的查找表包含10个值,这些值存储在MATLAB中®变量表格
。初始表值包含一个0的向量。有关如何使用查找表对系统建模的详细信息,请参见选择查找表的指导方针。
打开参数估计会话
若要估计查找表值,请打开“参数估计”会话。
在MATLAB提示符下输入以下命令打开查找表模型:
lookup_regular
这个命令打开Simulink模型,并将估计数据加载到MATLAB工作空间中。
在Simulink模型中,选择参数估计量从应用程序Tab,在画廊里,在下面控制系统打开一个带有name的新会话lookup_regular在参数估计量。
使用默认设置估计表值
使用以下步骤估算查找表值。
点击创建一个新的实验新实验在参数估计选项卡。它的名字
EstimationData
。然后导入I/O数据,xdata1
而且ydata1
,时间向量,time1
,进入实验。要做到这一点,右键单击打开实验编辑器EstimationData
并选择编辑……。类型[time1, ydata1]
在输出对话框中[time1, xdata1]
在实验编辑器的输入对话框中。有关更多信息,请参见导入数据进行参数估计。导入数据后,实验结果如下图所示:运行初始模拟以查看I/O数据、模拟输出和初始表值。为此,在MATLAB提示符下键入以下命令:
sim卡(“lookup_regular”图(1);情节(xdata1 ydata1,“m *”, xout, yout,“b ^”)举行在;情节(linspace(0、6.5、10),表,“k”,“线宽”2);传奇(的测量数据,“初始模拟数据”,'初始表值');
图中的x轴和y轴分别表示输入和输出数据。图中显示如下图:
测量数据-以洋红色星号(*)表示。
初始表值-由黑线表示。
初始模拟数据-由蓝色增量表示(Δ)。
您可以看到,初始表值和模拟数据与测量数据不匹配。
要选择要估计的表值,请在参数估计选项卡,单击选择参数按钮,打开编辑:估计参数对话框。在为所有实验调整参数面板中,单击选择参数启动“选择模型变量”对话框。选中表格旁边的复选框,然后单击好吧。
的编辑:估计参数窗口现在看起来如下所示。默认情况下,将选择表值进行估计。
在参数估计选项卡上,单击选择实验。
EstimationData
默认情况下选择进行估计。如果没有,请勾选下面的复选框估计列,然后单击好吧。若要使用默认设置估计表值,请在参数估计选项卡上,单击估计打开参数轨迹情节和估算进度报告窗口。的参数轨迹图中显示了每次迭代中参数值的变化。
估计收敛后,参数轨迹图是这样的:
的估算进度报告显示迭代次数,目标函数被评估的次数,以及每次迭代结束时代价函数的值。估计收敛后,估算进度报告看起来是这样的:
估计的参数保存在
EstimatedParams
在结果部份数据浏览器左边的窗格。要查看结果,右键单击EstimatedParams
然后选择开放。报告内容如下。该报告包括估计的参数值、代价函数的最终值和其他优化结果。你可以看到,当梯度的大小1.18e-14小于标准值1e-3时,优化停止了。
验证评估结果
在估算表值之后,如中所述使用默认设置估计表值,你必须使用另一个数据集来验证你没有过度拟合模型。您可以绘制和检查以下图来验证估计结果:
残差图
测量和模拟的数据图
验证估计结果:
创建一个用于验证的新实验。它的名字
ValidationData
。导入验证I/O数据,xdata2
而且ydata2
,时间向量,time2
在ValidationData
实验。要做到这一点,右键单击打开实验编辑器ValidationData
并选择编辑……。然后,类型[time2, ydata2]
在输出对话框中[time2, xdata2]
在实验编辑器的输入对话框中。有关更多信息,请参见导入数据进行参数估计。选择实验进行验证,在参数估计选项卡上,单击选择实验。的
ValidationData
估计默认选择实验。取消选择用于估计的方框,并选中它以进行验证。上选择要使用的结果验证选项卡上,单击选择要验证的结果。取消选择
使用当前参数值
并选择EstimatedParams
,并单击好吧。的参数估计量,默认显示验证后的实验图。方法上的对应框中选中,添加残差图验证选项卡。
要开始验证,在验证选项卡上,单击验证。
检查情节
实验图
您可以看到,使用估计参数模拟的数据与测量的验证数据一致。
单击残差图:ValidationData打开残差图。
残差表示模拟数据和实测数据之间的差异,其范围为[-0.15,0.15]-最大输出变化的15%以内。这表明测量值和模拟表数据值之间有很好的匹配。
通过在MATLAB提示符下键入以下命令,根据验证数据集和模拟表值绘制和检查估计表值。
sim卡(“lookup_regular”图(2);情节(xdata2 ydata2,“m *”, xout, yout,“b ^”)举行在;情节(linspace(0、6.5、10),表,“k”,“线宽”, 2)
该图显示表值(显示为黑线)与验证数据和模拟表值相匹配。表数据值涵盖了输入值的整个范围,这表明已经估计了所有查找表值。