exponenta event banner

предсказать

Прогнозирование выхода модели K-step-ahead

Описание

Это predict команда вычисляет K-шаговый выход идентифицированной модели с использованием измеренных данных ввода-вывода. Для идентификации модели сначала необходимо собрать все данные ввода-вывода, а затем оценить параметры модели в автономном режиме. Для выполнения оценки состояния нелинейной системы в режиме реального времени с использованием данных в режиме реального времени используйте predict вместо этого используется команда для расширенных и незаметных фильтров Калмана.

пример

yp = predict(sys,data,K) предсказывает выходные данные идентифицированной модели sys, K шаги вперед с использованием измеренных входных-выходных данных.

predict команда предсказывает выходной отклик за период времени измеряемых данных. Напротив, forecast осуществляет прогнозирование в будущее во временном диапазоне, выходящем за пределы последнего момента измеренных данных. Использовать predict утверждать sys за временной промежуток измеренных данных.

пример

yp = predict(sys,data,K,opt) использует набор опций opt задание дополнительных опций прогнозирования, таких как обработка начальных условий и смещений данных.

пример

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

predict(sys,data,K,___) строит график прогнозируемого выхода. Используется с любой из предыдущих комбинаций входных аргументов. Чтобы изменить параметры отображения на графике, щелкните его правой кнопкой мыши для вызова контекстного меню. Дополнительные сведения о меню см. в разделе Советы.

Можно также построить график прогнозируемого отклика модели с помощью compare команда. compare команда сравнивает результаты прогнозирования с наблюдаемыми данными и отображает количественную степень соответствия.

predict(sys,Linespec,data,K,___) использование Linespec для указания типа линии, обозначения маркера и цвета.

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

пример

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

Примеры

свернуть все

Моделирование данных временных рядов.

init_sys = idpoly([1 -0.99],[],[1 -1 0.2]);
opt = simOptions('AddNoise',true);
u = iddata([],zeros(400,0),1);
data = sim(init_sys,u,opt);

data является iddata объект, содержащий смоделированные данные ответа модели временных рядов.

Оценка модели ARMAX с помощью data в качестве оценочных данных.

na = 1;
nb = 2;
sys = armax(data(1:200),[na nb]);

Спрогнозировать выходные данные модели с использованием горизонта прогнозирования 4.

K = 4;
yp = predict(sys,data,K);

yp является iddata объект. Прогнозируемый выходной сигнал возвращается в OutputData свойства объекта.

Сравните прогнозируемые и предполагаемые выходные данные.

plot(data(201:400),yp(201:400));
legend('Estimation data','Predicted data');

Figure contains an axes. The axes with title y1 contains 2 objects of type line. These objects represent Estimation data, Predicted data.

Альтернативно, для построения графика прогнозируемых данных ответа и оценки, используйте compare(sys,data,K).

Загрузите оценочные данные.

load iddata1;
data = z1;

Оцените модель ARX порядка [2 2 1].

sys1 = arx(data,[2 2 1]);

Оцените передаточную функцию с помощью 2 полюсов.

 sys2 = tfest(data,2);

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

opt = predictOptions('InitialCondition','z');

Постройте график прогнозируемых выходных данных для расчетных моделей. Используйте указанный набор опций прогнозирования, optи укажите горизонт прогнозирования как 10. Задайте стили линий для печати прогнозируемых выходных данных каждой системы.

predict(sys1,'r--',sys2,'b',data,10,opt);

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

Для изменения параметров отображения щелкните правой кнопкой мыши на графике, чтобы открыть контекстное меню. Например, для просмотра оценочных данных выберите в контекстном меню Показать данные проверки. Чтобы просмотреть ошибку прогнозирования, выберите График ошибок прогнозирования (Prediction Error Plot).

Можно также построить график прогнозируемого ответа с помощью compare команда. Для этого сначала создайте набор опций для compare для указания использования нулевых начальных условий.

opt = compareOptions('InitialCondition','z');
compare(data,sys1,'r--',sys2,'b',10,opt);

Figure contains an axes. The axes contains 3 objects of type line. These objects represent data (y1), sys1: 54.31%, sys2: 70.57%.

