利用MATLAB进行天线阵列方向图综合

描述

学个Antenna是以天线仿真和调试为主,理论原理为辅的干货天线技术专栏,包括天线入门知识以及各类天线的原理简介、仿真软件建模、设计、调试过程及思路

摘要:本次推文将介绍如何利用MATLAB的Sensor Array Analyzer进行天线阵列的方向图综合。

1. 阵列方向图综合理论

对于均匀平面阵列而言,其阵因子公式可以写成

当阵列是三角网格布置或者圆环阵时,《ANTENNA THEORY ANALYSIS AND DESIGN》等相关教程也是有公式可参考的。不过对于任意孔径下排布,我们就需要回归到最通用的方向图综合公式。即通过已知的每个单元的位置、激励幅度和相位、对进行累加来综合阵因子(点源模型)。

对于上述情况,就需要借助编程工具进行方向图综合的可视化,例如工科生们最常用的MATLAB或者Python。

2. Sensor Array Analyzer

MATLAB 2014b中开始新增支持的Sensor Array Analyzer (MATLAB 传感器阵列分析器),这个工具箱提供用于分析和处理传感器阵列数据的综合工具和功能,适用于信号处理、通信、雷达和声纳等领域使用传感器阵列的研究人员和工程师。该工具箱还提供用于显示和分析阵列数据的可视化工具并支持传感器阵列的设计和仿真。功能范围从 1-D 到 3-D 天线、声纳换能器和麦克风阵列等,并且可以包含子阵列。指定阵列和传感器参数后,应用程序会显示基本性能特征,例如阵列方向性和阵列尺寸。

方向图

支持的阵列类型如下所示:

  阵列类型
2D阵列 均匀线性阵列(ULA)
均匀矩形阵列(URA)
均匀圆形阵列(UCA)
均匀六角形阵列(UHA)
圆形平面阵列
(Circular Planar Array)
同心阵列
(Concentric Array )
3D阵列 球形阵列(Spherical Array)
圆柱形阵列 (Cylindrical Array)
任意阵列 (Arbitrary Array)

对于天线阵列设计而言,我们可以通过遵从下面步骤来实现搭积木式的阵列方向图综合:选择阵列类型配置单元数/单元间隔/阵列法向方向/阵列的锥削/工作频段等。然后就可以点击3D Pattern/2D Pattern按钮来查看天线方向图。

下面以一个URA为例进行简单的使用示范:

①Size:输入一个一行2列的向量,例如[4,4];

②Element Spacing:输入单元间距,支持2种格式,例如[10,12](单位m),或者[0.5,0.6](单位λ);

③Lattice:支持Rectangular(矩形网格布阵)和Triangular(三角网格布阵);

④Array Normal:阵列的法向,例如x,y,z;

⑤Taper:支持Custom自定义类型和行、列分别类型的幅度锥削激励;

⑥Custom Taper:当⑤中选择Custom类型时,可自定义各单元的激励系数。如果阵列的Size是4×4,则可输入一个4×4的矩阵(可以是复数形式)。

以上向量或者矩阵均可以从workspace里载入

综合的方向图结果如下所示:

方向图

除了简单的阵列综合外,还有子阵综合,单元方向图选取以及波束扫描等功能,大家可以根据自己的需求来调用!

3. 代码封装设计

通过Export按钮可以Generate Matlab script,通过观察代码来学习如何将上面的UI操作转换为代码的,从而将其封装起来方便使用。

这里给大家一个封装的MATLAB Demo

 

function radiation=Cal_RecArray(ArrSize,Spacing,Taper)
%     ArrSize=[8,8];Spacing=[0.5,0.5];Taper=1;
%     w = taylorwin(16,8,-20);w=w/max(w);Taper=w*w.';
    % Create a uniform rectangular array
    Array = phased.URA('Size',ArrSize,...
        'Lattice','Rectangular','ArrayNormal','z');
    % The multiplication factor for lambda units to meter conversion
    Array.ElementSpacing = Spacing;
    Array.Taper = Taper;
    
    % Create an isotropic antenna element
    Elem = phased.IsotropicAntennaElement;
    Elem.FrequencyRange = [0 300000000];
    Array.Element = Elem;
    
    % Assign Frequencies and Propagation Speed
    Frequency = 300000000;
    PropagationSpeed = 300000000; 
    
    % Plot Array Geometry
    figure;
    viewArray(Array,'ShowNormal',false,...
        'ShowTaper',false,'ShowIndex','None',...
        'ShowLocalCoordinates',true,'ShowAnnotation',false,...
        'Orientation',[45;45;45]);
    
    % Calculate Steering Weights
    
    Freq3D = 300000000;
    % Find the weights
    w = ones(getNumElements(Array), length(Frequency));
    
    % Plot 3d graph
    plotType = 'Directivity';
    radiation=pattern(Array, Freq3D , 'PropagationSpeed', PropagationSpeed,...
        'weights', w(:,1),...
        'ShowArray',false,'ShowLocalCoordinates',true,...
        'Type', plotType);
end

 

简单的调用下即可得到3D方向图数据:

 

w = taylorwin(10,8,-20);w=w/max(w);Taper=w*w.';
pattern=Cal_RecArray([10,10],[0.5,0.5],Taper);

 

4. 进阶功能

除了常规的1D线阵,矩形、圆形等阵列结构外,还可以进行Arbitrary设置,我们只需要传入单元的坐标位置和单元的法向角度 (对于平面阵列而言,所有单元的法向角度相同),以及单元的幅度锥削即可。

方向图

方向图

该工具箱内置的子阵分析和自定义单元方向图功能使得复杂的阵列综合更加便利化。

方向图

审核编辑:汤梓红

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分