首页/文章/ 详情

手撕Buck!Buck公式推导过程

1年前浏览634

这个文章我本来没打算写的,因为之前我已经写了《手撕Boost!Boost公式推导及实验验证,在我看来,Buck与boost是完全类似的,明白一个,另外一个也就明白了。

 

不过后来还是陆续有粉丝问我有没有buck,那么今天就来推导下buck的公式。毕竟大家基础也是各不相同,举一反三有时还比较困难,有现成的更好。

如果没看过手撕boost的,我建议可以先看看,因为有很多的前提条件在那里面有详尽的解释。这些前提条件在buck里面也是适用的,这篇文章就不会再赘述了,罗里吧嗦也不好。

 

先简要说明一下文章会说哪些内容

1、buck的拓扑结构,工作原理
2、输入输出电容取值的推导过程,电感感量的计算过程
3、boost各处电压,电流波形
4、buck,boost公式汇总
5、实际电路应用情况

 

Buck的拓扑结构

Buck是直流转直流的降压电路,下面是拓扑结构,作为硬件工程师,这个最好是能够记下来,了然于胸

为啥要记下来,自然是因为这个电路太基础了,并且谁都会用到,更重要的一点,面试可能会考。。。

上图是个异步buck,同步buck就是将里面的二极管换成MOS管。

我用异步buck来分析的原因,就是觉得它要复杂一点,多了一个二极管导通压降,如果异步的明白了,那么同步的自然也明白了。

并且,根据这个拓扑推导的公式也是适用同步Buck的,只需要让公式里面的二极管压降为0即可。

 

首先,还是来看下工作原理

工作原理其实非常简单,上图中MOS管就是一个开关,只要这个速度够快(开关频率够高),控制好导通与关断时间(电感充放电时间),配合输出滤波电容,就可以得到基本稳定的Vo了,也就是输出电压。


下面来看下两个过程开关导通开关断开

先看开关导通

开关导通时,二极管不导通,我们看电感,电感左边是Vi,右边是Vo,因为是降压,所以左边大于右边,那么电感两端电压是Vi-Vo,为恒定值。如果把电感电流向右定义为正,那么电感电流是线性增大的,因为L*di/dt=Vi-Vo,那么di/dt=(Vi-Vo)/L=常数。

开关断开时,电感要续流,会产生反向电动势,让二极管导通,二极管导通电压是Vd。因为二极管阳极接地,所以阴极电压是-Vd,也就是电感左边的电压就是-Vd,右边的电压是Vo不变,因此电感两端电压是-Vd-Vo。此时电感电流是线性减小的,因为L*di/dt=-Vd-Vo,di/dt=-(Vo+Vd)/L=常数,并且是负值,所以是线性减小的。

 

推导公式

我们推导公式,是为了选型,选择输入滤波电容,输出滤波电容,电感

那么先把已知条件列出来

首先是输入电压Vi,输出电压Vo,输出电流Vo/R,咱总得知道自己想要什么吧,所以这些在设计之初都是已知的。

其次是开关频率f,这个在芯片选型之后就是确定的了。

再然后就是设计的目标,输入纹波大小△Vi,输出纹波大小△Vo。

我们根据这些已知的量,就可以求得电感感量,输入滤波电容大小,输出滤波电容大小。

 

因为计算的基本原理其实就是电容和电感的充放电。所以,我们首先要求的就是开关导通的时间和断开的时间,或者说是占空比

 

这个也非常简单,我们可以这么想

在开关导通的时候,电感两端电压是Vi-Vo。

在开关断开的时候,输出端电压为Vo,二极管导通,那么电感右侧就是Vo,电感左侧接的是-Vd,所以此时电感两端电压是Vo+Vd。

整个电路稳定之后,因为负载电流恒定,那么一个周期时间之内,在开关导通时电感电流增加的量,要等于开关截止时,电感电流减小的量,即电感充了多少电就要放多少电,不然负载的电流或者电压就要发生变化。

即一个周期内,电感电流增大量等于减小量。

然后又因为U=Ldi/dt,di/dt=U/L,L不变,所以电感电流变化速度与电压成正比。

简单说就是,电感电流上升或下降的斜率与电压成正比

斜率与电压成正比,电感电流上升的高度与下降高度又相同,那上升时间不就和电压成反比了吗?

所以,自然就有了:

Ton/Toff=(Vo+Vd)/(Vi-Vo)

我们变换一下,就得到了江湖所传的“伏秒法则

再根据T=Ton+Toff=1/f

我们可以分别求得导通时间,关断时间,占空比。

如果是同步buck,那么Vd=0,则会见到我们经常看见的公式:

 

功率电感选择

我们电感选型首先需要考虑两个参数,电感感量电感电流

电感电流分为2个,平均电流IL纹波电流△IL

 

先看平均电流

显然,输出电压Vo基本不变,也就是说输出滤波电容两端电压没有变化,那么电容的平均电流为0,根据输出节点的基尔霍夫电流定律,节点电流和为0,那么电感的平均电流就等于负载的平均电流Io。

IL=Io=Vo/R


