trackingMSCEKF

Расширенный Фильтр Калмана для отслеживания объекта в модифицированных сферических координатах (MSC)

Описание

trackingMSCEKF объект представляет расширенный фильтр Калмана (EKF) для отслеживания объекта в модифицированных сферических координатах (MSC) с помощью измерений только для угла от одного наблюдателя. Используйте фильтр, чтобы предсказать будущее местоположение объекта в системе координат MSC или сопоставить несколько обнаружений объектов с их дорожками. Можно задать маневр наблюдателя или ускорение, требуемое функциями изменения состояния (@constantvelmsc и @constantvelmscjac) при помощи ObserverInput свойство.

Следующие свойства фиксируются для trackingMSCEKF объект:

  • StateTransitionFcn - @constvelmsc

  • StateTransitionJacobianFcn - @constvelmscjac

  • MeasurementFcn - @cvmeasmsc

  • MeasurementJacobianFcn - @cvmeasmscjac

  • HasAdditiveProcessNoise ложь

  • HasAdditiveMeasurementNoise TRUE

Создание

Описание

mscekf = trackingMSCEKF возвращает расширенный Фильтр Калмана, чтобы использовать функции изменения состояния и измерения MSC с объектными средствами отслеживания. State по умолчанию подразумевает статическую цель на уровне 1 метра от наблюдателя в нулевом азимуте и вертикальном изменении.

пример

mscekf = trackingMSCEKF(Name,Value) задает свойства фильтра с помощью одного или нескольких Name,Value парные аргументы. Любые незаданные свойства берут значения по умолчанию.

Свойства

развернуть все

Состояние фильтра в виде M с действительным знаком - вектор элемента.

  • Для 2D отслеживания M равен четыре, и четырехмерное состояние: [az;azRate;1/r;rDot/r].

    Для 3-D отслеживания M равен шесть, и шестимерное состояние: [az;azRate;el;elRate;1/r;rDot/r].

az и el азимут и угол возвышения в радианах. azRate и elRate азимут и вертикальное изменение угловой уровень в радианах в секунду. r область значений в метрах и rDot уровень области значений в метрах в секунду.

Если вы хотите фильтр с переменными с плавающей точкой с одинарной точностью, задаете State как векторная переменная с одинарной точностью. Например,

filter = trackingMSCEKF('State',single([10;.2;13;.4]))

Типы данных: single | double

Ошибочная ковариация состояния в виде M-by-M матрица, где M является размером состояния фильтра. Скалярный вход расширен к M-by-M матрица. Ковариационная матрица представляет неопределенность в состоянии фильтра. M является любой 4 для 2D отслеживания или 6 для 3-D отслеживания.

Пример: eye(6)

Это свойство доступно только для чтения.

Функция изменения состояния в виде указателя на функцию. Эта функция вычисляет вектор состояния на временном шаге k от вектора состояния на временном шаге k –1. Для trackingMSCEKF объект, функция перехода фиксируется к @constvelmsc.

Типы данных: function_handle

Это свойство доступно только для чтения.

Якобиан изменения состояния функционирует в виде указателя на функцию. Эта функция имеет те же входные параметры как функция изменения состояния. Для trackingMSCEKF объект, якобиан функции перехода фиксируется к @constvelmsc.

Типы данных: function_handle

Ковариация шума процесса в виде Q-by-Q матрица. Q является любой 2 или 3. Шум процесса представляет неопределенность на ускорении цели.

Задайте ProcessNoise перед любым вызовом predict функция. В более поздних вызовах predict, можно опционально задать шум процесса как скаляр. В этом случае матрица шума процесса является кратной Q-by-Q единичная матрица.

Пример: [1.0 0.05; 0.05 2]

Ускорение или маневр наблюдателя в виде трехэлементного вектора. Чтобы задать ускорение, используйте вектор M/2, где M является любой 4 для 2D отслеживания или 6 для 3-D отслеживания. Чтобы задать маневр, дайте M - вектор элемента.

