Получите информацию о выполнении об Уровне 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, если это - постоянный этап частоты дискретизации моделирования, i. e., этап в начале моделирования, где программное обеспечение Simulink вычисляет значения блока выходные параметры, которые не могут измениться во время моделирования (см. Постоянную Частоту дискретизации). Используйте этот метод в методе Outputs
S-функции с основанными на порте частотами дискретизации, чтобы не излишне вычислять выходные параметры портов, которые имеют постоянную частоту дискретизации, i. e., [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 встроенные типы данных, Фиксированная точка, лицензия 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
для примера.