学个Antenna:Matlab天线工具箱知多少(二)

2022-01-07 来源:微波射频网 作者:94巨蟹座少年 字号:

学个Antenna是以天线仿真和调试为主,理论原理为辅的干货天线技术专栏,包括天线入门知识以及各类天线的原理简介、仿真软件建模、设计、调试过程及思路如有想看到的内容或技术问题,可以在文尾写下留言。

图片

摘要:

上节推文学个Antenna:Matlab天线工具箱知多少(一)初步了解了MATLAB天线工具箱,并对天线单元和阵列快速评估的程序化开发进行了入门讲解。这次先对弗里斯传输公式进行仿真、对比验证,然后介绍天线覆盖3D地形图的可视化。

本文使用的软件为MATLAB 2019a版本,文中编写的程序在低版本环境下可能会与提供的仿真结果有一定偏差!

弗里斯传输公式仿真验证

建立起自由空间损耗模型,考虑到自由空间的衰减和收发天线的增益:

结合弗里斯传输公式,不难得出二元阵的隔离度S21理论上可近似为:

上述公式的详细推导这里就不做过多赘述。

左右滑动上述公式可看完整版

1    clear;clc;
2    %设置频率:Hz
3    fre=2*1e9;
4    %创建天线单元种类
5    subobject=design(dipole,fre);
6    subobject.Load.Impedance=100;
7    %设置线阵
8    arrayobject=design(linearArray('Element',subobject),fre,subobject);
9    %设置单元数量
10    arrayobject.NumElements=2;
11    %设置单元激励相差
12    arrayobject.PhaseShift=[0 0];
13    %设置单元激励幅度
14    arrayobject.AmplitudeTaper=[1 1];
15    show(arrayobject);
16    dist=0.05:0.05:0.5;
17    str1=[];
18    S21_singleFre=zeros(1,length(dist));
19    for num=1:length(dist)
20       %设置单元间隔
21        arrayobject.ElementSpacing=dist(num);
22        S_data=sparameters(arrayobject,0.5*fre:0.01*1e9:1.5*fre);
23        str1=[str1,strcat("单元间距(mm):",num2str(arrayobject.ElementSpacing*1000))];    24        rfplot(S_data,2,1);hold on;legend(str1);
25        temp=S_data.Parameters;
26        S21_singleFre(num)=20*log10(abs(temp(2,1,101)));
27    End
28    hold off;
29    %弗里斯传输公式理论计算
30    %distance:km       freq:MHz
31    distance=dist/1e3;
32    freq=fre/1e6;
33    Gt=2.15;Gr=2.15;
34    Loss_dB=-32.44-20*log10(distance)-20*log10(freq)+Gt+Gr;
35
36    figure(2);plot(dist,S21_singleFre,'b','linewidth',3);set(gca,'linewidth',3);
37    xlabel('单元间距(m)');ylabel('S_{21}(dB)');
38    hold on;plot(dist, Loss_dB,'--b','linewidth',3);
39    legend('Matlab理论计算','弗里斯传输公式理论计算');

 

MATLAB快速仿真与理论值对比

图片图片图片

点击任意小图,即可放大观看

Matlab和弗里斯传输公式理论计算值差了有将近6dB,误差还是比较大的!

单元间隔250mm时,S21(dB)分别为:

Matlab计算值:-27.798

弗里斯传输公式理论计算:-22.1194

为了验证理论值的正确性,按照MATLAB里的偶极子参数,重新在CST里面建模仿真,两者单元性能还是比较一致的!

图片图片图片图片

点击任意小图,即可放大观看

接下来在CST中建立二元阵,单元间距设定为50mm,150mm,250mm,350mm,此时弗里斯传输公式理论计算的S21(dB)分别为

-8.2920,-17.8344,-22.2714 -25.1940

图片

可以明显看出,CST的仿真结果与弗里斯传输公式理论计算值吻合度较高。单元间距越远,天线之间的耦合越弱,越符合理论计算值。这也充分说明了MATLAB在定量计算中与CST、HFSS等专业电磁仿真软件是不可比拟的,适合于做定性分析验证。

3D地形图可视化覆盖范围
当用于通信的天线经过性能调试、优化、加工、组装、测试等一系列步骤后,我们就需要对天线的摆放(比如最大波束指向方位,下倾角等),多天线的蜂窝式布局等进行空间上的评估,这时就需要建立射频传播模型。简单的评估可以采用最为理想的自由空间损耗模型:弗里斯传输公式

复杂一点的则会考虑天气效应的传播模型计算覆盖范围,以及使用Longley-Rice或TIREM™(Terrain Integrated Rough Earth Model,地形整合粗糙地表模型)传播模型,考虑地球绕射与反射。

整个评估目前已经整合到MATLAB的天线工具箱了,强大的coverage函数

