Получите информацию о выполнении о блоке Level-2 MATLAB S-function
Этот класс позволяет Уровню 2 MATLAB® S-функция или другая программа MATLAB, чтобы получить информацию из Simulink® программное обеспечение и предоставляет информацию программному обеспечению Simulink о блоке Level-2 MATLAB S-function. Программное обеспечение Simulink создает экземпляр этого класса для каждого блока Level-2 MATLAB S-function в модели. Программное обеспечение Simulink передает объект методам коллбэка Уровня 2 S-функции MATLAB, когда это обновляет или симулирует модель, позволяя методам коллбэка получить и предоставить связанную с блоком информацию программному обеспечению Simulink. Смотрите Уровень 2 Записи S-функции MATLAB для получения дополнительной информации.
Можно также использовать экземпляры этого класса в программах MATLAB, чтобы получить информацию о блоках Level-2 MATLAB S-function во время симуляции. Смотрите доступ к Данным о Блоке В процессе моделирования для получения дополнительной информации.
Уровень 2 S-шаблон-функции MATLAB matlabroot
/toolbox/simulink/blocks/msfuntmpl.m
показывает, как использовать много в соответствии с методами.
'none'
Имя | Описание |
---|---|
включите Уровню 2 S-функцию MATLAB, чтобы использовать многомерные сигналы. | |
Задает, какой из диалоговых параметров S-функции является настраиваемым. | |
Время следующего демонстрационного хита для переменных S-функций шага расчета. |
Имя | Описание |
---|---|
Укажите диалоговые параметры этого блока как параметры периода выполнения. | |
Обновите параметры периода выполнения этого блока. | |
Определите, является ли текущий этап симуляции постоянным этапом шага расчета. | |
Определите, является ли текущий шаг времени симуляции главным временным шагом. | |
Определите, является ли текущее время симуляции один, в котором задача, справленная этим блоком, активна. | |
Определите, является ли текущее время симуляции один, в котором несколько задач, справленных этим блоком, активны. | |
Укажите метод коллбэка для этого блока. | |
Укажите тип данных с фиксированной точкой с бинарным масштабированием только для точки. | |
Укажите тип данных с фиксированной точкой с [Наклонное Смещение] масштабирование заданного в терминах дробного наклона, зафиксированной экспоненты и смещения. | |
Укажите тип данных с [Наклонное Смещение] масштабирование. | |
Задайте, использовать ли файл этого блока TLC, чтобы сгенерировать цель симуляции для модели, которая использует его. | |
Установите предварительно скомпилированные атрибуты входных портов этого блока быть наследованными. | |
Установите предварительно скомпилированные атрибуты выходных портов этого блока быть наследованными. | |
Установите предварительно скомпилированные атрибуты портов этого блока к значениям по умолчанию. | |
Задайте, является ли блок средством просмотра. | |
Запишите пользовательскую информацию о параметре в файл Simulink Coder™. |
Позвольте Уровню 2 S-функции MATLAB, чтобы использовать многомерные сигналы. Необходимо установить AllowSignalsWithMoreThan2D
свойство в setup
метод.
Boolean
RW
Задает, является ли диалоговый параметр S-функции настраиваемым. Настраиваемые параметры указаны как параметры периода выполнения, когда вы вызываете метод AutoRegRuntimePrms. Обратите внимание на то, что SimOnlyTunable
параметры не указаны как параметры периода выполнения. Например, следующие линии инициализирует три диалоговых параметра, где первое является настраиваемым, вторым в не настраиваемый, и третье является настраиваемым только в процессе моделирования.
block.NumDialogPrms = 3; block.DialogPrmsTunable = {'Tunable','Nontunable','SimOnlyTunable'};
массив
RW
Время следующего демонстрационного хита для переменных S-функций шага расчета.
'double'
RW
Укажите настраиваемые диалоговые параметры блока как параметры периода выполнения.
AutoRegRuntimePrms;
Используйте в PostPropagationSetup
метод, чтобы указать настраиваемые диалоговые параметры этого блока как параметры периода выполнения.
Обновите параметры периода выполнения блока.
AutoUpdateRuntimePrms;
Автоматически обновите значения параметров периода выполнения во время вызова ProcessParameters
.
Смотрите S-функцию matlabroot
/toolbox/simulink/simdemos/simfeatures/adapt_lms.m
в модели Simulink sldemo_msfcn_lms
для примера.
Определите, является ли это на постоянном этапе шага расчета симуляции.
bVal = IsDoingConstantOutput;
Возвращает true, если это - постоянный этап шага расчета симуляции, т.е. этап в начале симуляции, где программное обеспечение Simulink вычисляет значения блока выходные параметры, которые не могут измениться во время симуляции (см. Постоянный Шаг расчета). Используйте этот метод в Outputs
метод S-функции с основанными на порте шагами расчета, чтобы не излишне вычислять выходные параметры портов, которые имеют постоянный шаг расчета, т.е. [inf, 0]
.
function Outputs(block) . . if block.IsDoingConstantOutput ts = block.OutputPort(1).SampleTime; if ts(1) == Inf %% Compute port's output. end end . . %% end of Outputs
Смотрите Задающие Основанные на порте Шаги расчета для получения дополнительной информации.
Определите, является ли шаг текущего времени майором или незначительным временным шагом.
bVal = IsMajorTimeStep;
Определите, является ли текущее время симуляции один, в котором задача, справленная этим блоком, активна.
bVal = IsSampleHit(stIdx);
stIdx
Глобальный индекс шага расчета, который будет запрошен.
Используйте в Outputs
или Update
блокируйте методы, когда S-функция MATLAB имеет несколько шагов расчета, чтобы определить, произошел ли демонстрационный хит в stIdx
. Индекс шага расчета stIdx
глобальный индекс для модели Simulink. Например, рассмотрите модель, которая содержит три частоты дискретизации из 0,1, 0.2, и 0.5, и Блок s-function MATLAB, который содержит два уровня 0,2 и 0.5. В S-функции MATLAB, block.IsSampleHit(0)
возвращает true для уровня 0.1, не уровня 0.2.
Этот метод блока похож на ssIsSampleHit
для S-функций C-MeX, однако ssIsSampleHit
возвращает значения только на основе шагов расчета, содержавшихся в S-функции. Например, если модель описала выше содержавшего S-функцию C-MeX с частотами дискретизации 0,2 и 0.5, ssIsSampleHit(S,0,tid)
возвращает true
для уровня 0,2.
Используйте основанные на порте шаги расчета, чтобы избегать использования глобального индекса шага расчета для многоскоростных систем (см. Simulink.BlockPortData
).
Определите, является ли текущее время симуляции один, в котором несколько задач, реализованных этим блоком, активны.
bVal = IsSpecialSampleHit(stIdx1,stIdx1);
stIdx1
Индекс шага расчета первой задачи, которая будет запрошена.
stIdx2
Индекс шага расчета второй задачи, которая будет запрошена.
Используйте в Outputs
или Update
блокируйте методы, чтобы гарантировать валидность данных, совместно использованных несколькими задачами, запускающимися на различных уровнях. Возвращает true, если демонстрационный хит произошел в stIdx1
и демонстрационный хит также произошел в stIdx2
в том же временном шаге (похожий на ssIsSpecialSampleHit
для S-функций C-Mex).
При использовании IsSpecialSampleHit
макрос, более медленный шаг расчета должен быть целочисленным кратным более быстрый шаг расчета.
Укажите метод коллбэка блока.
RegBlockMethod(methName, methHandle);
methName
Имя метода, который будет указан.
methHandle
Указатель функции MATLAB метода коллбэка, который будет указан.
Указывает метод коллбэка блока, заданный methName
и methHandle
. Используйте этот метод в setup
функция Уровня 2 S-функция MATLAB, чтобы задать методы коллбэка блока, которые реализует S-функция.
Укажите тип данных с фиксированной точкой с бинарным масштабированием только для точки.
dtID = RegisterDataTypeFxpBinaryPoint(isSigned, wordLength, fractionalLength, obeyDataTypeOverride);
isSigned
true
если тип данных подписывается.
false
если тип данных без знака.
wordLength
Общее количество битов в типе данных, включая любой знаковый бит.
fractionalLength
Количество битов в типе данных справа от двоичной точки.
obeyDataTypeOverride
true
указывает, что установке Data Type Override для подсистемы нужно выполнить. В зависимости от значения Переопределения Типа данных получившимся типом данных мог быть Double
единственный
, ScaledDouble
, или тип данных с фиксированной точкой задан другими аргументами функции.
false
указывает, что установка Data Type Override должна быть проигнорирована.
Этот метод указывает тип данных с фиксированной точкой с программным обеспечением Simulink и возвращает ID типа данных. ID типа данных может использоваться, чтобы задать типы данных портов ввода и вывода, параметров периода выполнения и состояний DWork. Это может также использоваться со всеми стандартными методами доступа типа данных, заданными для экземпляров этого класса, таких как DatatypeSize.
Используйте эту функцию, если вы хотите указать тип данных с фиксированной точкой с бинарным масштабированием только для точки. В качестве альтернативы можно использовать одну из других регистрационных функций фиксированной точки:
Используйте RegisterDataTypeFxpFSlopeFixexpBias, чтобы указать тип данных с [Наклонное Смещение] масштабирование путем указывания, что размер слова, дробный наклон, зафиксировал экспоненту и смещение.
Используйте RegisterDataTypeFxpSlopeBias, чтобы указать тип данных с [Наклонное Смещение] масштабирование.
Если зарегистрированный тип данных не является одним из Simulink встроенные типы данных, лицензия Fixed-Point Designer™ проверяется.
Укажите тип данных с фиксированной точкой с [Наклонное Смещение] масштабирование заданного в терминах дробного наклона, зафиксированной экспоненты и смещения
dtID = RegisterDataTypeFxpFSlopeFixexpBias(isSigned, wordLength, fractionalSlope, fixedexponent, bias, obeyDataTypeOverride);
isSigned
true
если тип данных подписывается.
false
если тип данных без знака.
wordLength
Общее количество битов в типе данных, включая любой знаковый бит.
fractionalSlope
Дробный наклон типа данных.
fixedexponent
экспонента наклона типа данных.
bias
Смещение масштабирования типа данных.
obeyDataTypeOverride
true
указывает, что установке Data Type Override для подсистемы нужно выполнить. В зависимости от значения Переопределения Типа данных получившимся типом данных мог быть True Doubles
, True Singles
, ScaledDouble
, или тип данных с фиксированной точкой задан другими аргументами функции.
false
указывает, что установка Data Type Override должна быть проигнорирована.
Этот метод указывает тип данных с фиксированной точкой с программным обеспечением Simulink и возвращает ID типа данных. ID типа данных может использоваться, чтобы задать типы данных портов ввода и вывода, параметров периода выполнения и состояний DWork. Это может также использоваться со всеми стандартными методами доступа типа данных, заданными для экземпляров этого класса, таких как DatatypeSize.
Используйте эту функцию, если вы хотите указать тип данных с фиксированной точкой путем указывания, что размер слова, дробный наклон, зафиксировал экспоненту и смещение. В качестве альтернативы можно использовать одну из других регистрационных функций фиксированной точки:
Используйте RegisterDataTypeFxpBinaryPoint, чтобы указать тип данных с бинарным масштабированием только для точки.
Используйте RegisterDataTypeFxpSlopeBias, чтобы указать тип данных с [Наклонное Смещение] масштабирование.
Если зарегистрированный тип данных не является одним из Simulink встроенные типы данных, лицензия Fixed-Point Designer проверяется.
Укажите тип данных с [Наклонное Смещение] масштабирование.
dtID = RegisterDataTypeFxpSlopeBias(isSigned, wordLength, totalSlope, bias, obeyDataTypeOverride);
isSigned
true
если тип данных подписывается.
false
если тип данных без знака.
wordLength
Общее количество битов в типе данных, включая любой знаковый бит.
totalSlope
Общий наклон масштабирования типа данных.
bias
Смещение масштабирования типа данных.
obeyDataTypeOverride
true
указывает, что установке Data Type Override для подсистемы нужно выполнить. В зависимости от значения Переопределения Типа данных получившимся типом данных мог быть True Doubles
, True Singles
, ScaledDouble
, или тип данных с фиксированной точкой задан другими аргументами функции.
false
указывает, что установка Data Type Override должна быть проигнорирована.
Этот метод указывает тип данных с фиксированной точкой с программным обеспечением Simulink и возвращает ID типа данных. ID типа данных может использоваться, чтобы задать типы данных портов ввода и вывода, параметров периода выполнения и состояний DWork. Это может также использоваться со всеми стандартными методами доступа типа данных, заданными для экземпляров этого класса, таких как DatatypeSize.
Используйте эту функцию, если вы хотите указать тип данных с фиксированной точкой с [Наклонное Смещение] масштабирование. В качестве альтернативы можно использовать одну из других регистрационных функций фиксированной точки:
Используйте RegisterDataTypeFxpBinaryPoint, чтобы указать тип данных с бинарным масштабированием только для точки.
Используйте RegisterDataTypeFxpFSlopeFixexpBias, чтобы указать тип данных путем указывания, что размер слова, дробный наклон, зафиксировал экспоненту и смещение
Если зарегистрированный тип данных не является одним из Simulink встроенные типы данных, лицензия Fixed-Point Designer проверяется.
Задайте, использовать ли файл блока TLC, чтобы сгенерировать код для Режима Accelerator программного обеспечения Simulink.
SetAccelRunOnTLC(bVal);
bVal
Может быть 'true'
(используйте файл TLC), или 'false'
(запустите блок в интерпретированном режиме).
Задайте, должен ли блок использовать свой файл TLC, чтобы сгенерировать код, который запускается с акселератором. Если этой опцией является 'false'
, блок запускается в интерпретированном режиме. Смотрите S-функцию msfcn_times_two.m
в модели Simulink msfcndemo_timestwo
для примера.
Примечание
Режим Accelerator JIT по умолчанию не поддерживает встраивание написанных пользователем S-функций TLC. Смотрите Как Ускоряющая работа Режимов и Выполнение S-функции Управления для получения дополнительной информации.
Установите предварительно скомпилированные атрибуты входных портов этого блока быть наследованными.
SetPreCompInpPortInfoToDynamic;
Инициализируйте скомпилированную информацию (размерности, тип данных, сложность и режим выборки) входных портов этого блока, которые будут наследованы. Смотрите S-функцию matlabroot
/toolbox/simulink/simdemos/simfeatures/adapt_lms.m
в модели Simulink sldemo_msfcn_lms
для примера.
Установите предварительно скомпилированные атрибуты выходных портов этого блока быть наследованными.
SetPreCompOutPortInfoToDynamic;
Инициализируйте скомпилированную информацию (размерности, тип данных, сложность и режим выборки) выходных портов блока, которые будут наследованы. Смотрите S-функцию matlabroot
/toolbox/simulink/simdemos/simfeatures/adapt_lms.m
в модели Simulink sldemo_msfcn_lms
для примера.
Установите предварительно скомпилированные атрибуты портов этого блока к значениям по умолчанию.
SetPreCompPortInfoToDefaults;
Инициализируйте скомпилированную информацию (размерности, тип данных, сложность и режим выборки) портов блока к значениям по умолчанию. По умолчанию порт принимает действительный скаляр произведенный сигнал с типом данных double
.
Задайте, является ли этот блок средством просмотра.
SetSimViewingDevice(bVal);
bVal
Может быть 'true'
(средство просмотра), или 'false'
(не средство просмотра).
Задайте, является ли блок средством просмотра/осциллографом. Если этот флаг будет задан, блок будет использоваться только в процессе моделирования и автоматически гаситься в сгенерированном коде.
Задайте, поддерживает ли Для Каждой Подсистемы S-функцию в нем.
SupportsMultipleExecInstances(bVal);
bVal
Может быть 'true'
(S-функция поддерживается), или 'false'
(S-функция не поддерживается).
Задайте, может ли S-функция действовать в Для Каждой Подсистемы.
Запишите пользовательский параметр в файл информации о Simulink Coder, используемый для генерации кода.
WriteRTWParam(pType, pName, pVal)
pType
Тип параметра, который будет записан. Допустимыми значениями является 'string'
и 'matrix'
.
pName
Имя параметра, который будет записан.
pVal
Значение параметра, который будет записан.
Используйте в WriteRTW
метод S-функции MATLAB, чтобы выписать пользовательские параметры. Эти параметры обычно являются настройками, используемыми, чтобы определить, как код должен быть сгенерирован в файле TLC для S-функции. Смотрите S-функцию matlabroot
/toolbox/simulink/simdemos/simfeatures/adapt_lms.m
в модели Simulink sldemo_msfcn_lms
для примера.