预测

预计K-领先一步模型输出

描述

预测命令使用测量的输入-输出数据计算识别模型的k步提前输出。要识别模型,首先收集所有的输入-输出数据,然后离线估计模型参数。若要使用实时数据对非线性系统进行在线状态估计,请使用预测命令扩展和无香味的卡尔曼过滤器代替。

例子

yp=预测(sys,数据,K)预测所识别的模型的输出sys,K使用测量的输入-输出数据提前步骤。

预测command在测量数据的时间跨度内预测输出响应。相比之下,预测在超过测量数据最后一刻的时间范围内对未来进行预测。使用预测验证sys测量数据的时间跨度。

例子

yp=预测(sys,数据,K,选择)使用选项集选择指定附加的预测选项,如初始条件和数据偏移量的处理。

例子

(yp,x0,sys_pred] =预测(___)也返回初始状态的估计值x0和预测模型sys_pred。与任何先前的输入参数的组合使用。

预测(sys,数据,K,___)绘出了预测的输出。与任何先前的输入参数的组合使用。在情节的变化显示选项,右键单击阴谋访问上下文菜单。有关菜单的详细信息,请参阅提示

还可以使用。绘制预测的模型响应比较命令。的比较命令与观察到的数据并显示配合的定量善良的预测结果进行比较。

预测(sys,Linespec,数据,K,___)使用Linespec指定线路类型,标记符号和颜色。

预测(sysN sys1……,数据,K,___)绘制多个识别的模型预测的输出。预测自动选择颜色和线条样式。

例子

预测(sys1 Linespec1,…, sysN LinespecN,数据,K,___)使用为每个模型指定的行类型、标记符号和颜色。

例子

全部折叠

模拟时间序列数据。

init_sys = idpoly([1 -0.99],[],[1 -1 - 0.2]);选择= simOptions ('AddNoise',真正的);u = iddata ([], 0 (400 0), 1);data = sim (init_sys u选择);

数据是一个IDDATA对象包含时间序列模型的模拟响应数据。

使用ARMAX模型进行估计数据估计数据。

na = 1;nb = 2;sys = armax(数据(1:20 00),[na nb]);

预测使用4:1的预测范围的模型的输出。

K = 4;yp =预测(sys、数据、K);

yp是一个IDDATA对象。所预测的输出在被返回OutputData对象的属性。

比较预测和估计的数据输出。

情节(数据(201:400),yp (201:400));传奇(“估计数据”,的预测数据);

可替代地,绘制预测响应和估计数据,使用比较(SYS,数据,K)

加载估计数据。

负载iddata1;数据= z1;

估计的顺序[2 2 1]的ARX模型。

sys1 = arx(data,[2,2,1]);

与2个极估计传递函数。

sys2 =特遣部队(数据,2);

创建一个预测选项集,用于为预测指定零初始条件。

选择= predictOptions ('初始条件','Z');

积为估计模型预测的输出。使用指定的预测选项设置,选择和指定预测范围为10指定绘制每个系统的预测输出线样式。

预测(sys1“r——”sys2,'B'10、数据、选择);

要更改显示选项,右键单击阴谋访问上下文菜单。例如,为了查看估计数据中,选择显示验证数据从上下文菜单。要查看预测错误,请选择预测误差图

还可以使用比较命令。为此,首先创建一个选项集比较指定使用的零个初始条件。

选择= compareOptions ('初始条件','Z');比较(数据、sys1“r——”sys2,'B',10,优化);

使用估计的数据来估计模型,然后将预测模型的输出和预测模型使用计算预测命令。模拟预测模型来再现所预测的输出。

负荷估算数据。

负载iddata3z3数据= Z3;

根据数据估计一个多项式模型。

sys = polyest(z3,[2 2 2 0 0 1]);

预测使用的预测范围4中的系统响应。

K = 4;(x0, yp sysp] =预测(sys、数据、K);

yp为预测模型响应,x0为初始状态的估计值,sysp是预测模型。

与模拟输入的预测模型[data.OutputData, data.InputData]和初始条件x0

选择= simOptions;opt.InitialCondition = x0;y = sim (sysp, [data.OutputData data.InputData],选择);

积的预测和模拟输出。

