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

В следующих разделах объясняется, как использовать эти параметры для конфигурирования блока вывода с фиксированной точкой.
Многие блоки 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, который должен быть ufrac(16). Чтобы настроить 16-битный дробный номер со знаком, укажите тип выходных данных sfrac(16).
Дробные числа отличаются от целых чисел масштабированием по умолчанию. В то время как подписанные и неподписанные целочисленные типы данных имеют двоичную точку по умолчанию справа от всех битов, неподписанные дробные типы данных имеют двоичную точку по умолчанию слева от всех битов, в то время как подписанные дробные типы данных имеют двоичную точку по умолчанию справа от знакового бита.
Как неподписанные, так и подписанные дробные типы данных поддерживают защитные биты, которые защищают от переполнения. Например, sfrac(16,4) задает 16-битное дробное число со знаком с 4 защитными битами. Защитные биты расположены слева от двоичной точки по умолчанию.
Можно указать беззнаковые и подписанные обобщенные числа с фиксированной точкой с помощью ufix и sfix соответственно.
Например, чтобы настроить вывод как 16-битный неназначенный обобщенный номер с фиксированной точкой через диалоговое окно блока, укажите параметр Output data type to be ufix(16). Для настройки 16-разрядного обобщенного номера с подписью с фиксированной точкой укажите тип выходных данных sfix(16).
Обобщенные числа с фиксированной точкой отличаются от целых чисел и дробей отсутствием масштабирования по умолчанию. Для этих типов данных блок обычно наследует масштабирование от другого блока.
Примечание
Кроме того, можно использовать fixdt для создания целочисленных, дробных и обобщенных объектов с фиксированной точкой. fixdt функция также позволяет задать масштабирование для типов данных с фиксированной точкой.
Программное обеспечение Fixed-Point Designer поддерживает числа с плавающей запятой с одинарной точностью и двойной точностью в соответствии со стандартом IEEE ® 754-1985 для двоичной арифметики с плавающей запятой. Можно задать числа с плавающей запятой с помощью Simulinkfloat функция.
Например, чтобы настроить вывод как число с плавающей запятой с одинарной точностью через диалоговое окно блока, укажите параметр типа данных Output как float('single'). Чтобы настроить число с плавающей запятой двойной точности, укажите тип выходных данных как float('double').
Помощник по типам данных представляет собой интерактивный графический инструмент, упрощающий задание типов данных для блоков Simulink и объектов данных. Помощник отображается в диалоговых окнах блоков и объектов рядом с параметрами, обеспечивающими управление типами данных, такими как параметр Тип выходных данных. Дополнительные сведения о доступе к помощнику и взаимодействии с ним см. в разделе Определение типов данных с помощью помощника по типам данных.
С помощью помощника по типам данных можно указать тип данных с фиксированной точкой. При выборе Fixed point в поле Mode ассистент отображает поля для описания дополнительных атрибутов типа данных с фиксированной точкой, как показано в этом примере:

