predict

Предскажите выходK-step-ahead модели

Описание

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

пример

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

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,___) использует тип линии, символ маркера и цвет, заданный для каждой модели.

Примеры

свернуть все

Симулируйте данные timeseries.

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 object. The axes object 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 object. The axes object contains 2 objects of type line. These objects represent data (y1), sys1, sys2.

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

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

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

Figure contains an axes object. The axes object 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 object. The axes object contains 2 objects of type line. These objects represent Predicted Output, Simulated Output.

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

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

load iddata1ic z1i

Задайте опцию оценки ARMAX, чтобы оценить начальное состояние.

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

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

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 objects. Axes object 1 with title y1 contains 2 objects of type line. These objects represent Measured Data, Predicted Response. Axes object 2 with title u1 contains an object of type line. This object represents Measured Data.

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

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

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

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.

Теперь воспроизведите выход путем ручного отображения исторических данных с начальными состояниями. Для этого минимизируйте ошибки предсказания с 1 шагом по отрезку времени 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 object. The axes object 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 объект — Использование наблюдало сигналы ввода и вывода создать iddata объект. Для данных timeseries (никакие входные параметры), задайте как iddata объект без входных параметров iddata(output,[]).

  • Матрица удваивается — модели For withNu входные параметры и Ny выходные параметры, задайте data как N (Ny +Nu) матрица. Где, N является количеством наблюдений.

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

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

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

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

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

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

Примечание

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

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

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

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

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

свернуть все

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

  • iddata объект — Когда 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, в форме пространства состояний, с соответствующим вектором начального состояния.

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

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

Чтобы воспроизвести результаты предсказания, можно симулировать sys_pred использование ic как начальные условия. Для примера смотрите, Воспроизводят Результаты Предсказания Симуляцией.

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

Модель Predictor, возвращенная как модель динамической системы. Для данных мультиэксперимента, 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 модель непрерывного времени.

Советы

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

    • Systems — Выберите системы, чтобы просмотреть предсказанный ответ. По умолчанию ответ всех систем построен.

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

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

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

      • Peak Response — Просмотрите максимальную чувствительность данных. Применимый для данных частотной характеристики только.

      • Mean Value — Просмотрите среднее значение данных. Применимый для данных временного интервала только.

    • Show Для частотного диапазона и данных частотной характеристики только.

      • Magnitude — Просмотрите величину частотной характеристики системы.

      • Фаза Phase — View частотной характеристики системы.

    • Show Validation Data — Отобразите на графике данные, используемые, чтобы предсказать ответ модели.

    • Наборы данных I/O Grouping — For, содержащие больше чем один канал ввода или вывода. Выберите группировку графиков входного и выходного каналов на графике.

      • 'none' Постройте каналы ввода-вывода в их собственных отдельных осях.

      • Все Соберите в группу все входные каналы, и весь выход образовывает канал вместе.

    • Наборы данных I/O Selector — For, содержащие больше чем один канал ввода или вывода. Выберите подмножество графиков входного и выходного каналов, чтобы построить. По умолчанию все выходные каналы построены.

    • Сетка Добавьте сетки в график.

    • Normalize — Нормируйте y-шкалу всех данных в графике.

    • Full View — Возвратитесь к полному представлению. По умолчанию график масштабируется к полному представлению.

    • Prediction Horizon — Установите горизонт предсказания или выберите симуляцию.

    • Initial Condition — Задайте обработку начальных условий. Не применимый для данных частотной характеристики.

      Задайте как одно из следующего:

      • Estimate — Обработайте начальные условия как параметры оценки.

      • Zero — Обнулите все начальные условия.

      • Absorb delays and estimate — Поглотите ненулевые задержки в коэффициенты модели и обработайте начальные условия как параметры оценки. Используйте эту опцию для моделей дискретного времени только.

    • Predicted Response Plot — Постройте предсказанный ответ модели. По умолчанию график отклика показывают.

    • Prediction Error Plot — Постройте ошибку между ответом модели и данными о предсказании.

    • Свойства Откройте диалоговое окно Property Editor, чтобы настроить атрибуты графика.

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