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