Radar Architecture: Часть 1 - Распределение системных компонентов и требований

Этот пример является первой частью двухкомпонентной серии по использованию Simulink для разработки и тестирования радиолокационной системы с учетом набора требований. Он начинается с введения набора требований к эффективности, которые должны быть удовлетворены окончательным проектом. Архитектура радиолокационной системы затем разрабатывается с помощью Simulink System Composer. Следующий пример демонстрирует, как соединить требования радара с архитектурой и соответствующим проектом. Наконец, функциональная модель радиолокационной системы создается путем предоставления конкретных реализаций компонентам архитектуры.

Во втором примере серии обсуждается проверка разработанной модели и верификация требований. В нем показано, как использовать Simulink Test для настройки тестовых наборов и запуска симуляций Монте-Карло, чтобы проверить связанные требования. Часть 2 также исследует сценарий, когда заявленные требования были пересмотрены. Он демонстрирует, как проследить изменения в требованиях к соответствующим компонентам проекта и внести изменения в реализацию и тесты.

Требования к эффективности

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

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

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

Виртуальная тестовая кровать

В качестве первого шага мы создали виртуальный тестовый стенд для радиолокационной системы, который будет использоваться для реализации и тестирования нашего проекта. Мы покажем, что этот тестовый стенд полезен для отслеживания требований к эффективности отдельных компонентов системы, внесения итерационных изменений в проект, а также тестирования и проверки эффективности системы. Начнем с создания общей модели архитектуры верхнего уровня с помощью Simulink System Composer. Затем мы покажем более подробно архитектуру компонента радарного датчика и части тестового ложа, которая имитирует окружение и радиолокационные цели.

Архитектура верхнего уровня

Архитектурная модель задает только концептуальные компоненты системы, их интерфейсы и связи между ними. Компоненты модели архитектуры не требуются для конкретной реализации. Как будет показано далее в этом примере, Simulink System Composer позволяет определять конкретное поведение Simulink для некоторых компонентов, оставляя другие компоненты заданными только на уровне архитектуры. Такой модульный проект удобна и гибок, поскольку поведение отдельных компонентов может быть изменено или полностью изменено без необходимости вносить какие-либо изменения в другие части системы.

В дополнение к Radar Sensor компонент, который моделирует фактический радарный датчик, испытательный слой также включает:

  • Power Substation - Sподает степень на радарный датчик;

  • Control Center - Передает команды управления радарному датчику через Communications Link и принимает радиолокационные данные назад;

  • Targets and Environment - Моделирует распространение формы волны радара через окружение и взаимодействие формы волны с целями. Radar Датчик соединяется с Target and Environment через набор портов, отмеченных Tx, Rx, и TargetsPos. Tx и Rx ссылки используются для прохождения формы волны радара к и от Targets and Environment. TargetsPos используется для передачи информации о положениях целей в Radar Sensor в порядок моделирования переданной и принятой формы волны в направлениях целей.

Откройте архитектуру верхнего уровня.

open_system('slexRadarArchitectureExample')

Радарный датчик

Каждый компонент в модели архитектуры может быть дополнительно разложен на подкомпоненты. В качестве следующего шага мы задаем архитектуру для радарного датчика. Когда Radar Датчик разлагается, Power, Tx, Rx, CmdRx, и DataTx порты, заданные на верхнем уровне, становятся доступными как внешние порты. Откройте Radar Компонент датчика.

open_system("slexRadarArchitectureExample/Radar Sensor");

Зададим следующие компоненты, чтобы создать архитектуру модель радарного датчика:

  • Resource Scheduler отвечает за распределение системных ресурсов в dwell. Он получает команды управления от Control Center через внешний порт CmdRx. Чтобы указать поток управляющих сигналов в архитектуре радарного датчика, Resource Scheduler также связано с каждым компонентом внутри Radar.

  • Waveform Generator формирует выборки формы волны радара.

  • Transmit Array передает переданную форму волны в Target and Environment через внешнюю Tx порт.

  • Receiver Array получает назад отраженную форму волны от Target and Environment через внешнюю Rx порт.

  • Signal Processor выполняет формирование луча, согласованную фильтрацию и импульсное интегрирование и передает обнаружения в Data Processor.

  • Data Processor создает радиолокационные отчеты или радиолокационные дорожки и передает их назад в Control Center.

Заметьте, что эта архитектурная модель радарного датчика очень общая. Он не делает никаких предположений о типе переданной формы волны, форме или размере антенной решетки или реализации сигнала и цепей обработки данных. Одна и та же архитектура может использоваться для реализации большого разнообразия различных радарных датчиков. Далее в этом примере мы реализуем только подмножество перечисленных выше компонентов, исключая Resource Scheduler и Data Processor.

Цели и окружение

Targets and Environment могут быть разложены на два подкомпонента:

  • Targets формирует на выходе положения и скорости целей.

  • Propagation моделирует распространение плоской волны, излучаемой Transmit Array через окружение, отражение от радиолокационных целей и распространение назад к Receive Array.

Откройте Targets and Environment компонент.

