Сконфигурируйте функции C/C + + S-функции

Сконфигурируйте функциональность блоков для C/C + + S-функций

C/C + + S-функции позволяют вам конфигурировать расширенную функциональность блоков с помощью различных коллбэков и SimStruct.

  • Создайте и сконфигурируйте входные/выходные порты.

  • Задайте основанные на блоках и основанные на портах шаги расчета.

  • Передайте параметры диалога в S-функции.

  • Моделируйте пересечения нуля и выделяйте память для S-функций.

  • Сконфигурируйте настройки генерации кода для S-функций.

Методы обратного коллбэка S-функции

расширить все

Инициализация, выход, завершение

mdlInitializeSizesЗадайте количество входов, выходов, состояний, параметров и других характеристик S-функции C MEX
mdlInitializeSampleTimesЗадайте частоты дискретизации, с которыми работает эта S-функция C MEX
mdlOutputsВычислите сигналы, которые излучает этот блок
mdlUpdateОбновление состояний блока
mdlTerminateВыполните любые действия, необходимые при прекращении симуляции

Спецификация сигнала

mdlSetDefaultPortComplexSignalsУстановите числовые типы (действительные, комплексные, или унаследованные) портов, числовые типы которых не могут быть определены из блочной связности
mdlSetDefaultPortDataTypesУстановите типы данных портов, типы данных которых не могут быть определены из блочной связности
mdlSetDefaultPortDimensionInfoУстановите размерности по умолчанию сигналов, принятых или излучаемых портами S-функции MEX C
mdlSetInputPortComplexSignalУстановите числовые типы (действительные, комплексные, или унаследованные) сигналов, принятых портом входа
mdlSetInputPortDataTypeУстановите типы данных сигналов, принятых портом входа
mdlSetInputPortSampleTimeУстановите шаг расчета входного порта, который наследует его шаг расчета от порта, к которому он подключен
mdlSetOutputPortComplexSignalУстановите числовые типы (действительные, комплексные, или унаследованные) сигналов, принятых портом выхода
mdlSetOutputPortDataTypeУстановите тип данных сигналов, излучаемых портом выхода
mdlSetOutputPortSampleTimeУстановите шаг расчета выходного порта, который наследует его шаг расчета от порта, к которому он подключен

Размерности сигнала

mdlSetInputPortDimensionInfoУстановите размерности сигналов, принятых портом входа
mdlSetInputPortDimensionsModeFcnРаспространите режим размерностей
mdlSetInputPortWidthУстановите ширину входного порта, который принимает 1-D (векторные) сигналы
mdlSetOutputPortDimensionInfoУстановите размерности сигналов, принятых портом выхода
mdlSetOutputPortWidthУстановите ширину выходного порта, который выводит 1-D (векторные) сигналы

Доступ к сигналу

mdlSetWorkWidthsЗадайте размеры рабочих векторов и создайте параметры времени выполнения, необходимые для этой S-функции C MEX
mdlSetInputPortSampleTimeУстановите шаг расчета входного порта, который наследует его шаг расчета от порта, к которому он подключен
mdlSetOutputPortSampleTimeУстановите шаг расчета выходного порта, который наследует его шаг расчета от порта, к которому он подключен
mdlSetWorkWidthsЗадайте размеры рабочих векторов и создайте параметры времени выполнения, необходимые для этой S-функции C MEX
mdlCheckParametersПроверяйте валидность параметров S-функции MEX на C
mdlProcessParametersОбработайте параметры S-функции C MEX
mdlStartИнициализируйте векторы состояния этой S-функции C MEX
mdlProcessParametersОбработайте параметры S-функции C MEX
mdlSetWorkWidthsЗадайте размеры рабочих векторов и создайте параметры времени выполнения, необходимые для этой S-функции C MEX

Информация о симуляции

mdlGetOperatingPointВерните рабочую точку симуляции S-функции C MEX как структуру данных MATLAB
mdlSetOperatingPointВосстановите рабочую точку S-функции C MEX

Обработка ошибок

mdlStartИнициализируйте векторы состояния этой S-функции C MEX
mdlTerminateВыполните любые действия, необходимые при прекращении симуляции
mdlSetWorkWidthsЗадайте размеры рабочих векторов и создайте параметры времени выполнения, необходимые для этой S-функции C MEX
mdlZeroCrossingsОбновите вектор пересечения нулем
mdlInitializeConditionsИнициализируйте векторы состояния этой S-функции C MEX

Функции SimStruct

расширить все

Спецификация сигнала

