exponenta event banner

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

Сведения об аргументах функции

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

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

Указание типов аргументов

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

  1. В редакторе функциональных блоков MATLAB выберите Edit Data, чтобы открыть диспетчер портов и данных.

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

  3. В диалоговом окне «Свойства данных» (правая панель) нажмите кнопку «Показать помощник по типам данных» для отображения помощника по типам данных. Затем выберите опцию в раскрывающемся меню Режим.

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

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

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

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

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

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

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

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

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

    Задайте свойства данных с фиксированной точкой, как описано в разделе Задание свойств данных конструктора с фиксированной точкой.

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

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

    Примечание

    Можно нажать кнопку «Изменить» для создания или изменения Simulink.Bus объекты с помощью редактора шины Simulink (см. раздел Подключение сигналов шины к функциональным блокам MATLAB.

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

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

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

  1. Выберите интересующий аргумент в окне Ports and Data Manager

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

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

Примечание

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

После построения модели в столбце Скомпилированный тип (Compiled Type) Диспетчера портов и данных (Ports and Data Manager) отображается фактический тип, унаследованный от Simulink в приложении скомпилированного моделирования.

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

Примечание

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

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

При выборе режима «Встроенный» в диалоговом окне «Свойства данных» отображается поле «Тип данных», содержащее раскрывающийся список поддерживаемых типов данных. Можно также выбрать тип данных в столбце Тип данных в Диспетчере портов и данных. Поддерживаются следующие типы данных:

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

double

64-разрядная двойная точность с плавающей запятой

single

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

half

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

int64

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

int32

32-разрядное целое число со знаком

int16

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

int8

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

uint64

64-разрядное целое число без знака

uint32

32-разрядное целое число без знака

uint16

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

uint8

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

boolean

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

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

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

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

  2. В поле Тип замените "<data type expression>"с выражением, которое вычисляет тип данных. Допустимы следующие выражения:

    • Тип псевдонима из рабочей области MATLAB, как описано в разделе Simulink.AliasType.

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

    • type Оператор (Stateflow) для базирования типа на ранее определенных данных

Задание свойств данных конструктора с фиксированной точкой

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

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

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

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

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

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

При выборе этого режима в помощнике по типам данных отображается поле «Длина дроби», в котором указывается местоположение двоичной точки.

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

Значение по умолчанию - 0.

Slope and bias

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

  • Уклон может быть любым положительным действительным числом. Значение по умолчанию - 1,0.

  • Смещение может быть любым реальным числом. Значение по умолчанию - 0,0.

Можно ввести уклон и смещение в виде выражений, содержащих параметры, определенные в рабочем пространстве MATLAB.

Примечание

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

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

Рассчитать наиболее точное масштабирование.  Программное обеспечение Simulink может автоматически вычислять значения «наилучшей точности» для обоих Binary point и Slope and bias масштабирование на основе заданных свойств предельного диапазона.

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

  1. Задайте свойства «Минимальный», «Максимальный» или «Оба».

  2. Щелкните Рассчитать наиболее точное масштабирование (Calculate Best-Precision Sc

Программа Simulink вычисляет значения масштабирования, затем отображает их в полях «Длина фракции» или «Уклон» и «Смещение».

Примечание

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

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

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

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

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

Примечание

Если явно не задать правильные типы ввода, после установки параметра «Переопределение типа данных» могут возникнуть проблемы с компиляцией.

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

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

Подробнее