exponenta event banner

ssSetBlockReduction

Запросить, чтобы модуль Simulink попытался уменьшить блок

Синтаксис

uint_T ssSetBlockReduction(SimStruct *S, uint_T flag)

Аргументы

S

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

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++

См. также

ssGetBlockReduction

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