PMSM 磁场定向控制(FOC)实验:电流环与速度环 PI 整定

磁场定向控制的驱动器,本质上是在一个简单模型上叠加两个 PI 环:内层电流环产生转矩,外层速度环给出所需电流。纸面上整定增益只需两行公式,但要看清增益到底起什么作用,就需要一台电机。本实验在转子 dq 坐标系中仿真一台 48 V PMSM,运行与单片机相同的离散控制器,滑块一动就重新绘制所有曲线。左侧的转子图以慢动作回放同一次仿真,并叠加定子电流矢量。

实验

i_d、i_q 电流 PI(10 kHz)

教科书整定:Kp_i = L·ω_bw,Ki_i = R·ω_bw。此时 PI 零点抵消 R/L 极点,回路表现为 ω_bw/(s + ω_bw)。
ω_bw = Kp_i/L = 2π·500 Hz · Ki_i/Kp_i = 250 rad/s (R/L = 250)

速度 PI → i_q*(1 kHz)

起点:Kp_ω = J·ω_sc/K_t,Ki_ω = Kp_ω·ω_sc/4,其中 K_t = 1.5·p·λ_m。ω_sc 应比电流环带宽低 5 到 10 倍以上。
ω_sc ≈ Kp_ω·K_t/J = 2π·50 Hz · 电流/速度 = 10

电机:R = 0.5 Ω,L_d = L_q = 2 mH,λ_m = 0.05 Wb,极对数 p = 4,J = 1×10⁻⁴ kg·m²,B = 1×10⁻⁴ N·m·s。V_dc = 48 V,因此电压限制为 V_dc/√3 = 27.7 V。电流限制 20 A,i_d* = 0。

转子、dq 轴与电流矢量
abcNSdqi_s

按等效两极电机绘制,显示的转角为电角度。播放速度约为实际时间的 1/1333。a、b、c 轴上的色条表示相电流。

t
6 ms
i_d / i_q
-0.00043 / 1 A
T_e
0.3 N·m
转速
300 rpm
|v|
6.79 V
θ_e
43°

结果

i_q 上升时间 10–90 %
310 µs
理想值 2.2/ω_bw
700 µs
超调
2.46 %
电流环带宽
500 Hz
i_q 阶跃:指令与响应
1.1-0.082A6 ms0
i_q*i_q
d 轴与 q 轴电流
1.1-0.084A6 ms0
i_di_q
施加电压及其限制
V_dc/√330-2.6V6 ms0
v_dv_q|v|
相电流(反 Park 变换)
1.1-0.95A6 ms0
i_ai_bi_c

模型:表贴式 PMSM 的 dq 方程,在每个 100 µs 控制周期内用 RK4 积分;本周期计算的电压在下一周期施加。未建模 PWM 纹波、死区、磁饱和和铁损。两个 PI 都采用条件积分抗饱和。

实验所用的模型

在转子坐标系中,定子方程为 L_d·di_d/dt = v_d − R·i_d + ω_e·L_q·i_q 和 L_q·di_q/dt = v_q − R·i_q − ω_e·(L_d·i_d + λ_m),其中 ω_e = p·ω_m。转矩为 T_e = 1.5·p·(λ_m·i_q + (L_d − L_q)·i_d·i_q),对于 L_d = L_q 的表贴式电机简化为 1.5·p·λ_m·i_q,即转矩只取决于 i_q。转轴满足 J·dω_m/dt = T_e − B·ω_m − T_L。

两个电流控制器运行在 10 kHz,速度控制器运行在 1 kHz。电压矢量被限制在半径为 V_dc/√3 的圆内,这是空间矢量调制在不过调制时能输出的最大正弦电压。d 轴优先,i_q* 限制在 ±20 A。

为什么 Kp = L·ω_bw、Ki = R·ω_bw

去掉反电动势项后,从 v_q 看 q 轴电流是一阶对象 1/(L·s + R)。PI 控制器 Kp + Ki/s 在 Ki/Kp 处有一个零点。把这个零点放在电机极点 R/L 上即可抵消极点,开环变为 Kp/(L·s),即穿越频率为 Kp/L 的积分环节。闭环后得到带宽 ω_bw = Kp/L 的一阶响应,10–90 % 上升时间为 2.2/ω_bw。

这一结论假设控制器是连续的。在 500 Hz 预设下关闭计算延时,实测上升时间与理想值相差约 20 % 以内,剩余差距来自 10 kHz 采样本身。重新打开延时后,回路中多了一个 100 µs 周期的延时,响应变快并出现小幅超调。1 kHz 时超调约 50 %,1.4 kHz 预设下电流振荡超过 1 ms。带一拍延时的离散回路在纯比例控制下,当 Kp·T_s/L 达到 1 时失稳,此处对应约 1.6 kHz 的带宽。这也是实际电流环带宽常取采样频率约 1/10 到 1/20 的原因。

解耦与电压限制

ω_e·L_q·i_q 和 ω_e·(L_d·i_d + λ_m) 两项把两个轴耦合在一起,且都随转速增大。没有前馈时,q 轴积分器必须独自建立全部反电动势,每次 i_q 阶跃都会扰动 i_d。把转速固定在 1000 rpm,给 i_q 阶跃并切换解耦:关闭时 i_d 在阶跃过程中偏离零点,q 轴积分器承担反电动势。加入 v_d,ff = −ω_e·L_q·i_q 和 v_q,ff = ω_e·(L_d·i_d + λ_m) 后,大部分耦合被消除,PI 控制器只需处理整定时考虑的 R 和 L 动态。

在 48 V 下逆变器最多能输出约 27.7 V 的电压矢量,而反电动势 λ_m·ω_e 在 1000 rpm 时已达 21 V。在速度模式下指令 1500 rpm,转速尚未到达时电压曲线就碰到限制线,无论增益如何设置,电机都停在基速附近。实际驱动器通过弱磁控制越过这一点,即让 i_d 为负以削弱磁链。本实验不模拟弱磁,只对电压做饱和处理,但足以说明这一限制为何存在。

让速度环与电流环拉开距离

速度控制器把电流环当作能立即给出 i_q* 的执行器,这只有在电流环快得多时才成立。速度环预设在 500 Hz 电流环之上设置 200 Hz 的速度穿越频率,比值为 2.5。在本模型中速度超调从约 17 % 增大到约 34 %,接近翻倍,阶跃期间 i_q* 碰到 20 A 限制;增加的超调一部分来自电流环滞后,一部分来自该限流。常见做法是比值取 5 到 10。速度积分器零点这里取穿越频率的 1/4,它决定负载转矩被抑制的快慢以及大阶跃后的超调大小。

可以试试

把 Ki_i 降低到十分之一,i_q 会停在指令下方再缓慢爬升:零点不再抵消极点,出现慢拖尾。把 i_q 阶跃增大到 10 A,电流近似沿直线上升,原因是电压矢量饱和,而不是增益。在速度模式下把负载转矩设为 2 N·m,i_q 稳定在约 6.7 A,因为每安培 i_q 产生 K_t = 0.3 N·m 的转矩。这些数值来自本电机模型,换成你自己的电机会不同。

参考文献

R. Krishnan, Permanent Magnet Synchronous and Brushless DC Motor Drives, CRC Press, 2010. N. Mohan, Advanced Electric Drives: Analysis, Control and Modeling Using MATLAB/Simulink, Wiley, 2014. 本站相关页面:Clarke 与 Park 变换、SVPWM、控制框图、PID 代码生成器、PI 离散化工具。

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