Используйте данные оценки для оценки модели, а затем вычислите прогнозируемые выходные данные модели и модель предиктора с помощью predict команда. Смоделировать модель предиктора для воспроизведения прогнозируемых выходных данных.

Данные оценки нагрузки.

load iddata3 z3
data = z3;

Оцените полиномиальную модель по данным.

sys = polyest(z3,[2 2 2 0 0 1]);

Спрогнозировать отклик системы с использованием горизонта прогнозирования 4.

K = 4;
[yp,ic,sysp] = predict(sys,data,K);

yp - прогнозируемый отклик модели, ic содержит предполагаемые начальные условия, и sysp является моделью предиктора.

Моделирование модели предиктора с вводами [data.OutputData,data.InputData] и начальные условия ic.

opt = simOptions;
opt.InitialCondition = ic;
ys = sim(sysp,[data.OutputData,data.InputData],opt);

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

t = yp.SamplingInstants;
plot(t,yp.OutputData,'b',t,ys,'.r');
legend('Predicted Output','Simulated Output')

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

Включите начальные условия, полученные ранее, в прогноз модели.

Загрузите данные.

load iddata1ic z1i

Укажите опцию оценки ARMAX для оценки начального состояния.

estimOpt = armaxOptions('InitialCondition','estimate');

Оценка модели ARMAX и возврат initialCondition объект ic инкапсулирует начальные условия в форме state-space.

na = 2;
nb = 2;
nc = 2;
nk = 1;
[sys,ic] = armax(z1i,[na nb nc nk],estimOpt);

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

predictOpt = predictOptions('InitialCondition',ic);

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

y = predict(sys,z1i,predictOpt);
plot(z1i,y)
legend('Measured Data','Predicted Response')

Figure contains 2 axes. Axes 1 with title y1 contains 2 objects of type line. These objects represent Measured Data, Predicted Response. Axes 2 with title u1 contains an object of type line. This object represents Measured Data.

Измеренные и прогнозируемые ответы показывают хорошее согласие в начале прогноза.

Выполните прогнозирование модели с использованием исторических данных для задания начальных условий. Вы сначала прогнозируете, используя predict и укажите исторические данные с помощью predictOptions набор опций. Затем прогнозируемый отклик воспроизводится путем сопоставления исторических данных с начальными состояниями вручную.

Загрузите набор данных с двумя входами и одним выходом.

load iddata7 z7

Определение модели пространства состояния пятого порядка с использованием данных.

sys = n4sid(z7,5);

Разбейте набор данных на две части.

zA = z7(1:15);
zB = z7(16:end);

Предположим, что требуется вычислить 10-пошаговое прогнозирование ответа идентифицированной системы на данные zB. Для исходных условий используйте значения сигнала в zA в качестве исторической записи. То есть входные и выходные значения для времени, непосредственно предшествующего данным в zB.

IO = struct('Input',zA.InputData,'Output',zA.OutputData);
opt = predictOptions('InitialCondition',IO);

Создание 10-ступенчатого прогноза для данных zB используя указанные исходные условия и predict.

[yp,x0,Predictor] = predict(sys,zB,10,opt);

yp - прогнозируемый отклик модели, x0 - начальные состояния, соответствующие модели предиктора; Predictor. Можно моделировать Predictor использование x0 в качестве исходных условий для воспроизведения yp.OutputData.

Теперь воспроизведите выходные данные, вручную сопоставив исторические данные начальным состояниям. Для этого минимизируйте одношаговые ошибки прогнозирования за период времени zA.

x0est = data2state(sys,zA);

x0est содержит значения пяти состояний sys в момент непосредственно после последней выборки данных в zA.

Predictor имеет больше состояний, чем исходная система из-за 10-ступенчатого горизонта прогнозирования. Укажите дополнительные состояния, вызванные горизонтом, как нулевые начальные значения, а затем добавьте x0est.

x0Predictor = zeros(order(Predictor),1);
x0Predictor(end-4:end) = x0est;

Моделирование предиктора с помощью [zB.OutputData,zB.InputData] в качестве входного сигнала и x0Predictor в качестве исходных условий.

uData = [zB.OutputData,zB.InputData]; % signals required for prediction
[ysim,t,xsim] = lsim(Predictor,uData,[],x0Predictor);

