Радар вертикальное покрытие по ландшафту

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

Вертикальный шаблон покрытия является контуром обнаружения. Это предлагает взгляд в эффективность радиолокационной системы на постоянном уровне сигнала, как задано областью значений свободного пространства. Вертикальное покрытие учитывает интерференцию между прямыми и отраженными о земле лучами, а также преломление. Этот пример задаст радиолокационную систему L-полосы в присутствии тяжелой помехи и покажет вам, как визуализировать ее 3-мерное вертикальное покрытие по ландшафту.

Задайте радар

Чтобы запуститься, задайте радар наблюдения L-полосы следующими параметрами:

  • Пиковая мощность: 3 кВт

  • Рабочая частота: 1 ГГц

  • Ширина луча передающей и приемной антенны: 20 градусов в области азимута и вертикального изменения

  • Ширина импульса: 2 μs

% Radar parameters
rfs        = 50e3;           % Free-space range (m)
rdrppower  = 3e3;            % Peak power (W)
fc         = 1e9;            % Operating frequency (Hz)
hpbw       = 20;             % Half-power beamwidth (deg)
rdrpulsew  = 2e-6;           % Pulse width (s)
tiltAng    = 1;              % Radar tilt (elevation) angle (deg)
azRotation = 80;             % Radar azimuth rotation angle (deg)

% Vertical coverage parameters
minEl      = 0;              % Minimum vertical coverage angle (deg) 
maxEl      = 90;             % Maximum vertical coverage angle (deg) 
elStepSize = 1;              % Elevation step size (deg)
azAng      = -60:2:60;       % Azimuth angles for elevation cuts (deg)

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

rdrgain    = beamwidth2gain(hpbw,'CosineRectangular'); % Transmit and receive antenna gain (dBi)

Задайте местоположение

Следующий раздел задает радарное местоположение. Радар смонтирован на высокой башне 100 метров над землей. Радарная высота является суммой наземного вертикального изменения и радарной высоты башни, на которую ссылаются к среднему уровню моря (MSL). Визуализируйте местоположение с помощью geoplot3. Радар появится как красная круговая точка в верхнем правом угле изображения ниже.

% Radar location
rdrlat = 39.5;           % Radar latitude (deg)
rdrlon = -105.5;         % Radar longitude (deg)
rdrtowerht = 100;        % Antenna height (m)
surfaceHtAtRadar = 2812; % Surface height at radar location (m)
rdralt = surfaceHtAtRadar + rdrtowerht; % Radar altitude (m)

% Import the relevant terrain data from the United States Geological
% Survey (USGS)
dtedfile = 'n39_w106_3arc_v2.dt1';
attribution = 'SRTM 3 arc-second resolution. Data available from the U.S. Geological Survey.';
[Z,R] = readgeoraster(dtedfile,'OutputType','double');

% Visualize the location including terrain using the geographic globe plot
addCustomTerrain('southboulder',dtedfile,'Attribution',attribution);
hTerrain = uifigure;
g = geoglobe(hTerrain,'Terrain','southboulder','Basemap','streets');
hold(g,'on')
h_rdrtraj = geoplot3(g,rdrlat,rdrlon,rdralt,'o','Color',[0.6350 0.0780 0.1840],'LineWidth',6,'MarkerSize',6);
campos(g,40.0194565714502,-105.564712896622,13117.1497971643);
camheading(g,150.8665488888147);
campitch(g,-16.023558618352187);

Исследуйте область значений свободного пространства

В данном примере свободное пространство располагается rfs область значений, в которой цель имела бы заданное отношение сигнал-шум (SNR). Примите большую цель с 10 dBsm эффективными площадями рассеивания (RCS). В этой области значений целевой ОСШ свободного пространства может быть вычислен можно следующим образом.

trcs       = db2pow(10); % RCS (m^2)
lambda     = freq2wavelen(fc); % Wavelength (m)
tsnr       = radareqsnr(lambda,rfs,rdrppower,rdrpulsew, ...
    'RCS',trcs,'Gain',rdrgain)
