Можно использовать функцию fixdt
в Simulink®, чтобы задать тип данных фиксированной точки. Функция fixdt
создает объект Simulink.NumericType
.
Имена типов данных Simulink должны быть допустимыми идентификаторами MATLAB® меньше чем с 128 символами. Имя типа данных предоставляет информацию о контейнерном типе, кодировании номера и масштабировании.
Следующая таблица обеспечивает ключ для различных символов, которые, кажется, в продуктах Simulink указывают на тип данных и масштабирование значения фиксированной точки.
Символ | Описание | Пример |
---|---|---|
Контейнерный тип | ||
| Тип данных фиксированной точки без знака |
|
| Тип данных фиксированной точки со знаком |
|
| Масштабируемое двойное переопределение типа данных фиксированной точки без знака ( |
|
| Масштабируемое двойное переопределение типа данных фиксированной точки со знаком ( |
|
Кодирование номера | ||
| 10^ |
|
| Отрицательный |
|
| Десятичная точка |
|
Масштабирование кодирования | ||
| Наклон |
|
| Смещение |
|
| Фиксированная экспонента (2^) Отрицательная фиксированная экспонента описывает дробную длину |
|
| Наклонный поправочный коэффициент |
|
C, c, D, или d | Сжатое кодирование для Смещения ПримечаниеЕсли вы передаете этот вектор символа функции | Никакой доступный пример. Для назад совместимости только. Чтобы идентифицировать и заменить вызовы |
T или t | Сжатое кодирование для Наклона ПримечаниеЕсли вы передаете этот вектор символа | Никакой доступный пример. Для назад совместимости только. Чтобы идентифицировать и заменить вызовы |
Чтобы присвоить тип данных фиксированной точки номеру или переменной в MATLAB, используйте конструктора fi
. Получившееся значение фиксированной точки называется объектом 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 workspace в модель Simulink. Для этого данные должны быть в формате структуры с объектом fi
в поле values
. В формате массивов блок From Workspace только принимает действительный, с двойной точностью данные.
Можно записать фиксированной точке вывод от модели до MATLAB workspace через блок To Workspace или в массиве или в формате структуры. Данные фиксированной точки, записанные блоком To Workspace в рабочую область в формате структуры, могут быть считаны назад в модель Simulink в формате структуры блоком From Workspace.
Масштабируемый удваивается, гибрид между числами и фиксированной точки с плавающей точкой. Designer™ фиксированной точки хранит их, как удваивается с масштабированием, знаком и сохраненной информацией о размере слова. Например, контейнером устройства хранения данных для типа данных фиксированной точки sfix16_En14
является int16
. Контейнер устройства хранения данных масштабируемого эквивалента удваивает тип данных, flts16_En14
является double
с плавающей точкой. Fixed-Point Designer применяет масштабирующуюся информацию к сохраненному с плавающей точкой дважды, чтобы получить реальное значение. Хранение значения в двойном почти всегда устраняет проблемы точности и переполнение.
Simulink.NumericType
| fi
| fimath
| fixdt