open_system("slexRadarArchitectureExample/Targets and Environment");

Трассируемость требований

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

Диспетчер требований можно запустить через вкладку Приложения. Для доступа к редактору требований перейдите на вкладку Requirements и выберите Requirements Editor. Чтобы создать новый набор требований для модели, щелкните Новый набор требований (New Requirement Set). Для этого примера создадим набор требований и добавим к нему R1 и R2. Откройте эти требования в редакторе требований.

open('slreqRadarArchitectureExampleRequirements.slreqx')

В редакторе требований перечислены максимальная область значений и требования к разрешению области значений. На левой панели также отображается Verified и Implemented статус для каждого требования. На данный момент оба требования не выполняются и не верифицируются. Порядок изменить Implemented статус требования должен быть связан с компонентом архитектуры, который реализует соответствующую функцию. Мы связываем оба требования с Waveform Generator и Signal Processor. Заметьте, что Requirements Manager внизу также показывает статус R1 и R2. После привязки требований к компонентам Requirements Manager показывает, что статус R1 и R2 изменился на Implemented. При выборе требования в Диспетчере требований компоненты, с которыми оно связано, подсвечиваются фиолетовой системой координат. Связанные компоненты также показаны в разделах « Ссылках» вкладки «Сведения» справа.

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

Реализация компонента

Чтобы симулировать радиолокационную систему, нам теперь нужно обеспечить конкретное поведение компонентов модели архитектуры. System Composer позволяет задавать поведение Simulink для некоторых компонентов, оставляя поведение других компонентов неопределенным. Это обеспечивает большую гибкость в проектировании и симуляции, поскольку мы можем создать функциональную и тестируемую модель с некоторыми детально смоделированными компонентами, в то время как другие компоненты заданы только на абстрактном уровне. В этом примере мы зададим только конкретное поведение для компонентов радарного датчика, необходимых для реализации генерации, передачи, приема и обработки радиолокационного сигнала. Мы также обеспечим конкретную реализацию Targets and Environment.

Чтобы задать размерности сигналов в модели, пример принимает, что положения целей заданы трехрядной матрицей tgtpos, целевые скорости заданы трехрядной матрицей tgtvel, и целевые RCS заданы вектором tgtrcs.

Системные параметры

Чтобы обеспечить поведение Simulink для компонентов радарного датчика, нам сначала нужно идентифицировать набор радиолокационных расчётных параметров, которые могли бы удовлетворить заявленным требованиям. Набор параметров для радиолокационной системы, который удовлетворял бы R1 и R2, может быть быстро найден путем выполнения анализа уравнения радиолокационной области значений в приложении Radar Designer. Приложение вычисляет множество метрик радиолокационной эффективности и визуализирует эффективность обнаружения радиолокационной системы как функцию области значений. Используем Metrics and Requirements таблица для установки целевых значений максимальной области значений и требований к разрешению области значений, указанных в R1 и R2. Затем мы настраиваем системные параметры, пока график стоп-света не укажет, что эффективность системы удовлетворяет объективному требованию. Получившийся набор радиолокационных расчётных параметров является:

  • радиолокационная частота - 10 ГГц;

  • пиковая степень - 6000 Вт;

  • длительность импульса - 0,4 μs;

  • ширина полосы пропускания импульса - 2,5 МГц;

  • частота повторения импульсов - 20 кГц;

  • количество передаваемых импульсов - 10;

  • коэффициент усиления антенны - 26 дБ;

  • шум рисунка - 0 дБ;

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

radarDesigner('RadarDesigner_RectangularWaveform.mat');

Генератор формы волны

Анализ, выполненный в приложении Radar Designer, принимает, что продукт полосы времени равен 1. Это означает, что переданная форма волны является немодулированным прямоугольным импульсом. Мы можем использовать приложение Pulse Waveform Analyzer, чтобы подтвердить, что производные параметры формы волны приведут к желаемой эффективности и удовлетворят R1 и R2.

Запустите приложение Pulse Waveform Analyzer с параметрами формы волны, определенными в этом примере.

pulseWaveformAnalyzer('PulseWaveformAnalyzer_RectangularWaveform.mat');

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

Чтобы реализовать это поведение в радиолокационной модели, Waveform Generator компонент должен содержать только один блок Simulink, генерирующий прямоугольную форму волны. Выходные выходы Rectangular Waveform блок соединяется с внешней Waveform порт, связанный с Transmit Array компонент. Поскольку в этом примере мы не моделируем командные сигналы, Cmd вход соединяется с терминатором строки.

Задаем Output signal format свойство блока, которое должно быть Pulses, что означает, что каждый интервал повторения импульса (PRI) 1/prf секунд, блок выдаст вектор-столбец fs/prf комплексные выборки формы волны.

Передающий массив

Компонент Transmit Array содержит следующие блоки Simulink:

  • Transmitter - передает форму волны, сгенерированную Waveform Generator с заданной пиковой степенью и усилением передачи.

  • Range Angle Calculator - вычисляет направления к целям, принимая, что радар размещен на статической платформе, расположенной в источник. Целевые направления используются как Ang вход в Narrowband Tx Array.

  • Narrowband Tx Array - моделирует антенную решетку для передачи узкополосных сигналов. Выводит копии передаваемой формы волны, излучаемой в направлениях целей.

