После выполнения оценки состояния нелинейной системы с использованием линейных, расширенных или незаметных алгоритмов фильтра Калмана или фильтра частиц необходимо проверить оценку перед развертыванием кода в приложении. Если проверка указывает на низкую достоверность оценки, проверьте указанные ниже свойства фильтра.
Начальное состояние и значения ковариации состояний - если вы обнаружите, что измеренные и расчетные выходы вашей системы расходятся в начале оценки состояния, проверьте указанные исходные значения.
Функции перехода и измерения состояния - убедитесь, что указанные функции являются хорошим представлением нелинейной системы. Если истинная система является непрерывной, для реализации алгоритмов необходимо дискретизировать уравнения перехода и измерения состояния и использовать дискретизированные версии. Если результаты оценки состояния неудовлетворительны, рассмотрите возможность уменьшения времени выборки, используемого для дискретизации. В качестве альтернативы попробуйте использовать другой метод дискретизации. Для примера дискретизации функции перехода состояния непрерывного времени введите edit vdpStateFcn.m в командной строке. См. также Нелинейная оценка состояния с использованием неописанного фильтра Калмана и фильтра частиц.
Ковариационные значения шума процесса и измерения - если разница между расчетными и измеренными выходами вашей системы велика, попробуйте указать различные значения ковариационных значений шума процесса и измерения.
Выбор алгоритма - если используется расширенный алгоритм фильтра Калмана, вместо него можно попробовать использовать незараженный фильтр Калмана или алгоритм фильтра частиц. Незаметный фильтр Калмана и фильтр частиц могут лучше улавливать нелинейности в системе.
Для устранения неполадок при оценке состояния можно создать несколько версий фильтра с различными свойствами, выполнить оценку состояния и выбрать фильтр, который дает наилучшие результаты проверки.
Если в командной строке требуется скопировать существующий объект фильтра, а затем изменить свойства скопированного объекта, используйте команду clone команда. Не создавать дополнительные объекты с помощью синтаксиса obj2 = obj. Любые изменения, внесенные в свойства нового объекта, созданного таким образом (obj2) также изменить свойства исходного объекта (obj).