共计 1963 个字符,预计需要花费 5 分钟才能阅读完成。
背景痛点
在 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 整定法
临界比例度法实施步骤:
- 先将 KI 设为 0,逐步增大 KP 直到系统出现等幅振荡
- 记录此时的临界增益 Kc 和振荡周期 Tc
- 根据 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
避坑指南
实际工程中需注意:
- 电感饱和:
- 现象:大电流下电感值下降导致环路特性改变
-
对策:选用饱和电流余量大的电感,或增加电流环限制
-
采样延迟:
- ADC 转换时间、软件处理延迟会影响相位裕度
-
对策:优化采样时序,必要时采用硬件 PWM 触发 ADC
-
参数漂移:
- 输入电压、负载变化时可能需要自适应调整
- 对策:在线参数辨识或增益调度控制
拓展思考
双环控制相比单电压环的优势:
- 动态响应更快
- 对负载变化的鲁棒性更好
需要增加的传感器:
- 电感电流检测:可采用采样电阻或霍尔传感器
- 额外的 ADC 通道
实现要点:
- 电流环作为内环,带宽设为电压环的 5 -10 倍
- 需协调两个环路的输出限幅
- 注意两个环路采样时刻的同步
总结
通过理论计算与实验验证相结合的方法,可以系统性地解决 Buck 电路 PI 参数整定难题。建议初学者:
- 先用 MATLAB 仿真验证参数合理性
- 硬件调试时从保守参数开始逐步优化
- 记录每次参数修改后的波形变化规律
这种结构化方法比盲目试错效率提高数倍,且能培养对闭环控制的直观理解。
正文完