ssSetNumInputPortsЗадайте количество входа портов, которые имеют блок
ssSetInputPortComplexSignalУстановите числовой тип (действительный или комплексный) порта входа
ssSetInputPortDataTypeУстановите тип данных порта входа
ssSetInputPortDirectFeedThroughЗадайте состояние прямой передачи портов блока
ssSetInputPortOffsetTimeЗадайте время смещения порта входа
ssSetInputPortRequiredContiguousУкажите, что сигнальные элементы, входящие в порт, должны быть смежными
ssSetInputPortSampleTimeЗадайте шаг расчета порта входа
ssRegisterUnitFromExprЗарегистрируйте модуль измерения из единичного выражения
ssSetInputPortUnitЗадайте модуль из входа портов
ssSetNumOutputPortsЗадайте количество выхода портов, которые имеют блок
ssSetOutputPortComplexSignalУстановите числовой тип (действительный или комплексный) выходного порта
ssSetOutputPortDataTypeУстановите тип данных порта выхода
ssSetOutputPortOffsetTimeЗадайте время смещения порта выхода
ssSetOutputPortSampleTimeЗадайте шаг расчета порта выхода
ssSetOutputPortUnitЗадайте модуль из выхода портов
ssGetInputPortComplexSignalОпределите, принимает ли порт входа комплексные сигналы.
ssGetInputPortDataTypeПолучите тип данных порта входа
ssGetInputPortDirectFeedThroughОпределите, имеет ли порт прямое сквозное соединение
ssGetInputPortFrameDataОпределите, принимает ли порт системы координат сигнала
ssGetInputPortOffsetTimeПолучите время смещения порта входа
ssGetInputPortRequiredContiguousОпределите, должны ли элементы сигнала, входящие в порт, быть смежными
ssGetInputPortSampleTimeПолучите шаг расчета порта входа
ssGetInputPortSampleTimeIndexПолучите индекс шага расчета порта входа
ssGetInputPortUnitПолучите модуль порта входа
ssGetOutputPortComplexSignalПолучите числовой тип (комплексный или действительный) порта выхода
ssGetOutputPortDataTypeПолучите тип данных порта выхода
ssGetOutputPortFrameDataОпределите, выводит ли порт системы координат сигнала
ssGetOutputPortOffsetTimeПолучите время смещения порта выхода
ssGetOutputPortSampleTimeПолучите шаг расчета выходного порта
ssGetOutputPortUnitПолучите модуль порта выхода
ssAllowSignalsWithMoreThan2DВключите S-функцию для работы с многомерными сигналами
ssSetOneBasedIndexInputPortУкажите, что порт входа ожидает индексов на основе одного
ssSetOneBasedIndexOutputPortУкажите, что порт выхода излучает индексы на основе одного.
ssSetZeroBasedIndexInputPortУкажите, что порт входа ожидает нулевых индексов
ssSetZeroBasedIndexOutputPortУкажите, что порт выхода излучает нулевые индексы.

Доступ к сигналу

ssGetNumInputPortsПолучите количество портов входа, которые имеют блок
ssGetNumOutputPortsПолучите количество портов выхода, которые имеют блок
ssGetInputPortBufferDstPortОпределите выход порт, который использует буфер этого входа порта
ssGetInputPortConnectedОпределите, соединяется ли порт с невиртуальным блоком
ssGetInputPortOptimOptsПолучите настройку переиспользуемости памяти, выделенной входному порту S-функции
ssGetInputPortOverWritableОпределите, можно ли перезаписать входной порт
ssGetInputPortRealSignalПолучите адрес реального смежного сигнала, входящего во входной порт
ssGetInputPortRealSignalPtrsПолучите указатели на сигналы типа double соединяется с входом портом
ssGetInputPortSignalПолучите адрес смежного сигнала, входящего во входной порт
ssGetInputPortSignalPtrsПолучите указатели на сигнальные элементы входного порта
ssGetOutputPortConnectedОпределите, соединяется ли выходной порт с невиртуальным блоком
ssGetOutputPortBeingMergedОпределите, соединяется ли выход этого блока с блоком Merge
ssGetOutputPortOptimOptsПолучите настройку переиспользуемости памяти, выделенной выходному порту S-функции
ssGetOutputPortRealSignalПолучите указатель на выход сигнал типа double (real_T)
ssGetOutputPortSignalПолучите вектор элементов сигнала, излучаемых портом выхода
ssSetInputPortOptimOptsЗадайте переиспользуемость памяти, выделенной входному порту S-функции
ssSetInputPortOverWritableЗадайте, может ли один из входных портов S-функции быть перезаписан одним из его выходных портов
ssSetOutputPortOptimOptsЗадайте переиспользуемость памяти, выделенной выходному порту S-функции
ssSetOutputPortOverwritesInputPortУкажите, может ли выход порт совместно использовать буфер памяти с входом портом
ssSetInputPortAcceptExprInRTWЗадайте, принимает ли вход блока неконстантное выражение
ssGetInputPortAcceptExprInRTWОпределите, принимает ли вход блока неконстантное выражение
ssSetOutputPortOutputExprInRTWЗадайте, генерирует ли выход блока неконстантное выражение
ssGetOutputPortOutputExprInRTWОпределите, генерирует ли выход блока неконстантное выражение

