当前位置: 首页 > news >正文

使用 PyAEDT 设计参数化对数周期偶极子天线 LPDA

 

HFSS 配备了许多工具,可帮助 RF 设计人员设计不同类型的组件、滤波器、匹配网络和天线。其中一个工具是 ACT 扩展。从 View>ACT 扩展。

 

在 ACT 扩展中,有一个与天线相关的部分。用户可以使用 ACT 向导设计许多天线。其中一根天线是对数周期偶极子天线 (LPDA)。但是,该工具不允许合成天线,因此用户仅限于给定的情况。

 

此外,HFSS 具有组件 Libraries。用户可以在其中找到更多组件的另一个位置。View>Component 库。此外,此库仅包含一种设计。

 

 

本博客讨论了如何创建一个脚本来为任何所需频段设计对数周期天线。该脚本以 PyAEDT 格式编写。HFSS 可以读取多种类型的脚本,例如 Python、IronPython 和 PyAEDT。PyAEDT 比 IronPython 具有更多的功能,并且提供了更多的函数。因此,重点是为此目的开发 PYAEDT 计划。

PADL 天线具有众所周知的公式。我们将使用这些公式来设计天线。设计人员可以运行 HFSS 并参数化天线以进一步优化。

对数周期天线的公式为:

 

L_max(最长偶极子)= c/(2*Fmin)

L-min(最短偶极子) = c/(2*Fmax)

其中 Fmin 和 Fmax 是目标频带的极限。

N (元素数) = int (max (log(L_min/L_max)/log(tau)))+1

其中 tau 代表逐渐减量,介于 0.8-0.95 之间。

sigma 是间距与波长 al Fmin 的比率

 

天线方向性是 tau 和 sigma 的函数。减小 sigma 将减小天线长度,但减小 tau 将减少天线长度和元件数量(间距不变)

 

编号: Log‑Periodic Dipole Array Calculator

 

吊杆的大小和间距与天线的阻抗有关。设计人员需要使用 HFSS 运行仿真,以组装一个结构,该结构可以在没有偶极子的情况下提供正确的阻抗。一些设计改变了两个动臂之间的间距,较宽的动臂位于最长的偶极子处,较窄的动臂位于最短的偶极子处。

构造 PyAEDT 代码:

首先,首先初始化代码:

 

from pyaedt import Hfss

import math

 

下次启动 HFSSL

hfss = Hfss(projectname="LPDA", designname="LPDA", solution_type="DrivenModal", new_desktop_session=True)

 

定义主要参数。在运行之前,需要在代码中定义这些参数,因为代码必须执行许多计算才能得出天线的尺寸:

 

f_min = 300e6 # Hz

f_max = 3e9   # Hz

c = 3e11       # mm/s

tau = 0.9

sigma = 0.05

r = 1         # mm

