用Matlab仿真无穷小偶极子天线:近场远场与方向图全解析

发布时间:2026/8/31 18:10:39
用Matlab仿真无穷小偶极子天线:近场远场与方向图全解析 简介本资源是面向本科及硕士阶段电磁场与天线课程教学与科研实践的Matlab仿真案例聚焦无穷小偶极子天线的电磁场建模与可视化分析解决近场感应场、辐射场过渡区与远场典型球面波辐射特性的理论公式推导、数值计算与空间分布图示等核心学习难点。压缩包共6个文件含主程序main.m实现电场/磁场分量计算与三维绘图、3张结果图png格式直观展示E/H场幅值与相位的空间分布、说明文档txt含物理模型假设、坐标系定义与参数设置依据以及1个嵌套zip可能为扩展案例或补充资料整体大小仅1.08MB轻量易用。已有23人下载学习配套代码结构清晰、注释完整运行环境兼容Matlab 2014a至2019a附带可直接查看的仿真结果图省去调试时间特别适合初学者理解天线辐射机理、验证场理论并开展进阶拓展研究。 做天线仿真的人基本都绕不开无穷小偶极子这个模型。不少朋友拿到“基于Matlab模拟无穷小偶极子天线的近场和远场”这类项目时第一反应可能是“这玩意儿也太简单了吧代码几行就写完了”。但真把近场、远场的场分布、方向图、衰减规律完整可视化出来并且弄明白每一项背后的物理含义反而不是那么容易的事——我自己第一次做完这个仿真后才发现以前对近场区的理解有很多模糊的地方。这个仿真的本质是把一个理论上的“电流元”也叫赫兹偶极子在空间中产生的电磁场用Matlab数值计算出来然后分区域观察电场和磁场的分布特征。它能帮你直观回答几个关键问题近场区域场强怎么衰减远场方向图为什么是那个“甜甜圈”形状场的哪些分量在哪个区域占主导项目非常适合电磁场与微波技术、天线理论课程的学习者以及刚入门天线仿真、想验证教材公式的工程师。本文我会把建模思路、参数选择、完整代码逻辑、结果解读和踩坑经验一次说清楚全部基于我自己实际跑通的过程。1. 为什么仿真对象是无穷小偶极子1.1 无穷小偶极子到底是什么先说概念。无穷小偶极子是一段长度远小于工作波长的直线电流元通常记作电流大小 (I)、长度 (dl)并且 ( dl \ll \lambda )。因为长度极短可以认为电流沿这段导线是均匀分布的整个结构等效为一个“点源”。理论分析中一般取 ( dl \lambda/50 ) 甚至更小来近似这个条件。一个形象的类比是把一根极短的天线想象成一个“电磁场的种子”。宏观上看它只是一个点但它周围产生的场分布却非常复杂——既有静电场那样的 ( 1/r^3 ) 分量又有感应场 ( 1/r^2 ) 分量还有真正的辐射场 ( 1/r ) 分量。这三种分量随距离衰减的速度完全不同正是近场和远场行为差异的根本来源。为什么所有天线教材都要先讲它因为任何线天线都可以分解成无数个无穷小偶极子的叠加。你把一根半波偶极子沿长度方向切成很多小段每一段近似的电流元各自产生一套场把所有场矢量叠加起来就得到了实际天线的场分布。所以理解了偶极子的场就拿到了理解所有线天线的钥匙。1.2 近场与远场为什么值得分开研究在实际工程里近场和远场的应用场景完全不同。近场区域距离天线几个波长以内的场以储能为主表现为电抗性。射频识别RFID、近场通信NFC、生物医学电磁探测等应用工作区域基本都在天线的近场范围内。远场区域则是电磁波真正“脱离天线”向外传播的区域通信、雷达、广播等绝大多数远距离应用都发生在这里。仿真近场和远场不是简单地把公式输进去画个图而是要在同一套解析解中分辨出不同距离下主导项的切换过程并理解这种切换对天线设计的影响。比如天线输入阻抗中的电抗部分就来自近场储能而辐射电阻对应的是远场的实功率辐射。一个完整的仿真不仅展示“场长什么样”还解释了“为什么长这样”。1.3 项目本身的定位和适用人群这套Matlab仿真项目核心输出是电场的 ( E_r )、( E_\theta ) 分量和磁场的 ( H_\phi ) 分量在一段距离范围内的分布图、归一化方向图、以及衰减曲线。代码量不大但信息密度很高。适合的人群主要有三类第一类是正在学电磁场与天线理论的学生用来验证教材公式建立场分布的直观图像第二类是刚接触天线仿真的工程师先用这个最简单的模型跑通Matlab数值计算和可视化流程再过渡到HFSS、CST这类全波仿真软件第三类是想快速做演示或教学课件的人偶极子模型的代码简单、运行快非常适合做课堂演示。2. 场区划分与建模思路2.1 场区划分的定量判据近场和远场的边界并没有一个绝对的“一刀切”分界线通常用波数 ( k 2\pi/\lambda ) 和观察距离 ( r ) 的乘积 ( kr ) 来定义三个区域。近场区电抗近场区( kr \ll 1 )也就是 ( r \ll \lambda/2\pi )。这个区域内 ( 1/r^3 ) 和 ( 1/r^2 ) 项占绝对主导场表现为储能性质电场和磁场之间的相位差接近90度坡印廷矢量的实部辐射功率流很小。中间区菲涅尔区或辐射近场区( kr ) 在1附近( r ) 约为 ( \lambda/2\pi ) 到几个波长。三种场分量大小相当过渡特征明显。远场区夫琅禾费区( kr \gg 1 )通常取 ( r 2D^2/\lambda )D是天线的最大口径尺寸对于电小尺寸的偶极子来说更实用的判据是 ( r \lambda/2\pi ) 的若干倍工程上常直接取 ( r \lambda ) 或 ( r 10\lambda ) 来保证远场条件充分成立。在Matlab里做仿真时我建议把距离轴设置成对数坐标从 ( 0.01\lambda ) 覆盖到 ( 100\lambda )这样三个区域可以在同一张图上完整呈现衰减规律的切换非常明显。2.2 仿真参数的选取逻辑仿真频率我推荐选1 GHz。原因很直接波长是0.3米数值上很好算观察范围也容易设置而且这个频段和很多实际通信天线的频段比较接近结果有参考价值。偶极子的电流矩 ( Idl ) 可以归一化为1因为对于线性系统来说场的幅度与电流成正比归一化不影响分布形态。真正需要量纲统一的只有距离和波长的比值 ( r/\lambda )以及归一化电场幅值。Matlab里用国际单位制米、安培、伏特每米计算最后绘制时再做归一化处理这样代码最清晰。2.3 网格设置和计算区域规划计算区域建议用球坐标系 ( (r, \theta, \phi) ) 离散化。由于偶极子沿z轴放置场具有关于z轴的旋转对称性所以不需要遍历 ( \phi )固定 ( \phi 0 ) 即可这能省掉一维网格大幅减少计算量。我通常这样设置网格径向距离 ( r )从 ( 0.01\lambda ) 到 ( 100\lambda )在对数轴上均匀取200到500个点。注意不能从0开始因为偶极子中心 ( r0 ) 处场趋于无穷是奇点。极角 ( \theta )从0到 ( \pi )均匀取181个点每1度一个点这样方向图足够平滑。方位角 ( \phi )固定为0。Matlab里用meshgrid生成球形网格配合矢量化的复数运算不需要写一层层循环。我实测在普通笔记本上500×181的网格计算时间不到0.1秒完全不需要优化性能。2.4 代码整体框架整个项目按模块来组织参数定义区频率、波长、电流、偶极子长度、距离范围、角度范围。解析计算区根据球坐标公式计算 ( E_r )、( E_\theta )、( H_\phi ) 的复数幅值。区域划分区根据 ( kr ) 值标记近场区、中间区、远场区的数据索引。可视化区分别绘制场幅值随距离衰减曲线、二维场分布图、归一化方向图。这样的结构方便修改参数后重新运行也方便把某个模块摘出来做深入分析。3. 核心公式与Matlab代码实现3.1 偶极子场的解析表达式长度 ( dl ) 的无穷小偶极子沿z轴放置电流为 ( I )在自由空间中的电磁场是球对称但随角度变化的完整的解析式如下电场径向分量[ E_r \frac{I dl \cos\theta}{2\pi\epsilon_0} \left( \frac{1}{r^3} \frac{jk}{r^2} \right) e^{-jkr} ]电场切向分量[ E_\theta \frac{I dl \sin\theta}{4\pi\epsilon_0} \left( \frac{1}{r^3} \frac{jk}{r^2} - \frac{k^2}{r} \right) e^{-jkr} ]磁场方位角分量[ H_\phi \frac{I dl \sin\theta}{4\pi} \left( \frac{jk}{r^2} \frac{k^2}{r} \right) e^{-jkr} ]细看这三个式子每个括号里都有多项分别对应不同的场区特性( 1/r^3 ) 项静电场项只存在于电场中。它源于电荷的库仑场在近场区主导。( 1/r^2 ) 项感应场项电场和磁场都有。它是变化的电流磁场感应出的电场或变化的电场感应出的磁场在感应近场区主导。( 1/r ) 项辐射场项只有在保留 ( e^{-jkr} ) 传播因子后才有能量向外传递远场区只看这一项。注意 ( E_r ) 中没有 ( 1/r ) 项这是关键特征远场区径向电场分量衰减极快电磁波近似为TEM波。这一点在结果图里会非常明显。3.2 计算用Matlab代码下面给出核心计算代码我减去了一些参数定义部分保留最重要的实现逻辑% 参数定义 freq 1e9; % 频率 1 GHz c0 3e8; lambda c0 / freq; % 波长 0.3 m k 2*pi / lambda; % 波数 I0 1; % 电流幅度 1 A dl lambda / 50; % 偶极子长度 eta 120*pi; % 自由空间波阻抗约 377 欧姆 % 网格生成phi 固定为 0 r logspace(-2, 2, 400) * lambda; % 0.01 lambda 到 100 lambda theta linspace(0, pi, 181); [R, THETA] meshgrid(r, theta); % 计算场分量复数形式 kr k * R; ejkr exp(-1j * kr); Er I0*dl*cos(THETA)/(2*pi) * eta .* (1./R.^3 1j*k./R.^2) .* ejkr; Etheta I0*dl*sin(THETA)/(4*pi) * eta .* (1./R.^3 1j*k./R.^2 - k^2./R) .* ejkr; Hphi I0*dl*sin(THETA)/(4*pi) .* (1j*k./R.^2 k^2./R) .* ejkr; % 计算幅值 Er_abs abs(Er); Etheta_abs abs(Etheta); Hphi_abs abs(Hphi);这里要注意Etheta计算中三项都在复平面上相加它们的相位不同不能直接把幅度相加。Matlab的复数运算会自动处理相位abs得到的才是真实的场幅值。代码里我用1j表示虚数单位这是Matlab的推荐写法避免与循环变量i混淆。3.3 近场和远场的方向图绘制方向图通常画在归一化坐标下以最大值归一化后用dB表示。远场方向图的解析结果很简单( E_\theta \propto \sin\theta )所以远场方向图就是甜甜圈形状z轴方向为零辐射赤道面( \theta 90^\circ )辐射最强。近场方向图则要复杂一些。看 ( E_r ) 的表达式它随 ( \cos\theta ) 变化而近场区 ( E_\theta ) 中 ( 1/r^3 ) 项主导时也随 ( \sin\theta ) 变化。但是因为Er和Etheta同时存在合成场的“方向图”是两者的矢量叠加。严格来说近场方向图没有远场方向图那种标准定义因为不同距离处方向图形状是变化的。画图时可以固定某个半径如 ( r 0.05\lambda ) 和 ( r 10\lambda )对比近场和远场的归一化场强。绘制时我用polarplot来画极坐标方向图用surf或pcolor画二维分布% 固定角度方向图theta方向在 phi0 平面 figure; polarplot(theta, Er_abs(:, 1)/max(Er_abs(:, 1)), r); hold on; polarplot(theta, Etheta_abs(:, 1)/max(Etheta_abs(:, 1)), b); legend({|E_r| 归一化, |E_\theta| 归一化}); title(近场区 r0.01\lambda 处方向图);图中(:, 1)表示取第一列也就是最近距离处的数据。类似的把列索引改成最后一列就能看到远场的方向图。3.4 彩色云图的绘制为了直观展示场在空间中的分布我常用pcolor或者imagesc来画以log10(r/lambda)为横轴、theta为纵轴的场强云图颜色表示归一化场强dB。注意用pcolor时默认没有填色块之间的缝隙要加shading interp过渡图面更平滑。figure; imagesc(log10(r/lambda), theta*180/pi, 20*log10(Er_abs/max(Er_abs(:))eps)); axis xy; xlabel(log_{10}(r/\lambda)); ylabel(\theta (度)); title(E_r 归一化幅值分布 (dB)); colorbar;eps加在分母里是为了防止log10(0)出现负无穷这对存在零点比如 ( \theta90^\circ ) 时 ( E_r0 )的方向来说非常关键。不加eps的话云图上会出现一片白色空洞看起来像计算错误实际上只是对数刻度的问题。4. 仿真结果的物理解读4.1 场幅值随距离的衰减规律跑完仿真后第一件值得做的事是固定 ( \theta 90^\circ )赤道面画一条场幅值随距离的变化曲线。这条曲线能直接看到三种衰减规律如何切换。在双对数坐标下衰减表现为直线斜率就是衰减指数近场区( r 0.1\lambda ) 时( E_\theta ) 的曲线斜率接近 -3说明 ( 1/r^3 ) 项主导。过渡区( r ) 大约在 ( 0.1\lambda ) 到 ( \lambda ) 之间曲线斜率从 -3 逐步过渡到 -2再过渡到 -1。远场区( r \lambda ) 后斜率稳定在 -1辐射场 ( 1/r ) 项完全主导。这个图非常直观地说明了为什么在工程测量中要把待测天线放到远场区在近场区场幅值随距离变化太快微小的距离误差就会导致巨大的场强测量偏差。远场区衰减缓慢测量容错率高。4.2 为什么近场和远场方向图不一样从方向图对比来看近场区 ( E_r ) 分量在 ( \theta90^\circ ) 方向为零最大值出现在轴向( \theta0^\circ ) 和 ( 180^\circ )而 ( E_\theta ) 分量则相反最大值在赤道面。合成场的总体方向图偏向于轴向和赤道面的组合形态。远场区 ( E_r ) 衰减到可以忽略只剩下 ( E_\theta )方向图变成标准的 ( \sin\theta ) 形态。这解释了为什么天线的辐射方向图通常只讨论远场只有那里的方向图才真正代表天线的“辐射能力”。近场方向图包含大量储能场信息容易造成误导。我在仿真中发现一个很有价值的细节把近场方向图比如 ( r0.05\lambda ) 处和远场方向图叠加在一起看会发现近场方向图在轴向方向有明显的“凸起”——那是 ( E_r ) 分量造成的。这不是多出来的辐射瓣而是静电场效应。理解这一点对实际测量天线有直接帮助。4.3 近场储能与远场辐射的波阻抗视角电场和磁场的比值就是波阻抗这是另一个观察场区切换的好指标。在远场区( E_\theta / H_\phi \eta \approx 377\Omega )自由空间波阻抗比值是实数说明电场和磁场同相能量向外传播。近场区则完全不同。在 ( \theta 90^\circ ) 平面电场以 ( 1/r^3 ) 项为主磁场以 ( 1/r^2 ) 项为主两者的比值随距离变化距离越小波阻抗的虚部越大说明电场和磁场之间的相位差接近90度能量在天线附近“振荡”并没有真正辐射出去。这正是近场区被称为“电抗近场区”的原因。这个阻抗视角在工程上非常实用。设计近场耦合类设备比如无线充电线圈的耦合天线时人们关心的恰恰是近场储能而不是远场辐射设计通信天线时则要尽量减小近场储能提高辐射效率。仿真代码中如果把Etheta ./ Hphi画出来就能清楚看到阻抗从近场的虚数大阻抗过渡到远场实数377欧姆的过程。4.4 合成场在不同区域的主分量把Er和Etheta的幅值放在同一张图上对比还能发现一个有趣的规律在近场区两个分量都可能很大但Er在轴向上占绝对主导Etheta在赤道面上占主导在远场区Er快速衰落到可以忽略任意角度下Etheta都是主导分量。这说明了一个重要的工程经验近场测量中探针的极化方式选择很讲究。如果被测天线的近场中既有径向分量又有切向分量用单极化探针测出来的数值可能远低于实际场强必须根据测量方向选择合适极化的探头。5. 实操中的坑与排查技巧5.1 常见问题速查表我把在仿真过程中实际遇到过的几个典型问题整理成表格供你对照排查问题现象原因解决办法NaN出现在计算值中距离向量从0开始r0处场无穷大距离从0.01*lamba等小值开始方向图出现突变锋复数场直接用abs计算但没有归一化先归一化到最大值再画图对数云图出现大片黑色log10(0)导致负无穷加eps偏移或只画 -N dB的动态范围远场方向图有多余波纹网格间距太大尤其是角度方向增加theta的点数建议181或361仿真速度很慢用嵌套for循环遍历全部网格改用meshgrid配合向量化运算近场和远场界线看不清距离轴线性刻度导致近场被压缩改用logspace生成对数距离轴5.2 结果正确性的验证方法仿真做出来是一回事结果对不对是另一回事。我强烈建议你在跑完自己的仿真后用几种办法交叉验证第一个方法是和解析远场公式对比。远场方向图的半功率波束宽度理论值为90度从仿真方向图中读取半功率点角差应该非常接近90度同时远场区任意两个距离处的方向图应该完全重合归一化后如果不重合说明距离还不够远或者网格分辨率不足。第二个方法是用坡印廷矢量验证辐射功率。远场区的平均功率流密度 ( S |E_\theta|^2 / (2\eta) )在半径为r的球面上积分得到的辐射功率应该与理论值 ( P_{rad} \frac{\eta k^2 |I dl|^2}{12\pi} ) 一致。我测试时积分误差通常在1%以内——考虑到球的网格离散化带来的体积误差这个精度已经很好。如果误差超过5%多半是角度采样太稀疏了。第三个方法更简单把距离固定为 ( 10\lambda ) 处的Etheta方向图数据和sin(theta)函数画在一起两者应该完全重叠。这一步只需要一行代码却能给你极大的信心。5.3 几个值得收藏的可视化技巧关于Matlab绘图我踩过一些坑也有几个非常好用的习惯颜色映射一定要选好。场强分布图用parula或turbo色图比默认的jet更舒服尤其是jet的黄色亮带会造成视觉上的“伪边缘”。我一般用colormap(turbo)。动态范围控制很重要。一幅云图里如果直接画从0到最大值的对数场强往往动态范围太大近场亮瞎眼、远场黑漆漆。建议把色标范围控制在[max-40, max]dB即只显示比最大值低40dB以上的区域这样远场细节也能看清楚。坐标轴标注要带单位。电场单位用V/m磁场用A/m距离用\lambda的倍数标注而不是直接标米——因为偶极子仿真归一化后与频率无关换成任意频率只改变绝对数值不改变分布规律标注成r/\lambda让结果有普适性。5.4 从偶极子到更复杂天线的扩展思路做完这个项目后一个非常自然的扩展方向是把多个无穷小偶极子组合起来模拟实际天线的远场。比如半波偶极子把长度 ( \lambda/2 ) 的导线切分成N段每段近似为一个小偶极子电流幅度沿导线呈正弦分布。把所有小偶极子的远场辐射叠加就能得到半波偶极子的方向图。实现起来并不复杂每个小偶极子的位置、电流幅度和相位不同在远场观察点叠加时需要考虑路程差带来的相位差 ( e^{jk \Delta r} )。这个过程其实就是矩量法MoM的雏形是数值电磁学的入门第一课。再比如二元阵列把两个偶极子相距 ( \lambda/2 ) 排布等幅同相馈电观察阵列方向图的主瓣和零陷。这时候引入阵因子概念就自然过渡到天线阵列理论了。从一个小偶极子到阵列代码量增加不多但理解深度会跳跃一个台阶。我的建议是先把单偶极子的近场远场彻底吃透再动手扩展每一步都留好截图和笔记。就我个人感受来说这个项目虽然基础却是少数几个能把“解析公式”和“物理图像”完整对应起来的仿真。做完之后再看教材上的场公式不再是一堆符号而是能想象出空间里真实存在的场分布——这种“图像感”对天线设计工作非常重要。如果你能亲手把代码从头到尾敲一遍再改几个参数观察结果变化收获会比只跑一遍压缩包里的现成代码大得多。本文还有配套的精品资源点击获取