t = yp.SamplingInstants;情节(t, yp.OutputData'B',T,YS,“r”);传奇(“预测的输出”,模拟输出的)

使用历史数据执行模型预测,以指定初始条件。你首先用预测命令并指定历史数据predictOptions选项集。然后,再现由历史数据手动映射到初始状态的预测的响应。

加载一个两输入,一输出的数据集。

负载iddata7z7

使用数据确定一个五阶状态空间模型。

sys = n4sid (z7 5);

拆分数据集分成两个部分。

ZA = Z7(1:15);ZB型= Z7(16:端);

假设您想要计算识别系统对数据的响应的提前10步的预测zB。为初始条件,使用的信号值中作为历史记录。也就是说,输入和输出值的时间紧接在数据之前zB

IO =结构(“输入”,zA.InputData,“输出”,zA.OutputData);选择= predictOptions ('初始条件',IO);

产生用于数据的10一步向前预测zB使用指定的初始条件和预测

[YP,X0,预测] =预测(SYS,ZB,10,优化);

yp为预测模型响应,x0是对应于所述预测模型的初始状态预测。你可以模拟预测运用x0作为初始条件来重现yp.OutputData

现在,通过历史数据手动映射到初始状态再现输出。要做到这一点,尽量减少在时间跨度1步预测误差

x0est = data2state(SYS,ZA);

x0est的五个状态的值sys在当时瞬间紧接着最近的数据样本中

预测由于有十步预测范围,所以比原来的系统有更多的状态。指定视界导致的附加状态为零初始值,然后追加x0est

x0Predictor =零(阶(预测值),1);x0Predictor(端4:结束)= x0est;

使用以下工具模拟预测器[zB.OutputData, zB.InputData]作为输入信号x0Predictor作为初始条件。

uData = [zB.OutputData, zB.InputData];%预测所需信号[ysim,T,XSIM] = lsim(预测,UDATA,[],x0Predictor);

积的预测输出预测命令yp.OutputData和手动计算结果ysim

yp.OutputData情节(t, t, ysim,“。”)

ysim等于yp.OutputData

输入参数

全部折叠

确定的模型,其输出将被预测,具体如下:

如果模型不可用,则进行评估sys数据使用以下命令基于“增大化现实”技术,ARMAX,特遣部队,nlarxssest

测量的输入输出数据,指定为以下情况之一:

  • IDDATA对象 - 使用观察输入和输出信号以产生IDDATA对象。对于时间序列数据(没有输入),指定为IDDATA没有输入的对象iddata(输出,[])

  • 双打的矩阵 - 对于高配车型怒江输入和尹恩惠输出,指定数据作为一个N————(尹恩惠+怒江)矩阵。在那里,N为观测值个数。

    对于时间序列数据,指定为N——- - - - - -尹恩惠矩阵。

预测层,具体如下:

  • 正整数 - 输出yp计算K步入未来,在那里K表示数据样品时间。

    在时间瞬间输出t是否使用之前测量的输出进行计算tk并输入到时刻t

  • 天道酬勤- 既往无输出在计算中使用,预测方法返回与模拟相同的结果sim卡命令。

对于输出误差模型,有没有什么区别K步进预测和模拟输出。这是因为输出错误模型只使用过去的输入来预测未来的输出。

请注意

为了仔细地验证模型,提前一步预测(K = 1)通常不是验证模型一个很好的测试sys测量数据的时间跨度。即使是微不足道的提前一步的预测, y ^ ( t ) = y ( t - 1 ) ,可以提供良好的预测。所以,一个贫穷的模型可能看起来罚款数据之一一步向前预测,有一个小样本的时间。与预测K =正,这是相同的与执行模拟sim卡命令,可以导致发散输出,因为数据中的低频干扰被强调,特别是与集成的模型。使用一个K值之间1天道酬勤捕捉测量数据的中频特性。

预测选项,指定为predictOptions选项集。使用选项集来指定预测选项,如处理的初始条件和数据偏移。

线条样式、标记和颜色,指定为字符向量。例如,'B'要么'B +:'

有关配置的更多信息Linespec的Linespec参数情节

输出参数

全部折叠

预测输出响应,作为以下之一返回:

  • IDDATA对象——当数据是一个IDDATA对象。的OutputData的属性yp存储预测输出的值。时间变量发生在由下式表示的范围内的值data.SamplingInstants

  • 双打的矩阵 - 当数据是一个双精度矩阵。

