forecast

Предскажите идентифицированный выход модели

Описание

пример

yf = forecast(sys,PastData,K) предсказывает выход идентифицированной модели sys временных рядовK шаги в будущее с помощью прошлых результатов измерений, PastData.

forecast выполняет предсказание в будущее, в области значений времени вне прошлого момента результатов измерений. В отличие от этого predict команда предсказывает ответ идентифицированной модели по отрезку времени результатов измерений. Использование predict определить, совпадает ли предсказанный результат с наблюдаемым ответом предполагаемой модели. Если sys хорошая модель предсказания, рассмотрите использование ее с forecast.

пример

yf = forecast(sys,PastData,K,FutureInputs) использует будущие значения входных параметров, FutureInputs, предсказывать ответ идентифицированной модели с входными каналами.

пример

yf = forecast(___,opts) использует набор опции, opts, задавать дополнительные опции прогноза. Используйте opts с любой из предыдущих комбинаций входных аргументов.

пример

[yf,x0,sysf] = forecast(___) также возвращает ориентировочные значения для начальных состояний, x0, и модель прогнозирования, sysf, и может включать любую из предыдущих комбинаций входных аргументов.

пример

[yf,x0,sysf,yf_sd,x,x_sd] = forecast(___) также возвращает оцененное стандартное отклонение выхода, yf_sd, траектория состояния, x, и стандартное отклонение траектории, x_sd. Используйте с любой из предыдущих комбинаций входных аргументов.

пример

forecast(sys,PastData,K,___) строит предсказанный выход. Используйте с любой из предыдущих комбинаций входных аргументов.

Чтобы изменить параметры отображения, щелкните правой кнопкой по графику получить доступ к контекстному меню. Например, чтобы просмотреть предполагаемое стандартное отклонение предсказанного выхода, выберите Confidence Region из контекстного меню. Для получения дополнительной информации о меню, смотрите Советы.

пример

forecast(sys,Linespec,PastData,K,___) использование Linespec задавать тип линии, символ маркера и цвет.

forecast(sys1,...,sysN,PastData,K,___) строит предсказанные выходные параметры для нескольких идентифицированных моделей. forecast автоматически выбирает цвета и стили линии.

forecast(sys1,Linespec1,...,sysN,LinespecN,PastData,K,___) использует тип линии, символ маркера и цвет, заданный для каждой системы.

Примеры

свернуть все

Предскажите значения синусоидального сигнала с помощью модели AR.

Сгенерируйте и отобразите данные на графике.

data = iddata(sin(0.1*[1:100])',[]);
plot(data)

Figure contains an axes. The axes with title y1 contains an object of type line. This object represents data.

Подбирайте модель AR к синусоиде.

sys = ar(data,2);

Предскажите значения в будущее в течение данного периода времени.

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

K задает период времени прогнозирования как 100 выборок. p предсказанный ответ модели.

Отобразите предсказанные данные на графике.

plot(data,'b',p,'r'), legend('measured','forecasted')

Figure contains an axes. The axes with title y1 contains 2 objects of type line. These objects represent measured, forecasted.

В качестве альтернативы постройте предсказанный выход с помощью синтаксиса forecast(sys,data,K).

Получите прошлые данные и идентифицируйте модель временных рядов.

load iddata9 z9
past_data = z9.OutputData(1:50);
model = ar(z9,4);

z9 iddata объект, который содержит измеренный выход только.

model idpoly модель временных рядов.

Задайте начальные условия для прогнозирования.

opt = forecastOptions('InitialCondition','e');

Постройте предсказанный отклик системы в течение данного периода времени.

K = 100;
forecast(model,past_data,K,opt);    
legend('Measured','Forecasted')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Measured (y1), Forecasted.

Получите прошлые данные и идентифицируйте модель временных рядов.

load iddata9 z9
past_data = z9.OutputData(1:50);
model = ar(z9,4);

z9 iddata объект, который содержит измеренный выход только.

Постройте предсказанный отклик системы в течение данного периода времени как красная пунктирная линия.

K = 100;
forecast(model,'r--',past_data,K);

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Past data (y1), model.

График также отображает прошлые данные по умолчанию. Чтобы изменить параметры отображения, щелкните правой кнопкой по графику получить доступ к контекстному меню. Например, чтобы просмотреть предполагаемое стандартное отклонение предсказанного выхода, выберите ConfidenceRegion из контекстного меню. Чтобы задать количество стандартных отклонений, чтобы построить, дважды кликните график и откройте диалоговое окно Property Editor. В диалоговом окне, во вкладке Options, задают количество стандартных отклонений по секрету область для Идентифицированных Моделей. Значением по умолчанию является 1 стандартное отклонение.

Получите прошлые данные, будущие входные параметры и идентифицированную линейную модель.

load iddata1 z1
z1 = iddata(cumsum(z1.y),cumsum(z1.u),z1.Ts,'InterSample','foh');
past_data = z1(1:100);
future_inputs = z1.u(101:end);
sys = polyest(z1,[2 2 2 0 0 1],'IntegrateNoise',true);

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);
plot(past_data(:,:,[]),yf(:,:,[]),UpperBound,'k--',LowerBound,'k--')
legend({'Measured','Forecasted','3 sd uncertainty'},'Location','best')

