Чтобы спрогнозировать выходные данные динамической системы, сначала необходимо определить модель, которая соответствует прошлым измеренным данным из системы, а затем спрогнозировать будущие выходные данные идентифицированной модели. Предположим, что имеется набор Y из N измерений выходного сигнала системы (Y = {y1, y2,... yN}). Прогнозирование результатов на будущее:
Определение модели системы с помощью команд оценки временных рядов, таких как ar, arx, armax, и ssest.
Программное обеспечение оценивает модели путем минимизации квадратной суммы ошибок прогнозирования на один шаг вперед. Можно идентифицировать линейные модели, такие как AR, ARMA и модели пространства состояний. Можно также оценить нелинейные модели ARX и нелинейные модели серого цвета.
Проверка идентифицированной модели с помощью predict команда.
predict команда предсказывает выход идентифицированной модели за временной промежуток измеренных данных (Yp = yp1, yp2,... ypN). Использовать predict определяют, совпадают ли предсказанные результаты Yp с наблюдаемыми выходами Y для требуемого горизонта прогнозирования. Если прогнозы являются хорошими в течение периода времени доступных данных, используйте модель для прогнозирования.
Укажите параметры прогнозирования, такие как способ вычисления программой начальных условий измеряемых данных. Чтобы задать параметры, используйте forecastOptions набор опций.
Вычислите выходные данные идентифицированной модели до будущего временного горизонта H (yN + 1, yN + 2,..., yN + H), используяforecast команда. В отличие от predict команда, forecast команда выполняет прогнозирование в будущее, во временном диапазоне, выходящем за пределы последнего момента измеряемых данных.
Программа вычисляет прогнозируемые значения следующим образом:
Создание модели предиктора с использованием идентифицированной модели.
Вычисление конечного состояния предиктора с использованием измеренных (доступных) данных.
Моделирование идентифицированной модели с использованием конечного состояния в качестве начальных условий.
Дополнительные сведения см. в разделе Введение в прогнозирование динамического ответа системы.
Можно также прогнозировать выходные данные для систем, в которых измеримые внешние входные данные u (t) влияют на выходные данные наблюдений. В этом случае сначала следует определить модель «вход-выход» с помощью измеренных значений y (t) и u (t), а затем использовать forecast команда.
В этом примере показано, как прогнозировать данные временных рядов из системы с использованием модели ARMA. Загрузите прогнозируемые данные временных рядов.
load iddata9 z9 past_data = z9.OutputData(1:50);
Подгонка модели заказа ARMA [4 3] к измеренным данным.
sys = armax(past_data,[4 3]);
Выполните прогнозирование на 10 шагов вперед для проверки модели на протяжении периода времени измеренных данных.
yp = predict(sys,past_data,10);
Постройте график прогнозируемой реакции и измеренных данных.
t = z9.SamplingInstants; t1 = t(1:50); plot(t1,past_data,'k',t1,yp,'*b') legend('Past Data','Predicted Data')

Сюжет показывает, что sys является хорошей моделью прогнозирования, которая может использоваться для прогнозирования.
Задайте нулевые начальные условия для измеряемых данных.
opt = forecastOptions('InitialCOndition','z');
Выходные данные прогнозной модели на 100 шагов выходят за рамки оценочных данных.
H = 100; yf = forecast(sys,past_data,H,opt);
Постройте график прошлых и прогнозируемых данных.
t2 = t(51:150)'; plot(t1,past_data,'k',t2,yf,'--r') legend('Past Data','Forecasted Data')
