exponenta event banner

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

После использования расширенного фильтра Калмана (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 является функцией измерения для системы.

См. также

| | |

Связанные темы