exponenta event banner

Тип данных половинной точности в Simulink

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

Математические операции в полуизмерении

В Simulink ® входы половинной точности для блоков, выполняющих арифметические операции, реляционные операции и бинарные операции, всегда выполняются с одной точностью, а операция выполняется с одной точностью. Если для выходного типа данных блока установлено значение half, выходной сигнал блока возвращается к типу данных с полуточностью.

Однако в MATLAB ® некоторые функции выполняют арифметические операции с входными данными с полукреционией, эмулируя математику с плавающей запятой с полукреционией. Например, в MATLAB следующий код выполняется с использованием арифметики с плавающей запятой с полукреционией.

y = mod(half(u1), half(u2))

В Simulink с использованием mod функция блока Математическая функция, та же самая операция будет выполнена путем приведения входных данных к одной точности и выполнения операции в математике с плавающей точкой с одной точностью. Результат арифметических операций затем возвращается к половине точности.

y = half(mod(single(half(u1)), single(half(u2))))

Программные функции, поддерживаемые для половинной точности

  • Тип данных половинной точности поддерживается для моделирования в режимах Normal и Accelerator. Тип данных половинной точности также поддерживается для SIL, PIL и внешних режимов. Он не поддерживается для моделирования в режиме быстрого ускорения.

  • Для генерации кода C/C + + поддерживается половинная точность .ert цели.

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

  • Формирование кода ЛПВП с использованием Coder™ ЛПВП.

    Дополнительные сведения см. в разделе Начало работы с встроенным кодером HDL (HDL Coder).

  • В Simulink тип данных половинной точности поддерживает только вещественные значения. Комплексные значения не могут иметь тип данных половинной точности.

Блоки, поддерживаемые для половинной точности

Для просмотра блоков, поддерживающих половинную точность, в командной строке введите:

showblockdatatypetable

Блоки, поддерживающие половинную точность, отображают X в столбце «Половина».

Создание кода для систем половинной точности

Можно создать таргетинг кода C .ert цели для моделей Simulink с использованием типа данных с полукреционом. Создание кода для .ert для целей требуется лицензия Embedded Coder ®.

Откройте окно ex_half_arithmetic модель. Модель выполняет несколько арифметических операций. Все значения параметров и типы выходных данных определяют тип данных с полуизмеримостью.

open_system('ex_half_arithmetic');

Чтобы создать код C для модели, нажмите клавиши Ctrl + B. В отчете о создании кода откройте ex_half_arithmetic.c файл. Переменные половинной точности являются типами в сгенерированном коде как real16_T. Например, см. rtb_Gain переменная.

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

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

См. также

Связанные темы