主要内容

预测

预测识别模型输出

描述

例子

yf=预测(sysPastDataK预测一个确定的时间序列模型的输出sysK利用过去的测量数据走向未来,PastData

预测在测量数据的最后一刻之后的时间范围内执行对未来的预测。相比之下,预测命令预测已识别模型在测量数据时间跨度内的响应。使用预测以确定预测结果是否与估计模型的观测响应相匹配。如果sys是一个好的预测模型,考虑使用它吗预测

例子

yf=预测(sysPastDataKFutureInputs使用输入的未来值,FutureInputs,以预测已识别的模型在输入通道下的响应。

例子

yf=预测(___选择使用选项集,选择,以指定额外的预测选项。使用选择使用任何先前的输入参数组合。

例子

yfx0sysf] =预测(___还返回初始状态的估计值,x0,以及预测模型,sysf,并且可以包括任何前面的输入参数组合。

例子

yfx0sysfyf_sdxx_sd] =预测(___还返回输出的估计标准差,yf_sd,状态轨迹,x,轨迹的标准差,x_sd.与前面任何输入参数组合一起使用。

例子

预测(sysPastDataK___绘制预测产量。与前面任何输入参数组合一起使用。

若要更改显示选项,请右键单击绘图以访问上下文菜单。例如,要查看预测输出的估计标准偏差,请选择置信区域从上下文菜单。有关菜单的详细信息,请参见提示

例子

预测(sysLinespecPastDataK___使用Linespec指定线条类型、标记符号和颜色。

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

预测(sys1 Linespec1,…,sysN LinespecN,PastDataK___使用为每个系统指定的行类型、标记符号和颜色。

例子

全部折叠

使用AR模型预测正弦信号的值。

生成并绘制数据。

Data = iddata(sin(0.1*[1:100])',[]);情节(数据)

图中包含一个轴对象。标题为y1的axes对象包含一个line类型的对象。该对象表示数据。

将AR模型与正弦波匹配。

Sys = ar(data,2);

预测未来给定时间范围内的数值。

K = 100;p = forecast(sys,data,K);

K将预测时间范围指定为100个样本。p是预测的模型响应。

绘制预测数据。

情节(数据、“b”、磷、“r”),传说(“测量”“预测”

图中包含一个轴对象。标题为y1的axes对象包含2个line类型的对象。这些对象代表测量的、预测的。

或者,使用语法绘制预测输出预测(sys、数据、K)

获取过去的数据,识别时间序列模型。

负载iddata9z9past_data = z9.OutputData(1:50);模型= ar(z9,4);

z9是一个iddata仅包含测量输出的对象。

模型是一个idpoly时间序列模型。

指定预测的初始条件。

opt = forecastOptions(“InitialCondition”“e”);

绘制给定时间范围内预测的系统响应。

K = 100;预测(模型、past_data K,选择);传奇(“测量”“预测”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表测量的(y),预测的。

获取过去的数据,识别时间序列模型。

负载iddata9z9past_data = z9.OutputData(1:50);模型= ar(z9,4);

z9是一个iddata仅包含测量输出的对象。

用红色虚线表示给定时间范围内预测的系统响应。

K = 100;(预测模型,“r——”、past_data K);

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象表示过去的数据(y1),模型。

该图还默认显示过去的数据。若要更改显示选项,请右键单击绘图以访问上下文菜单。例如,要查看预测输出的估计标准偏差,请选择ConfidenceRegion从上下文菜单。若要指定绘制的标准差数,请双击绘图并打开“属性编辑器”对话框。在对话框中选项表中,指定的标准差数已识别模型的置信区域.默认值为1标准差。

获取过去的数据、未来的输入和一个确定的线性模型。

负载iddata1z1z1 = iddata(cumsum(z1.y),cumsum(z1.u),z1. ts,“InterSample”“呸”);Past_data = z1(1:100);Future_inputs = z1.u(101:end);Sys = polyest(z1,[2 2 2 0 0 1],“IntegrateNoise”,真正的);

z1是一个iddata对象,该对象包含集成数据。sys是一个idpoly模型。past_data的前100个数据点z1

future_inputs的最后200个数据点z1

预测未来给定时间范围和未来输入的系统响应。

K = 200;[yf,x0,sysf,yf_sd,x,x_sd] = forecast(sys,past_data,K,future_inputs);

yf预测的模型响应,和yf_sd是输出的标准偏差。x0初始状态的估计值,和sysf是预测状态空间模型。同样返回的是状态轨迹,x,轨迹的标准差,x_sd

画出预测的反应。

UpperBound = iddata(yf.OutputData+3*yf_sd,[],yf.Ts,“Tstart”, yf.Tstart);LowerBound = iddata(yf.OutputData-3*yf_sd,[],yf.Ts,“Tstart”, yf.Tstart);情节(past_data (:,: []), yf (:,: []), UpperBound,“k——”下界,“k——”)({传奇“测量”“预测”“3sd不确定度”},“位置”“最佳”

图中包含一个轴对象。标题为y1的axes对象包含4个line类型的对象。这些对象表示测量,预测,3sd不确定度,下界。

画出状态轨迹。

t = z1.SamplingInstants(101:end);次要情节(1,1)情节(t) x (: 1), t, x (: 1) + 3 * x_sd (: 1),“k——”t x (: 1) 3 * x_sd (: 1),“k——”)标题(“X_1”次要情节(3、1、2)情节(t) x (:, 2), t, x (:, 2) + 3 * x_sd (:, 2),“k——”t x (:, 2) 3 * x_sd (:, 2),“k——”)标题(“X_2”次要情节(3,1,3)情节(t) x (:, 3), t, x (:, 3) + 3 * x_sd (:, 3),“k——”t x (:, 3) 3 * x_sd (:, 3),“k——”)标题(“X_3”

图中包含3个轴对象。标题为X indexOf 1的坐标轴对象1包含3个类型为line的对象。标题为X的坐标轴对象2包含3个类型为line的对象。标题为X的坐标轴对象3包含3个类型为line的对象。

由于未来输入的规格,响应的不确定性不会在预测时间跨度内增长。

加载数据。

负载(fullfile (matlabroot“工具箱”“识别”“iddemos”“数据”“predprey2data”));Z = iddata(y,[],0.1);集(z,“Tstart”0,“OutputUnit”, {人口(千)...人口(千)},“TimeUnit”“年”);

z是来自一个捕食者一个猎物种群的两个输出时间序列数据集(无输入)。由于拥挤,捕食者数量下降。数据集包含201个数据样本,涵盖20年的演变。

捕食者的变化(日元)和猎物(y2)人口可表示为:

y 1 t p 1 y 1 t - 1 + p 2 y 1 t - 1 y 2 t - 1

y 2 t p 3. y 2 t - 1 - p 4 y 1 t - 1 y 2 t - 1 - p 5 y 2 t - 1 2

利用自定义回归量的非线性ARX模型可以拟合捕食者和被捕食者种群的非线性。

使用部分数据作为过去的数据。

Past_data = z(1:100);

指定标准回归量。

Na = [10 0;0 1];Nb = [];Nk = [];

指定自定义回归函数。

C = {{“y1 (t - 1) * y2 (t - 1)”}, {“y1 (t - 1) * y2 (t - 1)”“y2 (t - 1) ^ 2”}};

估计一个非线性ARX模型past_data作为估计数据。

Sys = nlarx(past_data,[na nb nk],“idWaveletNetwork”“CustomRegressors”C);

的模拟输出比较sys用测量数据来确保它是一个很好的拟合。

比较(past_data sys);

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象表示验证数据(y1), sys: 88.92%。坐标轴对象2包含2个line类型的对象。这些对象表示验证数据(y2), sys: 86.35%。

的预测产量sys

预测(sys, past_data, 101);传奇(“测量”“预测”);

图中包含2个轴对象。坐标轴对象1包含2个line类型的对象。这些对象表示Measured (y1)、sys。坐标轴对象2包含2个line类型的对象。这些对象代表测量(y2)、预测。

获取过去的数据,未来的输入,并确定线性模型。

负载iddata3z3Past_data = z3(1:100);Future_inputs = z3.u(101:end);Sys = polyest(z3,[2 2 2 0 0 1]);

预测未来给定时间范围和未来输入的系统响应。

K = size(future_inputs,1);[yf,x0,sysf] = forecast(sys,past_data,K,future_inputs);

yf是预测的模型响应,x0初始状态的估计值,和sysf是预测状态空间模型。

用输入模拟预测状态空间模型,future_inputs,初始条件,x0

opt = simOptions;opt.InitialCondition = x0;ys = sim(sysf,future_inputs(1:K),opt);

绘制预测和模拟输出。

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

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

预测模型仿真,sysf,输入,future_inputs,初始条件,x0,得到预测产量,yf

输入参数

全部折叠

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

如果一个模型是不可用的,估计sysPastData使用以下命令基于“增大化现实”技术arxarmaxnlarx,党卫军

过去的输入输出时域数据,指定为下列之一:

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

  • 双元矩阵-仅用于离散时间模型。指定为N——- - - - - -纽约矩阵为时间序列数据。在这里,N观察的次数和纽约是输出的数量。

    对于具有ν输入,指定PastData作为一个N————(纽约+ν)矩阵。

预测的时间范围,指定为正整数。输出,yf,则计算K步入未来,这样的预测时间范围是Ts * K

未来输入值,指定为下列之一:

  • []-未来输入值被假定为零,或等于输入偏移量(如果它们在选择).对于时间序列模型,指定为[]

  • iddataobject -指定为iddata对象,没有输出。

  • K——- - - - - -ν〇二重矩阵K预测的地平线,和ν是输入的数量。

    如果您有来自多个实验的数据,您可以指定一个矩阵单元格数组,在PastData

预测选项,指定为forecastOptions选项设置。

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

有关配置的详细信息Linespec的Linespec参数情节

输出参数

全部折叠

预测的响应,作为一个返回iddata对象。yf预测的响应是否在最后一个样本时间之后PastDatayf包含时间间隔的数据T0 + (N + 1: N + K) * T1,在那里T0 = PastData。Tstart而且T1 = PastData。TsN样品数量在吗PastData

预测开始时估计的初始状态,作为大小等于状态数的列向量返回。使用x0用预测模型sysf用纯模拟再现预测结果。

如果PastDatamulti-experiment,x0单元格数组大小,在那里是实验的次数。

sys不是状态空间模型(中的难点idgrey,或idnlgrey),状态的定义取决于ifsys是线性或非线性的:

  • 线性模型(idpolyidprocidtf) - - -sys转换为离散时间状态空间模型,以及x0作为转换后的模型在中最后一个数据之后的时间点的状态返回PastData

    如果转换为sys中的难点是不可能的,x0返回为空。例如,如果sys是具有不可约内部延迟的MIMO连续时间模型。

  • 非线性模型(idnlhwidnlarx的状态的定义idnlarx而且idnlhw模型,看到idnlarx状态的定义,idnlhw状态的定义

预测模型,返回为以下之一:

  • 离散时间中的难点——如果sys是离散时间吗中的难点模型中,sysfsys.如果sys是一个线性模型,不是状态空间模型(idpolyidprocidtf),或为连续时间状态空间模型(中的难点idgrey),sys转换为离散时间中的难点模型。转换后的模型返回sysf

  • idnlarxidnlhw,或idnlgrey——如果sys是一个非线性模型,sysfsys

  • 单元阵列模型-如果PastDatamultiexperiment,sysf的数组。模型,是实验的次数。

模拟sysf使用sim卡,输入,FutureInputs,初始条件,x0,收益率yf作为输出。对于时间序列模型,FutureInputs是空的。

预测反应的估计标准差,作为a返回K——- - - - - -纽约矩阵,K预测的地平线,和纽约是输出的数量。该软件通过考虑模型参数协方差、初始状态协方差和附加噪声协方差计算标准偏差。加性噪声协方差存储在NoiseVariance模型的属性。

如果PastDatamultiexperiment,yf_sd单元格数组大小,在那里是实验的次数。

yf_sd为空,如果sys为非线性ARX (idnlarx)或Hammerstein-Wiener模型(idnlhw).yf_sd也是空的,如果sys不包含参数协方差信息,即如果getcov(系统)是空的。有关更多信息,请参见getcov

预测状态轨迹,返回为aK——- - - - - -Nx矩阵,K,预测水平和Nx是状态数。x是预测模型的状态。

如果PastDatamultiexperiment,x单元格数组大小,在那里是实验的次数。

如果sys线性模型与状态空间模型不同吗中的难点idgrey),然后将其转换为离散时间状态空间模型,并计算转换后模型的状态。如果转换为sys中的难点是不可能的,x返回为空。例如,如果sys是具有不可约内部延迟的MIMO连续时间模型。

x为空,如果sys为非线性ARX (idnlarx)或Hammerstein-Wiener模型(idnlhw).

预测状态的估计标准差x,作为K——- - - - - -Ns矩阵,K,预测水平和Ns是状态数。该软件通过考虑模型参数协方差、初始状态协方差和附加噪声协方差计算标准偏差。加性噪声协方差存储在NoiseVariance模型的属性。

如果PastDatamultiexperiment,x_sd单元格数组大小,在那里是实验的次数。

如果sys线性模型与状态空间模型不同吗中的难点idgrey),然后将其转换为离散时间状态空间模型,并计算转换后模型的状态和标准差。如果转换为sys中的难点是不可能的,x_sd返回为空。例如,如果sys是具有不可约内部延迟的MIMO连续时间模型。

x_sd为空,如果sys为非线性ARX (idnlarx)或Hammerstein-Wiener模型(idnlhw).

提示

  • 右键单击该绘图将打开上下文菜单,在这里您可以访问以下选项:

    • 系统-选择系统查看预测输出。默认情况下,所有系统的预测输出被绘制出来。

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

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

      • 峰值—查看数据峰值。

      • 平均值—查看数据的平均值。

      • 置信区域—查看预测输出的估计标准差。若要指定绘制的标准差数,请双击绘图并打开“属性编辑器”对话框。中的标准偏差数选项选项卡,在已识别模型的置信区域.默认值为1标准差。

        对于非线性ARX和Hammerstein-Wiener模型以及不包含参数协方差信息的模型,不生成置信区域。

    • 显示过去的数据-绘制过去用于预测的产出数据。默认情况下,绘制过去的输出数据。

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

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

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

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

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

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

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

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

版本历史

在R2012a中引入