此示例显示如何从时域输入输出(I / O)数据中估算查找表值参数估计.
在此示例中,使用I / O数据lookup_regular.mat.
估计查找表的值。Mat文件包括以下变量:
xdata1.
- 由63个均匀采样的输入数据点组成范围内[0,6.5]
ydata1.
- 由对应于输入数据样本的输出数据组成
time1
- 时间向量
使用I / O数据估计查找表值Lookup_Regular.
万博1manbetx®模型。模型中的查找表包含十个值,存储在MATLAB中®变量表格
.表的初始值由一个0的向量组成。要了解有关如何使用查找表建模系统的更多信息,请参见选择查找表的指南.
要估计查找表的值,请打开参数估计会话。
通过在MATLAB提示符下键入以下命令打开查找表模型:
Lookup_Regular.
该命令打开Simulink模型,并将估计数据加万博1manbetx载到MATLAB工作空间中。
在Simuli万博1manbetxnk模型中,选择参数估计从应用标签,在画廊中,下控制系统用名称开立新会话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轴分别表示输入和输出数据。该图显示了以下情节:
实测数据-以品红星(*)表示。
初始表值-由黑线表示。
初始模拟数据-由蓝色delta (Δ)表示。
您可以看到初始表值和模拟数据与测量数据不匹配。
选择表值以估计,请执行参数估计选项卡上,单击选择参数打开编辑:估计参数对话。在里面参数调整为所有实验面板中,单击选择参数启动“选择模型变量”对话框。选中表旁边的框,然后单击好吧.
这编辑:估计参数窗口现在看起来如下。默认情况下,选择表值进行估计。
在这一点参数估计选项卡,单击选择实验.EstimationData
默认选择估计。如果没有,请选中此处的框估计列,然后单击好吧.
使用默认设置估计表值参数估计选项卡,单击估计打开参数轨迹情节和估算进度报告窗户。这参数轨迹绘图显示每个迭代处参数值的变化。
估计收敛后,参数轨迹情节看起来像这样:
这估算进度报告显示迭代次数,目标函数被评估的次数,以及每次迭代结束时代价函数的值。估计收敛后,估算进度报告看起来像这样:
估计的参数保存在估计仙人掌
在结果部分数据浏览器窗格在左边。要查看结果,请右键单击估计仙人掌
然后选择打开.该报告类似于以下内容。
此报告包括估计的参数值,成本函数的最终值以及其他优化结果。您可以看到优化在梯度大小,1.18E-14的大小小于标准值,1E-3时停止。
在估计表值之后,如使用默认设置估计表值,您必须使用另一个数据集来验证您没有过度拟合模型。您可以绘制和检查以下图,以验证评估结果:
残差情节
测量和模拟数据图
验证估算结果:
创建用于验证的新实验。说出它验证数据
.导入验证I/O数据,xdata2.
和ydata2.
和时间向量,time2
在验证数据
实验。要执行此操作,请右键单击开立实验编辑器验证数据
并选择编辑....然后,类型[time2, ydata2]
在“输出”对话框中[time2,xdata2]
在实验编辑器的输入对话框中。有关更多信息,请参见为参数估计导入数据.
选择验证实验,在参数估计选项卡,单击选择实验.这验证数据
选择实验默认情况下进行估计。取消选择框以估计并检查验证。
要选择要使用的结果,就在验证选项卡,单击选择要验证的结果.取消选择使用当前参数值
并选择估计仙人掌
,然后点击好吧.
这参数估计默认情况下,在验证后显示实验绘图。通过检查相应的框,添加残差绘图验证选项卡。
开始验证,在验证选项卡,单击证实.
检查情节
实验图
可以看到,使用估计参数模拟的数据与测量的验证数据是一致的。
单击“残差”绘图:validationData打开残差绘图。
显示模拟和测量数据之间的差异,位于范围[-0.15,0.15]范围内 - 在最大输出变化的15%内。这表示测量和模拟表数据值之间的良好匹配。
通过在MATLAB提示符下输入以下命令,根据验证数据集和模拟表值绘制和检查估计表值。
SIM('lookup_regular')图(2);绘图(xdata2,ydata2,'m *',xout,yout,“b ^”)举行在;情节(linspace(0、6.5、10),表,“k”那'行宽'2)
该曲线显示表值,显示为黑线,匹配验证数据和模拟表值。表数据值涵盖了整个输入值范围,这表示估计了所有查找表值。