Этот пример показывает, как запланировать радарную сеть использование моделирования распространения по ландшафту. Данные о ландшафте уровня 1 DTED импортированы для области, которая содержит пять кандидатов моностатические радарные сайты. Основное уравнение радиолокации используется, чтобы определить, могут ли целевые местоположения быть обнаружены, где дополнительная потеря пути вычисляется с помощью или модели распространения Лонгли-Райса или Ландшафта Интегрированную Грубую Землю Model™ (TIREM™). Лучшие три сайта выбраны для обнаружения цели, которая летит на уровне 500 метров над уровнем земли. Сценарий обновляется, чтобы смоделировать цель, которая летит на уровне 250 метров над уровнем земли. Радарные карты покрытия показывают для обоих сценариев.
Импортируйте данные о ландшафте 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 метров. Желаемый индекс производительности является вероятностью обнаружения (Фунт) 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 1253 3953 2373
Целевая высота может быть задана со ссылкой на средний уровень моря или к уровню земли. Используйте уровень земли в качестве ссылки и задайте целевую высоту 500 метров.
% Target altitude above ground level (m)
tgtalt = 500;
Покажите видимую область твердой зеленой зоной на карте.
viewer.Name = "Radar Coverage Region of Interest";
helperContourMap(rdrtxs, tgtlats, tgtlons)
Основное уравнение радиолокации включает потерю пути к свободному пространству и имеет параметр за дополнительные потери. Используйте модель распространения ландшафта, чтобы предсказать дополнительную потерю пути по ландшафту. Используйте Ландшафт Интегрированная Грубая Земля 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 blue markers hide(rdrtxs(bestsitenums)) show(rdrrxs(bestsitenums)) % Plot radar coverage viewer.Name = "Radar Coverage"; legendTitle = "SNR" + newline + "(dB)"; helperContourMap(rdrtxs, tgtlats, tgtlons, snr, snrthreshold, 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;
Покажите радарную карту покрытия для порогов ОСШ, соответствующих нескольким различным числам импульсов, чтобы объединяться. Увеличение числа импульсов, чтобы объединяться уменьшает необходимый ОСШ и поэтому производит более крупную зону обслуживания.
viewer.Name = "Radar Coverage for Multiple SNR Thresholds";
helperContourMap(rdrtxs, tgtlats, tgtlons, snr, snrthresholds([1 2 5 10]), 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); % Restore original markers hide(rdrrxs) show(rdrtxs) % Show selected radar sites using blue markers hide(rdrtxs(bestsitenums)) show(rdrrxs(bestsitenums)) % Plot radar coverage viewer.Name = "Radar Coverage"; helperContourMap(rdrtxs, tgtlats,tgtlons, snr, snrthreshold, legendTitle)
Покажите радарную карту покрытия для нескольких порогов ОСШ.
viewer.Name = "Radar Coverage for Multiple SNR Thresholds";
helperContourMap(rdrtxs, tgtlats,tgtlons, snr, snrthresholds([1 2 5 10]), legendTitle)
Моностатическая радиолокационная система была разработана, чтобы обнаружить неколеблющиеся цели с радарным сечением (RCS) на 0,1 квадратных метра на расстоянии до 35 000 метров. Радарные сайты были выбраны среди пяти сайтов кандидата, чтобы оптимизировать количество обнаружений по видимой области. Две целевых высоты были рассмотрены: 500 метров над уровнем земли и 250 метров над уровнем земли. Карты покрытия предлагают важность видимости угла обзора между радаром и целью в порядке достигнуть обнаружения. Второй сценарий приводит к целям, которые ближе к уровню земли и поэтому более вероятно быть блокированными от видимости угла обзора с радаром. Это видно путем вращения карты, чтобы просмотреть ландшафт, где незоны охвата обычно располагаются в теневых областях гор.
Вымойтесь заключительным Средством просмотра Сайта и удалением импортированных данных о ландшафте.
close(viewer)
removeCustomTerrain("southboulder")