Радарная Архитектура: Часть 2 – Автоматизация тестирования и трассируемость требований

Этим примером является вторая часть серии из двух частей о том, как спроектировать и протестировать радиолокационную систему в Simulink® на основе набора требований к производительности. Это обсуждает тестирование модели, разработанной в части 1 и верификации начальных требований. Это показывает, как использовать Simulink Test™ для подготовки тестовых наборов, чтобы проверить требования, соединенные с компонентами системы. Пример также исследует сценарий, когда установленные требования были пересмотрены, ведя к изменениям в проекте и тестах.

Часть 1 этого примера запускается с набора требований к производительности. Это разрабатывает модель архитектуры радиолокационной системы с помощью Simulink System Composer™. Эта модель архитектуры используется как виртуальный испытательный стенд для тестирования и проверки разработок радарных систем. Часть 1 показывает, как использовать Simulink Requirements™, чтобы соединить требования с компонентами архитектуры. Это также демонстрирует, как реализовать отдельные компоненты архитектуры с помощью Simulink.

Автоматизированное тестирование

До подготовки тестов мы загружаем модель, созданную в Части 1 примера.

open_system('slexRadarArchitectureExample');

Менеджер по Simulink Test является инструментом для создания тестовых наборов для модели. Для доступа менеджер по Тесту нажимает на Simulink Test во вкладке Apps, затем перешел к вкладке Tests и нажимает Simulink Test Manager. Чтобы начать с тестами, мы создаем новый тестовый файл для модели путем нажатия на New Test File. Затем мы добавляем два отдельных тестовых набора один для каждого требования. Тестовые наборы могут быть далее сконфигурированы:

  • Добавление описания к каждому тестовому набору, чтобы вскоре описать, какая функциональность тестируется;

  • Соединение тестового набора к один или несколько требований. Тесты в тестовом наборе должны передать для требований, которые будут проверены;

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

Далее мы конфигурируем тесты в тестовых наборах. Изменения внесены только в Системе Под Тестом, Переопределениями Параметра, Итерациями и Пользовательскими разделами Критериев.

  • В Системе Под Экспериментальным участком поле Model должно быть установлено в имя модели, которая в этом примере является slexRadarArchitectureExample.

  • Раздел Parameter Overrides используется, чтобы присвоить различные значения параметрам в базовом рабочем пространстве во время выполнения теста. Мы используем этот раздел, чтобы задать целевые параметры для максимального теста области значений и теста разрешения области значений.

Поскольку максимальная область значений тестирует, мы задаем единую цель с 1 м2 RCS в области значений 6 000 м от радара, как утверждено в R1.

Для теста разрешения области значений мы задаем две цели с различными RCS, которые разделяются в области значений на 70 м как требуется R2.

  • Из-за случайного шума и целевых эффектов колебания мы можем только проверить усредненную эффективность радиолокационной системы, собранную по нескольким тестовым прогонам. Раздел Iterations теста может использоваться, чтобы сконфигурировать тест, чтобы запуститься многократно, чтобы реализовать симуляции Монте-Карло. Мы добавляем пользовательский скрипт в подраздел Итераций В виде сценария. В этом примере мы только добавляем 10 итераций в тест. Однако, чтобы надежно проверить эффективность системы больше итераций требовалось бы.

  • Раздел Custom Criteria позволяет задавать пользовательское правило, которое проверяет результаты испытаний в конце каждой итерации. Мы конфигурируем его, чтобы запустить helperslexRadarArchitectureTestCriteria функция помощника, что результаты процессов каждой тестовой итерации и хранят их в detectionResults переменная в базовом рабочем пространстве. Функция вычисляет количество пороговых пересечений обнаружения. Если этот номер равен количеству целей в тесте, итерации, как рассматривается, передает, в противном случае итерация объявляется, как отказавший. На последней итерации helperslexRadarArchitectureTestCriteria вычисляет общее количество переданных итераций. Второй аргумент к этой функции помощника является процентом итераций, которые должны передать для целого теста, чтобы передать. Максимальный тест области значений требует в наименьшем количестве 90% всех итераций, передали. Начиная с тестовых моделей разрешения области значений две независимых цели это требует в наименьшем количестве 80% всех тестовых итераций, успешны.

Откройте этот тестовый набор в менеджере по Тесту.

open('slexRadarArchitectureTests.mldatx')

После добавления тестов и соединения их к требованиям, состояние требований в Редакторе Требований указывает, что верификация была добавлена, но тесты еще не были выполнены.

Теперь тесты могут быть запущены. После выполнения обоих тестовых наборов мы можем смотреть результаты каждой отдельной итерации с помощью Data Inspector. Пользовательская функция помощника критериев также распечатывает состояние каждой итерации к командному окну.

Поскольку оба теста передали, Редактор Требований теперь показывает, что оба требования были реализованы и проверены.

Пересмотренные требования

