API для написанных пользователем S-функций с фиксированной точкой обеспечивает поддержку разнообразия Simulink® и типы данных Fixed-Point Designer™, включая
Встроенные типы данных Simulink
single
double
uint8
int8
uint16
int16
uint32
int32
Типы данных Simulink с фиксированной точкой, такие как
sfix16_En15
ufix32_En16
ufix128
sfix37_S3_B5
Типы данных, следующие из типа данных, переопределяются на Scaled double
, таких как
flts16
flts16_En15
fltu32_S3_B5
Для получения дополнительной информации см. «Тип данных с фиксированной точкой» и «Масштабирование обозначения».
API обрабатывает целые числа как числа с фиксированной точкой с тривиальным масштабированием. В представлении [Смещение наклона] номера с фиксированной точкой представлены как
real-world value = (slope × <reservedrangesplaceholder1> ) + bias.
В тривиальном случае slope = 1 и bias = 0.
В терминах масштабирования только для двоичных точек двоичная точка находится справа от наименее значимого бита для тривиального масштабирования, что означает, что длина дроби равна нулю:
real-world value = <reservedrangesplaceholder0> × 2 -fraction length = <reservedrangesplaceholder0> × 2 0.
В любом случае тривиальное масштабирование означает, что значение в реальном мире равно сохраненному целому значению:
real-world value = integer.
Все целые числа, включая встроенные в Simulink целые числа, такие как uint8
, рассматриваются как числа с фиксированной точкой с тривиальным масштабированием этим API. Однако встроенные в Simulink целые числа отличаются тем, что их использование не приводит к извлечению лицензии на программное обеспечение Fixed-Point Designer.
Этот Fixed-Point Tool позволяет вам выполнить различные переопределения типов данных для сигналов с фиксированной точкой в симуляциях. Этот API может обрабатывать сигналы, типы данных которых были переопределены таким образом:
Сигнал, который был переопределен на Single
рассматривается как встроенный в Simulink single
.
Сигнал, который был переопределен на Double
рассматривается как встроенный в Simulink double
.
Сигнал, который был переопределен на Scaled double
рассматривается как тип данных ScaledDouble
.
ScaledDouble
сигналы являются гибридом между сигналами с плавающей и фиксированной точками, поскольку они сохраняются как doubles
с сохранением информации о масштабировании, значении и размере слова. Значение сохранено как значение с плавающей точкой double
, но как и в случае числа с фиксированной точкой, различие между сохраненным целым значением и вещественным значением остается. Информация о масштабировании применяется к сохраненному целому числу double
для получения реального значения. Путем хранения значения в double
проблемы переполнения и точности почти всегда устраняются. Обратитесь к любой отдельной странице с описанием функции API в конце этого приложения, чтобы узнать, как эта функция обрабатывает ScaledDouble
сигналы.
Для получения дополнительной информации о инструменте Fixed-Point Tool и переопределении типа данных см. Fixed-Point Tool.