Представление конфигурации датчика для отслеживания
trackingSensorConfiguration объект создает конфигурацию для датчика, используемого с trackerPHD object™ системы. Он позволяет задать параметры датчика, такие как плотность беспорядка, пределы датчика, разрешение датчика. Можно также указать, как трекер воспринимает обнаруженные сигналы от датчика, используя такие свойства, как FilterInitializationFcn, SensorTransformFcn, и SensorTransformParameters. Дополнительные сведения см. в разделе Создание конфигурации датчика отслеживания. trackingSensorConfiguration объект позволяет трекеру выполнять три основные рутинные операции:
Оцените вероятность обнаружения в точках в состоянии-пространстве.
Инициировать компоненты в плотности гипотезы вероятности.
Получить плотность загромождения датчика.
создает config = trackingSensorConfiguration(SensorIndex)trackingSensorConfiguration объект с указанным индексом датчика, SensorIndexи значения свойств по умолчанию.
позволяет задать свойства, используя одну или несколько пар имя-значение.config = trackingSensorConfiguration(SensorIndex,Name,Value)
SensorIndex - Уникальный идентификатор датчикаУникальный идентификатор датчика, указанный как положительное целое число. Это свойство различает обнаруженные сигналы, поступающие от различных датчиков в системе с несколькими датчиками. При создании trackingSensorConfiguration , необходимо указать SensorIndex в качестве первого входного аргумента в синтаксисе создания.
Пример: 2
Типы данных: double
IsValidTime - Указать состояние отчета об обнаруженииfalse (по умолчанию) | trueУкажите состояние сообщения об обнаружении датчика, указанное как false или true. Установить для этого свойства значение true когда датчик должен сообщать трекеру об обнаружениях в пределах своих пределов. Если предполагалось, что дорожка или цель будут обнаружены датчиком, но датчик не сообщит об обнаружениях, то эта информация используется для подсчета вероятности существования дорожки, когда isValidTime свойство имеет значение true.
Типы данных: logical
FilterInitializationFcn - Функция инициализации фильтра@initcvggiwphd (по умолчанию) | дескриптор функции | символьный векторФункция инициализации фильтра, заданная как дескриптор функции или как символьный вектор, содержащий имя допустимой функции инициализации фильтра. Функция инициализирует PHD-фильтр, используемый trackerPHD. Функция должна поддерживать следующие синтаксисы:
filter = filterInitializationFcn() filter = filterInitializationFcn(detections)
filter является действительным PHD-фильтром с компонентами для новых целей, и detections является массивом ячеек objectDetection объекты. Первый синтаксис позволяет указать прогнозирующую плотность рождаемости в PHD-фильтре без использования обнаружений. Второй синтаксис позволяет фильтру инициализировать адаптивную плотность рождаемости с использованием информации обнаружения. См. свойство BirthRate для trackerPHD для получения дополнительной информации. При создании собственного FilterInitilizationFcn, вы также должны предоставить функцию преобразования с помощью SensorTransformFcn собственность. Кроме функции инициализации фильтра по умолчанию initcvggiwphd, Sensor Fusion and Tracking Toolbox™ также предоставляет другие функции инициализации, такие как initctrectgmphd, initctgmphd, initcvgmphd, initcagmphd, initctggiwphd и initcaggiwphd.
Типы данных: function_handle | char
SensorTransformFcn - Функция преобразования датчика@cvmeas | дескриптор функции | символьный векторФункция преобразования датчика, заданная как дескриптор функции или как символьный вектор, содержащий имя допустимой функции преобразования датчика. Функция преобразует состояние дорожки в состояние обнаружения датчика. Например, функция преобразует состояние дорожки в декартовом кадре сценария в сферический кадр датчика. Можно создать собственную функцию преобразования датчика, но она должна поддерживать следующий синтаксис:
detStates = SensorTransformFcn(trackStates,params)
params - параметры, хранящиеся в SensorTransformParameters собственность. Обратите внимание, что сигнатура функции аналогична функции измерения. Поэтому можно использовать функцию измерения (например, cvmeas, ctmeas, или cameas) в качестве SensorTransformFcn.
В зависимости от типа фильтра и целевого типа, выходные данные, detStates, нужно вернуться по-другому.
При использовании с gmphd для нерасширенных целей или с ggiwphd, detStates - матрица N-на-М, где N - количество строк в SensorLimits свойство и M - количество входных состояний в trackStates. Для gmphd, нерасширенные цели относятся к точечным целям и расширенным целям, чьи MeasurementOrigin является 'center'.
При использовании с gmphd для расширенных целей, SensorTransformFcn позволяет указать несколько detStates за trackState. В этом случае detStates является матрицей N-by-M-by-S, где S - количество обнаруживаемых источников на расширенной цели. Например, если цель описана прямоугольным состоянием, обнаруживаемыми источниками могут быть углы прямоугольника.
Если какой-либо из источников попадает внутрь SensorLimits, цель объявляется обнаруживаемой. Функции используют разброс (максимальная координата − минимальная координата) каждого detStates и отношение между разбросом и разрешением датчика на каждом пределе датчика для вычисления ожидаемого количества обнаружений от каждой расширенной цели. Можно переопределить этот параметр по умолчанию, предоставив дополнительный вывод в SensorTransformFcn как:
[..., Nexp] = SensorTransformFcn(trackStates, params)
Nexp - ожидаемое число обнаружений из каждого расширенного состояния дорожки.
Обратите внимание, что по умолчанию SensorTransformFcn - функция преобразования датчика фильтра, возвращенная FilterInitilizationFcn. Например, initicvggiwphd функция возвращает значение по умолчанию cvmeas, тогда как initictggiwphd и initicaggiwphd функция возвращает ctmeas и cameasсоответственно.
Типы данных: function_handle | char
SensorTransformParameters - Параметры функции преобразования датчикаПараметры функции преобразования датчика, возвращаемые в виде структуры или массива структур. Если требуется преобразовать состояние только один раз, укажите его как структуру. Если требуется преобразовать состояние n раз, укажите его как массив структур n-by-1. Например, для преобразования состояния из кадра сценария в кадр датчика обычно необходимо сначала преобразовать состояние из прямоугольного кадра сценария в прямоугольный кадр платформы, а затем преобразовать состояние из прямоугольного кадра платформы в сферический кадр датчика. Поля структуры:
| Область | Описание |
Frame | Тип дочерней рамки координат, указанный как |
OriginPosition | Исходная позиция дочернего кадра, выраженная в родительском кадре, заданном как вектор 3 на 1. |
OriginVelocity | Начальная скорость дочернего кадра, выраженная в родительском кадре, заданная как вектор 3 на 1. |
Orientation | Относительная ориентация между кадрами, заданная как матрица вращения 3 на 3. Если |
IsParentToChild | Флаг для указания направления поворота между родительским и дочерним кадром, указанный как |
HasAzimuth | Указывает, содержат ли выходы азимутальные компоненты, указанные как |
HasElevation | Указывает, содержат ли выходные данные компоненты отметки, указанные как |
HasRange | Указывает, содержат ли выходы компоненты диапазона, указанные как |
HasVelocity | Указывает, содержат ли выходы компоненты скорости, указанные как |
При этом кадр сценария является родительским кадром кадра платформы, а кадр платформы является родительским кадром кадра датчика.
Значения по умолчанию для SensorTransformParameters представляют собой массив структур 2 на 1, как:
| Области | Структура 1 | Структура 2 |
| Структура | 'Spherical' | 'Rectangular' |
| OriginPosition | [0;0;0] | [0;0;0] |
| OriginVelocity | [0;0;0] | [0;0;0] |
| Ориентация | eye(3) | eye(3) |
| IsParentToChild | false | false |
| HasAzimuth | true | true |
| HasElevation | true | true |
| HasRange | true | true |
| HasVelocity | false | true |
В этой таблице Struct 2 учитывает преобразование из прямоугольной рамы сценария в прямоугольную раму платформы, а Struct 1 - преобразование из прямоугольной рамы платформы в сферическую раму датчика, учитывая isParentToChild свойство имеет значение false.
Типы данных: struct
SensorLimits - Пределы обнаружения датчикаПределы обнаружения датчика, определенные как матрица N-by-2, где N - выходная размерность функции преобразования датчика. Матрица должна описывать нижний и верхний пределы обнаружения датчика в том же порядке, что и выходные сигналы функции преобразования датчика.
Если вы используете cvmeas, cameas, или ctmeas в качестве функции преобразования сенсора необходимо указать пределы сенсора в порядке:
Описание этих пределов и их значения по умолчанию приведены в следующей таблице. Обратите внимание, что значения по умолчанию для SensorLimits представляют собой матрицу 3 на 2, включающую шесть первых элементов в таблице. Кроме того, при использовании этих трех функций можно указать матрицу других размеров (1 на 2, 2 на 2 или 3 на 4), но необходимо указать эти пределы в последовательности, показанной в матрице SensorLimits.
| Пределы | Описание | Значения по умолчанию |
| minAz | Минимальный обнаруживаемый азимут в градусах. | -10 |
| maxAz | Максимальный обнаруживаемый азимут в градусах. | 10 |
| minEl | Минимальная обнаруживаемая отметка в градусах. | -2.5 |
| maxEl | Максимальная обнаруживаемая отметка в градусах. | 2.5 |
| minRng | Минимальный обнаруживаемый диапазон в метрах. | 0 |
| maxRng | Максимальная обнаруживаемая дальность в метрах. | 1000 |
| minRr | Минимальная обнаруживаемая дальность в метрах в секунду. | Н/Д |
| maxRr | Максимальная обнаруживаемая дальность в метрах в секунду. | Н/Д |
Типы данных: double
SensorResolution - Разрешение датчика[4;2;10] (по умолчанию) | N-элемент с положительным значением вектораРазрешение датчика, заданного как N-элементный положительно-значный вектор, где N - количество параметров, указанных в SensorLimits собственность. Если требуется назначить только одну ячейку разрешения для параметра, просто укажите ее разрешение как разницу между максимальным пределом и минимальным пределом параметра.
Типы данных: double
MaxNumDetsPerObject - Максимальное количество обнаружений на объектInf (по умолчанию) | положительное целое числоМаксимальное количество обнаружений, о которых датчик может сообщать на объект, указанное как положительное целое число.
Пример: 3
Типы данных: double
ClutterDensity - Ожидаемое количество ложных аварийных сигналов на единицу объема1e-3 (по умолчанию) | положительный скалярОжидаемое количество ложных аварийных сигналов на единицу объема от датчика, указанное как положительный скаляр.
Пример: 2e-3
Типы данных: double
MinDetectionProbability - Вероятность обнаружения трассы, оцениваемой вне пределов датчика0.05 (по умолчанию) | положительный скалярВероятность обнаружения цели, оцениваемой вне пределов датчика, заданная как положительный скаляр. Это свойство позволяет trackerPHD Задача состоит в том, чтобы учесть, что расчетная цель, которая находится вне пределов датчика, может быть обнаружена.
Пример: 0.03
Типы данных: double
Рассмотрим радар со следующими ограничениями датчика и разрешением датчика.
azLimits = [-10 10]; elLimits = [-2.5 2.5]; rangeLimits = [0 500]; rangeRateLimits = [-50 50]; sensorLimits = [azLimits;elLimits;rangeLimits;rangeRateLimits]; sensorResolution = [5 2 10 3];
Задание функции преобразования датчика, преобразующей декартовы координаты [x; y; vx; vy] в кадре сценария в сферические координаты [az; el; range; rr] в кадре датчика. Можно использовать функцию измерения.cvmeas в качестве функции преобразования датчика.
transformFcn = @cvmeas;
Задание параметров, необходимых для cvmeas, используйте SensorTransformParameters собственность. Здесь предполагается, что датчик установлен в центре платформы, а платформа, расположенная на [100; 30; 20], движется со скоростью [-5; 4; 2] единиц в секунду в кадре сценария.
Первая структура определяет местоположение, скорость и ориентацию датчика в раме платформы.
params(1) = struct('Frame','Spherical','OriginPosition',[0;0;0],... 'OriginVelocity',[0;0;0],'Orientation',eye(3),'HasRange',true,... 'HasVelocity',true);
Вторая структура определяет местоположение, скорость и ориентацию платформы в кадре сценария.
params(2) = struct('Frame','Rectangular','OriginPosition',[100;30;20],... 'OriginVelocity',[-5;4;2],'Orientation',eye(3),'HasRange',true,... 'HasVelocity',true);
Создайте конфигурацию.
config = trackingSensorConfiguration('SensorIndex',3,'SensorLimits',sensorLimits,... 'SensorResolution',sensorResolution,... 'SensorTransformParameters',params,... 'SensorTransformFcn',@cvmeas,... 'FilterInitializationFcn',@initcvggiwphd)
config =
trackingSensorConfiguration with properties:
SensorIndex: 3
IsValidTime: 0
SensorLimits: [4x2 double]
SensorResolution: [4x1 double]
SensorTransformFcn: @cvmeas
SensorTransformParameters: [1x2 struct]
FilterInitializationFcn: @initcvggiwphd
MaxNumDetsPerObject: Inf
ClutterDensity: 1.0000e-03
DetectionProbability: 0.9000
MinDetectionProbability: 0.0500
Для создания конфигурации датчика сначала необходимо указать функцию преобразования датчика, которая обычно задается как:
, p)
где x обозначает состояние слежения, Y обозначает состояния обнаружения и p обозначает требуемые параметры. Для приложений отслеживания объектов основное внимание уделяется получению состояния отслеживания объекта. Например, радиолокационный датчик может измерять азимут, высоту, дальность и, возможно, дальность объекта. Использование trackingSensorConfiguration , можно указать функцию преобразования радара с помощью SensorTransformFcn и укажите местоположение, ориентацию и скорость установки радара, используя соответствующие поля в SensorTransformParameters собственность. Если объект движется с постоянной скоростью, постоянным ускорением или постоянным поворотом, можно использовать встроенную функцию измерения - cvmeas, cameas, или ctmeas, соответственно - в качестве SensorTransformFcn. Чтобы настроить точные выходы этих трех функций, укажите hasAzimuth, hasElevation, hasRange, и hasVelocity поля как true или false в SensorTransformParameters собственность.
Чтобы настроить конфигурацию датчика, необходимо также указать возможность обнаружения датчика. В первую очередь необходимо указать пределы обнаружения датчика. Для всех выходов функции преобразования датчика необходимо указать пределы обнаружения в том же порядке, что и для этих выходов, используя SensorLimits собственность. Например, для радиолокационного датчика может потребоваться указать его пределы по азимуту, высоте, дальности и скорости. Вы также можете указать радар SensorResolution и MaxNumDetsPerObject если необходимо учитывать расширенное обнаружение объектов. Можно также задать другие свойства, такие как ClutterDensity, IsValidTime, и MinDetectionProbability для дальнейшего уточнения способности датчика обнаруживать.
cameas | ctmeas | cvmeas | ggiwphd | trackerPHD
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.