Вы создаете аргументы функции для блока MATLAB Function путем ввода их в заголовок функции в Блок MATLAB function Редактора. Когда вы задаете аргументы, Simulink® программа создает соответствующие порты на блоке MATLAB Function, которые можно присоединить к сигналам. Можно выбрать data type mode для каждого аргумента, который вы задаете для блока MATLAB Function. Каждый режим типа данных представляет свой собственный набор опций для выбора data type.
По умолчанию для аргументов функции блока MATLAB Function режим типа данных Inherited. Это означает, что аргумент функции наследует свой тип данных от входящего или исходящего сигнала. Чтобы переопределить тип по умолчанию, сначала выберите режим типа данных, а затем выберите тип данных на основе режима.
Чтобы задать тип аргумента функции MATLAB Function блока:
В редакторе блоков MATLAB function выберите Edit Data, чтобы открыть Ports and Data Manager.
На левой панели выберите интересующий аргумент.
В диалоговом окне свойств Data (правая панель) нажмите кнопку Show data type assistant, чтобы отобразить Data Type Assistant. Затем выберите опцию из выпадающего меню Mode.
Диалоговое окно Свойства данных изменяется динамически, чтобы отобразить дополнительные поля для определения типа данных, связанных с режимом.
На основе выбранного режима задайте желаемый тип данных:
Способ | Что указать |
---|---|
Inherit (по умолчанию) | Вы не можете задать значение. Тип данных наследуется от ранее определенных данных на основе возможностей, выбранной для аргумента функции блока MATLAB Function:
|
Built in | Выберите из выпадающего списка поддерживаемых типов данных, как описано во Встроенных типах данных для аргументов. |
Fixed point | Задайте свойства данных с фиксированной точкой, как описано в разделе «Задание свойств данных Fixed-Point Designer». |
Expression | Введите выражение, которое вычисляется по типу данных, как описано в разделе «Определение типов аргументов с выражениями». |
Bus Object | В Bus object поле введите имя Примечание Для создания или изменения можно нажать кнопку Edit
|
Enumerated | В поле Перечисляемое введите имя Simulink.IntEnumType объект, который вы задаете в базовом рабочем пространстве. Для получения информации о перечислениях см. раздел «Генерация кода». |
MATLAB Function аргументов функции блоков могут наследовать свои типы данных, включая фиксированные типы точек, от сигналов, к которым они подключены.
Выберите интересующий аргумент в Диспетчере портов и данных
В диалоговом окне Data свойств выберите Inherit: Same as Simulink
в раскрывающемся меню Type.
Список поддерживаемых типов данных см. в разделе Встроенные типы данных для аргументов.
Примечание
Аргумент может также наследовать свою сложность (независимо от того, является ли его значение вещественным или комплексным числом) от сигнала, который соединяется с ним. Чтобы наследовать сложность, установите значение поля «Сложность» в диалоговом окне «Свойства данных» равным Inherited.
После создания модели столбец Скомпилированный тип Диспетчера портов и данных дает фактический тип, унаследованный от Simulink в скомпилированном приложении симуляции.
Унаследованный тип выходных данных выводится из действий схемы, которые хранят значения в заданном выходе. В предыдущем примере переменные mean
и stdev
вычисляются из операций с двойными операндами, которые дают результаты типа double
. Если ожидаемый тип совпадает с выводимым типом, наследование успешно. Во всех других случаях несоответствие происходит во время сборки.
Примечание
Блоки MATLAB Function библиотек могут иметь унаследованные типы данных, размеры и сложности, такие как обычные блоки MATLAB Function. Однако все образцы библиотечного блока в заданной модели должны иметь входы с одинаковыми свойствами.
При выборе Built-in для Data type mode в диалоговом окне Свойств данных отображается поле Data type, которое предоставляет раскрывающийся список поддерживаемых типов данных. Можно также выбрать тип данных из столбца Data Type в Диспетчере портов и данных. Поддерживаемые типы данных:
Тип данных | Описание |
---|---|
| 64-разрядная плавающая точка двойной точности |
| 32-разрядная точность с плавающей точкой |
| Тип данных половинной точности занимает 16 биты памяти, но его представление с плавающей точкой позволяет ему обрабатывать более широкие динамические области значений, чем целочисленные или типы данных с фиксированной точкой того же размера. См. раздел Тип данных половинной точности в Simulink (Fixed-Point Designer). |
| 64-битное целое число со знаком |
| 32-битное целое число со знаком |
| 16-битное целое число со знаком |
| 8-битное целое число со знаком |
| 64-битное беззнаковое целое число |
| 32-битное беззнаковое целое число |
| 16-битное беззнаковое целое число |
| 8-битное беззнаковое целое число |
| Логический (1 = |
Можно задать типы аргументов MATLAB Function функции блока в качестве выражений в Ports и Data Manager.
Выберите <data type expression>
из раскрывающегося меню Type диалогового окна «Свойства данных».
В Type поле заменить "<data type expression>
"с выражением, которое вычисляется как тип данных. Допускаются следующие выражения:
Тип псевдонима из рабочего пространства MATLAB, как описано в Simulink.AliasType
.
fixdt
функция для создания Simulink.NumericType
объект, описывающий тип данных с фиксированной точкой или с плавающей точкой
type
(Stateflow), для базирования типа на ранее определенных данных
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
и Slope and bias
масштабирование, основанное на заданных Пределом области значений свойствах.
Чтобы автоматически вычислить лучшие значения точности масштабирования:
Задайте Minimum, Maximum или оба свойства предельной области значений.
Нажмите Calculate Best-Precision Scaling.
Программа Simulink вычисляет значения масштабирования, затем отображает их в полях Fraction Length, или Slope и Bias.
Примечание
Свойства Limit range не применяются к Constant
или Parameter
возможности. Поэтому Simulink не может вычислить наиболее точное масштабирование для этих возможностей.
Сведения о фиксированной точке. Можно просмотреть следующие сведения о фиксированной точке:
Деталь с фиксированной точкой | Описание |
---|---|
Представляемый максимум | Максимальное число, которое может быть представлено выбранным типом данных, знаком, размером слова и длиной дроби (или типом данных, знаком, наклоном и смещением). |
Максимум | Максимальное заданное значение. |
Минимум | Заданное минимальное значение. |
Представляемый минимум | Минимальное число, которое может быть представлено выбранным типом данных, знаком, размером слова и длиной дроби (или типом данных, знаком, наклоном и смещением). |
Точность | Точность для заданного размера слова и длины дроби (или наклона и смещения). |
Если вы устанавливаете режим 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.