Размерности сигнала

ssSetInputPortDimensionInfoЗадайте информацию о размерности входного порта
ssSetInputPortDimensionsModeУстановите режим размерностей входного порта, индексируемого pIdx
ssSetInputPortDimsSameAsOutputPortDimsУстановите размерности выхода outIdx портов равными размерностям входами inpIdx портов. Этот метод вызывается из mdlSetWorkWidths.
ssSetInputPortMatrixDimensionsЗадайте размерность информацию для порта входа, который принимает матрицу сигналы
ssSetInputPortVectorDimensionЗадайте размерность информацию для порта входа, который принимает вектор сигналы
ssSetInputPortWidthЗадайте ширину входного порта
ssPruneNDMatrixSingletonDimsОбрезка конечных синглтонных размерностей
ssSetCurrentOutputPortDimensionsУстановите размер тока, соответствующий размерности dIdx выходного сигнала в порту pIdx.
ssSetOutputPortDimensionInfoЗадайте информацию о размерности выходного порта
ssSetOutputPortDimensionsModeУстановите режим размерностей выходного порта, индексируемого pIdx
ssSetOutputPortMatrixDimensionsЗадайте размерность информацию для порта выхода, который излучает матрицу сигналы
ssSetOutputPortVectorDimensionЗадайте размерность информацию для порта выхода, который излучает вектор сигналы
ssSetOutputPortWidthЗадайте ширину выходного порта
ssSetOutputPortMatrixDimensionsЗадайте размерность информацию для порта выхода, который излучает матрицу сигналы
ssAddOutputDimsDependencyRuleЗарегистрируйте метод для обработки обновления текущих размерностей.
ssAddVariableSizeSignalsRuntimeCheckerЗарегистрируйте метод, чтобы проверить текущие входные размерности
ssAllowSignalsWithMoreThan2DВключите S-функцию для работы с многомерными сигналами
ssRegMdlSetInputPortDimensionsModeFcnЗарегистрируйте метод, чтобы обработать распространение режима размерностей для каждого входного порта.
ssSetDWorkRequireResetForSignalSizeУстановите флаг блока для сброса размера dIndex Dwork при сбросе подсистемы.
ssSetSignalSizesComputeTypeУстановите тип выхода зависимости от входного сигнала.
ssSetVectorModeЗадайте векторный режим, который поддерживает S-функция
ssGetCurrentInputPortDimensionsПолучите текущий размер размерности dIdx входа порта pIdx
ssGetCurrentInputPortWidthПолучите общую ширину (общее количество элементов) сигнала на входном порту pIdx
ssGetInputPortDimensionsПолучите размерности сигнала, принятого портом входа
ssGetInputPortDimensionSizeПолучите размер одной размерности сигнала, входящего в входной порт
ssGetInputPortDimensionsModeПолучите режим размерностей входного порта, индексируемого pIdx
ssGetInputPortNumDimensionsПолучите размерность сигналов, принятых портом входа
ssGetInputPortWidthПолучите ширину входного порта
ssGetCurrentOutputPortDimensionsПолучите текущий размер размерности dIdx сигнала в выход порте pIdx.
ssGetCurrentOutputPortWidthПолучите общую ширину (общее количество элементов) сигнала в выходном порту pIdx.
ssGetOutputPortDimensionsПолучите размерности сигнала, покидающего порт выхода
ssGetOutputPortDimensionSizeПолучите размер одной размерности сигнала, покидающего выход порт
ssGetOutputPortDimensionsModeПолучите режим размерностей выходного порта, индексируемого pIdx
ssGetOutputPortNumDimensionsПолучите количество размерностей выходного порта
ssGetOutputPortWidthПолучите ширину выходного порта

Область сигнала

ssCallSelectedSignalsFcnАктивируйте выбранную функцию сигналов для S-функции
ssCallSigListCreateFcnАктивируйте функцию создания списка сигналов для S-функции
ssCallSigListDestroyFcnАктивируйте функцию уничтожения списка сигналов для S-функции
ssCallSigListUnavailSigAlertFcnАктивируйте недоступную функцию предупреждения о сигнале для списка сигналов в S-функции
ssCallGenericDestroyFcnАктивируйте общую функцию разрушения для S-функции
ssCallGetPortNameFcnПолучите имя для данного порта
ssCallUnselectSigFcnАктивируйте функцию отмены выбора сигнала для S-функции
gsl_FirstRegПолучите первую область элемента в списке сигналов
gsl_nSigRegionsПолучите число регионов в списке элемента массива сигналов
gsl_nSigsПолучите количество сигналов в списке сигналов
gsl_NumElementsПолучите количество элементов в элементе массива списка сигналов
gsl_PortObjПолучите порт, сопоставленный с элементом массива списка сигналов
gsl_TieWrapОпределите, является ли элемент в списке сигналов смежным
gsr_ComplexОпределите, являются ли данные в области сигнала комплексными
gsr_currDimsДоступ к текущим размерностям для сигнала переменного размера в области сигнала
gsr_dataДоступ к данным в области сигнала
gsr_DataTypeПолучите идентификатор типа данных Simulink для области
gsr_DataTypeSizeПолучите размер одного действительного значения в области сигнала
gsr_DimsДоступ к значениям в векторе размерностей для области сигнала
gsr_nElsПолучите количество элементов в области
gsr_NextRegПолучите следующую область в соответствующем списке сигналов
gsr_NumDimsПолучите количество размерностей данных в области сигнала
gsr_portObjПолучите порт, сопоставленный с сигнальной областью
gsr_startIdxПолучите индекс для элемента в списке сигналов в начале области
gsr_statusОпределите, доступен ли сигнал в области сигнала
gsr_UnitПолучите идентификатор модуля Simulink для области сигнала
gsr_MОпределите количество строк в матричном сигнале
gsr_NПолучите количество строк в или ширину сигнала
ssGetDTypeIdFromMxArrayПолучите тип данных параметра S-функции
ssGetNumSFcnParamsПолучите количество параметров, которые ожидает блок S-Function
ssGetSFcnParamПолучите параметр блока S-Function
ssGetSFcnParamsCountПолучите количество параметров диалогового окна блоков, которые имеют блок S-Function
ssSetNumSFcnParamsЗадайте количество параметров, которые имеют блок S-Function
ssSetSFcnParamTunableСделайте параметрами блоков настраиваемым

Шаг расчета

ssSetSampleTimeУстановите период шага расчета
ssSetInputPortSampleTimeЗадайте шаг расчета порта входа
ssSetModelReferenceSampleTimeDefaultInheritanceЗадайте, что модель-ссылка, содержащая эту S-функцию, может наследовать ее шаг расчета от ее родительской модели
ssSetModelReferenceSampleTimeDisallowInheritanceЗадайте, что использование этой S-функции в модели-ссылке препятствует наследованию ссылочной моделью своего шага расчета от родительской модели
ssSetModelReferenceSampleTimeInheritanceRuleЗадайте, мешает ли использование этой S-функции в модели-ссылке модели-ссылке наследовать ее шага расчета от родительской модели
ssSetNumSampleTimesЗадайте количество шагов расчета, которые имеют блок S-Function
ssSetOffsetTimeУстановите время смещения блока
ssSetTNextУстановите время следующего попадания выборки
ssSetControllableSampleTimeЗарегистрируйте управляемый шаг расчета в блоке
ssSetNumTicksToNextHitForControllableSampleTimeЗапланировать количество шагов к следующему событию
ssSetNeedAbsoluteTimeЗадайте, должен ли блок использовать абсолютное время
ssSetTimeSourceУстановите источник времени для асинхронной задачи
ssGetInputPortSampleTimeПолучите шаг расчета порта входа
ssGetInputPortSampleTimeIndexПолучите индекс шага расчета порта входа
ssGetNumSampleTimesПолучите количество шагов расчета, которые имеют блок
ssGetOffsetTimeПолучите одно из шага расчета смещений S-функции.
ssGetOutputPortSampleTimeПолучите шаг расчета выходного порта
ssGetOutputPortSampleTimeIndexПолучите шаг расчета индекс выхода порта
ssGetPortBasedSampleTimeBlockIsTriggeredОпределите, находится ли блок, который использует основанные на портах шаги расчета, в триггируемой подсистеме
ssGetSampleTimeПолучите один из шагов расчета S-функции.
ssGetTNextПолучите время следующего попадания выборки
ssSetParameterTuningComplianceЗадайте поведение шага расчета и настраиваемость для блоков s-function с шагами расчета на основе портов
ssGetParameterTuningComplianceПолучите поведение и настраиваемость шага расчета для блоков s-function с шагами расчета на основе портов
ssIsContinuousTaskОпределите, является ли задача непрерывной
ssIsSampleHitОпределите, задан ли шаг расчета
ssIsSpecialSampleHitОпределите, задан ли шаг расчета
ssSampleAndOffsetAreTriggeredОпределите, указывает ли пара шага расчета и значения смещения на срабатывание шага расчета
ssSampleAndOffsetAreTriggeredOrAsyncОпределите, указывает ли пара шага расчета и значения смещения на триггерный или асинхронный шаг расчета
ssSetAsyncTimerAttributesобъявляет, что блок Simulink требует таймера
ssSetAsyncTimerDataType устанавливает тип данных асинхронной задачи
ssSetAsyncTaskPrioritiesустанавливает приоритет задачи Simulink

