предсказать

Предскажите K-шаг вперед образцовый вывод

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

Синтаксис

yp = predict(sys,data,K)
yp = predict(sys,data,K,opt)
[yp,x0,sys_pred] = predict(___)
predict(sys,data,K,___)
predict(sys,Linespec,data,K,___)
predict(sys1,...,sysN,data,K,___)
predict(sys1,Linespec1,...,sysN,LinespecN,data,K,___)

Описание

пример

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

Команда 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.

    Вывод в момент времени, который 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