Сигналы и блочные выходы могут указывать тип данных с полуконкретностью. Тип данных половинной точности поддерживается для моделирования и генерации кода для параметров и подмножества блоков.
В 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результат операции возвращается к типу данных с полуточностью. Например, см. код, вычисляющий выходной сигнал блока усиления.
