Примечание
Если вы оценили линейную модель из детрендированных данных и хотите симулировать или предсказать выход в исходных условиях работы, используйте retrend
чтобы добавить данные тренда назад в моделируемый или предсказанный выход.
Команда | Описание | Пример |
---|---|---|
compare |
Определите, насколько точно реакция моделируемой модели соответствует измеренному выходному сигналу. Графики моделировали или предсказывали выход одной или нескольких моделей поверх измеренного результата. Вы должны использовать независимый набор данных валидации в качестве входных данных для модели. |
Чтобы построить пятиэтапный предсказанный выход модели compare(data,mod,5) Примечание Опускание третьего аргумента принимает бесконечный горизонт и приводит к сравнению симулированного отклика на входные данные. |
sim |
Симулируйте и постройте график только выходов модели. |
Чтобы симулировать реакцию модели sim(model,data) |
predict |
Спрогнозируйте и постройте график только выхода модели. |
Чтобы выполнить одноэтапное предсказание отклика для модели predict(model,data,1) Используйте следующий синтаксис для вычисления yhat = predict(m,[y u],k)
|
forecast |
Прогнозируйте временные ряды в будущее. |
Чтобы предсказать значение временных рядов в произвольном количестве шагов в будущее, используйте следующую команду: forecast(model,past_data,K) Здесь, |
Процесс вычисления моделируемых и предсказанных откликов в временной области значений начинается с использования начальных условий для вычисления первых нескольких выходных значений. sim
, forecast
, и predict
команды обеспечивают опции и настройки по умолчанию для обработки начальных условий.
Симуляция: Начальные условия по умолчанию равны нулю для всех типов модели, кроме idnlgrey
модель, начальными условиями по умолчанию которой являются начальные состояния внутренней модели (свойство модели x0
). Можно задать другие начальные условия, используя InitialCondition
опция симуляции. Для получения дополнительной информации об опциях симуляции см. simOptions
.
Используйте compare
команда для проверки моделей путем симуляции, потому что его алгоритм оценивает начальные состояния модели, чтобы оптимизировать подгонку модели заданному набору данных. Вы также можете использовать compare
чтобы вернуть предполагаемые начальные условия для последующей симуляции и сравнения с тем же набором данных. Эти начальные условия могут быть в форме начального вектора состояний (модели в пространстве состояний) или initialCondition
объект (передаточная функция или полиномиальные модели.)
Если вы используете sim
чтобы подтвердить качество идентифицированной модели, необходимо использовать входной сигнал из валидации набора данных, а также принять во внимание начальные эффекты условия. Моделируемое и измеренные отклики отличаются в первых нескольких выборках, если выход набора данных валидации содержит начальные эффекты условия, которые не захватываются при симуляции модели. Чтобы минимизировать это различие, оцените начальные значения состояния или initialCondition
моделировать из данных используя либо findstates
(модели пространства состояний) или compare
(все модели LTI) и задайте эти начальные состояния используя InitialCondition
опция симуляции (см. simOptions
). Например, вычислите начальные состояния, которые оптимизируют подгонку модели m
к выходу данным в z
:
% Estimate the initial states X0est = findstates(m,z); % Simulate the response using estimated initial states opt = simOptions('InitialCondition',X0est); sim(m,z.InputData,opt)
Для примера получения и использования initialCondition
модели, см. Применение начальных условий при симуляции идентифицированных линейных моделей.
Предсказание: Начальные условия по умолчанию зависят от типа модели. Можно задать другие начальные условия, используя InitialCondition
опция (см. predictOptions
). Например, вычислите начальные состояния, которые оптимизируют 1-ступенчатый предсказанный ответ модели m
к выходу данных z
:
opt = predictOptions('InitialCondition','estimate'); [Yp,IC] = predict(m,z,1,opt);
Эта команда возвращает предполагаемые начальные условия в качестве выходного аргумента IC
. Для получения информации о других способах задания начальных состояний смотрите predictOptions
страница с описанием.
Этот пример показывает, как симулировать модель пространства состояний в непрерывном времени с помощью случайного двоичного входного сигнала u
и шаг расчета 0.1 s
.
Рассмотрим следующую модель пространства состояний:
где e - Гауссов белый шум с отклонением 7.
Создайте модель пространства состояний в непрерывном времени.
A = [-1 1; -0.5 0]; B = [1;0.5]; C = [1 0]; D = 0; K = [0.5;0.5]; % Ts = 0 indicates continuous time model_ss = idss(A,B,C,D,K,'Ts',0,'NoiseVariance',7);
Создайте случайный двоичный вход.
u = idinput(400,'rbs',[0 0.3]);
Создайте iddata
объект с пустым выходом, чтобы представлять только входной сигнал.
data = iddata([],u); data.ts = 0.1;
Симулируйте выход с помощью модели
opt = simOptions('AddNoise',true);
y = sim(model_ss,data,opt);
В этом примере показано, как можно создать входные данные и модель, а затем использовать данные и модель для симуляции выходных данных.
В этом примере вы создаете следующую модель ARMAX с Гауссовым шумом e:
Затем вы моделируете выходные данные со случайным двоичным входом u
.
Создайте модель ARMAX.
m_armax = idpoly([1 -1.5 0.7],[0 1 0.5],[1 -1 0.2]);
Создайте случайный двоичный вход.
u = idinput(400,'rbs',[0 0.3]);
Симулируйте выходные данные.
opt = simOptions('AddNoise',true);
y = sim(m_armax,u,opt);
The 'AddNoise'
опция задает включение в симуляцию Гауссова e шума
присутствует в модели. Установите эту опцию равной false
(поведение по умолчанию), чтобы симулировать ответ без шума на вход u
, что эквивалентно установке e
в нуль.
compare
| forecast
| predict
| sim