tsnr = -0.7449

Для нашего радара наблюдения желаемый индекс эффективности является вероятностью обнаружения (Pd) 0,8 и вероятность ложного предупреждения (PFA) ниже 1e-3. Чтобы сделать разработку радарных систем более выполнимой, мы можем использовать импульсный метод интегрирования, чтобы уменьшать необходимый ОСШ. Для этой системы мы принимаем некогерентное интегрирование 64 импульсов. Хорошее приближение минимального ОСШ, необходимого для обнаружения в заданном Pd и PFA, может быть вычислено detectability функция можно следующим образом. Обратите внимание на то, что ОСШ свободного пространства удовлетворяет требованию обнаружительной способности.

Pd = 0.8;
Pfa = 1e-3;
minsnr = detectability(Pd,Pfa,64);
isdetectable = tsnr >= minsnr
isdetectable = logical
   1

toccgh функция позволяет переводить вероятности обнаружения приемника в вероятности дорожки. Принимая средство отслеживания по умолчанию, необходимый Pd и PFA переводят в следующую вероятность целевой дорожки (PDT) и вероятность ложной дорожки (Pft).

[Pdt,Pft]  = toccgh(Pd,Pfa) 
Pdt = 0.9608
Pft = 1.0405e-06

Pd и требования PFA включают вероятность дорожки приблизительно 96% и ложную вероятность дорожки порядка 1e-6.

Постройте вертикальное покрытие

Вертикальный шаблон покрытия визуализируется с помощью графика Блэйка, также известного как график угла высоты области значений. Область значений вдоль оси X является распространенной областью значений, и высота вдоль оси Y относительно источника луча.

Вертикальный контур покрытия вычисляется с помощью radarvcd функция. Модель проницаемости по умолчанию в radarvcd основан на морской модели проницаемости в "Графическом выводе машины Блэйком Радарных Схем Покрытия Вертикальной Плоскости". Такая модель не применима для заданного сценария, который является по земле. Таким образом первый шаг в симуляции более реалистического распространения должен выбрать более соответствующую проницаемость. Используйте earthSurfacePermittivity функция с флагом растительности. Примите температуру окружающей среды 21,1 градусов Цельсия, которая составляет приблизительно 70 градусов по Фаренгейту. Примите гравиметрическое содержание воды 0,3.

temp = 21.1; % Ambient temperature (degrees Celsius)
gwc = 0.3; % Gravimetric water content
[~,~,epsc] = earthSurfacePermittivity('vegetation',fc,temp,gwc);

Затем задайте антенну. Симулируйте антенну как теоретический sinc шаблон антенны и график.

hBeam = phased.SincAntennaElement('Beamwidth',hpbw); 
pattern(hBeam,fc);

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

elAng = -90:0.01:90;
pat = getVoltagePattern(hBeam,fc,0,elAng);

Задайте атмосферу и вычислите соответствующий эффективный Наземный радиус. Поскольку широта радара в этом примере является 39,5 градусами, середина модели атмосферы широты была бы самой соответствующей. Примите, что период времени в течение лета.

  % Set effective Earth radius using the mid latitude atmosphere model
  % in summer
  [nidx,N] = refractiveidx([0 1e3], ...
      'LatitudeModel','Mid','Season','Summer');
  RGradient = (nidx(2) - nidx(1))/1e3;
  Re = effearthradius(RGradient); % m

Затем вычислите вертикальный шаблон покрытия с помощью radarvcd функция.

[vcpkm,vcpang] = radarvcd(fc,rfs.*1e-3,rdrtowerht, ...
    'SurfaceRelativePermittivity',epsc, ...
    'SurfaceHeightStandardDeviation',30, ...
    'Vegetation','Trees', ...
    'AntennaPattern',pat,'PatternAngles',elAng, ...
    'TiltAngle',tiltAng, ...
    'EffectiveEarthRadius',Re, ...
    'MinElevation',minEl, ...
    'ElevationStepSize',elStepSize, ...
    'MaxElevation',maxEl);

