Сконфигурируйте блоки с выходом с фиксированной точкой

Чтобы создать модель с фиксированной точкой, сконфигурируйте Simulink® блоки для вывода сигналов с фиксированной точкой. Блоки Simulink, которые поддерживают выход с фиксированной точкой, обеспечивают параметры, которые позволяют вам задать, должен ли блок выводить сигналы с фиксированной точкой, и, если да, размер, масштабирование и другие атрибуты вывода с фиксированной точкой. Эти параметры обычно появляются на Signal Attributes панели диалогового окна параметра блока.

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

Задайте тип выходных данных и масштабирование

Многие блоки Simulink позволяют вам задать тип выходных данных и масштабирование с помощью параметра, который появляется в диалоговом окне блока. Этот параметр (обычно именуемый Output data type) предоставляет раскрывающееся меню, в котором перечислены типы данных, поддерживаемые конкретным блоком. В целом можно задать тип выходных данных как правило, которое наследует тип данных, встроенный тип данных, выражение, которое вычисляет тип данных или объект типа данных Simulink. Для получения дополнительной информации см. «Типы данных сигналов управления».

Программное обеспечение Fixed-Point Designer™ позволяет вам конфигурировать блоки Simulink с:

  • Типы данных с фиксированной точкой

    Типы данных с фиксированной точкой характеризуются размером слова в битах и их двоичной точкой - средством, которым масштабируются значения с фиксированной точкой.

  • Типы данных с плавающей точкой

    Типы данных с плавающей точкой характеризуются их знаковым битом, полем дроби (mantissa) и экспонентным полем.

Чтобы сконфигурировать блоки с типами данных Fixed-Point Designer, задайте параметр типа данных в диалоговом окне блока как выражение, которое вычисляет тип данных. Кроме того, можно использовать ассистент, который упрощает задачу ввода выражений типов данных (см. «Задание типов данных с фиксированной точкой с помощью ассистента типов данных»). В следующих разделах описываются разновидности типов данных с фиксированной и плавающей точками и соответствующие функции, которые вы используете для их определения.

Целые числа

Чтобы задать беззнаковые и знаковые целые числа, используйте uint и sint функций, соответственно.

Например, чтобы сконфигурировать 16-битное беззнаковое целое число через диалоговое окно блока, задайте параметр Output data type следующим uint(16). Чтобы сконфигурировать 16-битное целое число со знаком, задайте параметр Output data type следующим sint(16).

Для целочисленных типов данных двоичная точка по умолчанию лежит справа от всех бит.

Дробные числа

Чтобы задать беззнаковые и знаковые дробные числа, используйте ufrac и sfrac функций, соответственно.

Например, чтобы сконфигурировать выход как 16-битное беззнаковое дробное число через диалоговое окно блока, задайте параметр Output data type, который будет ufrac(16). Чтобы сконфигурировать 16-битный дробный номер со знаком, задайте Output data type, которые будут sfrac(16).

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

Беззнаковые и подписанные дробные типы данных поддерживают защитные биты, которые действуют, чтобы защитить от переполнения. Для примера, sfrac(16,4) задает 16-разрядное дробное число со знаком с 4 защитными битами. Защитные биты лежат слева от двоичной точки по умолчанию.

Обобщенные числа с фиксированной точкой

Вы можете задать беззнаковые и подписанные обобщенные номера с фиксированной точкой с ufix и sfix функций, соответственно.

Например, чтобы сконфигурировать выход как 16-битный беззнаковый обобщенный номер с фиксированной точкой через диалоговое окно блока, задайте параметр Output data type, который будет ufix(16). Чтобы сконфигурировать 16-разрядный обобщенный номер с фиксированной точкой со знаком, задайте Output data type, которые будут sfix(16).

Обобщенные числа с фиксированной точкой отличаются от целых чисел и дробей отсутствием масштабирования по умолчанию. Для этих типов данных блок обычно наследует свое масштабирование от другого блока.

Примечание

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

Числа с плавающей запятой

Программное обеспечение Fixed-Point Designer поддерживает одноточные и двойные точности чисел с плавающей запятой как определено в IEEE® Стандарт 754-1985 для двоичной арифметики с плавающей точкой. Вы можете задать числа с плавающей запятой с Simulink float функция.

Например, чтобы сконфигурировать выход как число с плавающей запятой с одной точностью через диалоговое окно блока, задайте параметр Output data type следующим float('single'). Чтобы сконфигурировать число с плавающей запятой с двойной точностью, задайте Output data type следующим float('double').

Задайте типы данных с фиксированной точкой с помощью помощника по типам данных

Этот Data Type Assistant является интерактивным графическим инструментом, который упрощает задачу определения типов данных для блоков Simulink и объектов данных. Ассистент появляется в диалоговых окнах блоков и объектов, рядом с параметрами, которые обеспечивают управление типом данных, такими как параметр Output data type. Для получения дополнительной информации о доступе и взаимодействии с ассистентом смотрите Задать типы данных Используя Data Type Assistant.

