基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab)
基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab)
工程下载:
HFSS的微带线特性阻抗仿真工程文件(注意版本:HFSS2023R2):
https://download.csdn.net/download/weixin_44584198/88748285
基于FDTD的微带线特性阻抗仿真Matlab工程:
https://download.csdn.net/download/weixin_44584198/88748215
目录
- 基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab)
- 1、微带线特性阻抗仿真基础
- 2、使用HFSS确定微带线特性阻抗
- 2.1、创建基板
- 2.2、背面覆铜
- 2.3、信号线覆铜
- 2.4、设置空气盒子
- 2.5、设置波端口
- 2.6、设置分析
- 2.7、check和运行
- 3、使用FDTD确定微带线特性阻抗
- 3.1 基本思路
- 3.2 建模
- 3.3 网格剖分
- 3.4 结果
- 3.5 代码运行的tips
1、微带线特性阻抗仿真基础
微带线特性阻抗的仿真是电磁学里面一个比较基本的仿真了,很多学校都会把这个当成HFSS学习的作业来弄。当然,微带线阻抗的仿真和实际的测量是有一定差别的,在仿真时候我们可以用波端口或者使用CPML边界截断,而实际测量的话手段是非常有限的。感兴趣可以阅读:
利用矢网测试PCB走线的特性阻抗
第二章 微带线阻抗实验
这种基于四分之一阻抗线的实际测量方法只能大概测一下,因为不同频率下的特性阻抗实际都是不一致的,要不然SMA接口还分0-6Ghz、0-10GHz那么多类型干嘛。
当然,有些刚刚入门的小伙伴会问了,特性阻抗不是可以使用公式进行计算的嘛,确实是这样的,但是这种是基于大量近似的计算,其精度必然没有电磁学方法准确。那么我们来给出今天的一个简单的案例:
基板:Rogers5880(相对介电常数2.2,损耗角正切0.0009)
结构:背板覆铜,正面信号线(微带线)
参数:铜厚35um,微带线宽为1mm,板子高度为1mm
目标:计算1-10GHz的该微带线特性阻抗
事实上,使用上面的这些参数,我们已经可以使用市面上常见的特性阻抗计算工具对特性阻抗进行计算了,比如ADS自带的计算工具linecalc:
计算出来的结果也非常明确,该结构在1GHz的特性阻抗为92.7欧姆。之前也提到,微带线特性阻抗对于不同频率是变化的,在10GHz处,计算出来的特性阻抗为93.6欧姆。使用linecalc工具得到的结果如下表,其基本的趋势是频率越高特性阻抗越大:
频率 | 特性阻抗 |
---|---|
1GHz | 92.736200 |
2GHz | 92.741900 |
3GHz | 92.758900 |
4GHz | 92.796500 |
5GHz | 92.859500 |
6GHz | 92.950900 |
7GHz | 93.073200 |
8GHz | 93.228200 |
9GHz | 93.417100 |
10GHz | 93.640700 |
2、使用HFSS确定微带线特性阻抗
2.1、创建基板
首先创建基板,基板材料直接选5880就行,这个材料的相对介电常数2.2,损耗角正切0.0009,设置基板的高h=1,宽度一般为线宽的11倍左右,此处微带线线宽是1mm,因此板材的宽被设置为12mm,长度随意设置,美观就行,此处长设置为32mm:
2.2、背面覆铜
然后就是设置铜皮的位置了,此处我们底部是全部覆铜的,厚度为35um:
2.3、信号线覆铜
我们的顶部是信号线,也就是宽度为1mm的微带线:
2.4、设置空气盒子
下一步就是设置空气盒子了,一般要原理自己设置的结构的四分之一波长,根据上面的要求,我们要计算1-10GHz的该微带线特性阻抗,那么使用的最高频率所对应的波长为30mm,也就是空气盒子需要大于7.5mm,此处设置为8mm即可:
观察上面的图片,还有地方需要改一下,因为我们使用的是波端口,所以空气盒子要紧贴两个端口位置,改为:
2.5、设置波端口
下面需要设置波端口,波端口是一个面,其与微带线基板紧贴,但是要比基板结构高一点,比信号线铜皮宽一点(波端口要尽量大,因为要包含整个辐射面):
在此给出一种推荐的设置(高度为基板的6倍,宽度为微带线的6倍):
当然,还要选中刚刚创建的面,添加激励为Modal的Waveport(Modal:用于计算无源高频结构的S参数,如微带、波导和由源驱动的传输线,并用于计算入射平面波散射。S矩阵解将用波导模的入射功率和反射功率来表示。Terminal:用于计算单或多导体传输线端口的无源、高频结构的基于终端的S参数,这些S参数是由源驱动的。这种解决方案类型是基于终端的电压和电流描述):
此外,如果在之后的仿真中出现这样的信息,我们需要将其适当缩小,因为面太大了引入了其他的传播模式,这在此处的实验中是不恰当的:
2.6、设置分析
设置求解器和扫频范围:
2.7、check和运行
check一下,发现没有问题:
在结果中查看特性阻抗Z0,频率越高阻抗越低,好像和之前LineCalc算出来的相反有没有(算出来的大概范围是94-95欧姆的样子):
3、使用FDTD确定微带线特性阻抗
3.1 基本思路
FDTD没有HFSS的波端口可以直接用来确定特性阻抗Z0,此处使用S参数作为中间量求取特性阻抗。在终端完美匹配时,输入回波损耗S11和传输线特性阻抗具有如下关系:
Z 0 = Z t e r m 1 + S 11 1 − S 11 Z0 = {Z_{term}}\frac{{1 + {S_{11}}}}{{1 - {S_{11}}}} Z0=Zterm1−S111+S11
其中Z0是要求的微带线的阻抗, Z t e r m Z_{term} Zterm是端口1的阻抗。为达到终端完美匹配的条件,在实际仿真过程中将板材后半部分用CPML截断。
3.2 建模
实际上,电路板的三个边都被CPML截断,来实现无限大的电路板结构:
背面全部覆铜:
3.3 网格剖分
close all; clc;
addpath(genpath('K:\Project_WXP\20240115_FDTD\FDTD_Z0'))
% initialize the matlab workspace
%参数赋值,定义分辨率单位m
wxp_dx = 1.00e-4;
wxp_dy = 1.00e-4;
wxp_dz = 0.25e-4;%定义板材和微带大小参数,单位mm
wxp_cond_width = 1;
wxp_cond_T = 0.00;
wxp_cond_bottom_T = 0.00;
wxp_sub_width = 12;
wxp_sub_length = 11;
wxp_sub_height = 1;
wxp_sub_eps_r = 2.2;
wxp_sub_eps_i = 0.0009;
wxp_sample_position = 0.25;
fdtd_solve;
3.4 结果
在结果中查看特性阻抗Z0,频率越高阻抗越高,算出来的结果也和LineCalc中比较接近,很难说哪个比较准确:
3.5 代码运行的tips
主函数在FDTD_Z0\main里面的wxp_main.m
第一次运行修改addpath(genpath(‘K:\Project_WXP\20240115_FDTD\FDTD_Z0’))为实际电脑上的路径
相关文章:

基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab)
基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab) 工程下载: HFSS的微带线特性阻抗仿真工程文件(注意版本:HFSS2023R2): https://download.csdn.net/download/weixin_445…...

【SQL】SQL语法小结
相关资料 参考链接1:SQL 语法(超级详细) 参考链接2:史上超强最常用SQL语句大全 SQL练习网站:CSDN、牛客、LeetCode、LintCode SQL相关视频: 推荐书籍: 文章目录 数据分析对SQL的要求SQL语法简介…...

Open CASCADE学习|显示模型
目录 1、编写代码 Viewer.h Viewer.cpp ViewerInteractor.h ViewerInteractor.cpp helloworld.cpp 2、配置 3、编译运行 1、编写代码 Viewer.h #pragma once #ifdef _WIN32 #include <Windows.h> #endif // Local includes #include "ViewerInteract…...

【C++】string的基本使用
从这篇博客开始,我们的C部分就进入到了STL,STL的出现可以说是C发展历史上非常关键的一步,自此C和C语言有了较为明显的差别。那么什么是STL呢? 后来不断的演化,发展成了知名的两个版本,一个叫做P.J.版本&am…...

vue 里 props 类型为 Object 时设置 default: () => {} 返回的是 undefined 而不是 {}?
问题 今天遇到个小坑,就是 vue 里使用 props 传参类型为 Object 的时候设置 default: () > {} 报错,具体代码如下 <template><div class"pre-archive-info"><template v-if"infoData.kaimo ! null">{{ infoD…...

04 SpringMVC响应数据之页面跳转控制+返回JSON数据+返回静态资源
1. handler方法分析 /*** TODO: 一个controller的方法是控制层的一个处理器,我们称为handler* TODO: handler需要使用RequestMapping/GetMapping系列,声明路径,在HandlerMapping中注册,供DS查找!* TODO: handler作用总结:* 1.接收请求参数(param,json,pathVariable,共享…...

Python圣诞主题绘图:用turtle库打造冬日奇妙画面【第31篇—python:圣诞节】
文章目录 Python圣诞主题绘图导言代码结构概览详细解析drawlight函数tree函数xzs函数drawsnow函数五角星的绘制 完整代码代码解析总结 Python圣诞主题绘图 导言 圣诞季节是个充满欢乐和创意的时刻。在这个技术博客中,我们将深入探讨如何使用Python的turtle库创建一…...

[开发语言][c++]:Static关键字和全局变量
Static关键字和全局变量 1. 生命周期、作用域和初始化时机2. 全局变量3. Static 关键字3.1 面向过程3.1.1 静态全局变量3.1.2 静态局部变量(单例中会使用)3.1.3 静态函数 3.2 面向对象3.2.1 类内静态成员变量3.2.2 类内静态成员函数 Reference 写在前面&…...

计算机组成原理 第一弹
ps:本文章的图片来源都是来自于湖科大教书匠高老师的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1-2 计算机的发展_哔哩哔哩_bilibili 目录 🚀计算机系统 🚀计…...

Hadoop基础知识
Hadoop基础知识 1、Hadoop简介 广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。狭义上说,Hadoop指Apache这款开源框架,它的核心组件有: HDFS(分布式文件系统):解决海量数据存储Y…...
Java进阶之旅第五天
Java进阶之旅第五天 不可变集合 应用场景 1.如果某个数据不能被修改,把它拷贝到不可变集合中是个很好的实践2.当集合对象被不可信的库调用时,不可变形式是安全的3.不可变集合不能修改,只能进行查询 获取方式 在List,Set,Map接口中,都存在静态的of方法,可以获取一个不可变的…...

拓展边界:前端世界的跨域挑战
目录 什么是跨域 概念 同源策略及限制内容 常见跨域场景 如何解决跨域 CORS Nginx代理跨域 Node中间件代理跨域 WebSocket postMessage JSONP 其他 什么是跨域 概念 在此之前,我们了解一下一个域名地址的组成: 跨域指的是在网络安全中&…...

旅游项目day03
1. 前端整合后端发短信接口 2. 注册功能 后端提供注册接口,接受前端传入的参数,创建新的用户对象,保存到数据库。 接口设计: 实现步骤: 手机号码唯一性校验(后端一定要再次校验手机号唯一性)…...
单片机学习记录(一)
简答题 第1章 1.微处理器、微计算机、CPU、单片机、嵌入式处理器他们之间有何区别? 答:微处理器、CPU都是中央处理器的不同称谓,微处理器芯片本身不是计算机; 单片机、微计算机都是一个完整的计算机系统,单片机是集…...

MacBookPro怎么数据恢复? mac电脑数据恢复?
使用电脑的用户都知道,被删除的文件一般都会经过回收站,想要恢复它直接点击“还原”就可以恢复到原始位置。mac电脑同理也是这样,但是“回收站”在mac电脑显示为“废纸篓”。 如果电脑回收站,或者是废纸篓里面的数据被清空了&…...

Python多线程—threading模块
参考:《Python核心编程》 threading 模块的Thread 类是主要的执行对象,而且,使用Thread类可以有很多方法来创建线程,这里介绍以下两种方法: 创建 Thread 实例,传给它一个函数。派生 Thread 的子类…...
mysql limit
语法 SELECT * FROM TABLE_NAME LIMIT 起始位置,偏移量注: 起始位置从0开始 示例 查询的第1条数据到第100条数据 limit 0,100查询的第101条数据到第200条数据 limit 100,100注意不要用 limit 101,100示例2 limit 语句应放在order by语句后面执行 …...

解决国内Linux服务器无法使用Github的方法
解决思路:修改Host https://www.ipaddress.com/ 利用上面的网站查询github.com和raw.githubusercontent.com的DNS解析的IP地址 最后,修改服务器的/etc/hosts 添加如下两行: 140.82.112.3 github.com 185.199.108.133 raw.githubuserconte…...
动态规划基础(二)最长公共子序列 LCS
讲解求两个串中最长的公共的子序列长度或输出子序列等 poj1458 题目大意 给定两个字符串,要求输出两个字符串中最长公共子序列长度 思路 我们定义 a [ i ] [ j ] a[i][j] a[i][j]为,当字串 s t r 1 str1 str1到 i i i位置,字串 s t r 2 s…...

React配置src根目录@
文章目录 1.打开webpack配置文件2.配置webpack 1.打开webpack配置文件 yarn eject or npm run eject 如果报错了记得提前 git commit一下 2.配置webpack 找到 webpack.config.js 文件在 webpack.config.js 文件中找到 alias 配置在alias里添加: path.resolve(src) , 或者 : pa…...

Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...

Windows安装Miniconda
一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...

【Veristand】Veristand环境安装教程-Linux RT / Windows
首先声明,此教程是针对Simulink编译模型并导入Veristand中编写的,同时需要注意的是老用户编译可能用的是Veristand Model Framework,那个是历史版本,且NI不会再维护,新版本编译支持为VeriStand Model Generation Suppo…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用
前言:我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM(Java Virtual Machine)让"一次编写,到处运行"成为可能。这个软件层面的虚拟化让我着迷,但直到后来接触VMware和Doc…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里
写一个shell脚本,把局域网内,把能ping通的IP和不能ping通的IP分类,并保存到两个文本文件里 脚本1 #!/bin/bash #定义变量 ip10.1.1 #循环去ping主机的IP for ((i1;i<10;i)) doping -c1 $ip.$i &>/dev/null[ $? -eq 0 ] &&am…...