Figure contains an axes. The axes with title y1 contains 4 objects of type line. These objects represent Measured, Forecasted, 3 sd uncertainty, LowerBound.

Постройте траекторию состояния.

t = z1.SamplingInstants(101:end);
subplot(3,1,1)
plot(t,x(:,1),t,x(:,1)+3*x_sd(:,1),'k--',t,x(:,1)-3*x_sd(:,1),'k--')
title('X_1')

subplot(3,1,2)
plot(t, x(:,2),t,x(:,2)+3*x_sd(:,2),'k--',t, x(:,2)-3*x_sd(:,2),'k--')
title('X_2')

subplot(3,1,3)
plot(t,x(:,3),t,x(:,3)+3*x_sd(:,3),'k--',t, x(:,3)-3*x_sd(:,3),'k--')
title('X_3')

Figure contains 3 axes. Axes 1 with title X_1 contains 3 objects of type line. Axes 2 with title X_2 contains 3 objects of type line. Axes 3 with title X_3 contains 3 objects of type line.

Неопределенность ответа не растет по отрезку времени прогнозирования из-за спецификации будущих входных параметров.

Загрузка данных.

load(fullfile(matlabroot,'toolbox','ident','iddemos','data','predprey2data'));
z = iddata(y,[],0.1);
set(z,'Tstart',0,'OutputUnit',{'Population (in thousands)',...
    'Population (in thousands)'},'TimeUnit','Years');

z два выходных набора данных timeseries (никакие входные параметры) от 1 популяции жертв с 1 хищником. Население показывает снижение в популяции хищников из-за давки. Набор данных содержит 201 выборку данных, покрывающую 20 лет эволюции.

Изменения у хищника (y1) и добыча (y2) население может быть представлено как:

y1(t)=p1*y1(t-1)+p2*y1(t-1)*y2(t-1)

y2(t)=p3*y2(t-1)-p4*y1(t-1)*y2(t-1)-p5*y2(t-1)2

Нелинейность у хищника и популяций добычи может быть подходящим использованием нелинейной модели ARX с пользовательскими регрессорами.

Используйте часть данных как прошлые данные.

past_data = z(1:100);

Задайте стандартные регрессоры.

na = [1 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],'wavenet','CustomRegressors',C);

Сравните симулированный выход sys с результатами измерений, чтобы убедиться это - подходящий вариант.

compare(past_data,sys);

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent past\_data (y1), sys: 88.92%. Axes 2 contains 2 objects of type line. These objects represent past\_data (y2), sys: 86.35%.

Постройте предсказанный выход sys.

forecast(sys,past_data,101);
legend('Measured','Forecasted');

Figure contains 2 axes. Axes 1 contains 2 objects of type line. These objects represent Measured (y1), sys. Axes 2 contains 2 objects of type line. These objects represent Measured (y2), Forecasted.

Получите прошлые данные, будущие входные параметры, и идентифицировал линейную модель.

load iddata3 z3
past_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;
plot(t,yf.OutputData,'b',t,ys,'.r');
legend('Forecasted Output','Simulated Output')

Figure contains an axes. The axes contains 2 objects of type line. These objects represent Forecasted Output, Simulated Output.

Симуляция прогнозирования модели, sysf, с входными параметрами, future_inputs, и начальные условия, x0, дает к предсказанному выходу, yf.

