Вы можете использовать Simulink® Test™ для функциональных экспериментальных моделей и кода. Прежде чем вы создадите тест, рассмотрите:
Какую модель или компонент модели вы тестируете?
Интегрирует ли компонент код, например, с использованием блока C Caller?
Вам нужно запустить тест в нескольких окружениях, таких как использование сгенерированного кода на внешнем целевом объекте?
Какова цель тестирования? Для примера вам нужна верификация требований, сравнение данных или быстрый тест вашего проекта?
Используется ли ваш тест несколько параметрических значений?
Вам требуются результаты покрытия?
Можно протестировать целую модель, или можно фокусироваться на компоненте модели. Можно создать тест для всей модели или использовать тестовую обвязку.
A тестовой обвязки позволяет вам изолировать целую модель для проверки. Можно добавить блоки верификации и логику в тестовую обвязку, чтобы сохранить вашу основную модель ясной. Можно также добавить другие модели, которые моделируют окружение.
A тестовой обвязки позволяет вам изолировать компонент модели из основной модели для модульного тестирования. Для получения дополнительной информации см. раздел Создание Тестовую обвязку.
Тестовая обвязка связана с блоком или с целой моделью. Тестовая обвязка содержит копию блока или ссылку на модель, и входы и выходы, помещенные в проверку целях. Можно добавить к тестовой обвязке другие блоки. Можно сохранить обвязку с помощью файла модели или можно сохранить его в файле, отдельном от модели. Тестовая обвязка работает так же, является ли он внутренним или внешним по отношению к модели. Можно также задать, синхронизировать ли изменения между моделью и тестовой обвязкой.
Рисунок показывает пример тестовой обвязки. Тестируемым компонентом является shift_logic блок, который копируется из основной модели во время создания обвязки. Копия блока shift_logic связана с основной моделью. Входы являются блоками Inport, и выход является блоком Outport. Вертикальные подсистемы содержат блоки спецификации сигнала и маршрутизацию, которая соединяет интерфейс компонента с входами и выходами.
Прежде чем вы создаете тестовую обвязку, решите, сохранять ли обвязку с моделью и как синхронизировать обвязку с моделью. Для получения дополнительной информации см. «Тестовая обвязка» и «Отношение модели» и «Синхронизация изменений между тестовыми обвязками и моделью».
Прежде чем вы создадите свой тест, поймете свои цели.
Можно оценить, ведет ли модель себя в соответствии с требованиями. Например, предположим, что ваши требования состоят в том, что трансмиссия должна переключать передачи на определенных скоростях. Создайте тест для моделей контроллеров передачи или тестовую обвязку для компонента контроллера. Проверьте, соответствует ли модель требованиям, используя:
Создание < reservedrangesplaceholder0 > операторов в модели или тестовой обвязке.
Включение блоков Верификация модели Blocks в модель или тестовую обвязку.
Захват выхода симуляции в тест и сравнение выхода симуляции с базовыми данными.
Запустите контрольный пример и получите результаты в диспетчере тестов. Можно связать тест с требованиями, созданными в Simulink Requirements™, собрать покрытие с Simulink Coverage™ и добавить тестов для дополнительных сценариев. Для получения примера смотрите Тестирование точек понижающей передачи контроллера коробки передач.
Используя Test Manager, можно сравнить результаты симуляции с базовыми данными или с другой симуляцией. В любом случае необходимо задать сигналы для захвата.
В регрессионном тесте установите базовые данные, которые являются ожидаемыми выходами. Можно задать базовые данные вручную, импортировать базовые данные из Excel® или MAT файла, или захват базовых данных из симуляции.
При проверке эквивалентности вы сравниваете две симуляции, чтобы увидеть, являются ли они эквивалентными. Для примера можно сравнить результаты из двух решателей или сравнить результаты из симуляций в режиме normal и software-in-the- цикла (SIL). Исследуйте влияние различных значений параметров или наборов калибровочных данных, перейдя назад к тестам. Для получения примера смотрите Тестирование Двух Симуляций для Эквивалентности.
Для сравнительных тестов можно принять результаты, которые попадают в технически приемлемое различие, путем определения значения или временных допусков. Можно задать этот допуск перед запуском теста или просмотреть результаты и настроить допуск после. Для получения дополнительной информации смотрите Set Signal Tolerances.
В случаях, когда ваш тест требует только модели для симуляции без ошибок, можно запустить симуляционный тест. Симуляционные тесты полезны, если ваша модель все еще находится в разработке, или если у вас есть существующая экспериментальная модель, которая содержит входы и оценки и регистрирует соответствующие данные. Использование Test Manager для запуска симуляционных тестов позволяет вам управлять многочисленными тестами и систематически собирать результаты и управлять ими.
По умолчанию выполнение теста в Test Manager отключает точки останова для Simulink, Stateflow®, и Test Sequence блоки. Используйте Run with Stepper в Диспетчере тестов, чтобы запустить тест в шаге симуляции и использовать точки останова.
Обратите внимание, что точки останова Simulink и Stateflow не поддерживаются при запуске теста из диспетчера тестов. Можно выбрать кнопку Run with Stepper в Диспетчере тестов, запустить тест и использовать точки останова с шагом симуляции.
Можно настроить тест, чтобы запустить другие релизы MATLAB® который вы установили, начиная с R2011b. Эта возможность позволяет запускать тесты в релизах, которые не имеют Simulink Test.Вы можете запустить один и тот же тест в нескольких релизах, чтобы убедиться, что он проходит в каждом из них. Для получения дополнительной информации см. «Запуск тестов в нескольких релизах MATLAB».
Вы можете проверить выход сгенерированного кода, управляя последовательными симуляциями в модели и SIL (программное обеспечение в петле) или PIL (процессор в петле) способ. Один и тот же обратный тест может запустить несколько сценарии тестирования путем итерации по различным тестовым векторам, заданным в файле MAT или Excel. Вы можете применить допуски к своим результатам, чтобы допустить технически приемлемые различия между моделью и сгенерированным кодом. Допуски могут включать допустимые различия для значений и времени, которые могут применяться к оборудованию, работающему в режиме реального времени. Вы не можете использовать SIL или PIL режим в моделях Подсистемы.
С помощью Simulink Real-Time™ можно включать эффекты физических объектов, сигналов и встроенного оборудования путем выполнения тестов в HIL-режиме (оборудование в цикле) на целевом компьютере в реальном времени. Запустив регрессионный тест в реальном времени, можно сравнить результаты с известными хорошими данными. Можно также запустить обратный тест между моделью, SIL или PIL и симуляцией в реальном времени. В любом случае Test Manager позволяет выбрать целевой компьютер, настроенный с Simulink Real-Time. Выполнить программно-аппаратные тестирования в реальном времени можно только на целевых компьютерах, используя Simulink Real-Time.
Можно управлять параметрами и настройками строения из Диспетчера тестов, например, чтобы исследовать опции проекта или выполнить итерацию над наборами калибровки, решателями и настройками типа данных. Можно создать наборы интересующих параметров и переопределить значения, когда выполняется каждая итерация. Можно также выполнить сдвиги параметров, записав более сложные скрипты непосредственно в Test Manager.
С помощью Simulink Coverage можно собрать данные о покрытии, чтобы помочь количественно определить степень, в которой тестируется ваша модель или код. Когда вы настраиваете набор покрытия для вашего тестового файла, результаты тестирования включают покрытие для тестируемой системы и, опционально, ссылочные модели. Можно задать метрики покрытия для возврата. Покрытие не поддерживается для блоков SIL или PIL.
Если ваши результаты показывают неполное покрытие, вы можете увеличить покрытие на:
Добавление тестов вручную к тестовому файлу.
Генерация тестов для увеличения покрытия с помощью Simulink Design Verifier™. Можно сгенерировать контрольные примеры из результатов Диспетчера тестов.
В любом случае можно связать новые тесты с требованиями. Это необходимо для определенных сертификатов.
Итерация является изменением теста, который использует конкретный набор данных. Например, предположим, что у вас есть несколько наборов входных данных. Можно настроить одну итерацию тестового примера для каждого внешнего входного файла, где в противном случае тесты совпадают. Можно также задать наборы параметров и переопределить значения в итерациях. Другой способ переопределения параметров - использование скриптовых сдвигов параметров, которые позволяют вам повторять многие значения.
Когда вы проектируете свой тест, вы решаете, хотите ли вы несколько тестов или итераций одного и того же теста. Одним из преимуществ использования итераций является то, что вы можете запустить тесты с помощью быстрого перезапуска. Итерации имеют смысл, если вы изменяете только параметры, входы или настройки строения, но в противном случае тесты совпадают. Используйте отдельные тесты, если вам нужен независимый контроль строения или каждый тест относится к другому требованию.
Для получения дополнительной информации о итерациях см. Раздел «Итерации тестов».