主要内容

阵列图形合成第一部分:空化、加窗和减薄

这个例子展示了如何使用相控阵系统工具箱™来解决一些阵列合成问题。

在分阶段阵列设计应用中,通常需要找到逐渐变换元件响应的方法,使得得到的阵列模式满足某些性能标准。典型的性能标准包括MainLobe位置,空位置和Sidelobe级别。

用旁瓣对消器消除干扰

在合成波束模式时,一个常见的要求是将一个零指向给定的到达方向。这有助于抑制来自该方向的干扰,提高信噪比。干扰并不总是恶意的——机场雷达系统可能需要抑制来自附近无线电台的干扰。在这种情况下,无线电台的位置是已知的,可以使用旁瓣抵消算法来消除干扰。

旁瓣对消对于抑制通过阵列旁瓣进入的干扰是有用的。在这种情况下,由于干扰方向已知,算法简单。形成指向干涉方向的波束,然后缩放波束权重,并从指向任何其他视向的波束模式的权重中减去按比例缩放的权重。这个过程总是在干扰方向上放置一个强零。

下面的例子展示了如何设计雷达的权重,使它在-30和30度之间扫描,而始终保持零在40度。假设雷达使用与地面平行的10单元ULA,已知的无线电干扰从40度方位角到达。

c = 3 e8;信号传播速度%fc = 1 e9;信号载频%λ= c / fc;%的波长thetaad = 30:5:30;%看方向thetaan = 40;%干涉方向Ula = phased.ula(10,lambda / 2);ula.element.BackBaftless = True;%计算零方向的方向矢量wn = steervec (getElementPosition(齿龈)/λ,thetaan);%计算视线方向的转向矢量wd = steervec(GetEmentPosition(ULA)/ Lambda,Thetaad);%计算空方向上所需转向的响应rn = wn ' * wd / (wn * wn);%Sidelobe Callecer  - 删除NULL方向的响应w = rn wd-wn *;%绘制模式模式(齿龈、fc 180:180 0“PropagationSpeed”c“类型”“powerdb”......“CoordinateSystem”'矩形的''重量',w);抓住;传奇;情节(40[40]、[0]-100,“r——”“线宽”40.5, 2)文本(5'左右干涉方向'“翻译”“泰克斯”......“颜色”'r'“字形大小”10)

上图显示了从-30°方位角到30°方位角,以5°增量的结果波束方向。从放大后的图中可以清楚地看到,无论观察方向在哪里,雷达波束图在干涉方向上都有一个很强的零值。

% 飞涨xlim(50[30])传说(arrayfun (@ (k) sprintf ('%d度',k),thetaad,......'统一输出'假),“位置”“东南”);

使用窗口函数的模式合成

在设计相控阵时,另一个经常遇到的问题是将期望的波束模式与提交给你的规范相匹配。通常,这些要求是以波束宽度和旁瓣电平表示的。

解决这类问题的过程通常包括以下步骤:

  1. 观察所需的图形并确定阵列几何形状;

  2. 根据所需的波束宽度选择数组大小;

  3. 根据所要求的旁瓣电平设计锥度;

  4. 迭代调整参数的步骤2和3获得最佳匹配。

下面的示例演示了这四个步骤。首先,观察下图所示的所需模式。

负载desiredSynthesizedAntenna;clf;模式(mysteryAntenna、fc、“CoordinateSystem”“极地”“类型”“powerdb”);查看(50,20);AX = GCA;Ax.Position = [-0.15 0.1 0.9 0.8];Camva(4.5);坎波斯([520 -250 200]);

三维辐射模式在方位角和仰角切割上都显示出一些对称性。因此,最好使用统一矩形阵列(URA)来获得图案。从图中还可以清楚地看出,没有能量向阵列的后部辐射。

接下来,确定数组的大小。为了避免光栅裂片,元件间距被设定为半波长。对于URA,沿方位角和仰角方向的尺寸可以分别从方位角和升降方向源自所需的波束宽度。在半波长间隔的情况下,沿着一定方向的元素数可以近似

$$ n \ simeq \ frac {2} {\ sin(\ theta_b)} $$

在哪里\ theta_b美元是沿着那个方向的波束宽度。因此,市建局的孔径可计算为

[azpat elpat, az, el] = helperExtractSynthesisPattern (mysteryAntenna, fc, c);%方位方向idx =找到(azpat > pow2db (1/2));Azco = [az(idx(1)) az(idx(end))];%方位截止n_col = round(2 / sind(diff(azco)))%垂直方向idx =找到(elpat > pow2db (1/2));Elco = [el(idx(1)) el(idx(end))];%海拔截止N_row =圆(2 /信德(diff (elco)))
N_col = 19

估计表明,以14x19 URA开始。

