exponenta event banner

Fuser Track-To-Track

  • Библиотека:
  • Панель инструментов для слияния и отслеживания датчиков/алгоритмы отслеживания нескольких объектов

  • Track-to-Track-Fuser

Описание

Блок Track-to-Track Fuser Simulink ® - это многоисточник с несколькими объектами, который использует глобальную ассоциацию ближайшего соседа (GNN) для поддержания единой гипотезы о дорожках, которые он сливает. Входами в блок являются дорожки из источников, которые уже отслеживают несколько объектов, таких как блоки многообъектного трекера или другие блоки путевого фузера. Входные дорожки называются исходными или локальными дорожками, тогда как дорожки, поддерживаемые в фузере, называются центральными дорожками.

Порты

Вход

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

Трек-лист, указанный как шина Simulink, содержащая структуру MATLAB. Структура имеет вид:

ОбластьОписание
NumTracksКоличество дорожек
TracksМассив путевых конструкций

Поля структуры дорожки отображаются в структуре дорожки.

Время обновления отслеживания, указанное как действительный скаляр в секундах. Фузер обновляет все треки до этого времени. Время обновления должно увеличиваться с каждым вызовом блока. Время обновления должно быть не менее наибольшего UpdateTime указан во входном порту Tracks.

Если этот порт не активизирован, время обновления определяется синхросигналом моделирования, управляемым Simulink.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting установите для параметра Prediction time source значение Input port.

Список конфигурации источника, указанный как шина Simulink, содержащая структуру MATLAB. Структура имеет вид:

ОбластьОписание
NumConfigurationsКоличество нестандартных исходных конфигураций. Значение поля должно быть меньше значения, указанного в параметре Максимальное число конфигураций источника.
ConfigurationsМассив структур конфигурации источника.

Поля исходной структуры конфигурации:

Имя поляОписание
SourceIndexУникальный индекс для исходной системы, указанный как положительное целое число.
IsInternalSourceУкажите, является ли источник внутренним для fuser, указанный как true или false. Внутренний источник - это источник, из которого плавкий предохранитель непосредственно предохраняет дорожки, даже если дорожки не сообщаются самостоятельно. Например, если фузер находится на уровне транспортного средства, то радиолокатор слежения, установленный на связанном транспортном средстве, считается внутренним, в то время как другое транспортное средство, сообщающее о плавких гусеницах, считается внешним.
IsInitializingCentralTracksУкажите, может ли источник инициализировать центральную дорожку в фузере, указанную как true или false. Центральная дорожка - это дорожка, поддерживаемая в фузере.
LocalToCentralTransformFcnФункция преобразования дорожки из локального в центральное пространство состояний, заданная как дескриптор функции. Например, @track(track) не выполняет преобразование.
CentralToLocalTransformFcnФункция преобразования дорожки из центрального в локальное пространство состояний, заданная как дескриптор функции. Например, @track(track) не выполняет преобразование.

Зависимости

Чтобы включить этот порт, на вкладке Fuser Management выберите параметр Update source configuration with time.

Параметры состояния отслеживания, заданные как шина Simulink, содержащая структуру MATLAB. Структура имеет вид:

ОбластьОписание
NumParametersКоличество нестандартных параметров состояния, указанных как неотрицательное целое число
ParametersМассив структур параметров состояния

Блок использует значение Parameters поле для StateParameters поле сформированных дорожек. Эти параметры можно использовать для определения опорной рамки, в которой сообщается о дорожке, или других требуемых атрибутов сгенерированных дорожек.

Например, можно использовать следующую структуру для определения прямоугольной опорной рамки, исходная позиция которой находится в [10 10 0] метров и чья начальная скорость [2 -2 0] метров в секунду относительно кадра сценария.

Имя поляСтоимость
Frame"Rectangular"
Position[10 10 0]
Velocity[2 -2 0]

Зависимости

Чтобы включить этот порт, на вкладке Tracker Configuration выберите параметр Update track state parameters with time.

