Подтвердите онлайновую оценку состояния в командной строке

После того, как вы используете extendedKalmanFilter, unscentedKalmanFilter или команды particleFilter для онлайновой оценки состояния нелинейной системы, подтверждаете оценку прежде, чем развернуть код в вашем приложении. Если валидация указывает на низкую уверенность в оценке, то смотрите Поиск и устранение неисправностей Онлайновая Оценка состояния для следующих шагов. После того, как вы подтвердили онлайновые результаты оценки, можно сгенерировать код C/C++ или автономное приложение с помощью программного обеспечения MATLAB Compiler™ или MATLAB® Coder™.

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

  • Получите выходные данные из своей системы в различных условиях работы и входных значениях — Чтобы гарантировать, что оценка работает хорошо под всеми условиями работы интереса. Например, предположите, что вы хотите отследить положение и скорость автомобиля с помощью шумных измерений положения. Измерьте данные на различных скоростях автомобиля и медленных и резких маневрах.

  • Для каждых условий работы интереса получите несколько наборов экспериментальных или моделируемых данных с различной шумовой реализацией — Чтобы гарантировать, что различные шумовые значения не ухудшают производительность оценки.

Для каждого из этих сценариев проверьте производительность фильтра путем исследования выходной оценки погрешности оценки и ошибки оценки состояния. Для примера о выполнении и проверке онлайновой оценки состояния, смотрите, что Нелинейная Оценка состояния Использует Сигма-точечный фильтр Калмана и Фильтр частиц.

Исследуйте Выходную ошибку оценки

Выходная ошибка оценки является различием между измеренным выводом, y, и предполагаемым выводом, yEstimated. Можно получить предполагаемый вывод на каждом временном шаге при помощи функции измерения системы. Например, если vdpMeasurementFcn.m является функцией измерения для вашей нелинейной системы, и вы выполняете оценку состояния с помощью расширенного объекта Фильтра Калмана, obj, можно вычислить предполагаемый вывод с помощью оценок текущего состояния как:

yEstimated = vdpMeasurementFcn(obj.State);
estimationError = y-yEstimated;

Здесь obj.State является значением состояния x^[k|k1] после того, как вы оцениваете состояния с помощью команды predict. x^[k|k1] предсказанная оценка состояния за время k, оцененное использование измеряло вывод до предыдущего раза k-1.

Ошибки оценки (невязки) должны иметь следующие характеристики:

  • Маленькое значение — Небольшие ошибки относительно размера выходных параметров увеличивают уверенность в ориентировочных стоимостях.

  • Нулевое среднее значение

  • Низкая автокорреляция, кроме в нулевой задержке — Чтобы вычислить автокорреляцию, можно использовать команду xcorr MATLAB.

Исследуйте ошибку оценки состояния на моделируемые данные

Когда вы моделируете выходные данные своей нелинейной системы и используете те данные для оценки состояния, вы знаете истинные значения состояния. Можно вычислить ошибки между предполагаемыми и истинными значениями состояния и анализировать ошибки. Предполагаемое значение состояния в любое время продвигается, значение, сохраненное в obj.State после того, как вы оцениваете состояния с помощью команды correct или predict. Ошибки оценки состояния должны удовлетворить следующие характеристики:

  • Маленькое значение

  • Нулевое среднее значение

  • Низкая автокорреляция, кроме в нулевой задержке

Можно также вычислить ковариацию ошибки оценки состояния и сравнить его с ошибочной ковариацией оценки состояния, сохраненной в свойстве StateCovariance фильтра. Подобные значения увеличивают уверенность в производительности фильтра.

Смотрите также

| |

Похожие темы