exponenta event banner

trackingGSF

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

Описание

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

Создание

Описание

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

пример

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

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

gsf = trackingGSF(___,'MeasurementNoise',measNoise) определяет шум измерения фильтра. 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-на-R-тождественной, где R - количество измерений.

Пример: 0.2

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

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

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

Примеры

свернуть все

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

Создание трех ЭКФ с распределенным состоянием [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.

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2018b