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

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

Примечание

Если вы оценили линейную модель из детрендированных данных, и хотят симулировать или предсказать выход при исходных условиях операции, использовать 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 команда, чтобы подтвердить модели симуляцией, потому что ее алгоритм оценивает, что начальные состояния модели оптимизируют подгонку модели к набору определенных данных. Можно также использовать 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.

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

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 обнулять.

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

| | |

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

Больше о