Планирование радарного покрытия сети по ландшафту

В этом примере показано, как запланировать радарную сеть использование моделирования распространения по ландшафту. Данные о ландшафте уровня 1 DTED импортированы для области, которая содержит пять кандидатов моностатические радарные сайты. Основное уравнение радиолокации используется, чтобы определить, могут ли целевые местоположения быть обнаружены, где дополнительная потеря на пути вычисляется с помощью или модели распространения Лонгли-Райса или Ландшафта Интегрированную Грубую Землю Model™ (TIREM™). Лучшие три сайта выбраны для обнаружения цели, которая летит на уровне 500 метров над уровнем земли. Сценарий обновляется, чтобы смоделировать цель, которая летит на уровне 250 метров над уровнем земли. Радарные карты покрытия показывают для обоих сценариев.

Этот пример требует Antenna Toolbox™ и Radar Toolbox.

Импортируйте данные о ландшафте

Импортируйте данные о ландшафте DTED-формата для области вокруг Булдера, Колорадо, США. Файл ландшафта был загружен с "SRTM Пусто Заполненный" набор данных, доступный от Геологической службы США (USGS). Файл является форматом уровня 1 DTED и имеет разрешение выборки приблизительно 90 метров. Один файл DTED задает область, которая охватывает 1 степень и в области широты и в области долготы.

dtedfile = "n39_w106_3arc_v2.dt1";
attribution = "SRTM 3 arc-second resolution. Data available from the U.S. Geological Survey.";
addCustomTerrain("southboulder",dtedfile, ...
    "Attribution",attribution)

Открытое Средство просмотра Сайта с помощью импортированного ландшафта. Визуализация со спутниковым формированием изображений карты с высоким разрешением требует Интернет-соединения.

viewer = siteviewer("Terrain","southboulder");

Покажите радарные сайты кандидата

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

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

names = "Radar site" + (1:5);
rdrlats = [39.6055 39.6481 39.7015 39.7469 39.8856];
rdrlons = [-105.1602 -105.1378 -105.1772 -105.2000 -105.2181];

% Create transmitter sites associated with radars
rdrtxs = txsite("Name",names, ...
    "AntennaHeight",10, ...
    "Latitude",rdrlats, ...
    "Longitude",rdrlons);

% Create receiver sites associated with radars
rdrrxs = rxsite("Name",names, ...
    "AntennaHeight",10, ...
    "Latitude",rdrlats, ...
    "Longitude",rdrlons);

% Show just the radar transmitter sites
show(rdrtxs);

Масштабируйте и вращайте карту, чтобы просмотреть 3-D ландшафт вокруг радарных сайтов кандидата. Выберите сайт, чтобы просмотреть местоположение, высоту антенны и наземное вертикальное изменение.

Спроектируйте моностатическую радиолокационную систему

Спроектируйте основную моностатическую импульсную радиолокационную систему, чтобы обнаружить не флюктуирующие цели с эффективной площадью рассеивания (RCS) на 0,1 квадратных метра на расстоянии до 35 000 метров от радара с разрешением области значений 5 метров. Желаемый индекс производительности является вероятностью обнаружения (Pd) 0,9 и вероятность ложного предупреждения (PFA) ниже 1e-6. Радары приняты, чтобы быть поворотными и поддержать то же усиление антенны во всех направлениях, где усиление антенны соответствует очень направленной антенной решетке.

pd = 0.9;         % Probability of detection
pfa = 1e-6;       % Probability of false alarm
maxrange = 35000; % Maximum unambiguous range (m)
rangeres = 5;     % Required range resolution (m)
tgtrcs = .1;      % Required target radar cross section (m^2)

Используйте импульсное интегрирование, чтобы уменьшать необходимый ОСШ в радарном приемнике. Используйте 10 импульсов и вычислите ОСШ, требуемый обнаружить цель.

numpulses = 10;
snrthreshold = albersheim(pd, pfa, numpulses); % Unit: dB
disp(snrthreshold);
    4.9904

Задайте радарную частоту центра и усиление антенны, приняв очень направленную антенную решетку.

fc = 10e9;    % Transmitter frequency: 10 GHz
antgain = 38; % Antenna gain: 38 dB
c = physconst('LightSpeed');
lambda = c/fc;

Вычислите необходимую пиковую импульсную степень (Ватты) радарного передатчика с помощью основного уравнения радиолокации.

pulsebw = c/(2*rangeres);
pulsewidth = 1/pulsebw;
Ptx = radareqpow(lambda,maxrange,snrthreshold,pulsewidth,...
    'RCS',tgtrcs,'Gain',antgain);
