1. 项目概述
今天咱们来深度拆解一款3kW车载充电器(OBC)的开发全过程。作为一名在电源行业摸爬滚打十年的老工程师,我经手过不少车载电源项目,但这个基于DSP28035的方案确实有不少值得称道的设计巧思。不同于市面上常见的PID控制方案,这个设计采用了状态观测器算法,在动态响应和稳定性之间找到了不错的平衡点。
车载充电器开发本质上是在多重约束条件下的优化问题:需要满足汽车级EMC要求、保证92%以上的转换效率、控制BOM成本在合理范围,还要通过严苛的环境可靠性测试。这个3kW方案虽然用的都是常规器件,但在软硬件协同设计上有很多值得借鉴的细节处理。
2. 硬件设计解析
2.1 主控电路设计
方案采用TI的DSP28035作为主控芯片,这颗芯片在车载电源领域堪称"老兵新传"——虽然发布多年,但其内置的HRPWM模块(高分辨率PWM)和丰富的模拟外设,依然让它在中功率电源领域占有一席之地。原理图中几个关键设计点值得注意:
-
电源树设计:采用TPS7A4700和TPS7A3301构成±15V模拟电源,为运放供电。数字部分则用TPS5430生成3.3V,这种分离式设计能有效避免数字噪声污染模拟电路。
-
PWM输出电路:DSP的PWM1A/B和PWM2A/B分别驱动两个半桥的MOSFET。设计中特意在PWM输出端串联了33Ω电阻,这个值是通过信号完整性仿真确定的,既能抑制振铃又不会明显增加上升时间。
-
电流检测方案:原边电流采用LEM的HX10-P霍尔传感器,副边则用TI的INA240电流检测放大器。这种混合方案兼顾了隔离需求(原边)和成本考量(副边)。
2.2 功率拓扑实现
移相全桥(PSFB)拓扑是这个方案的核心,其优势在于:
- 实现ZVS(零电压开关)降低开关损耗
- 变压器利用率高
- 适合宽输入电压范围(电动汽车电池电压通常在250-450V之间)
关键参数计算:
- 开关频率设定为50kHz(EPwm1Regs.TBPRD = 2000),这个频率是权衡开关损耗和磁性元件体积后的折中选择
- 死区时间设置为200ns(通过DBCTL寄存器配置),确保足够的体二极管导通时间
- 最大占空比限制在45%(EPwm1Regs.CMPA = 900),为电压调节留出余量
2.3 PCB布局技巧
打开AD工程文件,能学到不少实战布局经验:
-
地平面分割:采用"三地"方案——功率地(PGND)、数字地(DGND)、模拟地(AGND),在电源输入端子处单点连接。特别注意数字和模拟地的分割线要避开高频信号路径。
-
驱动走线处理:MOSFET驱动信号采用蛇形走线实现等长匹配,误差控制在50ps以内。驱动回路面积控制在1cm²以下,减少di/dt引起的干扰。
-
热设计:功率器件布局充分考虑散热路径,MOSFET下方放置6层2oz铜的散热过孔阵列。实测在3kW满载时,MOSFET温升控制在45℃以内。
3. 软件架构剖析
3.1 控制算法实现
这个方案最亮眼的就是用状态观测器替代传统PID控制。状态观测器的核心优势在于:
- 能估计系统内部状态(如电感电流纹波)
- 对参数变化鲁棒性更强
- 便于实现前馈补偿
算法实现关键点:
c复制typedef struct {
float A[2][2]; // 系统矩阵
float B[2]; // 输入矩阵
float C[2]; // 输出矩阵
float state[2]; // 状态变量
} StateObserver;
void state_observer_update(StateObserver* obs, float Vbus, float Iprim) {
// 预测步骤
float x1_pred = obs->A[0][0]*obs->state[0] + obs->A[0][1]*obs->state[1] + obs->B[0]*Vbus;
float x2_pred = obs->A[1][0]*obs->state[0] + obs->A[1][1]*obs->state[1] + obs->B[1]*Vbus;
// 更新步骤
float y = Iprim - (obs->C[0]*x1_pred + obs->C[1]*x2_pred);
obs->state[0] = x1_pred + 0.2*y; // 0.2是观测器增益
obs->state[1] = x2_pred + 0.1*y;
}
3.2 中断服务程序
ADC中断是控制环路的核心,设计时要注意:
- 中断周期与PWM周期同步(50kHz)
- 关键变量使用Q15格式定点数运算,提高执行效率
- 加入抗饱和处理,防止积分项溢出
典型实现:
c复制interrupt void adc_isr(void) {
// 1. 读取ADC结果
float Vbus = AdcResult.ADCRESULT0 * 0.008f; // 12bit ADC, 参考电压3.3V
float Iout = (AdcResult.ADCRESULT1 - 2048) * 0.005f; // 带偏置的电流采样
// 2. 状态观测器更新
state_observer_update(&obs_ctx, Vbus, Iout);
// 3. 动态补偿计算
float duty_comp = dynamic_compensation(obs_ctx.state);
// 4. 更新PWM占空比
EPwm1Regs.CMPA = (uint16_t)(duty_comp * 2000);
// 5. 清除中断标志
AdcRegs.ADCINTFLGCLR.bit.ADCINT1 = 1;
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
}
3.3 保护机制设计
车载电源必须有完善的保护机制,这个方案实现了三级保护:
-
硬件保护(纳秒级响应):
- 比较器实现的过流保护(OCP)
- 电压监控芯片实现的过压保护(OVP)
-
软件初级保护(微秒级响应):
c复制if (Vbus > 450.0f || Iout > 15.0f) { EPwm1Regs.TZFRC.bit.OST = 1; // 触发单次故障 } -
软件次级保护(毫秒级响应):
- 看门狗定时器监测
- 温度监控线程
- 通信心跳检测
4. 关键器件选型
4.1 变压器设计
参数表显示采用PQ3225磁芯,关键设计点:
-
绕制工艺:
- 先绕次级(6匝三层绝缘线)
- 再绕初级(28匝利兹线)
- 最后加屏蔽层
- 这种"倒序绕法"使漏感降至0.8μH
-
气隙计算:
$$
l_g = \frac{\mu_0 N_p^2 A_e}{L_p} = \frac{4\pi×10^{-7}×28^2×161×10^{-6}}{350×10^{-6}} ≈ 1.2mm
$$
其中:- $μ_0$:真空磁导率
- $N_p$:初级匝数
- $A_e$:磁芯有效截面积(161mm²)
- $L_p$:初级电感(350μH)
4.2 MOSFET选型
原边采用IPW60R041C6(600V/41mΩ),副边采用BSC014N06NS(60V/1.4mΩ)。选型考量:
-
电压应力:
- 原边:450V输入 × 1.3裕量 ≈ 600V
- 副边:60V输出 × 1.2裕量 ≈ 72V → 选择60V器件(考虑同步整流体二极管耐压)
-
导通损耗计算:
$$
P_{cond} = I_{rms}^2 × R_{ds(on)}
$$
实测原边MOSFET RMS电流约8A,则:
$$
P_{cond} = 8^2 × 0.041 ≈ 2.6W
$$ -
开关损耗优化:
- 门极驱动电阻选用10Ω
- 采用米勒钳位电路
- PCB布局减小寄生电感
5. 生产测试要点
5.1 自动化测试流程
量产时需要建立的测试项目:
-
功能测试:
- 空载启动测试
- 满载效率测试(92%以上)
- 动态负载响应测试(10%-90%阶跃)
-
安全测试:
- 绝缘耐压测试(3000VAC/1分钟)
- 接地连续性测试(<100mΩ)
- 漏电流测试(<5mA)
-
EMC测试:
- CISPR25 Class 5辐射测试
- ISO7637-2脉冲抗扰度测试
5.2 常见故障排查
根据调试笔记整理的典型问题:
-
启动炸机:
- 检查门极驱动信号时序
- 确认死区时间设置
- 检测变压器相位标记
-
效率不达标:
- 测量开关节点振铃(应<20% Vds)
- 检查同步整流时序(延迟1-2us最佳)
- 评估磁芯损耗(PQ曲线测试)
-
EMC超标:
- 优化Y电容布局(尽量靠近噪声源)
- 增加共模扼流圈匝数
- 调整PWM边沿斜率(2-5V/ns最佳)
6. 开发经验总结
经过这个项目的实战,有几个深刻体会:
-
数字控制不是简单地把模拟电路数字化,而是要充分发挥软件灵活性。比如状态观测器的使用,就比传统PID节省了30%的调试时间。
-
车载电源的可靠性设计必须从第一版PCB就开始考虑。我们后来追加的EMC整改措施,成本是最初设计的3倍。
-
生产一致性控制比设计本身更重要。曾经因为变压器气隙公差导致批量效率差异达2%,后来引入X-ray检测才解决问题。
-
工具链的完善程度直接影响开发效率。这个项目中使用Python开发的自动化测试脚本,将验证周期从2周缩短到3天。
这个3kW OBC方案虽然用的都是成熟器件,但通过精妙的控制算法和严谨的工程设计,实现了不错的性价比。对于想进入车载电源领域的工程师,建议先从这种中等功率方案入手,掌握数字电源的核心设计方法后,再挑战更高功率等级的设计。