Используйте поверхностную высоту на сайте, чтобы получить поверхностное явление преломления из refractiveidx.

% Calculate an appropriate surface 
[~,Ns] = refractiveidx(surfaceHtAtRadar,'LatitudeModel','Mid','Season','Summer'); 

Постройте вертикальное покрытие с помощью blakechart функция. blakechart оси формируются с помощью атмосферы ссылки Центральной радио-лаборатории распространения (CRPL). Модель CRPL широко используется и аппроксимирует профиль явления преломления как экспоненциальное затухание по сравнению с высотой, которая, как показывали, была превосходным приближением для нормальной атмосферы (i.e., атмосфера, которая не подвергается аномальному распространению как передача по каналу). Модель CRPL адаптируется путем установки поверхностного явления преломления высоты и экспоненты преломления к значению, которое подходит для местоположения, в котором система действует и время года.

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

rexp = refractionexp(Ns);
blakechart(vcpkm,vcpang,'ScalePower',1,'SurfaceRefractivity',Ns,'RefractionExponent',rexp)

Визуализируйте 3-D вертикальное покрытие по ландшафту

Следующий раздел вычисляет вертикальное покрытие в заданных интервалах азимута. Вертикальная область значений покрытия и угол преобразованы в высоту с помощью range2height функция с помощью 'CRPL' метод. Значения угла высоты области значений затем преобразованы в Декартов.

% Initialize Cartesian X, Y, Z outputs
numAz = numel(azAng);
numRows = numel(minEl:elStepSize:maxEl)+1;
vcpX = zeros(numRows,numAz);
vcpY = zeros(numRows,numAz);
vcpZ = zeros(numRows,numAz);  
wgs84 = wgs84Ellipsoid;

% Obtain vertical coverage contour in Cartesian coordinates
for idx = 1:numAz
    % Get elevation pattern at this azimuth
    pat = getVoltagePattern(hBeam,fc,azAng(idx),elAng);
    
    % Get terrain height information
    [xdir,ydir,zdir] = sph2cart(deg2rad(azAng(idx)+azRotation),0,1e3);
    [xlat,ylon,zlon] = enu2geodetic(xdir,ydir,zdir,rdrlat,rdrlon,rdralt,wgs84);
    [~,~,~,htsurf] = los2(Z,R,rdrlat,rdrlon, ...
        xlat,ylon,rdralt,zlon,'MSL','MSL');
    htstdSurf = std(htsurf(~isnan(htsurf))); 
    
    % Calculate vertical coverage pattern
    [vcp,vcpang] = radarvcd(fc,rfs,rdrtowerht, ...
        'RangeUnit','m', ...
        'HeightUnit','m', ...
        'SurfaceRelativePermittivity',epsc, ...
        'SurfaceHeightStandardDeviation',htstdSurf, ...
        'Vegetation','Trees', ...
        'AntennaPattern',pat,'PatternAngles',elAng, ...
        'TiltAngle',tiltAng, ...
        'EffectiveEarthRadius',Re, ...
        'MinElevation',1, ...
        'ElevationStepSize',1, ...
        'MaxElevation',90);
    
    % Calculate associated heights
    vcpht = range2height(vcp,rdrtowerht,vcpang, ...
        'Method','CRPL','MaxNumIterations',2,'Tolerance',1e-2, ...
        'SurfaceRefractivity',Ns,'RefractionExponent',rexp);
    
    % Calculate true slant range and elevation angle to target
    [~,vcpgeomrt,vcpelt] = ...
        height2range(vcpht,rdrtowerht,vcpang, ...
        'Method','CRPL', ...
        'SurfaceRefractivity',Ns,'RefractionExponent',rexp);
    
    % Set values for this iteration
    vcpelt = [0;vcpelt(:);vcpang(end)];
    vcpgeomrt = [0;vcpgeomrt(:);0]; % km
    
    % Convert range, angle, height to Cartesian X, Y, Z
    [vcpX(:,idx),vcpY(:,idx),vcpZ(:,idx)] = sph2cart(...
        deg2rad(azAng(idx).*ones(numRows,1)+azRotation), ...
        deg2rad(vcpelt),vcpgeomrt);
