Поиск и устранение проблем с оценкой состояния в режиме онлайн

После выполнения оценки состояния нелинейной системы с помощью линейных, расширенных, или сигма-точечного фильтра Калмана, или алгоритмов фильтра частиц, вы подтверждаете оценку перед развертыванием кода в вашем приложении. Если валидация указывает на низкое доверие оценки, проверьте следующие заданные вами свойства фильтра:

  • Начальное состояние и ковариационные значения состояния - Если вы обнаруживаете, что измеренные и оцененные выходы вашей системы расходятся в начале оценки состояния, проверяйте заданные начальные значения.

  • Функции перехода и измерения состояний - Проверьте, что заданные вами функции являются хорошим представлением нелинейной системы. Если истинная система является непрерывной, для реализации алгоритмов вы дискретизируете переходы и уравнения измерения и используете дискретизированные версии. Если результаты оценки состояния не удовлетворительны, рассмотрите уменьшение шага расчета, используемого для дискретизации. Также попробуйте другой метод дискретизации. Для примера того, как дискретизировать функцию перехода состояния в непрерывном времени, введите edit vdpStateFcn.m в командной строке. Также см., Оценка нелинейного состояния с использованием сигма-точечного фильтра Калмана и фильтра частиц.

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

  • Выбор алгоритма - Если вы используете расширенный алгоритм фильтра Калмана, можно попробовать сигма-точечный фильтр Калмана или вместо этого алгоритм фильтра частиц. Сигма-точечный фильтр Калмана и фильтр частиц могут лучше захватывать нелинейности в системе.

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

В командной строке, если вы хотите скопировать существующий объект фильтра и затем изменить свойства скопированного объекта, используйте clone команда. Не создавать дополнительные объекты с помощью синтаксиса obj2 = obj. Любые изменения, внесенные в свойства нового объекта, созданные таким образом (obj2) также измените свойства исходного объекта (obj).

См. также

Функции

Блоки

Похожие темы