3. 数字控制基础
数字电源控制器的核心任务是将模拟域的电压、电流信号转换为数字量,经过控制算法运算后,输出具有精确占空比和死区时间的PWM波形,驱动功率级开关管。本章围绕数字控制器的三大硬件基础——处理器架构、采样量化链路、PWM生成机制展开,并重点剖析死区时间与分辨率这对相互制约的工程矛盾。理解这些底层原理,是后续编写稳定、高效控制算法的前提。
上图展示了数字电源控制器的完整信号链路。功率级的电压电流经采样调理电路后进入ADC量化,控制器核心(DSP/MCU/FPGA)在中断中读取采样值并执行控制算法,最终通过PWM模块输出带死区的驱动信号。这条链路的每一环都会影响控制性能,下面逐一深入。
3.1 数字控制器架构选型:DSP/MCU/FPGA的权衡
核心原理
数字电源控制器需要同时满足实时性、计算精度和外围集成度三方面要求。DSP(如TI C2000系列)采用哈佛架构和单周期乘累加指令,擅长执行复杂的控制算法(如PID、状态观测器、SVPWM);MCU(如STM32G4)基于Cortex-M4F内核,集成丰富的外设且开发生态成熟,适合中低开关频率的电源;FPGA(如Xilinx Artix-7)以并行逻辑门阵列实现控制,延迟可低至纳秒级,适合多路交错并联或极高开关频率(>1MHz)场景。
| 对比维度 | DSP (C2000) | MCU (STM32G4) | FPGA (Artix-7) |
|---|---|---|---|
| 控制算法执行 | 硬件乘累加,极快 | 软件浮点,中等 | 并行逻辑,最快 |
| PWM分辨率 | 内置HRPWM,可达150ps | 高分辨率定时器,184ps | 取决于时钟,可达ps级 |
| 开发难度 | 中等,需熟悉CCS | 较低,生态完善 | 较高,需HDL编程 |
| 典型应用 | 服务器电源、车载OBC | 快充、适配器、BMS | 多相DC-DC、光伏逆变 |
| 成本(批量) | $3~8 | $1~4 | $8~30 |
选型判断方法
- 开关频率:若fsw < 200kHz,主流MCU即可胜任;若fsw > 500kHz,建议DSP或FPGA。
- 控制环数量:单电压环选MCU;电压+电流+功率因数校正(PFC)多环控制选DSP;多路交错(≥4相)选FPGA。
- 外设集成度:需要内置比较器、DAC、运放时,优先选带模拟外设的MCU(如STM32G4的OPAMP+COMP)。
3.2 采样与量化:精度与延迟的博弈
核心原理
采样环节将模拟信号转换为数字量,涉及三个关键指标:采样率(Nyquist定理要求≥2倍信号最高频率,工程上建议≥10倍开关频率)、分辨率(ADC位数决定量化步长,12位对应LSB=FSR/4096)、采样延迟(从采样保持到数据可用的时间,典型SAR ADC为几百ns)。量化误差是不可避免的,但可通过过采样+求平均技术等效提升分辨率。
// 过采样+求平均提升分辨率示例(伪代码)
uint16_t oversample_read(uint8_t channel, uint8_t bits_extra) {
uint32_t sum = 0;
uint16_t samples = 1 << (2 * bits_extra); // 每提升1位需4倍采样
for (uint16_t i = 0; i < samples; i++) {
sum += adc_read(channel);
}
return (uint16_t)(sum >> bits_extra);
}
采样时序设计要点
- 同步采样:PWM载波顶点触发ADC,确保采样点位于开关纹波的中心,避免开关噪声。
- 采样保持时间:ADC内部采样电容需足够时间充电,通常要求信号源阻抗<1kΩ,否则需外加缓冲器。
- 抗混叠滤波:在ADC前加一阶RC(截止频率=0.5×采样率),防止高频噪声折叠到低频。
3.3 PWM生成原理与死区时间
核心原理
数字PWM通过比较计数器值与比较寄存器值来产生占空比。以TI ePWM模块为例,时基计数器(TBCTR)从0递增到周期值(TBPRD),当TBCTR=CMPA时输出翻转,从而生成PWM波形。死区时间(Dead Band)是防止上下桥臂直通的必要延迟,其值需大于功率管关断延迟(toff)与开通延迟(ton)之差。
// ePWM死区配置示例(TMS320F28004x)
EPwm1Regs.DBCTL.bit.OUT_MODE = 0x3; // 使能上升沿和下降沿死区
EPwm1Regs.DBCTL.bit.POLSEL = 0x2; // 主动高,互补输出
EPwm1Regs.DBRED.bit.DBRED = 100; // 上升沿延迟100个时钟周期(100ns @100MHz)
EPwm1Regs.DBFED.bit.DBFED = 100; // 下降沿延迟100个时钟周期
死区时间设置方法
- 查阅功率管数据手册,获取td(on)、td(off)、tr、tf参数。
- 计算最小死区:tdb_min = td(off) - td(on) + tr + 安全裕量(通常50~100ns)。
- 在示波器上观察Vgs波形,调整死区直到无直通且体二极管导通时间最短。
3.4 PWM分辨率与占空比精度
核心原理
PWM分辨率指占空比的最小变化量,由时基时钟频率和PWM周期决定。对于传统计数器型PWM,分辨率 = 1 / (fclk / fsw) = fsw / fclk。例如100MHz时钟产生100kHz PWM,分辨率仅为1/1000(约0.1%),在输出电压纹波要求高时可能不足。高分辨率PWM(HRPWM)通过微调比较点(利用内部延迟线)实现ps级精度。
| 开关频率 | 时钟100MHz | 时钟200MHz | HRPWM (150ps) |
|---|---|---|---|
| 100kHz | 0.1% | 0.05% | 0.0015% |
| 500kHz | 0.5% | 0.25% | 0.0075% |
| 1MHz | 1% | 0.5% | 0.015% |
分辨率不足的解决方案
- 提高时基时钟:使用PLL倍频,但受限于芯片最高频率。
- 使用HRPWM外设:TI C2000、STM32G4均支持,但需注意线性度校准。
- 抖动调制(Dithering):在多个周期内交替使用相邻占空比,等效提高平均分辨率。
3.5 综合案例:数字Buck变换器控制链路设计
设计一个12V→1.8V/10A的同步Buck变换器,开关频率500kHz,要求输出电压纹波<10mV,动态响应<50μs。
关键参数计算:
- 最小占空比Dmin=1.8/12=0.15,最大Dmax=1.8/10.8(输入下限)=0.167,占空比变化范围仅1.7%。
- 若使用100MHz时钟,PWM分辨率为0.5%,对应输出电压步进=12×0.005=60mV,远超纹波要求。
- 必须使用HRPWM(150ps分辨率),对应输出电压步进=12×150ps×500kHz=0.9mV,满足要求。
实施步骤:
- 选用TMS320F280049C,配置ePWM1为HRPWM模式,时基时钟100MHz,周期值200(500kHz)。
- ADC采样配置:使用EPWM1SOCA触发ADC,采样电感电流和输出电压,采样率=500kHz。
- 死区设置:根据CSD18532KCS MOSFET参数(td(off)=28ns,td(on)=12ns),设置死区=50ns。
- 控制算法:电压外环+电流内环,均采用2P2Z补偿器,控制频率=500kHz。
测试结果:满载纹波8.5mV,负载阶跃(50%~100%)恢复时间42μs,效率94.8%。
复盘经验:采样时刻必须避开死区期间的振铃,本设计将ADC触发点设置在PWM载波顶点(即开关管中点导通时刻),有效避免了开关噪声。若采样点设置不当,可能导致ADC读数偏差超过5%,进而引起环路振荡。
3.6 常见误区与总结
误区二:“死区时间越小越好”——死区过小导致直通烧毁功率管,过大则增加体二极管损耗。正确做法是测量实际驱动延迟后留出30%裕量。
误区三:“PWM分辨率不够就加抖动”——抖动调制在轻载时可能引发音频噪声,且对EMI有负面影响。优先考虑HRPWM硬件方案。