我我一直有一种感觉,我们硬件工程师会遇到各种各样的问题或者现象,总会有一个很简单的解释,一句或者几句话。当我们看到更多这样的解释时,我们认为我们理解了它。别人再问起我们,我们就用这句话给别人解释。
比如寄生电感这个词经常出现,尤其是引线电感。我们在解释一些问题的时候,直接套用,它是默认存在的。其实,很长一段时间,我都没有我不明白它是怎么来的,因为在我的印象中,电感都是线圈,而直导线不是。我没有直到不久前,我才想起这件事。我得到了一些知识,写了下面这篇文章。
寄生电感是怎么来的?
最近一直在看电感和磁珠的内容,也在看LC滤波器。自然会有LC谐振的问题。LC串联谐振,如果单独拿出来,可能感觉太简单了。有什么可说的呢?自然在实际应用中会出现各种各样的场景,虽然都是共振的,但是表现都不一样。
让让我们首先考虑以下问题:
电路中不必要的LC串联谐振是否应该绝对消除?
MOS G极往往串联一个小电阻,可以抑制振荡。原理是什么?这个电阻的阻值怎么选择?
当电源中加入磁珠时,纹波会变大。是不是只能通过换0 电阻来解决?还有其他解决方法吗?
这些问题,如果你懂LC串联谐振的分析方法,自然就不在话下了。
LC串联谐振电路
虽然LC串联谐振电路很简单,但让让我们看一看。一步步会更好理解。
当一个电感和一个电容串联在一起时,会在某个频率发生谐振,这个频率就是谐振频率。串联谐振电路具有以下特点:
谐振时,整个电路的阻抗是阻性的,阻抗最小,电流最大。
当谐振电感器和电容器两端的电压达到最大值时。
这些理论非常基础,所以我赢了这里不再赘述。实际的电路场景远比这复杂,弄清楚那些是我们的目的。那就让下面我们结合具体场景。
LC滤波器
经常使用LC滤波器,但是有一个比较的问题。有时候用了LC滤镜后效果更差,还是不要用的好。
当然,我们可以说噪音在这里共振,噪音被放大等等。我过去也说过同样的话,但我没有。我真的不明白。我会害怕事情会适得其反,我会担心事情会出错。这种恐惧来源于对未知的恐惧,因为没有了解。现在让让我们做一个详细的分析。
首先,我们需要了解噪声是如何被放大的。也就是说输出大于输入幅度?
让我们先来看看最简单的模型,即理想器件模型。
让列出了输出与输入的比值,即增益。如果增益大于1,说明放大了。它很容易列出增益公式。让让我们画这条曲线。
图上的曲线显示了1uH电感和1uF电容的增益。可以看出,在低频时,增益基本为1,即不会放大也不会衰减。在谐振频率处,有一个很高的峰值,因为这里设置的器件是理想器件,理论上峰值很差很大,谐振频率旁边的增益也很高。当频率相对较高时,增益随着频率的增加而降低,即输入信号衰减。
如果我们可以将谐振频率处的增益降低到大约0.707,那么它将是一个完美的低通滤波器。显然,电感和电容都是非耗能器件,在不引入电阻器件的情况下,在谐振频率下增益始终等于无穷大。我们可以从增益Av的公式中得到,因为谐振频率处的分母为0。
幸运的是,我们的滤波电路总是与负载相连。我们对信号进行滤波后,它总是被负载使用。当连接负载时,增益是不同的。
不同负载的LC滤波器
现实中有各种各样的电路,负载的阻抗也千差万别。这是添加负载的模型。
让让我们看看负载为1、10和100时的增益曲线,如下所示:
我们可以看到,负载电阻越小,谐振时的增益越小,谐振产生的噪声越大,就越不会发生。当然,实际电路中有各种负载,包括低阻和高阻。相对来说,低阻负载不太可能造成加滤波器效果更差。所以,如果你找同一个LC滤波器,加不同的电路,有的结果好,有的结果差,可能是因为负载不同。
所以负载阻抗越低越不容易产生尖峰,也就是不容易恶化。
噪声内阻的影响
除了负载阻抗的影响,还有噪声源内阻的影响。实际的噪声信号必须具有一定的内阻。根据内阻的不同,我们构建如下模型,加入内阻的参数。
分别画出RS=0.1、RS=1和RS=10的情况。为了消除负载电阻的影响,它最好使用高阻态,统一RL=1M。
可见,内阻越大,越不容易产生尖峰,也就是说不容易变质。反之,内阻越小,越容易变质。
l和c值的影响
除了内阻和负载,电感和电容的值有没有影响?
电容变化:电容分别为1uF、10uF、100uF,内阻、负载、电感均为RS=0.1,RL=1m,L=1UH。
可以看出,电容增大,峰值减小,也就是说,当噪声因谐振而增大时,可以通过增大电容来减小。但需要注意的是,峰值变小,只是意味着最高点变小,但却导致共振频率降低。新的谐振点可能还是比原来的有更高的增益,也就是说,如果噪声恰好在这个频段,改变后效果会变得更差。当然,如果再加一个更大的电容,即使是谐振点也没有放大作用。比如电容加到100uF,整个频段基本没有放大作用。
电路实际上加了多少电容,根本不会有峰值?与信号源内阻Rs、负载阻抗RL、电感值l有关,实际上如果内阻Rs从0.1增加到1,电容不需要增加到100uF,甚至原来的1uf也不会有峰值,所以不画曲线。
电感变化:电感分别为0.01uH,0.1uH,1uH,内阻,负载,电容RS=0.1,RL=1M,C=1UF。
可以看出,通过降低电感可以降低峰值的高度。如果我们继续将电感降低0.01uH,峰值将会消失。同样,电感的变化会引起谐振频率的移动,噪声会增大还是减小也要看情况,与内阻、负载、电容有关。
一般来说,大部分电路增大电容或减小电感都可以降低峰值。如果用于电源滤波的LC滤波器的噪声变大,可以增大电容或减小电感。
这里之所以提到大部分电路,是因为如果满足Rs和RL的某些条件,结果可能是相反的。可以自己修改Matlab代码(后面分享)里的参数,执行完就知道了。
MOS管G极串联电阻如何抑制谐振
有了以上基础,让看实际问题:MOS管的G极串联电阻是如何抑制谐振的?
这个问题,我们首先要明白它是怎么产生的,也就是为什么会振荡?其实通过前面的铺垫,已经很清楚了。
这是一个典型的MOS晶体管驱动电路,与一个10电阻串联。
虽然从电路图上看,上面既没有电感也没有电容。但实际上我们的PCB总要把线从驱动芯片拉到MOS管。我查了一下,线宽12mil,长度10mm的线路寄生电感在实际中是9.17nH,10mm布线太正常了,寄生电感肯定是存在的。
我有感应器。
一般来说,左驱动管发出开关信号时内阻不会很低,虽然我们不现在不知道有多大,所以按照更差的情况,让RS=0.1。
那么什么是负载电阻呢?如果是有负载的MOS管,阻抗会很大,所以取RL=1m。
看看电流等效电路:
由前述可知,电源内阻越小,负载阻抗越大,越容易产生谐振尖峰。我们此时绘制曲线。
可以看到在52Mhz谐振频率下的增益达到了几十倍。MOS管的驱动信号可以看作是阶跃信号,其频率成分非常丰富,一定有52Mhz左右的频率。
所以,共振确实会发生。
现在,分别串联1、10和100电阻。这个电阻可以等效为内阻,也就是等效电路变成RS=1.1,RS=10.1,RS=100.1,其他参数不变。让让我们再看看曲线。
大家可以看到,串联的1电阻还是被放大了,最多放大3倍,说明电阻稍微小一点。10 电阻可以完全消除振荡。100电阻也能完全消除振荡,但其截止频率较低,会造成驱动信号高频成分的损失,最后上升沿变缓,即MOS管的导通时间变长。
我相信在这里,对于这个串联电阻的作用,应该很清楚该如何评价。G极走线越长,寄生电感越大,越容易出问题,所以电阻要大一些。
从文章开头,一路往下,简直太费力了。的确,它理解这些并不容易。很多时候我们都是抄厂家的原理图,不会有问题。等到新的人问你。这个电阻是干什么用的?"老员工回答说:“什么?抑制振荡。"是的,我知道这四个字。你总是有一种模糊的感觉吗?我希望它赢了看完这篇文章不要含糊。
Matlab源代码
上面所有的图表,Matlab源代码都在这里。我把每个图对应的代码都分开了,一共有7个部分。都可以复制过去一次得到7个图。你也可以复制其中一个并执行它。它一切皆有可能。代码中的注释也相当清楚,可以自己修改Rs,RL,L,C的值。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-理想LC低通滤波器增益
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=[1000:100:100000000];%频率:范围从1Khz到10Mhz
w=(f . * pi * 2);%角频率
C=0.000001%1uF电容
L=0.000001%1uH电感
Zc=1。/(w . c . j);%总电容阻抗
ZL=w . * l . * j;电感总阻抗%
Av=abs(Zc。/(Zc Zl));增益百分比
图;%绘图
对数对数(f,Av);%绘制增益曲线。
网格打开;%显示网格
set(gca,' YLim '[0.001 1000]);%y轴的数据显示范围
set(gca,' XTickLabel '{'1K '' 10K '' 100K '' 1M '' 10M '' 100m ' });% x轴频率数据
set(gca,' YTickLabel '{'0.001 '' 0.01 '' 0.1 '' 1 '' 10 '' 100 '' 1000 ' });%y轴振幅数据
xlabel(频率),ylabel(增益);%x,y轴名称
标题([LC低通滤波器增益(L=,num2str(L*1000000),呃,C=,num2str (C * 100000),用友)]);%标题
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-不同的负载
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=[1000:100:100000000];%频率:范围从1Khz到10Mhz
w=(f . * pi * 2);%角频率
C=0.000001%1uF电容
L=0.000001%1uH电感
RL1=1;% load RL1=1
RL2=10%负荷RL2=10
RL3=100%负荷RL2=100
Zc=1。/(w . c . j);%总电容阻抗
ZL=w . * l . * j;电感总阻抗%
Av1=abs(((Zc。*RL1)./(Zc RL1))./(((Zc。*RL1)./(Zc RL1))Zl));对应于%负载1的增益
Av2=abs(((Zc。*RL2)./(Zc RL2))./(((Zc。*RL2)./(Zc RL2))Zl));对应于%负载2的增益
Av3=abs(((Zc。*RL3)./(Zc RL3))./(((Zc。*RL3)./(Zc RL3))Zl));对应于%负载3的增益
图;%绘图
loglog(f,Av1,f,Av2,f,Av3);%绘制三个负载的增益。
网格打开;%显示网格
图例(['RL='num2str(RL1)],['RL='num2str(RL2)],['RL='num 2 str(RL3)]);%曲线描述
set(gca,' YLim '[0.001 1000]);%y轴的数据显示范围
set(gca,' XTickLabel '{'1K '' 10K '' 100K '' 1M '' 10M '' 100m ' });% x轴频率数据
set(gca,' YTickLabel '{'0.001 '' 0.01 '' 0.1 '' 1 '' 10 '' 100 '' 1000 ' });%y轴振幅数据
xlabel(频率),ylabel(增益);%x,y轴名称
标题([不同负载的增益(L=,num2str (L * 100000),呃,C=,num2str (C * 100000),用友)]);%标题
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-不同噪声源的内阻
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=[1000:100:100000000];%频率:范围从1Khz到10Mhz
w=(f . * pi * 2);%角频率
C=0.000001%1uF电容
L=0.000001%1uH电感
RS1=0.1%内部电阻RS1=0.1
RS2=1;%内部电阻RS2=1
RS3=10;%内部电阻RS2=10
RL=1000000% load RL=1
MZc=1。/(w . c . j);%总电容阻抗
ZL=w . * l . * j;电感总阻抗%
Av1=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS1));%内阻1对应增益
Av2=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS2));%内阻2对应增益
Av3=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS3));%内阻3对应增益
图;%绘图
loglog(f,Av1,f,Av2,f,Av3);%画出三个内阻的增益。
网格打开;%显示网格
图例(['Rs='num2str(RS1)],['Rs='num2str(RS2)],['Rs='num 2 str(RS3)]);%曲线描述
set(gca,' YLim '[0.001 1000]);%y轴的数据显示范围
set(gca,' XTickLabel '{'1K '' 10K '' 100K '' 1M '' 10M '' 100m ' });% x轴频率数据
set(gca,' YTickLabel '{'0.001 '' 0.01 '' 0.1 '' 1 '' 10 '' 100 '' 1000 ' });% y轴振幅数据xlabel(频率),ylabel(增益);%x,y轴名称
标题([不同噪声源的内阻增益(L=,num2str(L*1000000),呃,C=,num2str (C * 100000),用友)]);%标题
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-电容c的不同值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=[1000:100:100000000];%频率:范围从1Khz到10Mhz
w=(f . * pi * 2);%角频率
C1=0.000001;%1uF电容1
C2=0.00001;超滤电容2
C3=0.0001;0uF电容3
L=0.000001%1uH电感RS=0.1%内部电阻RS1=0.1
RL=1000000%负载RL=1M
Zc1=1。/(w.*C1。* j);%电容C1的总阻抗
Zc2=1。/(w.*C2。* j);%电容C2总阻抗
Zc3=1。/(w.*C3。* j);%电容C3的总阻抗
ZL=w . * l . * j;电感总阻抗%
Av1=abs(((Zc1。*RL)./(Zc1 RL))./(((Zc1。*RL)./(Zc1 RL))Zl RS));%电容器1对应于增益
Av2=abs(((Zc2。*RL)./(Zc2 RL))./(((Zc2。*RL)./(Zc2 RL))Zl RS));%电容器2对应于增益
Av3=abs(((Zc3。*RL)./(Zc3 RL))./(((Zc3。*RL)./(zc3rl))Zl RS));%电容器2对应于增益
图;%绘图
loglog(f,Av1,f,Av2,f,Av3);%画出三种电容的增益。
网格打开;%显示网格
图例(['C='num2str(C1*1000000),' uF'],['C='num2str(C2*1000000),' uF'],['C='num2str(C3*1000000),' uF ');%曲线描述
set(gca,' YLim '[0.001 1000]);%y轴数据显示范围设置(gca,' XTickLabel ,{ ' 1K ,‘10K 100K ,' 1M ,10M ,' 100米});% x轴频率数据
set(gca,' YTickLabel '{'0.001 '' 0.01 '' 0.1 '' 1 '' 10 '' 100 '' 1000 ' });% y轴振幅数据xlabel(频率),ylabel(增益);%x,y轴名称
标题([不同电容的增益C ]);%标题
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%-电感l的不同值
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=[1000:100:100000000];%频率:范围从1Khz到10Mhz
w=(f . * pi * 2);%角频率
C=0.000001%1uF电容
L1=0.000001;%1uH电感
L2=0.0000001;%0.1uH电感
L3=0.00000001%0.01uH电感
RS=0.1%内部电阻RS1=0.1
RL=1000000%负载RL=1M
Zc=1。/(w . c . j);%电容c总阻抗
Zl1=w.*L1* j;%电感L1总阻抗
Zl2=w.*L2。* j;%电感L2总阻抗
Zl3=w.*L3。* j;%电感L3总阻抗
Av1=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl1 RS));电感1%对应的增益
Av2=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl2 RS));电感2%对应的增益
Av3=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl3 RS));对应于电感3%的增益
图;%绘图
loglog(f,Av1,f,Av2,f,Av3);%画出三个电感的增益。
网格打开;%显示网格
图例(['L='num2str(L1*1000000),'嗯'],['L='num2str(L2*1000000),'嗯'],['L='num2str(L3*1000000),'嗯');%曲线描述
set(gca,' YLim '[0.001 1000]);%y轴的数据显示范围
set(gca,' XTickLabel '{'1K '' 10K '' 100K '' 1M '' 10M '' 100m ' });% x轴频率数据
set(gca,' YTickLabel '{'0.001 '' 0.01 '' 0.1 '' 1 '' 10 '' 100 '' 1000 ' });% x轴振幅数据
xlabel(频率),ylabel(增益);%x,y轴名称
标题([不同电感的增益L ]);%标题
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% -无串联电阻的MOS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=[1000:100:100000000];%频率:范围从1Khz到10Mhz
w=(f . * pi * 2);%角频率
C=0.000000001%1nF电容
L=0.00000000917%1uH电感
RS=0.1%内部电阻RS1=0.1
RL=1000000%负载RL=1M
Zc=1。/(w . c . j);%总电容阻抗
ZL=w . * l . * j;电感总阻抗%
Av=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS));%无串联增益的MOS晶体管
图;%绘图
对数对数(f,Av);%绘制增益曲线。
网格打开;%显示网格
set(gca,' YLim '[0.001 1000]);%y轴的数据显示范围
set(gca,' XTickLabel '{'1K '' 10K '' 100K '' 1M '' 10M '' 100m ' });% x轴频率数据
set(gca,' YTickLabel '{'0.001 '' 0.01 '' 0.1 '' 1 '' 10 '' 100 '' 1000 ' });% x轴振幅数据
xlabel(频率),ylabel(增益);%x,y轴名称
标题([无串联电阻时MOS晶体管的增益(L=,num2str (L * 100000000),NH,C=,num2str (C * 100000000),NF)]);%标题
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% - MOS串电阻
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
f=[1000:100:100000000];%频率:范围从1Khz到10Mhz
w=(f . * pi * 2);%角频率
C=0.000000001%1nF电容
L=0.00000000917%1uH电感
RS1=0.1%内部电阻RS1=0.1
RS2=1.1%内部电阻RS1=1.1
RS3=10.1;%内部电阻RS1=10.1
RS4=100.1%内部电阻RS1=100.1
RL=1000000%负载RL=1M
Zc=1。/(w . c . j);%总电容阻抗
ZL=w . * l . * j;电感总阻抗%
Av1=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS1));%无串联增益的MOS晶体管
Av2=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS2));%MOS串1 电阻增益
Av3=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS3));%MOS串1 电阻增益
Av4=abs(((Zc。*RL)./(Zc RL))./(((Zc。*RL)./(Zc RL))Zl RS4));%MOS串1 电阻增益
图;%绘图
loglog(f,Av1,f,Av2,f,Av3,f,Av4);%绘制增益曲线。
网格打开;%显示网格
图例([无串联电阻], ['1系列电阻], ['10系列电阻], ['100系列电阻]);%曲线描述
set(gca,' YLim '[0.001 1000]);%y轴的数据显示范围
set(gca,' XTickLabel '{'1K '' 10K '' 100K '' 1M '' 10M '' 100m ' });% x轴频率数据
set(gca,' YTickLabel '{'0.001 '' 0.01 '' 0.1 '' 1 '' 10 '' 100 '' 1000 ' });% x轴振幅数据
xlabel(频率),ylabel(增益);%x,y轴名称标题([MOS管串电阻的增益(L=,num2str (L * 100000000),NH,C=,num2str (C * 100000000),NF)]);%标题
总结
LC的串联电路很简单,但实际电路应用起来并不简单,会造成各种现象。如果我们不如果不深入分析,我们真的会遇到一点麻烦。写出以下结论:
1、LC串联谐振的增益与电源内阻、负载阻抗、电感和电容密切相关。这四个变量导致的场景组合很多,表现也大相径庭。一般来说,电源内阻越小,负载阻抗越大,电感越大,电容越小,越容易出现尖峰。
2、LC滤波器劣化要满足几个条件:源内阻要小,负载阻抗要大,噪声频率刚好在谐振频率附近,电容容量太小,电感太大。
这些结论,个人认为诚意不重要,重要的是分析方法。有了方法,各种结论不仅仅是推出来的,还有别人讲出来的?至于开头提出的问题,自然答案就出来了。