Продукция

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

Подтвержденные дорожки, возвращенные как шина Simulink, содержащая структуру MATLAB. Структура имеет вид:

ОбластьОписание
NumTracksКоличество дорожек.
TracksМассив структур путей длиной, заданной параметром Максимальное количество центральных путей. Только первый NumTracks из них фактические треки.

Поля структуры дорожки отображаются в структуре дорожки.

Дорожка подтверждается, если она удовлетворяет пороговому значению, указанному в параметре Confirmation threshold на вкладке Tracks.

Предварительные трассы, возвращенные в виде шины Simulink, содержащей структуру MATLAB. Трек является предварительным, прежде чем он будет подтвержден.

Структура имеет вид:

ОбластьОписание
NumTracksКоличество дорожек.
TracksМассив структур путей длиной, заданной параметром Максимальное количество центральных путей. Только первый NumTracks из них фактические треки.

Поля структуры дорожки отображаются в структуре дорожки.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting выберите Enable tentative tracks output.

Сводный список подтвержденных и предварительных дорожек, возвращенных в виде шины Simulink, содержащей структуру MATLAB.

Структура имеет вид:

ОбластьОписание
NumTracksКоличество дорожек.
TracksМассив структур путей длиной, заданной параметром Максимальное количество центральных путей. Только первый NumTracks из них фактические треки.

Поля структуры дорожки отображаются в структуре дорожки.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting выберите Enable all tracks output.

Дополнительная информация для анализа обновлений дорожки, возвращенная в виде шины Simulink, содержащей структуру MATLAB.

В этой таблице представлены поля информационной структуры:

ОбластьОписание
BranchIDsAtStepBeginning

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

CostMatrix

Матрица стоимости назначения.

Assignments

Назначения, возвращенные из assignTOMHT функция.

UnassignedTracks

Идентификаторы неназначенных ветвей, возвращенные от трекера.

UnassignedDetections

Идентификаторы неназначенных обнаружений, возвращенные от трекера.

InitialBranchHistory

История ветвления после ветвления и перед обрезкой.

InitialBranchScores

Баллы ветвления перед обрезкой.

KeptBranchHistory

История ветвления после начальной обрезки.

KeptBranchScores

Баллы ветвления после начальной обрезки.

Clusters

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

TrackIncompatibility

Матрица несовместимости ветвей. (i,j) элемент - true если i-я и j-я ветви имеют общие обнаружения в своей истории или принадлежат одной дорожке.

GlobalHypotheses

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

GlobalHypScoresОбщий балл глобальных гипотез.
PrunedBranches

Логический массив ветвей, pruneTrackBranches функция определяет необходимость обрезки.

GlobalBranchProbabilities

Глобальная вероятность каждой ветви, существующей в глобальных гипотезах.

BranchesDeletedByPruning

Ветви, удаленные трекером.

BranchIDsAtStepEnd

Идентификаторы ветвей после завершения обновления.

Зависимости

Чтобы включить этот порт, на вкладке Port Setting выберите Enable information output.

Параметры

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

Управление фузерами

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

Пример: 2

Алгоритм назначения, указанный как MatchPairs, Munkres, Jonker-Volgenant, Auction, или Custom. Munkres является единственным алгоритмом назначения, который гарантирует оптимальное решение, но он также является самым медленным, особенно для большого количества обнаружений и дорожек. Другие алгоритмы не гарантируют оптимального решения, но могут быть быстрее для проблем с 20 или более дорожками и обнаружениями. Использовать Custom для определения собственной функции назначения и указания ее имени в параметре «Имя пользовательской функции назначения».

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

Имя функции назначения «Custom», указанной как строка или дескриптор функции. Функция назначения должна иметь следующий синтаксис:

 [assignments,unassignedCentral,unassignedLocal] = f(cost,costNonAssignment)
Пример функции назначения и описание ее аргументов см. в разделе assignmunkres.

Зависимости

Чтобы включить это свойство, задайте для параметра Имя алгоритма назначения значение Custom.

Порог назначения источника центральным дорожкам, определяемый как положительный скаляр или вектор 1 на 2 вида [C1 С2], где C1 ≤ C2. Если указано как скаляр, указанное значение, val, расширяется до [val Inf].

Первоначально фузер выполняет грубую оценку для нормированного расстояния между всеми исходными и центральными дорожками. Фузер вычисляет только точное нормированное расстояние для исходной и центральной комбинаций, грубое нормированное расстояние которых меньше C2. Кроме того, фузер может назначать локальную дорожку центральной дорожке только в том случае, если их точное нормированное расстояние меньше C1. См. раздел distance используется с фильтрами отслеживания для объяснения расчета расстояния.

Совет

  • Увеличьте значение C2, если существуют комбинации исходных и центральных дорожек, которые должны рассчитываться для присвоения, но не являются таковыми, уменьшите его, если расчет занимает слишком много времени.

  • Увеличьте значение C1, если есть исходные дорожки, которые должны быть назначены центральным дорожкам, но не назначены. Уменьшите его, если есть локальные дорожки, которые назначены центральным дорожкам, которым они не должны быть назначены (слишком далеко).

Максимальное количество центральных дорожек, которые может поддерживать трекер, указанное как положительное целое число.

Максимальное количество исходных конфигураций, которые может поддерживать fuser, указанное как положительное целое число.

Конфигурация исходных систем, заданная как массив структур исходных конфигураций. Поля структуры конфигурации источника:

Имя поляОписание
SourceIndexУникальный индекс для исходной системы, указанный как положительное целое число.
IsInternalSourceУкажите, является ли источник внутренним для fuser, указанный как true или false. Внутренний источник - это источник, из которого плавкий предохранитель непосредственно предохраняет дорожки, даже если дорожки не сообщаются самостоятельно. Например, если фузер находится на уровне транспортного средства, то радиолокатор слежения, установленный на связанном транспортном средстве, считается внутренним, в то время как другое транспортное средство, сообщающее о плавких гусеницах, считается внешним.
IsInitializingCentralTracksУкажите, может ли источник инициализировать центральную дорожку в фузере, указанную как true или false. Центральная дорожка - это дорожка, поддерживаемая в фузере.
LocalToCentralTransformFcnФункция преобразования дорожки из локального в центральное пространство состояний, заданная как дескриптор функции. Например, @track(track) не выполняет преобразование.
CentralToLocalTransformFcnФункция преобразования дорожки из центрального в локальное пространство состояний, заданная как дескриптор функции. Например, @track(track) не выполняет преобразование.

Выберите этот параметр для активизации ввода конфигурации источника через порт ввода конфигурации источника.

Параметры опорного кадра состояния дорожки, заданные как структура или массив структуры. Блок передает значение этого параметра в StateParameters поле сформированных дорожек. Эти параметры можно использовать для определения опорной рамки, в которой сообщается о дорожке, или других требуемых атрибутов сгенерированных дорожек.

Например, можно использовать следующую структуру для определения прямоугольной опорной рамки, исходная позиция которой находится в [10 10 0] метров и чья начальная скорость [2 -2 0] метров в секунду относительно кадра сценария.

Имя поляСтоимость
Frame"Rectangular"
Position[10 10 0]
Velocity[2 -2 0]

Параметры состояния дорожки можно обновить с помощью входного порта State Parameters, выбрав параметр Update track state parameters with time.

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

Выберите этот параметр, чтобы включить входной порт для параметров состояния отслеживания через входной порт State Parameters.

Выберите тип моделирования из следующих опций:

  • Interpreted execution - Моделирование модели с помощью интерпретатора MATLAB. Этот параметр сокращает время запуска. В Interpreted execution можно отладить исходный код блока.

  • Code generation - моделирование модели с использованием сгенерированного кода C. При первом запуске моделирования Simulink генерирует код C для блока. Код C используется повторно для последующего моделирования до тех пор, пока модель не изменится. Для этого параметра требуется дополнительное время запуска.

