基于FPGA的數(shù)字三相鎖相環(huán)優(yōu)化設計
摘要:數(shù)字三相鎖相環(huán)中含有大量乘法運算和三角函數(shù)運算,占用大量的硬件邏輯資源。為此,提出一種數(shù)字三相鎖相環(huán)的優(yōu)化實現(xiàn)方案,利用乘法模塊復用和CORDIC算法實現(xiàn)三角函數(shù)運算,并用Vetilog HDL硬件描述語言對優(yōu)化前后的算法進行了編碼實現(xiàn)。仿真和實驗結果表明,優(yōu)化后的數(shù)字三相鎖相環(huán)大大節(jié)省了FPGA的資源,并能快速、準確地鎖定相位,具有良好的性能。
關鍵詞:FPGA;三相鎖相環(huán);乘法復用;CORDIC
0 引言
在PWM整流器、不間斷電源(UPS)、有源電力濾波器(APF)等需要并網(wǎng)的電力電子裝置控制中,獲得電網(wǎng)電壓的相位是系統(tǒng)控制的前提。一般都采用鎖相環(huán)PLL來獲取電網(wǎng)電壓的相位。三相電網(wǎng)電壓可能存在三相不平衡,電壓有諧波、頻率、相位突變。為了全面反映電網(wǎng)電壓的真實狀況,采用三相鎖相環(huán)來鎖定電網(wǎng)電壓相位角,而且三相鎖相環(huán)的抗干擾能力更強。采用現(xiàn)場可編程門陣列(FPGA),并以硬件方式實現(xiàn)三相鎖相環(huán),可充分體現(xiàn)FPGA硬件的高速性,且不受CPU資源的制約。
本文對數(shù)字三相鎖相環(huán)的系統(tǒng)原理和算法實現(xiàn)進行了研究,并對三相鎖相環(huán)在FPGA中實現(xiàn)的算法進行了優(yōu)化設計。通過采用乘法模塊復用和基于坐標旋轉數(shù)字式計算機(CORDIC)的算法計算含有三角函數(shù)的坐標轉換模塊,節(jié)省了數(shù)字三相鎖相環(huán)實現(xiàn)所需的硬件開銷。用硬件描述語言Verilog HDL設計出了整個三相鎖相環(huán)系統(tǒng)。該三相鎖相環(huán)在以Altera公司芯片CyconeⅡEP2C15AF256C8為主芯片的實驗板上進行了驗證。
1 三相鎖相環(huán)的基本原理
1.1 鎖相環(huán)基本原理
鎖相環(huán)一般由鑒相器(PD)、環(huán)路濾波器(LF)、壓控振蕩器(VCO)組成。鎖相環(huán)是一個相位反饋系統(tǒng)。鑒相器把周期性的輸入信號與VCO反饋來的相位信號進行比較,得到一個相位誤差;誤差經(jīng)環(huán)路濾波器進行濾波,環(huán)路濾波器的輸出被用作控制信號送入VCO,用來消除輸入、輸出信號的相位差。
1.2 三相鎖相環(huán)的結構與原理
三相鎖相環(huán)的拓撲結構如圖1所示。
數(shù)字三相鎖相環(huán)的關鍵模塊是矢量控制中的2個系統(tǒng)變換:從a-b-c三相靜止坐標到α-β兩相靜止坐標的Clarke變換(C32)和從α-β兩相靜止坐標到d-q兩相旋轉坐標(基波同步速為ω0)的Park變換(Cdq):
式中:U為電壓的有效值。
鎖相環(huán)未鎖定時q分量為一交流分量,與已設的分量q*=0比較得到一直流分量,以此完成鑒相。直流分量再經(jīng)過由PI控制器組成的低通濾波器控制壓控振蕩器,最終使得ω與ω0相等,q分量為0,達到鎖相。
2 三相鎖相環(huán)的系統(tǒng)仿真
根據(jù)圖1三相鎖相環(huán)的拓撲結構,在Matlab/Simulink中搭建系統(tǒng)仿真模型。三相電壓為220 V,采樣頻率為fs=5 kHz,壓控振蕩器的中心頻率為f=50 Hz,通過仿真調整,最終確定Kp=0.02,K1=0.001,使鎖相環(huán)鎖相的速度與精度達到最佳效果。圖2(a)是三相鎖相環(huán)在0.05 s內的三相電壓ua,ub,uc仿真波形;圖2(b)是三相鎖相環(huán)在0.05 s內的兩相旋轉坐標下ud,uq仿真波形,d軸分量大約在0.01 s穩(wěn)定為0,即0.5個周期達到鎖相;圖2(c)是三相鎖相環(huán)在0.05 s內的三相電壓a相位角θ與VCO輸出相位角θ*的仿真波形,θ與θ*在0.01 s基本完全重合,達到鎖相。結果表明,三相鎖相環(huán)可在0.5個周期內快速、準確地鎖定電網(wǎng)電壓。
3 三相鎖相環(huán)的FPGA設計
3.1 未優(yōu)化的三相鎖相環(huán)的FPGA結構
根據(jù)圖1三相鎖相環(huán)的拓撲結構及原理,三相鎖相環(huán)的基本硬件結構如圖3所示。
首先通過采樣,將三相電壓離散化并處理為32 b有符號數(shù),經(jīng)過Clarke變換與相應的參數(shù)相乘后相加得到兩相靜止坐標的分量μα,μβ。共有5個乘法運算,3個加法運算。然后是Park變換,在此三相鎖相環(huán)中只需要μq分量,需要2個乘法運算,2個三角函數(shù)計算,1個加法運算。后面的PI控制器需要2個乘法運算,2個加法運算。最后是VCO需要2個加法運算。整個運算過程共需要9個乘法運算,9個加法運算,2個三角函數(shù)運算。
從對三相鎖相環(huán)的基本結構分析可知,整個過程需要9個乘法運算,2個三角函數(shù)運算。在FPGA中實現(xiàn)乘法運算和三角函數(shù)運算會消耗大量的資源。特別是傳統(tǒng)的查表法三角函數(shù)運算在消耗大量資源的同時還存在精度問題。
3.2 三相鎖相環(huán)的優(yōu)化設計
由于該設計采用25 MHz的系統(tǒng)時鐘,而采樣頻率為5 MHz,所以設計的時序余量非常大。依據(jù)面積和速度的平衡與互換的基本原則,針對乘法運算多的特點,采用乘法復用,系統(tǒng)中只保留一個乘法模塊,通過合理選擇,達到時分復用。
在Park變換中存在的三角函數(shù)運算,可以通過CORDIC算法優(yōu)化。CORDIC算法是通過基本的加法和移位運算來代替乘法和三角函數(shù)運算的,特別適合矢量旋轉的運算。使用迭代的方法,多步完成要旋轉的角度。CORDIC算法可以實現(xiàn)如式(6)所示的運算。
式中:x0,x1為初始坐標;θ為要旋轉角度;y0,y1為最終的坐標。通過對式(6)的分析與Park變換相比較可以發(fā)現(xiàn),只要把角度取負,就可以通過CORDIC算法完成整個Park變換的運算。
優(yōu)化后系統(tǒng)的硬件結構如圖4所示。
4 結語
本文分析了三相鎖相環(huán)的基本原理。針對FPGA的特點對鎖相環(huán)進行了優(yōu)化設計,并利用Verilog HDL硬件描述語言編碼實現(xiàn)。該設計可直接用于PWM整流器、UPS等控制系統(tǒng)中。