Примечание
Если вы оценили линейную модель из детрендированных данных, и хотят симулировать или предсказать выход при исходных условиях операции, использовать 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);
'AddNoise'
опция задает, чтобы включать в симуляцию Гауссов шумовой e
существующий в модели. Установите эту опцию на false
(поведение по умолчанию), чтобы симулировать бесшумный ответ на вход u
, который эквивалентен установке e
обнулять.
sim
| predict
| forecast
| compare