Пример: [1;2;3]

Это свойство доступно только для чтения.

Шум аддитивного процесса модели в виде false. Для trackingMSCEKF объект, это свойство фиксируется к false.

Это свойство доступно только для чтения.

Модель Measurement функционирует в виде указателя на функцию, @cvmeasmsc. Входом к функции является M - вектор состояния элемента. Выходом является N - вектор измерения элемента. Для trackingMSCEKF объект, функция модели измерения фиксируется к @cvmeasmsc.

Типы данных: function_handle

Это свойство доступно только для чтения.

Якобиан измерения функционирует в виде указателя на функцию. Функция имеет те же входные параметры как функция измерения. Для trackingMSCEKF объект, якобиан функции измерения фиксируется к @cvmeasmscjac.

Типы данных: function_handle

Ковариация шума измерения в виде положительной скалярной величины или положительно-определенной матрицы с действительным знаком. Когда задано как скаляр, матрица является кратной N-by-N единичная матрица. N является размером вектора измерения.

Задайте MeasurementNoise перед любым вызовом correct функция.

Пример: 0.2

Это свойство доступно только для чтения.

Шум аддитивного процесса модели в виде true. Для trackingMSCEKF объект, это свойство фиксируется к true.

Включите сглаживание состояния в виде false или true. Установка этого свойства к true требует лицензии Sensor Fusion and Tracking Toolbox™. Когда задано как true, вы можете:

  • Используйте smooth функция, обеспеченная в Sensor Fusion and Tracking Toolbox, чтобы сглаживать оценки состояния на предыдущих шагах. Внутренне, фильтр хранит результаты предыдущих шагов, чтобы позволить назад сглаживать.

  • Задайте максимальное количество сглаживания шагов с помощью MaxNumSmoothingSteps свойство фильтра отслеживания.

Максимальное количество обратного сглаживания продвигается в виде положительного целого числа.

Зависимости

Чтобы включить это свойство, установите EnableSmoothing свойство к true.

Функции объекта

predictПредскажите ошибочную ковариацию оценки состояния и оценки состояния отслеживания фильтра
correctФильтр отслеживания использования правильного состояния и ковариации ошибки оценки состояния
correctjpdaФильтр отслеживания использования правильного состояния и ковариации ошибки оценки состояния и JPDA
distanceРасстояния между текущими и предсказанными измерениями отслеживания фильтра
likelihoodВероятность измерения от отслеживания фильтра
cloneСоздайте фильтр отслеживания копии
residualНевязка измерения и остаточный шум от отслеживания фильтра
initializeИнициализируйте состояние и ковариацию отслеживания фильтра
smoothНазад сглаживайте оценки состояния отслеживания фильтра

Примеры

свернуть все

В этом примере показано, как сделать расширенный фильтр Калмана (EKF) для отслеживания объекта в модифицированных сферических координатах (MSC). Создайте фильтр, предскажите состояние и откорректируйте оценку состояния с помощью наблюдений измерения.

Создайте фильтр для 3-D модели движения. Задайте оценки состояния для системы координат MSC.

az = 0.1; % in radians
azRate = 0;
r = 1000;
rDot = 10;
el = 0.3; % in radians
elRate = 0;
omega = azRate*cos(el);

mscekf = trackingMSCEKF('State',[az;omega;el;elRate;1/r;rDot/r]);

Предскажите состояние фильтра использование постоянного ускорения наблюдателя.

mscekf.ObserverInput = [1;2;3];
predict(mscekf); % Default time 1 second.
predict(mscekf,0.1); % Predict using dt = 0.1 second.

Откорректируйте состояние фильтра использование измерения только для угла.

meas = [5;18]; % measured azimuth and elevation in degrees
correct(mscekf,meas);

Ссылки

[1] Aidala, V. и Хаммель, S., 1983. Использование модифицированных полярных координат для отслеживания только для подшипников. Транзакции IEEE на Автоматическом управлении, 28 (3), pp.283-294.

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

| | | |

Введенный в R2018b