FOC(field-oriented control)為磁場導向控制,又稱為矢量控制(vector control),是一種利用變頻器(VFD)控制三相交流馬達的技術,利用調整變頻器的輸出頻率、輸出電壓的大小及角度,來控制馬達的輸出。其特性是可以個別控制馬達的的磁場及轉矩,類似他激式直流馬達的特性。由于處理時會將三相輸出電流及電壓以矢量來表示,因此稱為矢量控制。
達姆施塔特工業大學的K. Hasse及西門子公司的F. Blaschke分別在1968年及1970年代初期提出矢量控制的概念。Hasse提出的是間接矢量控制,Blaschke提出的是直接矢量控制。布倫瑞克工業大學的維爾納·萊昂哈德(Leonhard further)進一步開發磁場導向控制的控術,因此交流馬達驅動器開始有機會取代直流馬達驅動器。
當時微處理器尚未商品化,但已經出現泛用的交流馬達驅動器。當時相較于直流馬達驅動器,交流馬達驅動器的成本高、架構復雜,而且不易維護。而當時的矢量控制需要許多傳感器及放大器等元件,因此無法將矢量控制應用在交流馬達驅動器中。
派克變換一直被用在同步馬達及感應馬達的分析及研究,是了解磁場導向控制最需要知道的概念。這個概念是羅伯特·派克(Robert Park)在1929年的論文中提出的。派克變換被列為二十世紀發表電力電子相關論文中,第二重要的論文。派克變換的重要性是可以將馬達有關的微分方程,由變系數微分方程變成“時不變”系數的微分方程。
矢量控制可以適用在交流感應馬達及直流無刷馬達,早期開發的目的為了高性能的馬達應用,可以在整個頻率范圍內運轉、馬達零速時可以輸出額定轉矩、且可以快速的加減速。不過相較于直流馬達,矢量控制可配合交流馬達使用,馬達體積小,成本及能耗都較低,因此開始受到產業界的關注。矢量控制除了用在高性能的馬達應用場合外,也已用在一些家電中
VFD-VE系列的向量控制核心技術是FOC((Field Oriented Control),也就是業界通稱的磁場導向控制或磁束向量控制。愈來愈多的馬達驅動器採用磁場導向控制,因為它可讓馬達在任何時刻都在最佳的扭力之下工作,所以可獲得更高的效率,它具有更好的動態反應,能夠達到非常精準的可變速度之控制,還有更低的扭力漣波(ripple),在馬達啟動、運轉、和停止時可提供一致和穩定的馬達轉動。
矢量控制的由來
先簡單說明一下什么是矢量控制。原理是通電導線在磁場中滿足左手定則,會受到一個力的作用。PSMS電機的轉子為永磁鋼,定子為幾
FOC的基本控制塬理是在叁相定子側流動的電流可以合成一個等效的合成電流向量,它的旋轉角速度就是輸入電源的角頻率ω。透過座標轉換技巧,可以將此電流向量映射到兩軸旋轉座標中。如果此兩軸座標也同樣以角速度ω旋轉,則在此座標中電流向量可視為是靜止的;換言之,電流向量在此座標中是直流量,既然是直流量,這樣就可讓馬達轉矩與電流成正比例關係,但還需要滿足一些條件,包括馬達的轉子磁通必須與圖中的d軸重合,而且電流向量的d軸分量必須維持為定值。滿足以上的條件后,交流馬達的轉矩將與定子電流成正比,所以控制定子電流的向量值就可以像控制直流馬達般的簡易且精準。
工作原理圖
1、采集到兩相電流
2、經過clarke變換后得到兩軸正交電流量,
3、經過旋轉變換后得到正交的電流量 Id、Iq,其中Iq與轉矩有關,Id與磁通有關。在實際控制中,常將Id置為0。得到的這兩個量不是時變的,因此可以單獨的對這兩個量進行控制,類似直流量控制一樣。而不需要知道具體要給電機三相具體的電壓為多少。
4、將第3步中得到的Iq與Id量分別送進PI調節器,得到對應的輸出Vq和Vd;
5、通過傳感器得到電機轉過的角度。
6、進行逆park變換,得到二軸電流量。
7、對第6步中的Va,Vb進行逆clarke變換,得到實際需要的三相電壓輸入給逆變電橋,驅動電機轉動。
FOC 計算公式
1. PMSM.C 中的ADC1Interrupt()AD中斷處理函數中調MeasCurr.S 中MeasCompCurr:
讀入ACD1,ACD2(帶符號小數)
校正:ADC1*CarrADC1-offset=qIa ADC2*CarrADC2-offset=qIb
2. PMSM.C 中的ADC1Interrupt()中調CalculateParkAngle()對相角θ處理
先調用smcpos.c 滑模觀測器中SMC_Position_Estimation(),之中
①又調用smc.s 中的CalcEstI 計算估算電流I :
EstIalpha=Gsmopos*(Valpha-Ealpha-Zalpha)+Fsmopos*EstIalpha
---- Isα(n+1)=G*(Vα(n)-Eα(n)-Zα(n))+F*αIs α(n)
EstI beta=Gsmopos*(V beta-E beta-Z beta)+Fsmopos*EstI beta
---- Isβ(n+1)=G*(Vβ(n)-Eβ(n)-Zβ(n))+F*Isβ(n)
②調smc.s 中CalcIError 計算實測電流與估算電流的偏差:
IalphaError = EstIalpha – Ialpha
Ibeta Error = EstIbeta – Ibeta
---- ΔI α= Is α- I α ΔI β= Is β- I β
③調smc.s 中CalcZalpha ,CalcZbeta 計算Z α, Zβ:
當abs(IalphaError)《 MaxSMCError時 Zalpha = (Kslide * IalphaError) / MaxSMCError
當abs(IalphaError)≥ MaxSMCError時
Zalpha 為正時Zalpha= Kslide 為負時Zalpha=-Kslide
當abs(I betaError)《 MaxSMCError時
Zbeta = (Kslide * IbetaError) / MaxSMCError
當abs(I beta Error)≥ MaxSMCError時
Z beta 為正時Z beta = Kslide 為負時Z beta=-Kslide
---- 當|ΔI α|《Δmax 時:Z α= Ks*ΔI α/Δmax
當|ΔI α|≥Δmax 時:|Z α|= Ks
當|ΔI β|《Δmax 時:Z β= Ks*ΔI β/Δmax
當|ΔI β|≥Δmax 時:|Z β|= Ks
④調smc.s 中CalcBEM 按低通濾波器公式計算反電動勢: Ealpha = Ealpha + Kslf * (Zalpha - Ealpha)
Ebeta = Ebeta + Kslf * (Zbeta – Ebeta)
兩級濾波,后級濾波系數為KslfFinal
---- Eα(n)= Eα(n-1)+Ksf*(Zα(n-1)- Eα(n-1))
E β(n)= Eβ(n-1)+Ksf* (Zβ(n-1)- Eβ(n-1))
⑤調atan2CORDIC.s 中反正切函數atan2CORDIC 計算相角
Theta = atan2CORDIC(-EalphaFinal, EbetaFinal)
---- θ=atan(-Eα/ Eβ)
⑥在smcpos.c 中的SMC_Position_Estimation函數中進行速度預算
PrevTheta = s-》Theta
AccumThetaCnt++
if (AccumThetaCnt == IRP_PERCALC)
Omega = AccumTheta
---- 求累加角Σθ+=θ(n)-θ(n-1)
更新θ(n-1)= θ(n) 累加次數m(θCnt)+=1
當m = M (速度計算需要的PWM 定時次數) 時,速度預算值ω=Σθ
此前僅算出ω(Omega),未算 V(速度Speed) ,即未找到V=Kv*ω
Kv=60/T(測算速度時間)/磁極對數
⑦調smc.s 中CalcOmegaFltred 對ω進行數字濾波
OmegaFltred=OmegaFltred+FiltOmCoef*(Omega-OmegaFltred)
---- ωfl (n)= ωfl (n-1)+ Kωfl *[ω(n)- ωfl (n-1)]
Kωfl:濾波系數=2πFc/Fpwm Fpwm:脈寬調制頻率
Fc: 濾波器截止頻率(電機最低轉速*磁極對數/60)
⑧在smcpos.c 中的SMC_Position_Estimation函數中計算濾波器系數 ??
Kslf = OMEGA0 * _PI / IRP_PERCALC;
KslfFinal = OMEGA0 * _PI / IRP_PERCALC
⑨在smcpos.c 中的SMC_Position_Estimation函數中進行相位補償計算
ThetaOffset=OmegaFltred*(SLOPEFRACn+SLOPEINTn)+CONSTANTn
不同的速度有不同的補償,程序分幾個頻段, 式中3常數取不同值(n 不同)。
---- θΔ =ωfl *(Kscn+Kstn)+ Kcn
3. PMSM.C 中的ADC1Interrupt()中調clrkepark.s 的ClarkePark 進行座標變化
Ialpha = Ia
Ibeta = Ia*dOneBySq3 + 2*Ib*dOneBySq3;
Id = Ialpha*cos(Angle) + Ibeta*sin(Angle)
Iq = -Ialpha*sin(Angle) + Ibeta*cos(Angle)
─ ---- Iα= Ia Iβ=(Ia+2Ib)/√3
Id = Iα*Cosθ+Iβ*Sinθ Iq = -Iα*Sinθ+Iβ*Cosθ
4. PMSM.C 中的ADC1Interrupt()中調DoControl()進行Id,Iq,Speed 的PI 迭代
5. 調trig.s 中的SinCos 計算qSin θ q Cosθ值
6. 調InvPark.s 中的InvPark 計算 qVα qVβ值
7. 調CalcRef.s 中的CalcRefVec 由qV α qVβ計算Vr 1 Vr2 Vr3 值
8. 調SVGEN.s 中的CalcSVGen 由Vr 1 Vr2 Vr3計算3相PWM 占空比。
強制角ParkParm.qAngle (輸出PWM 角)和滑模估算角Smc1.Theta 電機啟動時只用強制角線性遞增(稱斜坡法) Startup_Lock += 1 達到轉速后計算強制角和估算角偏差,對強制角進行修正
計算保存Δθ:Theta_error = ParkParm.qAngle - smc1.Theta 修正量:對強制角修正:ParkParm.qAngle += Startup_Ramp
Δθ每次±0.05°直到≤0.05°:Theta_error += _0_05DEG
FOC(或矢量控制)算法的簡要步驟
以下總結了控制PMSM的FOC算法步驟。
1.先測量三相定子電流ia和ib。根據ia+ib+ic=0,計算來自兩個電流傳感器的電流。
2.將三相電流轉換到2軸坐標系中。該轉換根據測量的ia、ib和ic值得到變量iα和iβ。從定子的角度來說,iα和iβ是時變正交電流值。該步驟稱為Park變換。
3.采用控制循環上一次迭代時計算的變換角旋轉2軸坐標系,使之與轉子磁通對齊。該轉換根據iα和iβ得到變量id和iq。現在,將正交電流id和iq變換到旋轉坐標系中。在穩態條件下,id和iq將保持恒定。該步驟稱為Clarke變換。
評論
查看更多