Вы создаете аргументы функции для блока MATLAB Function путем ввода их в его функциональный заголовок в Редакторе блока MATLAB function. Когда вы задаете аргументы, программное обеспечение Simulink® создает соответствующие порты на блоке MATLAB Function, который можно присоединить к сигналам. Можно выбрать data type mode для каждого аргумента, который вы задаете для блока MATLAB Function. Каждый режим типа данных представляет свой собственный набор опций для выбора data type.
По умолчанию режимом типа данных для аргументов функции блока MATLAB Function является Inherited. Это означает, что аргумент функции наследовал свой тип данных от входящего или исходящего сигнала. Чтобы заменить тип по умолчанию, вы сначала выбираете режим типа данных и затем выбираете тип данных на основе режима.
Задавать тип аргумента функции блока MATLAB Function:
Из Редактора блока MATLAB function выберите Edit Data, чтобы открыть Порты и Менеджер данных.
На левой панели выберите аргумент интереса.
В диалоговом окне свойств Data (правая панель) нажмите ассистент типа данных Show кнопка, чтобы отобразить Ассистент Типа данных. Затем выберите опцию из Mode выпадающее меню.
Диалоговое окно Свойств данных изменяется динамически, чтобы отобразить дополнительные поля для определения типа данных, сопоставленного с режимом.
На основе режима вы выбираете, задаете желаемый тип данных:
Режим | Что задать |
---|---|
Inherit (значение по умолчанию) | Вы не можете задать значение. Тип данных наследован от ранее заданных данных, на основе осциллографа, который вы выбрали для аргумента функции блока MATLAB Function:
Смотрите наследовавшиеся типы данных аргумента. |
Built in | Выберите из выпадающего списка поддерживаемых типов данных, как описано во Встроенных Типах данных для Аргументов. |
Fixed point | Задайте свойства данных фиксированной точки как описано в Specifying Fixed-Point Designer Data Properties. |
Expression | Введите выражение, которое оценивает к типу данных, как описано в Определении Типов аргумента с Выражениями. |
Bus Object | В поле Bus object введите имя Simulink.Bus объект задать свойства структуры MATLAB. Необходимо задать объект шины в базовом рабочем пространстве. Смотрите Как Интерфейс Вводов и выводов Структуры с Сигналами Шины.ПримечаниеМожно нажать кнопку Edit, чтобы создать или изменить |
Enumerated | В поле Enumerated введите имя Simulink.IntEnumType возразите, что вы задаете в базовом рабочем пространстве. Смотрите Генерацию кода для Перечислений. |
Аргументы функции блока MATLAB Function могут наследовать свои типы данных, включая типы фиксированной точки, от сигналов, до которых они соединяются.
Выберите аргумент интереса к Портам и Менеджеру данных
В диалоговом окне свойств 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 в Портах и Менеджере данных. Поддерживаемые типы данных:
Тип данных | Описание |
---|---|
| 64-битная плавающая точка двойной точности |
| 32-битная плавающая точка с одинарной точностью |
| 32-битное целое число со знаком |
| 16-битное целое число со знаком |
| 8-битное целое число со знаком |
| 32-битное беззнаковое целое |
| 16-битное беззнаковое целое |
| 8-битное беззнаковое целое |
| Булевская переменная (1 = |
Можно задать типы аргументов функции блока MATLAB Function как выражения в Портах и Менеджере данных.
Выберите <data type expression>
от Type выпадающее меню диалогового окна Свойств данных.
В поле Type замените “<data type expression>
” с выражением, которое оценивает к типу данных. Следующие выражения позволены:
Исказите тип от рабочего пространства MATLAB, как описано в Simulink.AliasType
.
fixdt
функция, чтобы создать Simulink.NumericType
объект, описывающий фиксированную точку или тип данных с плавающей точкой
type
оператор, чтобы основывать тип на ранее заданных данных
Блоки MATLAB Function могут представлять сигналы и значения параметров как числа фиксированной точки. Чтобы симулировать модели, которые используют данные фиксированной точки в блоках MATLAB Function, необходимо установить продукт Fixed-Point Designer™ в системе.
Можно установить следующие свойства фиксированной точки:
Со знаком. Выберите, хотите ли вы, чтобы данными фиксированной точки был Signed
или Unsigned
. Данные со знаком могут представлять положительные и отрицательные количества. Данные без знака представляют положительные значения только. Значением по умолчанию является Signed
.
Размер слова. Задайте размер (в битах) слова, которое будет содержать квантованное целое число. Большие размеры слова представляют большие количества с большей точностью, чем небольшие размеры слова. Размер слова может быть любым целым числом между 0 и 128 битов. Значение по умолчанию равняется 16.
Масштабирование. Задайте метод для масштабирования ваших данных о фиксированной точке, чтобы избежать условий переполнения и минимизировать ошибки квантования. Можно выбрать следующие режимы масштабирования:
Масштабирование режима | Описание |
---|---|
Binary point (значение по умолчанию) |
Если вы выбираете этот режим, Ассистент Типа данных отображает поле Fraction Length, задавая местоположение двоичной точки. Двоичные точки могут быть положительными или отрицательными целыми числами. Положительное целое число перемещает двоичную точку, оставленную самого правого бита той суммой. Например, запись 2 наборов двоичная точка перед вторым битом справа. Отрицательное целое число перемещает двоичную точку дальнейшее право самого правого бита той суммой, как в этом примере:
Значением по умолчанию является 0. |
Slope and bias |
Если вы выбираете этот режим, Ассистент Типа данных отображает поля для ввода Slope и Bias.
Можно ввести наклон и сместить как выражения, которые содержат параметры, заданные в рабочем пространстве MATLAB. |
Необходимо использовать масштабирование двоичной точки, когда это возможно, чтобы упростить реализацию данных фиксированной точки в сгенерированном коде. Операции с данными фиксированной точки с помощью масштабирования двоичной точки выполняются с простыми сдвигами разряда и устраняют дорогие реализации кода, требуемые для отдельного наклона, и смещают значения.
Переопределение типа данных. Задайте, является ли установкой переопределения типа данных Inherit
(значение по умолчанию) или Off
.
Вычислите Масштабирование Лучшей Точности. Программное обеспечение Simulink может автоматически вычислить значения “лучшей точности” для обоих Binary point
and Slope and bias
при масштабировании на основе Предельных свойств области значений вы задаете.
Автоматически вычислить лучшие значения масштабирования точности:
Задайте Minimum, Maximum или оба Предельных свойства области значений.
Нажмите Calculate Best-Precision Scaling.
Программное обеспечение Simulink вычисляет масштабирующиеся значения, затем отображает их или в Fraction Length или в полях Slope и Bias.
Предельные свойства области значений не применяются к Constant
или Parameter
осциллографы. Поэтому Simulink не может вычислить лучшую точность, масштабирующуюся для этих осциллографов.
Детали фиксированной точки. Можно посмотреть следующие детали Фиксированной точки:
Деталь фиксированной точки | Описание |
---|---|
Представимый максимум | Максимальное количество, которое может быть представлено выбранным типом данных, знаком, размером слова и дробной длиной (или типом данных, знаком, наклоном и смещением). |
Максимум | Максимальное значение задано. |
Минимум | Минимальное значение задано. |
Представимый минимум | Минимальный номер, который может быть представлен выбранным типом данных, знаком, размером слова и дробной длиной (или типом данных, знаком, наклоном и смещением). |
Точность | Точность для данного размера слова и дробной длины (или наклон и смещение). |
Если вы устанавливаете режим Data Type Override на Double
или Single
в Simulink блок MATLAB Function устанавливает тип всех наследованных входных сигналов и параметров к fi double
или fi single
объекты соответственно (см. блок MATLAB function с Переопределением Типа данных (Fixed-Point Designer) для получения дополнительной информации). Необходимо проверять типы данных наследованных входных сигналов и параметров и использовать Порты и Менеджер данных (см. Порты и Менеджер данных) установить явные типы для любых входных параметров, которые не должны быть фиксированной точкой. Некоторые операции, такие как sin
, не применимы к объектам фиксированной точки.
Если вы не устанавливаете правильные входные типы явным образом, можно столкнуться с проблемами компиляции после установки Data Type Override.