Buck电路单电压环闭环控制:PI控制器参数计算与设置实战指南

1次阅读
没有评论

共计 1963 个字符,预计需要花费 5 分钟才能阅读完成。

image.webp

背景痛点

在 Buck 变换器的闭环控制中,PI 参数的整定一直是个让人头疼的问题。传统的试错法不仅效率低下,还存在以下问题:

Buck 电路单电压环闭环控制:PI 控制器参数计算与设置实战指南

  • 调试周期长:反复修改参数并观察响应,一个项目可能耗掉几天时间
  • 稳定性风险:不当的参数组合可能导致系统振荡甚至损坏功率器件
  • 依赖经验:新手往往难以判断该增大 KP 还是 KI 来改善特定问题

理论基石

电压环传递函数推导

Buck 变换器的输出电压 Vo 与占空比 D 的关系可表示为:

\frac{V_o(s)}{D(s)} = \frac{V_{in}}{LCs^2 + \frac{L}{R}s + 1}

考虑 PWM 调制器和采样环节后,开环传递函数为:

G_{ol}(s) = \frac{V_{in}}{LCs^2 + \frac{L}{R}s + 1} \cdot \frac{1}{V_{m}} \cdot e^{-sT_d}

其中 Td 为系统总延迟时间。

Ziegler-Nichols 整定法

临界比例度法实施步骤:

  1. 先将 KI 设为 0,逐步增大 KP 直到系统出现等幅振荡
  2. 记录此时的临界增益 Kc 和振荡周期 Tc
  3. 根据 ZN 公式计算参数:
    K_P = 0.45K_c, \quad T_i = 0.85T_c

MATLAB 实战

自动计算 KP/KI 的示例代码

% Buck 电路参数
Vin = 12;       % 输入电压
Vo = 5;         % 输出电压
L = 10e-6;      % 电感
C = 100e-6;     % 输出电容
R = 2;          % 负载电阻
Vm = 1;         % PWM 调制幅值

% 建立开环传递函数
s = tf('s');
G_plant = Vin/(L*C*s^2 + L/R*s + 1) * (1/Vm);

% 添加延迟环节
Td = 1e-5;      % 系统延迟
G_ol = G_plant * exp(-s*Td);

% 使用 margin 获取穿越频率
[Gm,Pm,Wcg,Wcp] = margin(G_ol);
Kc = 1/Gm;      % 临界增益
Tc = 2*pi/Wcg;  % 临界周期

% ZN 法计算 PI 参数
Kp = 0.45*Kc
Ti = 0.85*Tc
Ki = Kp/Ti

% 验证闭环响应
Gc = Kp + Ki/s;
G_cl = feedback(Gc*G_ol, 1);
step(G_cl)

硬件在环验证

STM32 PID 算法实现

// 抗积分饱和的 PID 结构体
typedef struct {
  float Kp, Ki, Kd;  // PID 系数
  float integral;    // 积分项
  float prev_error;  // 上次误差
  float out_max;     // 输出限幅
  float out_min;
} PID_Handle;

float PID_Update(PID_Handle *pid, float setpoint, float feedback) {
  float error = setpoint - feedback;

  // 比例项
  float Pout = pid->Kp * error;

  // 积分项(带抗饱和)pid->integral += pid->Ki * error;
  if(pid->integral > pid->out_max) pid->integral = pid->out_max;
  else if(pid->integral < pid->out_min) pid->integral = pid->out_min;

  // 微分项
  float Dout = pid->Kd * (error - pid->prev_error);
  pid->prev_error = error;

  // 总和输出
  float output = Pout + pid->integral + Dout;
  if(output > pid->out_max) output = pid->out_max;
  else if(output < pid->out_min) output = pid->out_min;

  return output;
}

实测波形分析

通过示波器捕获的典型波形显示:

  • 启动过程:输出电压在约 2ms 内稳定,超调量 <5%
  • 负载阶跃(50%-100%):电压跌落 <100mV,恢复时间 1.5ms

避坑指南

实际工程中需注意:

  1. 电感饱和:
  2. 现象:大电流下电感值下降导致环路特性改变
  3. 对策:选用饱和电流余量大的电感,或增加电流环限制

  4. 采样延迟:

  5. ADC 转换时间、软件处理延迟会影响相位裕度
  6. 对策:优化采样时序,必要时采用硬件 PWM 触发 ADC

  7. 参数漂移:

  8. 输入电压、负载变化时可能需要自适应调整
  9. 对策:在线参数辨识或增益调度控制

拓展思考

双环控制相比单电压环的优势:

  • 动态响应更快
  • 对负载变化的鲁棒性更好

需要增加的传感器:

  • 电感电流检测:可采用采样电阻或霍尔传感器
  • 额外的 ADC 通道

实现要点:

  1. 电流环作为内环,带宽设为电压环的 5 -10 倍
  2. 需协调两个环路的输出限幅
  3. 注意两个环路采样时刻的同步

总结

通过理论计算与实验验证相结合的方法,可以系统性地解决 Buck 电路 PI 参数整定难题。建议初学者:

  1. 先用 MATLAB 仿真验证参数合理性
  2. 硬件调试时从保守参数开始逐步优化
  3. 记录每次参数修改后的波形变化规律

这种结构化方法比盲目试错效率提高数倍,且能培养对闭环控制的直观理解。

正文完
 0
评论(没有评论)