Zshift = 3   (Pitch between the two booms and the dimension of the boom's cross-section) # mm

Zgap = 1     (spacing between the two booms) # mm

 

现在我们开始计算偶极子和其他维度:

 

L_max = c / (2 * f_min)

L_min = c / (2 * f_max)

N = int(math.ceil(math.log(L_min / L_max) / math.log(tau))) + 1

 

x_pos = 0 # X-position start

 

# Create Dipoles

dipole_names = []

for n in range(N):

L_n = L_max * (tau ** n)

d_n = sigma * L_n

half_len = L_n / 2

 

name1 = f"Dipole{n}_1"

name2 = f"Dipole{n}_2"

 

hfss.modeler.primitives.create_cylinder(cs_axis="Y",

position=[x_pos, -half_len, 0],

radius=r,

height=L_n,

name=name1,

matname="copper")

 

hfss.modeler.primitives.create_cylinder(cs_axis="Y",

position=[x_pos, half_len, 0],

radius=r,

height=-L_n,

name=name2,

matname="copper")

 

dipole_names.extend([name1, name2])

x_pos += d_n

 

上述代码产生了一个对数周期天线,其中偶极子连接到一个吊杆上。我们把它们分成两部分,然后我们用 Zshift 移动它们:

 

split_names = hfss.modeler.split(dipole_names, plane="ZX")

 

moved_objects = [name for name in split_names if "_Split1" in name]

hfss.modeler.move(moved_objects, [0, Zshift, Zshift])

 

我们现在创建吊杆:

 

Startofthebar = -r - Zshift

Lengthofthebar = x_pos + 2 * (r + Zshift)

StartofGap = (Zshift - Zgap) / 2

 

box1 = hfss.modeler.primitives.create_box(

[Startofthebar, 0,  -(Zshift-Zgap)/2],

[Lengthofthebar, Zshift,  Zshift-Zgap],

name="Box1",

matname="vacuum"

)

hfss.modeler.change_material("Box1", "copper")

 

hfss.modeler.duplicate_along_line("Box1", [0, 0, Zshift], 2)

 

现在我们有了天线,我们需要添加一个端口:

 

Endofthebar = x_pos + (r + Zshift)

HZshift = Zshift / 2

HZgap = Zgap / 2

EndofGap = StartofGap + Zgap

 

rectangle = hfss.modeler.primitives.create_rectangle(

position=[Endofthebar, 0, StartofGap],

dimension_list=[Zshift, Zgap],

cs_axis="X",

name="Rectangle1",

matname="vacuum"

)

 

分配集总端口:

 

hfss.create_lumped_port_to_sheet(sheet_name="Rectangle1",

axisdir="Z",

impedance=50,

start_point=[Endofthebar, HZshift, StartofGap],

end_point=[Endofthebar, HZshift, EndofGap])

 

 

最后,我们可以关闭项目:

 

hfss.save_project()

hfss.release_desktop()

 

用户拥有专为所需带宽设计的天线。如果我们想对天线进行参数化以进一步优化它怎么办?我们希望优化偶极子长度,同时保持第一个和最后一个偶极子长度固定。因此,我们将创建偶极子的代码更改为以下内容:

# Create Dipoles

dipole_names = []

for n in range(N):

L_n = L_max * (tau ** n)

d_n = sigma * L_n

half_len = L_n / 2

 

name1 = f"Dipole{n}_1"

name2 = f"Dipole{n}_2"

name3= f"DipoleLength{n}"

hfss[‘name3’] = L_n

 

hfss.modeler.primitives.create_cylinder(cs_axis="Y",

position=[x_pos, -half_len, 0],

radius=r,

height=”name3”,

name=name1,

matname="copper")

 

hfss.modeler.primitives.create_cylinder(cs_axis="Y",

position=[x_pos, half_len, 0],

radius=r,

height=”-name3”,

name=name2,

matname="copper")

 

dipole_names.extend([name1, name2])

x_pos += d_n

 

 

具有参数化偶极子的最终模型如下所示。

 

 

http://www.lryc.cn/news/574489.html

相关文章:

  • 如何解决TCP传输的“粘包“问题
  • HTTP面试题——缓存技术
  • Qt面试题汇总
  • 记录一下小程序城市索引栏开发经历
  • ✨从零搭建 Ubuntu22.04 + Python3.11 + PyTorch2.5.1 GPU Docker 镜像并上传 Docker Hub
  • Rocky8使用gvm配置Go多版本管理的微服务开发环境
  • uni-app项目实战笔记24--uniapp实现图片保存到手机相册
  • spring01-简介
  • 618风控战升级,瑞数信息“动态安全+AI”利剑出鞘
  • window显示驱动开发—DirectX 图形基础结构 DDI
  • 【CS创世SD NAND征文】基于全志V3S与CS创世SD NAND的物联网智能路灯网关数据存储方案
  • taro小程序,tailwindcss的bg-x-x,背景颜色不生效,只有自定义的写法颜色才生效
  • C++修炼:异常
  • 解码成都芯谷金融中心文化科技产业园:文化+科技双轮驱动
  • Qt 中使用 gtest 做单元测试
  • 一文读懂微观测量:光学3D轮廓仪与共聚焦显微成像的结合应用
  • cherry-pick除了使用命令,有没有什么工具可以使用,或者更高效的方法
  • Linux 文件 I/O 与标准 I/O 缓冲机制详解
  • Java面试中被深挖过的线程问题
  • 对手机屏中断路和短路的单元进行切割或熔接,实现液晶线路激光修复原理
  • Luckysheet Excel xlsx 导入导出互相转换
  • 02-Linux内核源码编译
  • CentOS 7 编译安装Nginx 1.27.5完整指南及负载均衡配置
  • MinIO中视频转换为HLS协议并进行AES加密
  • Python Polars库详解:高性能数据处理的新标杆
  • pyqt多界面
  • LangChain网页自动化PlayWrightBrowserToolkit
  • gRPC 静态库链接到 DLL 的风险与潜在问题
  • 鸿蒙开发深入解析:Service Ability(后台任务)全面指南
  • 深度解析|智能汽车操作系统技术突破:从架构演进到产业重构