在时间瞬间输出t是否使用之前测量的输出进行计算tk并输入到时刻t。换句话说,预测在时间点响应r的测量数据存储在r + k - 1样本yp。需要注意的是在时间r,未来输入u (r + 1),u (r + 2)、……U(R + K)需要预测的假设是已知的。对于multi-experiment数据,yp包含每个实验的预测数据集。预测输出的时间跨度与观测数据的时间跨度相匹配。

sys使用指定idnlhw要么idnlgrey模型,yp是作为模拟响应计算使用相同的data.InputData作为输入。

对应的预测模型估计的初始状态sys_pred,返回作为大小的列向量等于状态的数目。如果数据是多实验,x0是大小的单元阵列NE,在那里NE为实验次数。你可以模拟sys_pred运用x0作为初始条件,重现预测结果。例如,参见通过模拟再现预测结果

如果您指定opt.InitialCondition作为'Z'中,数据的初始条件没有估计和x0等于0

如果sys是一个idnlarx模型,x0返回空的。

预测器模型,作为动态系统模型返回。对于multi-experiment数据,sys_pred是一个模型数组,每个实验有一个条目。你可以使用预测模型sys_pred以及估计的初始状态x0再现预测的结果:

  • 如果sys是线性模型,则预测器模型作为与sys或者作为模型的状态空间的版本(中的难点)。要重现预测的结果,模拟sys_pred运用[data.OutputData data.InputData]作为输入和x0作为初始条件。仿真输出与预测输出相同yp.OutputData。例如,参见通过模拟再现预测结果

  • sys是一个非线性灰盒模型(idnlgrey)或的Hammerstein-Wiener模型(idnlhw),该模型的噪声分量是微不足道的,因此预测模型是相同的模型。sys_pred返回空的。要重现预测的结果,模拟sys使用初始条件x0。对于状态的定义idnlhw模型,看定义idnlhw状态

  • 如果sys为非线性ARX模型(idnlarx),sys_predx0返回空。您无法通过模拟再现的预测结果。

对于具有采样时间的时域或频域离散数据Ts大于零,sys_pred是离散时间模型,即使sys是一个连续时间模型。

提示

  • 右键单击预测输出的绘图将打开上下文菜单,您可以在其中访问以下选项:

    • 系统-选择系统以查看预测的响应。默认情况下,绘制所有系统的响应。

    • 实验数据- 仅多的实验数据。切换从不同的实验数据之间。

    • 特征- 查看以下数据特点:

      • 峰值- 查看数据的绝对峰值。只适用于时域数据。

      • 峰值响应- 数据的查看峰值响应。只适用于频率响应数据。

      • 平均值-查看数据的平均值。只适用于时域数据。

    • 显示-只适用于频域和频响数据。

      • -查看系统的频率响应幅度。

      • -查看系统频率响应的相位。

    • 显示验证数据-用于预测模型响应的Plot数据。

    • I / O分组-用于包含多个输入或输出通道的数据集。在图上选择输入和输出通道的分组。

      • 没有一个-绘制输入-输出通道在各自的轴。

      • 所有-将所有输入通道和所有输出通道组合在一起。

    • I / O选择-用于包含多个输入或输出通道的数据集。选择要绘图的输入和输出通道的一个子集。默认情况下,绘制所有输出通道。

    • 网格-添加网格到情节。

    • 正常化-对图中所有数据的y-scale进行归一化。

    • 完整视图-返回全视图。默认情况下,图被缩放为全视图。

    • 预测范围-设定预测范围,或选择模拟。

    • 初始条件-指定初始条件的处理。不适用于频率响应数据。

      指定为下列其中一项:

      • 估计- 治疗的初始条件为估计参数。

      • -设置所有初始条件为零。

      • 消化延迟和估计-将非零延迟吸收到模型系数中,并将初始条件作为估计参数。仅对离散时间模型使用此选项。

    • 预测响应图-绘制预测模型响应。默认情况下,将显示响应图。

    • 预测误差图-绘制模型响应与预测数据之间的误差。

    • 属性-打开“属性编辑器”对话框,自定义图的属性。

R2006a前推出