trackingGSF

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

Описание

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

Создание

Синтаксис

gsf = trackingGSF
gsf = trackingGSF(trackingFilters)
gsf = trackingGSF(trackingFilters,modelProbabilities)
gsf = trackingGSF(___,'MeasurementNoise',measNoise)

Описание

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

пример

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

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

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Расстояния между измерениями и предсказанными измерениями
residualНевязка измерения и остаточный шум
cloneСкопируйте фильтр для объектного отслеживания
initializeИнициализируйте состояние и ковариацию фильтра

Примеры

свернуть все

Этот пример показывает, как создать и запустить фильтр 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 на Автоматическом управлении. Vol 17, № 4, 1972, стр 439-448.

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

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

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

| | | |

Введенный в R2018b