Получите информацию о выполнении об Уровне 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);
isSignedtrue, если тип данных подписывается.
false, если тип данных без знака.
wordLengthОбщее количество битов в типе данных, включая любой знаковый бит.
fractionalLengthКоличество битов в типе данных справа от двоичной точки.
obeyDataTypeOverridetrue указывает, что установке 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);
isSignedtrue, если тип данных подписывается.
false, если тип данных без знака.
wordLengthОбщее количество битов в типе данных, включая любой знаковый бит.
fractionalSlopeДробный наклон типа данных.
fixedexponentэкспонента наклона типа данных.
biasСмещение масштабирования типа данных.
obeyDataTypeOverridetrue указывает, что установке 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);
isSignedtrue, если тип данных подписывается.
false, если тип данных без знака.
wordLengthОбщее количество битов в типе данных, включая любой знаковый бит.
totalSlopeОбщий наклон масштабирования типа данных.
biasСмещение масштабирования типа данных.
obeyDataTypeOverridetrue указывает, что установке 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 для примера.