Запросите, чтобы механизм Simulink попытался уменьшить блок
uint_T ssSetBlockReduction(SimStruct *S, uint_T flag)
S
SimStruct, представляющий блок S-Function.
flag
Если не нуль, Simulink® двигатель должен попытаться уменьшить этот блок.
0
если flag
является 0
и 1
, в противном случае.
Используйте этот макрос, чтобы попросить механизм уменьшить этот блок. Блок редукционен, если его можно исключить из модели, не влияя на поведение модели. Двигатель оптимизирует эффективность, пропуская выполнение редуцируемых блоков во время симуляции модели. В частности, двигатель не вызывает mdlStart
, mdlUpdate
, и mdlOutputs
методы редуцируемых блоков. Кроме того, двигатель выполняет mdlTerminate
метод редуцированного блока, только если блок установил SS_OPTION_CALL_TERMINATE_ON_EXIT
опция до начала цикла симуляции, использование ssSetOptions
.
Блок должен удовлетворять определенным критериям, чтобы считаться редуцируемым. Для примера,
Блок должен иметь по крайней мере один вход.
Блок должен иметь то же количество выходов, что и входы, или никаких выходов.
Блок не может иметь входы, которые являются шинными сигналами.
Блок не может иметь непрерывное состояние.
Блок не может иметь дискретных состояний, в то время как модель регистрирует состояния.
Блок не может иметь пересечения нуля.
Блок не может иметь настраиваемые параметры.
Если блок не удовлетворяет любому из этих критериев, механизм включает блок в симуляцию независимо от того, запросил ли блок сокращение.
Для получения дополнительной информации см. страницу с описанием по сокращению блоков в документации Simulink. Обратите внимание, что если вы хотите включить удаление мертвой ветви, не запрашивайте сокращение блока. Вместо этого установите значение SS_OPTION_NONVOLATILE
использование опции ssSetOptions
.
Ваша S-функция должна вызвать этот макрос, прежде чем механизм в противном случае активирует S-функции mdlStart
метод (см. блок-схему коллбэка в Simulink Engine Interaction with C S-Functions). Это означает, что ваша S-функция должна вызвать этот макрос не позднее, чем его mdlSetWorkWidths
способ, который рассматривается как кандидат для блочного сокращения.
C, C++