主要内容

解决模型识别与拟合值的差异比较命令

这个例子展示了NRMSE如何拟合由模型识别函数和模型函数计算的值比较由于初始条件和预测视界设置的不同,函数可能有所不同。

当您识别模型时,模型识别算法将返回您使用的测量数据的拟合百分比值。如果你使用比较为了将模型模拟结果与实测数据绘制,拟合结果并不总是相同的。这种差异是因为:

  • 模型识别算法比较算法采用不同的方法来估计初始条件。

  • 模型识别算法默认使用一步预测关注,但比较使用默认值-相当于模拟的焦点。看到模拟和预测识别的模型输出

这些差异通常很小,它们不应该影响您的模型选择和验证工作流程。如果您确实希望精确地再现估计拟合结果,则必须协调中使用的预测范围和初始条件设置比较在模型估计中使用的值。

加载数据,并估计一个三状态状态空间模型。

负载iddata1z1;Sys = sest(z1,3);

从测量数据估计状态空间模型。

允许党卫军使用默认值“焦点”设置的预测,以及默认值“InitialState”'auto'的估计设置。的“汽车”设置的原因党卫军选择:

  • “零”如果初始预测误差不显著高于基于估计的误差,或者如果系统是FRD

  • “估计”对于大多数单次实验数据集,如果“零”不可接受

  • “展望”对于多实验数据集,如果“零”不可接受

有关更多信息,请参见ssestOptions

您可以从估计报告中检索自动选择的初始状态选项、初始状态向量和NRMSE拟合百分比sys

sys_is = sys.Report.InitialState
Sys_is = ' 0 '
sys_x0 = sys.Report.Parameters.X0
sys_x0 =3×10 0 0
sys_fit = sys.Report.Fit.FitPercent
Sys_fit = 76.4001

党卫军选择“零”,而不是估计初始状态,这表明初始状态对预测误差的贡献很小。

使用比较对模型进行模拟,并根据实测数据绘制结果图。对于这种情况,允许比较使用它自己的方法来估计初始条件和它的默认值对于预测水平。

图比较(z1, sys)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1), sys: 70.56%。

计算的NRMSE拟合百分比比较是不是比合身那低党卫军计算。这个较低的值主要是由于预测视界之间的不匹配党卫军(默认的1)和compare(默认为).

重新运行比较使用的论证1对于预测水平。

图比较(z1 sys 1)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表验证数据(y1), sys: 76.44%。

预测水平的变化解决了拟合值之间的大部分差异。现在,比较适合度超过党卫军健康。这个更高的值是因为党卫军将初始状态设置为0,而比较估计初始状态。你可以通过重新运行来研究初始态向量之间的距离比较输出参数。

[y1,fit1,x0c] = compare(z1,sys,1);x0c
x0c =3×1-0.0063 -0.0012 0.0180

x0c是小,但不是零呢sys_x0.为了重现党卫军的初始条件比较,直接设置“InitialCondition”选项sys_x0.然后运行比较使用更新的选项集。

compareOpt = compareOptions(“InitialCondition”, sys_x0);图比较(z1、sys compareOpt)

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1), sys: 76.4%。

拟合结果现在与原始估计的拟合结果相匹配。

该方法证实了党卫军算法和比较在相同的初始条件和预测范围设置下,算法得到了相同的结果。

当您想确认估计算法和比较算法NRMSE拟合值与原始估计数据之间的一致性时,此示例仅处理重现结果。然而,当你使用比较要根据验证数据验证模型,或比较多个候选模型的优劣,请使用比较默认值为“InitialCondition”和预测视界作为一般规则。

另请参阅

相关的话题