Можно использовать Data Type Assistant, чтобы задать тип данных с фиксированной точкой. Когда вы выбираете Fixed point в Mode поле помощник отображает поля для описания дополнительных атрибутов типа данных с фиксированной точкой, как показано в этом примере:

Можно задать следующие атрибуты с фиксированной точкой:

Signedness

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

Размер слова

Задайте размер (в битах) слова, которое будет держать квантованное целое число. Большие размеры слов представляют большие величины с большей точностью, чем маленькие размеры слов. Для симуляции поддерживаются слова с фиксированной точкой размером до 128 бит.

Масштабирование

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

Режим масштабированияОписание
Binary point

Если вы выбираете этот режим, ассистент отображает поле Fraction length, задавая расположение двоичной точки.

Двоичные точки могут быть положительными или отрицательными целыми числами. Положительное целое число перемещает двоичную точку влево от крайнего правого бита на эту величину. Для примера запись 2 устанавливает двоичную точку перед вторым битом справа. Отрицательное целое число перемещает двоичную точку дальше справа от крайнего правого бита на эту величину.

Для получения дополнительной информации см. раздел «Binary - Точка только масштабирование».

Slope and bias

При выборе этого режима ассистент отображает поля для ввода Slope и Bias.

  • Наклон может быть любым положительным вещественным числом.

  • Смещение может быть любым реальным числом.

Для получения дополнительной информации см. раздел «Масштабирование уклона и смещения».

Best precision

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

Для получения дополнительной информации см. раздел «Постоянное масштабирование» в разделе «Лучшая точность».

Вычисление оптимальной точности масштабирования

Программное обеспечение Fixed-Point Designer может автоматически вычислять значения «лучшей точности» для обоих Binary point и Slope and bias масштабирование, основанное на значениях, которые вы задаете для других параметров в диалоговом окне. Чтобы вычислить значения оптимальной точности и масштабирования автоматически, введите значения для параметров Output minimum и Output maximum блока. Затем нажмите кнопку Calculate Best-Precision Scaling в ассистенте.

Округление

Вы задаете, как числа с фиксированной точкой округляются параметром Integer rounding mode. Поддерживаются следующие режимы округления:

  • Ceiling - Этот режим округляется к положительной бесконечности и эквивалентен MATLAB® ceil функция.

  • Convergent - Этот режим округляется к ближайшему представляемому числу с привязками, округляющимися до ближайшего четного целого числа. Сходимое округление эквивалентно Fixed-Point Designer convergent функция.

  • Floor - Этот режим округляет к отрицательной бесконечности и эквивалентен MATLAB floor функция.

  • Nearest - Этот режим округляется к ближайшему представленному числу с точной средней точностью, округленной к положительной бесконечности. Округление к ближайшему эквивалентно Fixed-Point Designer nearest функция.

  • Round - Этот режим округляется до ближайшего представимого числа с связями для положительных чисел, округляющих в направлении положительной бесконечности, и связями для отрицательных чисел, округленных в направлении отрицательной бесконечности. Этот режим эквивалентен Fixed-Point Designer round функция.

  • Simplest - Этот режим автоматически выбирает между округлым к полу и округлым к нулю, чтобы получить сгенерированный код, который является максимально эффективным.

  • Zero - Этот режим округляется к нулю и эквивалентен MATLAB fix функция.

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

Обработка переполнения

Чтобы контролировать обработку условий переполнения для операций с фиксированной точкой, используйте флажок Saturate on integer overflow.

Если выбран этот флажок, переполнения достигают максимального или минимального значения, представленного типом данных. Для примера переполнение, сопоставленное с 8-битным целым числом со знаком, может насыщаться до -128 или 127.

Если этот флажок не установлен, переполнения переходят к соответствующему значению, которое представляется типом данных. Для примера число 130 не помещается в 8-разрядное целое число со знаком и может обернуться до -126.

Блокируйте настройку типа выходных данных

Если тип выходных данных является обобщенным номером с фиксированной точкой, у вас есть опция заблокировать настройку его типа выходных данных, установив флажок Lock output data type setting against changes by the fixed-point tools.

Когда он заблокирован, Fixed-Point Tool и скрипт автоматического масштабирования autofixexp не изменяйте настройку типа выходных данных. В противном случае Fixed-Point Tool и autofixexp скрипт свободен для того чтобы настроить настройку типа выходных данных.

Значения в реальном мире от сохраненных целочисленных значений

Можно сконфигурировать блоки Data Type Conversion, чтобы рассматривать сигналы как реальные значения или как сохраненные целые числа с параметром Input and output to have equal.

Возможные значения Real World Value (RWV) и Stored Integer (SI).

В терминах переменных, определенных в масштабирование, значение реального мира задается V, а сохраненное целое число задается Q. Вы можете захотеть обработать числа как сохраненные целые значения, если вы моделируете оборудование, которое производит целые числа как вывод.

Похожие темы