Тип данных

ssRegisterDataTypeЗарегистрируйте пользовательский тип данных
ssRegisterTypeFromNamedObjectЗарегистрируйте пользовательский тип данных из Simulink.AliasType, Simulink.NumericType, или Simulink.Bus объект.
ssSetDataTypeSizeУстановите размер пользовательского типа данных
ssSetDataTypeZeroУстановите нулевое представление типа данных
ssSetInputPortDataTypeУстановите тип данных порта входа
ssSetOutputPortDataTypeУстановите тип данных порта выхода
ssGetDataTypeIdПолучите идентификатор типа данных
ssGetDataTypeIdAliasedThruToПолучите базовый тип данных, сопоставленный с псевдонимом типа данных
ssGetDataTypeNameПолучите имя типа данных
ssGetDataTypeSizeПолучение размера пользовательского типа данных
ssGetDataTypeZeroПолучите нулевое представление типа данных
ssGetInputPortDataTypeПолучите тип данных порта входа
ssGetNumDataTypesПолучите количество типов данных, зарегистрированных для этой симуляции, включая встроенные типы
ssGetOutputPortDataTypeПолучите тип данных порта выхода
ssGetOutputPortSignalПолучите вектор элементов сигнала, излучаемых портом выхода
ssGetSFcnParamDataTypeПолучите тип данных параметра для блока S-Function

Автобусы

ssGetBusElementComplexSignalПолучите сложность сигнала для элемента шины
ssGetBusElementDataTypeПолучите идентификатор типа данных для элемента шины
ssGetBusElementDimensionsПолучите размерности элемента шины
ssGetBusElementNameПолучите имя элемента шины
ssGetBusElementNumDimensionsПолучите количество размерностей для элемента шины
ssGetBusElementOffsetПолучите смещение от начала типа данных шины к элементу шины
ssGetNumBusElementsПолучите количество элементов в сигнале шины
ssGetSFcnParamNameПолучите значение параметров блоков для Блока s-function
ssIsDataTypeABusОпределите, представляет ли идентификатор типа данных шину
ssRegisterTypeFromParameterЗарегистрируйте тип данных, который задается параметром в таблице типов данных Simulink
ssRegisterTypeFromNamedObjectЗарегистрируйте пользовательский тип данных из Simulink.AliasType, Simulink.NumericType, или Simulink.Bus объект.
ssSetBusInputAsStructЗадайте, преобразовывать ли входной сигнал шины для S-функции из виртуального в невиртуальный
ssSetBusOutputAsStructУкажите, должен ли выходной сигнал шины от S-функции быть виртуальным или невиртуальным
ssSetBusOutputObjectNameУкажите имя объекта шины, который определяет структуру и тип выходного сигнала шины

Строки

ssGetInputStringLengthПолучите длину строки из входного порта
ssGetStringDataTypeMaxLengthПолучите максимальную длину строкового типа данных
ssIsStringDataTypeОпределите, является ли тип данных строковым
ssReadInputStringСчитайте строку C из входного порта
ssRegisterStringDataTypeРегистр типа строковых данных
ssWriteOutputStringЗапись строки C в выходной порт
ssGetNumRunTimeParamsПолучите количество параметров во время выполнения, созданных этой S-функцией
ssGetRunTimeParamInfoПолучите атрибуты параметра во время выполнения
ssRegAllTunableParamsAsRunTimeParamsЗарегистрируйте все настраиваемые параметры как параметры во время выполнения
ssRegDlgParamAsRunTimeParamЗарегистрируйте параметр диалога как параметр времени выполнения
ssSetNumRunTimeParamsЗадайте количество параметров во время выполнения, созданных этой S-функцией
ssSetRunTimeParamInfoЗадайте атрибуты параметра во время выполнения
ssUpdateAllTunableParamsAsRunTimeParamsОбновите значения параметров во время выполнения так же, как и у соответствующих настраиваемых параметров диалога
ssUpdateDlgParamAsRunTimeParamОбновите параметр времени выполнения, который соответствует параметру диалога
ssUpdateRunTimeParamDataОбновите значение параметра во время выполнения
ssUpdateRunTimeParamInfoОбновление атрибутов параметра во время выполнения

Подсистемы вызова функций

