Можно использовать fixdt
функция в Simulink® задавать тип данных с фиксированной точкой. fixdt
функция создает Simulink.NumericType
объект.
Именами типов данных Simulink должен быть допустимый MATLAB® идентификаторы меньше чем с 128 символами. Имя типа данных предоставляет информацию о контейнерном типе, кодировании номера и масштабировании.
Следующая таблица обеспечивает ключ для различных символов, которые, кажется, в продуктах Simulink указывают на тип данных и масштабирование значения фиксированной точки.
Символ | Описание | Пример |
---|---|---|
Контейнерный тип | ||
| Тип данных с фиксированной точкой без знака |
|
| Тип данных с фиксированной точкой со знаком |
|
| Масштабируемое двойное переопределение типа данных с фиксированной точкой без знака ( |
|
| Масштабируемое двойное переопределение типа данных с фиксированной точкой со знаком ( |
|
Кодирование номера | ||
| 10^ |
|
| Отрицательный |
|
| Десятичная точка |
|
Масштабирование кодирования | ||
| Наклон |
|
| Смещение |
|
| Фиксированная экспонента (2^) Отрицательная фиксированная экспонента описывает дробную длину |
|
| Наклонный поправочный коэффициент |
|
C, c, D, или d | Сжатое кодирование для Смещения Примечание Если вы передаете этот вектор символов | Никакой доступный пример. Для назад совместимости только. Идентифицировать и заменять вызовы |
T или t | Сжатое кодирование для Наклона Примечание Если вы передаете этот вектор символов | Никакой доступный пример. Для назад совместимости только. Идентифицировать и заменять вызовы |
Чтобы присвоить тип данных с фиксированной точкой номеру или переменной в MATLAB, используйте fi
(Fixed-Point Designer) конструктор. Получившееся значение фиксированной точки называется fi
объект. Например, следующее создает fi
a объектов и b с атрибутами, показанными в отображении, все из которых мы можем задать, когда переменные создаются. Обратите внимание на то, что, когда FractionLength
свойство не задано, оно установлено автоматически в "лучшую точность" для данного размера слова, сохранив старшие значащие биты значения. Когда WordLength
свойство не задано это значения по умолчанию к 16 битам.
a = fi(pi)
a = 3.1416015625 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 13
b = fi(0.1)
b = 0.0999984741210938 DataTypeMode: Fixed-point: binary point scaling Signedness: Signed WordLength: 16 FractionLength: 18
Используйте блок From Workspace, чтобы считать данные фиксированной точки из рабочего пространства MATLAB в модель Simulink. Для этого данные должны быть в формате структуры с fi
объект в values
поле . В формате массивов блок From Workspace только принимает действительные, данные с двойной точностью.
Можно записать фиксированной точке выход от модели до рабочего пространства MATLAB через блок To Workspace или в массиве или в формате структуры. Данные фиксированной точки, записанные блоком To Workspace в рабочую область в формате структуры, могут быть считаны назад в модель Simulink в формате структуры блоком From Workspace.
Масштабируемый удваивается, гибрид между числами и фиксированной точки с плавающей точкой. Fixed-Point Designer™ хранит их, как удваивается с масштабированием, знаком и сохраненной информацией о размере слова. Например, контейнер устройства хранения данных для типа данных с фиксированной точкой sfix16_En14
int16
. Контейнер устройства хранения данных масштабируемого эквивалента удваивает тип данных, flts16_En14
double
с плавающей точкой. Fixed-Point Designer применяет масштабирующуюся информацию к сохраненному с плавающей точкой дважды, чтобы получить реальное значение. Хранение значения в двойном почти всегда устраняет проблемы точности и переполнение.
fi
(Fixed-Point Designer) | fimath
(Fixed-Point Designer) | fixdt
| Simulink.NumericType