Вы идентифицируете модель так, чтобы можно было точно вычислить ответ динамической системы на вход. Существует два способа сгенерировать идентифицированный ответ модели:
Simulation вычисляет ответ модели с помощью входных данных и начальных условий.
Prediction вычисляет ответ модели в некотором заданном количестве времени в будущем с помощью текущих и прошлых значений измеренных значений ввода и вывода, а также начальных условий.
В системе идентификации цель состоит в том, чтобы создать реалистическую модель динамической системы, которая может затем использоваться или передаваться для цели приложения. В этом контексте основные роли симуляции и предсказания в System Identification Toolbox™ должны обеспечить инструменты для идентификации модели, и также для выбора, настройки и проверки этих моделей.
Вы можете:
Идентифицируйте свою модель способом, который минимизирует или предсказание (prediction focus) или ошибку симуляции (simulation focus)
Визуализируйте свой ответ модели по сравнению с другими моделями и с измерениями данных
Подтвердите свою модель путем сравнения ее ответа с измеренными данными о вводе/выводе, которые не использовались в исходной оценке модели
Ваш выбор симуляции или подхода предсказания зависит от того, что ваши потребности приложения, но также и где вы находитесь в рабочем процессе системы идентификации:
Когда вы идентифицируете свои модели, особое внимание предсказания с одним шагом обычно приводит к лучшим результатам. Это преимущество состоит в том, потому что при помощи обоих измерений ввода и вывода предсказание с одним шагом составляет природу воздействий. Составление воздействий обеспечивает наиболее статистически оптимальные результаты.
Когда вы подтверждаете свои модели, симуляция обычно обеспечивает более проницательный подход для оценки, как ваша модель выполнит под широким спектром условий. Ваше приложение может управлять основанной на предсказании валидацией также, как бы то ни было. Например, если вы планируете использовать свою модель в системе управления, можно подтвердить модель путем предсказания ее ответа за период времени, который представляет постоянные времени доминирования модели.
Можно работать или во временном интервале или в частотном диапазоне, и остаться сопоставимыми с областью данных о вводе/выводе. Для данных частотного диапазона результаты симуляции являются продуктами преобразования Фурье входа и функции частоты модели. Поскольку идентификация модели частотной характеристики игнорирует шумовую динамику, особое внимание симуляции и особое внимание предсказания с одним шагом дают к той же идентифицированной модели. Для валидации в частотном диапазоне используйте симуляцию.
Для примеров см.:
Можно получить более подробное понимание различий между симуляцией и предсказанием путем применения этих методов к простой системе первого порядка.
Simulation означает вычислять ответ модели с помощью входных данных и начальных условий. Выборки времени ответа модели совпадают с выборками времени входных данных, используемых в симуляции. Другими словами, учитывая входные параметры u (t 1, …, tN), симуляция генерирует y (t 1, …, tN). Следующая схема иллюстрирует этот поток.
Для системы непрерывного времени симуляция означает решать дифференциальное уравнение. Для системы дискретного времени симуляция означает непосредственно применение уравнений модели.
Например, считайте динамическую модель описанной разностным уравнением первого порядка, которое использует шаг расчета 1 секунды:
y (t +1) = a y (t) + b u (t),
где y является выход, и u является входом.
Эта система эквивалентна следующей блок-схеме.
Предположим, что ваша идентификация модели предоставляет вам предполагаемые значения параметров a = 0.9 и b = 1.5. Затем уравнение становится:
y (t +1) = 0.9y (t) + 1.5u (t).
Теперь предположите, что вы хотите вычислить значения y (1), y (2), y (3)... для данных входных значений u (0) = 2, u (1) = 1, u (2) = 4, … Здесь, y (1) является значением выхода в первый момент выборки. Используя начальное условие y (0) = 0, значения y (t) в течение многих времен t = 1, 2, и 3 может быть вычислен как:
y (1) = 0.9y (0) + 1.5u (0) = (0.9) (0) + (1.5) (2) = 3
y (2) = 0.9y (1) + 1.5u (1) = (0.9) (3) + (1.5) (1) = 4.2
y (3) = 0.9y (2) + 1.5u (2) = (0.9) (4.2) + (1.5) (4) = 9.78
Prediction означает проектировать ответ модели, k продвигается вперед в будущее с помощью текущих и прошлых значений измеренных значений ввода и вывода. k называется prediction horizon и соответствует предсказанию выхода во время k Ts, где Ts является шагом расчета. Другими словами, учитывая измеренные входные параметры um (t 1, …, t N +k) и измеренные выходные параметры ym (t 1, …, t N), предсказание генерирует yp (tN+k).
Например, предположите, что вы используете датчики, чтобы измерить входной сигнал um (t) и выходной сигнал ym (t) физической системы, описанной в предыдущем уравнении первого порядка. Уравнение становится:
yp (t +1) = a ym (t) + b um (t),
где y является выход, и u является входом.
Версия предиктора предыдущей блок-схемы симуляции:
В 10-й момент выборки (t = 10), измеренный выход ym (10) составляет 16 мм, и соответствующий вход um (10) составляет 12 Н. Теперь вы хотите предсказать значение выхода в будущее время t = 11. Используя предыдущее уравнение, предсказанный выход yp:
yp (11) = 0.9ym (10) + 1.5um (10)
Следовательно, ожидаемое значение будущего выхода y (11) во время t = 10:
yp (11) = 0.9*16 + 1.5*12 = 32.4
В общем случае, чтобы предсказать ответ модели k продвигается в будущее (k ≥1) с текущего времени t, необходимо знать входные параметры до времени t +k и выходные параметры до времени t:
yp (t +k) = f (um (t +k), um (t +k–1)..., um (t), um (t –1)..., um (0),
ym (t), ym (t –1), ym (t –2)..., ym (0))
um (0) и ym (0) являются начальными состояниями. f()
представляет predictor, который является динамической моделью, форма которой зависит от структуры модели.
Предиктор "один шаг вперед" от предыдущего примера, yp модели y (t) + a y (t –1) = b u (t):
yp (t +1) = –ayp (t) + b um (t +1)
В этом простом случае предиктора с одним шагом новейшее предсказание базируется только на измерениях. Для предикторов нескольких-шагов динамическая модель распространяет состояния внутренне, с помощью предыдущих предсказанных состояний в дополнение к входным параметрам. Каждый предсказанный выход поэтому является результатом комбинации измеренного входа и выходных параметров и предыдущих предсказанных выходных параметров.
Можно установить k на любое положительное целочисленное значение до количества выборок результатов измерений. Если вы устанавливаете k на ∞, то никакие предыдущие выходные параметры не используются в расчете предсказания, и предсказание возвращает тот же результат как симуляция. Если вы устанавливаете k на целое число, больше, чем количество выборок данных, predict
наборы k к Inf
и выдает предупреждение. Если ваше намерение состоит в том, чтобы выполнить предсказание в области значений времени вне прошлого момента результатов измерений, используйте forecast
.
Для предсказания показа в качестве примера и симуляции в MATLAB®, смотрите, Сравнивают Предсказанный и Симулированный Ответ Идентифицированной Модели к Результатам измерений.
Не все модели поддерживают прогнозирующий подход. Для предыдущей динамической модели, , структура поддерживает использование прошлых данных. Эта поддержка не существует в моделях структуры Ошибки на выходе (OE) (H (z) = 1
). Нет никакой информации в мимо выходных параметров, которые могут использоваться в предсказании будущих выходных значений. В этих случаях совпадают предсказание и симуляция. Даже модели, которые обычно используют прошлую информацию, могут все еще иметь структуру OE в особых случаях. Модели в пространстве состояний (idss
) имейте структуру OE когда K=0
. Полиномиальные модели (idpoly
) также имейте структуру OE, когда a=c=d=1
. В этих особых случаях предсказание и симуляция эквивалентны, и возмущение фиксируется к 1
.
В этом примере показано, как визуализировать и предсказанный ответ модели и симулированный ответ модели идентифицированной линейной модели.
Идентифицируйте модель в пространстве состояний третьего порядка с помощью измерений ввода/вывода в z1
.
load iddata1 z1; sys = ssest(z1,3);
sys
идентифицированное пространство состояний непрерывного времени (idss
) модель. Здесь, sys
идентифицирован с помощью особого внимания предсказания с 1 шагом по умолчанию, которое минимизирует ошибку предсказания с 1 шагом. Это особое внимание обычно предоставляет лучшую полную модель.
Теперь используйте compare
построить предсказанный ответ. В данном примере установите горизонт предсказания kstep
к 10 шагам и использованию compare
построить предсказанный ответ против исходных данных об измерении. Эта установка kstep
указывает, что каждая точка ответа является 10 шагами в будущем относительно данных об измерении, используемых, чтобы предсказать ту точку.
kstep = 10; figure compare(z1,sys,kstep)
В этом графике каждая точка данных представляет предсказанный выход, сопоставленный с выходными данными об измерении, которые были сделаны по крайней мере 10 шагов ранее. Например, точка в t=15 секунды основана на измерениях, проведенных в или до t=5 секунд.
График иллюстрирует различия между ответом модели и исходными данными. Процент в легенде является значением фитнеса NRMSE. Это представляет, как тесно предсказанная модель выводила соответствия данные.
Чтобы улучшить ваши результаты, можно уменьшать горизонт предсказания.
kstep = 5; figure compare(z1,sys,kstep)
Значение фитнеса NRMSE улучшилось от значения фитнеса, полученного в случае с 10 шагами. В реальном приложении существуют различные факторы, которые влияют, насколько маленький горизонт предсказания может быть. Они включают постоянные времени и требования предвидения приложения.
Можно просмотреть симулированный ответ для сравнения, а не предсказанный ответ, при помощи kstep
значение по умолчанию для compare
, который является Inf
. С симуляцией расчет ответа использует только входные данные, не измеренные выходные данные.
figure compare(z1,sys)
Симулированный и предсказанные ответы с 10 шагами дают к подобным полным подходящим процентам.
Чтобы изменить параметры отображения в графике, щелкните правой кнопкой по графику получить доступ к контекстному меню. Например, чтобы построить ошибку между предсказанным выходом и измеренным выходом, выберите Error Plot из контекстного меню.
В этом примере показано, как идентифицировать, что модели с предсказанием фокусируются и с особым вниманием симуляции. Сравните ответы особого внимания предсказания и моделей особого внимания симуляции против исходных данных об оценке, и против данных о валидации, которые не использовались в оценке.
Когда вы идентифицируете модель, алгоритм использует 'Focus'
опция, чтобы определить, минимизировать ли ошибку предсказания или ошибку симуляции. Значением по умолчанию является 'prediction'
. Можно изменить это путем изменения 'Focus'
опция к 'simulation
'.
Загрузите данные об измерении z1
, и разделите его на две половины z1e
и z1v
. Одна половина используется в идентификации модели и другой половине для проверки допустимости модели.
load iddata1 z1; %z1e = z1(1:150); %To avoid ordqz stall %z1v = z1(151:300); z1e = z1(1:155); z1v = z1(156:300);
Идентифицируйте модель в пространстве состояний третьего порядка sys_pf
использование измерений ввода/вывода в z1e
. Используйте опцию опции по умолчанию 'Focus' в этой модели, которая является 'предсказанием'.
sys_pf = ssest(z1e,3);
sys_pf
идентифицированное пространство состояний непрерывного времени (idss
) модель.
Используя тот же набор данных об измерении, идентифицируйте вторую модель в пространстве состояний sys_sf
который устанавливает 'Focus'
к 'simulation'
.
opt = ssestOptions('Focus','simulation'); sys_sf = ssest(z1e,3,opt);
Используйте compare
функция, чтобы симулировать ответ на обе идентифицированных модели.
figure compare(z1e,sys_pf,sys_sf)
Модель, идентифицированная с прогнозирующим особым вниманием, имеет более высокое значение подгонки NRMSE, чем модель, идентифицированная с особым вниманием симуляции.
Теперь выполните сравнение с данными о валидации. Это сравнение показывает, как хорошо модель выполняет с условиями, которые не были частью ее идентификации.
figure compare(z1v,sys_pf,sys_sf)
Подходящие значения для обеих моделей улучшаются. Однако модель с особым вниманием предсказания остается выше, чем модель с особым вниманием симуляции.
compare
| forecast
| predict
| sim