ssSetBlockReduction

Запросите, чтобы механизм 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-function's mdlStart метод (см. блок-схему коллбэка во Взаимодействии Engine Simulink с S-функциями C). Это означает, что ваша S-функция должна вызвать этот макрос не позднее, чем mdlSetWorkWidths метод, который будет рассмотрен кандидатом на сокращение блока.

Языки

C, C++

Смотрите также

ssGetBlockReduction

Представлено до R2006a