Аргументы функции Type

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

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

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

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

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

  1. В редакторе блоков MATLAB function выберите Edit Data, чтобы открыть Ports and Data Manager.

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

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

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

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

    СпособЧто указать
    Inherit (по умолчанию)

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

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

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

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

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

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

    Задайте свойства данных с фиксированной точкой, как описано в разделе «Задание свойств данных Fixed-Point Designer».

    ExpressionВведите выражение, которое вычисляется по типу данных, как описано в разделе «Определение типов аргументов с выражениями».
    Bus Object

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

    Примечание

    Для создания или изменения можно нажать кнопку Edit Simulink.Bus объекты, использующие Редактор шины Simulink (см. «Присоединение сигналов шины к блокам MATLAB function»).

    EnumeratedВ поле Перечисляемое введите имя Simulink.IntEnumType объект, который вы задаете в базовом рабочем пространстве. Для получения информации о перечислениях см. раздел «Генерация кода».

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

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

  1. Выберите интересующий аргумент в Диспетчере портов и данных

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

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

Примечание

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

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

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

Примечание

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

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

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

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

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

Логический (1 = true; 0 = false)

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

Можно задать типы аргументов MATLAB Function функции блока в качестве выражений в Ports и Data Manager.

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

  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 устанавливает двоичную точку перед вторым битом справа. Отрицательное целое число перемещает двоичную точку дальше справа от крайнего правого бита на эту величину, как в этом примере:

Значение по умолчанию 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.

Примечание

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

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

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

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

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

Примечание

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

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

Похожие примеры

Подробнее о