После того, как вы используете Extended Kalman Filter, Unscented Kalman Filter или блоки Particle Filter для онлайновой оценки состояния нелинейной системы, подтверждаете оценку прежде, чем развернуть код в вашем приложении. Если валидация указывает на низкое доверие к оценке, то смотрите Поиск и устранение неисправностей Онлайновая Оценка состояния для следующих шагов. После того, как вы подтвердили онлайновые результаты оценки, можно сгенерировать код 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) из программного обеспечения DSP System Toolbox™.
Когда вы симулируете выходные данные своей нелинейной системы и используете те данные для оценки состояния, вы знаете истинные значения состояния. Можно вычислить ошибки между предполагаемыми и истинными значениями состояния и анализировать ошибки. Предполагаемое значение состояния в любое время шаг выводится в порте xhat блоков. Ошибки оценки состояния должны удовлетворить следующим характеристикам:
Маленькая величина
Нулевое среднее значение
Низкая автокорреляция, кроме в нулевой задержке
Можно также вычислить ковариацию ошибки оценки состояния и сравнить его с ошибочной ковариацией оценки состояния, которая выводится блоками в порте P блоков. Подобные значения увеличивают доверие к эффективности фильтра.
В этом примере показано, как оценить состояния Осциллятора Ван дер Поля дискретного времени и вычислить ошибки оценки состояния и остаточные значения для проверки оценки. Остаточные значения являются выходными ошибками расчета, то есть, они - различие между измеренными и предполагаемыми выходными параметрами.
В модели Simulink™ vdpStateEstimModel
, блок 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
функция измерения для вашей системы.
Kalman Filter | Extended Kalman Filter | Unscented Kalman Filter | Particle Filter