此示例显示如何使用相控阵系统工具箱™进行模型和可视化各种天线阵列几何形状。这些几何形状也可以用于建模其他类型的阵列,这种流水声阵列和麦克风阵列。您可以查看每个绘图的代码,并在您自己的项目中使用它。
线性天线阵列可以在元件之间具有均匀或不均匀的间隔。该最常见的线性天线阵列是均匀的线性阵列(ULA)。
n = 20;%元素数量d = 0.5;%元素间距(m)齿龈= phased.ULA (N、D);viewArray(齿龈,'标题'那'均匀的线性阵列(ULA)'甘氨胆酸)组(,“CameraViewAngle”, 4.4);
最小冗余线性阵列(MRLA)是非均匀间隔线性阵列的示例。MRLA最小化具有相同空间相关滞后的元素对数。可以设计一个4元件阵列,其孔径相当于7元元ula。
N = 4;%元素数量pos = 0 (N);Pos (2,:) = [-1.5 -1 0.5 1.5];相当于7单元ULA的孔径%mrla = phased.conormalArray('upontentposition',pos,......“ElementNormal”,零(2,n));ViewArray(MRLA,'标题'那'最小冗余线性阵列(MRLA)'甘氨胆酸)组(,“CameraViewAngle”, 4.85);
圆形天线阵列也可以在元件之间具有均匀或不均匀的间隔。接下来是均匀圆形阵列(UCA)的示例。
N = 24;%元素数量r = 1;%半径(m)uca =阶段= cuca(n,r);ViewArray(UCA,“ShowNormals”,真的,'标题'那'均匀的圆形阵列(UCA)')视图(0,90)
具有相同数量的元件和不同的半径数的多个圆形天线阵列形成同心圆形阵列。
n = 16;%每个环上的元素数r = [1 1.5 2];%半径(米)azang = (0: n - 1) * 360 / n - 180;pos = [0 (1, N); cosd (azang);信德(azang)];elNormal = 0 (2 N);concentricCircularArray =分阶段。ConformalArray (......'upontentposition',[R(1)* POS R(2)* POS R(3)* POS],......“ElementNormal”,[Elnormal Elnormal ElnorMal]);ViewArray(ConcentricCirculararray,'标题'那'同心圆形阵列');
平面天线阵列可以具有均匀的网格(或晶格)和不同的边界形状。接下来是具有矩形网格和矩形边界的均匀矩形阵列(URA)的示例。
M = 18;%每行元素个数n = 16;每列上的元素数量dy = 0.5;%每行元素之间的间距(m)dz = 0.5;每列的元素之间的%间距(m)URA = PHASED.URA([N m],[DZ DY]);ViewArray(URA,'标题'那'统一的矩形阵列(URA)');
你也可以用圆形边界来模拟平面天线阵。下面的代码以一个URA开始,并删除一个圆之外的元素。
n = 20;矩形数组的每行/列上的%元素数dy = 0.5;%每行元素之间的间距(m)dz = 0.5;每列的元素之间的%间距(m)R = 4.5;%半径(m)Refarray = phased.ura(n,[dy,dz]);POS = GetEmementPosition(Refarray);Elemtoremove = sum(pos。^ 2)> r ^ 2;POS(:,ElemtoreMove)= [];%不包含圆外的元素circularplanararray = phased.conormalArray('upontentposition',pos,......“ElementNormal”0(2、大小(pos, 2)));ViewArray(CircularPlanarArray,'标题'那圆形平面阵列的);
下面是一个具有椭圆边界的平面天线阵的例子。
n = 20;矩形数组的每行/列上的%元素数dy = 0.5;%每行元素之间的间距(m)dz = 0.5;每列的元素之间的%间距(m)ry = 4.5;%主要半径(m)Rz = 2.8;%次要半径(m)Refarray = phased.ura(n,[dy,dz]);POS = GetEmementPosition(Refarray);Elemtoremove =(POS(2,:)/ RY)。^ 2+(POS(3,:)/ RZ)。^ 2> 1;POS(:,ElemtoreMove)= [];%排除椭圆外的元素ellipticalPlanarArray =分阶段。ConformalArray ('upontentposition',pos,......“ElementNormal”0(2、大小(pos, 2)));viewArray (ellipticalPlanarArray'标题'那“椭圆平面阵”);
下一个例子是一个带有矩形网格的六边形数组。
nmin = 7;%下面一行的元素数Nmax = 19;%最宽行上的元素数dy = 0.5;%行间距dz = 0.5;%列间距Rows = [nmin:2:nmax nmax-2:-2:nmin];n = sum(行);%元素总数停止= cumsum(行);开始= stop-rows + 1;pos = 0 (N);数= 0;为了m = nmin-nmax:2:nmax-nmin count = count + 1;idx = start(count):停止(计数);POS(2,IDX)=( - (ROWS(COUNT)-1)/ 2 :(行(计数)-1)/ 2)* dy;POS(3,IDX)= M / 2 * DZ;结束hexagonalPlanarArray =分阶段。ConformalArray ('upontentposition',pos,......“ElementNormal”,零(2,n));ViewArray(六角形平板array,......'标题'那“矩形网格的六边形平面阵列”);
三角网格提供了一种有效的空间采样方法,在实际中得到了广泛的应用。在这里,不同的边界几何可以应用。首先是一个三角形格子的矩形阵列。
M = 18;%每行元素个数n = 16;每列上的元素数量dy = 0.5;%每行元素之间的间距(m)dz = 0.5;每列的元素之间的%间距(m)rectArrayTriGrid =分阶段。(N [M], [dz dy],“格子”那“三角”);viewArray (rectArrayTriGrid......'标题'那'具有三角形网格的矩形数组');
接下来是一个三角形点阵的圆形平面天线阵。
n = 18;矩形数组的每行/列上的%元素数dy = 0.5;%每行元素之间的间距(m)dz = 0.5;每列的元素之间的%间距(m)R = 4.5;%半径(m)Refarray = phased.ura(n,[dy,dz],“格子”那“三角”);POS = GetEmementPosition(Refarray);Elemtoremove = sum(pos。^ 2)> r ^ 2;POS(:,ElemtoreMove)= [];%不包含圆外的元素circularPlanarArrayTriGrid =分阶段。ConformalArray (......'upontentposition',pos,“ElementNormal”0(2、大小(pos, 2)));ViewArray(CircularPlanarArraytrigrig,......'标题'那“带有三角形网格的圆形平面阵列”);
接下来是一种具有三角形格子的椭圆形平面天线阵列。
n = 18;矩形数组的每行/列上的%元素数dy = 0.5;%每行元素之间的间距(m)dz = 0.5;每列的元素之间的%间距(m)ry = 4.5;%主要半径(m)Rz = 2.8;%次要半径(m)Refarray = phased.ura(n,[dy,dz],“格子”那“三角”);POS = GetEmementPosition(Refarray);Elemtoremove =(POS(2,:)/ RY)。^ 2+(POS(3,:)/ RZ)。^ 2> 1;POS(:,ElemtoreMove)= [];%排除椭圆外的元素ellipticalPlanarArrayTriGrid =......分阶段。ConformalArray ('upontentposition',pos,......“ElementNormal”0(2、大小(pos, 2)));viewArray (ellipticalPlanarArrayTriGrid......'标题'那“带有三角形网格的椭圆平面阵列”);
接下来是均匀六边形阵列(UHA)的示例。
Nmin = 9;%下面一行的元素数nmax = 17;%中行元素个数dy = 0.5;%行间距DZ = 0.5 * SIN(PI / 3);%列间距Rows = [nmin:nmax nmax-1:-1:nmin];n = sum(行);%元素总数停止= cumsum(行);开始= stop-rows + 1;pos = 0 (N);数= 0;为了m = nmin-nmax:nmax-nmin count = count + 1;idx = start(count):停止(计数);POS(2,IDX)=( - (ROWS(COUNT)-1)/ 2 :(行(计数)-1)/ 2)* dy;POS(3,IDX)= M * DZ;结束uha =分阶段。ConformalArray ('upontentposition',pos,......“ElementNormal”,零(2,n));ViewArray(UHA,'标题'那“统一六边形阵列(UHA)”);
您还可以使用非均匀网格模拟平面天线阵列。接下来是稀释天线阵列的示例。
m = 19;%每行元素个数n = 17;每列上的元素数量dy = 0.5;%每行元素之间的间距(m)dz = 0.5;每列的元素之间的%间距(m)Refarray = phased.ura([n m],[dz dy]);POS = GetEmementPosition(Refarray);Elemtoremove = [3:11:m *(n-1)/ 2 m * n-3:-11:(n + 1)/ 2];POS(:,ElemtoreMove)= [];thinnedura = phased.conormalArray('upontentposition',pos,......“ElementNormal”0(2、大小(pos, 2)));ViewArray(Thinnedura,'标题'那“变薄数组”);
您还可以模拟非平面阵列。在许多应用中,传感器必须符合它们安装在弯曲表面的形状。接下来是天线阵列的一个例子,其元件均匀地分布在半球上。
r = 2;%半径(m)阿兹= 90:10:90;%方位角度el = -80:10:80;%仰角(不含极)[az_grid,el_grid] = meshgrid(az,el);杆= [0 0;-90 90];%添加南极和北极nDir = [pole [az_grid(:) el_grid(:)]'];元素法向n =尺寸(ndir,2);%元素数量[x, y, z] = sph2cart (degtorad (nDir (1,:)), degtorad (nDir (2:)), R * 1 (1, N));hemisphericalconformalarray = phased.conormalarray(......'upontentposition',[X;y;Z],“ElementNormal”(nDir);viewArray (hemisphericalConformalArray......'标题'那'半球形保形阵列');查看(90,0)
您可以建模和可视化子数组。接下来是连续子数组的例子。
复制ura = phased.replationsubarray(“子数组”phased.URA (5)......'布局'那'矩形的'那......'gridsize',[3],“GridSpacing”那'汽车');viewArray (replicatedURA'标题'那'每个具有5x5元素的3x3子阵列);
可以在非均匀网格上布局子数组。下一个例子模拟了一个子阵列的T/R模块的故障。
ns = 6;%子数组个数posc = 0 (Ns);: posc (2) = 5:2.5:7.5;%子阵列阶段中心posc (:, 3) = [];%取出第3个子阵段以模拟T / R失败defectionsubarray = phased.replictedsubarray(......“子数组”,分阶段。(25 [5]),......'布局'那“自定义”那......'子阵列'posc,......'subarraynormal',零(2,NS-1));ViewArray(缺陷资金阵列,'标题'那'有缺陷的子阵列');查看(90,0)
子阵列可以交错和重叠,以减轻光栅瓣。
n = 40;%元素数量Ns = 8;%子数组个数Sel = Zeros(ns,n);nsec = n / ns;为了m = 1: Ns如果m == 1 sel(m,(m-1)* nsec + 1:m * nsec + 1)= 1;eleesifm==Ns sel(m,(m-1)*Nsec:m*Nsec) = 1;其他的SEL(m,(m-1)* nsec:m * nsec + 1)= 1;结束结束重叠的arubarray = phased.partitionedarray(“数组”,阶段,......'子阵列选择',sel);ViewArray(RopospedSubarray,'标题'那'重叠的子阵列');套装(GCA,“CameraViewAngle”,4.65);
在某些空间约束应用程序中,例如在卫星上,多个天线阵列必须共享相同的空间。元素组是交错的,隔行扫描或穿插。下一个示例模型交错的非重叠子阵列。
n = 20;IDX = REPAPE(RANDPERM(N * N),N,N);Sel = Zeros(n,n * n);为了i = 1:n,sel(i,Idx(i,i :))= 1;结束InterleavedArray = Phased.PartitionedArray(“数组”phased.URA (N),......'子阵列选择',sel);ViewArray(InterleavedArray,'标题'那交错数组的);
另一种非平面天线阵列是具有多个平面面的阵列。下一个例子显示了均匀的六边形阵列作为子阵列排列在一个球体上。
R = 9;%半径(m)阿兹= unigrid(-180、60180、“()”);%方位角度el = unigrid(-30、60、30);%仰角(不含极)[az_grid,el_grid] = meshgrid(az,el);杆= [0 0;-90 90];%添加南极和北极nDir = [pole [az_grid(:) el_grid(:)]'];%子数组法线方向n =尺寸(ndir,2);%子数组个数[x, y, z] = sph2cart (degtorad (nDir (1,:)), degtorad (nDir (2:)), R * 1 (1, N));sphericalHexagonalSubarray =分阶段。ReplicatedSubarray (“子数组”uha,......'布局'那“自定义”那......'子阵列',[X;y;Z],......'subarraynormal'(nDir);viewArray (sphericalHexagonalSubarray......'标题'那“球体上的六角形子阵列”);查看(30,0)
你也可以从一个不同的角度来观察这个数组,并在三维空间中交互地旋转它。
rotate3d视图(0,90)在