实验所用的模型
在转子坐标系中,定子方程为 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 离散化工具。
动画严格按照本页给出的公式绘制。不同教材和软件库的约定各不相同,比较数值前请先确认所用代码的约定。