%填写市建局表格URA = phased.ura([n_row n_col],[lambda / 2 lambda / 2]);ura.Element.BackBaffled = true;Helperarrawaryynthesiscomparison(URA,Mysteryantenna,Fc,C)

该图表明合成阵列超过所需图案的波束宽度要求。然而,侧梭形远大于所需的图案。您可以通过将窗口操作应用于数组来减少Sidelobes。因为可以认为URA是两个可分离的均匀线性阵列(ULA)的组合,所以可以使用熟悉的过滤器设计方法沿方位角和高度方向独立地设计窗口。

下面的代码显示了如何获取方位和仰角方向的窗口。

AzSidelobe = 20;美联社= 0.1;%通带涟漪AzWeights = designfilt (“lowpassfir”'filterorder'N_col-1,......“CutoffFrequency”,阿兹科(2)/ 90,“PassbandRipple”,0.1,......'stopbandattenuation', AzSidelobe);azw = AzWeights.Coefficients;Elsidelobe = 30;Elweights = Designfilt(“lowpassfir”'filterorder',n_row-1,......“CutoffFrequency”90年,elco (2) /“PassbandRipple”,0.1,......'stopbandattenuation', ElSidelobe);Elw = Elweights.coffiers;%将权重分配给数组URA.TAPER = ELW(:) * AZW(:)。';%比较模式Helperarrawaryynthesiscomparison(URA,Mysteryantenna,Fc,C)

从图中可以看出,得到的旁瓣电平比之前的设计要低,但仍然不能满足要求。经过一些尝试和错误,以下参数被用来创建最终的设计:

N_row = N_row + 2;%试验和错误N_col = N_col-3;%试验和错误AzSidelobe = 26;ElSidelobe = 35;AzWeights = designfilt (“lowpassfir”'filterorder'N_col-1,......“CutoffFrequency”,阿兹科(2)/ 90,“PassbandRipple”,0.1,......'stopbandattenuation', AzSidelobe);azw = AzWeights.Coefficients;Elweights = Designfilt(“lowpassfir”'filterorder',n_row-1,......“CutoffFrequency”90年,elco (2) /“PassbandRipple”,0.1,......'stopbandattenuation', ElSidelobe);Elw = Elweights.coffiers;URA = phased.ura([n_row n_col],[lambda / 2 lambda / 2]);ura.Element.BackBaffled = true;URA.TAPER = ELW(:) * AZW(:)。';Helperarrawaryynthesiscomparison(URA,Mysteryantenna,Fc,C)

从图中可以看出,合成图的波束宽度和旁瓣电平符合要求。下图显示了所需的三维图形、合成的三维图形、得到的阵列几何形状和锥度。

