trackingGSF

Гауссов-суммарный фильтр для отслеживания объектов

Описание

The trackingGSF объект представляет собой Гауссов-суммарный фильтр, предназначенный для отслеживания объектов. Можно задать функцию плотности вероятностей состояний набором конечных Гауссовых суммарных компонентов. Используйте этот фильтр для отслеживания объектов, которые требуют мультимодельного описания из-за неполной наблюдаемости состояния через измерения. Для примера этот фильтр может использоваться как параметризованный в диапазоне расширенный фильтр Калмана, когда обнаружение содержит только измерения угла.

Создание

Описание

gsf = trackingGSF возвращает фильтр Гауссова сумма с двумя расширенными фильтрами Калмана с постоянной скоростью (trackingEKF) с равным начальным весом.

пример

gsf = trackingGSF(trackingFilters) задает Гауссовы компоненты фильтра в trackingFilters. Начальные веса фильтров приняты равными.

gsf = trackingGSF(trackingFilters,modelProbabilities) задает начальный вес Гауссовых компонентов в modelProbabilities и устанавливает ModelProbabilities свойство.

gsf = trackingGSF(___,'MeasurementNoise',measNoise) задает шум измерения фильтра. The MeasurementNoise свойство устанавливается для каждого Гауссова компонента.

Свойства

расширить все

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

Взвешенная оценка состояния фильтра, заданная как действительный вектор M -элемент. Это состояние оценивается на основе взвешенной комбинации фильтров в TrackingFilters. Использование ModelProbabilities для изменения весов.

Пример: [200;0.2]

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

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

Ковариация ошибки состояния, заданная как положительно-определенная матрица M вещественным значением -by- M, где M является размером состояния фильтра. Ковариационная матрица представляет неопределенность в состоянии фильтра. Эта ковариация состояния оценивается на основе взвешенной комбинации фильтров в TrackingFilters. Использование ModelProbabilities для изменения весов.

Пример: [20 0.1; 0.1 1]

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

Список фильтров, заданный как массив ячеек отслеживающих фильтров. Задайте эти фильтры при создании объекта. По умолчанию фильтры имеют равную вероятность. Задайте modelProbabilities если фильтры имеют другие вероятности.

Примечание

Состояние каждого фильтра должно быть одинаковым по размеру и иметь одинаковый физический смысл.

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

Вес каждого фильтра, заданный как вектор вероятностей от 0 до 1. По умолчанию вес каждого компонента фильтра равен.

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

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

Задайте MeasurementNoise перед любым вызовом correct функция. После первого вызова в correctможно опционально задать шум измерения как скаляр. В этом случае матрица шума измерения является произведением единичной матрицы R -by R, где R - количество измерений.

Пример: 0.2

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

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

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

Примеры

свернуть все

В этом примере показано, как создать и запустить trackingGSF фильтр. Задайте три расширенных фильтра Калмана (EKF) в качестве компонентов фильтра Гауссова-суммы. Вызовите predict и correct функции для отслеживания объекта и корректировки оценки состояния на основе измерений.

Создайте три EKF каждый с состоянием, распределенным вокруг [0;0;0;0;0;0] и вращение по позиционным измерениям. Задайте их как вход в trackingGSF фильтр.

filters = cell(3,1);
filter{1} = trackingEKF(@constvel,@cvmeas,rand(6,1),'MeasurementNoise',eye(3));
filter{2} = trackingEKF(@constvel,@cvmeas,rand(6,1),'MeasurementNoise',eye(3));
filter{3} = trackingEKF(@constvel,@cvmeas,rand(6,1),'MeasurementNoise',eye(3));
gsf = trackingGSF(filter);

Функции predict получить предсказанное состояние и ковариацию фильтра. Используйте временной шаг 0.1 сек.

[x_pred, P_pred] = predict(gsf,0.1);

Функции correct с заданным измерением.

meas = [0.5;0.2;0.3];
[xCorr,pCorr] = correct(gsf,meas);

Вычислите расстояние между фильтром и другим измерением.

d = distance(gsf,[0;0;0]);

Ссылки

[1] Альспах, Дэниел и Гарольд Соренсон. Нелинейная байесовская оценка с использованием Гауссовых суммарных приближений. Транзакции IEEE по автоматическому управлению. Том 17, № 4, 1972, с. 439-448.

[2] Ristic, B., Arulampalam, S. and McCarthy, J., 2002. Целевой анализ движения с использованием измерений только для области значений: алгоритмы, эффективность и применение к данным ISAR. Обработка сигналов, 82 (2), стр. 273-296.

[3] Персик, Н. «Отслеживание только подшипников с использованием набора параметризованных в диапазоне расширенных фильтров Калмана». IEE Processions-Control Theory and Applications 142, No. 1 (1995): 73-80.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.
Введенный в R2018b