利用 Matlab 在 CST 中自动构建龙伯(Luneburg)透镜
龙伯透镜简介
龙伯透镜是一种折射率不均匀的介质透镜。
这种透镜的介质折射率分布具有球对称性,即折射率仅与到球心的距离有关。它的工作原理是龙伯光学理论,由于早期低损耗低介电常数材料工艺不成熟,直到上世纪 70 年代末才应用于工程。
龙伯透镜的工作原理如下图所示。其中点 F 为馈电点,亦是透镜面上的焦点。要使透镜辐射口面具有高效率,必须使 AB 上为等相位面波前。
因此,从 F 点发出的每一射线 FNPQ 必须具有等电长度。或者反过来说,平行波束的射线经过介质折射后都聚焦于同一点 F,这就是龙伯透镜内介质折射率确定的依据(费马定律)。
对于一个半径为 RRR 的龙伯透镜,透镜内部的折射率 n(r)n(r)n(r) 为径向尺寸 rrr 的函数,它在 rrr 处的介电常数可表示为
ϵ(r)=n(r)2=2−(rR)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\lambda1.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:Nmaterial = ['Material_', num2str(i)];CST.addNormalMaterial(material, epsilon_r(i+1), mu, c_map(i,:)); % 添加材料
end
创建透镜中的离散介质层
%% 创建透镜中的离散介质层
z = [-0.25, 0.25].*lambda; % 圆柱形龙伯透镜高度为二分之一波长
for i = 1:Nname = 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.
利用 Matlab 在 CST 中自动构建龙伯(Luneburg)透镜相关推荐
- matlab 龙格现象,利用MATLAB分析数值积分中的龙格(Runge)现象(1)
实验目的: 观察Lagrange插值及数值积分中的龙格(Runge)现象.了解数值不稳定现象. 实验题目:(1)对于函数f(x)=1/(1+x^2),-4<=x<=4进行Lagrange插 ...
- 利用matlab从TXT中读数据1
TXT是纯文本文件,常用的几种函数有load函数,importdata函数,dlmread函数,textread函数. 科学计数法如1.03乘10的8次方,可简写为"1.03e+08&quo ...
- TeamCity+Gradle实现自动构建App安装包和补丁包
相信大家在用AS打包的时候,最烦的就是打包要很久,如果可以自动化打包岂不是很方便,所以我之前也是被安排做了这个任务.利用TeamCity+Gradle去实现自动构建App安装包和补丁包,这里做个记录. ...
- 【完整示例】采用jenkins pipeline实现自动构建并部署至k8s
前言 在日常开发中,经常会有发布的需求,而且经常会碰到各种环境,比如:开发环境.测试环境.生产环境.虽然可以使用手动构建.上传服务器部署的方式,但在微服务架构下一个项目经常包含多个微服务的部署,如果用 ...
- 简述网络调研的作用_利用龙伯球透镜天线提升高铁4G网络覆盖
透镜天线,一种能够通过电磁波,将点源或线源的球面波或柱面波转换为平面波从而获得笔形.扇形或其他形状波束的天线.通过合适设计透镜表面形状和折射率 n,调节电磁波的相速以获得辐射口径上的平面波前.透镜天线 ...
- 用Matlab求解高等数学中的问题(不定积分,定积分,多元微积分,微分方程,级数问题)
用Matlab求解高等数学中的问题 一.求解不定积分 利用matlab符号工具箱中的求积函数int, 可求函数的不定积分,int函数的调用格式如下: int(S) int(S,v) 说明: (1)in ...
- 利用matlab实现POD分解(在一维信号或二维流场矢量中的应用)
利用matlab实现POD分解(在一维信号或二维流场矢量中的应用) 0 前言 0.1 matlab中特征值计算 0.2 matlab中SVD分解计算 0.3 信号的正交性 1 一维信号POD分解 1. ...
- gitlab 自动推送代码到gitee_Gitlab 利用 Webhook+jenkins 实现自动构建与部署
之前部署了Gitlab的代码托管平台和Jenkins的代码发布平台.通常是开发后的代码先推到Gitlab上管理,然后在Jenkins里通过脚本构建代码发布. 这种方式每次在发版的时候,需要人工去执行j ...
- matlab sheet名字,MATLAB得到excel多个非默认sheet名_怎样利用matlab去读取一个excel表中多个sheet的数据并导入一个sheet中?...
如何用matlab读取一个excel表格中的若干个工作表 如果数字: xlsread('e:/shiyanshuju/shiyanbiaoge','sheet1','B1:D1440') 最好个表格放 ...
最新文章
- 医院电脑瘫痪 病人排长队苦等5小时
- JFET直耦级联放大电路:MPF102,2SK102
- 私有云相对更流行的公有云和混合云有什么优势?
- 深入理解BN、合并conv+BN公式推导
- 解析Visual C# 7.2中的private protected访问修饰符
- linux常用网络命令详解,linux网络命令详解(鸟哥)
- java怎么编程方程_[编程入门]自定义函数求一元二次方程-题解(Java代码)
- 突然!OPPO再放大招:瀑布屏了解一下
- 转!!存储过程和触发器
- 现代操作系统读书笔记
- Word小技巧总结(持续更新中……)
- HDFS Rack Awareness详解
- (一)关于爬虫之请求
- vb.net 换行符的转换
- 在HTML页面里调用PHP的方法
- Introduction to Programming I
- ajax判断远程服务器是否存在某文件
- 商品交易系统产品介绍
- 关于题目15820831的答案问题
- Python网络爬虫与信息提取(15)—— 新浪网新闻爬虫并分类整理