PWM、ADC 与中断时序动画

变换器的数字控制是每个 PWM 周期内的一串事件:定时器触发 ADC,ADC 采样并转换,中断执行控制算法,新占空比在影子寄存器中等待定时器加载。每个事件放在哪里,决定了控制器测到什么、环路有多大延迟。动画逐步展示由中心对齐计数器驱动的半桥的三个周期。

ADC 触发
比较值影子加载
电流传感器
三个 PWM 周期(T_s = 50.0 µs):计数器与比较值、门极、电流、事件
0 µs50 µs100 µs150 µsCTRCMPHLiISRSOC新占空比生效
采样 转换 中断 电感电流 ADC 输入信号

正在向触发事件计数,仍使用上一个占空比。

事件时刻

SOC
50.00 µs
保持(采样时刻)
50.50 µs
转换完成
50.80 µs
ISR 写入比较值
58.80 µs
新占空比生效
100.00 µs
从采样到新占空比
49.50 µs (0.99 Ts)

ADC 读到的值

采样值
9.90 A
该周期的真实平均值
10.00 A
误差
-0.10 A

通用模型:降压型半桥,平均电流 10 A,峰峰纹波 4 A,采样值取采样窗口结束时刻。实际振铃比图中快得多,计算中只用其稳定时间。具体器件的行为见下文。

中心对齐 PWM 与采样位置

增减计数时,计数器从零升到周期值再降回零,因此每个 PWM 周期有两个自然事件:计数器为零的谷值和等于周期值的峰值。若计数器大于比较值时上桥导通,则导通时间以峰值为中心,关断时间以谷值为中心。

电感电流是三角波,其中点正好落在导通时间和关断时间的中心。因此在谷值或峰值采样,无需滤波就能得到该周期的平均电流,这也是这两个事件常被用作 ADC 触发的原因。若使触发延迟偏离零,采样就会混入部分纹波:默认参数下,在谷值处每延迟 1 µs,4 A 纹波中就产生 0.2 A 的误差。

采样时间、振铃与下桥采样电阻

ADC 的采样保持电路需要一个采样窗口,整个窗口内信号都必须已经稳定。每个开关边沿,包括死区之后互补管的边沿,都会在功率回路和电流传感器中激起振铃。如果窗口落在振铃之中,转换值取决于采到振荡的哪个位置。为便于观察,动画把振铃画得比实际慢,判断时只使用其稳定时间。

放在下桥源极的采样电阻只在上桥关断期间流过相电流。因此谷值采样只有在关断时间能容纳死区、稳定和采样时间时才有效,这限制了占空比:D_max = 1 − 2·(t_dead + max(t_settle − t_delay, t_delay + t_acq))/T_s。默认参数(20 kHz、死区 0.5 µs、稳定 1.5 µs、采样 0.5 µs)下 D_max 为 92 %。三电阻采样的驱动器常用的办法是跳过窗口最短的一相,由另外两相重构。

从转换到新占空比:延迟从何而来

转换结束后 ADC 发出转换完成中断,控制算法运行,写入新的比较值。定时器不会立即使用它。比较寄存器带有影子寄存器,只在选定的计数器事件时复制到工作寄存器,这样在周期中途写入也不会产生毛刺或丢失脉冲。

在谷值采样且只在谷值加载影子寄存器时,新占空比在采样后一个完整周期生效,默认参数下为 49.5 µs,即 0.99 T_s。若在谷值和峰值都加载,只要中断在峰值前结束,延迟就缩短到约半个周期;若来不及,更新就推迟到下一个谷值。如果下一次采样时中断仍在运行,环路就发生超时,这一时序不再成立。

环路设计中,这条路径通常建模为计算延迟(这里最多一个周期)加上 PWM 更新本身约半个周期。限制数字电流环穿越频率的,通常是这个延迟而不是变换器本身。

两类常见 MCU 中的对应设置

TI C2000 ePWM:时基模块产生 CTR = Zero 和 CTR = PRD 事件,增减计数模式下周期为 2·TBPRD·T_TBCLK。事件触发子模块把选定事件转换为 ADC 启动转换信号 SOCA 或 SOCB,ETSEL[SOCASEL] 的选项中包括 CTR = Zero 和 CTR = PRD。比较寄存器带影子寄存器,影子到工作寄存器的加载可设在 CTR = Zero、CTR = PRD 或两者(CMPCTL[LOADAMODE])。出处:TMS320F2837xD 技术参考手册(SPRUHM8)ePWM 章节,以及 TMS320x28xx/28xxx ePWM 模块参考指南(SPRU791)。具体器件支持哪些选项,以其 TRM 为准。

STM32 定时器:中心对齐模式下,上溢和下溢都会产生更新事件,ARR、PSC、CCRx 等带缓冲的寄存器在更新事件时装入预装载值;重复计数器可降低更新频率。触发输出 TRGO 由 TIMx_CR2 中的 MMS 位选择,例如更新事件或 OCxREF 信号;STM32G4 等系列的高级控制定时器还增加了用于定时器与 ADC 同步的 TRGO2。出处:ST 应用笔记 AN4013《Introduction to timers for STM32 MCUs》。ADC 为规则通道和注入通道选择定时器触发的方式因 ADC 版本而异,我们没有逐一核实各系列的字段名,请以所用器件参考手册的 ADC 章节为准。

在板上确认

用一个空闲 GPIO 在中断开始时置高、结束时置低,与 PWM 输出和电流传感器信号一起用示波器观察。一次捕获就能看到真实的采样时刻、中断长度以及到下一次采样的余量,这是确认配置是否符合时序设计的最快方法。

动画严格按照本页给出的公式绘制。不同教材和软件库的约定各不相同,比较数值前请先确认所用代码的约定。