Входные параметры

свернуть все

Идентифицированная модель, выход которой должен быть предсказан в виде одного из следующего:

Если модель недоступна, оценка sys от PastData использование команд такой как ar, arx, armax, nlarx, и ssest.

Прошлые данные временного интервала ввода - вывода в виде одного из следующего:

  • iddata объект — Использование наблюдало сигналы ввода и вывода создать iddata объект. Для данных timeseries (никакие входные параметры), задайте как iddata объект без входных параметров iddata(output,[]).

  • Матрица удваивается — Для моделей дискретного времени только. Задайте как N-by-Ny матрица для данных timeseries. Здесь, N является количеством наблюдений, и Ny является количеством выходных параметров.

    Для моделей с входными параметрами Nu задайте PastData как N (Ny +Nu) матрица.

Период времени прогнозирования в виде положительного целого числа. Выход, yf, вычисленный K шаги в будущее, такое, что периодом времени предсказания является Ts*K.

Будущие входные значения в виде одного из следующего:

  • [] — Будущие входные значения приняты, чтобы быть нулем, или равный, чтобы ввести уровни смещения (если они заданы в opts). Для моделей временных рядов задайте как [].

  • iddata объект — Задает как iddata объект без выходных параметров.

  • K-by-Nu матрица удваивается — K горизонт прогноза, и Nu является количеством входных параметров.

    Если у вас есть данные из нескольких экспериментов, можно задать массив ячеек матриц, один для каждого эксперимента в PastData.

Предскажите опции в виде a forecastOptions опция установлена.

Стиль линии, маркер и цвет в виде вектора символов. Например, 'b' или 'b+:'.

Для получения дополнительной информации о конфигурировании Linespec, смотрите аргумент Linespec plot.

Выходные аргументы

свернуть все

Предсказанный ответ, возвращенный как iddata объект. yf предсказанный ответ время от времени после последнего шага расчета в PastData. yf содержит данные для временного интервала T0+(N+1:N+K)*T1, где T0 = PastData.Tstart и T1 = PastData.Ts. N является количеством выборок в PastData.

Предполагаемые начальные состояния в начале прогнозирования, возвращенного как вектор-столбец размера, равняются количеству состояний. Используйте x0 с моделью sysf прогнозирования воспроизвести результат прогнозирования чистой симуляцией.

Если PastData мультиэксперимент, x0 массив ячеек размера Ne, где Ne является количеством экспериментов.

Когда sys не модель в пространстве состояний (idss, idgrey, или idnlgrey), определение состояний зависит от если sys линейно или нелинеен:

  • Линейная модель (idpoly, idproc, idtf) – sys преобразован в модель в пространстве состояний дискретного времени и x0 возвращен как состояния конвертированной модели в моменте времени вне последних данных в PastData.

    Если преобразование sys к idss не возможно, x0 возвращен пустой. Например, если sys модель непрерывного времени MIMO с неприводимыми внутренними задержками.

  • Нелинейная модель (idnlhw или idnlarx) — Для определения состояний idnlarx и idnlhw модели, см. Определение idnlarx состояний и Определение idnlhw состояний.

Модель Forecasting, возвращенная как одно из следующего:

  • Дискретное время idss — Если sys дискретное время idss модель, sysf совпадает с sys. Если sys линейная модель, которая не является моделью в пространстве состояний (idpoly, idproc, idtf), или модель в пространстве состояний непрерывного времени (idss, idgrey), sys преобразован в дискретное время idss модель. Конвертированная модель возвращена в sysf.

  • idnlarx, idnlhw, или idnlgrey— Если sys нелинейная модель, sysf совпадает с sys.

  • Массив ячеек моделей — Если PastData мультиэксперимент, sysf массив моделей Ne, где Ne является количеством экспериментов.

Симуляция sysf использование sim, с входными параметрами, FutureInputs, и начальные условия, x0, выражения yf как выход. Для моделей timeseries, FutureInputs isempty.

Предполагаемые стандартные отклонения предсказанного ответа, возвращенного как K-by-Ny матрица, где K горизонт прогноза, и Ny является количеством выходных параметров. Программное обеспечение вычисляет стандартное отклонение путем принятия во внимание ковариации параметра модели, ковариации начального состояния и аддитивной шумовой ковариации. Аддитивная шумовая ковариация хранится в NoiseVariance свойство модели.

