predict

Предскажите K-шаг вперед выход модели

Описание

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

пример

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

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

пример

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

пример

[yp,x0,sys_pred] = predict(___) также возвращает ориентировочные значения для начальных состояний x0 и модель 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');

В качестве альтернативы, чтобы отобразить предсказанные данные об ответе и оценке на графике, используйте 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);

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

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

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

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

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

load iddata3 z3
data = z3;

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

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

Предскажите отклик системы с помощью горизонта предсказания 4.

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

yp предсказанный ответ модели, x0 ориентировочная стоимость для начальных состояний и sysp модель предиктора.

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

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

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

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

Выполните предсказание модели с помощью исторических данных, чтобы задать начальные условия. Вы сначала предсказываете использование 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, '.')

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 'SampleTime' .

    Выход в момент времени 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 получать среднечастотное поведение результатов измерений.

Опции предсказания в виде 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 предиктора, возвращенный как вектор-столбец размера равняются количеству состояний. Если data мультиэксперимент, x0 массив ячеек размера Ne, где Ne является количеством экспериментов. Можно симулировать sys_pred использование x0 как начальные условия, чтобы воспроизвести результаты предсказания. Для примера смотрите, Воспроизводят Результаты Предсказания Симуляцией.

Если вы задаете opt.InitialCondition как 'z', начальные условия данных не оцениваются и x0 равняется 0.

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

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

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

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

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

Для данных дискретного времени, которые являются временным интервалом или данными частотного диапазона с шагом расчета 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