第三节:电流环数学模型——从物理方程到传递函数
做FOC电流环整定,绕不开数学模型。
说实话,我刚入行那会儿,也觉得数学推导挺枯燥的。但后来在项目里吃过亏——有一次调一个伺服驱动器,电流环怎么都稳不住,震荡得厉害。折腾了两天,最后回头一看,是模型里的耦合项没处理好。嗯,从那以后,我再也不敢跳过数学了。
这一节,我们就来把电流环的数学模型彻底捋清楚。从电机的电气方程开始,一步步走到d-q轴解耦模型,最后推导出电流环的传递函数。这些东西,是后面做PI参数自动整定的根基。
3.1 永磁同步电机的电气方程
先看最基本的。三相永磁同步电机(PMSM)在自然坐标系(ABC坐标系)下的电压方程长这样:
u_a = R_s * i_a + d(ψ_a)/dt
u_b = R_s * i_b + d(ψ_b)/dt
u_c = R_s * i_c + d(ψ_c)/dt
其中,ψ_a、ψ_b、ψ_c是各相绕组的磁链。磁链又由两部分组成:
- 电枢反应磁链:由定子电流产生
- 永磁体磁链:由转子上的永磁体产生
写成矩阵形式,就是:
[ψ_abc] = [L_abc] * [i_abc] + [ψ_f_abc]
这里有个麻烦事——电感矩阵L_abc不是常数。它随着转子位置θ变化。你想想看,转子转一圈,定子绕组的自感和互感都在变。直接拿这个模型去设计控制器,那简直是噩梦。
核心问题:ABC坐标系下的方程是时变的、强耦合的。没法直接用线性控制理论来处理。
3.2 Clark变换与Park变换——从静止到旋转
怎么解决时变问题?
思路其实很直接:换个坐标系。把三相静止的ABC坐标系,先通过Clark变换变成两相静止的αβ坐标系,再通过Park变换变成两相旋转的d-q坐标系。
Clark变换(等幅值变换):
[i_α, i_β]^T = (2/3) * [1, -1/2, -1/2; 0, √3/2, -√3/2] * [i_a, i_b, i_c]^T
Park变换:
[i_d, i_q]^T = [cosθ, sinθ; -sinθ, cosθ] * [i_α, i_β]^T
这两步变换,说白了就是把交流量变成了直流量。在d-q坐标系下,电机模型就清爽多了。
我的习惯:在实际代码里,我一般把Clark和Park合并成一个函数,减少中间变量的存储。但调试的时候,建议分开看,方便定位问题。
3.3 d-q轴解耦模型
经过变换后,PMSM在d-q坐标系下的电压方程是:
u_d = R_s * i_d + L_d * di_d/dt - ω_e * L_q * i_q
u_q = R_s * i_q + L_q * di_q/dt + ω_e * (L_d * i_d + ψ_f)
其中:
- u_d、u_q:d轴和q轴电压
- i_d、i_q:d轴和q轴电流
- L_d、L_q:d轴和q轴电感(对于表贴式PMSM,L_d = L_q)
- R_s:定子电阻
- ω_e:电角速度
- ψ_f:永磁体磁链
看到没?方程里出现了两项耦合项:
- d轴方程中的 -ω_e * L_q * i_q
- q轴方程中的 +ω_e * L_d * i_d
这就是所谓的「交叉耦合」。转速越高,耦合越严重。我做过一个项目,电机跑到3000rpm以上时,如果不做解耦,电流环的带宽直接掉了一半。
避坑指南:我曾经在调试时忽略了耦合项,结果d轴和q轴的电流环互相干扰,怎么调PI参数都调不好。后来加了前馈解耦,问题才解决。记住——高速下,解耦不是可选项,是必选项。
3.4 电流环传递函数推导
好,现在我们来推导传递函数。先做两个假设:
- 采用前馈解耦,把耦合项抵消掉
- 反电动势项(ω_e * ψ_f)也通过前馈补偿
解耦后的方程就变成了:
u_d = R_s * i_d + L_d * di_d/dt
u_q = R_s * i_q + L_q * di_q/dt
这不就是一阶RL电路嘛!拉普拉斯变换一下:
U_d(s) = (R_s + s * L_d) * I_d(s)
U_q(s) = (R_s + s * L_q) * I_q(s)
所以,电流环的被控对象传递函数为:
G_d(s) = I_d(s) / U_d(s) = 1 / (R_s + s * L_d)
G_q(s) = I_q(s) / U_q(s) = 1 / (R_s + s * L_q)
写成标准形式:
G(s) = 1 / (R_s * (1 + s * τ))
其中,τ = L / R_s,是电气时间常数
这个传递函数,就是PI参数整定的基础。你想想看,一个一阶惯性环节,配上PI控制器,闭环传函就是典型的二阶系统。整定目标就是让闭环带宽达到设计要求,同时保证足够的相位裕度。
关键结论:解耦后的d轴和q轴电流环,可以独立设计。每个轴都是一个一阶惯性系统,时间常数τ = L/R_s。PI参数整定就变成了标准的二阶系统设计问题。
3.5 知识体系总览
为了让你看得更清楚,我画了一张图,把整个推导逻辑串起来:
3.6 参数辨识的重要性
有了传递函数,你可能会问:那R_s和L_d、L_q怎么来?
两个途径:
- 查手册:电机厂家一般会提供这些参数。但要注意,实际值和标称值可能有10%-20%的偏差。
- 在线辨识:我更喜欢这种方式。给一个电压阶跃,测电流响应曲线,用最小二乘法拟合出R和L。我在项目里写过一套离线辨识程序,效果还不错。
一个小技巧:如果你手头没有参数,又不想写辨识程序,可以用一个笨办法——给一个很小的d轴电压(比如0.1V),测稳态电流,R_s ≈ u_d / i_d。然后给一个电压阶跃,看电流上升时间,L ≈ R_s * τ。虽然粗糙,但够用。
3.7 小结
这一节的内容,说白了就是三件事:
- 从ABC坐标系到dq坐标系,把时变系统变成时不变系统
- 通过前馈解耦,把耦合系统变成独立的一阶系统
- 得到传递函数G(s) = 1/(R_s + sL),为PI整定铺路
这些推导,看起来是纸上谈兵。但我在实际项目中,每一次遇到电流环震荡、响应慢、带宽不够的问题,最后追根溯源,都能回到这个模型上。模型对了,整定就成功了一半。
下一节,我们就基于这个模型,正式进入PI参数整定的核心内容。
公众号:蓝海资料掘金营,微信deep3321