fusecovint

Ковариационное слияние с использованием ковариационного пересечения

Описание

пример

[fusedState,fusedCov] = fusecovint(trackState,trackCov) преобразует состояния дорожки в trackState и соответствующие им ковариационные матрицы trackCov. Функция вычисляет сросшееся состояние и ковариацию как пересечение отдельных ковариаций. Он создает выпуклую комбинацию ковариаций и находит веса, которые минимизируют определяющего слитой ковариационной матрицы.

пример

[fusedState,fusedCov] = fusecovint(trackState,trackCov,minProp) оценивает слитую ковариацию путем минимизации minProp, который может быть либо определяющим, либо трассировкой сросшейся ковариации матрицы.

Примеры

свернуть все

Задайте вектор состояния треков.

x(:,1) = [1;2;0];
x(:,2) = [2;2;0];
x(:,3) = [2;3;0];

Задайте ковариационные матрицы треков.

p(:,:,1) = [10 5 0; 5 10 0; 0 0 1];
p(:,:,2) = [10 -5 0; -5 10 0; 0 0 1]; 
p(:,:,3) = [12 9 0; 9 12 0; 0 0 1]; 

Оцените слитый вектор состояния и его ковариацию.

[fusedState,fusedCov] = fusecovint(x,p);

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

tPlotter = theaterPlot('XLim',[-10 10],'YLim',[-10 10],'ZLim',[-10 10]);
tPlotter1 = trackPlotter(tPlotter, ...
    'DisplayName','Input Tracks','MarkerEdgeColor',[0.000 0.447 0.741]);
tPlotter2 = trackPlotter(tPlotter,'DisplayName', ...
    'Fused Track','MarkerEdgeColor',[0.850 0.325 0.098]);
plotTrack(tPlotter1,x',p)
plotTrack(tPlotter2,fusedState',fusedCov)
title('Covariance Intersection Fusion')

Figure contains an axes. The axes with title Covariance Intersection Fusion contains 2 objects of type line. These objects represent Input Tracks, Fused Track.

Задайте вектор состояния треков.

x(:,1) = [1;2;0];
x(:,2) = [2;2;0];
x(:,3) = [2;3;0];

Задайте ковариационные матрицы треков.

p(:,:,1) = [10 5 0; 5 10 0; 0 0 1];
p(:,:,2) = [10 -5 0; -5 10 0; 0 0 1]; 
p(:,:,3) = [12 9 0; 9 12 0; 0 0 1]; 

Оцените слитый вектор состояния и его ковариацию. Объедините исходные ковариации так, чтобы следование слитой ковариационной матрицы было сведено к минимуму.

[fusedState,fusedCov] = fusecovint(x,p,'trace');

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

tPlotter = theaterPlot('XLim',[-10 10],'YLim',[-10 10],'ZLim',[-10 10]);
tPlotter1 = trackPlotter(tPlotter, ...
    'DisplayName','Input Tracks','MarkerEdgeColor',[0.000 0.447 0.741]);
tPlotter2 = trackPlotter(tPlotter, ...
    'DisplayName','Fused Track','MarkerEdgeColor',[0.850 0.325 0.098]);
plotTrack(tPlotter1,x',p)
plotTrack(tPlotter2,fusedState',fusedCov)
title('Covariance Intersection Fusion')

Figure contains an axes. The axes with title Covariance Intersection Fusion contains 2 objects of type line. These objects represent Input Tracks, Fused Track.

Входные параметры

свернуть все

Состояния трека, заданные как N -by - M матрица, где N - размерность состояния, а M - количество треков.

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

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

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

Свойство для минимизации при оценке слитой ковариации, заданное как 'det' или 'trace'.

.

Типы данных: char | string

Выходные аргументы

свернуть все

Сросшееся состояние, возвращенное как N -by-1 вектор, где N - размерность состояния.

Сросшаяся ковариационная матрица, возвращенная как N -by - N матрица, где N - размерность состояния.

Ссылки

[1] Мацка, Стефан и Ричард Альтендорфер. «Сравнение алгоритмов слияния трек-и-трек для слияния автомобильных датчиков». В Multisensor Fusion and Integration for Intelligent Systems, pp. 69-81. Спрингер, Берлин, Гейдельберг, 2009.

[2] Julier, Simon, and Jeffrey K. Uhlmann. Общее децентрализованное слияние данных с ковариационным пересечением. В Справочнике по мультисенсорному слиянию данных, стр. 339-364. CRC Press, 2017.

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

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

.

См. также

|

Введенный в R2018b