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