1   coverage(txs,rxs,propmodel) 
2   % 可支持的传播模型,可用于评估不同情况下的路径衰减
3    'freespace' — Free space propagation model
4    'rain' — Rain propagation model
5    'gas' — Gas propagation model
6    'fog' — Fog propagation model
7    'close-in' — Close-in propagation model
8    'longley-rice' — Longley-Rice propagation model
9    'tirem' — Tirem propagation model
10    'raytracing' — Ray tracing propagation model that uses the image method
11  % terrain is enabled,则默认的传播模型是'longley-rice' 
12  % terrain is disabled,则默认的传播模型是'freespace' 
13  % 目前笔者安装的MATLAB2019a版本下,terrain为'None'的时候运行OK,否则报错

下面的GIF可大致预览下简单的3D地形图可视化覆盖范围,长按识别二维码则可看高清视频。

 

长按识别二维码,看高清视频

 

详细代码如下,仅供参考:

1    clear;clc;
2    % Lattitude:纬度,Longitude:经度
3    % 定义发射位置
4    fq = 6e9; % 6GHz
5    tx = txsite('Name','深圳市万象城', ...
6        'Latitude',22.515238, ...
7        'Longitude',113.945419, ...
8        'Antenna',design(dipole,fq), ...% 定义天线    
9        'AntennaHeight',60, ...        % 长度单位:m    
10       'TransmitterFrequency',fq, ... % 频率单位:Hz
11        'TransmitterPower',100);        % 功率单位:Watts
12    % 定义接收位置
13    rxNames = {...
14       '深圳世界之窗','深圳北站','深圳站','深圳市蛇口人民医院', ...   
15        '深圳湾公园','深圳西站','深圳西丽地铁站','深圳人才公园'};
16    rxLocations = [...
17       22.53457 113.97301; ... % 深圳世界之窗
18       22.60939 114.02938; ... % 深圳北站
19       22.53237 114.11509; ... % 深圳站
20       22.49664 113.92208; ... % 深圳市蛇口人民医院
21       22.48344 113.93309; ... % 深圳湾公园
22       22.52787 113.90773; ... % 深圳西站
23       22.58120 113.95213; ... % 深圳西丽地铁站   
24        22.51099 113.94854];    % 深圳人才公园
25    % 定义接收灵敏度
26    rxSensitivity = -80; % Units: dBm
27    rxs = rxsite('Name',rxNames, ...
28        'Latitude',rxLocations(:,1), ...
29        'Longitude',rxLocations(:,2), ...
30        'Antenna',design(dipole,tx.TransmitterFrequency), ...    
31        'ReceiverSensitivity',rxSensitivity); % Units: dBm
32    % 加上此句不会报错
33    viewer = siteviewer("Terrain", "none");
34    % 可视化Tx,Rx
35    show(tx)
36    show(rxs)
37    % 可视化Tx,Rx,显示当前天线下的信号强度覆盖情况
38    % coverage(tx,'freespace', ...
39    %    'SignalStrengths',rxSensitivity)
40    % link(rxs,tx,'freespace')
41    coverage(tx,'rain','SignalStrengths', rxSensitivity)
42    link(rxs,tx,'rain')

44    % 替换偶极子天线为强方向性的八木天线
45    yagiAnt = design(yagiUda,tx.TransmitterFrequency);
46    % Tilt antenna to direct radiation in XY-plane
47    yagiAnt.Tilt = 90;
48    yagiAnt.TiltAxis = 'y';

50    f = figure;
51    % 绘制定向性方向图
52    patternAzimuth(yagiAnt,tx.TransmitterFrequency)
53    % 更新发射天线
54    tx.Antenna = yagiAnt;
55    % 将天线主瓣对准rxs(1)位置
56    tx.AntennaAngle = angle(tx, rxs(1));

58    % 可视化视图更新,'rain' propagation model
59    % 传播模型详解:https://www.mathworks.com/help/antenna/ref/propagationmodel.html
60    % 查看接收灵敏度下的覆盖范围,图中绿色范围即为可覆盖范围
61    coverage(tx,'rain','SignalStrengths',rxSensitivity)
62    link(rxs,tx,'rain')
64    % 定义信号强度:从接收灵敏度开始到自定义的功率值(dB)
65    sigStrengths = rxSensitivity:5:-50;
67    % 可视化覆盖范围更新
68    % 查看不同位置下的信号接收强度色彩图
69    coverage(tx,'rain','SignalStrengths',sigStrengths)

可视化覆盖范围示意图

图片图片

资源分享

后续的仿真资料链接在下面的总文件夹进行更新

识别或扫码二维码

图片
下载仿真模型文件

END


*本文图片来自MATLAB 2019a和官网,致谢Markdown Nice提供的公式排版服务

*欢迎左侧一键转发至朋友圈,同时右侧在看与点赞

以上便是要给大家分享的内容,希望对大家有所帮助~~大家持续关注“微波射频网”,后续精彩不断~
本期原创工程师:94巨蟹座少年

本文为MWRF.NET原创文章,未经允许不得转载,如需转载请联系market#mwrf.net(#换成@)