После того, как вы используете Расширенный Фильтр Калмана, Сигма-точечный фильтр Калмана или блоки Фильтра частиц для онлайновой оценки состояния нелинейной системы, подтверждаете оценку прежде, чем развернуть код в вашем приложении. Если валидация указывает на низкую уверенность в оценке, то смотрите Поиск и устранение неисправностей Онлайновая Оценка состояния для следующих шагов. После того, как вы подтвердили онлайновые результаты оценки, можно сгенерировать код C/C++ для блоков с помощью программного обеспечения Simulink® Coder™.
Чтобы подтвердить производительность вашего фильтра, выполните использование оценки состояния измеренные или моделируемые выходные данные из этих сценариев.
Получите выходные данные из своей системы в различных условиях работы и входных значениях — Чтобы гарантировать, что оценка работает хорошо под всеми условиями работы интереса. Например, предположите, что вы хотите отследить положение и скорость автомобиля с помощью шумных измерений положения. Измерьте данные на различных скоростях автомобиля и медленных и резких маневрах.
Для каждых условий работы интереса получите несколько наборов экспериментальных или моделируемых данных с различной шумовой реализацией — Чтобы гарантировать, что различные шумовые значения не ухудшают производительность оценки.
Для каждого из этих сценариев проверьте производительность фильтра путем исследования ошибки оценки состояния и невязок.
Невязка или выходная ошибка оценки, является различием между измеренной системой вывод yMeasured[k]
и предполагаемой системой вывод yPredicted[k|k-1]
на временном шаге k
. Здесь, yPredicted[k|k-1]
является предполагаемый вывод на временном шаге k
, который предсказан с помощью выходных измерений до временного шага k-1
.
Блоки не делают явным образом вывода yPredicted[k|k-1]
, однако можно вычислить вывод с помощью предполагаемых значений состояния и функций изменения состояния и измерения. Для примера смотрите, Вычисляют Ошибки Оценки состояния и Невязки.
Невязки должны иметь следующие характеристики:
Маленькое значение — Небольшие ошибки относительно размера выходных параметров увеличивают уверенность в ориентировочных стоимостях.
Нулевое среднее значение
Низкая автокорреляция, кроме в нулевой задержке — Чтобы вычислить автокорреляцию, можно использовать блок Autocorrelation от программного обеспечения DSP System Toolbox™.
Когда вы моделируете выходные данные своей нелинейной системы и используете те данные для оценки состояния, вы знаете истинные значения состояния. Можно вычислить ошибки между предполагаемыми и истинными значениями состояния и анализировать ошибки. Предполагаемое значение состояния в любое время шаг выводится в порте xhat блоков. Ошибки оценки состояния должны удовлетворить следующие характеристики:
Маленькое значение
Нулевое среднее значение
Низкая автокорреляция, кроме в нулевой задержке
Можно также вычислить ковариацию ошибки оценки состояния и сравнить его с ошибочной ковариацией оценки состояния, которая выводится блоками в порте P блоков. Подобные значения увеличивают уверенность в производительности фильтра.
Этот пример показывает, как оценить состояния Осциллятора Ван дер Поля дискретного времени и вычислить ошибки оценки состояния и невязки для проверки оценки. Невязки являются выходными ошибками оценки, то есть, они - различие между измеренными и предполагаемыми выходными параметрами.
В модели Simulink™ блок Van der Pol Oscillator реализует осциллятор с параметром нелинейности, mu, равный 1. Осциллятор имеет два состояния. Шумное измерение первого x1
состояния доступно.
Модель использует блок Unscented Kalman Filter, чтобы оценить состояния осциллятора. Поскольку блок требует, чтобы входные параметры дискретного времени, выборки блока Rate Transition x1
дали дискретизированному выходному измерению yMeasured[k]
на временном шаге k
. Блок Unscented Kalman Filter выводит предполагаемые значения состояния xhat[k|k]
на временном шаге k
, с помощью yMeasured
до времени k
. Блок фильтра использует ранее записанные и сохраненные функции изменения состояния и измерения, vdpStateFcn.m
и vdpMeasurementFcn.m
. Для получения информации об этих функциях смотрите, что Нелинейная Оценка состояния Использует Сигма-точечный фильтр Калмана и Фильтр частиц.
Чтобы подтвердить оценку состояния, модель вычисляет невязки в блоке Generate Residual. Кроме того, поскольку истинные значения состояния известны, модель также вычисляет ошибки оценки состояния.
Чтобы вычислить невязки, блок Generate Residual сначала вычисляет предполагаемый вывод yPredicted[k|k-1]
с помощью предполагаемых состояний и функций измерения и изменения состояния. Здесь, yPredicted[k|k-1]
является предполагаемый вывод на временном шаге k
, предсказанное использование выходные измерения до временного шага k-1
. Блок затем вычисляет невязку на временном шаге k
как yMeasured[k]
- yPredicted[k|k-1]
.
Исследуйте невязки и ошибки оценки состояния, и гарантируйте, что они имеют маленькое значение, обнуляют среднее значение и низкую автокорреляцию.
В этом примере, блок Unscented Kalman Filter выходные параметры xhat[k|k]
, потому что Использование текущие измерения, чтобы улучшить оценочный параметр состояния блока выбрано. Если вы очищаете этот параметр, блок вместо этого выходные параметры xhat[k|k-1]
, предсказанное значение состояния на временном шаге k
, с помощью yMeasured
до времени k-1
. В этом случае вычислите yPredicted[k|k-1] = MeasurementFcn(xhat[k|k-1])
, где MeasurementFcn
является функцией измерения для вашей системы.
Расширенный фильтр Калмана | Фильтр Калмана | Фильтр частиц | Сигма-точечный фильтр Калмана