Постройте график прогнозируемого выхода predict команда yp.OutputData и вычисленные вручную результаты ysim.

plot(t,yp.OutputData,t,ysim, '.')

Figure contains an axes. The axes contains 2 objects of type line.

ysim является таким же, как yp.OutputData.

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

свернуть все

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

  • Линейная модель - idpoly, idproc, idss, idtf, или idgrey

  • Нелинейная модель - idnlgrey, idnlhw, или idnlarx

    Когда sys является idnlhw или idnlgrey модель, прогнозируемый выход yp совпадает с смоделированным ответом, вычисленным с помощью data.InputData в качестве входных данных.

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

Измеренные входные-выходные данные, указанные как одно из следующих:

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

  • Матрица двойников - для моделей с Nu входами и Ny выходами укажите data в виде матрицы N-by- (Ny + Nu). Где N - количество наблюдений.

    Для данных временных рядов укажите матрицу N-by-Ny.

Горизонт прогнозирования, указанный как одно из следующих значений:

  • Положительное целое число - вывод yp вычисляется K шаги в будущее, где K представляет собой кратное data время выборки.

    Выходной сигнал в момент времени t вычисляется с использованием ранее измеренных выходов до времени t-K и вводы вплоть до момента времени t.

  • Inf - В расчетах не используются предыдущие выходы, и predict возвращает тот же результат, что и при моделировании с помощью sim команда.

Для моделей с ошибками вывода нет различий между K прогнозирование шага вперед и смоделированные выходные данные. Это связано с тем, что модели выходных данных (Output) - ошибок используют только прошлые входные данные для прогнозирования будущих выходных данных.

Примечание

Для тщательной проверки модели, прогноз на один шаг вперед (K = 1) обычно не является хорошим тестом для проверки модели sys за временной промежуток измеренных данных. Даже тривиальный предсказатель на один шаг вперед, y ^ (t) = y (t − 1), может дать хорошие прогнозы. Таким образом, плохая модель может выглядеть хорошо для одношагового прогнозирования данных, которые имеют небольшое время выборки. Прогноз сK = Inf, что аналогично выполнению моделирования с помощью sim команда может привести к расходящимся выходам, поскольку подчеркиваются низкочастотные возмущения в данных, особенно для моделей с интеграцией. Использовать K значение между 1 и Inf для регистрации среднечастотного поведения измеряемых данных.

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

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

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

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

свернуть все

Прогнозируемый выходной отклик, возвращаемый как один из следующих:

  • iddata object - Когда data является iddata объект. OutputData имущество yp сохраняет значения прогнозируемых выходных данных. Переменная времени принимает значения в диапазоне, представленном data.SamplingInstants.

  • Матрица дублей - Когда data является матрицей двойников.

Выходной сигнал в момент времени t вычисляется с использованием ранее измеренных выходов до времени t-K и вводы вплоть до момента времени t. Другими словами, прогнозируемый отклик в момент времени r измеренных данных хранится в r+K-1 образец yp. Обратите внимание, что в момент времени r, будущие входные данные u(r+1), u(r+2),..., u(r+K) Предполагается, что необходимые для прогнозирования являются известными. Для данных нескольких экспериментов, yp содержит прогнозируемый набор данных для каждого эксперимента. Временной интервал прогнозируемых выходных данных совпадает с интервалом наблюдаемых данных.

Когда sys задается с помощью idnlhw или idnlgrey модель, yp совпадает с смоделированным ответом, вычисленным с помощью data.InputData в качестве входных данных.

Оцененные начальные условия, соответствующие модели предиктора sys_pred, возвращенный как вектор столбца, initialCondition объект или массив ячеек.

  • Если sys является линейной передаточной функцией или полиномиальной моделью, то ic является initialCondition объект. initialCondition объект инкапсулирует свободный ответ sys, в форме state-space, с соответствующим вектором начального состояния.

  • Если sys - любой другой тип линейной или нелинейной динамической модели, то ic - вектор начального состояния, возвращаемый в виде вектора столбца размера, равного числу состояний.

  • Если data содержит данные мультиэксперимента, затем ic - массив ячеек размером Ne, где Ne - количество экспериментов.