然后我们再来求电感的纹波电流△IL

从前面知道,电感电流就是个三角波,在开关导通时电感电流增大,在关断时,电感电流减小。

那纹波电流的大小求起来就简单了,就等于在开关导通时电感电流增大的值,也等于关断时电感电流减小的值。

我们就计算其中一个,计算开关导通时电感电流增大了多少吧。

这个也非常easy,开关导通,电感两端电压是Vi-Vo,导通时间Ton前面已经求出来了。

根据U=Ldi/dt就可以求出电感电流纹波△IL=di=U/L*Ton

可以看到,电感电流的纹波跟负载电流的大小没有关系

同时呢,我们也很容易得到电感的峰值电流,就是电感的平均电流加上纹波电流的一半嘛,即ILp=IL+△IL/2=Io+△IL/2。

也就是:

计算这个峰值电流有什么用呢?

电感选型时,电感的饱和电流必须大于这个ILp,并且要留一定的裕量。

 

现在我们已经写出来了电感的平均电流IL,电感的纹波电流△IL,△IL应该是IL的20%-40%为宜

即:△IL=(0.2~0.4)*IL

根据这个范围,就能求得我们的电感值范围了。

输入滤波电容计算

我们在确定输入滤波电容的时候,是有一个假设的,这个假设是什么呢?

输入电源默认来自远方,是没法提供快速变化的电流的

实际应用中,输入电源可能距离很远,有了很长的走线,走线越长,寄生电感就越大,也就是说输入电源不能快速响应这个Buck输入电流的需求。

因此,我们在一个周期时间内,可以将输入电源的电流看作是恒定的,稳定状态下,这个电流也等于电源输入的平均电流Ii,我们先求一下电源输入的平均电流Ii

 

怎么求电源的输入电流呢?

很简单,使用能量守恒定律就可以了。

不考虑MOS管的损耗的话,那么用耗电的器件有2个,一个是二极管,一个是负载R。

由工作原理可知,二极管只在MOS开关断开时有电流流过,其电流等于电感电流,并且一个周期内有电流流过的时间为Toff,所以二极管的平均电流也等于电感的平均电流,为IL=Io。

一个周期内二极管流过电流的时间为Toff,电流为IL,导通压降为Vd。

所以二极管的功率为:

Pd=Vd*Io*Toff*f =Vd*Io *(Vi-Vo)/(Vi+Vd)

负载的功率是Pr=Io*Vo

电源输入功率Pi=Vi*Ii

根据能量守恒,Pi=Pr+Pd,可以得到输入电源的平均电流Ii为

现在已经求出Ii,在一个周期内,电源的输入电流可以看成恒定值,为Ii

 

了解了这个前提条件,我们回到目标:计算输入滤波电容的容量

我们先理清下思路,输入电压纹波就是输入电容上面的电压变化。电容上面的纹波变化可以分成两个部分

一个是电容放电或者是充电,存储了电荷量发生了变化,这个变化会导致电压变化,可以用公式Q=CUq来表示,Uq即是电压的变化。

另一个是电容有等效串联电阻ESR,电容充放电时有电流流过,电流流过ESR会产生压降,这个压降用Uesr表示吧。

所以,电压纹波应该是:

△Vi=Uq+Uesr

 

1、电容电荷量变化引起的压降Uq

我们看输入节点,这个节点的电流有3个,一个是来自电源Vi输入的,前面说了,在一个周期内,它可以看作是恒定的,一个节点是电容,另外一个节点是开关

根据基尔霍夫电流定律,节点电流和为0,并且电源输入的电流恒定为Ii,那么输入电容电流的变化量必然等于开关电流的变化量,因为最终3者的和为0。

也就是说,开关断开时,开关电流为0,那么电源输入的电流全都流进输入电容,电容被充电,此时电容的充电电流为Ii。而开关导通时,电感需要续流,这个电流由电源输入和输入滤波电容二者共同提供,电容此时放电。

并且,开关切换的时候,开关电流是突变的。而三者电流和为0,那么电容的电流必然也是突变的。

我们画出三者的电流波形如下:

一个周期内,电容的充电电荷量和放电电荷量必然一样,我们计算出其中一个就行了。

显然,充电的时候更好计算,因为充电时开关断开,电容的电流就是电源的输入电流,是恒定的,为Ii。

根据Q=I*t,那么充入的电荷量为Q=Ii*Toff,电容充入电荷,会导致电压变大,这个电压的增量这里取个名字叫Uq,那么Q=Uq*C,也就是Uq=Q/C=Ii*Toff/C

最终可以求得Uq


2、电流流过电容的ESR造成的压降Uesr

想要知道ESR造成的纹波大小,我们只需要知道流过电容的电流就知道了,因为电压等于电流乘以ESR。

我们把电容的电流波形单独画一下。

这个波形下面解释下

开关断开的时候,电源输入电流Ii全部进入输入滤波电容,因为li恒定,因此输入滤波电容的电流就是恒定为li,此时电容充电,如果我们把充电电流定义为正,那么电流就是+li。

