主要内容

预测

预测已识别的k型步进输出

描述

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

例子

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

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

数据可以是时间表、以逗号分隔的输入/输出矩阵对、单个矩阵或数据对象,例如iddata对象或idfrd对象。

例子

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]);opt = simOptions(“AddNoise”,真正的);U = iddata([], 0 (400,0),1);Data = sim(init_sys,u,opt);

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

估算一个ARMAX模型数据作为估计数据。

Na = 1;Nb = 2;Sys = armax(data(1:200),[na nb]);

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

K = 4;yp = predict(sys,data,K);

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

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

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

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

或者,要绘制预测的响应和估计数据,使用比较(sys、数据、K)

加载估计数据。

负载iddata1;数据= z1;

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

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

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

Sys2 = tfest(data,2);

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

opt = predictOptions(“InitialCondition”“z”);

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

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

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示验证数据(y1)、sys1、sys2。

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

方法也可以绘制预测的响应比较命令。为此,首先创建一个选项集比较指定使用零初始条件。

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

图中包含一个轴对象。axis对象包含3个line类型的对象。这些对象表示验证数据(y1), sys1: 54.31%, sys2: 70.57%。

使用估计数据估计一个模型,然后计算预测模型的输出和预测模型使用预测命令。模拟预测器模型以重现预测的输出。

负载估计数据。

负载iddata3z3数据= z3;

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

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

使用预测水平4预测系统响应。

K = 4;[yp,ic,sysp] = predict(sys,data,K);

yp是预测的模型响应,集成电路包含估计的初始条件和sysp是预测模型。

用输入模拟预测器模型[data.OutputData, data.InputData]初始条件集成电路

opt = simOptions;opt.InitialCondition = ic;ys = sim(sysp,[data.OutputData,data.InputData],opt);

绘制预测和模拟输出。

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

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示预测输出、模拟输出。

将您先前获得的初始条件纳入您的模型预测中。

加载数据。

负载iddata1icz1i

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

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

估计一个ARMAX模型并返回一个initialCondition对象集成电路它将初始条件封装为状态空间形式。

Na = 2;Nb = 2;Nc = 2;Nk = 1;[sys,ic] = armax(z1i,[na nb nc nk],estimOpt);

指定预测的初始条件。

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

对模型进行预测,得到模型响应。绘制反应图y用实测数据。

y = predict(sys,z1i,predictOpt);情节(z1i y)传说(的测量数据“预测响应”

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

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

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

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

负载iddata7z7

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

Sys = n4sid(z7,5);

将数据集分成两部分。

zA = z7(1:15);zB = z7(16:结束);

假设您希望计算已识别的系统对数据的响应的10步预测zB.对于初始条件,使用中的信号值正如历史记载。也就是说,输入和输出的时间值为数据中紧靠前的时间zB

IO = struct(“输入”,咱。InputData,“输出”, zA.OutputData);opt = predictOptions(“InitialCondition”IO);

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

[yp,x0,Predictor] = predict(sys,zB,10,opt);

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

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

x0est = data2state(sys,zA);

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

预测由于10步预测范围,比原始系统有更多的状态。指定由视界诱导到零初始值的附加状态,然后追加x0

x0Predictor = 0 (order(Predictor),1);x0Predictor(end-4:end) = x0est;

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

uData = [zB.OutputData,zB.InputData];%的信号需要预测[ysim,t,xsim] = lsim(Predictor,uData,[],x0Predictor);

的预测输出预测命令yp。OutputData以及人工计算的结果ysim

情节(t, yp。OutputData t ysim,'.'

图中包含一个轴对象。axis对象包含2个line类型的对象。

ysimyp。OutputData

输入参数

全部折叠

已识别的模型,其输出将被预测,指定为以下之一:

如果一个模型是不可用的,估计sys数据使用以下命令基于“增大化现实”技术armax特遣部队nlarx,党卫军

测量均匀采样的输入/输出数据,指定为a时间表、逗号分隔的一对数字输入/输出矩阵、单个数字矩阵或iddata对象。的规范数据取决于数据类型。

时间表

指定数据作为一个时间表它使用了一个规则间隔的时间向量。tt包含表示输入和输出通道的变量。

逗号分隔的矩阵对

指定数据作为一对包含输入和输出时域信号值的实值矩阵(uy).用维数指定输入矩阵Ns——- - - - - -ν输出矩阵的维数Ns——- - - - - -纽约,在那里ν是输入的数量,纽约输出的数量,和Ns是样本的数量。

对于时间序列数据,只指定输出矩阵y

一个矩阵

指定数据作为一个单实值矩阵Ny+Nu列,其中包含输出信号值,后面跟着输入信号值。注意,此通道顺序与逗号分隔的矩阵对数据形式的顺序相反数据

对于时间序列数据,请指定数据作为一个Ns——- - - - - -纽约矩阵。

数据对象

指定数据为iddata对象,其中包含输入和输出数据。对于时间序列数据(无输入),指定数据作为一个iddata对象,没有输入。

有关使用估计数据类型的详细信息,请参见系统标识工具箱中的数据类型

预测范围,指定为下列之一:

  • 正整数-输出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参数情节

输出参数

全部折叠

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

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

  • 双数矩阵-当数据是一个双数矩阵。

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

sys使用idnlhwidnlgrey模型中,yp是否与计算的模拟响应相同数据。InputData作为输入。

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

  • 如果sys那么是线性传递函数还是多项式模型呢集成电路是一个initialCondition对象。的initialCondition对象的空闲响应sys,为状态空间形式,并带有相应的初始状态向量。

  • 如果sys还有其他类型的线性或非线性动力模型吗集成电路初始状态向量,作为大小等于状态数的列向量返回。

  • 如果数据那么,包含多个实验数据集成电路单元格数组大小,在那里是实验的次数。

为了重现预测结果,可以进行模拟sys_pred使用集成电路作为初始条件。有关示例,请参见通过模拟重现预测结果

如果sys是一个idnlarx模型中,集成电路返回为空。

预测器模型,作为动态系统模型返回。对于多次实验数据,sys_pred是一个模型数组,每个实验有一个条目。你可以使用预测模型sys_pred和估计的初始条件集成电路重现预测结果:

  • 如果sys是线性模型,预测器模型返回为与?相同类型的模型sys或者作为模型的状态空间版本(中的难点).为了再现预测结果,进行模拟sys_pred使用(数据。OutputData数据。InputData]作为输入集成电路作为初始条件。模拟输出与预测输出相同yp。OutputData.有关示例,请参见通过模拟重现预测结果

  • sys为非线性灰盒模型(idnlgrey)或Hammerstein-Wiener模型(idnlhw),模型的噪声分量是微不足道的,因此预测器模型与模型相同。sys_pred返回为空。为了再现预测结果,进行模拟sys使用初始条件集成电路.的状态的定义idnlhw模型,看到idnlhw状态的定义

  • 如果sys为非线性ARX模型(idnlarx),sys_pred而且集成电路返回为空。无法通过模拟再现预测结果。

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

提示

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    • 全视图-返回全视图。在默认情况下,该图形被缩放到全视图。

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

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

      指定为以下之一:

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

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

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

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

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

    • 属性—打开“属性编辑器”对话框,自定义plot属性。

版本历史

R2006a之前介绍