前置阅读:《电流环 PI 的离散化——从连续域设计到代码实现》——PI输出的代码实现是integral+=Ki*error*Ts,其中error=i_ref-i_fb。
这篇的任务:解释上面那个i_fb(反馈电流)是怎么从PMSM的三根相线上获取的,以及为什么不能在任意时刻采样。
1.一个核心问题
电流环FLOW的前半段:
PMSM相电流ia,ib,ic→采样电阻+运放→ADC(数字量)→电流数字值i_fb→PI(算误差)
如果ADC读到的电流值本身就是错的,后面PI、坐标变换全白搭。
所以问题来了——在SVPWM驱动的三相桥里,什么时候测,才能测到真实的相电流?
直觉答案:逆变桥输出的就是PWM方波,但电机绕组是感性负载,相电流被电感滤成近似正弦——既然电流是平滑的,那随时采样不就行了?
不对。三电阻采样的精度取决于采样电阻两端的共模电压在采样那一刻是否稳定。
2.三电阻采样的物理原理
2.1电路结构
常用的三电阻采样有两种电阻接法。其中一种是相线串联方案——采样电阻Rshunt串联在逆变桥输出端与电机绕组之间:
另一个常见方案是低端串联——采样电阻串在每个下管MOSFET的源极和GND之间,电流只在下管导通时流经电阻。
两种方案的采样窗口逻辑不同:
相线串联 | 低端串联 | |
电流流过电阻的时刻 | 始终流过 | 仅下管导通时 |
采样的限制因素 | 共模电压跳变后运放需稳定时间 | 没有下管导通就测不到 |
运放要求 | 高共模抑制比(CMRR) | 低共模电压,要求低 |
以下以相线串联方案展开——因为我目前板子的架构是这个,也是目前很多驱动板的选择。
2.2为什么还是要在零矢量区间采样
相线串联下电流始终流过Rshunt,那是不是随时都能采?
问题出在采样电阻两端的共模电压上。电机相线上的电压随着PWM开关在Vin和GND之间跳变。每次MOSFET通断,Rshunt两端的共模电压突然变化,后级的差分运放需要时间从这种跳变中恢复。
回到SVPWM驱动的7段时序:
000─→100─→110─→111─→110─→100─→000
在000(下管全通)或111(上管全通)期间,没有MOSFET发生开关动作,三相共模电压都稳定在GND或Vin——这是采样窗口。
在100/110等主动矢量期间,每隔一段就有一个MOSFET切换边沿,共模电压在跳变——运放输出在振铃稳定之前不可信。
所以采样窗口仍然是零矢量区间,但原因不是”有没有电流”,而是”共模电压是否稳定”。
这个区别很重要:在相线串联方案里,采样窗口的限制不是来自”能不能测到电流”,而是来自”运放能不能在开关噪声中给出精确读数”。
3.采样窗口的量化计算
3.1T0与调制比的关系
定义SVPWM调制比M(即电压利用率):
M=V_实际输出/V_SVPWM最大线性输出
SPWM最大线性输出=Vdc/2→电压利用率50%
SVPWM最大线性输出=Vdc/√3→电压利用率57.7%
M归一化到SVPWM极限,M=0~1
主动矢量总时间:
T1+T2=M·Ts
T0=Ts−(T1+T2)=(1−M)·Ts
7段式把T0切成三段(T0/4、T0/2、T0/4),中间一段长度T0/2——最长连续安静窗口:
T0/2=(1−M)·Ts/2
20kHz,Ts=50μs下一目了然:
M | T0/2 |
0.1 | 22.5μs |
0.5 | 12.5μs |
0.7 | 7.5μs |
0.8 | 5.0μs |
0.9 | 2.5μs |
0.95 | 1.25μs |
M越大,窗口越短。M>0.9时窗口开始紧张,M>0.95时基本不够用。
3.2ADC需要多长时间
基于STM32G474,为170MHz系统时钟,ADC时钟配到~42.5MHz(/4):
ADC时钟周期:23.5ns
采样保持时间:10.5个时钟≈250ns
12位转换时间:12.5个时钟≈294ns
单通道总耗时:~0.54μs
如果两个ADC同步采样(ia一路,ib一路并发),总耗时还是~0.54μs。对比T0/2最短也是微秒级——ADC几乎不构成约束。
3.3真正的瓶颈:运放建立时间
每次MOSFET切换,采样电阻两端的共模电压从GND跳变到Vin(或反向)。后级差分运放需要时间从这个跳变中恢复,输出稳定到0.1%精度。
这个建立时间取决于运放的带宽和压摆率。典型电流检测运放(如INA240、TSV991等):
共模跳变幅度:12V~48V(取决于你的母线电压)
运放建立时间:1~3μs(到0.1%精度)
这才是采样的真实瓶颈。ADC转换只要0.5μs,但运放要等1~3μs才能输出稳定信号。
3.4现实约束
ADC触发必须在零矢量段开始、运放稳定之后:
从零矢量段开始,大约有(T0/2−运放建立时间)可用。M=0.9时T0/2=2.5μs,减去2μs建立时间,还能塞下一次ADC转换。M=0.95时T0/2=1.25μs——来不及。
注意一个反直觉的点:提高PWM频率帮不了你。40kHz下Ts=25μs,T0/2=12.5·(1-M)μs——窗口比例不变,但绝对时间进一步缩短,运放建立时间还是2μs跑不掉。
4.结论
三句话总结:
第一,采样窗口=零矢量区间。相线串联方案中电流始终流经采样电阻,但每次MOSFET切换后共模电压跳变,运放需要时间稳定。零矢量区间没有开关动作,是唯一保证共模电压稳定的时段。
第二,窗口随调制比M增大而缩短。T0/2=(1−M)·Ts/2,M=0.8时还有5μs,M=0.95时只剩1.25μs。
第三,瓶颈在运放,不在ADC。ADC转换只要~0.5μs,但运放建立要1~3μs。提高PWM频率反而让窗口更短。