解决模型识别与拟合值的差异比较
命令
这个例子展示了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)
计算的NRMSE拟合百分比比较
是不是比合身那低党卫军
计算。这个较低的值主要是由于预测视界之间的不匹配党卫军
(默认的1
)和compare(默认为正
).
重新运行比较
使用的论证1
对于预测水平。
图比较(z1 sys 1)
预测水平的变化解决了拟合值之间的大部分差异。现在,比较
适合度超过党卫军
健康。这个更高的值是因为党卫军
将初始状态设置为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)
拟合结果现在与原始估计的拟合结果相匹配。
该方法证实了党卫军
算法和比较
在相同的初始条件和预测范围设置下,算法得到了相同的结果。
当您想确认估计算法和比较算法NRMSE拟合值与原始估计数据之间的一致性时,此示例仅处理重现结果。然而,当你使用比较
要根据验证数据验证模型,或比较多个候选模型的优劣,请使用比较
默认值为“InitialCondition”
和预测视界作为一般规则。