Анализ уравнения радиолокационной области значений определил, что коэффициент усиления передачи должен быть 26 дБ. Задаем Gain свойство Transmitter блокируйте до 20 дБ и используйте антенную решетку, чтобы получить дополнительный коэффициент усиления 6 дБ. Антенна фазированной решетки с желаемыми свойствами может быть спроектирована с помощью приложения Sensor Array Analyzer. В этом примере мы используем 4-элементный равномерный линейный массив, который имеет массив коэффициент усиления приблизительно 6 дБ.

Откройте модель массива в приложении Sensor Array Analyzer.

sensorArrayAnalyzer('SensorArrayAnalyzer_ULA.mat');

Simulink System Composer требует явной спецификации размерностей, шага расчета и сложности входных сигналов. Устанавливаем размерности Waveform вход в [fs/prf 1], шаг расчета для 1/prfи сложность 'complex'. Размерности TargetsPos для входных параметров задано значение size(tgtpos), оставив настройку по умолчанию для соответствующих шага расчета и сложности.

Приёмный массив

  • Narrowband Rx Array - моделирует приёмную антенную решетку. Он сконфигурирован с использованием тех же свойств, что и соответствующий блок в Transmit Array компонент. В каждом элементе массива блок объединяет сигналы, принятые от каждой цели, добавляя соответствующие сдвиги фазы, учитывая целевые направления, вычисленные Range Angle Calculator. Выходные выходы блока Narrowband Rx Array являются [fs/prf num_array_elements] матрица.

  • Receiver Preamp - добавляет усиление 20 дБ к принимаемому сигналу.

The Rx вход является матрицей принятых выборок формы волны с столбцами, соответствующими size(tgtpos,2) цели. Размерности Rx необходимо установить значение [fs/prf size(tgtpos,2)], шаг расчета для 1/prfи сложность 'complex'.

Процессор сигналов

Signal Processor реализует простую цепь обработки сигналов, которая состоит из:

  • Phase Shift Beamformer - объединяет принятые сигналы в каждом элементе массива. В этом примере направление формирования луча устанавливается на широкую сторону.

  • Matched Filter - выполняет согласованную фильтрацию для улучшения ОСШ. Коэффициенты согласованного фильтра установлены так, чтобы они совпадали с переданной формой волны.

  • Time Varying Gain - компенсирует потери распространения свободного пространства.

  • Noncoherent Integrator - интегрирует величины 10 принятых импульсов для дальнейшего улучшения ОСШ.

Размерности Signal вход должен быть сконфигурирован так, чтобы [fs/prf num_array_elements], шаг расчета для 1/prf, и сложность должна быть установлена на 'complex'

Цели и окружение

The Targets компонент реализован с использованием одной Platform блок.

The Propagation компонент состоит из:

  • Free Space Channel - моделирует двухсторонний путь распространения формы волны радара. Положение источника и входов скорости Free Space ChanneБлок l равен нулю, чтобы указать, что радар расположен в источник и что он не движется. Положение назначения и входы скорости соединяются с положениями и скоростями целей через TargetsPos и TargetVel порты.

  • Radar Target - моделирует RCS и целевые эффекты флуктуации. Поскольку в этом примере мы рассматриваем медленные колебания целей Swerling 1 Case, Update установлено значение false. Мы также задаем время остановки симуляции 10/prf указывает, что один запуск симуляции составляет один интервал когерентной обработки (CPI).

Размерности Tx вход должен быть установлен на [fs/prf size(tgtpos,2)], шаг расчета для 1/prf, и сложность с 'complex'.

Выходы симуляции

Определения поведения Simulink для вышеуказанных блоков достаточно, чтобы получить модель радиолокационной системы, которая может производить радиолокационные обнаружения. Прежде чем приступить к тестированию модели и проверке конкретных требований к эффективности, мы хотим запустить симуляцию и проверить, генерирует ли она результаты, как ожидалось. Рассмотрим три цели со следующими параметрами:

% Target positions 
tgtpos = [[2024.66;0;0],[3518.63;0;0],[3845.04;0;0]];
 
% Target velocities
tgtvel = [[0;0;0],[0;0;0],[0;0;0]];
 
% Target RCS
tgtrcs = [1.0 1.0 1.0];

Добавление Данных моделирования Inspector для регистрации выхода Signal Processer компонент и выполнение симуляции, результаты в профиле области значений, показанном ниже. Как ожидалось, мы получаем три разных пика, соответствующих трем целям в симуляции.

% Set the model parameters
helperslexRadarArchitectureParameters;

% Run the simulation
simOut = sim('slexRadarArchitectureExample');

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

% Plot results
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.

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

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

В части 2 этого примера мы покажем, как настроить тестовые наборы для тестирования созданного проекта радара и как проверить, что заявленные требования к эффективности удовлетворены.