Симулируйте и предскажите идентифицированный Выход Модели

Вы идентифицируете модель так, чтобы можно было точно вычислить ответ динамической системы на вход. Существует два способа сгенерировать идентифицированный ответ модели:

  • 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®, смотрите Выдерживают сравнение Предсказанный и Симулированный отклик Идентифицированной Модели к Результатам измерений.

Ограничения на предсказание

Не все модели поддерживают прогнозирующий подход. Для предыдущей динамической модели, H(z)=11+az1, структура поддерживает использование прошлых данных. Эта поддержка не существует в моделях структуры Ошибки на выходе (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)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent z1 (y1), sys: 70.53%.

В этом графике каждая точка данных представляет предсказанный выход, сопоставленный выходными данными об измерении, которые были сделаны по крайней мере 10 шагов ранее. Например, точка в t=15 секунды основана на измерениях, проведенных в или до t=5 секунд.

График иллюстрирует различия между ответом модели и исходными данными. Процент в легенде является значением фитнеса NRMSE. Это представляет, как тесно предсказанная модель выводила соответствия данные.

Чтобы улучшить ваши результаты, можно уменьшать горизонт предсказания.

kstep = 5;
figure
compare(z1,sys,kstep)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent z1 (y1), sys: 73.1%.

Значение фитнеса NRMSE улучшилось от значения фитнеса, полученного в случае с 10 шагами. В реальном приложении существуют различные факторы, которые влияют, насколько маленький горизонт предсказания может быть. Они включают постоянные времени и требования предвидения приложения.

Можно просмотреть симулированный отклик для сравнения, а не предсказанный ответ, при помощи kstep значение по умолчанию для compare, который является Inf. С симуляцией расчет ответа использует только входные данные, не измеренные выходные данные.

figure
compare(z1,sys)

Figure contains an axes object. The axes object contains 2 objects of type line. These objects represent z1 (y1), sys: 70.56%.

Симулированный и предсказанные ответы с 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)

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent z1e (y1), sys\_pf: 63%, sys\_sf: 62.76%.

Модель, идентифицированная с прогнозирующим особым вниманием, имеет более высокое значение подгонки NRMSE, чем модель, идентифицированная с особым вниманием симуляции.

Теперь выполните сравнение с данными о валидации. Это сравнение показывает, как хорошо модель выполняет с условиями, которые не были частью ее идентификации.

figure
compare(z1v,sys_pf,sys_sf)

Figure contains an axes object. The axes object contains 3 objects of type line. These objects represent z1v (y1), sys\_pf: 64.45%, sys\_sf: 63.56%.

Подходящие значения для обеих моделей улучшаются. Однако модель с особым вниманием предсказания остается выше, чем модель с особым вниманием симуляции.

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

| | |

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте