Сгенерируйте код со строгим и нединамическим выделением памяти с одинарной точностью от Sensor Fusion and Tracking Toolbox

Введите функции, объекты и блоки, которые поддерживают строгую генерацию кода и нединамического выделения памяти с одинарной точностью в Sensor Fusion and Tracking Toolbox™.

Введение в строгое и нединамическое выделение памяти с одинарной точностью

В Sensor Fusion and Tracking Toolbox (SFTT) много функций, объектов и блоков Simulink поддерживают генерацию кода C/C++. Вы видите, поддерживают ли функция, объект или блок генерацию кода, а также какие-либо ограничения в разделе Extended Capabilities его страницы с описанием. Для получения дополнительной информации о том, как сгенерировать код в командной строке, или при помощи MATLAB® Приложение Coder™, смотрите, Генерируют код С в Командной строке (MATLAB Coder) и Генерируют код С при помощи Приложения MATLAB Coder (MATLAB Coder), соответственно. Для генерации кода для приложений SFTT смотрите, Как Сгенерировать код С для Средства отслеживания и Сгенерировать Код для Термофиксатора Дорожки с Неоднородными Исходными примерами Дорожек.

Sensor Fusion and Tracking Toolbox широко поддерживает генерацию кода с двойной точностью, и сгенерированный код может использовать динамическое выделение памяти при необходимости. Хотя переменные с двойной точностью могут обеспечить более точные вычисления, они увеличили требования к памяти по переменным с одинарной точностью. Точно так же, хотя динамическое выделение памяти допускает гибкое переменное выделение, этот процесс обычно медленнее, чем нединамическое выделение памяти. По этим и другим причинам Sensor Fusion and Tracking Toolbox оказывает строгую поддержку и нединамического выделения памяти с одинарной точностью для некоторых алгоритмов.

В строгой генерации кода с одинарной точностью, сгенерированном коде C/C++, включая вход, тело кода и выход, не используют переменные с двойной точностью. Другими словами, это может только использовать переменные с одинарной точностью и переменные целочисленного типа до 32 битов. Для алгоритмов, которые поддерживают строгую генерацию кода с одинарной точностью в SFTT, можно включить его путем передачи входных параметров с одинарной точностью. Включить строгую генерацию кода с одинарной точностью:

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

  • Для объекта, который поддерживает генерацию кода с одинарной точностью, задайте входные параметры как переменные недвойной точности и задайте любые пользовательские настройки как недвойную точность. Например, чтобы сгенерировать код с одинарной точностью от trackerGNN Система object™:

    • Необходимо задать входные параметры, такие как обнаружения, как значения недвойной точности.

    • Необходимо задать FilterInitializationFcn свойство средства отслеживания возвратить фильтр с одинарной точностью.

В генерации кода нединамического выделения памяти выделение памяти каждой переменной определяется в течение времени компиляции, прежде, чем запустить код. Нединамическое выделение памяти обычно быстрее, чем динамическое выделение памяти. Для получения информации о том, как отключить динамическое выделение памяти, смотрите, Генерируют Код для Данных Переменного Размера (MATLAB Coder) и Выделение Управляющей памяти для Массивов Переменного Размера (MATLAB Coder).

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

Поддерживаемые средства отслеживания и отслеживающие фильтры

Эти средства отслеживания и отслеживающие фильтры поддерживают генерацию кода и нединамического выделения памяти с одинарной точностью с заданными ограничениями.

Объекты или блокиОграничения генерации кода с одинарной точностьюОграничения генерации кода нединамического выделения памяти
trackerJPDA или Joint Probabilistic Data Association Multi Object Tracker
  • Должен установить средство отслеживания на режим K-best JPDA.

  • Фильтр должен быть одним из них, сконфигурированных в с одинарной точностью:

    • trackingEKF

    • trackingUKF

    • trackingCKF

    • trackingIMM

  • Должен установить средство отслеживания на режим K-best JPDA.

  • Фильтр должен быть одним из них:

    • trackingEKF

    • trackingUKF

    • trackingCKF

    • trackingIMM

  • Для trackerJPDA, MaxNumDetections свойство должно быть конечным.

trackerGNN или Global Nearest Neighbor Multi Object Tracker
  • Фильтр должен быть одним из них, сконфигурированных в с одинарной точностью:

    • trackingEKF

    • trackingUKF

    • trackingCKF

    • trackingIMM

  • Алгоритмом присвоения должен быть Jonker-Volgenant.

  • Фильтр должен быть одним из них:

    • trackingEKF

    • trackingUKF

    • trackingCKF

    • trackingIMM

  • Алгоритмом присвоения должен быть Jonker-Volgenant или MatchPairs.

  • Для trackerGNN, MaxNumDetections свойство должно быть конечным.

trackingEKFФункция изменения состояния и функция измерения должны поддержать с одинарной точностью.Никакие ограничения
trackingUKFФункция изменения состояния и функция измерения должны поддержать с одинарной точностью.Никакие ограничения
trackingCKFФункция изменения состояния и функция измерения должны поддержать с одинарной точностью.Никакие ограничения
trackingIMMtrackingIMM фильтр должен быть сконфигурирован с любым trackingEKF, trackingUKF, или trackingCKF набор объектов с одинарной точностью.trackingIMM фильтр должен быть сконфигурирован с любым trackingEKF, trackingUKF, или trackingCKF объекты.

Поддерживаемые функции присвоения

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

ФункцииОграничения генерации кода с одинарной точностьюОграничения генерации кода нединамического выделения памяти
assignkbest

Должен использовать алгоритм Jonker-Volgenant.

Должен использовать алгоритм Jonker-Volgenant.

assignjvНикакие ограниченияНикакие ограничения
jpdaEventsДолжен использовать событие соединения K-best.Должен использовать событие соединения K-best.

Поддерживаемые функции модели движения

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

Поддерживаемые функции инициализации фильтра

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