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

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

Примечание

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

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

| | |

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

Больше о