Получите информацию о выполнении об Уровне 2 Блок s-function MATLAB
Этот класс позволяет S-функции Level 2 MATLAB® или другой программе MATLAB получать информацию из программного обеспечения Simulink® и предоставлять информацию программному обеспечению Simulink об Уровне 2 Блок s-function MATLAB. Программное обеспечение Simulink создает экземпляр этого класса для каждого Уровня 2 Блок s-function MATLAB в модели. Программное обеспечение Simulink передает объект методам коллбэка Уровня 2 S-функции MATLAB, когда это обновляет или моделирует модель, позволяя методам коллбэка получить и предоставить связанную с блоком информацию программному обеспечению Simulink. Смотрите Уровень 2 Записи S-функции MATLAB для получения дополнительной информации.
Можно также использовать экземпляры этого класса в программах MATLAB, чтобы получить информацию об Уровне 2 Блоки s-function MATLAB во время симуляции. Смотрите доступ к Данным о Блоке Во время Симуляции для получения дополнительной информации.
/toolbox/simulink/blocks/msfuntmpl.m
matlabroot
S-шаблона-функции Уровня 2 MATLAB показывает, как использовать много в соответствии с методами.
'none'
Имя | Описание |
---|---|
включите Уровню 2 S-функцию MATLAB, чтобы использовать многомерные сигналы. | |
Задает, какой из диалоговых параметров S-функции является настраиваемым. | |
Время следующего демонстрационного хита для переменных S-функций шага расчета. |
Имя | Описание |
---|---|
Укажите диалоговые параметры этого блока как параметры периода выполнения. | |
Обновите параметры периода выполнения этого блока. | |
Определите, является ли текущий этап симуляции постоянным этапом шага расчета. | |
Определите, является ли текущий шаг времени симуляции главным временным шагом. | |
Определите, является ли текущее время симуляции один, в котором задача, справленная этим блоком, активна. | |
Определите, является ли текущее время симуляции один, в котором несколько задач, справленных этим блоком, активны. | |
Укажите метод коллбэка для этого блока. | |
Укажите тип данных с фиксированной точкой с бинарным масштабированием только для точки. | |
Укажите тип данных с фиксированной точкой с [Наклонное Смещение] масштабирование заданного с точки зрения дробного наклона, зафиксированной экспоненты и смещения. | |
Укажите тип данных с [Наклонное Смещение] масштабирование. | |
Задайте, использовать ли файл этого блока TLC, чтобы сгенерировать цель симуляции для модели, которая использует его. | |
Установите предварительно скомпилированные атрибуты входных портов этого блока быть наследованными. | |
Установите предварительно скомпилированные атрибуты выходных портов этого блока быть наследованными. | |
Установите предварительно скомпилированные атрибуты портов этого блока к значениям по умолчанию. | |
Задайте, является ли блок средством просмотра. | |
Запишите пользовательскую информацию о параметре в файл Simulink Coder™. |
Позвольте Уровню 2 S-функции MATLAB, чтобы использовать многомерные сигналы. Необходимо установить свойство AllowSignalsWithMoreThan2D
в методе setup
.
Булевская переменная
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
, Single
, 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
для примера.