Следы

Порог подтверждения центральной дорожки, заданный как положительное целое число, M, или действительный вектор 1 на 2 положительных целых чисел, [M N]. Центральная дорожка подтверждается, если она назначена локальным дорожкам не менее M раз в последних N обновлениях. Если указано положительное целое число M, порог подтверждения увеличивается до [M M].

Порог удаления центральной дорожки, указанный как положительное целое число, P или вектор 1 на 2 положительных целых чисел [P Q] с P ≤ Q. Центральная дорожка удаляется , если дорожка не назначена локальным дорожкам по крайней мере P раз в последних обновлениях Q. Если задано положительное целое число P, порог подтверждения увеличивается до [P P].

Размер центрального состояния дорожки, указанный как положительное целое число.

Атрибуты центрального объекта дорожки, заданные как структура. Трекер передает значение этого параметра в ObjectAttributes поле путевого выпуска.

Функция перехода состояния, заданная как дескриптор функции или строка. Эта функция вычисляет состояние на временном шаге k на основе состояния на временном шаге k-1.

  • Если параметр Enable additive process noise на вкладке Tracks включен, функция должна использовать следующий синтаксис:

    x(k) = f(x(k-1),dt)
    
    где:

    • x(k) - Расчетное состояние на момент времени k, задается как вектор или матрица. Если задано как матрица, то каждый столбец матрицы представляет один вектор состояния.

    • dt - Временной шаг для прогнозирования.

  • Если параметр Enable additive process noise на вкладке Tracks не включен, функция должна использовать следующий синтаксис:

    x(k) = f(x(k-1),w(k-1),dt)
    где:

    • x(k) - Расчетное состояние на момент времени k, задается как вектор или матрица. Если задано как матрица, то каждый столбец матрицы представляет один вектор состояния.

    • w(k) - Технологический шум в момент времени k.

    • dt - Временной шаг для прогнозирования.

Пример: @constacc

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

  • Если параметр Enable additive process noise на вкладке Tracks включен, функция должна использовать следующий синтаксис:

    Jx(k) = statejacobianfcn(x(k),dt)
    
    где:

    • x(k) - Расчетное состояние на момент времени k, указанный как вектор M-by-1 вещественных значений.

    • dt - Временной шаг для прогнозирования.

    • Jx(k) - якобиан функции перехода состояния по отношению к государству, df/dx, оценивается в x(k). Якобиан возвращается в виде матрицы M-by-M.

  • Если параметр Enable additive process noise на вкладке Tracks не включен, функция должна использовать следующий синтаксис:

    [Jx(k),Jw(k)] = statejacobianfcn(x(k),w(k),dt)
    
    где:

    • x(k) - (Расчетное) состояние в момент времени k, указанный как вектор M-by-1 вещественных значений.

    • w(k) - Технологический шум в момент времени k, заданный как вектор W-by-1 вещественных значений.

    • dt - Временной шаг для прогнозирования.

    • Jx(k) - якобиан функции перехода состояния по отношению к государству, df/dx, оценивается в x(k). Якобиан возвращается в виде матрицы M-by-M.

    • Jw(k) - якобиан функции перехода состояния по отношению к шуму процесса, df/dw, оценивается в x(k) и w(k). Якобиан возвращается в виде матрицы M-by-W.

Пример: @constaccjac

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

  • Если параметр Включить аддитивный шум процесса на вкладке Дорожки включен, укажите ковариацию шума процесса как положительный действительный скаляр или положительную определенную матрицу M-by-M. M - размерность вектора состояния. При задании в качестве скаляра матрица представляет собой диагональную матрицу M-на-M с каждым диагональным элементом, равным скаляру.

  • Если параметр Включить аддитивный шум процесса на вкладке Дорожки не включен, укажите ковариацию шума процесса в виде матрицы W-by-W. W - размер вектора шума процесса.

