Проверьте онлайн-оценку состояния в Simulink

После того, как вы используете 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Блок осциллятор Ван дер Поля реализует генератор с параметром нелинейности mu, равным 1. Генератор имеет два состояния. Шумное измерение первого состояния x1 доступно.

Модель использует Сигма-точечный фильтр Калмана блока, чтобы оценить состояния генератора. Поскольку блок требует входов в дискретном времени, блок Rate Transition выборок x1 чтобы дать дискретизированное выходное измерение yMeasured[k] в временной шаг k. Блок Сигма-точечный Фильтр Калмана выводит оцененные значения состояния xhat[k|k] в временной шаг k, использование yMeasured до k времени. Блок фильтра использует ранее записанные и сохраненные функции перехода и измерения состояния, vdpStateFcn.m и vdpMeasurementFcn.m. Для получения информации об этих функциях см. «Нелинейная оценка состояния с использованием сигма-точечного фильтра Калмана и фильтра частиц».

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

Чтобы вычислить невязки, блок Generate Leastual сначала вычисляет предполагаемый выход 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 - функция измерения для вашей системы.

См. также

| | |

Похожие темы