1. 项目概述:TMS320F28335 SVPWM三相逆变学习板卡
这套基于TI TMS320F28335 DSP的三相逆变学习板卡,是电力电子数字控制领域的经典教学实验平台。我在工业变频器开发中多次使用类似架构,其核心价值在于完整实现了从PWM信号生成到闭环控制的硬件-软件协同设计。功率板采用IPM智能模块(通常为600V/20A级别),配合霍尔电流传感器和隔离驱动电路,可直接驱动三相交流电机。配套的SVPWM闭环程序包含电压环、电流环的双闭环控制算法,实测波形THD可控制在5%以内。
提示:新手使用时建议先断开电机负载,用示波器观察空载时的SVPWM波形,确认六路PWM相位关系正确后再接入负载。
2. 硬件架构深度解析
2.1 主控板关键设计
TMS320F28335作为主控芯片,其150MHz主频和硬件FPU单元特别适合实时控制算法。开发板通常会引出:
- 16路12位ADC接口(用于相电流、直流母线电压采样)
- 6路ePWM输出(死区时间可编程,典型设置1-2μs)
- SCI串口用于调试(波特率115200)
- 扩展GPIO连接编码器接口(ABZ信号)
2.2 功率板设计要点
功率部分采用三相全桥拓扑,关键参数包括:
| 部件 | 规格 | 备注 |
|---|---|---|
| 整流桥 | 600V/25A | 需加散热片 |
| DC-Link电容 | 470μF/450V | 低ESR型 |
| IPM模块 | FSBB20CH60 | 内置NTC温度检测 |
| 电流传感器 | LA25-NP | 50A量程 |
电路设计中需特别注意:
- 栅极驱动电阻选择10-22Ω(过大导致开关损耗增加,过小可能引起震荡)
- 母线电压采样用电阻分压网络(如100kΩ+10kΩ)
- 相电流采样RC滤波截止频率设为1kHz(兼顾抗噪和动态响应)
3. SVPWM算法实现细节
3.1 基础原理
空间矢量调制将三相电压映射到αβ坐标系,通过相邻两个非零矢量和零矢量的合成实现目标电压输出。DSP中实现步骤:
- Clarke变换(3相→2相)
- Park变换(静止→旋转坐标系)
- 扇区判断(根据Uα、Uβ值确定所在60°区间)
- 矢量作用时间计算:
c复制T1 = √3 * Ts * Uβ / Udc T2 = (3 * Uα/2 - √3 * Uβ/2) * Ts / Udc T0 = Ts - T1 - T2 - 比较寄存器值更新(通过ePWM模块实现)
3.2 代码优化技巧
实测中发现三个关键优化点:
- 使用Q格式定点数运算(如Q15),比浮点运算快3倍
- 在PWM中断服务程序中完成ADC采样和算法计算(确保时序严格)
- 死区补偿通过软件微调占空比实现(补偿值约50ns)
4. 闭环控制程序剖析
4.1 电流环设计
采用PI调节器,典型参数:
c复制typedef struct {
float Kp; // 0.5-2.0
float Ki; // 100-300
float Umax; // 限制输出幅值
} PI_Param;
调试时先调Kp使响应快速但不震荡,再调Ki消除静差。用阶跃响应测试时,上升时间控制在1ms左右为宜。
4.2 保护机制实现
必须包含的硬件保护:
- 过流保护(比较器硬件触发PWM刹车)
- 过温保护(读取IPM的NTC电阻值)
- 欠压锁定(母线电压<300V时禁止驱动)
软件保护策略:
c复制if( I_peak > 20.0f ) { // 电流峰值保护
PWM_Disable();
Fault_LED_On();
}
5. 典型问题排查指南
5.1 PWM输出异常
现象:某相无输出或波形畸变
排查步骤:
- 检查ePWM寄存器配置(特别是CMPA/CMPB值)
- 测量驱动芯片输入信号(如TLP350的IN引脚)
- 确认死区时间设置(示波器观察上下管信号)
5.2 电流采样失真
常见原因:
- 霍尔传感器供电不稳(需±15V稳定电源)
- ADC采样时序错误(应在PWM周期中点采样)
- 软件滤波参数过强(导致相位滞后)
5.3 电机震动异响
解决方案阶梯:
- 降低SVPWM调制比至0.8以下
- 检查编码器信号接线(AB相是否反接)
- 增加速度环滤波时间常数
6. 进阶开发建议
对于希望深入开发的工程师,可以尝试:
- 加入前馈补偿(提升动态响应)
- 实现弱磁控制(扩展电机转速范围)
- 移植到CCS最新版本(注意CMD文件修改)
我在实际项目中发现,将开关频率提升到15kHz以上时,需要优化PCB布局:
- 缩短功率回路路径(减小寄生电感)
- 增加门极驱动走线间距(防止串扰)
- 使用四层板设计(单独地层)