Buck变换器的闭环回路设计之PID调节已知20,5,1~10,100inosVVVVRfkHz===WW=,根据这些参数设计一个ccm模式下的闭环buck变换器,使其纹波电压不超过输出电压的0.5%。1.确定电容电感大小根据张占松《开关电源原理与设计》上的公式计算所需电感和电容的大小。max(1)2cDRLf-=代入数据可得37.5cLuH=,为了保证buck工作在ccm模式下,选取电感大小为21.250LLuH==。再根据以下公式2(1)8ooVDCLfV-³D可得电容大小为37.5CuF³,为了减小纹波电压,取500CuF=(电容的选取先通过这个公式确定一个初值,然后通过开环仿真确定其大小。根据开环仿真纹波电压大小,调整电容值。如果纹波电压过大,就加大电容,直到纹波电压在要求范围内。)2.buck的开环仿真假设电感dsr和电容esr分别为0.25lr=W和0.01cr=W。利用simplorer软件进行仿真,搭建如下电路。图1buck开环仿真电路图设置pwm_switch的开关频率为100kHz,占空比D=0.25.最终得到电感电流和输出电压波形如下图所示。0.005.0010.0015.0020.0025.0030.0035.0040.00Time[ms]0.001.252.503.755.006.257.508.75L1.I[A]CurveInfopk2pkavgL1.ITR0.78610.4364图2开环buck电感电流波形图0.005.0010.0015.0020.0025.0030.0035.0040.00Time[ms]0.001.002.003.004.005.006.00R1.V[V]CurveInfopk2pkavgR1.VTR0.01004.3656图3开环buck输出电压波形图由图3知,当电路稳定时,输出电感电流的平均值为0.4364LIA=,电感电流的峰峰值0.7861PKI=。显然有12PKLII,所以可知电路确实工作在ccm模式。将电感电流的波形图进行局部放大,可以发现buck确实工作在ccm模式。纹波电压为0.01V,在要求的范围内。所以,对于仿真来说,所选取的电容和电感的大小是合理的。38.4538.4638.4838.5038.5238.5438.5638.5838.59Time[ms]-0.250.000.250.500.751.001.22L1.I[A]CurveInfopk2pkavgL1.ITR0.78610.4364图4开环buck电感电流局部放大图3.buck闭环环路设计参照TI的资料,可知开环buck的传递函数为22001+()1zinsGsVssQ=++其中,0111,,/zcQrCLCLCww===,代入数据可得它们的值如下:530210/,6.324610/,3.1623zradsradsQww=´=´=开环Buck的开环传递函数粗略幅频特性曲线如下:图5buck开环传递函数粗略幅频特性曲线利用在matlab下运行如下脚本:Vin=20;l=50e-6;c=500e-6;r=1;rc=0.01;rl=0.25;omeg0=1/(l*c)^0.5;omegz=1/rc/c;omegzl=rl/l;Q=r/(l/c)^0.5;G1=tf(Vin*[1/omegz1],[1/omeg0^21/Q/omeg01]);margin(G1);可得所设计的开环buck幅频相频特性曲线如下图所示:-80-60-40-2002040Magnitude(dB)102103104105106107-180-135-90-450Phase(deg)BodeDiagramGm=Inf,Pm=12.4deg(at2.91e+004rad/sec)Frequency(rad/sec)图6开环buck幅频相频特性曲线由上图可知,穿越频率为412.9110/2/4.6cfkHzp=´=,开环buck的相位裕度为12.4°,小于45°,需要进行相位补偿。增益裕度为无穷大,不需要补偿了。常用的补偿方式有比例补偿,PI补偿,PD补偿,PID补偿等等。我们只要选取一种补偿方式使其相位裕度大于等于45°,幅值裕度大于7db就可以了。我们选取补偿后的穿越频率211010csffkHz==,对应的角频率为42226.2810/ccfradswp==´,利用matlab的点捕捉功能,在图上捕捉出角频率为2cw的点,如下图所示。2110csff=BodeDiagramGm=Inf,Pm=12.4deg(at2.91e+004rad/sec)Frequency(rad/sec)102103104105106107-180-135-90-450System:G1Frequency(rad/sec):6.28e+004Phase(deg):-161Phase(deg)-80-60-40-2002040System:G1Frequency(rad/sec):6.28e+004Magnitude(dB):-13.4Magnitude(dB)图710kHz幅频相频点捕捉图由上图可知,在频率为10kHZ处的相角为-161°。如果单单采用比例补偿,是不行的。因为采用比例补偿将开环buck的穿越频率由1cf增加到2cf后,此时的相位裕度为180°-161°=19°45°,显然不行。频率为10kHZ处的相角为-161°,要是buck稳定,在此处的相角最小应该为-135°(此时对应的相位裕度刚好为45°),只有这样,最终的相位裕度才能大于等于45°。所以,应该找一个相频曲线有大于0的部分补偿网络对该buck进行补偿(这里采用PI补偿是不行的,有兴趣的可以自己尝试)。根据各类补偿网络的相频曲线可知,有PD、PID补偿网络的相频曲线存在大于0的部分。在这里,为了增大静态增益,我们选取PID补偿网络对系统进行补偿(有1s部分)。4.PID补偿网络的参数设计采用PID补偿网络对我们的开环buck进行补偿,按照以下步骤就可以确定PID补偿网络的各个参数。1)首先将穿越频率调整到2110csff=处,具体计算方法如下:还是使用点捕捉功能,在matlab画出的幅频相频曲线上捕捉角频率为2cw是的幅值,如图7所示,可得此时幅值为13.4dB-,所以补偿网络的应该在开环的幅频曲线基础上加上13.4dB(向上平移13.4个单位),使穿越频率额由1cf变成到2cf。平移多少个单位,也可以通过计算得来。计算很简单,如下:452226.2810/210/cczfradsradswpw==´=´,所以10kHz对应的点也在斜率为40dB-的直线上,因此在相频曲线上取角频率为412.9110/cradsw=´和42226.2810/ccfradswp==´的两个点(设这两个点的幅值分别为1cA和2cA(单位dB)),利用直线斜率的定义可得:121240/lglgcccAAdBdecww-=--显然有10cA=(穿越频率过横轴),所以可得412422.911040lg40lg13.36.2810ccAww´=-=-´=´(和13.4差不多)补偿网络的电路图如下:图8PID补偿网络电路图由于取样电流一般为1mA左右,所以设置取样网络的两个电阻值14,31RkRk=W=W。取4pVV=(Vp是三角波峰值,闭环网络传递函数里最终因为三角波的比较环节会引入一个1Vp的比例因子,也相当于一个比例环节,所以这里需要将它带上),则有:220lg13.3(13.4)1RordBVpR=所以13.3/2013.3/202110441074RVpRk=´=´´=W。将PID网络的比例系数P乘到开环buck传递函数里去得到的传递函数如下:22001+2()11zPinsRGsVssRVpQ=´´++在matlab中运行如下脚本Vin=20;Vp=4;l=50e-6;c=500e-6;r=1;rc=0.01;rl=0.25;omeg0=1/(l*c)^0.5;omegz=1/rc/c;omegzl=rl/l;Q=r/(l/c)^0.5;R1=4e3;R2=74e3;Gp=tf(R2/R1/Vp*Vin*[1/omegz1],[1/omeg0^21/Q/omeg01]);margin(Gp)可以得到Gp的幅频相频曲线如下图所示:-60-40-200204060Magnitude(dB)102103104105106107-180-135-90-450Phase(deg)BodeDiagramGm=Inf,Pm=19.2deg(at6.26e+004rad/sec)Frequency(rad/sec)图9传递函数Gp的幅频相频曲线由上图可知,传递函数Gp穿越角频率为46.2610/rads´,很接近10kHz,所以2R选择基本合理。此时相角裕度也增加到了19.2°,几乎与161°互补,说明计算正确。2)提高静态增益为了能够使用PID补偿网络提供开环buck的静态增益,又不影响到它的幅值裕度(为什么会影响到幅值裕度请观察PID补偿网络的相频曲线)。因为PID补偿的相频曲线有个从-90°增加到0°的过程,而开环buck的相频曲初始有个从0°向180°减小的过程,如果把这个这两个过程叠加起来,可能为产生一个-180°的相角。这个-180°相角对应的频率所对应的幅值就是系统的幅值裕度的相反数。而在这两个过程中,PID补偿网络的幅值一直为正,开环buck的幅值也一直为正。这样一来,叠加后的幅值必然大于0,从而幅值裕度必然小于0,显然是不行的。因此,为了避免产生这种情况,我们应该选取合适的2C。根据PID补偿网络和Gp的相频曲线可知,如果我们使得下式成立,那么一定不会出现上文所说的那种情况。01022RCw=所以可得330101022126.3246107410CFnFRw===´´´现在可将PID补偿网络的PI部分加入开环buck的传递函数中,得到的新传递函数如下:22001+2(122)11221zPIinsRRCsGVssRRCsVpQ=´´++根据这个传递函数的幅频相频曲线可以判断我们选取的2,2RC是否合理。在matlab上运行如下脚本Vin=20;Vp=4;l=50e-6;c=500e-6;r=1;rc=0.01;rl=0.25;omeg0=1/(l*c)^0.5;omegz=1/rc/c;omegzl=rl/l;Q=r/(l/c)^0.5;G1=tf(Vin*[1/omegz1],[1/omeg0^21/Q/omeg01]);R1=4e3;R2=74e3;C2=21e-9;G2=tf(R2/R1*[R2*C21],[R2*C20]);GPI=series(1/Vp*G1,G2);margin(GPI)可得传递函数PIG的幅频相频特性曲线如下图所示:-100-50050100Magnitude(dB)101102103104105106107-180-135-90-450Phase(deg)BodeDiagramGm=Inf,Pm=18.6deg(at6.26e+004rad/sec)Frequency(rad/sec)由上图可得,PIG的穿越角频率为46.2610/rads´,与PG的穿越角频率相同,接近10kHz。相位裕度为18.6°,相对于pG的19.2°减小了0.6°,几乎可以忽略不计。这里没有出现我们上文说的幅值裕度为负的那种情况,说明我们的2C选择的基本合理。接下来,我们需要做的就是增大相位裕度,使其大于等于45°。3)提高相位裕度观察PID补偿网络的相频特性曲线可知,如果要提高开环buck的相位裕度,应该PID补偿网络的相频曲线上相角大于45-18.6=25.4ooo()的部分加到2cf上,也就是有20.1211cfRCp³。如果我们先取20.1211cfRCp=试试看,此时可确定1C的值如下:43220.10.10.110.42116.2610410ccCnFfRRpw====´´´(注:这里取得426.2610/cradsw=´是因为PI