主要内容

预测

预测k级前方模型输出

描述

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

例子

yp=预测(sys数据K预测识别模型的输出sysK使用测量的输入-输出数据。

预测命令预测在测量数据的时间跨度内的输出响应。相比之下,预报在测量数据的最后一瞬间以外的时间范围内对未来进行预测。使用预测来验证sys在测量数据的时间跨度内。

例子

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

例子

yp我知道了sys_pred) =预测(___还返回初始条件的估计值我知道了和预测的模型sys_pred.将此语法与前面的任何输入参数组合一起使用。

预测(sys数据K___绘制预测输出图。与前面的任何输入参数组合一起使用。要更改绘图中的显示选项,右键单击该绘图以访问上下文菜单。有关菜单的详细信息,请参见提示

您还可以使用比较命令。的比较命令将预测结果与观测数据进行比较,并显示定量的拟合优度。

预测(sysLinespec数据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(data(1:200),[na nb]); / /数据

使用预测地平线预测模型的输出。

k = 4;YP =预测(SYS,DATA,K);

yp是一个iddata对象。预测的输出返回OutputData对象的属性。

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

绘图(数据(201:400),YP(201:400));传奇(“估计数据”的预测数据);

图中包含一个坐标轴。标题为y1的轴包含两个类型为line的对象。这些对象表示估计数据,预测数据。

另外,要绘制预测的响应和估计数据,使用比较(SYS,DATA,K)

加载估计数据。

负载iddata1;数据= z1;

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

Sys1 = arx(数据,[2 2 1]);

估计一个有两个极点的传递函数。

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

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

选择= predictOptions (“InitialCondition”'z');

绘制估计模型的预测输出。使用指定的预测选项集,选择,并指定预测地平线为10.指定用于绘制每个系统的预测输出的行样式。

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

图中包含一个坐标轴。轴线包含2个线型对象。这些对象表示数据(y1)、sys1、sys2。

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

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

选择= compareOptions (“InitialCondition”'z');比较(数据、sys1“r——”sys2,“b”10、选择);

图中包含一个坐标轴。轴线包含3个线型对象。这些对象表示data (y1), sys1: 54.31%, sys2: 70.57%。

利用估计数据对模型进行估计,然后计算出预测模型输出和预测模型预测命令。模拟预测器模型以再现预测输出。

负荷估算数据。

负载iddata3z3数据= z3;

从数据估算多项式模型。

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

使用预测地平线4预测系统响应。

k = 4;[YP,IC,SYSP] =预测(SYS,DATA,K);

yp是预测的模型响应,我知道了包含估计的初始条件,和sysp是预测的模型。

使用输入模拟预测仪模型[data.OutputData, data.InputData]和初始条件我知道了

选择= SimOptions;opt.initialcondition = ic;ys = sim(sysp,[data.outputdata,data.inputdata],选择);

绘制预测和模拟输出。

t = yp.SamplingInstants;情节(t, yp。OutputData,“b”、t、y“r”);传奇(“预测输出”'模拟输出'

图中包含一个坐标轴。轴线包含2个线型对象。这些对象表示预测输出,模拟输出。

将之前获得的初始条件合并到模型预测中。

加载数据。

负载iddata1ic.z1i

指定ARMAX估计选项以估计初始状态。

estimOpt = armaxOptions (“InitialCondition”'估计');

估计一个ARMAX模型并返回initialCondition对象我知道了这封装了状态空间形式的初始条件。

na = 2;nb = 2;数控= 2;nk = 1;[sys,ic] = armax(z1i,[na nb nc nk],estimOpt);

指定预测的初始条件。

predictOpt = predictOptions (“InitialCondition”、集成电路);

预测模型并获得模型响应。绘制响应y用测量数据。

y =预测(Sys,Z1i,PredictOpt);情节(Z1i,Y)传奇(的测量数据“预测响应”

图中包含2个轴。标题为y1的轴1包含两个类型为line的对象。这些对象代表测量数据,预测响应。标题为u1的轴2包含一个类型为line的对象。这个对象表示测量数据。

在预测开始时,测量的响应和预测的响应显示出良好的一致性。

使用历史数据进行模型预测,以指定初始条件。你首先用预测命令并使用该命令指定历史数据predictOptions选项设置。然后,您通过手动将历史数据映射到初始状态来再现预测的响应。

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

负载iddata7z7

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

sys = n4sid (z7 5);

将数据集分成两部分。

za = z7(1:15);zb = z7(16:结束);

假设您希望计算对已识别的数据的响应的10步预测数据zB.有关初始条件,请使用信号值作为历史记录。也就是说,输入和输出值的时间,紧前的数据zB

io = struct('输入',za.inputdata,'输出',za.outputdata);选择= predictOptions (“InitialCondition”,io);

生成对数据的10步预测zB使用指定的初始条件和预测

[YP,X0,预测器] =预测(SYS,ZB,10,OPT);

yp是预测的模型响应,x0是与预测器模型对应的初始状态预测.你可以模拟预测使用x0作为重现的初始条件yp。OutputData

现在通过手动将历史数据映射到初始状态来重现输出。为此,最小化时间跨度的1步预测误差

x0 = data2state (sys,咱);

X0EST.的五个状态的值sys在时间瞬间后立即将最近的数据采样进来

预测由于采用了10步预测视界,比原来的系统有更多的状态。将视界诱导的附加状态指定为零初始值,然后追加X0EST.

x0predictor = zeros(命令(预测器),1);x0predictor(结束-4:结束)= x0。

使用以下方法模拟预测器[zb.outputdata,zb.inputdata]为输入信号和x0Predictor作为初始条件。

uData = [zB.OutputData, zB.InputData];%预测所需的信号[YSIM,T,XSIM] = LSIM(预测器,UDATA,[],X0PRedictor);

绘制预测的输出预测命令yp。OutputData和手动计算的结果ysim

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

图中包含一个坐标轴。轴线包含2个线型对象。

ysim是相同的yp。OutputData

输入参数

全部收缩

待预测输出的已识别模型,指定为:

如果模型不可用,估计sys数据使用以下命令基于“增大化现实”技术armax.特遣部队nlarx., 和SSEST.

测量的输入-输出数据,指定如下之一:

  • iddata对象-使用观察到的输入和输出信号来创建iddata对象。对于时间序列数据(无输入),指定为iddata无输入的对象IDDATA(输出,[])

  • 双打矩阵 - 用于模型nu.输入和纽约输出,指定数据作为一个N————(纽约+nu.)矩阵。在那里,N为观察次数。

    对于时间序列数据,指定为N——- - - - - -纽约矩阵。

预测视界,指定为下列之一:

  • 正整数 - 输出yp计算K迈向未来,在哪里K表示的倍数数据样品时间。

    时刻的输出t是否使用以前测量到的输出进行计算T-K.并输入时间瞬发t

  • —计算过程中没有使用之前的输出,并且预测方法返回与模拟相同的结果sim卡命令。

对于输出错误模型,介于K步进预测和模拟输出。这是因为Output-Error模型只使用过去的输入来预测未来的输出。

请注意

为了仔细验证模型,提前一步进行预测(K = 1)通常不是验证模型的良好测试sys在测量数据的时间跨度内。即使是微不足道的提前一步预测器, y t y t - 1 ,可以给予良好的预测。因此,一个糟糕的模型可能看起来很好,可以精细地对具有小的采样时间的数据预测。预测K =正,这与使用sim卡命令,可能会导致发散输出,因为数据中的低频干扰被强调,特别是对于集成模型。使用一个K值之间1以捕获测量数据的中频行为。

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

线条样式,标记和颜色,指定为字符向量。例如,“b”或者“b +:”

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

输出参数

全部收缩

预测的输出响应,返回如下内容之一:

  • iddata对象——当数据是一个iddata对象。的OutputData的属性yp存储预测输出的值。时间变量的取值范围为数据。SamplingInstants

  • 双打矩阵 - 何时数据是一个双精度矩阵。

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

sys使用idnlw.或者idnlgrey.模型中,yp是否与使用的模拟响应相同数据。InputData作为输入。

预测模型对应的初始条件估计sys_pred,作为列向量返回,一个initialCondition对象或单元格数组。

  • 如果sys那么,是线性传递函数还是多项式模型呢我知道了是一个initialCondition对象。的initialCondition对象封装的自由响应sys的状态空间形式,具有相应的初始状态向量。

  • 如果sys还有其他类型的线性或非线性动态模型吗我知道了是初始状态向量,作为大小等于状态数的列向量返回。

  • 如果数据包含多实验数据我知道了单元格数组有大小吗NE.,在那里NE.是实验的数量。

为了重现预测结果,可以进行模拟sys_pred使用我知道了作为初始条件。例如,看到通过仿真再现预测结果

如果sys是一个idnlarx模型中,我知道了返回空的。

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

  • 如果sys是线性模型,预测模型返回的是同一类型的模型吗sys或者模型的状态空间版本(中的难点)。重现预测结果,模拟sys_pred使用(数据。OutputData数据。InputData]作为输入和我知道了作为初始条件。仿真输出与预测输出相同yp。OutputData.例如,看到通过仿真再现预测结果

  • sys为非线性灰箱模型(idnlgrey.)或Hammerstein-Wiener模型(idnlw.),模型的噪声分量是微不足道的,因此预测模型与模型是相同的。sys_pred返回空的。重现预测结果,模拟sys使用初始条件我知道了.对于州的定义idnlw.模型,参见idnlhw国家的定义

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

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

提示

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

    • 系统—选择系统查看预测响应。默认情况下,绘制了所有系统的响应曲线。

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

    • 特征—查看以下数据特征:

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

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

      • 平均值—查看数据的平均值。仅适用于时域数据。

    • 显示—仅用于频域和频响数据。

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

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

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

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

      • 没有一个-在各自独立的坐标轴上绘制输入输出通道。

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

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

    • 网格- 将网格添加到图中。

    • 正常化-将图中所有数据的y刻度归一化。

    • 全视图-返回全视野。默认情况下,plot被缩放到全视图。

    • 预测地平线—设置预测范围,或选择模拟。

    • 初始条件—指定初始条件处理。不适用于频响数据。

      指定为以下其中之一:

      • 估计- 将初始条件视为估计参数。

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

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

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

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

    • 属性-打开属性编辑器对话框自定义情节属性。

在R2006A之前介绍