end

Преобразуйте Декартовы вертикальные значения покрытия в геодезический и график на земном шаре. 3D вертикальное покрытие появится как синяя mesh.

[vcpLat,vcpLon,vcpAlt] = enu2geodetic(vcpX,vcpY,vcpZ,rdrlat,rdrlon,rdralt,wgs84);
[xMesh,yMesh,zMesh] = helperCreateMesh(vcpLat,vcpLon,vcpAlt);
geoplot3(g,xMesh,yMesh,zMesh,'LineWidth',1,'Color',[0 0.4470 0.7410]);

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

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

Ссылки

  1. Бартон, основные уравнения радиолокации Дэвида К. для современного радара. Норвуд, MA: дом Artech, 2013.

  2. Блэйк, Ламонт V "радио-луч (радар) графики угла высоты области значений". Военно-морская научно-исследовательская лаборатория, отчет 6650 NRL, 22 января 1968.

  3. Блэйк, Ламонт V "Расчет Высоты луча для Непрерывного Нелинейного Атмосферного Профиля Показателя преломления". Радио-Наука, Издание 3 (Новый Ряд), № 1, январь 1968, стр 85–92.

  4. Боб, B. R. и Г. Д. Тейер. Экспоненциал CRPL ссылочная атмосфера. Вашингтон, округ Колумбия: государственная типография США, 1959.

% Clean up by closing the geographic globe and removing the imported
% terrain data.
if isvalid(hTerrain)
    close(hTerrain)
end
removeCustomTerrain("southboulder")
function pat = getVoltagePattern(hBeam,fc,azAng,elAng)
% Obtain voltage pattern from antenna element
numAz = numel(azAng); 
numEl = numel(elAng); 
pat = zeros(numAz,numEl); 
for ia = 1:numAz
    for ie = 1:numEl
        pat(ia,ie) = step(hBeam,fc,[azAng(ia);elAng(ie)]);
    end
end
end

function [xMesh,yMesh,zMesh] = helperCreateMesh(x,y,z)
% Organizes the inputs into a mesh, which can be plotted using geoplot3
numPts = numel(x);
xMesh = zeros(2*numPts,1); 
yMesh = zeros(2*numPts,1); 
zMesh = zeros(2*numPts,1);  
[nrows,ncols] = size(x);
idxStart = 1; 
idxEnd = nrows;
for ii = 1:ncols
    if mod(ii,2) == 0
        xMesh(idxStart:idxEnd) = x(:,ii);
        yMesh(idxStart:idxEnd) = y(:,ii);
        zMesh(idxStart:idxEnd) = z(:,ii);
    else
        xMesh(idxStart:idxEnd) = flipud(x(:,ii));
        yMesh(idxStart:idxEnd) = flipud(y(:,ii));
        zMesh(idxStart:idxEnd) = flipud(z(:,ii));
    end
    
    idxStart = idxEnd + 1; 
    if ii ~= ncols
        idxEnd = idxStart + nrows -1; 
    else
        idxEnd = idxStart + ncols -1; 
    end
end

for ii = 1:nrows
    if mod(ii,2) == 0
        xMesh(idxStart:idxEnd) = x(ii,:);
        yMesh(idxStart:idxEnd) = y(ii,:);
        zMesh(idxStart:idxEnd) = z(ii,:);
    else
        xMesh(idxStart:idxEnd) = fliplr(x(ii,:));
        yMesh(idxStart:idxEnd) = fliplr(y(ii,:));
        zMesh(idxStart:idxEnd) = fliplr(z(ii,:));
    end
    idxStart = idxEnd + 1; 
    idxEnd = idxStart + ncols -1; 
end
end

Смотрите также

| | | | | | | |

Похожие темы