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

基于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工具得到的结果如下表,其基本的趋势是频率越高特性阻抗越大:

频率特性阻抗
1GHz92.736200
2GHz92.741900
3GHz92.758900
4GHz92.796500
5GHz92.859500
6GHz92.950900
7GHz93.073200
8GHz93.228200
9GHz93.417100
10GHz93.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的WaveportModal:用于计算无源高频结构的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=Zterm1S111+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的基本使用

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

vue 里 props 类型为 Object 时设置 default: () => {} 返回的是 undefined 而不是 {}?

问题 今天遇到个小坑&#xff0c;就是 vue 里使用 props 传参类型为 Object 的时候设置 default: () > {} 报错&#xff0c;具体代码如下 <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圣诞主题绘图 导言 圣诞季节是个充满欢乐和创意的时刻。在这个技术博客中&#xff0c;我们将深入探讨如何使用Python的turtle库创建一…...

[开发语言][c++]:Static关键字和全局变量

Static关键字和全局变量 1. 生命周期、作用域和初始化时机2. 全局变量3. Static 关键字3.1 面向过程3.1.1 静态全局变量3.1.2 静态局部变量&#xff08;单例中会使用&#xff09;3.1.3 静态函数 3.2 面向对象3.2.1 类内静态成员变量3.2.2 类内静态成员函数 Reference 写在前面&…...

计算机组成原理 第一弹

ps&#xff1a;本文章的图片来源都是来自于湖科大教书匠高老师的视频&#xff0c;声明&#xff1a;仅供自己复习&#xff0c;里面加上了自己的理解 这里附上视频链接地址&#xff1a;1-2 计算机的发展_哔哩哔哩_bilibili ​​ 目录 &#x1f680;计算机系统 &#x1f680;计…...

Hadoop基础知识

Hadoop基础知识 1、Hadoop简介 广义上来说&#xff0c;Hadoop通常是指一个更广泛的概念——Hadoop生态圈。狭义上说&#xff0c;Hadoop指Apache这款开源框架&#xff0c;它的核心组件有&#xff1a; HDFS&#xff08;分布式文件系统&#xff09;&#xff1a;解决海量数据存储Y…...

Java进阶之旅第五天

Java进阶之旅第五天 不可变集合 应用场景 1.如果某个数据不能被修改,把它拷贝到不可变集合中是个很好的实践2.当集合对象被不可信的库调用时,不可变形式是安全的3.不可变集合不能修改,只能进行查询 获取方式 在List,Set,Map接口中,都存在静态的of方法,可以获取一个不可变的…...

拓展边界:前端世界的跨域挑战

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

旅游项目day03

1. 前端整合后端发短信接口 2. 注册功能 后端提供注册接口&#xff0c;接受前端传入的参数&#xff0c;创建新的用户对象&#xff0c;保存到数据库。 接口设计&#xff1a; 实现步骤&#xff1a; 手机号码唯一性校验&#xff08;后端一定要再次校验手机号唯一性&#xff09…...

单片机学习记录(一)

简答题 第1章 1.微处理器、微计算机、CPU、单片机、嵌入式处理器他们之间有何区别&#xff1f; 答&#xff1a;微处理器、CPU都是中央处理器的不同称谓&#xff0c;微处理器芯片本身不是计算机&#xff1b; 单片机、微计算机都是一个完整的计算机系统&#xff0c;单片机是集…...

MacBookPro怎么数据恢复? mac电脑数据恢复?

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

Python多线程—threading模块

参考&#xff1a;《Python核心编程》 threading 模块的Thread 类是主要的执行对象&#xff0c;而且&#xff0c;使用Thread类可以有很多方法来创建线程&#xff0c;这里介绍以下两种方法&#xff1a; 创建 Thread 实例&#xff0c;传给它一个函数。派生 Thread 的子类&#xf…...

mysql limit

语法 SELECT * FROM TABLE_NAME LIMIT 起始位置&#xff0c;偏移量注&#xff1a; 起始位置从0开始 示例 查询的第1条数据到第100条数据 limit 0,100查询的第101条数据到第200条数据 limit 100,100注意不要用 limit 101,100示例2 limit 语句应放在order by语句后面执行 …...

解决国内Linux服务器无法使用Github的方法

解决思路&#xff1a;修改Host https://www.ipaddress.com/ 利用上面的网站查询github.com和raw.githubusercontent.com的DNS解析的IP地址 最后&#xff0c;修改服务器的/etc/hosts 添加如下两行&#xff1a; 140.82.112.3 github.com 185.199.108.133 raw.githubuserconte…...

动态规划基础(二)最长公共子序列 LCS

讲解求两个串中最长的公共的子序列长度或输出子序列等 poj1458 题目大意 给定两个字符串&#xff0c;要求输出两个字符串中最长公共子序列长度 思路 我们定义 a [ i ] [ j ] a[i][j] a[i][j]为&#xff0c;当字串 s t r 1 str1 str1到 i i i位置&#xff0c;字串 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…...

网络编程(Modbus进阶)

思维导图 Modbus RTU&#xff08;先学一点理论&#xff09; 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议&#xff0c;由 Modicon 公司&#xff08;现施耐德电气&#xff09;于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

应用升级/灾备测试时使用guarantee 闪回点迅速回退

1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间&#xff0c; 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点&#xff0c;不需要开启数据库闪回。…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

06 Deep learning神经网络编程基础 激活函数 --吴恩达

深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

QT: `long long` 类型转换为 `QString` 2025.6.5

在 Qt 中&#xff0c;将 long long 类型转换为 QString 可以通过以下两种常用方法实现&#xff1a; 方法 1&#xff1a;使用 QString::number() 直接调用 QString 的静态方法 number()&#xff0c;将数值转换为字符串&#xff1a; long long value 1234567890123456789LL; …...