Если PastData мультиэксперимент, yf_sd массив ячеек размера Ne, где Ne является количеством экспериментов.

yf_sd пусто если sys нелинейный ARX (idnlarx) или модель Хаммерстайна-Винера (idnlhw). yf_sd также пусто если sys не содержит информацию о ковариации параметра, это то, если getcov(sys) isempty. Для получения дополнительной информации смотрите getcov.

Предсказанная траектория состояния, возвращенная как K-by-Nx матрица, где K, горизонт прогноза и Nx являются количеством состояний. x состояния модели прогнозирования.

Если PastData мультиэксперимент, x массив ячеек размера Ne, где Ne является количеством экспериментов.

Если sys линейная модель кроме модели в пространстве состояний (нет idss или idgrey), затем это преобразовано в модель в пространстве состояний дискретного времени, и состояния конвертированной модели вычисляются. Если преобразование sys к idss не возможно, x возвращен пустой. Например, если sys модель непрерывного времени MIMO с неприводимыми внутренними задержками.

x пусто если sys нелинейный ARX (idnlarx) или модель Хаммерстайна-Винера (idnlhw).

Предполагаемые стандартные отклонения предсказанных состояний x, возвращенный как K-by-Ns матрица, где K, горизонт прогноза и Ns являются количеством состояний. Программное обеспечение вычисляет стандартное отклонение путем принятия во внимание ковариации параметра модели, ковариации начального состояния и аддитивной шумовой ковариации. Аддитивная шумовая ковариация хранится в NoiseVariance свойство модели.

Если PastData мультиэксперимент, x_sd массив ячеек размера Ne, где Ne является количеством экспериментов.

Если sys линейная модель кроме модели в пространстве состояний (нет idss или idgrey), затем это преобразовано в модель в пространстве состояний дискретного времени, и состояния и стандартные отклонения конвертированной модели вычисляются. Если преобразование sys к idss не возможно, x_sd возвращен пустой. Например, если sys модель непрерывного времени MIMO с неприводимыми внутренними задержками.

x_sd пусто если sys нелинейный ARX (idnlarx) или модель Хаммерстайна-Винера (idnlhw).

Советы

  • Щелчок правой кнопкой по графику открывает контекстное меню, где можно получить доступ к следующим опциям:

    • Systems — Выберите системы, чтобы просмотреть предсказанный вывод. По умолчанию предсказанный выход всех систем построен.

    • Data Experiment — Для данных мультиэксперимента только. Переключитесь между данными из различных экспериментов.

    • Характеристики Просмотрите следующие характеристики данных:

      • Peak Value — Просмотрите пиковое значение данных.

      • Mean Value — Просмотрите среднее значение данных.

      • Confidence Region — Просмотрите предполагаемое стандартное отклонение предсказанного выхода. Чтобы задать количество стандартных отклонений, чтобы построить, дважды кликните график и откройте диалоговое окно Property Editor. Задайте количество стандартных отклонений во вкладке Options в Confidence Region for Identified Models. Значением по умолчанию является 1 стандартное отклонение.

        Область доверия не сгенерирована для нелинейного ARX и моделей Хаммерстайна-Винера и моделей, которые не содержат информацию о ковариации параметра.

    • Show Past Data — Постройте прошлые выходные данные, используемые для прогнозирования. По умолчанию, прошлые выходные данные построен.

    • Наборы данных I/O Grouping — For, содержащие больше чем один канал ввода или вывода. Выберите группировку каналов ввода и вывода на графике.

      • 'none' Постройте каналы ввода-вывода в их собственных отдельных осях.

      • Все Соберите в группу все входные каналы, и весь выход образовывает канал вместе.

    • Наборы данных I/O Selector — For, содержащие больше чем один канал ввода или вывода. Выберите подмножество каналов ввода и вывода, чтобы построить. По умолчанию все выходные каналы построены.

    • Сетка Добавьте сетки в график.

    • Normalize — Нормируйте y-шкалу всех данных в графике.

    • Full View — Возвратитесь к полному представлению. По умолчанию график масштабируется к полному представлению.

    • Свойства Откройте диалоговое окно Property Editor, чтобы настроить атрибуты графика.

Представленный в R2012a