Верификация компонентов

Используя верификацию компонента, можно протестировать компонент проекта в модели с помощью одного из следующих подходов:

  • System analysis. В контексте модели, которая содержит компонент, вы используете систематическую симуляцию контроллеров с обратной связью, чтобы проверить компоненты в системной модели управления. Затем можно протестировать алгоритмы управления с помощью модели.

  • Component analysis. Как автономные компоненты, для высокого уровня доверия в алгоритме компонента проверьте компонент в изоляции от остальной системы.

    Проверка автономных компонентов обеспечивает несколько преимуществ:

    • Можно использовать анализ, чтобы фокусироваться на фрагментах проекта, которые вы не можете протестировать из-за физических ограничений управляемой системы.

    • Для симуляций без разомкнутого контура можно протестировать модель объекта управления.

    • Можно использовать этот подход, когда модель еще не доступна или когда вам нужно симулировать системную модель управления в ускоренном режиме по причинам эффективности.

Инструменты Simulink Coverage для верификации компонентов

Путем выделения компонента для проверки и использования инструментов, которые Simulink® Coverage™ предоставляет программное обеспечение, вы создаете тесты, чтобы расширить возможности проверки для больших моделей. Вы можете:

  • Достичь 100% покрытия модели - Если определенные компоненты модели не записывают 100% покрытия, модель верхнего уровня не может достичь 100% покрытия. Путем проверки этих компонентов по отдельности можно создать тесты, которые полностью определяют интерфейс компонента, позволяя компоненту записывать 100% охват.

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

  • Протестируйте робастность компонента - Чтобы убедиться, что компонент правильно обрабатывает неожиданные входы и вычисления, можно создать тесты, которые генерируют данные. Затем проверьте возможности обработки ошибок в компоненте.

Рабочий процесс для верификации компонентов

Этот рисунок иллюстрирует два подхода к верификации компонентов.

  1. Выберите свой подход к верификации компонентов:

    • Для симуляций замкнутой системы проверьте компонент в контексте его модели контейнера, зарегистрировав сигналы к этому компоненту и сохранив их в файле данных. Если эти сигналы не составляют полный тестовый набор, сгенерируйте модель тестовой обвязки и добавьте или измените контрольные примеры в Signal Builder.

    • Для симуляций разомкнутого контура проверьте компонент независимо от модели контейнера, извлечя компонент из его модели контейнера и создав модель тестовой обвязки для извлеченного компонента. Добавьте или измените тесты в Signal Builder и зарегистрируйте сигналы к компоненту в модели тестовой обвязки.

  2. Подготовьте компонент к верификации.

  3. Создание и логгирование тестов. Можно также объединить данные теста в один файл данных.

    Файл данных содержит данные теста для симуляции компонента. Если вы не можете достичь ожидаемых результатов с определенным набором тестов, добавьте новые тесты или измените существующие тесты в файле данных. Объедините тесты в один файл данных.

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

  4. Выполните тесты в циклическом или процессорном режиме.

  5. После того, как у вас будет полный тестовый набор, вы можете:

    • Симулируйте модель и выполните тесты, чтобы:

      • Запись покрытия.

      • Запишите выходные значения, чтобы убедиться, что вы получите ожидаемые результаты.

    • Активируйте Генерацию кода Верификации (CGV) API, чтобы выполнить сгенерированный код для модели, которая содержит компонент в режиме симуляции, программном обеспечении в цикле (SIL) или процессоре в цикле (PIL).

      Примечание

      Чтобы выполнить модель в различных режимах выполнения, вы используете CGV API, чтобы проверить числовую эквивалентность результатов. См. «Проверка генерации программного кода» (Embedded Coder).

Проверьте компонент независимо от модели контейнера

Используйте анализ компонентов для проверки:

  • Моделируйте блоки

  • Атомарные подсистемы

  • Stateflow® атомарные субдиаграммы

  1. В зависимости от типа компонента выполните одно из следующих действий:

    • Моделировать блоки - Открыть ссылочную модель.

    • Атомарные подсистемы - Извлеките содержимое подсистемы в свою собственную модель Simulink.

    • Атомарные субдиаграммы - Извлечь содержимое атомарной субдиаграммы Stateflow в свою собственную модель Simulink.

  2. Создайте модель тестовой обвязки для:

    • Ссылка на модель

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

  3. Добавьте или измените тесты в Signal Builder модели тестовой обвязки.

  4. Логгирование входных сигналов из Signal Builder в тестовый модуль.

  5. Повторяйте шаги 3 и 4, пока вы не будете удовлетворены тестовым набором.

  6. Объедините данные теста в один файл.

  7. В зависимости от ваших целей, выполните одно из следующих действий:

    • Выполните тесты для:

      • Запись покрытия.

      • Запишите выходные значения и убедитесь, что они равны ожидаемым значениям.

    • Активируйте Генерацию кода Верификации (CGV) API, чтобы выполнить тесты в режиме «программное обеспечение в цикл» (SIL) или «процессор в цикл» (PIL) на сгенерированном коде для модели, которая содержит компонент.

Если тесты не достигают ожидаемых результатов, повторите шаги с 3 по 5.

Проверьте блок Model в контексте модели контейнера

Используйте системный анализ для:

  • Проверьте блок Model в контексте контейнерной модели блока.

  • Анализируйте контроллер с обратной связью.

  1. Логгирование входных сигналов к компоненту путем симуляции модели контейнера или анализ модели с помощью программного обеспечения Simulink Design Verifier™.

  2. Если вы хотите добавить тестовые примеры к своему тестовому набору или изменить существующие тесты, создайте модель тестовой обвязки с записанными сигналами.

  3. Добавьте или измените тесты в Signal Builder в модели тестовой обвязки.

  4. Логгирование входных сигналов из Signal Builder в тестовый модуль.

  5. Повторяйте шаги 3 и 4, пока вы не будете удовлетворены тестовым набором.

  6. Объедините данные теста в один файл.

  7. В зависимости от ваших целей, выполните одно из следующих действий:

    • Выполните тесты для:

      • Запись покрытия.

      • Запишите выходные значения и убедитесь, что они равны ожидаемым значениям.

    • Активируйте Генерацию кода Верификации (CGV) API, чтобы выполнить тесты в режиме «программное обеспечение в цикл» (SIL) или «процессор в цикл» (PIL) на сгенерированном коде для модели.

Если тесты не достигают ожидаемых результатов, повторите шаги с 3 по 5.