资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过软件设置实现双向直流电源的轻载启动?

2025-12-19 10:32:34  点击:

  通过软件设置实现双向直流电源的轻载启动,核心目标是在电源启动阶段限制输入/输出电流,避免因电容充电或负载突变导致的过流冲击,同时确保系统稳定进入正常工作状态。以下是分步骤的详细实现方法,涵盖启动策略、软件算法、硬件协同及实际案例:

  一、轻载启动的核心需求

  双向直流电源(如Buck-Boost变换器)在启动时需满足以下要求:

  抑制电流冲击:

  输入/输出电容充电时,若直接全功率启动,可能导致瞬时电流超过器件额定值(如MOSFET的IDSS或电感的饱和电流)。

  双向兼容性:

  无论电源处于正向供电(Buck模式)还是反向充电(Boost模式),均需实现软启动。

  快速响应负载变化:

  轻载启动后,需能快速跟踪负载变化(如从空载到满载),避免动态过冲。

  故障隔离:

  启动失败时(如输出短路),需及时检测并进入保护状态。

  二、软件实现关键步骤

  1. 启动策略设计

  轻载启动的核心是控制PWM占空比的上升斜率,使电流和电压缓慢上升至目标值。常见策略包括:

  线性软启动:

  占空比从0线性增加至目标值,适用于对启动时间不敏感的场景。

  示例:

  c#define STARTUP_TIME 1000  // 软启动时间(ms)#define TARGET_DUTY 0.5    // 目标占空比void linear_soft_start(void) {    float duty = 0;    for (int t = 0; t < STARTUP_TIME; t += 10) {  // 每10ms更新一次        duty = (float)t / STARTUP_TIME * TARGET_DUTY;        set_pwm(duty);        delay_ms(10);    }    set_pwm(TARGET_DUTY);  // 最终设置为目标占空比}

  分段软启动:

  将启动过程分为多个阶段,每阶段采用不同斜率(如先快后慢),平衡启动速度和电流抑制效果。

  示例:

  cvoid staged_soft_start(void) {    // 阶段1:快速上升(0-0.2s,占空比到20%)    for (int t = 0; t < 200; t += 10) {        float duty = 0.2 * t / 200;        set_pwm(duty);        delay_ms(10);    }    // 阶段2:慢速上升(0.2-1s,占空比到50%)    for (int t = 200; t < 1000; t += 10) {        float duty = 0.2 + 0.3 * (t - 200) / 800;        set_pwm(duty);        delay_ms(10);    }}

  电流闭环软启动:

  通过实时监测电流,动态调整占空比,使电流始终低于设定阈值。

  示例(PID控制简化版):

  c#define CURRENT_THRESHOLD 5.0  // 电流阈值(A)#define KP 0.1. KI 0.01. KD 0.001  // PID参数float pid_control(float current, float target_current) {    static float integral = 0. prev_error = 0;    float error = target_current - current;    integral += error;    float derivative = error - prev_error;    prev_error = error;    return KP * error + KI * integral + KD * derivative;}void current_limited_start(void) {    float duty = 0;    while (duty < TARGET_DUTY) {        float current = read_current();  // 读取当前电流        float error = CURRENT_THRESHOLD - current;        if (error > 0) {  // 电流未超阈值,增加占空比            duty += pid_control(current, CURRENT_THRESHOLD);            duty = min(duty, TARGET_DUTY);        } else {  // 电流超阈值,减小占空比            duty *= 0.9;        }        set_pwm(duty);        delay_ms(10);    }}

  2. 双向模式切换处理

  双向电源需根据工作模式(Buck/Boost)调整启动策略:

  Buck模式(正向供电):

  启动时先限制输入电流,避免输入电容充电冲击。

  示例:

  cvoid buck_mode_start(void) {    set_direction(BUCK);  // 设置为Buck模式    linear_soft_start();   // 使用线性软启动}

  Boost模式(反向充电):

  启动时先限制输出电流,避免电池或负载端过流。

  示例:

  cvoid boost_mode_start(void) {    set_direction(BOOST);  // 设置为Boost模式    current_limited_start(); // 使用电流闭环软启动}

  3. 启动状态监测与故障处理

  超时保护:

  若启动时间超过设定值(如2s)仍未完成,触发故障报警。

  示例:

  c#define STARTUP_TIMEOUT 2000  // 超时时间(ms)void start_with_timeout(void) {    uint32_t start_time = get_system_time();    while (1) {        if (is_startup_complete()) break;  // 检查启动是否完成        if (get_system_time() - start_time > STARTUP_TIMEOUT) {            set_fault(STARTUP_TIMEOUT_FAULT);            break;        }        delay_ms(10);    }}

  输出短路检测:

  启动时若检测到输出电压无法上升或电流持续超限,立即关断PWM。

  示例:

  c#define VOLTAGE_THRESHOLD 40.0  // 输出电压阈值(V)void check_short_circuit(void) {    float voltage = read_output_voltage();    float current = read_current();    if (voltage < VOLTAGE_THRESHOLD && current > CURRENT_THRESHOLD) {        disable_pwm();        set_fault(OUTPUT_SHORT_FAULT);    }}

  三、实际案例:双向Buck-Boost变换器的轻载启动

  场景描述

  设备:双向DC/DC变换器,输入24V,输出48V,额定功率500W。

  启动目标:

  输入/输出电容充电时电流不超过5A,启动时间≤1s。

  支持Buck/Boost模式切换。

  实现步骤

  硬件配置:

  输入/输出电容:输入端100μF,输出端220μF。

  电流传感器:霍尔传感器ACS712(量程±30A)。

  PWM频率:100kHz。

  软件实现:

  启动策略:

  采用分段软启动:

  阶段1(0-0.3s):占空比从0线性上升至30%(快速充电)。

  阶段2(0.3-1s):占空比从30%缓慢上升至目标值(50%,Buck模式)或70%(Boost模式)。

  双向处理:

  通过检测输入/输出电压关系自动判断模式:

  cvoid auto_mode_select(void) {    float vin = read_input_voltage();    float vout = read_output_voltage();    if (vin > vout) set_direction(BUCK);    else set_direction(BOOST);}

  故障处理:

  启动超时时间设为1.5s,输出短路阈值设为8A。

  测试结果:

  

  四、注意事项

  硬件与软件协同:

  硬件上可在输入/输出端增加NTC热敏电阻,软件监测温度辅助保护。

  采样延迟补偿:

  若电流采样与PWM周期不同步,需在软件中补偿延迟(如预测下一周期电流值)。

  多任务调度:

  在RTOS中,将启动任务设为高优先级,确保实时性。

  EMC设计:

  在启动电路中增加磁珠或共模电感,抑制开关噪声对采样信号的干扰。

  五、总结

  通过软件实现双向直流电源的轻载启动,需结合分段占空比控制、双向模式自适应、实时故障监测等关键技术。核心步骤包括:

  选择合适的软启动策略(线性/分段/电流闭环);

  根据工作模式(Buck/Boost)调整启动参数;

  加入超时保护和短路检测机制;

  通过实际测试优化参数(如启动时间、电流阈值)。

  实际应用中需根据具体硬件参数(如电容容值、PWM频率)调整策略,最终实现启动时间<1s、电流冲击<5A、故障响应时间<10μs的可靠启动。