Распространено, что во время процесса проектирования начальные требования пересмотрены и изменены. В этом примере мы принимаем, что максимальная область значений была увеличена до 8 000 м, и разрешение области значений было установлено в 35 м. Требования обновления

  • R1 : радар должен обнаружить цель случая Swerling 1 с радарным сечением (RCS) 1 м2 в области значений 8 000 м с вероятностью обнаружения 0,9 и вероятностью ложного предупреждения 1e-6;

  • R2 : Когда возвраты обнаруживаются от двух целей случая Swerling 1, разделенных в области значений на 35 м с тем же азимутом, радар должен разрешить две цели и сгенерировать две уникальных цели, сообщают 80 процентов времени;

Внесение изменений в требования в Редакторе Требований сгенерирует проблемы изменения и подсветит состояние Summary соответствующего требования красного цвета. Ссылки на компоненты, которые реализуют измененное требование и к тестам, которые проверяют его, также подсвечены. Таким образом, легко идентифицировать, какие компоненты проекта и который тестирует потребность, которая будет обновлена для того, чтобы обратиться к изменениям в требовании и протестировать их.

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

Обновленные системные параметры

Новое максимальное требование области значений вне текущей однозначной области значений системы, которая равняется 7 494,8 м. Чтобы удовлетворить новому требованию, мы должны увеличить однозначную область значений. Это может быть выполнено путем понижения PRF. Установка PRF к 16 кГц приведет к однозначной области значений 9 368,5 м, которая является далеко за пределами необходимой максимальной области значений 8 000 м.

Поскольку текущий радарный проект передает немодулируемые меандры, предел разрешения системы определяется шириной импульса. Текущий предел разрешения области значений составляет 60 м. Новое требование 35 м почти в два раза ниже. Меандр, который удовлетворяет этому требованию, должен был бы быть вдвое более коротким, уменьшив доступную мощность в той же области значений наполовину. Анализ требований с помощью приложения Radar Designer показывает, что эта система не сможет достигнуть необходимой эффективности обнаружения в максимальной области значений 8 000 м. Достигнуть необходимой максимальной области значений и разрешения области значений, не увеличивая пик передало степень или усиление антенны, мы должны принять новую форму волны с продуктом пропускной способности времени, который больше, чем 1. Установка ширины импульса к 1 μs и пропускная способность к 5 МГц обеспечит нужное разрешение.

Откройте этот проект в приложении Radar Designer.

radarDesigner('RadarDesigner_LFMWaveform.mat');

Приложение Pulse Waveform Analyzer может использоваться, чтобы выбрать радарную форму волны из нескольких альтернатив. В этом примере мы используем форму волны LFM.

pulseWaveformAnalyzer('PulseWaveformAnalyzer_LFMWaveform.mat');

Пересмотренный проект

Удобный способ изменить поведение компонентов системы состоит в том, чтобы добавить альтернативный проект путем создания варианта. Это сделано путем щелчка правой кнопкой по компоненту и выбора Add Variant Choice. Мы добавляем вариант в Waveform Generator и добавьте поведение Simulink в него, чтобы реализовать генерацию сигналов LFM.

Linear FM блок сконфигурирован таким образом, что ширина импульса установлена в новое значение 1 μs, пропускная способность развертки установлена в 5 МГц, и свойство PRF установлено в обновленное значение PRF 16 кГц. Теперь мы можем запустить модель с формой волны LFM.

% Set the model parameters
helperslexRadarArchitectureParameters;

% Update the model parameters to use the LFM waveform
helperslexRadarArchitectureParametersLFM;

simOut = sim('slexRadarArchitectureExample.slx');

data = simOut.logsout{1}.Values.Data;

figure;
plot(range_gates, data(numel(range_gates)+1:end));
xlabel('Range (m)');
ylabel('Power (W)');
title('Signal Processor Output');

grid on;

Figure contains an axes. The axes with title Signal Processor Output contains an object of type line.

Обновленные тесты

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

  • Установите целевой диапазон в максимальном тесте области значений к 8 000 м

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

После обновления тестов мы должны очистить все проблемы изменения в Редакторе Требований. Это сделано путем нажатия на Show Links во вкладке Requirements, затем выбора ссылок и нажатия на кнопку Clear All в разделе Change Information панели Деталей справа. Когда проблемы были очищены, тесты могут быть запущены. Новый проект пройдет обновленные тесты и проверит, что система удовлетворяет обновленным требованиям, подтверждающим предсказания, сделанные приложением Radar Designer.

Сводные данные

Этим примером является вторая часть серии из двух частей о том, как спроектировать и протестировать радиолокационную систему в Simulink на основе набора требований к производительности. Это показало, как использовать Simulink Test, чтобы протестировать модель, разработанную в части 1, как соединить тест с требованиями, и как проверить, что требованиям удовлетворяют путем выполнения симуляций Монте-Карло. Пример также проиллюстрировал, как проследить изменения в требованиях к соответствующим компонентам и как создать альтернативные проекты путем добавления вариантов в модель. Часть 1 этого примера, начатого с требований, которым должен удовлетворить итоговый проект. Это использовало Simulink System Composer, чтобы разработать модель архитектуры радиолокационной системы, которая может служить виртуальным испытательным стендом. Часть 1 затем показала, как использовать Simulink Requirements, чтобы соединить требования с компонентами и как реализовать отдельные компоненты архитектуры с помощью Simulink.

Для просмотра документации необходимо авторизоваться на сайте