exponenta event banner

Конфигурирование функциональных возможностей 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-функции C MEX
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-функции C MEX
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Определите, подключен ли выход этого блока к блоку объединения
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-функционального блока
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-функциональных блоков с временем выборки на основе порта
ssGetParameterTuningComplianceПолучение характеристик времени выборки и возможности настройки для S-функциональных блоков с использованием времени выборки на основе портов
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-функционального блока

Автобусы

ssGetBusElementComplexSignalПолучение сложности сигнала для элемента шины
ssGetBusElementDataTypeПолучение идентификатора типа данных для элемента шины
ssGetBusElementDimensionsПолучение размеров элемента шины
ssGetBusElementNameПолучение имени элемента шины
ssGetBusElementNumDimensionsПолучение количества размеров элемента шины
ssGetBusElementOffsetПолучение смещения от начала типа данных шины к элементу шины
ssGetNumBusElementsПолучение количества элементов в сигнале шины
ssGetSFcnParamNameПолучение значения параметра блока для S-функционального блока
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-функций
ssEnableSystemWithTidАктивизация подсистемы вызова функции, подключенной к этой S-функции
ssGetCallSystemNumFcnCallDestinations Получение количества адресатов функциональных вызовов.
ssGetExplicitFCSSCtrlОпределите, должна ли эта S-функция явно включать и отключать подсистемы вызова функций, которые она вызывает
ssSetCallSystemOutputУкажите, что порт вывода выполняет вызов функции
ssSetExplicitFCSSCtrlУкажите, должна ли эта S-функция явно включать и отключать вызываемую подсистему вызова функции

Функции симулятора

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

Ссылка на модель

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

Сведения о моделировании

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

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

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

Информация и параметры

ssSetOptionsУкажите параметры S-функции
ssCallExternalModeFcnВызов функции внешнего режима для S-функции
ssGetModelNameПолучение имени модели
ssGetParentSSПолучение родительского объекта SimStruct
ssGetPathПолучение пути блока
ssGetRootSSПолучить корень иерархии SimStruct
ssGetUserDataДоступ к данным пользователя
ssSetExternalModeFcnУкажите функцию внешнего режима для S-функции
ssSetPlacementGroupУкажите имя группы размещения блока
ssSetUserDataУкажите данные пользователя
ssSupportsMultipleExecInstancesУкажите, что блок «Для каждой подсистемы» поддерживает 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Получение размера вектора режима
ssGetModeVectorПолучение вектора режима
ssGetModeVectorValueПолучение элемента вектора режима блока
ssSetModeVectorValueУстановка элемента вектора режима блока
ssGetDWorkRTWIdentifierПолучение идентификатора, используемого для объявления вектора DWork в коде, сгенерированном из связанной S-функции
ssGetDWorkRTWIdentifierMustResolveToSignalObjectПолучение флага, указывающего, разрешается ли вектор DWork в Simulink.Signal объект
ssGetDWorkRTWStorageClassПолучение класса хранения вектора DWork в коде, сгенерированном из связанной S-функции
ssGetDWorkRTWTypeQualifierПолучить квалификатор типа C (например, const) используется для объявления вектора DWork в коде, сгенерированном из связанной S-функции
ssGetPlacementGroupПолучение имени группы размещения блока
ssRTWGenIsCodeGenОпределите генерацию кода, которая не используется ускорителем.
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 объект в C-MEX S-функциях для сохранения и восстановления данных моделирования.

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

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

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

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

Использование C/C + + S-функций в качестве Sim-устройств просмотра во внешнем режиме

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

Обработка ошибок в S-функциях

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