Можно задать следующие атрибуты фиксированной точки:
Выберите, должны ли данные с фиксированной точкой быть Signed или Unsigned. Подписанные данные могут представлять положительные и отрицательные величины. Неподписанные данные представляют только положительные значения.
Укажите размер (в битах) слова, которое будет содержать квантованное целое число. Большие размеры слов представляют большие величины с большей точностью, чем небольшие размеры слов. Для моделирования поддерживаются фиксированные размеры слов до 128 бит.
Укажите метод масштабирования данных с фиксированной точкой, чтобы избежать условий переполнения и минимизировать ошибки квантования. Можно выбрать следующие режимы масштабирования:
| Режим масштабирования | Описание |
|---|---|
Binary point | При выборе этого режима ассистент отображает поле Длина дроби, указывая расположение двоичной точки. Двоичные точки могут быть положительными или отрицательными целыми числами. Положительное целое число перемещает двоичную точку влево от самого правого бита на эту величину. Например, запись 2 задает двоичную точку перед вторым битом справа. Отрицательное целое число перемещает двоичную точку дальше вправо от самого правого бита на эту величину.
Дополнительные сведения см. в разделе Масштабирование только двоичных точек. |
Slope and bias | При выборе этого режима ассистент отображает поля для ввода параметров «Уклон» и «Смещение».
Дополнительные сведения см. в разделе Масштабирование уклона и смещения. |
Best precision | При выборе этого режима блок масштабирует постоянный вектор или матрицу таким образом, что точность его элементов максимизируется. Этот режим доступен только для определенных блоков. Дополнительные сведения см. в разделе Постоянное масштабирование для лучшей точности. |
Программное обеспечение Fixed-Point Designer может автоматически вычислять значения «наилучшей точности» для обоих Binary point и Slope and bias масштабирование на основе значений, заданных для других параметров в диалоговом окне. Для автоматического вычисления значений масштабирования с наилучшей точностью введите значения параметров «Выходной минимум» и «Выходной максимум» блока. Затем нажмите кнопку «Рассчитать наиболее точное масштабирование» в ассистенте.
Указывается способ округления чисел с фиксированной точкой с помощью параметра режима округления Integer. Поддерживаются следующие режимы округления:
Ceiling - Этот режим округляется до положительной бесконечности и эквивалентен MATLAB
®ceil функция.
Convergent - Этот режим округляется до ближайшего представимого числа, с привязками, округляющимися до ближайшего чётного целого числа. Конвергентное округление эквивалентно конструктору фиксированных точек convergent функция.
Floor - Этот режим округляется до отрицательной бесконечности и эквивалентен MATLAB floor функция.
Nearest - Этот режим округляется в сторону ближайшего представимого числа, а точная средняя точка округляется в сторону положительной бесконечности. Округление в сторону ближайшей точки эквивалентно конструктору фиксированных точек nearest функция.
Round - Этот режим округляет до ближайшего представимого числа, со связями для положительных чисел округляя в направлении положительной бесконечности и связями для отрицательных чисел округляя в направлении отрицательной бесконечности. Этот режим эквивалентен конструктору фиксированных точек round функция.
Simplest - Этот режим автоматически выбирает между скруглением по направлению к полу и скруглением по направлению к нулю для получения сгенерированного кода, который является максимально эффективным.
Zero - Этот режим округляется до нуля и эквивалентен MATLAB fix функция.
Дополнительные сведения о каждом из этих режимов округления см. в разделе Округление.
Чтобы управлять обработкой условий переполнения для операций с фиксированной точкой, используйте флажок Насыщить при целочисленном переполнении (Saturate on integer overflow).
Если этот флажок установлен, переполнения насыщаются максимальным или минимальным значением, представленным типом данных. Например, переполнение, связанное со значащим 8-битным целым числом, может насытиться до -128 или 127.
Если этот флажок не установлен, переполняется до соответствующего значения, представляемого типом данных. Например, число 130 не помещается в знаковое 8-битовое целое число и оборачивается в -126.
Если тип выходных данных является обобщенным числом с фиксированной точкой, можно заблокировать его настройку типа выходных данных, установив флажок Блокировать тип выходных данных от изменений с помощью инструментов с фиксированной точкой.
Заблокированный инструмент Fixed-Point Tool и сценарий автоматического масштабирования autofixexp не изменяйте параметр типа выходных данных. В противном случае инструмент «Фиксированная точка» и autofixexp скрипты свободны для настройки типа выходных данных.
Можно настроить блоки преобразования типов данных для обработки сигналов как реальных значений или как сохраненных целых чисел, при этом входные и выходные данные будут иметь равные параметры.

Возможные значения: Real World Value (RWV) и Stored Integer (SI).
В терминах переменных, определенных в Scaling, реальное значение задается V, а сохраненное целое значение - Q. Вы можете рассматривать числа как сохраненные целочисленные значения, если вы моделируете оборудование, которое производит целые числа в качестве выходных данных.