Пример: [1.0 0.05; 0.05 2]

Включение аддитивного технологического шума, указанного как on или off. Когда это будет on, к вектору состояния добавляется шум процесса. В противном случае шум включается в функцию перехода состояния.

Сплав

Функция слияния состояний, заданная как одна из следующих опций:

  • Cross - Использует алгоритм слияния перекрестных ковариаций

  • Intersection - использует алгоритм слияния ковариационных пересечений

  • Custom - позволяет указать настраиваемую функцию слияния с помощью параметра «Имя пользовательской функции слияния».

Используйте параметр State fusion parameters source, чтобы указать дополнительные параметры, используемые алгоритмом state fusion.

Имя пользовательской функции назначения, указанное как строка или дескриптор функции.

Функция слияния состояний должна поддерживать один из следующих синтаксисов:

[fusedState,fusedCov] = f(trackState,trackCov)
[fusedState,fusedCov] = f(trackState,trackCov,fuseParams)
где:

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

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

  • fuseParams - необязательные параметры, определенные в параметре State fusion parameters source.

  • fusedState возвращается как вектор N-by-1.

  • fusedCov возвращается в виде матрицы N-к-N.

Зависимости

Чтобы включить это свойство, задайте для параметра функции слияния состояний значение Custom.

Источник параметров слияния состояний, указанный как одна из следующих опций:

  • Auto - Блок использует параметры слияния значений по умолчанию для каждого алгоритма слияния состояний. Дополнительные сведения см. в разделах Коэффициент перекрестной ковариации, Оптимизация ковариации на основе и Параметры пользовательского алгоритма слияния состояний.

  • Property - Установка параметров слияния состояний с помощью

    • Параметр коэффициента перекрестной ковариации, когда функция слияния состояний выбрана как Cross.

    • Оптимизация ковариации на основе параметра, когда функция слияния состояний выбрана как Intersection.

    • Параметр параметров пользовательского алгоритма State fusion при выборе функции State fusion в качестве Custom.

Коэффициент перекрестной ковариации, заданный как скаляр в диапазоне (0,1). Посмотрите fusexcov для получения дополнительной информации.

Критерии алгоритма пересечения, указанные как det или trace. Посмотрите fusecovint для получения дополнительной информации.

Параметры пользовательского алгоритма слияния состояний, заданные в любом типе переменной, если они соответствуют настройке необязательного fuseParams ввод функции слияния пользовательских состояний, указанной в параметре функции назначения Name of 'Custom'.

Предохранитель только подтвержденных исходных дорожек, указанных как on или off. Задайте для этого параметра значение off при необходимости слияния всех исходных дорожек независимо от их статуса подтверждения.

Плавкие трассы источника с накрытым покрытием, указанные как off или on. Задайте для этого параметра значение on если вы хотите слить контурные исходные дорожки. Установить для него значение off если вы хотите слить только исходные дорожки, которые не покрыты.

Настройка порта

Источник для времени прогнозирования, указанный как Input port или Auto. Выбрать Input port для ввода времени обновления с помощью входного порта прогнозируемого времени. В противном случае время обновления определяется часами моделирования, управляемыми Simulink.

Выберите этот параметр для активизации вывода предварительных дорожек через выходной порт предварительных дорожек.

Выберите этот параметр, чтобы включить вывод всех дорожек через выходной порт All Tracks.

Выберите этот параметр, чтобы включить выходной порт для анализа информации через выходной порт Info.

Источник имени шины выходного пути, указанный как:

  • Auto - Блок автоматически создает имя шины выходного пути.

  • Property - укажите имя шины выходной дорожки с помощью параметра Specify an output bus name.

Источник имени шины выходной информации, указанный как одна из следующих опций:

  • Auto - блок автоматически создает имя шины выходной информации.

  • Property - Укажите имя выходной информационной шины с помощью параметра Fuser info bus name.

Алгоритмы

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью Simulink ® Coder™

.
Представлен в R2021a