前一段时间写了一下Buck电路的振铃,不少同学给我留了作业,让我说说Boost。今天就来看看Boost电路。
我们知道,不论是buck,还是boost电路,总会有一些公式,用得最多的就是电感的感量计算,电流纹波,输入电压纹波大小,输出电压纹波大小等等。
这些公式,在我们设计的时候会去算一算,很多的DCDC的芯片手册里面也会有这些公式。
就我自己而言,我是很讨厌背公式的,相信大家也一样。
所以最好的方式莫过于充分理解电路的工作原理,甚至于可以自己推导出这些公式。
我们如果理解了这些公式,那么就理解了Boost电路各个地方的电流,电压是怎么样的,遇到一些问题,就可以不用去看公式就能知道为什么会这样。
比如电感感量增大,会怎么样?
电容容量增大会怎么样?
工作频率的大小又有哪些影响呢?
所以,推导公式是为了摆脱公式。
另外,计算之后,我们会发现:
计算结果跟实测结果经常差的比较多?根本就不准?为什么呢?
这些问题,本文都会说一说。
Boost的拓扑结构
我们先来看拓扑结构,一切信息都在这个里面。
首先说下最基本的一个工作原理。
上图中MOS管就是一个开关,只要这个速度够快(开关频率够高),控制好导通与关断时间(充放电时间),配合输出滤波电容,就可以得到基本稳定的Vo了,也就是输出电压。
我们来简单看一下过程。
在开关导通的时候,电感L接地,二极管截止,Vi对电感L进行充电,电感两端电压是Vi。
在开关变为不导通的时候,因为之前电感L已经被充电了,有电流流过,电流向右,电感两端电流不能突变,所以会感应出电压,让右侧的二极管导通。
输出电压Vo恒定,二极管导通压降为Vd,所以电感右端电压为Vo+Vd,电感左端电压是电源输入Vi。这是升压boost电路, 所以Vo+Vd>Vi,电感此时放电,给负载供电,以及给输出滤波电容充电。
并且,此时电感的两端电压是右边电压Vo+Vd减去左边电压Vi,即:Vo+Vd-Vi
来个前菜加深理解
Boost电路是升压电路,是直流转直流,不考虑纹波电压的话,Vi和Vo都是恒定的,Vo大于Vi。
在开关导通的时候
电感L一端是恒定电压Vi,另外一端接地。这说明在开关导通的时候,电感L两端的电压是恒定不变的,就是Vi。
根据电感最最最最基本的公式:U=L*di/dt。
(虽然我不喜欢背公式,但是这个公式我觉得是电感最重要的了,我之前还专门讲过,它可以推导出电感储能公式等等。同样,电容的最重要的公式:i=C*du/dt。)
好,电感两端电压U=Vi不变,电感量L也是常数,所以呢,di/dt=U/L=常数,这不就是说电流随时间线性变化吗?
如果我们规定电流流向负载的方向是正,根据电感此时电压,是左边大于右边,所以电感的电流是线性增大的。
当开关断开的时候
电感两端的电压U=Vo-Vi-Vd,也是恒定的,电流同样随时间线性变化。只不过电压的方向是反的,右边大于左边,所以电感的电流是线性减小的。
开关导通,电感电流线性增大。
开关断开,电感电流线性减小。
我第一次看到电感电流波形是这样的时候,我就觉得好巧啊,怎么就一定是线性上升呢?不是曲线上升?
现在自然是知道了,当然,知道也好像没什么卵用,那说点儿有用的。
我们在电感选型的时候,一定知道有个参数叫饱和电流吧。
我们会要求,电感的峰值电流不能超过电感的饱和电流。
为啥是峰值电流,不是有效值电流?
因为,我们一般认为电感的感量是不变的,但是实际情况是,电流大到一定程度的时候,电感量L会随电流的增大而减小,所以会有电感饱和电流这一说。
并且,随着电感电流的继续增大,电感量下降速度加快。
我们复习下电感这个曲线,很多电感手册都有,电感的饱和电流是指电感感量下降了标称值的30%(不同厂家这个值有差异)的时候的电流。
如果选型的电感饱和电流太小会怎么样呢?
开关导通,电感电流增大,增大到饱和电流的时候,那么L会快速减小,意味着di/dt=U/L快速增大。
也就是说,di/dt变大了,即电感电流随时间更快的增大。
电流更大了,那么进一步电感感量L更小了,di/dt更更更大了,电流又更更更大了。
如此,电流就突破天际了,这就悲剧了。
简单画个图,感受一下。
好了,根据前面的分析,我们还是画出几个关键点处的电压和电流波形吧,这应该是没什么难度的,最难的应该属于那个电感电流的波形了,我们也解释过了。
开始推公式
我们推公式,自然是为了更好的选型,对吧。
目的为了计算出输入电容,输出电容,功率电感,都选择多大的值。
为了更好的理解,我们把已知的条件都说一下。
首先是输入电压Vi,输出电压Vo,输出电流Vo/R,咱总得知道自己想要什么吧,所以这些在设计之初都是已知的。
其次是开关频率fs,这个在芯片选型之后就是确定的了。
再然后就是设计的目标,输入纹波大小△Vi,输出纹波大小△Vo。
我们根据这些已知的量,就可以求得电感感量,输入滤波电容大小,输出滤波电容大小。
好,我重新把图画一下,如下:
因为计算的基本原理其实就是电容和电感的充放电。所以,我们首先要求的就是开关导通的时间和断开的时间,或者说是占空比。
这个也非常简单,我们可以这么想。
在开关导通的时候,电感两端电压是Vi。
在开关断开的时候,输出端电压为Vo,二极管导通,那么电感右侧就是Vo+Vd,电感左侧接的是电源输入,为Vi,所以此时电感两端电压是Vo+Vd-Vi。
整个电路稳定之后,因为负载电流恒定,那么一个周期时间之内,在开关导通时电感电流增加的量,要等于开关截止时,电感电流减小的量,即电感充了多少电就要放多少电,不然负载的电流或者电压就要发生变化。
即一个周期内,电感电流增大量等于减小量。
然后又因为U=Ldi/dt,di/dt=U/L,L不变,所以电感电流变化速度与电压成正比。
简单说就是,电感电流上升或下降的斜率与电压成正比。
斜率与电压成正比,电感电流上升的高度与下降高度又相同,那上升时间不就和电压成反比了吗?
所以,自然就有了:
Ton/Toff=(Vo+Vd-Vi)/Vi
我们变换一下,就得到了江湖所传的“伏秒法则”
再根据T=Ton+Toff=1/f
我们可以分别求得导通时间,关断时间,占空比。
好,这里,我们已经推出了第一部分公式。
其实从这里我们可以看到。
占空比与电感量L没有关系,与负载电流的大小也没有关系,只跟输入输出电压有关系。
功率电感选择
我们电感选型首先需要考虑两个参数,电感感量和电感电流。
电感感量又决定了电感纹波电流的大小,为什么呢?
还是因为U=Ldi/dt,di/dt=U/L=电流变化斜率
所以,当我们确定了输入输出电压,那么电感两端的电压就是固定的,那么电感电流变化斜率与电感量成反比,电感越大,斜率越小。
一般来说,电感感量的确定,是让电感的纹波电流△IL等于电感平均电流的20%-40%之间。
那为什么会这样呢?电感过大或过小会有什么影响?
如果电感感量过小,那么电感纹波电流会比较大,即流过电感电流的峰值会很高,电感饱和电流就要很高。如此同时,过大的电流,在开关切换时,会导致EMI问题会更加明显。
如果电感感量过大,那么电感电流纹波会比较小,会导致动态响应变差。
啥叫动态响应变差?
就比如输出一直是1A的电流,某个时刻,负载从需要1A的电流变成突然需要5A的电流。这个时候,如果电感过大,电感电流充上来需要较长时间,那么电感电流需要很多个开关周期才能升到5A,这期间,负载所需要的5A电流主要来源于输出滤波电容的放电,会导致输出电压跌落比较多,有可能出现故障。
简单说,就是这个boost不能及时响应负载电流的快速变化。
好,我们下面来求合适的电感量
首先先求电感的平均电流IL
输出电压是Vo,输出电流是Io,输入电压是Vi,那么根据能量守恒定律。
输入功率*n=输出功率。(n为效率)
输入功率,就是电源的输入电压Vi乘以平均电流,显然,从boost拓扑结构上看,电源的所有电流都会流过电感,那么这个电源输出的平均电流也就是电感的平均电流IL。
即,Pi=Vi*IL
输出功率
显然,就是Po=Vo*Io
Pi*n=Po
即Vi*IL*n=Vo*Io
那么IL=Vo*Io/(Vi*n),估算时可以取n≈80%
我在有一些文件里面看到boost电感平均电流用这个公式计算:
IL=(Vo+Vd)*Io/Vi
这个公式怎么来的呢?
这个公式是假设只有二极管有损耗的,忽略其它的损耗。
如上图,稳态时,输出端电容是不耗电的,电压也不会变化,所以其平均电流为0,也就是说,流过负载的电流,全部从二极管过来。所以二极管的平均电流也是Io,导通压降是Vd,那么二极管的平均功率是Pd=Io*Vd。
所以有:
Po=P负载+Pd
即:Pi=Vi*IL=Io*Vo+Io*Vd
也就是:IL=(Vo+Vd)*Io/Vi
对于这个Boost来说,二极管的损耗是占比比较大的,估算确实可以采用这个公式。不过我们需要记住,这个公式仅仅考虑了二极管的损耗。
我们文章后面就用这个公式来计算吧。
其次,我们来求电感的纹波电流△IL
从前面知道,电感电流就是个三角波,在开关导通时电感电流增大,在关断时,电感电流减小。
那纹波电流的大小求起来就简单了,就等于在开关导通时电感电流增大的值,也等于关断时电感电流减小的值。
我们就计算其中一个,计算开关导通时电感电流增大了多少吧。
这个也非常easy,开关导通,电感两端电压是Vi,导通时间Ton前面已经求出来了。
根据U=Ldi/dt就可以求出电感电流纹波△IL=di
可以看到,电感电流的纹波跟负载电流的大小没有关系。
现在我们已经写出来了电感的平均电流IL,电感的纹波电流△IL,前面说了,△IL应该是IL的20%-40%为宜。
即:△IL=(0.2~0.4)*IL
根据这个等式,就能求得我们的电感值范围了。
至此,我们已经求得了电感值的取值范围,下面开始推导输入输出滤波电容的计算。
输入滤波电容
我们在确定输入滤波电容的时候,是有一个假设的,这个假设是什么呢?
输入电源默认来自远方,是没法提供快速变化的电流的。
正是因为这一点,所以才有输入滤波电容存在的必要,如果输入电源总能快速响应Boost的电流的需求,那还要滤波电容干什么?
比如如果用LTspice仿真,会看到,仿真软件自己的boost示例,都是没有输入滤波电容的。
下图这个LT1619仿真电路,就是没有输入滤波电容的,这个是官方给出的示例,不是我画的。
这个官方仿真示例不要输入滤波电容,原因就在于它用的电源V1是电压源。
电压源在仿真软件里面的意思就是,这个IN的电压就是3.3V,永远都是3.3V,不管后面电流咋变,反正我就能绝对的把Vin的电压控制在3.3V,电流都能供上,你想要多大我就能提供多大,所以就不需要滤波电容了。
这一点,实际电路肯定做不到,所以需要输入滤波电容来提供瞬态的电流需求。
那为什么实际输入电源不能快速响应呢?
实际应用中,输入电源可能距离很远,有了很长的走线,上上期《buck振铃尖峰的实验与分析》文章末尾已经详细说了,走线越长,电感就越大,这里不再赘述。
总的来说,就是相当于远处的电源接了一个电感到boost电路的输入端,电感电流不能突变,也就是说输入电源不能快速响应这个boost电流的需求。
既然等效串联了一个电感,而且Boost电路是开关电源,频率大概在几百Khz,周期也就几us左右。那么在这一个周期之内,我们可以把电源输入过来的电流看作是恒定不变的。
当然,肯定有人会说,如果我的电源输入很近,可以快速响应,那就不对了呀?怎么电流能是恒定的呢?
这想法自然没问题。
事实上,即使是电感,那也是阻碍电流的变化,并不是完全让电流不能变化,所以对于动态的电流需求,还是能响应一点的。当然,线路电感越大,就越不容易马上响应,能提供的电流波形也就越平。
但是呢,我们没法控制这个线路的电感有多大,或者有的电路,电源上面更是直接使用了LC滤波器。
既然没法控制,我们就按照最差的情况来处理,即在一个周期内,把电源输入过来的电流看作是恒定不变的,Boost需要的动态电流完全由滤波电容来提供,根据这种情况选择的输入滤波电容,就可以满足所有的情况了。
好,又说了一堆,回到我们的目标:计算输入滤波电容容量。
输入滤波电容是用来控制输入电压纹波△Vi的,下面来看如何根据△Vi得到输入滤波电容Ci的大小。
我们先理清下思路,输入电压纹波就是输入电容上面的纹波变化。电容上面的纹波变化可以分成两个部分。
一个是电容放电或者是充电,存储了电荷量发生了变化,这个变化会导致电压变化,可以用公式Q=CUq来表示,Uq即是电压的变化。
另一个是电容有等效串联电阻ESR,电容充放电时有电流流过,电流流过ESR会产生压降,这个压降用Uesr表示吧。
所以,电压纹波应该是:
△Vi=Uq+Uesr
1、电容电荷量变化引起的压降Uq
我们看输入节点,这个节点的电流有3个,一个是来自电源输入的,前面说了,在一个周期内,它可以看作是恒定的,一个节点是电容,另外一个节点是电感。
根据基尔霍夫电流定律,节点电流和为0,并且电源输入的电流恒定,那么当电感电流的变化量必然等于电容电流的变化量,因为最终3者的和为0。
我们画出三者的电流波形如下:
根据节点电流和为0,那么输入电容的电流变化就是功率电感的电流变化(你增大时我减小,你减小时我增大)。我们从上图也可以很直观的看出来。
显然,电容电流大于0时,电容在充电,电容电流小于0时,电容在放电。
可以看到,电容充电和放电时间长度是一样的,都是周期的一半,T/2。
那充放电的电荷量是多少呢?
放电的电荷量,等于放电电流i乘以放电时间t,不过放电电流不是恒定的。从前面知道,电容放电电流它等于电感电流的变化量,所以电容电流的变化量也是△IL。
需要注意,电容电流是在大于0时充电,电流小于0时放电,也就是图中阴影部分,充电与放电的切换的时刻并不是开关导通与断开的时候,而是在中间时刻。
然后电容放电/充电的总电荷量Q等于电流乘以时间,这不就是图中阴影三角形的面积吗?
三角形底部是时间,充电/放电时间等于T/2
三角形的高为电感纹波电流的一半,△IL/2。
所以总放电量为Q=1/2*底*高
再结合Q=CUq,即可求得Uq了。
具体计算如下图所示:
2、电流流过电容的ESR造成的压降Uesr。
前面波形图知道,电容的充电电流最大是△IL/2,放电电流最大就是-△IL/2,负号表示电流方向,方向的不同,引起的压降的电压也是相反的。
那么ESR引起的总的压降是:
Uesr=△IL/2*ESR-(-△IL/2*ESR)= △IL*ESR
最终,我们求得Uesr的公式如下:
好,我们已经算出Uesr和Uq。
那么根据△Vi=Uesr+Uq,我们就可以△Vi的表达式了,如果知道△Vi,我们也能得到输入电容Ci的大小或者是ESR了。
这个公式看着有点复杂,有两个参数都跟电容本身有关系,ESR和容量Ci。
考虑到我们的电容实际使用情况
陶瓷电容ESR小,容量小,Uq对纹波起决定作用,所以可以近似△Vi=Uq
铝电解电容容量大,ESR大,Uesr对纹波起决定作用,所以可以近似△Vi=Uesr
根据上面两点,我们就可以去选择合适的电容了。
陶瓷电容根据容量值去选
铝电解电容根据ESR去选
当然了,这一段话很多资料都有,但是很少有实际比较过Uq和Uesr的大小的,文章后面会做实验来实际看看
好,现在输入电容的理论计算已经搞定了,我们接着看输出滤波电容。
输出滤波电容
相比输入纹波△Vi大小,我们可能更关心输出纹波的大小,毕竟是要带负载的。
同样,纹波由电容电荷量变化和ESR决定。
1、电容电荷量变化引起的Uq
一个周期内,电容的充电电荷量和放电电荷量必然一样,我们计算出其中一个就行了。显然,放电的时候更好计算,因为放电电流就是负载电流,是恒定的,为Io=Vo/RL。
放电的电荷量等于容量乘以电容电压的变化,也等于放电电流乘以放电时间,即:
Q=Uq*C=Io*Ton
根据这个公式,我们就可以求得Uq了。
2、电流流过电容的ESR造成的压降Uesr
Uesr如何计算呢?
我们调出输出电容的电流波形就知道了。
这个波形我解释一下。
在开关导通的时候,二极管不导通,负载的电流为Io,完全由输出滤波电容提供,即滤波电容的放电电流也为Io,而且还是在导通时间里面恒定不变的。
在开关从导通切换到断开时,电感的电流已经是充到最大的,因为先前开关导通时电感一直在充电,所以切换时电感电流最大,且等于电感平均电流加上纹波电流的一半,即为IL+△IL/2。切换时,这个已经充好的电流会通过二极管给负载供电,负载电流为Io。同时,电感还要给电容进行充电,根据节点电流和为0,那么电容的充电电流就是电感充到最大的电流减去负载的电流,即IL+△IL/2-Io。
在开关断开之后,电感电压反向了,所以电感电流持续减小,也就是说二极管的电流持续减小,而负载电流不变,所以输出滤波电容的电流持续减小。
根据上图,在开关切换之前,电容的电流为-Io,那么ESR两端的电压是-Io*ESR。
在切换之后,电容的电流立马反向,为IL+△IL/2-Io,那么ESR两端的电压是(IL+△IL/2-Io)*ESR,两者相减,就是ESR上电压变化量,也是ESR产生的纹波电压大小。
即
Uesr=(IL+△IL/2-Io)*ESR-(-Io*ESR)
= (IL+△IL/2)*ESR,
好,我们已经算出Uesr和Uq。
那么根据△Vo=Uesr+Uq,我们就可以△Vo的表达式了,如果知道△Vo,我们也能得到输出滤波电容Co的大小或者是ESR了。
与输入滤波电容一样,考虑到我们使用的电容类型。
陶瓷电容ESR小,容量小,Uq对纹波起决定作用,所以可以近似△Vo=Uq
铝电解电容容量大,ESR大,Uesr对纹波起决定作用,所以可以近似△Vo=Uesr
根据上面两点,我们就可以去选择合适的电容了。
陶瓷电容根据容量值去选
可以看到,公式里面没有电感L,也就是说,如果使用陶瓷电容滤波,增大电感量对输出纹波不起作用,不要傻傻去增大电感啦。
铝电解电容根据ESR去选
不容易啊,现在公式都推导完成了。
下面进入实验环节,以此来检验上面的公式是否正确
实验验证
实验已知条件及纹波要求:
使用boost芯片LT1619。
开关频率是f=300Khz
输入电压Vi=3.3V
输出电压Vo=5V
二极管使用MBR735,导通电压约为:Vd=0.5V
负载R=3Ω,负载电流Io=Vo/R=1.667A
输入纹波要求:△Vi≤30mV
输出纹波要求:△Vo≤50mV
1、首先需要确定电感值L
根据前面推导出的公式计算,可得,电感的取值范围为:
我们求得电感的范围是3.96uH~7.92uH。
我们取现实中常用的电感值L=6.8uH吧。
当然,我们现实中电感选型也要考虑电感的饱和电流是否足够,饱和电流要大于电感会流过的最大电流值ILmax,并且要留有一定的裕量。
显然,这个ILmax=IL+△IL/2。
我们根据前面的公式计算得ILmax=3.1A
2、如果使用陶瓷电容滤波
先看输入滤波电容Ci:
Ci的值计算结果(忽略了ESR)如下:
可以看到,Ci要大于8.98uF。
我们取现实中常用的电容值Ci=10uF吧。
并且,在Ci=8.98uF时纹波△Vi=30mV,那么Ci=10uF时,纹波是△Vi=26.94mV,我们记住这个值,后面仿真对比使用。
再看输出滤波电容Co:
Co的值计算结果(忽略了ESR)如下:
可以看到,Co需要大于44.45uF。
我们取现实中常用的电容值Co=47uF吧
并且,在Co=44.45uF时纹波△Vo=50mV,那么Co=47uF时,纹波是△Vo=47.29mV,我们也记住这个值,后面仿真对比。
仿真验证:
好,现在电感L,输入滤波电容Ci,输出滤波电容Co都有了
输入电压:3.3V
输出电压:5V
L=6.8uH
Ci=10uF
Co=47uF
我们LTspice仿真电路图如下:
有个问题先解释一下,在电源输入端我加了一个1uH的电感L2,就是为了让输入电源过来的电流基本恒定,模拟前面说的最差的情况(电源比较远)。若果没有这个L2,那么Vin就是稳压源的电压,绝对的稳定,没有纹波的。
我们看仿真结果:
输入纹波电压计算值为26.94mV,仿真值为28mV
输出纹波电压计算值为47.29mV,仿真值为47mV
可以看到,仿真的结果与计算值非常接近,也就验证了计算公式的准确性。
这里插一点,为了方便同志们学习boost,我将关键点的电压,电流波形截图出来了,分析Boost可以参考
有一点需要说明下:图中二极管的电流和输出滤波电容的电流都有一个向下的尖峰,这个尖峰是因为二极管的反向恢复时间造成的
即二极管电压反向,它不能马上恢复截止功能的,需要时间,这个时间就是反向恢复时间,在这个时间里面,二极管可以通过较大的反向电流,所以就有了较大的反向电流存在。
文末会给出仿真的源文件,感兴趣的同学可以自己玩一玩,不同类型的二极管反向恢复时间不同,向下的尖峰也是不一样的,这里就不再展开了。
我们继续
陶瓷电容ESR
陶瓷电容我们都通常说ESR很小,可以忽略,前面的计算也是忽略。
不过想必大家也肯定想过,总说ESR小,影响小,那到底有多小?
我们上面用了两个陶瓷电容,10uF和47uF,那我们查查这两个电容的ESR情况。
这里我找了两个型号:
10uF/10V:GRM188B31A106ME69
47uF/10V:GRM21BR61A476ME15
10uF电容的ESR是4mΩ,47uF电容的ESR是3mΩ
我们还是先计算一下,ESR对纹波的贡献有多少。
输入10uF电容的ESR是4mΩ,引入的纹波电压是
相比于容量引起的纹波26.94mV,这个约为十分之一左右,确实很小。
两者加起来,新的△Vi=26.94+2.6=29.54mV
输出47uF电容的ESR是3mΩ,引入的纹波电压
相比于容量引起的纹波47.29mv,这个也是比较小的,大约是五分之一吧,但似乎达不到可以忽略的地步。
两者加起来,新的△Vo=47.29+9.3=56.59mV
下面我们把ESR加入到电路中
运行一下,结果如下图:
加入ESR之后,可以看到,输入纹波电压还是28mV,基本没有变化,不过与计算值29.54mV也差得不多。
这个输入纹波加了ESR基本没变化,确实是有原因的。
原因是因为输入滤波电容的电流是变化的,我们计算的是Uesr的最大值,出现最大值的时刻并不在电容放电完成后的时刻(放电完成时Uq产生的压降最大)。放电完成的时刻电容电流为0,ESR上面没有压降,所以基本就不变了,所以咱们看到的就是△Vi没变化。
不过这个也不用细细区深究,本身Uesr太小了,影响不大。
这个问题在输出滤波电容上面不会出现,因为输出滤波电容是一直有电流的,这个可以从前面的波形图看出来,所以最终的纹波,是可以将Uesr和Uq直接相加的
因此,我们可以看到,输出滤波电容的纹波电压仿真是56mV,与计算值56.59mV也是非常接近的,增加ESR后,纹波实打实增加了9mV左右。
而且,可以看到,输出纹波在底部有一个突然的上升,这个就是电容电流突然变化,在ESR上面产生的压降,大致也可以看到是9mV左右。
另一方面,这个波形与我们实际测试想比,还差了点啥?
实际测试经常有毛刺对吧,这里面看不到
仿真软件,其实就是使用计算机进行数学计算,一般是不会出错的,不准确肯定是模型不够准确。
很容易想到,仿真图里面电容等效一个理想电容和ESR电阻串联构成,这跟真实的电容还是有差距的,怎么说也会有寄生电感存在吧。
我就不手动添加寄生电感了,直接使用厂家提供的电容spice模型吧。
仿真结果如下图:
输入还是没毛刺,输出毛刺出来了,是不是有点儿意思呢?
算上毛刺,输出纹波大小大概是250mV,这是预想的50mV的5倍。
先来看毛刺吧,毛刺是怎么出来的呢?
其实这个很容易,从前面分析知道,输入电容和输出电容的电流波形如下:
由图可知,输入滤波电容的电流是没有突变的(有拐点,但是是连续的),而输出滤波电容的电流是有突变的(由负突然变为正)。
我们知道电容都是有各种寄生参数的,自然也有寄生电感存在,突变的电流意味着di/dt很大,这必然会在寄生电感上面产生高的电压,也就是图中的毛刺。
如何搞定这个毛刺?
去掉是不可能的,这辈子都不可能,只能降低幅度。
我们在输出端加一个100nF小电容,电路图变为如下:
输出纹波如下:
可以看到,毛刺下降了,总的纹波从250mV下降到了160mV左右,效果是有的。
毛刺还是有点大,怎么办?
简单啊,再增加一个100nF电容,总共放两个100nf滤波电容,是这样吗?
仿真一下,发现纹波变成了110mV左右,确实有减小。
所以,我们想要降低毛刺,可以多并联几个100nF的小电容。
想必到这里,应该知道boost后面为什么有大电容也有小电容了吧。
大电容决定了整体纹波的大小(去掉毛刺剩下的),小电容是为了降低毛刺的。
除了毛刺这个问题,我们发现,使用了spice文件构建的电容之后,输入纹波和输出纹波都变大了,而且还是变大不少的。
输入纹波从28mV变到了35mV。
输出纹波从56mV变到了83mV(不算毛刺)。
使用spice文件生成的电容模型的仿真结果肯定是更为准确的,它是厂家提供的,能更真实的还原电容的特性。
我们前面的计算公式是从拓扑结构推出来的,只考虑了电容的容量C和ESR,所以是一个理想的结果。
虽说算出来与实际结果有差距,但是还是有其意义的,至少我们知道了纹波大概在多少mv,我们留好裕量就好了。
那这个裕量留多少?2倍吗?
比如计算输出滤波电容47uF,但是仿真纹波比50mV大不少,达到了83mV,那我使用100uF的滤波电容,容量提升了2倍,应该可以控制在50mV以内吧。
选用标称值为100uF/10V的MLCC陶瓷电容可以吗?
答案是:no!no!no!
陶瓷电容有一个特性,就是容量会随所加的电压发生变化,这个变化很大!!
这个特性叫直流偏压特性,MLCC有这个特性,铝电解电容没这个。
上图是GRM32ER61A107ME20(100uF/10V)的电容曲线。
我们输出电压是5V,在5V时,这个电容的实际容量只有标称值的50%,也就是说只有50uF左右。
所以,选择100uF/10V是不行的,应该要选择更大容量的电容,比如200uF。或者是2个100uF的电容并联,这样真正的有效容量才会有100uF。
另外一方面,这个是耐压10V的电容,在5V使用时,有效容量只剩下50%,如果输出是7V,容量就只剩下30%了,也就说必须选择更大容量的电容。
或者说选用耐压值更高的电容,这样有效电容量更高。
关于Boost使用陶瓷电容滤波,我们小结一下:
1、我们使用公式计算出的电容量大小,往往是偏小的,真实纹波要比计算值要高一些。
2、MLCC陶瓷电容的直流偏压特性,因此使用时,往往实际容量要比标称值小很多。
3、boost输出会容易产生高频毛刺,需要加小电容降低毛刺。
因此,设计时,真正的电容要比计算的大,纹波要求严格的地方,可能需要4-5倍。
说完了使用陶瓷电容的情况,那使用铝电解电容会怎么样呢?
3、使用铝电解电容滤波
还是先来计算一番
铝电解电容的ESR比较大,所以纹波主要由ESR决定,因此我们忽略容量的影响。
输入滤波电容ESR
即输入滤波电容的ESR如果控制在46mΩ,那么输入纹波电压可以控制在30mV
输出滤波电容ESR
即输出滤波电容的ESR如果控制在16mΩ,那么能将输出纹波电压控制在50mV
如果我们使用常规的Low ESR铝电解电容,比如Leon的VZH系列
可以看到,满足输入46mΩ的电容容量非常大,都到了1500uF以上。满足输出16mΩ的滤波电容都没有。
所以说,常规的铝电解电容用在开关电源上面滤波,效果是比较差的,纹波很难控制得比较低。
不过,也有一种电容叫做固态铝电解电容,已经是在广泛使用的。
假定我们现在选用尼吉康的PCF系列铝固态电解电容。
可以看到,33uF的可以大致是可以满足输入纹波要求,330uF大致是可以满足输出的纹波要求得。
从官网上面下载这330uF电容的spice文件(PCF1A331MCL4GS),接到输出端滤波(输入就不看了),同时加了2个100nF的电容,构建仿真电路图。
仿真结果如下:
可以看到,不算毛刺纹波不高,但是毛刺振荡非常明显,加了2个100nF滤波也只能控制在300mV左右。
现在讨论不算毛刺的纹波也没有意义了,因为去不掉,我们肯定是看总的输出噪声是300mV,这个有点大。
这个原因应该是固态电容的等效串联电感太大,我比较了一下这个电容和前面的47uF陶瓷电容的spice文件,确实是固态电容的电感更大的。
所以,总的来说,不论是铝电解电容,还是固态电容,都是没有陶瓷电容好的,这也是为什么很多dcdc芯片手册都推荐使用陶瓷电容滤波的原因吧。
当然,也不是说铝电解电容不能用,因为我举的例子负载电流达到了1.667A的,这个算是比较大的,如果负载电流减小到三分之一,输出纹波(包括毛刺振荡)噪声也降低了,如下图,降低到了110mV左右,纹波要求不严格的话也可以用了。
这里有一个使用电解电容滤波,输出振荡很严重的例子,有兴趣可以看看,我觉得他如果将铝电解换成陶瓷电容滤波,可能会改善很多,链接如下:
https://bbs.21dianyuan.com/forum.php?mod=viewthread&tid=289717
小结
这文章字数破纪录了,1w多,我也不想如此,只不过之前还是有同志们说有点难懂,我只能写一句解释一下,不好文字说明的地方就画图,图片也60多张了吧,最后就这样臭长臭长了。
所以总结的第1点就是:有点累。
第2点就是,推导公式确实可以加深对boost的理解,对各处的信号都能了如指掌,这对我们设计boost还是很有用的,特别是出现问题的时候,自然而然都能想到改怎么分析。
第3点就是,计算公式与真实值是有较大差距的
推导的公式,是基于boost的基本拓扑来的,这跟实际使用还是有较大的区别。
其中最大的一点就是,没有公式来计算毛刺(高频振荡),而很多时候,毛刺占输出波动最主要的部分。
所以公式仅仅只能作为参考,更重要的是,我们要对各种基本器件有一个较深的了解,比如我文章举例的陶瓷电容,铝电解电容,固态电容,这三种器件极大的影响了最终的结果,如果只是浮于表面,遇到问题只能东试试,西试试吧,能不能搞定就看运气了。
文章中的仿真原文件,芯片手册文档,还有TI的《Boost转换器基本计算》等。
见附件即可下载了,东西有点多,自己找一下。