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-by-R единичная матрица, где R является количеством измерений.

Пример: 0.2

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

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

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

Примеры

свернуть все

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

Создайте три EKFs каждый с состоянием, распределенным вокруг [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] Alspach, Дэниел и Гарольд Соренсон. "Нелинейная Байесова оценка с помощью Гауссовых приближений суммы". Транзакции IEEE на Автоматическом управлении. Издание 17, № 4, 1972, стр 439–448.

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

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

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

| | | |

Введенный в R2018b