exponenta event banner

Покрытие модели для нескольких экземпляров ссылочной модели

Сведения о покрытии для блоков модели

Модельные блоки не получают покрытия напрямую; если режим моделирования блока модели установлен в Normal , SIL, или PIL, программное обеспечение Simulink ® Coverage™ регистрирует покрытие для модели, на которую ссылается блок Model. Если режим моделирования для блока модели отличается от Normal, SIL, или PIL, программное обеспечение не записывает покрытие для ссылочной модели.

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

Программное обеспечение Simulink Coverage регистрирует покрытие для всех экземпляров ссылочной модели в одном режиме моделирования и объединяет данные покрытия для этой ссылочной модели в окончательных результатах.

Запись покрытия для нескольких экземпляров ссылочной модели

Чтобы увидеть, как это работает, смоделируйте модель дважды. При первой записи покрытия для одного блока модели в Normal режим моделирования. Во второй раз выполняется запись покрытия для двух блоков модели в Normal режим моделирования. Оба блока модели ссылаются на одну и ту же модель.

Охват записей для первого экземпляра ссылочной модели

Запись покрытия для одного блока модели.

  1. Откройте модель верхнего уровня. В этом примере используется sldemo_mdlref_datamngt модель:

    Эта модель содержит три блока модели, которые ссылаются на sldemo_mdlref_counter_datamngt пример модели. Углы каждого блока модели указывают значение параметра режима моделирования:

    • Counter1 - Режим моделирования: Normal

    • Counter2 - Режим моделирования: Accelerator

    • Counter3 - Режим моделирования: Accelerator

  2. Настройте модель для записи покрытия во время моделирования:

    1. В редакторе Simulink выберите «Параметры модели» на вкладке «Моделирование».

    2. На панели «Покрытие» диалогового окна «Параметры конфигурации» выберите:

      • Включить анализ покрытия

      • Ссылочные модели

    3. Щелкните Выбрать модели (Select Models). В диалоговом окне Выбрать модели для анализа покрытия (Select Models for Coverage Analysis) можно выбрать только те ссылочные модели, для которых режимом моделирования является Normal, SIL, или PIL. В этом примере только первый блок модели, который ссылается sldemo_mdlref_counter_datamngt доступен для покрытия записи.

    4. Нажмите кнопку ОК, чтобы выйти из диалогового окна Выбор моделей для анализа покрытия (Select Models for Coverage Analysis).

  3. Нажмите OK для сохранения настроек покрытия и выхода из диалогового окна Configuration Parameters.

  4. Моделирование модели.

    По завершении моделирования открывается отчет об охвате HTML. В этом примере данные покрытия для ссылочной модели, sldemo_mdlref_counter_datamngt, показывает, что модель достигла 69% охвата.

  5. Щелкните гиперссылку в отчете для ссылочной модели.

    Открывается подробный отчет о покрытии для ссылочной модели, и ссылочная модель отображается с выделением для отображения результатов покрытия.

    Обратите внимание на следующее о покрытии для подсистемы Range Check в этом примере:

    • Блок Saturate Count выполнен 100 раз. Этот блок имеет четыре булевых решения. Охват принятием решений составил 50%, поскольку два из четырех решений никогда не регистрировались:

      • Решение input > lower limit никогда не был false.

      • Решение input >= upper limit никогда не был true.

    • DetectOverflow функция выполнена 50 раз. Этот сценарий имеет пять решений. DetectOverflow сценарий достиг 60% охвата, потому что два из пяти решений так и не были записаны:

      • Выражение count >= CounterParams.UpperLimit никогда не был true.

      • Выражение count > CounterParams.LowerLimit никогда не был false.

Покрытие записей для второго экземпляра ссылочной модели

Запись покрытия для двух блоков модели. Установить режим моделирования второго блока модели в значение Normal и смоделировать модель. В этом примере блок Counter2 добавляет покрытие для модели, на которую ссылается оба блока модели.

  1. В редакторе Simulink для модели верхнего уровня щелкните правой кнопкой мыши второй блок модели и выберите Параметры блока (Model Reference).

    Откроется диалоговое окно Параметры функционального блока (Function Block Parameters).

  2. Установите для параметра Режим моделирования значение Normal.

  3. Нажмите кнопку OK, чтобы сохранить изменения и выйти из диалогового окна Function Block Parameters.

    Углы блока модели изменяются, указывая, что режим моделирования для этого блока Normal, как в примере ниже.

  4. Чтобы убедиться, что программное обеспечение записывает покрытие для обоих экземпляров этой модели:

    1. В редакторе Simulink выберите «Параметры модели» на вкладке «Моделирование».

    2. На панели Покрытие выберите Включить анализ покрытия.

    3. Выберите Ссылочные модели (Referenced Models) и щелкните Выбрать модели (Select Models).

      В диалоговом окне «Выбор моделей для анализа покрытия» убедитесь, что выбраны оба экземпляра ссылочной модели. В этом примере список теперь выглядит следующим образом.

      При наличии нескольких экземпляров ссылочной модели в Normal режим, можно выбрать запись покрытия для всех или ни для одного из них.

    4. Нажмите кнопку ОК, чтобы закрыть диалоговое окно Выбор моделей для анализа покрытия (Select Models for Coverage Analysis).

  5. Снова смоделируйте модель.

  6. По завершении моделирования откройте HTML-отчет о покрытии.

    В этом примере ссылочная модель достигла 85% покрытия. Обратите внимание на следующие сведения о данных покрытия для подсистемы Range Check:

    • Блок Saturate Count выполнен 179 раз. Моделирование блока Counter2 выполняло блок Saturate Count дополнительно 79 раз, в общей сложности 179 казней.

      Решение input >= upper limit был true 21 раз во время этого моделирования, по сравнению с 0 во время первого моделирования. Четвертое решение input > lower limit по-прежнему никогда не был false. Три из четырех решений были записаны во время моделирования, поэтому этот блок достиг 75% покрытия.

    • DetectOverflow функция выполнена 100 раз. Моделирование блока Counter2 выполнялось DetectOverflow дополнительно 50 раз.

      DetectOverflow функция имеет пять решений. Выражение count >= CounterParams.UpperLimit был true 21 раз во время этого моделирования, по сравнению с 0 во время первого моделирования. Выражение count > CounterParams.LowerLimit никогда не был false. Четыре из пяти решений были записаны во время моделирования, поэтому DetectOverflow функция достигла 80% охвата.