В этом примере показано, как отредактировать требования, связать требования с их реализацией в модели и проверить их функциональность в контексте приложения БПЛА. Компоненты модели и требования включают в себя наведение и управление БПЛА, реализованное на примере Доставки Пакета БПЛА.
Пример доставки пакета БПЛА показывает, как симулировать небольшой мультикоптерный сценарий, который взлетает, летает и приземляется в другом месте в городском окружении. Пример использует инкрементальные итерации проектирования, чтобы создать сложность симуляции. В этом примере демонстрационные требования к тестам связаны с разделами модели BAV Package Delivery и подтверждены через тестовый набор.
Чтобы начать, откройте пример live скрипта и получите доступ к вспомогательным файлам, нажав Открыть Live Script в документации или используя openExample
функция.
openExample('uav/AutomateTestingForUAVPackageDeliveryExample');
Simulink Requirements™ позволяет вам создавать, анализировать и управлять требованиями в Simulink™. Этот пример содержит двадцать функциональных требований, определенных для руководства и управления полетом контроллера БПЛА. Откройте предоставленный проект Simulink и набор требований. Также можно открыть файл со вкладки Requirements приложения Requirements Manager в Simulink
prj = openProject("verifications/AutomatedTestsPackageDelivery.prj"); open('uavPackageDeliveryReqs.slreqx');
Требования разделяются на разделы «Руководство» и «Управление». Эти требования сопоставлены непосредственно с разделами в мультироторной модели примера доставки пакета БПЛА. Просмотрите список требований и щелкните элементы для просмотра и редактирования сведений справа.
Simulink Requirements позволяет вам связать каждое отдельное требование с компонентом модели Simulink, который реализует такое требование. Чтобы связать требования, сначала откройте мультироторную модель.
open_system('MultirotorModel');
Введите перспективу требований, щелкнув мышью в элементе управления Perspectives в правом нижнем углу полотна модели.
Выберите перспективу Requirements.
В перспективе требований перейдите к логике руководства и проверьте некоторые реализованные требования к руководству. Требования № 5 и № 6 маркируются серым цветом. Пределы команд heading и yaw реализуются блоком Waypoint Follower.
open_system('MultirotorModel/Guidance Logic/Full Guidance Logic/Guidance Stateflow/Guidance Mode Selector/GuidanceLogic.WP');
Также можно перейти к реализации каждого требования из раздела « Ссылок» каждого требования в редакторе требований. Откройте Редактор требований. Выберите функциональное требование и перейдите к разделу Links > > Implemented by на вкладке Details справа.
open('uavPackageDeliveryReqs.slreqx');
Щелкните Требование # 19 (Индекс 1.2.1.4). На вкладке Details в разделе Links щелкните ссылку theta_limit, чтобы перейти к месту реализации требования в мультироторной модели. Предел theta
блок реализует это требование.
Чтобы гарантировать выполнение каждого из требований, этот пример включает три автоматических теста для запуска на модели. Чтобы увидеть, как эти тесты реализованы, откройте тестовый файл в Test Manager. Вы увидите два тестовых наборов, GuidanceLogicSuite и ControlSystemSuite.
uiopen('MultirotorModelTest.mldatx',1);
Тест «Изменения состояния руководства по тесту» использует тестовую обвязку для модели. Для получения дополнительной информации смотрите Управление тестовыми обвязками (Simulink Test).
Чтобы увидеть тестовую обвязку, щелкните Тест Изменения Состояния Руководства и разверните раздел Тестируемая Система. Нажмите на кнопку со стрелой, чтобы открыть модель:
Эту обвязку содержит редактор сигналов с предварительно заданным набором входов для тестирования всех фаз логики руководства состояния машины от взлета до посадки.
Чтобы подтвердить соответствие требований во время симуляции, тест реализует шесть временных заданий и связывает каждое из них с требованием. Для получения дополнительной информации см. «Оценка временной логики при помощи временных оценок» (Simulink Test).
Тестовый набор Control System состоит из двух тестов. Один был сосредоточен на проверке всех пределов команд контроллера, а другой - на обеспечении эффективности контроллера. Оба теста используют тестовую обвязку Simulink, сконфигурированный для управления системой управления под некоторыми разумными входами и оценки отклика.
Тест Test Control System Cmd Limits реализует десять проверок с ограничениями, чтобы убедиться, что все команды в системе управления правильно насыщены значениями, установленными требованиями. Эти оценки связаны с соответствующими потребностями. Для получения дополнительной информации об оценках с ограничениями смотрите Оценку временной логики при помощи временных оценок (Simulink Test).
Тест производительности системы управления тестом использует критерий базового уровня, чтобы оценить, находится ли система управления в границах или отличается от предварительно записанного базового уровня. Для получения дополнительной информации смотрите Сравнение выхода модели с базовыми данными (Simulink Test).
Чтобы запустить оба тестовых наборов, щелкните Выполнить на панели инструментов Диспетчера тестов. После запуска тестов вы увидите статус результатов в дереве результатов и программных продуктов.
В качестве последнего шага откройте Редактор требований и включите столбцы Состояние реализации и Статус валидации на панели инструментов. Цвета столбцов указывают, реализовано ли каждое требование и проверено ли оно тестом.