我是靠谱客的博主 虚心舞蹈,最近开发中收集的这篇文章主要介绍学个Antenna:Matlab天线工具箱知多少(二),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

学个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)

可视化覆盖范围示意图


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

以上便是要给大家分享的内容,希望对大家有所帮助~~

-END-

本期原创工程师:微波天线工程师

来源:学个Antenna:Matlab天线工具箱知多少(二) - RFASK射频问问

关于RFASK射频问问

射频问问是在"微波射频网”系列原创技术专栏基础上升级打造的技术问答学习平台,主要围绕射频芯片、微波电路、天线、雷达、卫星等相关技术领域,致力于为无线通信、微波射频、天线、雷达等行业的工程师,提供优质、原创的技术问答、专栏文章、射频课程等学习内容。更多请访问:RFASK射频问问 - 射频技术研发服务平台 | 技术问答、专栏文章、射频课程

最后

以上就是虚心舞蹈为你收集整理的学个Antenna:Matlab天线工具箱知多少(二)的全部内容,希望文章能够帮你解决学个Antenna:Matlab天线工具箱知多少(二)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部