Симуляция и предсказание в командной строке

Симуляция и команды предсказания

Примечание

Если вы оценили линейную модель из детрендированных данных, и хотят симулировать или предсказать выход при исходных условиях операции, использовать retrend добавить данные о тренде назад в симулированный или предсказанный выход.

КомандаОписаниеПример
compare

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

Графики симулированный или предсказанный выход одной или нескольких моделей сверх измеренного выхода. Необходимо использовать независимый набор данных валидации, как введено для модели.

Построить "пять шагов вперед" предсказало выход модели mod против данных о валидации data, используйте следующую команду:

compare(data,mod,5)

Примечание

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

sim

Симулируйте и постройте выход модели только.

Симулировать ответ модели model использование входных данных data, используйте следующую команду:

sim(model,data)
predict

Предскажите и постройте выход модели только.

Выполнять предсказание "один шаг вперед" ответа для модели model и входные данные data, используйте следующую команду:

predict(model,data,1)

Используйте следующий синтаксис, чтобы вычислить k- неродной вперед предсказание выходного сигнала с помощью модели m:

yhat = predict(m,[y u],k)

predict вычисляет результаты предсказания только в области значений времени data. Это не предсказывает результаты вне доступной области значений данных.

forecast

Предскажите временные ряды в будущее.

Чтобы предсказать значение временных рядов в произвольном числе шагов в будущее, используйте следующую команду:

forecast(model,past_data,K)

Здесь, 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.

Рассмотрите следующую модель в пространстве состояний:

x˙=[-11-0.50]x+[10.5]u+[0.50.5]ey=[10]x+e

где 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:

y(t)-1.5y(t-1)+0.7y(t-2)=u(t-1)+0.5u(t-2)+e(t)-e(t-1)+0.2e(t-1)

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

Смотрите также

| | |

Связанные примеры

Больше о