Задайте и измените типы аргумента функции

Создайте аргументы функции для блока MATLAB Function путем ввода их в оператор объявления функции в MATLAB Function Block Editor. Когда вы задаете аргументы, Simulink® создает соответствующие порты на блоке MATLAB Function, который можно присоединить к сигналам. Можно выбрать режим типа данных для каждого аргумента, который вы задаете. Каждый режим типа данных представляет свой собственный набор опций.

По умолчанию блоки MATLAB Function наследовали свои типы данных от входящего или исходящего сигнала. Чтобы заменить тип по умолчанию, выберите режим типа данных и затем измените связанные свойства.

Задайте типы аргумента

Задавать тип аргумента функции блока MATLAB Function:

  1. Дважды кликните блок MATLAB Function, чтобы открыть MATLAB Function Block Editor.

  2. Нажмите Ports & Data Manager, чтобы открыть Порты и Менеджер данных.

  3. На левой панели выберите аргумент интереса.

  4. В панели Data нажмите ассистент типа данных Show кнопкаShow data type assistant button, чтобы отобразить Ассистент Типа данных. Затем выберите опцию из Mode выпадающее меню.

    Диалоговое окно Свойств данных отображается дополнительные поля для каждого выбора для Mode.

  5. На основе режима вы выбираете, задаете желаемый тип данных:

    РежимЧто задать
    Inherit (значение по умолчанию)

    Тип данных наследован от ранее заданных данных, на основе Scope, который вы выбрали для аргумента функции блока MATLAB Function:

    • Если Scope является Input, тип данных наследован от входного сигнала на назначенном порте.

    • Если Scope является Output, тип данных наследован от выходного сигнала на назначенном порте.

    • Если Scope является Parameter, тип данных наследован от связанного параметра, который может быть задан в замаскированной подсистеме Simulink или MATLAB® рабочая область.

    Смотрите наследовавшиеся типы данных аргумента.

    Built inВыберите из выпадающего списка поддерживаемых типов данных, как описано во Встроенных Типах данных для Аргументов.
    Fixed point

    Задайте свойства данных фиксированной точки как описано в Specify Fixed-Point Designer Data Properties.

    ExpressionВведите выражение, которое оценивает к типу данных, как описано в Задают Типы аргумента с Выражениями.
    Bus Object

    В поле Bus object введите имя Simulink.Bus объект задать свойства структуры MATLAB. Необходимо задать объект шины в базовом рабочем пространстве. Смотрите Как Интерфейс Вводов и выводов Структуры с Сигналами Шины.

    Примечание

    Можно нажать кнопку Edit, чтобы создать или изменить Simulink.Bus объекты с помощью Редактора Шины Simulink (см. Сигналы Шины Присоединения к блокам MATLAB function.

    EnumeratedВ поле Enumerated введите имя Simulink.IntEnumType возразите, что вы задаете в базовом рабочем пространстве. Смотрите Генерацию кода для Перечислений.

Наследование типов данных аргумента

Аргументы функции блока MATLAB Function могут наследовать свои типы данных, включая типы фиксированной точки, от их связанных сигналов.

  1. Выберите аргумент интереса к Портам и Менеджеру данных

  2. В диалоговом окне свойств Data выберите Inherit: Same as Simulink от Типа выпадающее меню.

Аргумент может также наследовать сложность (является ли ее значение вещественным или комплексным числом) от сигнала, который соединяется с ним. Чтобы наследовать сложность, установите поле Complexity на диалоговом окне Свойств данных к Inherited.

Примечание

Блоки библиотеки MATLAB Function могли наследовать типы данных, размеры и сложности как обычные блоки MATLAB Function. Однако все экземпляры библиотечного блока в данной модели должны иметь входные параметры с теми же свойствами.

После того, как вы создадите модель, столбец CompiledType Портов и Менеджера данных, или Model Explorer дает фактический тип, наследованный от Simulink в скомпилированной симуляции. Действия схемы, которые хранят значения в заданном выходе, определяют наследованный тип выходных данных. Если ожидаемый тип совпадает с выведенным типом, наследование успешно. Во всех других случаях несоответствие происходит в течение времени сборки.

Встроенные типы данных для аргументов

Когда вы выбираете Built-in for Mode, диалоговое окно свойства Type предоставляет выпадающий список поддерживаемых типов данных. Можно также выбрать тип данных из столбца DataType в Портах и Менеджере данных. Поддерживаемые типы данных:

Тип данныхОписание

double

64-битная плавающая точка двойной точности

single

32-битная плавающая точка с одинарной точностью

half

Тип данных полуточности занимает 16 битов памяти, но ее представление с плавающей точкой позволяет ему обработать более широкие динамические диапазоны, чем целое число или типы данных с фиксированной точкой, одного размера. Смотрите Тип данных Полуточности в Simulink (Fixed-Point Designer).

int64

64-битное целое число со знаком

int32

32-битное целое число со знаком

int16

16-битное целое число со знаком

int8

8-битное целое число со знаком

uint64

64-битное беззнаковое целое

uint32

32-битное беззнаковое целое

uint16

16-битное беззнаковое целое

uint8

8-битное беззнаковое целое

boolean

Boolean (1 = true; 0 = false)

Задайте типы аргумента с выражениями

Можно задать типы аргументов функции блока MATLAB Function как выражения в Портах и Менеджере данных.

  1. Выберите <data type expression> от Type выпадающее меню диалогового окна Свойств данных или набор Mode к Expression.

  2. В поле Type замените “<data type expression>” с выражением, которое оценивает к типу данных. Следующие выражения позволены:

    • Исказите тип от рабочего пространства MATLAB, как описано в Simulink.AliasType.

    • fixdt функция, чтобы создать Simulink.NumericType объект, описывающий фиксированную точку или тип данных с плавающей точкой.

    • type (Stateflow) оператор, чтобы основывать тип на ранее заданных данных.

Задайте свойства данных Fixed-Point Designer

Блоки MATLAB Function могут представлять сигналы и значения параметров как числа фиксированной точки. Чтобы симулировать модели, которые используют данные фиксированной точки в блоках MATLAB Function, необходимо установить Fixed-Point Designer™.

Можно установить следующие свойства фиксированной точки:

Со знаком.  Выберите, хотите ли вы, чтобы данными фиксированной точки был Signed или Unsigned. Данные со знаком могут представлять положительные и отрицательные количества. Данные без знака представляют положительные значения только. Значением по умолчанию является Signed.

Размер слова.  Задайте размер (в битах) слова, которое будет содержать квантованное целое число. Большие размеры слова представляют большие количества большей точностью, чем небольшие размеры слова. Размер слова может быть любым целым числом между 0 и 128 битов. Значение по умолчанию равняется 16.

Масштабирование.  Задайте метод для масштабирования ваших данных о фиксированной точке, чтобы избежать условий переполнения и минимизировать ошибки квантования. Можно выбрать следующие режимы масштабирования:

Масштабирование режимаОписание
Binary point (значение по умолчанию)

Если вы выбираете этот режим, Ассистент Типа данных отображает поле Fraction Length, задавая местоположение двоичной точки.

Двоичные точки могут быть положительными или отрицательными целыми числами. Положительное целое число перемещает двоичную точку, оставленную самого правого бита той суммой. Например, запись 2 наборов двоичная точка перед вторым битом справа. Отрицательное целое число перемещает двоичную точку дальнейшее право самого правого бита той суммой, как в этом примере:

Shows a graphical representation of binary points.

Значением по умолчанию является 0.

Slope and bias

Если вы выбираете этот режим, Ассистент Типа данных отображает поля для ввода Slope и Bias.

  • Наклон может быть любым положительным вещественным числом. Значение по умолчанию 1.0.

  • Смещение может быть любым вещественным числом. Значение по умолчанию 0.0.

Можно ввести наклон и сместить как выражения, которые содержат параметры, заданные в рабочем пространстве MATLAB.

Примечание

Необходимо использовать масштабирование двоичной точки, когда это возможно, чтобы упростить реализацию данных фиксированной точки в сгенерированном коде. Операции с данными фиксированной точки с помощью масштабирования двоичной точки выполняются с простыми сдвигами разряда и устраняют дорогие реализации кода, требуемые для отдельного наклона, и смещают значения.

Переопределение типа данных.  Задайте, является ли установкой переопределения типа данных Inherit (значение по умолчанию) или Off.

Вычислите Масштабирование Лучшей Точности.  Программное обеспечение Simulink может автоматически вычислить значения “лучшей точности” для обоих Binary point и Slope and bias при масштабировании на основе Предельных свойств области значений вы задаете.

Автоматически вычислить лучшие значения масштабирования точности:

  1. Задайте Minimum, Maximum или оба Предельных свойства области значений.

  2. Нажмите Calculate Best-Precision Scaling.

Программное обеспечение Simulink вычисляет масштабирующиеся значения, затем отображает их или в Fraction Length или в полях Slope и Bias.

Примечание

Предельные свойства области значений не применяются к данным с набором свойств Scope к Constant или Parameter. Simulink не может вычислить лучшую точность, масштабирующуюся для этих видов данных.

Детали фиксированной точки.  Можно посмотреть следующие детали Фиксированной точки:

Деталь фиксированной точкиОписание
Представимый максимумМаксимальное количество, которое может быть представлено выбранным типом данных, знаком, размером слова и дробной длиной (или типом данных, знаком, наклоном и смещением).
МаксимумМаксимальное значение задано.
МинимумМинимальное значение задано.
Представимый минимумМинимальный номер, который может быть представлен выбранным типом данных, знаком, размером слова и дробной длиной (или типом данных, знаком, наклоном и смещением).
ТочностьТочность для данного размера слова и дробной длины (или наклон и смещение).

Используя переопределение типа данных с блоком MATLAB function

Если вы устанавливаете режим Data Type Override на Double или Single в Simulink блок MATLAB Function устанавливает тип всех наследованных входных сигналов и параметров к fi double или fi single объекты соответственно (см. блок MATLAB function с Переопределением Типа данных (Fixed-Point Designer) для получения дополнительной информации). Необходимо проверять типы данных наследованных входных сигналов и параметров и использовать Порты и Менеджер данных, чтобы установить явные типы для любых входных параметров, которые не должны быть фиксированной точкой. Некоторые операции, такой как sin, не применимы к объектам фиксированной точки.

Примечание

Если вы не устанавливаете правильные входные типы явным образом, можно столкнуться с проблемами компиляции после установки Data Type Override.

Чтобы установить Переопределение Типа данных, выполните эти шаги:

  1. Во вкладке Simulink Apps выберите Fixed-Point Tool.

  2. Установите значение параметра Data type override к Double или Single.

Смотрите также

Похожие темы