Этот пример показывает, как использовать фильтр Калмана для оценки положения и скорости самолета на основе шумных радиолокационных измерений.
Пример модели имеет три основные функции. Он генерирует положение, скорость и ускорение самолета в полярных (дальномерных) координатах; он добавляет шум измерения для моделирования неточных показаний датчиком; и он использует фильтр Калмана, чтобы оценить положение и скорость по шумным измерениям.
Запустите модель. В конце симуляции на рисунке отображается следующая информация:
- Фактическая траектория по сравнению с предполагаемой траекторией
- Расчетная невязка для области значений
- фактические, измеренные и оценочные положения в X (Север-Юг) и Y (Восток-Запад);
Оценка положения и скорости самолета осуществляется подсистемой 'Radar Kalman Filter'. Эта подсистема производит выборку шумных измерений, преобразует их в прямоугольные координаты и отправляет их как вход в блок DSP System Toolbox™ Kalman Filter.
Блок Фильтр Калмана производит два выхода в этом приложении. Первый - это оценка фактической позиции. Этот выход преобразуется назад в полярные координаты, поэтому его можно сравнить с измерением, чтобы получить невязку, различие между оценкой и измерением. Блок Фильтр Калмана сглаживает измеренные данные о положении, чтобы получить свою оценку фактического положения.
Второй выход блока Фильтр Калмана является оценкой состояния самолета. В этом случае состояние состоит из четырех чисел, которые представляют положение и скорость в координатах X и Y.
Блок Фильтр Калмана работает лучше всего, когда у него есть точная оценка положения и скорости самолета, но с учетом времени он может компенсировать плохую начальную оценку. Чтобы увидеть это, измените запись для параметра Initial condition for estimated state в фильтре Калмана. Правильное значение начальной скорости в направлении Y составляет 400. Попробуйте изменить оценку на 100 и запустите модель снова.
Заметьте, что невязка области значений намного больше, и оценка 'E-W Position' сначала неточна. Постепенно невязка становится меньше, и положение становится более точным, когда собирается больше измерений.
В настоящей модели шум, добавленный к оценке области значений, довольно мал по сравнению с конечной областью значений. Максимальная амплитуда шума составляет 300 футов по сравнению с максимальным диапазоном 40 000 футов. Попробуйте увеличить амплитуду шума области значений до большего значения, например, в 5 раз больше этой величины или в 1500 футов путем изменения первого компонента параметра Gain в блоке 'Meas. Noise Intensity' Gain.
Заметьте, что синие линии, представляющие предполагаемые положения, отошли от красных линий, представляющих фактические положения, и кривые стали намного более 'bumpy' и 'jagged'. Мы можем частично компенсировать неточность, предоставив блоку Фильтр Калмана лучшую оценку шума измерения. Попробуйте задать параметр Измерения ковариации шума блока Фильтра Калмана равным 1500 и запустите модель снова.
Заметьте, что, когда оценка шума измерения лучше, кривые оценки положения E-W и N-S становятся более гладкими. Кривая положения N-S теперь последовательно недооценивает положение. Учитывая, насколько шумны измерения по сравнению со значением N-S координаты, это ожидаемое поведение.
Пример модели Radar Tracking Using MATLAB Function Block (Simulink) 'sldemo _ radar _ eml' использует ту же начальную симуляцию движения цели и выполняет отслеживание посредством использования расширенного фильтра Калмана, реализованного с использованием блока MATLAB Function.