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