disp(Ptx)
   3.1521e+05

Задайте целевые положения

Задайте сетку, содержащую 2 500 мест, чтобы представлять географическую область значений положений для движущейся цели в необходимой области. Необходимая область охватывает 0,5 градуса и в области широты и в области долготы и включает горы на запад, а также часть области вокруг радарных сайтов. Цель состоит в том, чтобы обнаружить цели, которые находятся в гористой области на запад.

% Define region of interest
latlims = [39.5 40];
lonlims = [-105.6 -105.1];

% Define grid of target locations in region of interest
tgtlatv = linspace(latlims(1),latlims(2),50);
tgtlonv = linspace(lonlims(1),lonlims(2),50);
[tgtlons,tgtlats] = meshgrid(tgtlonv,tgtlatv);
tgtlons = tgtlons(:);
tgtlats = tgtlats(:);

Вычислите минимум, максимум, и означайте наземное вертикальное изменение для целевых местоположений.

% Create temporary array of sites corresponding to target locations and query terrain
Z = elevation(txsite("Latitude",tgtlats,"Longitude",tgtlons));
[Zmin, Zmax] = bounds(Z);
Zmean = mean(Z);

disp("Ground elevation (meters): Min    Max    Mean" + newline + ...
    "                           " + round(Zmin) + "   " + round(Zmax) + "   " + round(Zmean))
Ground elevation (meters): Min    Max    Mean
                           1257   3953   2373

Целевая высота может быть задана со ссылкой на средний уровень моря или к уровню земли. Используйте уровень земли в качестве ссылки и задайте целевую высоту 500 метров.

% Target altitude above ground level (m)
tgtalt = 500;

Покажите необходимую область твердой зеленой зоной на карте.

viewer.Name = "Radar Coverage Region of Interest";
regionData = propagationData(tgtlats,tgtlons,'Area',ones(size(tgtlats)));
contour(regionData,'ShowLegend',false,'Colors','green','Levels',0)

Вычислите ОСШ для целевых положений с ландшафтом

Основное уравнение радиолокации включает потери при распространении в свободном пространстве и имеет параметр за дополнительные потери. Используйте модель распространения ландшафта, чтобы предсказать дополнительную потерю на пути по ландшафту. Используйте Ландшафт Интегрированная Грубая Земля Model™ (TIREM™) от Науки Alion, если это доступно, или иначе используйте Лонгли-Райса (иначе ITM) модель. TIREM™ поддерживает частоты до 1 000 ГГц, тогда как Лонгли-Райс - допустимых до 20 ГГц. Вычислите общую дополнительную потерю включая распространение от радара до цели и затем обратно с цели на приемник.

% Create a terrain propagation model, using TIREM or Longley-Rice
tiremloc = tiremSetup;
if ~isempty(tiremloc)
    pm = propagationModel('tirem');
else
    pm = propagationModel('longley-rice');
end

% Compute additional path loss due to terrain and return distances between radars and targets 
[L, ds] = helperPathlossOverTerrain(pm, rdrtxs, rdrrxs, tgtlats, tgtlons, tgtalt);

Используйте основное уравнение радиолокации, чтобы вычислить ОСШ в каждом радарном приемнике для сигнала, отраженного от каждой цели.

% Compute SNR for all radars and targets
numtgts = numel(tgtlats);
numrdrs = numel(rdrtxs);
rawsnr = zeros(numtgts,numrdrs);
for tgtind = 1:numtgts
    for rdrind = 1:numrdrs
        rawsnr(tgtind,rdrind) = radareqsnr(lambda,ds(tgtind,rdrind),Ptx,pulsewidth, ...
            'Gain',antgain,'RCS',tgtrcs,'Loss',L(tgtind,rdrind));
    end
end

Оптимизируйте радарное покрытие

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

bestsitenums = helperOptimizeRadarSites(rawsnr, snrthreshold);
snr = max(rawsnr(:,bestsitenums),[],2);

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

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

Карта покрытия неровно оборвала фрагменты на западном ребре, где зоны охвата ограничиваются эффектами ландшафта. Сглаженный фрагмент западного ребра появляется, где покрытие ограничивается областью значений проекта радиолокационной системы, которая составляет 35 000 метров.

% Show selected radar sites using red markers
viewer.Name = "Radar Coverage";
clearMap(viewer)
show(rdrtxs(bestsitenums))

