模拟和预测识别模型输出
你确定一个模型,这样您就可以准确地计算出动态系统响应一个输入。有两种方法生成一个识别模型的反应:
模拟计算模型的响应使用输入数据和初始条件。
预测计算模型反应在一些指定的时间在未来使用当前和过去的测量值输入和输出值,以及初始条件。
在系统识别,目标是创建一个逼真的动态系统模型,应用程序可以使用或交付的目标。在这种背景下,模拟和预测的主要角色在系统辨识工具箱™提供工具模型识别,同时选择,调优,和验证这些模型。
您可以:
识别你的模型的方式减少预测(预测的焦点)或模拟误差(模拟的焦点)
可视化模型响应与其他模型相比,数据测量
验证模型通过比较其响应与输入/输出测量数据并不是用于原始模型估计
你选择的模拟或预测方法取决于您的应用程序需求,但也在系统识别工作流:你在哪里
当你确定你的模型,一个一步预测焦点通常会产生最好的结果。这种优势是因为,通过输入和输出的测量,一步预测占扰动的性质。占干扰提供了最统计最优的结果。
当你确认你的模型,模拟通常提供了更敏锐的方法来评估你的模型将在广泛的条件下执行。您的应用程序可能驱动prediction-based验证,然而。例如,如果您计划使用您的模型控制设计,您可以验证模型预测其响应时间范围,代表了主导时间常数的模型。
你可以在时域或频域,并保持一致的输入/输出数据的域。对于频域数据,仿真的结果是产品的输入和频率函数的傅里叶变换模型。s manbetx 845因为频率特性模型忽略了噪声识别动力学,模拟焦点和一步预测集中产生相同的识别模型。在频域进行验证,使用模拟。
有关示例,请参见:
模拟和预测是什么?
你可以得到一个更详细的了解模拟和预测之间的区别将这些技术应用于一个简单的一阶系统。
模拟
模拟意味着使用输入数据计算模型的响应和初始条件。时间样本模型的响应与时间的样本输入数据用于仿真。换句话说,给定输入u(t1、…tN),模拟生成y(t1、…tN)。下图演示了此流。
对于连续时间系统,模拟手段解决微分方程。对于离散时间系统,模拟方法直接应用模型方程。
例如,考虑一个动态模型描述了一个使用一个样本的一阶差分方程1秒的时间:
y(t+ 1)=一个y(t)+bu(t),
在哪里y是输出和u是输入。
该系统相当于以下框图。
假设您的模型识别提供了估计的参数值一个= 0.9,b= 1.5。然后方程变得:
y(t+ 1)= 0.9y(t)+ 1.5u(t)。
现在假设你想计算的值y(1),y(2),y(3),……对于给定的输入值u(0)= 2,u(1)= 1,u(2)= 4,…y(1)在第一个采样时刻的值是输出。使用初始条件y(0)= 0的值y(t)*t= 1、2和3可以计算为:
y(1)= 0.9y(0)+ 1.5u(0)= (0.9)(1.5)(2)(0)+ = 3
y(2)= 0.9y(1)+ 1.5u(1)= (0.9)(1.5)(1)(3)+ = 4.2
y(3)= 0.9y(2)+ 1.5u(2)= (0.9)(4.2)+ (1.5)(4)= 9.78
预测
预测意味着预测模型响应k步骤在未来使用当前和过去值的测量输入和输出值。k被称为预测地平线,对应于预测输出时间kT年代,在那里T年代样品时间。换句话说,给定测量输入u米(t1、…tN+k)和测量输出y米(t1、…tN),预测生成yp(tN+k)。
例如,假设您使用传感器来测量输入信号u米(t)和输出信号y米(t)在前面描述的物理系统的一阶方程。这个方程是:
yp(t+ 1)=一个y米(t)+bu米(t),
在哪里y是输出和u是输入。
的预测版本之前的仿真框图:
在10日采样时刻(t= 10),测量输出y米(10)和相应的输入是16毫米u米(10)是12 n .现在你想预测未来值输出的时间t= 11。使用前面的方程,预测的输出yp是:
yp(11)= 0.9y米(10)+ 1.5u米(10)
因此,未来的预测价值输出y(11)t= 10:
yp(11)= 0.9 * 16 + 1.5 * 12 = 32.4
一般来说,预测模型的响应k步骤在未来(k从当前时间≥1)t,你必须知道输入时间t+k和输出时间t:
yp(t+k)=f(u米(t+k),u米(t+k1),…u米(t),u米(t1),…u米(0)
y米(t),y米(t1),y米(t2),…y米(0))
u米(0)和y米初始状态(0)。f()
代表了预测,这是一个动态模型的形式取决于模型结构。
领先一步的预测从先前的例子中,yp模型的y(t)+一个y(t1)=bu(t)是:
yp(t+ 1)= -一个yp(t)+bu米(t+ 1)
在这个简单的一步预测的情况下,只有最新的预测是基于测量。多工位的预测的动态模型传播国家内部,使用前面的预测状态除了输入。因此每个预测输出来自的组合测量输入和输出和先前的预测输出。
你可以设置k任何正整数价值测量数据样本的数量。如果你设置k∞,然后没有使用之前的输出的预测计算,仿真和预测返回相同的结果。如果你设置k一个整数大于数据样本的数量,预测
集k来正
一个警告和问题。如果你的目的是执行一个预测的时间范围之外的最后即时测量数据,使用预测
。
一个例子显示预测并在MATLAB仿真®,请参阅比较预测和模拟响应识别模型的测量数据。
限制的预测
不是所有的模型都支持一种预测方万博1manbetx法。对于前面的动态模型,
,支持使用过去的数据结构。万博1manbetx不存在这种万博1manbetx支持的模型输出误差(OE)结构(H(z)=1
)。没有信息在过去的输出可用于预测未来输出值。在这些情况下,预测和模拟相一致。甚至模型通常使用过去的信息仍然可以有OE结构特殊的情况。状态空间模型(中的难点
)当OE结构K = 0
。多项式模型(idpoly
)也有OE结构,当= c = d = 1
。在这些特殊情况下,预测和仿真是等价的,和干扰模型是固定的1
。
比较预测和模拟响应识别模型的测量数据
这个例子展示了如何可视化预测模型响应和模拟模型响应的线性模型。
确定一个三阶使用输入/输出状态空间模型的测量z1
。
负载iddata1z1;sys = ss (z1, 3);
sys
是一个连续时间状态标识(中的难点
)模型。在这里,sys
标识使用默认互译预测重点,互译预测误差最小化。这个焦点通常提供最佳的整体模型。
现在使用比较
绘制预测的反应。对于这个示例,将预测地平线kstep
十步,和使用比较
绘制预测响应对原始测量数据。这个设置的kstep
指定每个反应点是在未来10个步骤对测量数据用于预测这一点。
kstep = 10;图比较(z1、sys kstep)
在这个图中,每个数据点代表了预测输出与输出测量数据采取了至少10个步骤。例如,点在t = 15秒是基于测量前或t = 5秒。
情节说明了模型之间的差异反应和原始数据。传说中的百分比是NRMSE健身价值。它代表的紧密程度预测模型输出匹配的数据。
来提高你的结果,你可以减少预测地平线。
kstep = 5;图比较(z1、sys kstep)
NRMSE健身价值有所提高的健身价值在所述的情况下获得的。在一个实际的应用程序中,有多种因素影响小预测地平线。这些包括时间常数和应用程序有预见性的需求。
您可以查看模拟响应进行比较,而不是预测的反应,通过使用kstep
默认为比较
,这是正
。与模拟,计算只使用输入数据的响应,而不是测量输出数据。
图比较(z1, sys)
模拟和预测所述反应产生类似的总体百分比。
改变显示选项的情节,右键单击访问上下文菜单的阴谋。例如,绘制预测输出和测量输出之间的误差,选择错误的阴谋从上下文菜单中。
比较模型识别与预测和模拟的焦点
这个例子展示了如何识别模型模拟与预测重点和焦点。比较prediction-focus的反应和simulation-focus模型对原来的估计数据,验证数据,并没有用于估计。
当你确定一个模型,该算法使用了“焦点”
选择确定预测误差或模拟误差降到最低。默认值是“预测”
。你可以改变通过改变“焦点”
选项“模拟
”。
加载测量数据z1
,把它分成两半z1e
和z1v
。一半用于模式识别、模型验证,另一半。
负载iddata1z1;% z1e = z1 (1:15);%,以避免ordqz停滞% z1v = z1 (151:300);z1e = z1 (1:155);z1v = z1 (156:300);
确定一个三阶状态空间模型sys_pf
使用输入/输出测量z1e
。使用默认选项“焦点”选择这个模型,这是“预测”。
sys_pf = ss (z1e 3);
sys_pf
是一个连续时间状态标识(中的难点
)模型。
使用相同的测量数据,确定状态空间模型的第二个sys_sf
这集“焦点”
来“模拟”
。
选择= ssestOptions (“焦点”,“模拟”);sys_sf = ss (z1e 3选择);
使用比较
函数来模拟两种识别模型的响应。
图比较(z1e sys_pf sys_sf)
模型识别与预测集中NRMSE适应值高于模型与仿真的焦点。
现在对验证数据进行比较。这种模型比较显示如何执行的条件都不是其识别的一部分。
图比较(z1v sys_pf sys_sf)
适应值的改进模型。然而,该模型预测的重点仍高于模型与仿真的焦点。