基于HFSS的微带线特性阻抗仿真-与基于FDTD的计算电磁学方法对比(Matlab)

本文主要是介绍基于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)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/615812

相关文章

使用python生成固定格式序号的方法详解

《使用python生成固定格式序号的方法详解》这篇文章主要为大家详细介绍了如何使用python生成固定格式序号,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以参考一下... 目录生成结果验证完整生成代码扩展说明1. 保存到文本文件2. 转换为jsON格式3. 处理特殊序号格式(如带圈数字)4

Java中流式并行操作parallelStream的原理和使用方法

《Java中流式并行操作parallelStream的原理和使用方法》本文详细介绍了Java中的并行流(parallelStream)的原理、正确使用方法以及在实际业务中的应用案例,并指出在使用并行流... 目录Java中流式并行操作parallelStream0. 问题的产生1. 什么是parallelS

MySQL数据库双机热备的配置方法详解

《MySQL数据库双机热备的配置方法详解》在企业级应用中,数据库的高可用性和数据的安全性是至关重要的,MySQL作为最流行的开源关系型数据库管理系统之一,提供了多种方式来实现高可用性,其中双机热备(M... 目录1. 环境准备1.1 安装mysql1.2 配置MySQL1.2.1 主服务器配置1.2.2 从

Python版本信息获取方法详解与实战

《Python版本信息获取方法详解与实战》在Python开发中,获取Python版本号是调试、兼容性检查和版本控制的重要基础操作,本文详细介绍了如何使用sys和platform模块获取Python的主... 目录1. python版本号获取基础2. 使用sys模块获取版本信息2.1 sys模块概述2.1.1

Python实现字典转字符串的五种方法

《Python实现字典转字符串的五种方法》本文介绍了在Python中如何将字典数据结构转换为字符串格式的多种方法,首先可以通过内置的str()函数进行简单转换;其次利用ison.dumps()函数能够... 目录1、使用json模块的dumps方法:2、使用str方法:3、使用循环和字符串拼接:4、使用字符

Python版本与package版本兼容性检查方法总结

《Python版本与package版本兼容性检查方法总结》:本文主要介绍Python版本与package版本兼容性检查方法的相关资料,文中提供四种检查方法,分别是pip查询、conda管理、PyP... 目录引言为什么会出现兼容性问题方法一:用 pip 官方命令查询可用版本方法二:conda 管理包环境方法

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

JavaScript对象转数组的三种方法实现

《JavaScript对象转数组的三种方法实现》本文介绍了在JavaScript中将对象转换为数组的三种实用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录方法1:使用Object.keys()和Array.map()方法2:使用Object.entr

SpringBoot中ResponseEntity的使用方法举例详解

《SpringBoot中ResponseEntity的使用方法举例详解》ResponseEntity是Spring的一个用于表示HTTP响应的全功能对象,它可以包含响应的状态码、头信息及响应体内容,下... 目录一、ResponseEntity概述基本特点:二、ResponseEntity的基本用法1. 创

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法