Оптимизация Simulink и покрытие модели

В диалоговом окне Configuration Parameters существует три параметра оптимизации Simulink®, которые могут влиять на ваши данные о покрытии модели:

Встроенные параметры

Чтобы преобразовать настраиваемые параметры модели в постоянные значения для генерации кода, в диалоговом окне Configuration Parameters, на панели Math and Data Types, устанавливают Default parameter behavior на Inlined.

Когда параметры преобразовываются в константы, Simulink может устранить определенные решения в вашей модели. Вы не можете достигнуть покрытия для устраненного решения, таким образом, отчет покрытия отображает 0/0 для тех решений.

Блокируйте сокращение

Чтобы достигнуть более быстрого выполнения во время симуляции модели и в сгенерированном коде, в диалоговом окне Configuration Parameters, выбирают параметр Block reduction. Программное обеспечение Simulink сворачивает определенные группы блоков в один, более эффективный блок или удаляет их полностью.

Одна из опций покрытия модели, Force block reduction off, позволяет вам игнорировать параметр Block reduction при сборе покрытия модели.

Если вы не выбираете параметр Block reduction, или если вы выбираете Force block reduction off, программное обеспечение Simulink Coverage™ обеспечивает данные о покрытии для каждого блока в модели, которая собирает покрытие.

Если бы вы выбираете параметр Block reduction и не устанавливаете Force block reduction off, отчет покрытия перечисляет уменьшаемые блоки, которые собрали бы покрытие.

Условное входное выполнение ответвления

Чтобы улучшить образцовое выполнение, когда модель содержит Переключатель и Многопортовые блоки switch в диалоговом окне Configuration Parameters, выбирают Conditional input branch execution. Если вы выбираете этот параметр, симуляция выполняет только блоки, которые требуются, чтобы вычислять вход управления и ввод данных, выбранный входом управления.

Когда выполнение ответвления входа Conditional включено, вместо того, чтобы выполнить все блоки, управляющие входными портами блока switch на каждом временном шаге, только блоки, требуемые вычислить вход управления и ввод данных, выбранный входом управления, выполняются.

Несколько факторов влияют или оптимизация блока концевого выключателя:

  • Только блоки с (наследованным) -1 или inf (Постоянный) шаг расчета могут быть оптимизированы.

  • Блоки с выходными параметрами, отмеченными как тестовые точки, не могут быть оптимизированы.

  • Многоскоростные блоки не могут быть оптимизированы.

  • Блоки с состояниями не могут быть оптимизированы.

  • Только S-функции с включенной опцией SS_OPTION_CAN_BE_CALLED_CONDITIONALLY могут быть оптимизированы.

Например, если ваша модель будет иметь блок switch, и вход отмечается как тестовая точка, такой как тогда, когда блок Scope присоединяется, блоки, питающиеся, которые вводят, то будет всегда выполняться для покрытия модели независимо от положения переключателя. Если у вас есть модель с блоками switch, и вы хотите гарантировать, что данные о покрытии модели обрабатывают каждый вход на каждом шаге, очистите Conditional input branch execution.

Условное входное выполнение ответвления не применяется к графикам Stateflow®.