主要内容

预测

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

描述

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

例子

yp=预测(sys数据K预测已识别模型的输出sysK使用测量的投入产出数据向前迈进。

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

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

例子

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

例子

yp集成电路sys_pred预测,预测___还返回初始条件的估计值集成电路还有一个预测模型sys_pred.将此语法用于前面的任何输入参数组合。

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

方法绘制预测的模型响应图比较命令。的比较Command将预测结果与观测数据进行比较,显示出定量的拟合优度。

预测(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([],zero (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));传奇(“估计数据”的预测数据);

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

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

加载估计数据。

负载iddata1;Data = z1;

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

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

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

Sys2 = tfest(data,2);

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

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

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

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

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

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

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

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

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

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

负载估计数据。

负载iddata3z3Data = 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”);传奇(“预测输出”模拟输出的

图中包含一个axes对象。坐标轴对象包含两个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包含两个类型为line的对象。这些对象代表测量数据,预测响应。标题为u1的Axes对象2包含一个类型为line的对象。该对象表示测量数据。

测量响应和预测响应在预测开始时表现出良好的一致性。

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

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

负载iddata7z7

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

Sys = n4sid(z7,5);

将数据集拆分为两部分。

zA = z7(1:15);zB = z7(16:end);

假设您希望计算已识别系统对数据的响应的提前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,“。”

图中包含一个axes对象。坐标轴对象包含两个line类型的对象。

ysimyp。OutputData

输入参数

全部折叠

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

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

测量均匀采样的输入/输出数据,指定为时间表,逗号分隔的一对数字输入/输出矩阵,单个数字矩阵,或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 = Inf,这与与执行模拟相同sim卡命令,可能导致发散的输出,因为强调了数据中的低频干扰,特别是对于集成的模型。使用一个K值之间1而且捕捉被测数据的中频行为。

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

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

有关配置的详细信息Linespec,参见Linespec的论点情节

输出参数

全部折叠

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

  • iddata对象—当数据是一个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,作为列向量an返回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大于零,sys_pred是离散时间模型,即使sys是一个连续时间模型。

提示

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

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

    • 数据实验-仅针对多个实验数据。在不同实验的数据之间切换。

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

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

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

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

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

      • —查看系统频响幅值。

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

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

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

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

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

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

    • 网格-在图中添加网格。

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

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

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

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

      指定为以下之一:

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

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

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

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

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

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

版本历史

R2006a之前介绍过

Baidu
map