ssCallSystemWithTidВызовите методы обновления и выходов подсистемы вызова функций
ssDisableSystemWithTidОтключите подсистему вызова функций, соединенную с этим блоком s-function
ssEnableSystemWithTidВключите подсистему вызова функций, подключенное к этой S-функции
ssGetCallSystemNumFcnCallDestinations Получите количество адресатов вызовов функций.
ssGetExplicitFCSSCtrlОпределите, явно ли эта S-функция включает и отключает подсистемы вызова функций, которые она вызывает
ssSetCallSystemOutputУкажите, что порт выхода выдает вызов функции
ssSetExplicitFCSSCtrlУкажите, явно ли эта S-функция включает и отключает подсистему вызова функций, которую она вызывает

Функции Simulink

ssDeclareSimulinkFunctionОбъявите функцию Simulink с заданным прототипом функции и возможностями.
ssDeclareFunctionCallerОбъявите вызов функции Simulink с заданным прототипом функции.
ssCallSimulinkFunctionВызовите объявленную Функцию Simulink данного прототипа функции во время исполнения.
ssQuerySimulinkFunctionОпределите, объявлено ли имя функции как функция Simulink.
ssGetSimulinkFunctionInputПолучите указатель на входной параметр, переданный в функцию Simulink.
ssGetSimulinkFunctionOutputПолучите указатель на выходной аргумент, переданный в функцию Simulink.
ssSetSimulinkFunctionArgComplexityОбъявите сложность аргумента Simulink Function.
ssSetSimulinkFunctionArgDataTypeОбъявите тип данных аргумента Simulink Function.
ssSetSimulinkFunctionArgDimensionsОбъявите размерность аргумента Simulink Function.

Модель-ссылка

ssRTWGenIsModelReferenceRTWTargetОпределите, генерирует ли цель модели-ссылки Simulink Coder
ssRTWGenIsModelReferenceSimTargetОпределите, генерирует ли цель симуляции модели-ссылки
ssSetModelReferenceNormalModeSupportЗадайте, может ли S-функция использоваться в ссылках модели симуляции в режиме normal mode
ssSetModelReferenceSampleTimeDefaultInheritanceЗадайте, что модель-ссылка, содержащая эту S-функцию, может наследовать ее шаг расчета от ее родительской модели
ssSetModelReferenceSampleTimeDisallowInheritanceЗадайте, что использование этой S-функции в модели-ссылке препятствует наследованию ссылочной моделью своего шага расчета от родительской модели
ssSetModelReferenceSampleTimeInheritanceRuleЗадайте, мешает ли использование этой S-функции в модели-ссылке модели-ссылке наследовать ее шага расчета от родительской модели
ssSetSupportedForCodeReuseAcrossModelsУкажите, можно ли повторно использовать S-функцию между моделями

Информация о симуляции

ssSetStateAbsTolУстановите абсолютную погрешность, используемый решателем с переменным шагом для определенного непрерывного состояния S-функции.
ssSetBlockReductionЗапросите, чтобы механизм Simulink попытался уменьшить блок
ssSetOperatingPointComplianceЗадайте поведение S-функции Simulink при сохранении и восстановлении рабочей точки модели, содержащей S-функцию
ssSetOperatingPointVisibilityЗадайте, сделать ли рабочую точку симуляции S-функции видимой в рабочей точке симуляции модели
ssSetSolverNeedsResetПопросите механизм Simulink сбросить решатель
ssSetSkipContStatesConsistencyCheckПопросите механизм Simulink пропустить непрерывную проверку согласованности состояний
ssSetStopRequestedУстановите флаг запроса остановки симуляции
ssGetBlockReductionОпределите, запросил ли блок сокращение блока до начала симуляции и действительно ли оно было уменьшено после начала цикла симуляции
ssGetErrorStatusПолучите вектор символов, который идентифицирует последнюю ошибку
ssGetFixedStepSizeПолучите фиксированный размер шага модели, содержащей S-функцию.
ssGetMaxStepSizeПолучите максимальный размер шага, используемый моделью, содержащей S-функцию.
ssGetMinStepSizeПолучите минимальный размер шага, используемый моделью, содержащей S-функцию.
ssGetSimModeПолучите режим симуляции блока S-Function
ssGetSimStatusПолучите текущее состояние симуляции блока S-Function
ssGetSolverModeПолучите режим решателя, используемый для решения S-функции
ssGetSolverNameПолучите имя решателя, используемого для решения S-функции
ssGetStateAbsTolПолучите абсолютную погрешность, используемый решателем переменного шага для заданного состояния
ssGetStopRequestedПолучите значение запрошенного флага остановки симуляции
ssGetTПолучите текущее время симуляции
ssGetTaskTimeПолучите текущее время для текущей задачи
ssGetTFinalПолучите время остановки симуляции
ssGetTNextПолучите время следующего попадания выборки
ssGetTStartПолучите время начала симуляции
ssIsExternalSimОпределите, работает ли модель во режиме external mode.
ssIsFirstInitCondОпределите, равно ли время симуляции времени начала.
ssIsMajorTimeStepОпределите, находится ли симуляция в основном шаге
ssIsMinorTimeStepОпределите, находится ли симуляция в мелком шаге
ssIsVariableStepSolverОпределите, используется ли решатель с переменным шагом для решения S-функции
ssRTWGenIsAccelerator Определите, работает ли модель в режиме Accelerator.
ssIsRapidAcceleratorActiveОпределите, работает ли модель в режиме Rapid Accelerator

