Этот пример является первой частью двухкомпонентной серии по использованию Simulink для разработки и тестирования радиолокационной системы с учетом набора требований. Он начинается с введения набора требований к эффективности, которые должны быть удовлетворены окончательным проектом. Архитектура радиолокационной системы затем разрабатывается с помощью Simulink System Composer. Следующий пример демонстрирует, как соединить требования радара с архитектурой и соответствующим проектом. Наконец, функциональная модель радиолокационной системы создается путем предоставления конкретных реализаций компонентам архитектуры.
Во втором примере серии обсуждается проверка разработанной модели и верификация требований. В нем показано, как использовать Simulink Test для настройки тестовых наборов и запуска симуляций Монте-Карло, чтобы проверить связанные требования. Часть 2 также исследует сценарий, когда заявленные требования были пересмотрены. Он демонстрирует, как проследить изменения в требованиях к соответствующим компонентам проекта и внести изменения в реализацию и тесты.
Разработка радарных систем обычно начинается с набора требований. Реальные радиолокационные системы должны удовлетворять десяткам или сотням требований. В этом примере мы рассматриваем радиолокационную систему X-диапазона, которая должна удовлетворять следующим двум требованиям к эффективности:
R1: Радар должен обнаружить цель Swerling 1 Case с радарным сечением (RCS) 1 м в области значений 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 ;
ширина полосы пропускания импульса - 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;
Этот пример является первой частью серии из двух частей о том, как проектировать и проверить радиолокационную систему в Simulink, начиная с списка требований к эффективности. Он показывает, как создать архитектуру радиолокационной системы с помощью Simulink System Composer, которая может использоваться в качестве виртуального тестового ложа для разработки и проверки радиолокационной системы. Часть 1 также демонстрирует, как связать требования к эффективности с компонентами архитектуры и как реализовать поведение компонентов с помощью Simulink, чтобы получить функциональную и тестируемую модель.
В части 2 этого примера мы покажем, как настроить тестовые наборы для тестирования созданного проекта радара и как проверить, что заявленные требования к эффективности удовлетворены.