本文首次在公众号【零妖阁】上发表,为了方便阅读和分享,我们将在其他平台进行自动同步。由于不同平台的排版格式可能存在差异,为了避免影响阅读体验,建议如有排版问题,可前往公众号查看原文。感谢您的阅读和支持!
龙伯透镜简介
龙伯透镜是一种折射率不均匀的介质透镜。
这种透镜的介质折射率分布具有球对称性,即折射率仅与到球心的距离有关。它的工作原理是龙伯光学理论,由于早期低损耗低介电常数材料工艺不成熟,直到上世纪 70 年代末才应用于工程。
龙伯透镜的工作原理如下图所示。其中点 F 为馈电点,亦是透镜面上的焦点。要使透镜辐射口面具有高效率,必须使 AB 上为等相位面波前。
因此,从 F 点发出的每一射线 FNPQ 必须具有等电长度。或者反过来说,平行波束的射线经过介质折射后都聚焦于同一点 F,这就是龙伯透镜内介质折射率确定的依据(费马定律)。
对于一个半径为
R
R
R 的龙伯透镜,透镜内部的折射率
n
(
r
)
n(r)
n(r) 为径向尺寸
r
r
r 的函数,它在
r
r
r 处的介电常数可表示为
ϵ
(
r
)
=
n
(
r
)
2
=
2
−
(
r
R
)
2
\epsilon(r) = n(r)^2 = 2 - (\frac{r}{R})^2
ϵ(r)=n(r)2=2−(Rr)2
根据这个介电常数分布公式,下面我们在 2.4 GHz 下设计一个圆柱形龙伯透镜,假设透镜的半径为 1.5 λ 1.5\lambda 1.5λ,将透镜内部离散化为 30 层具有不同介电常数的介质,则介电常数的计算程序如下:
%% 龙伯透镜参数设置
c = 3e8; % 光速
freq = 2.4e9; % 工作频率
lambda = c/freq*1e3; % 波长 mm
R = 1.5*lambda; % 透镜半径 mm
N = 30; % 离散层数
r = 0:R/N:R; % 各层介质的半径分布
r1 = [0, r(2:end)-R/(2*N)]; % 各层介质的中心处的径向距离
epsilon_r = 2 - (r1/R).^2; % 各层介质的介电常数分布(对应介质中心处径向距离)
%%%% 绘图
theta = linspace(0, 2*pi, 50);
[theta_mat, r_mat] = meshgrid(theta, r);
[~, epsilon_r_mat] = meshgrid(theta, epsilon_r);
[x_mat, y_mat, z_mat] = pol2cart(theta_mat, r_mat, epsilon_r_mat); % 极坐标系转换为直角坐标系
surf(x_mat, y_mat, z_mat);
安装 CST-MATLAB API
CST-MATLAB API 可以很方便地实现 Matlab 与 CST 之间的交互。
点击 MATLAB 主页的附加功能,直接搜索 “CST”,找到 “hgiddenss/CST_App”,点击添加到 MATLAB,详细安装图解如下。
在 CST 中自动构建龙伯透镜
首先需要创建 CST 项目,注意,此时应确保 CST 软件为打开状态。
%% 创建CST项目
CST = CST_MicrowaveStudio(cd, 'LuneburgLens.cst'); % 在当前目录下创建 CST 项目
定义不同介电常数材料
%% 定义不同介电常数材料
mu = 1; % 磁导率
c_map = parula(length(epsilon_r)); % 材料颜色列表
for i = 1:N
material = ['Material_', num2str(i)];
CST.addNormalMaterial(material, epsilon_r(i+1), mu, c_map(i,:)); % 添加材料
end
创建透镜中的离散介质层
%% 创建透镜中的离散介质层
z = [-0.25, 0.25].*lambda; % 圆柱形龙伯透镜高度为二分之一波长
for i = 1:N
name = sprintf('cylinder_%d',i);
component = 'Component 1';
material = ['Material_', num2str(i)];
CST.addCylinder(r1(i+1), r1(i), 'z', 0, 0, z, name, component, material); % 添加圆柱体
end
设置仿真参数
%% 设置仿真参数
%%% 设置仿真频率
CST.setFreq(2,3)
%%% 添加两个线源,分别位于 (0,R) 和 (1/sqrt(2)R,1/sqrt(2)R)
CST.addDiscretePort([0, 0], [R, R], z, 0.1, 50);
CST.addDiscretePort([R, R]*cosd(45), [R, R]*cosd(45), z, 0.1, 50);
%%% 设置边界条件
CST.setBoundaryCondition('xmin','open add space','xmax','open add space','ymin',...
'open add space','ymax','open add space');
CST.setBoundaryCondition('Zmin', 'Electric', 'ZMax', 'Electric'); % 相当于透镜在z方向上无限延展
%%% 设置对称面,减小计算区域
CST.addSymmetryPlane('Z', 'electric');
%%% 设置计算区域
CST.setBackgroundLimits([lambda, lambda], [lambda, lambda], [0 0]);
%%% 添加场监视器
CST.addFieldMonitor('EField', freq/1e9);
CST.addFieldMonitor('farfield', freq/1e9);
%%% 选择时域求解器
CST.setSolver('td');
%%% 开启仿真
CST.runSimulation;
仿真结果
馈源 1 对应的近场分布:
馈源 1 对应的远场分布:
馈源 2 对应的近场分布:
馈源 2 对应的远场分布:
参考文献
[1] 刘璟. 多波束龙伯透镜天线技术研究[D].电子科技大学,2010.
[2] CST_App 的 Github 项目地址:https://github.com/hgiddenss/CST_App.