exponenta event banner

staticDetectionFuser

Статическое слияние синхронных датчиков

Описание

staticDetectionFuser Система object™ создает объект-предохранитель статического обнаружения для обнаружения датчиков только под углом.

Для получения фузера:

  1. Создать staticDetectionFuser и задайте его свойства.

  2. Вызовите объект с аргументами, как если бы это была функция.

Дополнительные сведения о работе системных объектов см. в разделе Что такое системные объекты?.

Создание

Описание

fuser = staticDetectionFuser() создает объект-предохранитель статического обнаружения с тремя датчиками по умолчанию для обнаружения датчиков только под углом.

пример

fuser = staticDetectionFuser(Name,Value) задает свойства, используя одну или несколько пар имя-значение. Например, fuser = staticDetectionFuser('FalseAlarmRate',1e-6,'MaxNumSensors',12) создает фузер, который имеет максимум 12 датчиков и частоту ложных сигналов тревоги 1e-6. Заключите каждое имя свойства в кавычки.

Свойства

развернуть все

Если не указано иное, свойства не настраиваются, что означает невозможность изменения их значений после вызова объекта. Объекты блокируются при их вызове, и release функция разблокирует их.

Если свойство настраивается, его значение можно изменить в любое время.

Дополнительные сведения об изменении значений свойств см. в разделе Проектирование системы в MATLAB с использованием системных объектов.

Индекс датчика составных обнаружений, сообщаемый фузером, определяемый как положительное целое число. Этот индекс становится SensorIndex из objectDetection объекты, возвращенные фузером.

Пример: 5

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

Функция для слияния нескольких обнаружений датчиков, заданная как символьный вектор, строка или дескриптор функции. Функция объединяет несколько обнаружений в один и возвращает слитый измерительный и измерительный шум. Любая функция слияния объединяет не более одного обнаружения от каждого датчика. Синтаксис функции измерения fuser:

[fusedMeasurement,fusedMeasurementNoise] = MeasurementFusionFcn(detections)
где аргументами входных и выходных функций являются

  • detections - массив ячеек objectDetection измерения.

  • fusedMeasurement - вектор N-by-1 слитых измерений.

  • fusedMeasurementNoise - матрица N-на-N из плавкого шума измерений.

Значение N зависит от MeasurementFormat собственность.

Собственность MeasurementFormatN
'Position'1, 2 и 3
'Velocity1, 2 и 3
'PositionAndVelocity2, 4 и 6
'Custom'Любой

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

Формат плавкого измерения, указанный как 'Position', 'Velocity', 'PositionAndVelocity', или 'Custom'. Форматы:

  • 'Position' - взрывное измерение - положение цели в глобальном координатном кадре.

  • 'Velocity' - измерение с помощью предохранителя представляет собой скорость цели в глобальном координатном кадре.

  • 'PositionAndVelocity' - плавкое измерение - положение и скорость цели в глобальном координатном кадре, определенном в соответствии с форматом [x;vx;y;vy;z;vz].

  • 'Custom' - пользовательские измерения с плавким предохранителем. Чтобы включить этот формат, укажите функцию с помощью MeasurementFcn.

Пример: 'PositionAndVelocity'

Пользовательская функция измерения, заданная как символьный вектор, строка или дескриптор функции. Укажите функцию преобразования конденсированных измерений в измерения датчика. Функция должна иметь следующую подпись:

sensorMeas = MeasurementFcn(fusedMeas,measParameters)

Зависимости

Чтобы включить это свойство, установите значение MeasurementFormat свойство для 'Custom'.

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

Максимальное количество датчиков в области наблюдения, указанное как положительное целое число больше единицы.

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

Объем ячеек обнаружения датчиков, определяемый как положительный скаляр или вектор N-длины положительных скаляров. N - количество датчиков. Если указан как скаляр, каждому датчику назначается одинаковый объем. Если датчик производит измерение только под углом, например по азимуту и отметке, объем определяется как сплошной угол, усеченный одним бункером.

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

Вероятность обнаружения цели каждым датчиком, задаваемая в виде скалярного или N-длинного вектора положительных скаляров в диапазоне (0,1). N - количество датчиков. Если указан как скаляр, каждому датчику назначается одинаковая вероятность обнаружения. Вероятность обнаружения используется при вычислении стоимости сплавления «одного» (обнаружена цель) или «нулевого» (не обнаружена цель) обнаружений с каждого датчика.

Пример: 0.99

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

Скорость, с которой датчик сообщает о ложных срабатываниях в каждом блоке, заданном как скалярный или N-вектор положительных скаляров. N - количество датчиков. Если указан как скаляр, каждому датчику назначается одинаковая частота ложных аварийных сигналов. Частота ложных аварийных сигналов используется для вычисления вероятности беспорядка в обнаружениях, сообщаемых каждым датчиком.

Пример: 1e-5

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

Возможность использования параллельных вычислительных ресурсов, указанных как false или true. staticDetectionFuser вычисляет стоимость обнаружения предохранителей от каждого датчика как проблему назначения n-D. Фьюзер тратит большую часть времени на вычисление матрицы затрат для задачи назначения. Если установлен компонент Parallel Computing Toolbox™, этот параметр позволяет пользователю использовать параллельный пул работников для вычисления матрицы затрат.

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