Обработка ошибок

ssGetErrorStatusПолучите вектор символов, который идентифицирует последнюю ошибку
ssGetLocalErrorStatusПолучите вектор символов, который идентифицирует последнюю ошибку
ssPrintfПечать сообщения переменного содержимого
ssSetErrorStatusСообщите об ошибке
ssSetLocalErrorStatusСообщите об ошибке безопасным для потоков способом
ssWarningОтображение предупреждающего сообщения

Информация и опции

ssSetOptionsЗадайте опции S-функции
ssCallExternalModeFcnАктивируйте функцию режима external mode для S-функции
ssGetModelNameПолучите имя модели
ssGetParentSSПолучение родительского элемента SimStruct
ssGetPathПолучите путь блока
ssGetRootSSПолучите корень иерархии SimStruct
ssGetUserDataДоступ к пользовательским данным
ssSetExternalModeFcnЗадайте функцию режима external mode для S-функции
ssSetPlacementGroupУкажите имя группы размещения блока
ssSetUserDataЗадайте пользовательские данные
ssSupportsMultipleExecInstancesЗадайте, что блок For Each Subsystem поддерживает S-функцию, работающую внутри подсистемы.
ssSetNumDWorkЗадайте количество векторов Dwork, используемых блоком
ssSetDWorkComplexSignalЗадайте, являются ли элементы массива вектора Dwork вещественными или комплексными
ssSetDWorkDataTypeЗадайте тип данных вектора Dwork
ssSetDWorkNameЗадайте имя вектора Dwork
ssSetDWorkUsageTypeЗадайте, как вектор DWork используется в S-функции
ssSetDWorkUsedAsDStateЗадайте, что вектор Dwork используется в качестве дискретного вектора состояния
ssSetDWorkWidthЗадайте ширину вектора Dwork
ssGetNumDWorkПолучите количество векторов Dwork, используемых блоком
ssGetDWorkПолучите вектор DWork
ssGetDWorkComplexSignalОпределите, являются ли элементы массива вектора Dwork вещественными или комплексными числами
ssGetDWorkDataTypeПолучите тип данных вектора Dwork
ssGetDWorkNameПолучите имя вектора Dwork
ssGetDWorkUsageTypeОпределите, как вектор DWork используется в S-функции
ssGetDWorkUsedAsDStateОпределите, используется ли вектор Dwork в качестве дискретного вектора состояния
ssGetDWorkWidthПолучите размер вектора Dwork
ssGetdXПолучите производные непрерывных состояний блока
ssSetNumContStatesЗадайте количество непрерывных состояний, которые имеют блок
ssSetNumDiscStatesЗадайте количество дискретных состояний, которые имеют блок
ssSetNumNonsampledZCsЗадайте количество состояний, для которых блок обнаруживает пересечения нуля, которые происходят между точками выборки
ssGetContStatesПолучите непрерывные состояния блока
ssGetDiscStatesПолучите дискретные состояния блока
ssGetRealDiscStatesПолучите дискретный вектор состояния блока
ssGetNonsampledZCsПолучите значения сигналов пересечения нулем
ssGetNumContStatesПолучите количество непрерывных состояний, которые имеет блок
ssGetNumDiscStatesПолучите количество дискретных состояний, которые имеют блок
ssGetNumNonsampledZCsПолучите размер вектора пересечения нулем
ssSetNumRWorkЗадайте размер рабочего вектора с плавающей точкой блока
ssGetNumRWorkПолучите размер рабочего вектора с плавающей точкой блока
ssGetRWorkПолучите рабочий вектор с плавающей точкой блока
ssGetRWorkValueПолучите элемент массива рабочего вектора с плавающей точкой блока
ssSetRWorkValueУстановите элемент массива рабочего вектора с плавающей точкой блока
ssSetNumIWorkЗадайте размер целочисленного рабочего вектора блока
ssGetNumIWorkПолучите размер целочисленного рабочего вектора блока
ssGetIWorkПолучите целочисленный рабочий вектор блока
ssGetIWorkValueПолучите элемент массива целочисленного рабочего вектора блока
ssSetIWorkValueУстановите элемент массива целочисленного рабочего вектора блока
ssSetNumPWorkЗадайте размер рабочего вектора указателя блока
ssGetNumPWorkПолучите размер рабочего вектора указателя блока
ssGetPWorkПолучите рабочий вектор указателя блока
ssGetPWorkValueПолучите указатель из рабочего вектора указателя блока
ssSetPWorkValueУстановите элемент массива рабочего вектора указателя блока
ssSetNumModesЗадайте размер вектора режима блока
ssGetNumModesПолучите размер вектора mode
ssGetModeVectorПолучите вектор mode
ssGetModeVectorValueПолучите элемент массива вектора режима блока
ssSetModeVectorValueУстановите элемент массива вектора режима блока
ssGetDWorkRTWIdentifierПолучите идентификатор, используемый для объявления вектора DWork в коде, сгенерированном из связанной S-функции
ssGetDWorkRTWIdentifierMustResolveToSignalObjectПолучите флаг, указывающий, разрешается ли вектор DWork в Simulink.Signal объект
ssGetDWorkRTWStorageClassПолучите класс памяти вектора DWork в коде, сгенерированном из связанной S-функции
ssGetDWorkRTWTypeQualifierПолучите квалификатор типа C (например const) используется для объявления вектора DWork в коде, сгенерированном из связанной S-функции
ssGetPlacementGroupПолучите имя группы размещения блока
ssRTWGenIsCodeGenИдентифицируйте генерацию кода, которая не используется Accelerator.
ssSetArrayLayoutForCodeGenЗадайте размещение массива S-функции
ssSetDWorkRTWIdentifierУкажите идентификатор, используемый для объявления вектора DWork в коде, сгенерированном из связанной S-функции
ssSetDWorkRTWIdentifierMustResolveToSignalObjectЗадайте, разрешается ли вектор DWork в Simulink.Signal объект
ssSetDWorkRTWStorageClassЗадайте класс памяти вектора DWork в коде, сгенерированном из связанной S-функции
ssSetDWorkRTWTypeQualifierУкажите квалификатор типа C (например const) используется для объявления вектора DWork в коде, сгенерированном из связанной S-функции
ssSetPlacementGroupУкажите имя группы размещения блока
ssWriteRTW2dMatParamНапишите матричный параметр в model.rtw файл
ssWriteRTWMx2dMatParamНапишите матричный параметр в формате MATLAB в model.rtw файл
ssWriteRTWMxVectParamНапишите векторный параметр в формате MATLAB в model.rtw файл
ssWriteRTWParametersЗапись настраиваемого параметра информации в model.rtw файл
ssWriteRTWParamSettingsЗаписывайте значения нетронутых параметров в model.rtw файл
ssWriteRTWScalarParamНапишите скалярный параметр в model.rtw файл
ssWriteRTWStrНапишите вектор символов в model.rtw файл
ssWriteRTWStrParamНапишите параметр вектора символов в model.rtw файл
ssWriteRTWStrVectParamНапишите вектор параметров вектора символов в model.rtw файл
ssWriteRTWVectParamНапишите векторный параметр в model.rtw файл
ssWriteRTWWorkVectЗапись рабочих векторов в model.rtw файл

