1. LLC增量式PI控制器设计背景与目标
在车载充电机(OBC)系统中,LLC谐振变换器的控制策略直接影响着充电效率和系统稳定性。传统PI控制器在LLC应用中面临两个主要挑战:一是输出电压的动态响应与稳态精度难以兼顾,二是在负载突变时容易因过流导致器件损坏。我们设计的增量式PI控制器采用双环结构,将电压环与电流限幅环解耦,通过1kHz的固定周期进行频率指令更新。
这个方案的核心优势在于:
- 电压环专注于稳态精度,通过误差积分和多种抗扰动策略确保输出电压稳定
- 电流环作为保护机制,只在检测到过流时介入控制
- 两环通过增量式算法实现无扰动切换,避免传统PI控制中常见的积分饱和问题
实际测试表明,这套控制方案在85-265VAC宽输入范围内,能使输出电压纹波控制在±1%以内,同时将过流响应时间缩短到100μs以内。下面我将详细拆解各环节的设计要点。
2. 控制架构设计与实现原理
2.1 硬件平台基础配置
我们的测试平台基于STM32F334 MCU,主要硬件参数如下:
| 参数项 | 规格 | 备注 |
|---|---|---|
| 开关频率范围 | 80kHz-500kHz | 由HRTIM模块生成 |
| ADC采样率 | 1MSPS | 同步采样Vout/Iout |
| 控制周期 | 1kHz | 与PWM周期解耦 |
| 死区时间 | 150ns | 硬件自动插入 |
关键提示:HRTIM的时钟配置需要确保在最高频率时仍有足够的分辨率。我们使用72MHz时钟源,通过预分频和周期重装载值实现0.1kHz的频率调节步进。
2.2 双环控制结构解析
2.2.1 电压环设计细节
电压环采用增量式PI算法,其离散化实现如下:
c复制// 电压环核心算法伪代码
void VoltageLoop_Update(void) {
float err = Vref - Vout_ADC;
float delta_u = Kp_v * (err - last_err) + Ki_v * err;
freq_cmd = LimitFrequency(freq_cmd + delta_u);
last_err = err;
}
参数整定要点:
- Kp_v决定动态响应速度,建议初始值设为频率范围的1%/V
- Ki_v影响稳态精度,需根据负载特性调整
- 加入0.5Hz/μs的斜率限制防止频率突变
2.2.2 电流限幅环设计
电流环采用单向增量控制,仅在Iout>Iref时介入:
c复制// 电流环核心算法
void CurrentLoop_Update(void) {
if(Iout_ADC > Iref) {
float df_i = Kp_i * (Iout_ADC - Iref);
freq_cmd = LimitFrequency(freq_cmd + df_i);
}
}
特殊处理:
- 设置5%的滞回区间防止频繁切换
- 动态调整Kp_i系数,在深度过流时加大调节力度
3. 核心算法实现与优化
3.1 增量式PI的定点数实现
为提升计算效率,我们在STM32上采用Q15格式定点数运算:
c复制// Q15格式增量PI实现
int16_t IncPI_Update(int16_t err, PI_Params* p) {
int32_t tmp = (int32_t)p->Kp * (err - p->last_err);
tmp += (int32_t)p->Ki * err;
tmp = tmp >> 15; // Q15转换
p->last_err = err;
return (int16_t)tmp;
}
优化技巧:
- 使用ARM CMSIS-DSP库的__SMULBB指令加速乘法
- 对Ki系数做动态缩放,在误差大时自动降低积分强度
- 加入抗积分饱和逻辑,当输出限幅时暂停积分
3.2 状态机设计与安全策略
控制逻辑通过状态机实现,主要状态包括:
| 状态 | 触发条件 | 关键操作 |
|---|---|---|
| STANDBY | 上电初始化 | 关闭PWM输出 |
| SOFT_START | 使能信号有效 | 频率从最高逐步下降 |
| RUN | 电压达到90%Vref | 双环控制激活 |
| FAULT | 保护触发 | 记录故障类型 |
状态切换时的注意事项:
- 软启动阶段采用指数曲线调整频率
- 任何故障触发后必须完成当前PWM周期再关闭
- 状态切换时需重置积分器并做平滑过渡
4. 实测问题与解决方案
4.1 常见异常现象处理
我们在开发中遇到的典型问题及解决方法:
-
轻载振荡问题
- 现象:空载时输出电压周期性波动
- 原因:电压环积分过强
- 解决:加入负载电流前馈,动态调整Ki
-
模式切换冲击
- 现象:电流环介入时频率跳变
- 原因:两环参数不匹配
- 解决:限制单周期最大频率变化量
-
ADC采样干扰
- 现象:随机控制指令异常
- 原因:PWM噪声耦合
- 解决:调整采样窗口避开开关瞬态
4.2 参数整定经验
通过大量实验总结的参数调整指南:
-
电压环参数
- 初始值:Kp=0.5Hz/V, Ki=0.1Hz/(V·s)
- 调试步骤:
- 设Ki=0,调整Kp获得临界振荡
- 取临界值的60%作为Kp
- 逐步增加Ki至动态响应满意
-
电流环参数
- 建议Kp=2×电压环Kp
- 过流保护阈值应留20%裕量
5. 性能优化进阶技巧
5.1 动态参数调整策略
在实际运行中,我们根据工况自动调节参数:
c复制// 动态参数调整示例
if(load_current < 10%) {
Ki_v *= 0.5; // 轻载时降低积分
} else {
Ki_v = default_Ki;
}
其他优化方向:
- 输入电压前馈补偿
- 温度依赖的参数校正
- 基于模型预测的频域优化
5.2 数字滤波器的应用
为抑制测量噪声,我们在软件中实现了二阶IIR滤波器:
c复制// 二阶IIR滤波器实现
float IIR_Filter(float input, Filter* f) {
float output = f->b0*input + f->b1*f->x1 + f->b2*f->x2
- f->a1*f->y1 - f->a2*f->y2;
// 更新历史状态
f->x2 = f->x1;
f->x1 = input;
f->y2 = f->y1;
f->y1 = output;
return output;
}
滤波器设计建议:
- 截止频率设为开关频率的1/10
- 采用双线性变换法设计数字滤波器
- 在RAM中保存滤波器状态变量
经过这些优化,系统在-40℃~85℃环境温度范围内都能稳定工作,实测效率曲线显示在额定负载下效率可达96.2%。这个方案目前已批量应用于多款车载充电产品中。
