主要内容

命令行模拟与预测

模拟和预测命令

请注意

如果您从去趋势数据估计线性模型,并希望模拟或预测原始操作条件下的输出,请使用retrend将趋势数据重新添加到模拟或预测输出中。

命令 描述 例子
比较

确定模拟模型响应与测量输出信号的匹配程度。

图在测量输出的基础上模拟或预测一个或多个模型的输出。您应该使用一个独立的验证数据集作为模型的输入。

绘制出五步前模型的预测输出国防部对照验证数据数据,使用以下命令:

比较(数据、国防部、5)

请注意

省略第三个参数假设有一个无限的范围,并导致模拟响应与输入数据的比较。

sim卡

只模拟和绘制模型输出。

来模拟模型的响应模型使用输入数据数据,使用以下命令:

sim(模型、数据)
预测

仅预测和绘制模型输出。

对模型的响应进行提前一步预测模型输入数据数据,使用以下命令:

预测(模型、数据1)

使用下面的语法进行计算k-使用模型对输出信号进行步进预测

Yhat = predict(m,[y u],k)

预测的时间范围内计算预测结果数据.它不会预测超出现有数据范围的结果。

预测

预测未来的时间序列。

要预测未来任意步数的时间序列的值,使用以下命令:

预测(模型、past_data K)

在这里,模型是一个时间序列模型,past_data是时间序列观测值的记录,和K是预测的范围。

模拟与预测中的初始条件

计算一段时间内模拟和预测响应的过程首先使用初始条件来计算前几个输出值。的sim卡预测,预测命令提供了处理初始条件的选项和默认设置。

模拟的所有模型类型的默认初始条件为0idnlgrey模型,其默认初始条件是内部模型初始状态(Model属性x0).属性指定其他初始条件InitialCondition模拟选项。有关模拟选项的详细信息,请参见simOptions

使用比较命令通过仿真来验证模型,因为它的算法估计模型的初始状态,以优化模型适合给定的数据集。你也可以使用比较返回估计的初始条件,用于后续模拟和与相同数据集的比较。这些初始条件可以是初始状态向量(状态空间模型)或initialCondition对象(传递函数或多项式模型。)

如果你正在使用sim卡为了验证所识别模型的质量,您需要使用来自验证数据集和的输入信号还要考虑初始条件的影响.如果验证数据集输出包含模拟模型时未捕获的初始条件效应,则在前几个样本中模拟的响应和测量的响应是不同的。要使这种差异最小化,请估计初始状态值或initialCondition使用任意一种方法从数据中建模findstates(状态空间模型)比较(所有LTI模型),并使用InitialCondition模拟选项(请参阅simOptions).例如,计算优化模型拟合的初始状态来输出数据z

估计初始状态X0est = findstates(m,z);%使用估计的初始状态模拟响应opt = simOptions('InitialCondition',X0est);sim (m, z.InputData,选择)

作为一个获取和使用的例子initialCondition模型,看到在模拟确定的线性模型时应用初始条件

预测:默认初始条件取决于模型的类型。属性指定其他初始条件InitialCondition选项(见predictOptions).例如,计算优化模型提前一步预测响应的初始状态输出数据z

opt = predictOptions('InitialCondition','estimate');[Yp,IC] = predict(m,z,1,opt);

该命令返回估计的初始条件作为输出参数集成电路.有关指定初始状态的其他方法的信息,请参见predictOptions参考页面。

模拟一个连续时间状态空间模型

这个例子展示了如何使用随机二进制输入来模拟连续时间状态空间模型u的采样时间0.1秒

考虑以下状态空间模型:

x ˙ - 1 1 - 0 5 0 x + 1 0 5 u + 0 5 0 5 e y 1 0 x + e

在哪里e为方差为7的高斯白噪声。

创建一个连续时间状态空间模型。

A = [-1 1;-0.5 0];B = [1;0.5];C = [10];D = 0;K = [0.5;0.5];% Ts = 0表示连续时间model_ss = idss(A,B,C,D,K,“t”0,“NoiseVariance”7);

创建一个随机二进制输入。

U = idinput(400,苏格兰皇家银行的0.3 [0]);

创建一个iddata对象,其输出为空,仅表示输入信号。

数据= iddata([],u);数据。ts = 0.1;

使用模型模拟输出

opt = simOptions(“AddNoise”,真正的);Y = sim(model_ss,data,opt);

用噪声模拟模型输出

这个例子展示了如何创建输入数据和模型,然后使用数据和模型来模拟输出数据。

在本例中,您创建了以下带有高斯噪声的ARMAX模型e

y t - 1 5 y t - 1 + 0 7 y t - 2 u t - 1 + 0 5 u t - 2 + e t - e t - 1 + 0 2 e t - 1

然后,使用随机二进制输入模拟输出数据u

创建一个ARMAX模型。

m_armax = idpoly (-1.5 - 0.7 [1], [0 1 0.5], [1 1 0.2]);

创建一个随机二进制输入。

U = idinput(400,苏格兰皇家银行的0.3 [0]);

模拟输出数据。

opt = simOptions(“AddNoise”,真正的);Y = sim(m_armax,u,opt);

“AddNoise”选项指定在模拟中包含高斯噪声e呈现在模型中。将此选项设置为(默认行为)来模拟对输入的无噪声响应u,相当于设置e为零。

另请参阅

|||

相关的例子

更多关于