單片機(jī)中最小二乘方濾波器的向量測量及功率計算研究
單片機(jī)是一種集成在電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個小而完善的計算機(jī)系統(tǒng)。
目前,以單片機(jī)為基礎(chǔ)的數(shù)字式電氣測量、保護(hù)裝置已成為主流形式。交流信號直接采樣也已成為一種普通的方法??焖俑盗⑷~算法是其中的主要算法,而最小二乘方算法,計算量很大,尤其在單片機(jī)的處理能力有限的情況下,既要保證實時性,又要保證計算速度,不經(jīng)過精心設(shè)計和程序優(yōu)化,很難保證二者的統(tǒng)一。
通過減少采樣次數(shù)、使用每周濾四個采樣點擬合的濾波器和一套優(yōu)化措施,使該算法計算速度大大提高,可以勝任工頻向量的實時測量,因而可以用于過流、速斷、方向保護(hù)等多個方面。本文分析了濾波器中的向量相位關(guān)系,同時給出了以此為基礎(chǔ)的兩線制功率計算舉例。該方法已通過實際應(yīng)用檢驗。
1 最小二乘方濾波器的構(gòu)造
根據(jù)文獻(xiàn)[1~3]的研究結(jié)果,對每一路信號,輸入電壓函數(shù)可表示為:
在一般的測量、保護(hù)應(yīng)用中,只需關(guān)心基波成分。為減少計算量,應(yīng)最大限度地減少采樣次數(shù)。根據(jù)采樣定理,一個正弦函數(shù)的離散采樣次數(shù)量少每周波3次。為了方便,將每周波采樣次數(shù)定為4次,即采樣周期為5ms.則公式(1)中只能包含直流和工頻分量。將直流分量按泰勒級數(shù)展開并取其前兩項,則(1)式成為:
其中,P0為直流分量值,P1為基波峰-峰值,θ1為基波分量在采樣時刻相對于零點的相位角。
若以最近連續(xù)4次采樣值為樣本,可得到4個采樣方程。如將P0、-P0λ、P1cos(θ1)P1sin(θ1)作為待測未知數(shù),可將4個采樣方程表示成如下矩陣:
若分別用符號A表示系數(shù)矩陣,X表示未知參數(shù)向量,U表示采樣值,則:
其中A-1表示A的逆矩陣,亦即向量X的最小二乘方濾波器。根據(jù)文獻(xiàn)[3],這個濾波器為:
因此,
實際應(yīng)用中,為了減少單片機(jī)順序采樣帶來的時間延遲所造成的計算誤差,硬件電路應(yīng)具有同步采樣功能。其作用就是在采樣時刻將所有電氣信號分別保持下來。
2 數(shù)字濾波器中瞬時相量的關(guān)系
若用ua、ub、uc分別表示三相電壓相量,Ua,Ub、Uc表示其有效值,初始相位角分別用θua、θub、θuc表示;用ia、ib、ic分別表示三相電流相量,Ia、Ib,Ic表示其有效值,初始相位角分別為θia、θib、θic.則(4)式就是對應(yīng)相量在X軸上的投影,即矢量的實部;(5)式就是對相量在Y軸上的投影,即矢量的虛部,(4)和(5)式中的θ1是上述相量相對于20ms時間窗之初時刻的相位角。
圖1表示了A相電壓和A相電流的相位關(guān)系,其他依此類似。
上述相量的相位關(guān)系是相量進(jìn)一步運算的基礎(chǔ)。
3 兩線制功率計算
目前,高壓線路的功率測量一般采用三相電壓和兩組電流,即兩線制功率表方法。用式(4)、(5)、(6)、(7)和(10)可以實現(xiàn)線路有功功率和無功功率測量,具體過程如下:
兩線制的前掉是假設(shè)三相電流平衡,即:
其中,uab為A相和B相之間的線電壓;ucb為C相和B相之間的線電壓。
將(6)和(7)式結(jié)果帶和(14)、(15)和(13)式,即測得三相平衡線路的有功功率。
如果輸入電壓是相電壓,則:
將上式中的余弦函數(shù)展開后,再鈄(6)和(7)式的對應(yīng)結(jié)果分別代入即可。
無功功率的計算只需將(14)、(15)和(16)式中的余弦運算改為相應(yīng)的正弦運算即可。
4 基于單片機(jī)應(yīng)用的優(yōu)化措施
從目前市場情況來看,雖然單片機(jī)性能在不斷提高,如INTEL單片機(jī)從8位、16位到32位不斷推陳出新,但真正得以廣泛采用的并不是性能最好的產(chǎn)品。從實際應(yīng)用來看,有時必須面對一個受限制的客觀現(xiàn)實。就本應(yīng)用來說,采用以下措施可大大提高程序的計算速度。
4.1 變浮點運算為整數(shù)運算
對于(4)~(10)式來說,采用C或PL/M高級語言進(jìn)行浮點運算既方便,精度又高。但與整數(shù)運算相比,浮點運算速度要慢得多。因此,為提高計算速度,應(yīng)盡量采用整數(shù)運算。從工程實際來看,A/D轉(zhuǎn)換后的結(jié)果一般是雙字節(jié)整數(shù),可與放大10位的最小二乘濾波器直接運算,則(4)式變?yōu)椋?/p>
(17)、(18)式只有6次4字節(jié)的長整數(shù)乘法和4次加法。即使對12位A/D而言,(17)、(18)式的計算結(jié)果也不會溢出。由于濾波器擴(kuò)大10倍時是整數(shù),沒有四舍五入,因此計算過程無任何附加誤差。
4.2 快速求平方根法
從(4)~(10)式來看,耗時最多的是(10)式,即求平方根運算,獲得基波的峰-峰值。
如果直接采用標(biāo)準(zhǔn)浮點庫提供的開平方函數(shù),16MHz的80196KC需3ms左右。若采用文獻(xiàn)[4]中的整數(shù)查表法,或文獻(xiàn)[5]提供的精度為1%的二分法,相同條件下求根所需時間一般在100~300μs之間,計算速度提高10倍以上。
本文提出的每周波4個采樣點的最小二乘方濾波器可在一般單片機(jī)中實現(xiàn)工頻信號的實時相量測量。算法進(jìn)一步優(yōu)化后,可在一個周波的時間窗內(nèi)對多路信號作出實時反映,滿足一般保護(hù)的技術(shù)要求。該算法還可以實現(xiàn)其他保護(hù)和測量功能。