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

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

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

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

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

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

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

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

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

  • Тип данных полуточности поддерживается для симуляции в Нормальном, Акселераторе и Быстрых Режимах Accelerator. Тип данных полуточности также поддерживается для SIL, PIL и режимов external mode.

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

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

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

  • Генерация HDL-кода с помощью HDL Coder™.

    Для получения дополнительной информации смотрите Начало работы с Собственным компонентом HDL Coder Поддержка С плавающей точкой (HDL Coder).

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

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

Чтобы просмотреть блоки, которые поддерживают половину точности в командной строке, введите:

showblockdatatypetable

Блоки, которые поддерживают половину точности, отображают X в столбце пометил Half.

Сгенерируйте код для половины систем точности

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

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

open_system('ex_half_arithmetic');

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

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

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

Смотрите также

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте