Создайте аргументы функции для блока MATLAB Function путем ввода их в оператор объявления функции в MATLAB Function Block Editor. Когда вы задаете аргументы, Simulink® создает соответствующие порты на блоке MATLAB Function, который можно присоединить к сигналам. Можно выбрать режим типа данных для каждого аргумента, который вы задаете. Каждый режим типа данных представляет свой собственный набор опций.
По умолчанию блоки MATLAB Function наследовали свои типы данных от входящего или исходящего сигнала. Чтобы заменить тип по умолчанию, выберите режим типа данных и затем измените связанные свойства.
Задавать тип аргумента функции блока MATLAB Function:
Дважды кликните блок MATLAB Function, чтобы открыть MATLAB Function Block Editor.
Нажмите Ports & Data Manager, чтобы открыть Порты и Менеджер данных.
На левой панели выберите аргумент интереса.
В панели Data нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных. Затем выберите опцию из Mode выпадающее меню.
Диалоговое окно Свойств данных отображается дополнительные поля для каждого выбора для Mode.
На основе режима вы выбираете, задаете желаемый тип данных:
Режим | Что задать |
---|---|
Inherit (значение по умолчанию) | Тип данных наследован от ранее заданных данных, на основе Scope, который вы выбрали для аргумента функции блока MATLAB Function:
Смотрите наследовавшиеся типы данных аргумента. |
Built in | Выберите из выпадающего списка поддерживаемых типов данных, как описано во Встроенных Типах данных для Аргументов. |
Fixed point | Задайте свойства данных фиксированной точки как описано в Specify Fixed-Point Designer Data Properties. |
Expression | Введите выражение, которое оценивает к типу данных, как описано в Задают Типы аргумента с Выражениями. |
Bus Object | В поле Bus object введите имя Примечание Можно нажать кнопку Edit, чтобы создать или изменить
|
Enumerated | В поле Enumerated введите имя Simulink.IntEnumType возразите, что вы задаете в базовом рабочем пространстве. Смотрите Генерацию кода для Перечислений. |
Аргументы функции блока MATLAB Function могут наследовать свои типы данных, включая типы фиксированной точки, от их связанных сигналов.
Выберите аргумент интереса к Портам и Менеджеру данных
В диалоговом окне свойств Data выберите Inherit: Same as Simulink
от Типа выпадающее меню.
Аргумент может также наследовать сложность (является ли ее значение вещественным или комплексным числом) от сигнала, который соединяется с ним. Чтобы наследовать сложность, установите поле Complexity на диалоговом окне Свойств данных к Inherited.
Примечание
Блоки библиотеки MATLAB Function могли наследовать типы данных, размеры и сложности как обычные блоки MATLAB Function. Однако все экземпляры библиотечного блока в данной модели должны иметь входные параметры с теми же свойствами.
После того, как вы создадите модель, столбец CompiledType Портов и Менеджера данных, или Model Explorer дает фактический тип, наследованный от Simulink в скомпилированной симуляции. Действия схемы, которые хранят значения в заданном выходе, определяют наследованный тип выходных данных. Если ожидаемый тип совпадает с выведенным типом, наследование успешно. Во всех других случаях несоответствие происходит в течение времени сборки.
Когда вы выбираете Built-in for Mode, диалоговое окно свойства Type предоставляет выпадающий список поддерживаемых типов данных. Можно также выбрать тип данных из столбца DataType в Портах и Менеджере данных. Поддерживаемые типы данных:
Тип данных | Описание |
---|---|
| 64-битная плавающая точка двойной точности |
| 32-битная плавающая точка с одинарной точностью |
| Тип данных полуточности занимает 16 битов памяти, но ее представление с плавающей точкой позволяет ему обработать более широкие динамические диапазоны, чем целое число или типы данных с фиксированной точкой, одного размера. Смотрите Тип данных Полуточности в Simulink (Fixed-Point Designer). |
| 64-битное целое число со знаком |
| 32-битное целое число со знаком |
| 16-битное целое число со знаком |
| 8-битное целое число со знаком |
| 64-битное беззнаковое целое |
| 32-битное беззнаковое целое |
| 16-битное беззнаковое целое |
| 8-битное беззнаковое целое |
| Boolean ( |
Можно задать типы аргументов функции блока MATLAB Function как выражения в Портах и Менеджере данных.
Выберите <data type expression>
от Type выпадающее меню диалогового окна Свойств данных или набор Mode к Expression
.
В поле Type замените “<data type expression>
” с выражением, которое оценивает к типу данных. Следующие выражения позволены:
Исказите тип от рабочего пространства MATLAB, как описано в Simulink.AliasType
.
fixdt
функция, чтобы создать Simulink.NumericType
объект, описывающий фиксированную точку или тип данных с плавающей точкой.
type
(Stateflow) оператор, чтобы основывать тип на ранее заданных данных.
Блоки MATLAB Function могут представлять сигналы и значения параметров как числа фиксированной точки. Чтобы симулировать модели, которые используют данные фиксированной точки в блоках MATLAB Function, необходимо установить Fixed-Point Designer™.
Можно установить следующие свойства фиксированной точки:
Со знаком. Выберите, хотите ли вы, чтобы данными фиксированной точки был Signed
или Unsigned
. Данные со знаком могут представлять положительные и отрицательные количества. Данные без знака представляют положительные значения только. Значением по умолчанию является Signed
.
Размер слова. Задайте размер (в битах) слова, которое будет содержать квантованное целое число. Большие размеры слова представляют большие количества большей точностью, чем небольшие размеры слова. Размер слова может быть любым целым числом между 0 и 128 битов. Значение по умолчанию равняется 16.
Масштабирование. Задайте метод для масштабирования ваших данных о фиксированной точке, чтобы избежать условий переполнения и минимизировать ошибки квантования. Можно выбрать следующие режимы масштабирования:
Масштабирование режима | Описание |
---|---|
Binary point (значение по умолчанию) | Если вы выбираете этот режим, Ассистент Типа данных отображает поле Fraction Length, задавая местоположение двоичной точки. Двоичные точки могут быть положительными или отрицательными целыми числами. Положительное целое число перемещает двоичную точку, оставленную самого правого бита той суммой. Например, запись 2 наборов двоичная точка перед вторым битом справа. Отрицательное целое число перемещает двоичную точку дальнейшее право самого правого бита той суммой, как в этом примере:
Значением по умолчанию является 0. |
Slope and bias | Если вы выбираете этот режим, Ассистент Типа данных отображает поля для ввода Slope и Bias.
Можно ввести наклон и сместить как выражения, которые содержат параметры, заданные в рабочем пространстве MATLAB. |
Примечание
Необходимо использовать масштабирование двоичной точки, когда это возможно, чтобы упростить реализацию данных фиксированной точки в сгенерированном коде. Операции с данными фиксированной точки с помощью масштабирования двоичной точки выполняются с простыми сдвигами разряда и устраняют дорогие реализации кода, требуемые для отдельного наклона, и смещают значения.
Переопределение типа данных. Задайте, является ли установкой переопределения типа данных Inherit
(значение по умолчанию) или Off
.
Вычислите Масштабирование Лучшей Точности. Программное обеспечение Simulink может автоматически вычислить значения “лучшей точности” для обоих Binary point
и Slope and bias
при масштабировании на основе Предельных свойств области значений вы задаете.
Автоматически вычислить лучшие значения масштабирования точности:
Задайте Minimum, Maximum или оба Предельных свойства области значений.
Нажмите Calculate Best-Precision Scaling.
Программное обеспечение Simulink вычисляет масштабирующиеся значения, затем отображает их или в Fraction Length или в полях Slope и Bias.
Примечание
Предельные свойства области значений не применяются к данным с набором свойств Scope к Constant
или Parameter
. Simulink не может вычислить лучшую точность, масштабирующуюся для этих видов данных.
Детали фиксированной точки. Можно посмотреть следующие детали Фиксированной точки:
Деталь фиксированной точки | Описание |
---|---|
Представимый максимум | Максимальное количество, которое может быть представлено выбранным типом данных, знаком, размером слова и дробной длиной (или типом данных, знаком, наклоном и смещением). |
Максимум | Максимальное значение задано. |
Минимум | Минимальное значение задано. |
Представимый минимум | Минимальный номер, который может быть представлен выбранным типом данных, знаком, размером слова и дробной длиной (или типом данных, знаком, наклоном и смещением). |
Точность | Точность для данного размера слова и дробной длины (или наклон и смещение). |
Если вы устанавливаете режим Data Type Override на Double
или Single
в Simulink блок MATLAB Function устанавливает тип всех наследованных входных сигналов и параметров к fi double
или fi single
объекты соответственно (см. блок MATLAB function с Переопределением Типа данных (Fixed-Point Designer) для получения дополнительной информации). Необходимо проверять типы данных наследованных входных сигналов и параметров и использовать Порты и Менеджер данных, чтобы установить явные типы для любых входных параметров, которые не должны быть фиксированной точкой. Некоторые операции, такой как sin
, не применимы к объектам фиксированной точки.
Примечание
Если вы не устанавливаете правильные входные типы явным образом, можно столкнуться с проблемами компиляции после установки Data Type Override.
Чтобы установить Переопределение Типа данных, выполните эти шаги:
Во вкладке Simulink Apps выберите Fixed-Point Tool.
Установите значение параметра Data type override к Double
или Single
.
Редактор блока MATLAB function