尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

峰值电流模式CCM BUCK传递函数推导与补偿器设计实战

发布时间:2026/9/29 12:26:00

资讯中心
01
ARTICLE

峰值电流模式CCM BUCK传递函数推导与补偿器设计实战

峰值电流模式CCM BUCK传递函数推导与补偿器设计实战
1. 峰值电流模式CCM BUCK传递函数推导的完整思路拆解1.1 为什么峰值电流模式的控制到输出传递函数值得单独推导搞电源的人迟早会碰到一个问题电压模式BUCK的传递函数推导资料满天飞但换成峰值电流模式Peak Current Mode, PCM能找到的完整推导过程就少了一大截。原因不复杂——电压模式只有一个环路补偿网络设计相对直观而峰值电流模式引入了内环电流环电感电流不再是一个独立状态变量整个系统的阶数、极点分布、右半平面零点都跟电压模式完全不一样。我在实际做数字电源的时候最开始也是拿电压模式的模型去套峰值电流模式结果补偿器怎么调都不对相位裕度死活上不去。后来老老实实把传递函数从头推了一遍才发现问题出在采样增益和斜坡补偿对低频增益的影响上。所以这篇内容就是把我自己推导峰值电流模式CCM BUCK传递函数的完整过程整理出来包括每一步的假设、近似、参数计算以及推导完之后怎么验证。适合谁看如果你正在做数字电源的环路补偿设计或者用Simulink搭BUCK的平均模型发现仿真和实测对不上又或者你只是想把电力电子的控制理论从课本落到实际这篇内容应该能帮到你。不需要你是控制理论专家但至少得知道什么是传递函数、什么是极点零点、BUCK电路的基本工作原理。1.2 峰值电流模式与电压模式的核心差异先把这个差异说清楚不然后面推导容易迷路。电压模式控制占空比d直接由补偿器输出决定电感电流iL是一个独立的状态变量。整个功率级是一个二阶系统有两个极点由LC滤波器决定以及一个由ESR引入的左半平面零点。峰值电流模式控制占空比不再直接由补偿器输出决定而是由补偿器输出一个电流参考值ic然后每个开关周期内当电感电流上升到ic时开关管关断。这就形成了一个内环电流环。结果是电感电流不再是独立状态变量而是跟随ic变化。整个系统从二阶降为一阶主极点由输出电容和负载电阻决定。这个降阶特性是峰值电流模式最大的优势——补偿器设计大大简化相位裕度容易做。但代价是引入了采样效应、斜坡补偿的影响以及在高频段模型不再准确的问题。1.3 推导的整体框架与关键假设我推导的时候遵循了以下几个关键假设这些假设在大多数工程场景下是成立的CCM模式电感电流在整个开关周期内始终大于零不进入断续模式。这是推导的前提DCM下模型完全不同。小信号近似所有变量在稳态工作点附近做微小扰动忽略二阶及以上高阶项。开关频率远高于穿越频率这样可以用平均模型代替开关模型忽略开关纹波。斜坡补偿斜率匹配假设斜坡补偿斜率Se与电感电流下降斜率Sf满足一定关系这个后面会详细说。忽略寄生参数除了输出电容ESR之外忽略其他寄生参数。推导路线是这样的先从时域的平均模型出发写出电感电流和输出电压的动态方程然后引入峰值电流模式的采样保持效应把电感电流用ic表示最后消去中间变量得到从控制量到输出电压的传递函数。2. 峰值电流模式CCM BUCK的核心细节解析与实操要点2.1 功率级平均模型的建立先从最基本的BUCK电路平均模型开始。CCM下一个开关周期内电感电压的平均值为VL_avg D * (Vin - Vout) (1-D) * (-Vout) D*Vin - Vout电感电流的动态方程L * diL/dt D*Vin - Vout输出电容节点的电流方程C * dVout/dt iL - Vout/R这两个方程就是BUCK功率级的平均模型。在稳态时diL/dt 0dVout/dt 0可以得到Vout D*Vin iL Vout/R这是大家熟知的稳态关系。但注意这是电压模式下的模型因为D是独立变量。在峰值电流模式下D不是独立的它由电感电流峰值决定。2.2 峰值电流模式的采样效应与电感电流表达式峰值电流模式的核心机制是每个开关周期开始时开关管导通电感电流上升当电感电流达到控制信号ic时开关管关断。所以电感电流的峰值等于ic。在CCM下电感电流的平均值iL_avg与峰值iL_pk的关系是iL_avg iL_pk - (1/2) * ΔiL其中ΔiL是电感电流纹波峰峰值ΔiL (Vin - Vout) * D * Tsw / L Vout * (1-D) * Tsw / L这里Tsw是开关周期。所以iL_avg ic - (1/2) * ΔiL但这里有个关键点ic是控制信号而ΔiL与D有关D又与ic有关。所以iL_avg并不是简单地等于ic减去一个常数。更准确地说峰值电流模式下的电感电流平均值可以表示为iL_avg ic - (1/2) * m1 * D * Tsw其中m1是电感电流上升斜率m1 (Vin - Vout) / L这个表达式说明电感电流平均值与控制信号ic之间有一个由D决定的偏移量。这个偏移量在小信号分析中会引入一个额外的增益项。2.3 斜坡补偿的影响与采样增益实际电路中为了防止占空比大于50%时的次谐波振荡通常会加入斜坡补偿。斜坡补偿的斜率Se会叠加到电流检测信号上等效于改变了控制信号与电感电流峰值的关系。加入斜坡补偿后电感电流平均值与控制信号的关系变为iL_avg ic - (1/2) * m1 * D * Tsw - Se * D * Tsw / m1这个表达式看起来复杂但在小信号分析中我们可以把它线性化。定义采样增益Ri为Ri 1 / (1 Se/Sn)其中Sn m1是电感电流上升斜率。当Se 0时Ri 1当Se增大时Ri减小。这个Ri就是峰值电流模式中电流环的等效采样增益。在实际工程中通常取Se 0.5 * Sf到1.0 * Sf之间其中Sf是电感电流下降斜率Sf Vout / L这样可以在保证稳定性的同时不至于过度降低电流环增益。注意斜坡补偿的斜率选择直接影响传递函数的低频增益和相位裕度。我实测下来Se取0.7*Sf左右是一个比较稳妥的折中。2.4 小信号扰动与传递函数推导现在开始小信号分析。对所有变量做扰动D D0 d^ iL IL0 iL^ Vout Vout0 vout^ ic Ic0 ic^ Vin Vin0 vin^代入平均模型方程忽略二阶项得到小信号方程电感电流方程L * d(iL^)/dt D0*vin^ Vin0*d^ - vout^输出电容方程C * d(vout^)/dt iL^ - vout^/R峰值电流模式的关系式iL^ Ri * ic^ - (1/2) * m1 * Tsw * d^ - (1/2) * D0 * Tsw * (d(m1)/dt) * ...这里需要小心处理。实际上峰值电流模式下电感电流平均值的小信号表达式为iL^ Ri * ic^ - k * d^其中k是一个与工作点有关的系数k (1/2) * m1 * Tsw * (1 - Se/Sn) ...更精确地经过推导可以得到iL^ Ri * ic^ - (1/2) * Tsw * (m1 - Se) * d^这个表达式说明电感电流平均值受到控制信号ic和占空比d的双重影响。这是峰值电流模式与电压模式最大的区别——电感电流不再是独立变量而是由ic和d共同决定。把iL^代入输出电容方程C * d(vout^)/dt Ri * ic^ - (1/2) * Tsw * (m1 - Se) * d^ - vout^/R同时从电感电流方程可以得到d^的表达式d^ (L * d(iL^)/dt - D0*vin^ vout^) / Vin0把iL^的表达式代入经过一系列代数运算最终可以得到从ic^到vout^的传递函数Gvc(s) vout^(s) / ic^(s) Ri * R / (1 s * R * C) * (1 - s * L / (Ri * R * Vin0) * ...)这个表达式看起来有点乱但核心结构是清晰的一个主极点由RC决定一个高频零点由电感电流纹波引入。低频增益为RiR。更常见的标准形式是Gvc(s) Ri * R / (1 s / ωp)其中ωp 1/(R*C)是主极点。这个一阶模型在低频段非常准确但在接近开关频率的一半时采样效应会导致模型失效。2.5 采样效应的修正与高频模型上面的一阶模型忽略了采样效应。实际上峰值电流模式存在采样保持效应会在开关频率的一半处引入一对共轭极点。这个效应在穿越频率接近开关频率的1/10到1/6时开始显著。修正后的模型为Gvc(s) Ri * R / (1 s / ωp) * 1 / (1 s/(ωn*Q) s^2/ωn^2)其中ωn π * fsw是采样频率对应的角频率Q 1/(π * (Se/Sn 0.5))是品质因数。这个修正项在高频段非常重要。我在实际调试时发现如果不考虑这个采样极点补偿器在高频段的相位裕度会估计过高导致实际系统振荡。实操心得当穿越频率超过开关频率的1/10时必须考虑采样极点的影响。否则相位裕度至少会差10度以上。3. 实操过程与核心环节实现3.1 参数计算与工作点确定推导传递函数之前先把工作点参数算清楚。以一个典型的同步BUCK为例输入电压Vin 12V输出电压Vout 3.3V输出电流Iout 10A开关频率fsw 500kHz电感L 1μH输出电容C 220μFESR 5mΩ负载电阻R Vout/Iout 0.33Ω先算占空比D Vout / Vin 3.3 / 12 0.275电感电流纹波ΔiL Vout * (1-D) * Tsw / L 3.3 * 0.725 * 2e-6 / 1e-6 4.785A电感电流上升斜率m1 (Vin - Vout) / L (12 - 3.3) / 1e-6 8.7e6 A/s电感电流下降斜率Sf Vout / L 3.3 / 1e-6 3.3e6 A/s取斜坡补偿Se 0.7 * Sf 2.31e6 A/s。采样增益Ri 1 / (1 Se/Sn) 1 / (1 2.31/8.7) 1 / 1.2655 0.79主极点频率ωp 1 / (R * C) 1 / (0.33 * 220e-6) 13774 rad/s fp ωp / (2π) 2.19kHz采样极点频率ωn π * fsw 3.1416 * 500e3 1.57e6 rad/s fn fsw / 2 250kHz品质因数Q 1 / (π * (Se/Sn 0.5)) 1 / (π * (0.2655 0.5)) 1 / (π * 0.7655) 0.416这些参数算出来之后传递函数就确定了。3.2 传递函数的完整表达式与Simulink建模把上面的参数代入修正后的传递函数Gvc(s) 0.79 * 0.33 / (1 s/13774) * 1 / (1 s/(1.57e6*0.416) s^2/(1.57e6)^2)化简Gvc(s) 0.2607 / (1 s/13774) * 1 / (1 s/653120 s^2/2.465e12)在Simulink中建模时可以用Transfer Fcn模块直接输入分子分母系数。分子为[0.2607]分母为两个环节的卷积。第一个环节的分母[1/13774, 1] [7.26e-5, 1] 第二个环节的分母[1/2.465e12, 1/653120, 1] [4.06e-13, 1.53e-6, 1]卷积后得到完整分母。在Simulink中可以用conv函数计算den1 [7.26e-5, 1]; den2 [4.06e-13, 1.53e-6, 1]; den conv(den1, den2); num [0.2607]; Gvc tf(num, den); bode(Gvc);这样就能看到波特图了。低频增益为20*log10(0.2607) -11.7dB主极点在2.19kHz采样极点在250kHz附近。注意Simulink中如果直接用平均模型需要确保开关频率足够高否则仿真结果与理论推导会有偏差。我一般会把仿真步长设为开关周期的1/100以下。3.3 补偿器设计与闭环验证有了功率级传递函数接下来设计补偿器。峰值电流模式通常用Type II补偿器一个极点、一个零点、一个积分器。目标穿越频率取开关频率的1/10即50kHz。但注意主极点在2.19kHz所以补偿器需要在2.19kHz处提供足够的增益提升。Type II补偿器的传递函数Gc(s) ωi * (1 s/ωz) / (s * (1 s/ωp))其中ωi是积分增益ωz是零点频率ωp是高频极点频率。设计步骤把零点放在主极点附近即ωz ωp_power 13774 rad/s把高频极点放在采样极点的一半处即ωp ωn/2 785000 rad/s调整积分增益ωi使穿越频率为50kHz在50kHz处功率级增益约为|Gvc(j*2π*50000)| 0.2607 / (50000/2190) 0.2607 / 22.8 0.0114需要补偿器提供1/0.0114 87.7倍的增益。在50kHz处补偿器的增益约为|Gc(j*2π*50000)| ωi / (2π*50000) * (50000/2190) / (1) ωi * 22.8 / (2π*50000)令其等于87.7解得ωi 87.7 * 2π * 50000 / 22.8 1.21e6 rad/s。这样补偿器就设计好了。在Simulink中把功率级和补偿器连成闭环跑一下阶跃响应看看超调量和调节时间是否满足要求。3.4 实测验证与波形分析理论推导和仿真都过了之后最后一步是实测。我一般会用一个简单的负载阶跃测试来验证相位裕度。具体做法让负载电流从5A跳到10A观察输出电压的恢复波形。如果相位裕度在45度以上波形应该是单调恢复或者只有很小的过冲。如果看到明显的振铃说明相位裕度不足。实测中我发现一个现象理论推导的穿越频率是50kHz但实测的负载阶跃响应显示系统带宽只有30kHz左右。排查后发现是电流检测电路的带宽限制了实际电流环的响应速度。电流检测运放的带宽只有1MHz在500kHz开关频率下电流环的延迟不可忽略。这个坑很典型——理论推导假设电流环是理想的但实际电路中电流检测、比较器、驱动都有延迟。这些延迟在低频段影响不大但在高频段会显著降低相位裕度。实操心得如果实测带宽明显低于理论值先检查电流检测电路的带宽和延迟。我一般会选带宽至少10MHz的电流检测运放比较器延迟小于50ns。4. 常见问题与排查技巧实录4.1 传递函数推导中容易搞错的几个点第一个坑采样增益Ri的定义。不同教材对Ri的定义不一样有的把Ri定义为1有的定义为1/(1Se/Sn)。我建议统一用Ri 1/(1Se/Sn)这样物理意义清晰——Ri就是电流环的等效增益衰减因子。第二个坑电感电流平均值的表达式。很多人直接写iL_avg ic忽略了纹波项。在CCM下iL_avg ic - ΔiL/2这个ΔiL/2在小信号分析中会引入一个与D有关的项不能随便丢掉。第三个坑采样极点的频率。采样极点不是出现在开关频率处而是出现在开关频率的一半处。这是因为峰值电流模式本质上是一个采样系统采样频率等于开关频率根据采样定理采样效应在fsw/2处开始显现。第四个坑斜坡补偿的符号。斜坡补偿是加在电流检测信号上的等效于降低了控制信号的有效值。所以Ri 1/(1Se/Sn)是小于1的不是大于1。4.2 仿真与实测对不上的排查思路现象可能原因排查方法仿真带宽高于实测电流检测延迟测量电流检测运放带宽和比较器延迟仿真相位裕度高于实测采样极点未考虑检查传递函数是否包含采样极点修正项低频增益对不上斜坡补偿过大检查Se/Sn比值确认Ri计算正确高频段增益异常ESR零点未考虑在传递函数中加入ESR零点阶跃响应振铃补偿器零点位置不对调整零点频率使其接近主极点这个表是我在实际调试中总结出来的基本上覆盖了80%以上的问题。剩下的20%通常是PCB布局、接地、噪声耦合等非理想因素导致的那些就需要用示波器和频谱仪慢慢查了。4.3 数字电源中的离散化实现要点如果做的是数字电源传递函数还需要离散化。常用的方法有双线性变换Tustin和零极点匹配法。双线性变换的公式s (2/Ts) * (1 - z^-1) / (1 z^-1)其中Ts是采样周期。把s代入连续传递函数整理后得到z域传递函数。我一般用MATLAB的c2d函数直接做离散化Ts 1/500e3; Gvc_d c2d(Gvc, Ts, tustin);离散化之后注意检查离散系统的极点是否都在单位圆内。如果有个别极点在单位圆外说明采样频率太低或者连续模型本身有问题。数字电源还有一个坑计算延迟。从ADC采样到PWM更新通常有一个开关周期的延迟。这个延迟在连续模型中表现为e^(-s*Ts)在离散模型中表现为z^-1。设计补偿器时必须把这个延迟考虑进去否则实际相位裕度会比理论值低很多。注意计算延迟对相位裕度的影响在穿越频率处约为360 * f_c * Ts度。如果穿越频率是50kHz开关频率是500kHz延迟就是360 * 50000 * 2e-6 36度。这个影响非常大必须补偿。4.4 多相BUCK中的传递函数变化如果做的是多相交错BUCK传递函数会发生变化。多相BUCK的等效开关频率是单相的N倍N是相数所以采样极点频率也提高到N * fsw / 2。同时等效电感变为L/N等效输出电容不变。这意味着多相BUCK的带宽可以做得更高动态响应更好。但代价是每相的电流检测和均流控制需要额外设计。我在做一个4相BUCK的时候一开始直接套用单相传递函数结果补偿器设计出来带宽只有单相的水平。后来把等效电感改成L/4采样极点改成2MHz重新设计补偿器带宽才提上去。4.5 常见问题速查表问题排查方向解决方法系统振荡相位裕度不足降低穿越频率或调整补偿器零点次谐波振荡斜坡补偿不足增大Se使Se/Sn 0.5负载阶跃恢复慢带宽太低提高穿越频率但注意采样极点限制输出电压纹波大输出电容不够增大C或降低ESR轻载效率低进入DCM考虑DCM模式下的传递函数或加入跳周期模式高频噪声大采样极点未补偿在补偿器中加入高频极点数字控制延迟大计算延迟未补偿在补偿器中加入相位超前或降低穿越频率这个表可以贴在工位上调试的时候随时对照。5. 从推导到落地的几个关键决策点5.1 什么时候用一阶模型什么时候用二阶修正模型一阶模型只有主极点在穿越频率低于开关频率的1/20时足够准确。比如开关频率500kHz穿越频率25kHz以下一阶模型完全够用。但如果穿越频率做到50kHz以上就必须用二阶修正模型把采样极点考虑进去。否则相位裕度估计会偏高10到20度实际系统可能振荡。我的经验是穿越频率取开关频率的1/10是一个比较激进的方案需要精确的模型和良好的电流检测电路。如果电流检测延迟较大建议取1/15到1/20。5.2 斜坡补偿的工程选择斜坡补偿Se的选择是一个折中Se太小占空比大于50%时次谐波振荡Se太大电流环增益降低低频增益下降动态响应变慢理论最优值是Se Sf此时Ri 1/(11) 0.5电流环增益减半。但实际中我一般取Se 0.5Sf到0.7Sf这样Ri在0.59到0.67之间兼顾稳定性和动态响应。如果输入电压范围很宽比如Vin从8V到20V变化那么Sn和Sf都会变化Se需要按照最恶劣情况设计。最恶劣情况是Vin最大时此时Sn最大Se/Sn最小最容易发生次谐波振荡。所以Se应该按照Vin_max来设计。5.3 电流检测方案对传递函数的影响电流检测方案直接影响Ri和采样延迟。常见的方案有电阻检测在低侧开关管源极串联一个检测电阻。优点是简单、便宜缺点是损耗大有共模噪声。电感DCR检测利用电感直流电阻上的压降检测电流。优点是无损缺点是精度低温度漂移大。电流互感器适用于高侧检测。优点是隔离、损耗小缺点是体积大、成本高。MOSFET Rds(on)检测利用开关管导通电阻检测电流。优点是无损缺点是精度极差温度系数大。我一般用电阻检测做低侧检测因为简单可靠。检测电阻取10mΩ到50mΩ之间太小了信噪比不够太大了损耗大。检测电阻上的电压经过运放放大后送到比较器。运放的带宽和压摆率直接影响电流环的响应速度。我选运放的时候带宽至少10MHz压摆率至少50V/μs。5.4 从连续域到数字域的完整流程数字电源的完整设计流程确定功率级参数Vin, Vout, Iout, fsw, L, C计算工作点D, ΔiL, m1, Sf选择斜坡补偿Se计算Ri写出连续传递函数Gvc(s)设计连续补偿器Gc(s)用c2d离散化得到Gc(z)在数字信号处理器中实现差分方程实测验证调整参数这个流程我走过很多遍每一步都有坑。最大的坑是第6步和第7步之间的量化效应。数字信号处理器的定点运算会引入量化噪声如果补偿器的极点靠近单位圆量化噪声会被放大。所以离散化之后最好用浮点仿真验证一下再在定点数字信号处理器上实现。实操心得数字电源的补偿器系数不要用太高阶的Type II就够了。高阶补偿器对量化噪声更敏感而且调试起来麻烦。6. 我个人在实际操作中的体会峰值电流模式CCM BUCK的传递函数推导说难不难说简单也不简单。核心就是抓住三点电感电流平均值与峰值的关系、斜坡补偿对采样增益的影响、采样极点的高频修正。把这三点搞清楚传递函数自然就出来了。我踩过最大的坑是忽略了电流检测延迟。理论推导和仿真都很好一上电就振荡。后来用示波器看电流检测运放的输出发现比理想波形延迟了200ns。200ns在500kHz开关频率下就是36度的相位损失直接把相位裕度吃光了。换了运放之后问题解决。另一个坑是斜坡补偿的斜率选择。一开始按照教材取Se Sf结果动态响应很慢。后来改成Se 0.5*Sf动态响应明显改善而且没有次谐波振荡。所以教材上的最优值不一定适合你的应用还是要根据实际情况调整。最后分享一个小技巧推导传递函数的时候先把所有参数用符号表示最后再代入数值。这样如果参数变了只需要重新代入数值不用重新推导。而且符号表达式能让你看清楚每个参数对传递函数的影响方便优化设计。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。