当前位置: 首页 > 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…...

从零封装一个MCP4728的C语言驱动库:支持STM32/HAL库,含EEPROM读写状态处理

构建高可靠MCP4728驱动库&#xff1a;STM32 HAL库实战与EEPROM状态管理 在嵌入式开发中&#xff0c;DAC&#xff08;数模转换器&#xff09;是连接数字世界与模拟世界的关键桥梁。MCP4728作为Microchip公司推出的4通道12位I2C接口DAC芯片&#xff0c;凭借其内置EEPROM存储和灵活…...

ZYNQ平台SGMII光口实战:从Vivado连线、设备树到静态IP设置的完整避坑指南

ZYNQ平台SGMII光口实战&#xff1a;从Vivado连线到静态IP部署的全流程解析 在嵌入式系统开发中&#xff0c;以太网通信的稳定实现往往是项目成功的关键。对于采用Xilinx ZYNQ系列FPGA的开发者而言&#xff0c;SGMII&#xff08;Serial Gigabit Media Independent Interface&…...

开源项目Markdown Viewer:如何打造完美的浏览器Markdown阅读体验

开源项目Markdown Viewer&#xff1a;如何打造完美的浏览器Markdown阅读体验 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 作为一款功能强大的开源项目&#xff0c;Markdown Vi…...

Zynq矿板DDR3内存配置与测试全攻略:从硬件探秘到软件调试

1. 项目概述与核心价值最近在折腾一块基于Xilinx Zynq-7000系列的“矿板”&#xff0c;说白了就是一些特定应用场景&#xff08;比如早期的加密货币计算&#xff09;淘汰下来的硬件。这些板子往往用料扎实&#xff0c;核心的FPGAARM架构完整&#xff0c;但价格却只有正规开发板…...

# 让工具自己声明并发安全:我把调度逻辑砍到一行

让工具自己声明并发安全&#xff1a;我把调度逻辑砍到一行 这是 《写完一个 AI 编程助手之后&#xff0c;我才确定 prompt 工程不是重点》 的第四篇。前几篇讲了进程模型和权限系统&#xff0c;这一篇讲并发调度。 代码&#xff1a;[https://github.com/sishenaichipingguo/cod…...

3分钟掌握Shutter Encoder:免费开源的终极视频转换工具解决方案

3分钟掌握Shutter Encoder&#xff1a;免费开源的终极视频转换工具解决方案 【免费下载链接】shutter-encoder A professional video compression tool accessible to all, mostly based on FFmpeg. 项目地址: https://gitcode.com/gh_mirrors/sh/shutter-encoder 还在为…...

rag 进行 全局聚合的结构性失败 解析

rag 进行 全局聚合的结构性失败 解析 目录 rag 进行 全局聚合的结构性失败 解析 一句话核心结论 逐句拆解原文含义 1. 前提:什么是"全局聚合"? 2. 致命问题:采样引入不可纠正的选择偏差 农情任务实例:直观感受结构性偏差 真实数据分布(12M农情CSV,共12000条上…...

Datasheet学习4(Audio)(TODO)

(TODO)...

手把手教你用Obsidian+Excalidraw画流程图,告别切换软件的麻烦

手把手教你用ObsidianExcalidraw画流程图&#xff0c;告别切换软件的麻烦 每次写技术文档时&#xff0c;最让我头疼的就是画流程图。原本思路清晰&#xff0c;一打开绘图软件就卡壳——要么是工具太复杂&#xff0c;要么是画完图还要导出再插入笔记&#xff0c;来回切换几次灵感…...

避坑指南:STM32 HAL库SPI读写W25Q64时,你可能遇到的时序问题和调试技巧

STM32 HAL库SPI驱动W25Q64实战&#xff1a;时序陷阱与波形诊断全解析 当你的SPI Flash突然开始"装聋作哑"&#xff0c;返回的不是预期数据而是清一色的0xFF或0x00时&#xff0c;这往往不是芯片的罢工抗议&#xff0c;而是时序对话中的"鸡同鸭讲"。本文将带…...