exponenta event banner

Моделирование и прогнозирование в командной строке

Команды моделирования и прогнозирования

Примечание

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

См. также

| | |

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

Подробнее