Если вы оценили линейную модель из детрендированных данных, и хотят симулировать или предсказать выход при исходных условиях операции, использовать 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
команда, чтобы подтвердить модели симуляцией, потому что ее алгоритм оценивает, что начальные состояния модели оптимизируют подгонку модели к набору определенных данных.
Если вы используете sim
, симулированный и измеренные ответы могут отличаться, когда начальные условия предполагаемой модели и системы, которая измерила набор данных валидации, отличаются — особенно в начале ответа. Чтобы минимизировать это различие, оцените значения начального состояния из данных с помощью findstates
и задайте эти начальные состояния с помощью 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
опция (см. predictOptions
). Например, вычислить начальные состояния, которые оптимизируют этот 1 шаг вперед, предсказало ответ модели m
к выходным данным z
:
opt = predictOptions('InitialCondition','estimate'); [Yp,X0est] = predict(m,z,1,opt);
Эта команда возвращает предполагаемые начальные состояния как выходной аргумент X0est
. Для получения информации о других способах задать состояния инициалов, смотрите 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
обнулять.
compare
| forecast
| predict
| sim