Абсолютный допуск между метками времени обнаружений, указанный как неотрицательный скаляр. staticDetectionFuser предполагает, что датчики синхронны. Это свойство определяет допустимое значение допуска между отметками времени обнаружения, которое по-прежнему считается синхронным.

Пример: 1e-3

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

Использование

Описание

compositeDets = fuser(dets) возвращает обнаруженные предохранители, compositeDets, входных обнаружений, dets.

[compositeDets,analysisInfo] = fuser(dets) также возвращает аналитическую информацию, analysisInfo.

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

развернуть все

Предварительно слитые обнаружения, указанные как массив ячеек objectDetection объекты.

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

развернуть все

Предварительно слитые обнаружения, возвращаемые в виде массива ячеек objectDetection объекты.

Сведения об анализе, возвращенные в виде структуры. Поля структуры:

  • CostMatrix - N-мерная матрица затрат, обеспечивающая стоимость ассоциации обнаружений, где N - количество датчиков. Стоимость представляет собой отрицательную логарифмическую вероятность ассоциации и может быть интерпретирована как отрицательный балл дорожки, который будет генерироваться с помощью слитого измерения.

  • Assignments - список назначений P-by-N, где P - количество составных обнаружений.

  • FalseAlarms - Q-by-1 список индексов обнаружений, объявленных как ложные аварийные сигналы по ассоциации.

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

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

Чтобы использовать функцию объекта, укажите объект System в качестве первого входного аргумента. Например, для освобождения системных ресурсов объекта System с именем obj, используйте следующий синтаксис:

release(obj)

развернуть все

releaseДеблокирование ресурсов и разрешение изменений значений свойств объекта системы и входных признаков
resetСброс внутренних состояний объекта System
isLockedОпределить, используется ли объект System
cloneСоздать повторяющийся объект System

Примеры

свернуть все

Обнаружение только угла предохранителя от трех датчиков ESM.

Загрузка сохраненных обнаружений с датчиков.

load('angleOnlyDetectionFusion.mat','detections');

Визуализация обнаружений только под углом для построения вектора направления.

rPlot = 5000;
plotData = zeros(3,numel(detections)*3);
for i = 1:numel(detections)
    az = detections{i}.Measurement(1);
    el = detections{i}.Measurement(2);
    [xt,yt,zt] = sph2cart(deg2rad(az),deg2rad(el),rPlot);
    % The sensor is co-located at platform center, therefore use
    % the position from the second measurement parameter
    originPos = detections{i}.MeasurementParameters(2).OriginPosition;
    positionData(:,i) = originPos(:);
    plotData(:,3*i-2) = [xt;yt;zt] + originPos(:);
    plotData(:,3*i-1) = originPos(:);
    plotData(:,3*i) = [NaN;NaN;NaN];
end
plot3(plotData(1,:),plotData(2,:),plotData(3,:),'r-')
hold on
plot3(positionData(1,:),positionData(2,:),positionData(3,:),'o','MarkerSize',12,'MarkerFaceColor','g')

Figure contains an axes. The axes contains 2 objects of type line.

Создать staticDetectionFuser чтобы предохранить только угловые детекторы с помощью функции слияния измерений triangulateLOS.

fuser = staticDetectionFuser('MeasurementFusionFcn','triangulateLOS','MaxNumSensors',3)
fuser = 
  staticDetectionFuser with properties:

        FusedSensorIndex: 1
    MeasurementFusionFcn: 'triangulateLOS'
       MeasurementFormat: 'Position'

           MaxNumSensors: 3
                  Volume: [3x1 double]
    DetectionProbability: [3x1 double]
          FalseAlarmRate: [3x1 double]

           TimeTolerance: 1.0000e-06
             UseParallel: false

Создайте предохранители и получите информацию об анализе.

[fusedDetections, analysisInfo] = fuser(detections);
fusedPositions = zeros(3,numel(fusedDetections));
for i = 1:numel(fusedDetections)
    fusedPositions(:,i) = fusedDetections{i}.Measurement;
end
plot3(fusedPositions(1,:),fusedPositions(2,:),fusedPositions(3,:),'ko', ...
    'MarkerSize',12, 'MarkerFaceColor','k')
legend('Angle-only Detections','Sensor Positions','Fused Target Measurements')
title('Angle-only Detection Fusion')
xlabel('x [m]')
ylabel('y [m]')
view(2)

Figure contains an axes. The axes with title Angle-only Detection Fusion contains 3 objects of type line. These objects represent Angle-only Detections, Sensor Positions, Fused Target Measurements.

Используйте analysisInfo вывод для проверки назначений.

analysisInfo.Assignments
ans = 6x3 uint32 matrix

    0   10   14
    1    6   11
    2    7   12
    3    8   13
    4    9    0
    5    0   15

Алгоритмы

развернуть все

Ссылки

[1] Бар-Шалом, Яаков, Питер К. Виллетт и Синь Тянь. Отслеживание и объединение данных. Storrs, CT, USA:: YBS publishing, 2011.

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

.

См. также

Функции

Объекты

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