Если блок функции Simulink находится в области действия блока вызывающей функции, указывать параметры не требуется. В этом случае блок вызывающего абонента функции может определять характеристики входных и выходных аргументов.
Вы указываете аргументы, когда блок функции Simulink находится вне области действия блока вызывающей функции. Блок Simulink Function считается выходящим за рамки блока Function Caller, если эти два блока находятся в отдельных моделях, на которые ссылается общая родительская модель.
В этой таблице перечислены возможные параметры входных и выходных аргументов.
| Тип данных функционального блока Simulink | Выражение блока вызывающего абонента функции | Описание |
|---|---|---|
double | double(1.0) | Скаляр двойной точности. |
double | double(ones(12,1)) | Вектор столбца двойной точности длиной 12. |
single | single(1.0) | Скаляр с одной точностью. |
int8, int16, int32 | int8(1), int16(1), int32(1) | Целочисленные скаляры. |
int32([1 1 1]) | Целочисленный вектор строки длиной 3. | |
int32(1+1i) | Комплексный скаляр, действительная и мнимая части которого являются 32-битными целыми числами. | |
uint8, int16, int32 | uint8(1), uint16(1), uint32(1) | Целочисленные скаляры без знака. |
boolean | boolean(true),boolean(false) | Логическое значение, инициализировано как true (1) или false (0). |
|
| 16-битный скаляр со знаком фиксированной точки с двоичной точкой, равной нулю. Числа с фиксированной точкой могут иметь размер слова до 128 бит. |
fixdt(1,16,4) | fi(0,1,16,4) | 16-битный скаляр со знаком фиксированной точки с двоичной точкой, равной 4. |
fixdt(1,16,2^0,0) | fi(0,1,16,2^0,0) | 16-битный скаляр со знаком фиксированной точки с наклоном, равным 2^0 и смещение, установленное равным 0. |
Bus: <object name> | parameter object name | Simulink.Parameter объект с Value устанавливается в структуру MATLAB ® для шины. |
Enum: <class name> | parameter object name | Simulink.Parameter объект с Value для параметра установлено перечисляемое значение. |
<alias name> | parameter object name | Simulink.Parameter объект с DataType параметр имеет значение Simulink.AliasType объект и Value значение параметра. |
Создайте шину с двумя сигналами, а затем задайте параметр Input argument specification для блока Function Caller. Блок вызова функции вызывает блок функции симулятора, который принимает шину в качестве входного сигнала.
Вход шины в блок вызывающего абонента функции должен быть невиртуальной шиной, использующей объект шины.
Создание объекта шины Simulink ®myBus.
myBus = Simulink.Bus;
Добавить элементы A и B.
myBus.Elements(1).Name = 'A'; myBus.Elements(2).Name = 'B';
Создание структуры MATLAB myBus_MATLABstruct с полями A и B.
myBus_MATLABStruct.A = 0; myBus_MATLABStruct.B = 0;
Создание объекта параметра Simulink myBus_parameter и присвойте структуру MATLAB Value параметр.
myBus_parameter = Simulink.Parameter; myBus_parameter.DataType = 'Bus: myBus'; myBus_parameter.Value = myBus_MATLABStruct;
В диалоговом окне Блок вызывающего абонента функции установите для параметра Спецификация входного аргумента значение myBus_parameter.
Для диалогового окна «Аргумент в блоке» блока функции Simulink установите для параметра «Тип данных» значение Bus: myBus.
Создайте перечисляемый тип данных для трех основных цветов, а затем укажите параметр спецификации Input argument для блока Function Caller. Блок вызова функции вызывает блок функции Simulink, который принимает сигнал с перечислимым типом в качестве входного.
Создайте файл MATLAB для сохранения определения типа данных. На панели инструментов MATLAB выберите «Создать» > «Класс».
В редакторе MATLAB определите элементы перечисляемого типа данных. Класс BasicColors является подклассом класса Simulink.IntEnumType.
classdef BasicColors < Simulink.IntEnumType
enumeration
Red(0)
Yellow(1)
Blue(2)
end
end Сохранение определения класса в файле с именем BasicColors.m.
Создание объекта параметра Simulink myEnum_parameter и присвойте одно из перечисленных значений Value параметр.
myEnum_parameter = Simulink.Parameter; myEnum_parameter.Value = BasicColors.Red;
В диалоговом окне Блок вызывающего абонента функции задайте спецификацию входного аргумента. кому myEnum_parameter.
Для Аргумента В диалоговом окне блока в Функциональном блоке Simulink, установленном параметр Типа данных на Enum: BasicColors.
Создайте псевдоним для одиночного типа данных, а затем укажите параметр спецификации Input argument для блока Function Caller. Блок Simulink Function, вызываемый блоком Function Caller, также использует имя псевдонима для определения типа входных данных.
Создание объекта типа данных псевдонима Simulink myAlias.
myAlias = Simulink.AliasType;
Назначьте тип данных.
myAlias.BaseType = 'single';
Создание объекта параметра Simulink myAlias_parameter и присвойте имя псевдонима DataType параметр.
myAlias_parameter = Simulink.Parameter; myAlias_parameter.DataType = 'myAlias'; myAlias_parameter.Value = 1;
В диалоговом окне Блок вызывающего абонента функции установите для параметра Спецификация входного аргумента значение myAlias_parameter.
Для Аргумента В диалоговом окне блока в Функциональном блоке Simulink, установленном параметр Типа данных на myAlias.