WARNING本文内含大量公式,可能导致头晕,请做好观前准备
电机数学建模#
对于一个三相PMSM,其电压方程为:
vavbvc=RS000RS000RSiaibic+Ψ˙aΨ˙bΨ˙cva,vb,vc是相电压,RS是相电阻,ia,ib,ic是相电流,Ψ˙a,Ψ˙b,Ψ˙c是定子三相绕组的磁链变化率。通过定子的磁链可以使用以下等式表示:
ΨaΨbΨc=LaaLbaLcaLabLbbLcbLacLbcLcciaibic+ΨamΨbmΨcm其中L矩阵的对角项为自感,其余为互感,Ψam,Ψbm,Ψcm是永磁体在三相绕组上产生的磁链。定子电感与转子角度相关,有如下关系:
θeLaaLbbLccLabLbcLca=N∗θr=LS+Lmcos(2θe)=LS+Lmcos2(θe−2π/3)=LS+Lmcos2(θe+2π/3)=Lba=−MS−Lmcos2(θe+π/6)=Lcb=−MS−Lmcos2(θe+π/6−2π/3)=Lac=−MS−Lmcos2(θe+π/6+2π/3)θr是机械转角,θe是电角度,N是极对数,LS是相定子自感,Lm是定子脉动电感,与自感、互感和转子角度变换相关,MS是定子互感。永磁体在定子上产生的磁链也与电角度相关:
ΨamΨbmΨcm=ΨmcosθeΨmcosθe−2π/3Ψmcosθe+2π/3由于三相电压不便于计算,我们使用Clarke-Park变换将三相电压转换为d-q轴表示。Clarke-Park有等幅值和等功率两种变换方法,这里我们使用等幅值变换,
RP=32cosθe−sinθe0.5cosθe−2π/3−sinθe−2π/30.5cosθe+2π/3−sinθe+2π/30.5经过变换,可以将三相电压电流变换为dq轴电压电流,于是可以引出如下等式:
vdvqv0T=RSid+Ldid−NωiqLq=RSiq+Lqiq+Nω(idLd+Ψm)=RSi0+L0i0=23N(iq(idLd+Ψm)−idiqLq)其中Ld=LS+MS+3/2Lm,是d轴电感,Lq=LS+MS−3/2Lm是q轴电感,L0=LS−2MS是零序电感,ω是机械角速度,T是产生的电磁转矩。
反电动势常数ke与永磁体磁链之间存在线性关系,
ke=NΨmNOTE该部分参考Permanent magnet synchronous motor with sinusoidal flux distribution - MATLAB Documents编写
控制器设计#
电机模型转换#
首先将电机数学模型转换为状态空间方程,
[idiq]=[−LdRS−NωLqLdNωLdLq−LqRS][idiq]+[Ld100Lq1][vdvq]+[0−NωLqΨm]根据机械运动方程,
Jω˙=T−TL−Bω结合电磁转矩公式,可以得到转速与电流之间的关系:
ω˙=2J3N((Ld−Lq)idiq+Ψmiq)−JTL−JBω基于电压前馈的线性化方法#
为了实现dq轴电流的解耦控制,一般会使用电流前馈补偿实现电机系统的线性化:
vd0vq0=NωLqiq=Nω(Ldid+Ψm)其中vd0和vq0将作为前馈项补偿电压的非线性项,补偿后的系统将变为一个线性系统:
[idiq]=[−LdRS00−LqRS][idiq]+[Ld100Lq1][vdvq]基于电流偏差前馈的线性化方法#
不难发现,使用前馈电压法要求对电机系统参数的精确建模,如果存在参数不匹配的情况,将无法完全消除电流间的耦合问题。此时,我们可以使用电流偏差来做解耦控制,电机的输入期望电流为id∗和iq∗,电流偏差解耦的传递函数为Gd′(s)和Gq′(s),电流环控制器使用PID控制,传递函数为Gd(s)和Gq(s),控制框图如下图所示: 
根据图示可以推导出控制方程:
vd∗vq∗=Gd(s)id∗+Gd′(s)iq−Gd(s)id−Gd′(s)iq∗=Gq(s)iq∗+Gq′(s)id∗−Gq(s)iq−Gq′(s)id+NωΨm带入系统状态方程,可以得到:
Gd(s)id∗+Gd′(s)iq−Gd(s)id−Gd′(s)iq∗Gq(s)iq∗+Gq′(s)id∗−Gq(s)iq−Gq′(s)id=(RS+Lds)id−NωLqiq=(RS+Lqs)iq+NωLdid化简上式可以得到:
aid∗+biq∗=cid+diqmid∗+niq∗=pid+qiq其中:
- a=Gd(s)
- b=−Gd′(s)
- c=(RS+Lds+Gd(s))
- d=−(Gd′(s)+NωLq)
- m=Gq′(s)
- n=Gq(s)
- p=(Gq′(s)+NωLd)
- q=(RS+Lqs+Gq(s))
写为矩阵形式,可以得到:
[idiq]=[AddAqdAdqAqq][id∗iq∗]其中,
- Add=cq−dpaq−dm
- Adq=cq−dpbq−dn
- Aqd=dp−cqap−cm
- Aqq=dp−cqbp−cn
当Adq=Aqd=0时,系统完全解耦。可以解得传递函数Gd′(s)和Gq′(s):
Gd′(s)Gq′(s)=RS+LqsNωLqGq(s)=RS+LdsNωLdGd(s)修改控制框图,使用电流偏差法解耦后的控制框图如下图: 
滑模观测器设计#
当估计值L^q和L^d与真实值Lq,Ld之间不匹配时,Adq,Aqd=0,系统中仍然存在耦合项。为了获取准确的电流,这里设计一个滑模观测器。
根据上面的电流状态方程,可以给出滑模观测器的估计方程:
i^˙di^˙q=−LdRSi^d+Ldvd+NωLdLqi^q+f1=−LqRSi^q+Lqvq−NωLqLdi^d−NωLqΨm+f2给出滑模观测器的控制律:
[f1f2]=[−LdRSsd+LdLqNωsq+Kdsign(sd)−LdRSsq−LdLqNωsd+Kqsign(sq)]其中Kd和Kq分别为dq轴滑模增益,滑模面为:
s=[sdsq]=[i~di~q]=[id−i^diq−i^q]使用指数趋近律,有:
s˙=[s˙ds˙q]=[−LdRSsd+LdLqNωsq+Kdsign(sd)−LdRSsq−LdLqNωsd+Kqsign(sq)]根据李雅普诺夫稳定性,V˙(x)=ss˙≤0,即:
sds˙dsqs˙q=sd(−LdRSsd+LdLqNωsq+Kdsign(sd))⩽0=sq(−LdRSsq−LdLqNωsd+Kqsign(sq))⩽0为了满足稳定性条件,可以得出Kd和Kq的取值范围:
Kd⩽LdRSsd−LdLqNωsqKq⩽LqRSsq−LqLdNωsd根据滑模观测器的电流方程可以得到估计电流,
i^˙di^˙q=−LdRSi^d+Ldvd+NωLdLqi^q+f1=−LqRSi^q+Lqvq−NωLqLdi^d−NωLqΨm+f2化简上式可得:
i^˙di^˙q=Ldvd−LdRSid+LdLqNωiq+Kdsign(sd)=Lqvq−LqRSiq+LqLdNωid−NωLqΨm+Kqsign(sq)CAUTION此处未能推导出论文中提及的滑模观测器公式,可能是推导错误或者论文中的错误,直接使用论文中的结论进行实验,结果尚未验证。论文中,原传递函数为:
Gd′(s)Gq′(s)=RS+L^qs+sL^qβ2RSL^qNω+sL^dβ1L^qNωGq(s)=RS+L^ds+sL^dβ1RSL^dNω+sL^qβ2L^dNωGd(s)
NOTE本部分解耦控制与滑模观测器参考基于滑模观测器的永磁同步电机电流偏差解耦控制
力反馈实现#
我们设计完电流的闭环控制以后,可以将电流环路作为一个有一阶延迟的理想系统,通过改变电流可以实现更改电机的输出力矩,让我们回到电机的力矩与电流的方程:
T=23N(iq(idLd+Ψm)−idiqLq)=23N(Ld−Lq)idiq+23NΨmiq让我们分两种情况分析,当Ld=Lq时,id=0即可实现最大转矩电流比,此时有:
T=23NΨmiq转矩和q轴电流呈线性关系,即我们通过读取电机的电流可以估计电机的输出转矩。再根据机械转动平衡方程,可以得到以下公式:
T=Jω˙+Bω+TL+Td其中TL为负载转矩,Td为未建模的干扰转矩。为了消除干扰转矩的影响,我们可以通过设计鲁棒速度控制器来对干扰转矩进行反向建模。
首先,给出状态空间方程:
ω˙=−JBω+J1(T−TL−Td)在电机空载时,TL=0,此时我们可以先忽略干扰项进行控制器设计:
T=−Kω使用LQR离线求解状态反馈矩阵K,定义滑模面s=Gω+z,对滑模面求导得到趋近律:
s˙=Gω˙+z˙配置滑模面和趋近律使其初始位置为0,于是有:
z˙=−Gω˙=−G(−JBω+J1(T−Td))由于Td是未知项,这里使用近似法直接去除Td项来保持z˙全程已知。
z˙=−Gω˙≈−G(−JBω+J1T)将z˙带入滑模面,可得:
s=Gω+∫0inf(−G(−JBω+J1T))dt+(−Gω˙0)对于趋近律,有:
s˙=Gω˙−G(−JBω+J1T)=JGTd当G=J时,s˙=Td,为了消除该干扰项,我们可以修改控制率:
T=−Kω−ρ∣s∣+0.001sρ为干扰上界,这里不再证明控制器的稳定性。控制电机保持低速旋转,通过读取输出力矩可以得到近似干扰力矩Td,使用数值法对该干扰力矩进行建模并通过前馈补偿消除干扰力矩。