Для воспроизведения результатов прогнозирования можно смоделировать sys_pred использование ic в качестве исходных условий. Пример см. в разделе Воспроизведение результатов прогнозирования с помощью моделирования.

Если sys является idnlarx модель, ic возвращается пустым.

Модель предиктора, возвращенная как динамическая модель системы. Для данных нескольких экспериментов, sys_pred представляет собой массив моделей с одной записью для каждого эксперимента. Можно использовать модель предиктора sys_pred и предполагаемые начальные условия ic для воспроизведения результатов прогнозирования:

  • Если sys является линейной моделью, модель предиктора возвращается как модель того же типа, что и sys или как версия модели в пространстве состояний (idss). Для воспроизведения результатов прогнозирования смоделировать sys_pred использование [data.OutputData data.InputData] в качестве входных данных и ic в качестве исходных условий. Выходные данные моделирования совпадают с прогнозируемыми выходными данными. yp.OutputData. Пример см. в разделе Воспроизведение результатов прогнозирования с помощью моделирования.

  • Когда sys является нелинейной серо-коробчатой моделью (idnlgrey) или модель Хаммерштейна-Винера (idnlhw), шумовая составляющая модели тривиальна, и поэтому модель предсказателя та же, что и модель. sys_pred возвращается пустым. Для воспроизведения результатов прогнозирования смоделировать sys с использованием исходных условий ic. Для определения состояний idnlhw модели, см. Определение состояний idnlhw.

  • Если sys является нелинейной моделью ARX (idnlarx), sys_pred и ic возвращаются пустыми. Воспроизведение результатов прогнозирования с помощью моделирования невозможно.

Для данных дискретного времени, которые являются данными временной или частотной области с временем выборки Ts больше нуля, sys_pred является дискретно-временной моделью, даже если sys является моделью непрерывного времени.

Совет

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

    • Системы - выберите системы для просмотра прогнозируемого ответа. По умолчанию отображается отклик всех систем.

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

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

      • Пиковое значение - просмотр абсолютного пикового значения данных. Применимо только для данных временной области.

      • Пиковый отклик - просмотр пикового отклика данных. Применимо только для данных частотного отклика.

      • Среднее значение - просмотр среднего значения данных. Применимо только для данных временной области.

    • Show - только для данных частотной области и частотного отклика.

      • Величина - просмотр величины частотной характеристики системы.

      • Фаза - просмотр фазы частотной характеристики системы.

    • Показать данные проверки (Show Validation Data) - печать данных, используемых для прогнозирования реакции модели.

    • Группировка ввода-вывода - для наборов данных, содержащих несколько входных или выходных каналов. Выберите группировку каналов ввода и вывода на графике.

      • Нет - постройте график каналов ввода-вывода в отдельных осях.

      • All - группировать все входные каналы вместе и все выходные каналы вместе.

    • Селектор ввода-вывода - для наборов данных, содержащих более одного входного или выходного канала. Выберите подмножество входных и выходных каналов для печати. По умолчанию печатаются все выходные каналы.

    • Сетка (Grid) - добавление сеток на график.

    • Нормализовать (Normalize) - нормализация масштаба y всех данных на графике.

    • Полный вид (Full View) - возврат к полному виду. По умолчанию график масштабируется до полного вида.

    • Горизонт прогнозирования (Prediction Horizon) - установка горизонта прогнозирования или выбор моделирования.

    • Исходное условие (Initial Condition) - определение обработки исходных условий. Неприменимо для данных частотного отклика.

      Укажите одно из следующих значений:

      • Оценка - рассматривать исходные условия как параметры оценки.

      • Ноль (Zero) - установите все начальные условия равными нулю.

      • Поглощать задержки и оценивать - поглощать ненулевые задержки в коэффициенты модели и рассматривать исходные условия как параметры оценки. Эта опция используется только для моделей дискретного времени.

    • График прогнозируемого ответа - график прогнозируемого ответа модели. По умолчанию отображается график ответа.

    • График ошибок прогнозирования - график ошибок между откликом модели и данными прогнозирования.

    • Свойства (Properties) - открытие диалогового окна Редактор свойств (Property Editor) для настройки атрибутов печати.

Представлен до R2006a