После использования расширенного фильтра Калмана (Extended Kalman Filter), блоков фильтра Калмана (Uncented 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]однако выходные данные можно вычислить с использованием оценочных значений состояния и функций перехода и измерения состояния. Пример см. в разделах Вычислить остатки и Ошибки оценки состояния.
Остатки должны иметь следующие характеристики:
Малая величина - небольшие ошибки относительно размера выходов повышают уверенность в оценочных значениях.
Нулевое среднее
Низкая автокорреляция, за исключением нулевого времени задержки - для вычисления автокорреляции можно использовать блок автокорреляции (DSP System Toolbox) из программного обеспечения DSP System Toolbox™.
При моделировании выходных данных нелинейной системы и использовании этих данных для оценки состояния известны истинные значения состояния. Можно вычислить ошибки между оцененными и истинными значениями состояния и проанализировать ошибки. Оцененное значение состояния на любом временном шаге выводится на порт xhat блоков. Ошибки оценки состояния должны удовлетворять следующим характеристикам:
Малая звёздная величина
Нулевое среднее
Низкая автокорреляция, за исключением нулевой задержки по времени
Можно также вычислить ковариацию ошибки оценки состояния и сравнить ее с ковариацией ошибки оценки состояния, которая выводится блоками в P-порте блоков. Аналогичные значения повышают надежность работы фильтра.
Этот пример показывает, как оценить состояния дискретного генератора Ван-дер-Пол и вычислить ошибки оценки состояния и остатки для проверки достоверности оценки. Остатки представляют собой ошибки оценки выхода, то есть они представляют собой разницу между измеренными и оцененными выходами.
В модели Simulink™ vdpStateEstimModel, блок Van der Pol Осциллятор реализует осциллятор с параметром нелинейности, mu, равным 1. Генератор имеет два состояния. Шумное измерение первого состояния x1 доступен.
Для оценки состояния осциллятора в модели используется блок «Фильтр Калмана». Поскольку блок требует дискретных временных входов, отсчеты блока Rate Transition x1 для получения дискретизированного выходного измерения yMeasured[k] на шаге времени k. Блок фильтра Калмана без запаха выводит оценочные значения состояния xhat[k|k] на шаге времени k, использование yMeasured до времени k. Блок фильтра использует ранее записанные и сохраненные функции перехода и измерения состояния. vdpStateFcn.m и vdpMeasurementFcn.m. Сведения об этих функциях см. в разделе Нелинейная оценка состояния с использованием нескучного фильтра Калмана и фильтра частиц.

Для проверки оценки состояния модель вычисляет остатки в блоке «Генерировать остаток». Кроме того, поскольку истинные значения состояния известны, модель также вычисляет ошибки оценки состояния.
Для вычисления остаточных значений блок «Генерировать остаточные значения» сначала вычисляет расчетный выходной сигнал. yPredicted[k|k-1] использование расчетных состояний и функций перехода и измерения состояний. Здесь, yPredicted[k|k-1] - расчетный выходной сигнал на временном шаге k, прогнозируемый с использованием выходных измерений до временного шага k-1. Затем блок вычисляет остаток на шаге времени. k как yMeasured[k] - yPredicted[k|k-1].

Проверьте остатки и ошибки оценки состояния и убедитесь, что они имеют малую величину, нулевое среднее и низкую автокорреляцию.
В этом примере выводится блок фильтра Калмана без запаха xhat[k|k] поскольку выбран параметр Использовать текущие измерения для улучшения оценок состояния блока. Если этот параметр снят, вместо него выводится блок xhat[k|k-1], прогнозируемое значение состояния на шаге времени k, использование yMeasured до времени k-1. В этом случае вычислите yPredicted[k|k-1] = MeasurementFcn(xhat[k|k-1]), где MeasurementFcn является функцией измерения для системы.
Расширенный фильтр Калмана | Фильтр Калмана | Фильтр частиц | Незараженный фильтр Калмана