% Plot radar coverage
rdrData = propagationData(tgtlats,tgtlons,"SNR",snr);
legendTitle = "SNR" + newline + "(dB)";
contour(rdrData, ...
   "Levels",snrthreshold, ...
   "Colors","green", ...
   "LegendTitle",legendTitle)

Варьируйтесь количество импульсов, чтобы объединяться

Анализ выше оптимизированной радарной степени передатчика и местоположений сайта на основе системы, которая интегрирует 10 импульсов. Теперь исследуйте удар на радарное покрытие для различных режимов работы системы, где количество импульсов, чтобы объединяться варьируется. Вычислите пороги ОСШ, требуемые обнаружить цель для различного количества импульсов.

% Calculate SNR thresholds corresponding to different number of pulses
numpulses = 1:10;
snrthresholds = zeros(1,numel(numpulses));
for k = 1:numel(numpulses)
    snrthresholds(k) = albersheim(pd, pfa, numpulses(k));
end

% Plot SNR thresholds vs number of pulses to integrate
plot(numpulses,snrthresholds,'-*')
title("SNR at Radar Receiver Required for Detection")
xlabel("Number of pulses to integrate")
ylabel("SNR (dB)")
grid on;

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

% Show best sites
viewer.Name = "Radar Coverage for Multiple SNR Thresholds";
show(rdrtxs(bestsitenums))

colors = jet(4);
colors(4,:) = [0 1 0];
contour(rdrData, ...
   "Levels",snrthresholds([1 2 5 10]), ...
   "Colors",colors, ...
   "LegendTitle",legendTitle)

Обновите целевую высоту

Обновите сценарий так, чтобы целевые положения составили 250 метров над уровнем земли вместо 500 метров над уровнем земли. Повторно выполните тот же анализ как выше, чтобы выбрать три лучших радарных сайта и визуализировать покрытие. Новая карта покрытия показывает, что сокращение видимости целей также уменьшает зону охвата.

% Target altitude above ground (m)
tgtalt = 250;
[L, ds] = helperPathlossOverTerrain(pm, rdrtxs, rdrrxs, tgtlats, tgtlons, tgtalt);

% Compute SNR for all radars and targets
numrdrs = numel(rdrtxs);
rawsnr = zeros(numtgts,numrdrs);
for tgtind = 1:numtgts
    for rdrind = 1:numrdrs
        rawsnr(tgtind,rdrind) = radareqsnr(lambda,ds(tgtind,rdrind),Ptx,pulsewidth, ...
            'Gain',antgain,'RCS',tgtrcs,'Loss',L(tgtind,rdrind));
    end
end

% Select best combination of 3 radar sites
bestsitenums = helperOptimizeRadarSites(rawsnr, snrthreshold);
snr = max(rawsnr(:,bestsitenums),[],2);

% Show best sites
viewer.Name = "Radar Coverage";
clearMap(viewer);
show(rdrtxs(bestsitenums))

% Plot radar coverage
rdrData = propagationData(tgtlats,tgtlons,"SNR",snr);
contour(rdrData, ...
   "Levels",snrthreshold, ...
   "Colors","green", ...
   "LegendTitle",legendTitle)

Покажите радарную карту покрытия для нескольких порогов ОСШ.

% Show best sites
viewer.Name = "Radar Coverage for Multiple SNR Thresholds";
show(rdrtxs(bestsitenums))

contour(rdrData, ...
   "Levels",snrthresholds([1 2 5 10]), ...
   "Colors",colors, ...
   "LegendTitle",legendTitle)

Заключение

Моностатическая радиолокационная система была спроектирована, чтобы обнаружить не флюктуирующие цели с эффективной площадью рассеивания (RCS) на 0,1 квадратных метра на расстоянии до 35 000 метров. Радарные сайты были выбраны среди пяти сайтов кандидата, чтобы оптимизировать количество обнаружений по необходимой области. Две целевых высоты были рассмотрены: 500 метров над уровнем земли и 250 метров над уровнем земли. Карты покрытия предлагают важность видимости угла обзора между радаром и целью для того, чтобы достигнуть обнаружения. Второй сценарий приводит к целям, которые ближе к уровню земли и поэтому более вероятно быть блокированными от видимости угла обзора с радаром. Это видно путем вращения карты, чтобы просмотреть ландшафт, где незоны охвата обычно располагаются в теневых областях гор.

Вымойтесь заключительным Средством просмотра Сайта и удалением импортированных данных о ландшафте.

close(viewer)
removeCustomTerrain("southboulder")