helperArraySynthesisComparison (ura所言,mysteryAntenna fc, c,'3d'

基于遗传算法的阵列细化

许多阵列综合问题都可以作为优化问题来处理,特别是对于大孔径或复杂几何形状的阵列。在这些情况下,封闭形式的解通常不存在,解空间非常大。例如,对于一个大的阵列,经常需要将阵列变薄以控制旁瓣电平,以避免浪费传递到每个天线单元的功率。在这种情况下,可以打开或关闭一个元素。如果你想在一个包含400个元素的数组中尝试所有可能的解,你就需要万博 尤文图斯尝试2美元^ {400}$组合,这是不现实的,一个400元阵列根本就不是一个大光圈。在这种情况下经常采用优化技术。

一种常用的优化技术是遗传算法。遗传算法通过模拟自然选择过程来获得最优解。它从随机选择的第一代候选人开始。在每个进化周期,算法根据预定的性能度量(在减薄阵列的例子中,性能度量将是峰值与旁瓣水平的比值)对生成进行排序,然后丢弃性能评分较低的生成。然后,该算法对剩余的候选者进行变异,以生成新的代,并重复该过程,直到达到停止条件,例如最大代数。

下面的例子展示了如何使用遗传算法来瘦一个40x40的URA。目标是在方位角和仰角切割中实现最大的旁瓣抑制。首先给出了全阵列的波束图。

Nside = 40;geneticArray = phased.URA (Nside,λ/ 2);geneticArray.Element.BackBaffled = true;clf;wplot = helperThinnedArrayComparison (geneticArray, fc, c);

旁瓣电平可计算为

计算波束图[azpat elpat, az, el] = helperExtractSynthesisPattern (geneticArray, fc, c);计算相对旁瓣电平pks_az = findpeaks (azpat,“NPeaks”2,“SortStr”“下”);pks_el = findpeaks(Elpat,“NPeaks”2,“SortStr”“下”);找出两个切口之间较小的旁瓣电平-pks_az sllopt = min (pks_az (1) (2), pks_el (1) -pks_el (2))
sllopt = 13.2981

正如预期的那样,旁瓣电平约为13dB。

现在应用遗传算法。请注意,URA的行和列都是对称的,因此可以利用这种对称,使每个细化系数候选仅适用于阵列的四分之一。这减少了算法的搜索空间。

随机种子拟就= rng (2013);%初始生成200名候选人。最初,要素朝向%中心是活动的,虚拟元素是朝向边缘的W0 = DOUBLE(RAND(N衬边/ 2,N侧/ 2,200)> 0.5);W0(1:14,1:14,:) = 1;%选择一个候选,绘制波束图,并计算旁瓣%的水平wtemp = w0 (:: 100);= [fliplr(wtemp) wtemp;rot90(wtemp,2) flipud(wtemp)];Wplot = HelperthinnedarrayComparison(GeneticArray,Fc,C,[Wplot Wo(:)],......{“全部”“初始”});

图中显示了一个典型的第一代候选者产生的波束模式。与全阵列相比,旁瓣在方位角方向较低,但在仰角方向较高。阵列的精确旁瓣电平和填充率可计算为

[azpat, elpat] = helperExtractSynthesisPattern (geneticArray fc, c,我们(:));计算相对旁瓣电平pks_az = findpeaks (azpat,“NPeaks”2,“SortStr”“下”);pks_el = findpeaks(Elpat,“NPeaks”2,“SortStr”“下”);sllopt = min(pks_az(1)-pks_az(2),pks_el(1)-pks_el(2))fillrate = sum(wo(:))/ n控边^ 2 * 100
Sllopt = 8.7013 fillrate = 71.7500

这意味着71.75%的数组元素(其中1148)是活动的,并且Sidelobe级别为约9 dB。它需要进一步抑制。下面的代码适用于30代的遗传算法。

%最大代数硝石= 30;%每一代候选人的数量numGene =大小(w0, 3);w = w0;pos = getElementPosition (geneticArray) /λ;angspan = 90:90;m = 1:硝石%计算整个生成的波束模式[azpat, elpat] = helperArraySynthesisBeamPattern (pos angspan w);%计算每个候选人的Sidelobe级别sll = helperArraySynthesisRelativeSidelobeLevel (azpat elpat);%排序产生的副瓣水平[~, idx] =排序(sll, 2,“下”);%丢弃得到较低分数的生成的一半W = W(:,:,[IDX(1:NUMGENE / 2)IDX(1:NUMGENE / 2)]);%在新生成的候选对象中改变行和列mutIdx_row =兰迪(Nside / 2 1 1);mutIdx_col =兰迪(Nside / 2 1 1);w (mutIdx_row:,:, numGene / 2 + 1: numGene) = flipud (......w (mutIdx_row:,:, numGene / 2 + 1: numGene));w (mutIdx_col:,:, numGene / 2 + 1: numGene) = fliplr (......W(敏感:末端,:,NUMGENE / 2 + 1:NUMGENE));结束WOPT = W(:,:1);RNG(PRVS);wo = [fliplr(wopt)wopt; rot90(wopt,2)flipud(wopt)];Wplot = HelperthinnedarrayComparison(GeneticArray,Fc,C,[Wplot Wo(:)],......{“全部”“初始”'合成'});

sllopt = sll(idx(1))fillrate = sum(wo(:))/ n控边^ 2 * 100
Sllopt = 17.5380 fillrate = 76.5000

该图示出了所得到的光束图案。可以看出,侧链水平进一步改善至约17.5dB,填充率为76.5%(1224个活性元素)。与第一代候选者相比,它使用5%的活动元素,同时实现了另外的9 dB Sidelobe抑制。与完整阵列相比,所得到的变薄阵列可以节省在虚拟元素后面实现T / R交换机的成本,这又导致消耗电量的高约25%。另请注意,即使变薄阵列使用较少的元素,BeamWidth即使使用完整阵列可以实现的内容。

最终变薄的阵列如下所示,黑圆圈代表虚拟元素。

clf;geneticArray。锥形=我们;viewArray (geneticArray“ShowTaper”,真的);

值得注意的是,遗传算法并不总是在每次试验中得到相同的解决方案。然而,总的来说,产生的波束图样共享一个相似的旁瓣电平。

上面的脚本显示了一个应用于数组综合问题的非常简单的遗传算法。在实际应用中,遗传算法可能更为复杂。阵列综合中还使用了其他的优化算法,如模拟退火算法。有兴趣的读者可以在全局优化工具箱中找到遗传算法和模拟退火算法求解器。

总结

这个例子展示了在相控阵上进行阵列合成的几种方法。在实际应用中,需要根据应用的具体约束条件,如阵列孔径大小、阵列几何形状等,选择合适的合成方法。

参考

[1] Randy L. Haupt,基于遗传算法的稀疏阵列,IEEE天线与传播学报,Vol 42, No . 7, 1994

《电磁遗传算法导论》,IEEE天线与传播杂志,Vol 37, No . 2, 1995

[3] Harry L. Van树,最佳阵列处理,Wiley-Interscience,2002