Аргументы функции для функционального блока MATLAB создаются путем ввода их в заголовок функции в редакторе функциональных блоков MATLAB. При определении аргументов программное обеспечение Simulink ® создает соответствующие порты в блоке MATLAB Function, которые можно подключить к сигналам. Можно выбрать режим типа данных для каждого аргумента, определенного для функционального блока MATLAB. Каждый режим типа данных представляет свой собственный набор опций для выбора типа данных .
По умолчанию для аргументов функции блока функций MATLAB используется режим типа данных «Наследуемый». Это означает, что аргумент функции наследует тип данных из входящего или исходящего сигнала. Чтобы переопределить тип по умолчанию, сначала выберите режим типа данных, а затем выберите тип данных в зависимости от режима.
Чтобы указать тип аргумента функции блока функции MATLAB:
В редакторе функциональных блоков MATLAB выберите Edit Data, чтобы открыть диспетчер портов и данных.
В левой области выберите интересующий аргумент.
В диалоговом окне «Свойства данных» (правая панель) нажмите кнопку «Показать помощник по типам данных
» для отображения помощника по типам данных. Затем выберите опцию в раскрывающемся меню Режим.
В диалоговом окне «Свойства данных» динамически отображаются дополнительные поля для указания типа данных, связанного с режимом.
В зависимости от выбранного режима укажите требуемый тип данных:
| Способ | Что указать |
|---|---|
Inherit (по умолчанию) | Невозможно указать значение. Тип данных наследуется из ранее определенных данных на основе области, выбранной для аргумента функции блока функции MATLAB:
См. раздел Наследование типов данных аргументов. |
Built in | Выберите из раскрывающегося списка поддерживаемые типы данных, как описано в разделе Встроенные типы данных для аргументов. |
Fixed point | Задайте свойства данных с фиксированной точкой, как описано в разделе Задание свойств данных конструктора с фиксированной точкой. |
Expression | Введите выражение, которое вычисляет тип данных, как описано в разделе Определение типов аргументов с выражениями. |
Bus Object | В поле Bus object введите имя Примечание Можно нажать кнопку «Изменить» для создания или изменения
|
Enumerated | В поле Перечисляемый введите имя Simulink.IntEnumType , который определяется в базовой рабочей области. См. раздел Создание кода для перечислений. |
Аргументы функциональных блоков MATLAB могут наследовать свои типы данных, включая фиксированные типы точек, из сигналов, к которым они подключены.
Выберите интересующий аргумент в окне Ports and Data Manager
В диалоговом окне «Свойства данных» выберите Inherit: Same as Simulink из раскрывающегося меню Тип.
Список поддерживаемых типов данных см. в разделе Встроенные типы данных для аргументов.
Примечание
Аргумент также может наследовать свою сложность (независимо от того, является ли его значение вещественным или комплексным числом) от сигнала, который к нему подключен. Для наследования сложности установите в поле Сложность в диалоговом окне Свойства данных значение Унаследовано.
После построения модели в столбце Скомпилированный тип (Compiled Type) Диспетчера портов и данных (Ports and Data Manager) отображается фактический тип, унаследованный от Simulink в приложении скомпилированного моделирования.
Унаследованный тип выходных данных выводится из действий диаграммы, которые хранят значения в указанных выходных данных. В предыдущем примере переменные mean и stdev вычисляются из операций с двойными операндами, которые дают результаты типа double. Если ожидаемый тип совпадает с выводимым типом, наследование выполняется успешно. Во всех остальных случаях несоответствие происходит во время построения.
Примечание
Функциональные блоки MATLAB библиотеки могут иметь наследуемые типы данных, размеры и сложности, такие как обычные функциональные блоки MATLAB. Однако все экземпляры блока библиотеки в данной модели должны иметь входные данные с одинаковыми свойствами.
При выборе режима «Встроенный» в диалоговом окне «Свойства данных» отображается поле «Тип данных», содержащее раскрывающийся список поддерживаемых типов данных. Можно также выбрать тип данных в столбце Тип данных в Диспетчере портов и данных. Поддерживаются следующие типы данных:
| Тип данных | Описание |
|---|---|
| 64-разрядная двойная точность с плавающей запятой |
| 32-разрядная одинарная точность с плавающей запятой |
| Тип данных половинной точности занимает 16 бит памяти, но его представление с плавающей запятой позволяет обрабатывать более широкие динамические диапазоны, чем целочисленные или фиксированные типы данных одинакового размера. См. раздел Тип данных половинной точности в Simulink (конструктор фиксированных точек). |
| 64-битное целое число со знаком |
| 32-разрядное целое число со знаком |
| 16-битное целое число со знаком |
| 8-битное целое число со знаком |
| 64-разрядное целое число без знака |
| 32-разрядное целое число без знака |
| 16-битное целое число без знака |
| 8-битное целое число без знака |
| Логическое значение (1 = |
Типы аргументов функциональных блоков MATLAB можно указать в качестве выражений в Диспетчере портов и данных.
Выбрать <data type expression> в раскрывающемся меню «Тип» диалогового окна «Свойства данных».
В поле Тип замените "<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 | При выборе этого режима в помощнике по типам данных отображаются поля для ввода значений уклона и смещения.
Можно ввести уклон и смещение в виде выражений, содержащих параметры, определенные в рабочем пространстве MATLAB. |
Примечание
Следует по возможности использовать двоичное масштабирование для упрощения реализации данных с фиксированной точкой в сгенерированном коде. Операции с данными с фиксированной точкой, использующими двоичное масштабирование, выполняются с простыми битовыми сдвигами и устраняют дорогостоящие реализации кода, необходимые для отдельных значений наклона и смещения.
Переопределение типа данных. Укажите, является ли параметр переопределения типа данных Inherit (по умолчанию) или Off.
Рассчитать наиболее точное масштабирование. Программное обеспечение Simulink может автоматически вычислять значения «наилучшей точности» для обоих Binary point и Slope and bias масштабирование на основе заданных свойств предельного диапазона.
Для автоматического вычисления значений масштабирования с наилучшей точностью:
Задайте свойства «Минимальный», «Максимальный» или «Оба».
Щелкните Рассчитать наиболее точное масштабирование (Calculate Best-Precision Sc
Программа Simulink вычисляет значения масштабирования, затем отображает их в полях «Длина фракции» или «Уклон» и «Смещение».
Примечание
Свойства предельного диапазона не применяются к Constant или Parameter области. Поэтому Simulink не может рассчитать масштабирование с наилучшей точностью для этих областей.
Сведения о фиксированных точках. Можно просмотреть следующие сведения о фиксированных точках:
| Детализация с фиксированной точкой | Описание |
|---|---|
| Представляемый максимум | Максимальное число, которое может быть представлено выбранным типом данных, знаком, длиной слова и длиной дроби (или типом данных, знаком, наклоном и смещением). |
| Максимум | Указано максимальное значение. |
| Минимум | Указано минимальное значение. |
| Представляемый минимум | Минимальное число, которое может быть представлено выбранным типом данных, знаком, длиной слова и длиной дроби (или типом данных, знаком, наклоном и смещением). |
| Точность | Точность для данного слова длина и дроби длина (или наклон и смещение). |
Если для режима переопределения типа данных установлено значение Double или Single в Simulink функциональный блок MATLAB устанавливает тип всех унаследованных входных сигналов и параметров на fi double или fi single объекты соответственно (для получения дополнительной информации см. раздел Функциональный блок MATLAB с переопределением типа данных (конструктор фиксированных точек)). Необходимо проверить типы данных унаследованных входных сигналов и параметров и использовать диспетчер портов и данных (см. Ports and Data Manager) для установки явных типов для любых входов, которые не должны быть фиксированными. Некоторые операции, такие как sin, неприменимы к объектам с фиксированной точкой.
Примечание
Если явно не задать правильные типы ввода, после установки параметра «Переопределение типа данных» могут возникнуть проблемы с компиляцией.