开关导通之后,电感原本从二极管续流,变成了从MOS管续流,因为之前电感一直在放电,所以切换时电感电流最小,等于IL-△IL/2,在整个Ton时间段内,电感是被充电的,所以电感电流一直在增大,直到达到峰值电流IL+△IL/2。

并且在Ton时间内,电感电流走的是MOS管通路,因此,Mos管电流最大也是IL+△IL/2。根据输入节点电流和为0,这个电流等于输入电源电流Ii和滤波电容的放电电流,所以滤波电容的最大放电电流为IL+△IL/2-Ii。因为前面定义了充电电流为正,那么放电电流就为负,即滤波电容电流是:-(IL+△IL/2-Ii)。

 

知道了电流,ESR,那么我们就知道了纹波大小

在开关断开时,ESR上面产生的压降是恒定的,为:Ii*ESR

在开关导通后,ESR上面产生的最大压降是:-(IL+△IL/2-Ii)*ESR

两者相减,得到的就是一个周期内ESR引起的纹波大小,也就是:

Uesr=(IL+△IL/2)*ESR

计算过程如下:


好,我们已经算出Uesr和Uq。

那么根据△Vi=Uesr+Uq,我们就可以△Vo的表达式了,如果知道△Vo,我们也能得到输入滤波电容Ci的大小或者是ESR了。

输入总的纹波公式

这个公式看着有点复杂,有两个参数都跟电容本身有关系,ESR和容量Ci

 

考虑到我们的电容实际使用情况

陶瓷电容ESR小,容量小,Uq对纹波起决定作用,所以输入纹波电压可以近似为Uq,如果我们要限定纹波不能大于△Vi,那么Uq≤△Vi。

铝电解电容容量大,ESR大,Uesr对纹波起决定作用,所以输入纹波电压可以近似Uesr,如果我们要限定纹波不能大于△Vi,那么Uesr≤△Vi

 

根据上面两点,我们就可以去选择合适的电容了。

 

陶瓷电容根据容量值去选

铝电解电容根据ESR去选

好,现在输入电容的理论计算已经搞定了,我们接着看输出滤波电容。

 

输出滤波电容

相比输入纹波△Vi大小,我们可能更关心输出纹波△Vo的大小,毕竟是要带负载的。同样,纹波由电容容量和ESR决定。

 

1、电容电荷量变化引起的Uq

我们看输出节点,这个节点的电流有3个,一个是来自负载的,它可以看作是恒定的,为Io=Vo/RL,一个节点是输出滤波电容,另外一个节点是电感。

根据基尔霍夫电流定律,节点电流和为0,并且负载的电流恒定,那么电感电流的变化量必然等于电容电流的变化量,因为最终3者的和为0。

 

我们画出三者的电流波形如下:

根据节点电流和为0,那么输出电容的电流变化就是功率电感的电流变化(你增大时我减小,你减小时我增大)。我们从上图也可以很直观的看出来。

 

显然,电容电流大于0时,电容在充电,电容电流小于0时,电容在放电。并且图中也可以看到,电容充电和放电时间长度是一样的,都是周期的一半,T/2

 

那充放电的电荷量是多少呢?

从前面知道,输出电容的电流变化就是功率电感的电流变化,因为电感的纹波电流是△IL,那么电容的纹波电流也是 △IL。又因为电容的平均电流是0,所以电容的充电电流和放电电流都是△IL/2。

需要注意,电容电流是在大于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,那么根据△Vo=Uesr+Uq,就可以求出总的输出纹波大小△Vo。

根据上面两点,我们就可以去选择合适的电容了。

 

陶瓷电容根据容量值去选

陶瓷电容ESR小,容量小,Uq对纹波起决定作用,所以可以近似为Uq,如果我们要限定纹波不能大于△Vo,那么Uq≤△Vo

 

铝电解电容根据ESR去选

公式到这里就基本推完了。

 

公式汇总

下面把Buck所有的公式汇总下,如下图:

之前写过boost的公式推导,不过没汇总公式,现在也汇总如下:

 

实际电路应用

公式现在都已经推出来了,这些公式都是从拓扑结构里面推出来的,我们也会在很多芯片手册中看到这些公式,那么我们设计时,按照这些公式选择电容可以吗?

答案是:no,no,no!

 

原因在于,实际我们使用的器件都不会是理想的。

就陶瓷电容来说,一个直流偏压特性,可能就使得电容实际容量只有标称值的30%甚至更低。

还有电容会有ESL等参数,电路本身还有会其它的损耗等等,这些都会使得buck/boost实际输出与理论推导有较大的出入。

虽然这些公式不能直接套用,但是我们根据它们也能大致知道是个什么情况,所以其作用还是有的,我们设计时也需要去算一算的。

 

这些因素具体有多大的威力,以及实际电路该如何考量。因为我在之前的《手撕Boost!Boost公式推导及实验验证一文中,进行了大量的实验以及分析,现在就不再说了,有兴趣可以去翻一翻。

来源:硬件工程师炼成之路

附件

免费硬件工程师炼成之路笔记.txt
电源电路芯片理论控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-04-30
最近编辑:1年前
获赞 22粉丝 45文章 179课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