прогноз

Предскажите идентифицированный образцовый вывод

Синтаксис

yf = forecast(sys,PastData,K)
yf = forecast(sys,PastData,K,FutureInputs)
yf = forecast(___,opts)
[yf,x0,sysf] = forecast(___)
[yf,x0,sysf,yf_sd,x,x_sd] = forecast(___)
forecast(sys,PastData,K,___)
forecast(sys,Linespec,PastData,K,___)
forecast(sys1,...,sysN,PastData,K,___)
forecast(sys1,Linespec1,...,sysN,LinespecN,PastData,K,___)

Описание

пример

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)

Соответствуйте модели AR к синусоиде.

sys = ar(data,2);

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

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

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

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

plot(data,'b',p,'r'), legend('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')

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

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

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

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

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

График также отображает прошлые данные по умолчанию. Чтобы изменить параметры экрана, щелкните правой кнопкой по графику получить доступ к контекстному меню. Например, чтобы просмотреть предполагаемое стандартное отклонение предсказанного вывода, выберите 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')

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

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')

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

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

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);

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

forecast(sys,past_data,101);
legend('Measured','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')

Симуляция прогнозирования модели, 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.

Предскажите опции, заданные как набор опции 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 пуст.

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

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

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