Планирование покрытия радиолокационной сети по местности

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

Импорт данных местности

Импорт данных о местности в формате DTED для области вокруг Боулдера, Колорадо, США. Файл местности был загружен из набора данных «SRTM Void Fill», доступного из Геологической службы США (USGS). Файл имеет формат DTED уровня 1 и разрешение дискретизации около 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 квадратного метра на расстоянии до 35000 метров от радара с разрешением области значений 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;

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

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

Определите целевые положения

Задайте сетку, содержащую 2500 местоположений, чтобы представлять географическую область значений положений для движущейся цели в необходимую область. Необходимая область охватывает 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)

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

Основное уравнение радиолокации включает потери при распространении в свободном пространстве и имеет параметр для дополнительных потерь. Используйте модель распространения местности, чтобы предсказать дополнительные потери пути по местности. Используйте Terrain Integrated Rough Earth Model™ (TIREM™) от Alion Science, если он доступен, или используйте модель Лонгли-Райса (она же ITM). TIREM™ поддерживает частоты до 1000 ГГц, в то время как Longley-Rice действителен до 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);

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

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

Карта покрытия имеет зубчатые фрагменты на западном ребре, где зоны покрытия ограничены эффектами местности. Плавный фрагмент западного ребра появляется там, где покрытие ограничено проектом области значений радиолокационной системы, которая составляет 35000 метров.

% 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 квадратного метра на расстоянии до 35000 метров. Радиолокационные площадки были выбраны среди пяти участков-кандидатов для оптимизации количества обнаружений в необходимой области. Рассматривались две целевые высоты: 500 метров над уровнем земли, и 250 метров над уровнем земли. Карты покрытия предполагают важность видимости линии видимости между радаром и целью в порядке достижения обнаружения. Второй сценарий приводит к целям, которые ближе к уровню земли и, следовательно, с большей вероятностью будут заблокированы от видимости линии видимости с помощью радара. Это можно увидеть, повернув карту для просмотра местности, где зоны без покрытия обычно расположены в теневых областях гор.

Очистка путем закрытия Средство Просмотра и удаления импортированных данных местности.

close(viewer)
removeCustomTerrain("southboulder")