Темы

Входные и выходные порты

Создайте входные и выходные порты на блоке C/C + + S-функции.

Передайте параметры диалога в S-функции

Обработайте параметры через диалоговое окно блока C/C + + S-функции.

Задайте шаги расчета S-функции

Задайте скорость, с которой блок работает в C/C + + S-функциях.

Основы векторов DWork

Узнать ключевые концепции векторов DWork.

Сконфигурируйте пользовательские типы данных

Сконфигурируйте пользовательские типы данных для значений сигналов и параметров блока в C/C + + S-функциях.

Реализуйте подсистемы вызова функций с S-функциями

Создайте подсистемы вызова функций с S-функциями.

Использование подсистем вызова функций

Создайте подсистему, которая выполняется с вызовом функции.

Податливость S-функций ModelOperatingPoint

Использование ModelOperatingPoint объект в S-функциях C-MEX для сохранения и восстановления данных моделирования.

Создайте и обновите параметры выполнения S-функции

Создайте и обновите параметры во время выполнения в C/C + + S-функциях.

Инструкции по записи Thread-Safe S-функций

Примите во внимание эти рекомендации, когда вы хотите сделать свои S-функции безопасными для потоков.

Используйте функции C/C + + S-Functions как Sim Viewing Devices во режиме external mode

Задайте C/C + + S-функцию как устройство просмотра sim для использования во режиме external mode.

Указатели в S-функциях

Обработайте неожиданные события в S-функциях.