第四节:开关充电电路——Buck/Boost拓扑在电容充电中的应用与恒流充电模式

各位工程师朋友,咱们接着聊电容充电。前面讲了线性充电和RC充电,说白了都是“硬充”。效率低、发热大,充大电容时尤其痛苦。我记得刚入行那会儿,给一个1000μF的电容充电,用线性方案,散热片烫得能煎鸡蛋。后来换了开关拓扑,世界一下子清净了。

今天重点讲两个拓扑:Buck(降压)和Boost(升压)。它们在电容充电里怎么用?恒流模式怎么实现?我把自己踩过的坑和总结的经验都摊开来讲。

4.1 为什么电容充电要用开关拓扑?

你想想看,电容充电本质上是一个能量转移过程。线性方案把多余的能量以热量形式扔掉,开关方案则是“精打细算”地转移能量。效率从30%-50%直接跳到85%-95%。

我个人的习惯是:只要电容容量超过100μF,或者充电电压超过12V,我第一反应就是上开关拓扑。原因很简单——不想在散热上花冤枉钱。

核心优势对比:

  • 效率高:开关管工作在饱和/截止区,损耗小
  • 发热低:同样功率,散热器体积可以缩小3-5倍
  • 输入电压范围宽:Buck/Boost可以适应不同输入
  • 恒流精度好:通过PWM和电流采样,控制更精细

4.2 Buck拓扑:高压电容充电的主力

Buck拓扑,说白了就是降压。输入电压高于输出电压时用它。电容充电场景里,最常见的是用24V或48V给一个12V或24V的电容组充电。

基本工作原理:

开关管导通时,输入通过电感和电容形成回路,电感储能;开关管关断时,电感通过续流二极管继续向电容供电。嗯,这里要注意——电容充电和给电池充电有个本质区别:电容电压是线性上升的,不是恒定的。

我在项目中遇到过一个问题:用标准Buck芯片给电容充电,结果芯片炸了。为什么?因为电容初始电压为0,相当于输出短路。很多Buck芯片的软启动时间不够长,电流冲击直接烧管子。

避坑指南:

我曾经因为没加软启动电路,连续烧了3块样板。后来学乖了——要么选带可调软启动的芯片,要么自己加RC软启动网络。软启动时间建议设置在10ms-50ms之间,具体看电容大小。

恒流充电模式实现:

Buck拓扑做恒流充电,核心是电流采样和反馈控制。我常用的方案有两种:

  1. 低端电流采样:在电感或MOS管源极串一个小电阻,检测峰值电流
  2. 高端电流采样:在输出端串采样电阻,用差分放大器检测

我个人偏爱低端采样,简单、便宜。但要注意共模电压问题。下面给一个典型的Buck恒流充电电路参数:

参数 典型值 说明
输入电压 24V 工业标准电源
充电目标电压 12V 电容组额定电压
恒流值 2A 根据电容容量调整
开关频率 100kHz 平衡效率和体积
电感值 47μH 保证连续导通模式
采样电阻 0.1Ω 2A时压降0.2V

4.3 Boost拓扑:低压升高压充电

Boost拓扑,就是升压。输入电压低于输出电压时用它。比如用5V USB给一个48V的电容组充电,或者用12V给100V的脉冲电容充电。

Boost充电有个特点:输入电流比输出电流大。因为功率守恒嘛。你想想看,5V输入要升到48V,电压升了将近10倍,电流就得降下来。但输入端的电流峰值会很高,这对电源和布线都是考验。

Boost恒流充电的难点:

  • 启动冲击大:电容初始电压0,Boost相当于工作在极限占空比
  • 输出纹波大:因为Boost拓扑的输出电容直接承受开关纹波
  • 环路补偿难:电容负载的阻抗随电压变化,补偿网络要适应宽范围

我的经验:

做Boost电容充电,我建议用预充电+恒流两段式。先用一个小电流把电容预充到输入电压的80%左右,再切换到恒流模式。这样能避免启动时的失控状态。我有个项目就是用12V给200V电容充电,不加预充电,每次上电都像放鞭炮——啪的一声,MOS管就没了。

4.4 恒流充电模式详解

恒流充电,说白了就是让充电电流保持恒定,不管电容电压怎么变。这对开关拓扑来说,是通过调整占空比实现的。

控制逻辑:

电流采样 -> 误差放大 -> PWM调制 -> 驱动开关管

我常用的控制芯片是UC3843和LM5117。UC3843便宜、皮实,适合做峰值电流控制;LM5117功能全,适合做精密恒流。

下面给一个基于UC3843的Buck恒流充电代码框架(伪代码,实际用硬件实现):

// 恒流充电控制逻辑(硬件实现)
// 电流参考值:I_ref = 2A
// 采样电阻:R_sense = 0.1Ω
// 反馈电压:V_fb = I_ref * R_sense = 0.2V

while (V_cap < V_target) {
    // 读取电流采样电压
    V_sense = read_ADC(电流采样引脚);
    
    // 误差计算
    error = V_ref - V_sense;  // V_ref = 0.2V
    
    // PID调节(简化版)
    duty_cycle = duty_cycle + Kp * error;
    
    // 限制占空比范围
    if (duty_cycle > 0.9) duty_cycle = 0.9;
    if (duty_cycle < 0.1) duty_cycle = 0.1;
    
    // 更新PWM
    set_PWM_duty(duty_cycle);
    
    // 延时等待
    delay(10us);
}

// 电压达到目标,切换到恒压模式
进入恒压充电模式();

恒流充电的关键参数:

  • 电流精度:一般要求±5%,精密场合±1%
  • 响应速度:开关频率的1/10到1/100
  • 纹波电流:控制在恒流值的10%以内
  • 过冲:启动时电流过冲不超过设定值的20%

4.5 实战中的注意事项

嗯,最后聊几个实战中容易忽略的点:

  1. 电感饱和:电容充电时电流变化范围大,电感要选饱和电流大于峰值电流1.5倍的型号。我吃过这个亏,电感一饱和,电流直接失控。
  2. 输出电容:虽然我们是给外部电容充电,但开关拓扑本身也需要输出电容来稳定环路。建议至少加10μF的陶瓷电容。
  3. 保护电路:过流保护、过压保护、反接保护,一个都不能少。我曾经因为忘了加反接保护,客户把电源接反了,整个板子冒烟。
  4. 热设计:开关管和续流二极管是主要发热源。我习惯在PCB上留足铜皮散热,必要时加小散热片。

安全提醒:

高压电容充电,安全永远是第一位的。即使是用低压Buck/Boost,电容储能释放时也可能造成伤害。我建议:

  • 充电完成后,加放电电阻自动泄放
  • 高压部分加绝缘罩
  • 调试时用隔离变压器供电
  • 手边常备放电棒

好了,这一节的内容就到这里。Buck和Boost拓扑在电容充电里各有千秋,选哪个主要看你的输入输出关系。恒流模式是核心,控制好了,充电效率和安全性都能上一个台阶。下一节我们聊一聊谐振充电拓扑,那个更有意思。