估计查找表的约束值
目标
中查找表的约束值参数估计量.对查找表输出值应用单调递增约束,并使用参数估计量来估计表的值。
关于数据
在本例中,使用lookup_increasing.mat
,其中包含用于估计查找表值的测量I/O数据。mat文件包含以下变量:
xdata1
-输入数据由范围内602个均匀采样的数据点组成(5, 5)
.ydata1
—输出与输入数据样例相对应的数据。time1
-时间向量。
中查找表的输出值单调递增,使用I/O数据进行估计lookup_increasing
金宝app®模型。
查找表增加约束模型
打开查找表模型。
open_system (“lookup_increasing.slx”)
该命令打开Simulink®模型,并在MATL金宝appAB®工作空间中加载估计数据。
查找表输出
控件查看表输出值查找表块。
该表包含断点处的11个输出值[5]
,在“功能块参数”对话框中指定。有关如何指定表值的详细信息,请参见输入断点和表数据.
的表数据字段显示表输出值是存储在变量中的值的累积和ydelta
.因此,如果yn11个表的输出值,ydelta
是(y1,y2- - - - - -y1,y3.- - - - - -y2、……y11- - - - - -y10
).最初的ydelta
值是从lookup_increasing.mat
.
初始表输出值不是单调递增的。为了保证表输出值单调递增,相邻表输出值之间的差值应该为正。这样做,估计ydelta
在参数估计量利用实测I/O估计数据,并进行约束ydelta(2:结束)
在估计时要积极。
使用默认设置估计单调递增的表值
打开一个参数估计会话。
在Simuli金宝appnk模型中,选择参数估计量从应用程序Tab,在画廊里,在下面控制系统使用该名称打开会话lookup_increasing在参数估计量.
创建一个实验并导入I/O数据。
在参数估计选项卡上,单击新实验.类型
[time1, ydata1]
在输出而且[time1, xdata1]
在输入的“编辑实验”对话框。点击好吧.一个新的名字实验经验值
创建于实验重新命名实验EstimationData
右键点击默认的实验名称,经验值
,并选择重命名
.有关更多信息,请参见导入数据进行参数估计.在MATLAB中输入以下命令,运行初始仿真以查看测量数据、模拟模型值和初始表值®提示。
sim卡(“lookup_increasing”图(1);情节(xdata1 ydata1,“m *”xout你,“b ^”)举行在;图(5,cumsum (ydelta),“k”,“线宽”(2)包含输入数据的);ylabel (的输出数据);传奇(的测量数据,“初始模拟数据”,'初始表输出')
表的初始输出值和模拟数据与实测数据不匹配。
选择参数进行估计。
在参数估计选项卡上,单击选择参数.打开“编辑:估计参数”对话框。在为所有实验调整参数面板中,单击选择参数打开“选择模型变量”对话框。勾选旁边的方框
ydelta
,并单击好吧.的
ydelta
在“编辑:估计参数”对话框中默认选择用于估计的值。对表输出值应用单调递增的约束。有关该表的详细信息,请参见查找表输出.
在“编辑:估计参数”对话框中,单击
ydelta
值。在展开菜单中,设置最低ydelta
值(负无穷,0 (10))
.因此,当第一个值在ydelta
可以由任何,后续值,即相邻表输出值之间的差,必须是正的。选择
EstimationData
估计实验。在参数估计选项卡上,单击选择实验.默认情况下,
EstimationData
选择进行估计。如果没有,请勾选下面的复选框估计列,然后单击好吧.使用默认设置估计表值。
在参数估计选项卡上,单击估计.
的参数轨迹图中显示了每次迭代中参数值的变化。
评估进度报告显示迭代次数,目标函数被评估的次数,以及每次迭代结束时代价函数的值。
估计的参数被保存在一个新变量中,
EstimatedParams
,在结果查看预估参数,单击右键EstimatedParams
并选择开放.估计
ydelta(2:结束)
价值观是正的。因此,表的输出,即存储在其中的值的累计和ydelta
,是单调递增的。
验证评估结果
在估算表值之后,如中所述使用默认设置估计单调递增的表值,您使用另一个测量数据集来验证和检查您没有过度拟合模型。您可以绘制和检查以下图来验证估计结果:
残差图
测量和模拟的数据图
创建一个用于验证的实验并导入验证I/O数据。
在参数估计选项卡上,单击新实验.类型
[time2, ydata2]
在输出而且[time2, xdata2]
在输入的“编辑实验”对话框。命名实验ValidationData
右键点击默认的实验名称,经验值
,在实验应用程序的区域,并选择重命名
.有关更多信息,请参见导入数据进行参数估计.选择实验进行验证。
点击选择实验在参数估计选项卡。的
ValidationData
估计默认选择实验。清晰的估计并选择用于的方框验证.选择要验证的结果。
在验证选项卡上,单击选择要验证的结果.清晰的
使用当前参数值
中,选择EstimatedParams
,并单击好吧.选择要在验证期间显示的图。
的参数估计量默认显示验证后的实验图。控件上的对应框添加残差图验证选项卡。
点击验证.
检查情节。
实验结果表明,用估计参数模拟得到的数据与实测验证数据吻合较好。
如需查看残差图,请单击残差图:ValidationData选项卡。
显示模拟数据和实测数据之间差异的残差位于最大输出变化的15%以内。这表明测量值和模拟表数据值之间有很好的匹配。
绘制并检查验证数据、模拟数据和估计表值。
sim卡(“lookup_increasing”图(2);情节(xdata2 ydata2,“m *”xout你,“b ^”)举行在;图(5,cumsum (ydelta),“k”,“线宽”, 2) xlabel(输入数据的);ylabel (的输出数据);传奇(验证数据的,模拟数据的,“表输出值”);
表输出值与测量数据和模拟表值相匹配。表输出值涵盖了输入值的整个范围,这表明所有查找表值都已估计。