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