微带线特性阻抗快速计算---根据介质板参数和特性阻抗得到线宽(Matlab代码)

微带线特性阻抗快速计算---根据介质板参数和特性阻抗得到线宽(Matlab代码)

参考:https://blog.csdn.net/weixin_45811090/article/details/130045689

《射频电路理论与设计》第2版 黄玉兰著

《射频电路设计------理论与应用》第二版 Reinhold Ludwig Gene Bogdanov

然有这个需求,需要从微带线的特性阻抗得到线宽,网上只有公式,没有现存的计算代码,所以来搞一下。

1、根据介质板参数和特性阻抗得到线宽的计算理论

微带线的结构:

需要分情况考虑 ,首先,当 W h ≤ 2 \frac{W}{h}\leq2 hW≤2时的W/h的计算公式为( ε r \varepsilon_{r} εr为基板的相对介电常数):

W h = 8 e A e 2 A − 2 \frac{W}{h}=\frac{8e^{A}}{e^{2A}-2} hW=e2A−28eA

其中:
A = Z 0 60 ε r + 1 2 + ε r − 1 ε r + 1 ( 0.23 + 0.11 ε r ) A=\frac{Z_{0}}{60}\sqrt{\frac{\varepsilon_{r}+1}{2}}+\frac{\varepsilon_{r}-1}{\varepsilon_{r}+1}(0.23+\frac{0.11}{\varepsilon_{r}}) A=60Z02εr+1 +εr+1εr−1(0.23+εr0.11)

当 W h ≥ 2 \frac{W}{h}\geq2 hW≥2时的W/h的计算公式为:
W h = 2 π { B − 1 − ln ⁡ ( 2 B − 1 ) + ε r − 1 2 ε r [ ln ⁡ ( B − 1 ) + 0.39 − 0.61 ε r ] } \frac{W}{h}=\frac{2}{\pi}\{B-1-\ln(2B-1)+\frac{\varepsilon_{r}-1}{2\varepsilon_{r}}[\ln(B-1)+0.39-\frac{0.61}{\varepsilon_{r}}]\} hW=π2{B−1−ln(2B−1)+2εrεr−1[ln(B−1)+0.39−εr0.61]}

其中:
B = 377 π 2 Z 0 ε r B=\frac{377\pi}{2Z_{0}\sqrt{\varepsilon_{r}}} B=2Z0εr 377π

我们需要求解的是W,我们预先不知道 W h \frac{W}{h} hW的值究竟在哪个范围 ,但是没关系,我们把已知量分别带入,可以计算得出 W h \frac{W}{h} hW的值,然后判断这个值是否处于这个范围即可。

2、Matlab计算函数

matlab 复制代码
function [w] = microstrip_calW(Z0, epsilon, H)
% MICROSTRIP_CALW 计算微带线的宽度
%   w = MICROSTRIP_CALW(Z0, epsilon, H) 计算具有给定特性阻抗 (Z0)、
%   介电常数 (epsilon) 和基板高度 (H) 的微带线的宽度 (w)。
%
%   该函数使用基于给定参数的微带线宽度计算的封闭形式方程。
%   如果计算得到的宽度在一定范围内,则返回宽度;否则,显示错误消息。
%
%   输入参数:
%       Z0: 微带线的特性阻抗。
%       epsilon: 基板材料的介电常数。
%       H: 基板高度(厚度)。
%
%   输出:
%       w: 微带线的宽度。
    A=Z0/60*sqrt((epsilon+1)/2)+(epsilon-1)/(epsilon+1)*(0.23+0.11/epsilon);
    w_h=8*exp(A)/(exp(2*A)-2);
    if(w_h<=2)
        w=w_h*H;
        return
    end
    B=377*pi/(2*Z0*sqrt(epsilon));
    w_h=2/pi*(B-1-log(2*B-1)+(epsilon-1)/(2*epsilon)*(log(B-1)+0.39-0.61/epsilon));
    if(w_h>=2)
        w=w_h*H;
        return
    else
        disp('error')
    end
end

3、Matlab计算函数的测试(与ADS的LineCal对比)

使用下面的测试案例:

matlab 复制代码
clear all
clc

epsilon=12.9;% 介质板的介电常数
H=100e-6;% 介质板的高度,单位m
Z0=50;
disp(['相对节点常数:',num2str(epsilon),'  介质板高度:',num2str(H*1e6),'um  Z0:',num2str(Z0),'  微带线宽度',num2str(1e6*microstrip_calW(Z0,epsilon,H)),'um'])

epsilon=12.9;% 介质板的介电常数
H=100e-6;% 介质板的高度,单位m
Z0=10;
disp(['相对节点常数:',num2str(epsilon),'  介质板高度:',num2str(H*1e6),'um  Z0:',num2str(Z0),'  微带线宽度',num2str(1e6*microstrip_calW(Z0,epsilon,H)),'um'])

epsilon=12.9;% 介质板的介电常数
H=100e-6;% 介质板的高度,单位m
Z0=100;
disp(['相对节点常数:',num2str(epsilon),'  介质板高度:',num2str(H*1e6),'um  Z0:',num2str(Z0),'  微带线宽度',num2str(1e6*microstrip_calW(Z0,epsilon,H)),'um'])

epsilon=4.6;% 介质板的介电常数
H=1.6e-3;% 介质板的高度,单位m
Z0=50;
disp(['相对节点常数:',num2str(epsilon),'  介质板高度:',num2str(H*1e6),'um  Z0:',num2str(Z0),'  微带线宽度',num2str(1e6*microstrip_calW(Z0,epsilon,H)),'um'])

得到的Matlab计算结果:

大家可以和微带线在线计算工具网站中的计算公式对比,结果几乎一致,注意的是上面的公式的考虑覆铜的厚度为0,因此计算时候需要手动写0.01um,近似于厚度为0了。

LineCal的计算结果如下:

相关推荐
小二·6 分钟前
Python Web 开发进阶实战:混沌工程初探 —— 主动注入故障,构建高韧性系统
开发语言·前端·python
Lkygo9 分钟前
LlamaIndex使用指南
linux·开发语言·python·llama
进阶小白猿9 分钟前
Java技术八股学习Day20
java·开发语言·学习
代码村新手30 分钟前
C++-类和对象(中)
java·开发语言·c++
葵花楹1 小时前
【JAVA课设】【游戏社交系统】
java·开发语言·游戏
赵谨言1 小时前
Python串口的三相交流电机控制系统研究
大数据·开发语言·经验分享·python
pythonpapaxia1 小时前
基于Matlab的车牌识别完整教程:从图像预处理到字符识别实战解析
图像处理·其他·计算机视觉·matlab
kaikaile19951 小时前
A星算法避开障碍物寻找最优路径(MATLAB实现)
数据结构·算法·matlab
民乐团扒谱机1 小时前
【微实验】数模美赛备赛:多目标优化求解实战(MATLAB实现,以流水车间调度为例)
开发语言·数学建模·matlab·甘特图·遗传算法·多目标优化·优化模型
努力的小陈^O^2 小时前
问题:Spring循环依赖问题排查与解决
java·开发语言·前端