Введите аргументы функции

Об аргументах функции

Вы создаете аргументы функции для блока MATLAB Function путем ввода их в его функциональный заголовок в Редакторе блока MATLAB function. Когда вы задаете аргументы, программное обеспечение Simulink® создает соответствующие порты на блоке MATLAB Function, который можно присоединить к сигналам. Можно выбрать data type mode для каждого аргумента, который вы задаете для блока MATLAB Function. Каждый режим типа данных представляет свой собственный набор опций для выбора data type.

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

Определение типов аргумента

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

  1. Из Редактора блока MATLAB function выберите Edit Data, чтобы открыть Порты и Менеджер данных.

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

  3. В диалоговом окне свойств Data (правая панель) нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных. Затем выберите опцию из Mode выпадающее меню.

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

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

    РежимЧто задать
    Inherit (значение по умолчанию)Вы не можете задать значение. Тип данных наследован от ранее заданных данных, на основе осциллографа, который вы выбрали для аргумента функции блока MATLAB Function:
    • Если осциллографом является Input, тип данных наследован от входного сигнала на назначенном порте.

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

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

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

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

    Задайте свойства данных фиксированной точки как описано в Specifying 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.

После того, как вы создадите модель, Скомпилированный столбец Типа Портов и Менеджера данных дает фактический тип, наследованный от Simulink в скомпилированном приложении симуляции.

Наследованный тип выходных данных выведен из действий схемы, которые хранят значения в заданном выходе. В предыдущем примере, переменных mean и stdev вычисляются из операций с двойными операндами, которые дают к результатам типа double. Если ожидаемый тип совпадает с выведенным типом, наследование успешно. Во всех других случаях несоответствие происходит в течение времени изготовления.

Примечание

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

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

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

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

double

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

single

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

int32

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

int16

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

int8

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

uint32

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

uint16

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

uint8

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

boolean

Булевская переменная (1 = true; 0 = false)

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

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

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

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

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

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

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

Определение свойств данных Fixed-Point Designer

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

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

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

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

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

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

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

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

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

Slope and bias

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

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

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

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

Примечание

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

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

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

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

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

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

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

Примечание

Предельные свойства области значений не применяются к 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.

 Как установите переопределение типа данных?

Связанные примеры

Больше о