程 立 李少卿 李德文 朱何榮 熊慕文
(南京南瑞繼保電氣有限公司,南京 211102)
隨著我國經濟的持續發展,企業社會對電力的需求越來越旺盛,電網規模越來越大,電網結構趨于復雜,負荷用戶類型也越來越多。很多大型煉鋼廠、鍛造廠、電氣化鐵路出力特性不明顯、波動性大[1],容易產生諧波、間諧波,造成電壓不穩定,電網電能質量下降。另一方面,風電、光伏等新能源[2]不斷投入,這些新能源具有易受氣候條件影響、出力不穩定、波動范圍廣、間歇性較強的特點,也會為電網帶來諧波含量增加、電壓閃變等問題,從而影響電網的電能質量。
從電網角度來講,電網公司對提高供電水平格外重視,在電網的某些關鍵點,如風電、光伏等新能源站、直流換流站、重要負荷點會安裝電能質量監測終端,實時監視電網的電能質量水平,并加以改善。從用戶角度來講,隨著精密加工企業越來越多,這些企業生產精密機床、高科技芯片等,電壓暫升暫降都會導致次品率躍升而蒙受損失,因此這些企業額外重視電能質量。在這些企業中,購買安裝電能質量監測終端往往是自發行為,它們更多地是監視電網的電壓質量,作為電網對生產線造成影響而索賠的依據。
電能質量監測所形成的數據對于電網和用戶來說都很重要。電能質量數據交換文件PQDIF[3]是電能質量存儲管理的標準格式文件,不僅可以定時存儲穩態數據(如10min數據),而且可以存儲暫態事件(如電壓暫升/暫降等)數據。根據IEC 61000-4-30[4]標準,PQDIF的穩態數據基于10周波數據,而10周波數據的計算都是在實時性很強的 DSP單元完成,而PQDIF的存儲往往依賴文件系統,在非實時的操作系統中生成。10周波數據的實時性太強,傳統的方法都是在操作系統中用150周波數據替代而進行統計,這明顯違背了IEC 61000-4-30規定的測量方法原則。
本文在深入研究電能質量終端架構設計的基礎上,提出了一種電能質量數據交換文件生成方案。該方案完全遵守IEC 61000-4-30測量方法原則,采用10周波數據作為數據源,快速正確地生成電能質量數據交換文件。通過設計相應的測試方法,驗證了本文所提出方法的有效性和正確性。
為了統一電能質量數據文件的格式,在20世紀90年代IEEE標準委員會起草了IEEE 1159.3[5]標準文件,采用了一種電能質量數據交換格式(power quality data interchange format, PQDIF)。此文件格式最早由美國電力科學研究院提出。此草案統一了電能質量文件格式,給出了相關術語、定義和指導方針,解決了不同廠家數據的可交換性問題。
PQDIF文件分為兩個視圖,即物理層和邏輯層。物理層只負責文件的存儲結構與定義,不關心存儲的內容。文件存儲結構類似于鏈表結構,Record之間相互鏈接,如圖1所示。圖1(a)是鏈表結構按序存儲,圖1(b)是鏈表結構跳躍式存儲,兩者都符合物理層的存儲要求。
在物理層中,每個Record包含header和body結構,其中 header概要描述 body存儲信息,body包含文件詳細內容(body可采用 zlib壓縮格式),如圖2所示。

圖1 PQDIF物理層

圖2 header和body結構
邏輯層只關心文件的內容,分為 Container、DataSource、MonitorSetting、Observation幾個類型,典型的邏輯層表示如圖3所示,Container包含若干DataSource,DataSource包含若干MonitorSetting和Observation。

圖3 PQDIF邏輯層
從物理層來看,各個Record是平行結構,沒有層次關系,但從邏輯層來看,各個Record之間存在層次關系。DataSource與Observation的對應關系如圖4所示。

圖4 DataSource與Observation
本文實現方案采用嵌入式裝置[6],硬件架構為CPU+DSP。CPU采用 Linux[7]操作系統,除了板卡管理外,還負責PQDIF文件管理工作。DSP采用中斷方式,除了基本電壓/電流、諧波/間諧波、波動和閃變[8]等計算模塊外,還負責PQDIF的統計數據生成。CPU與DSP之間通過HTM總線交互數據,總線速率可達到320Mbps。
DSP中包含統計模塊、傳輸模塊;CPU中包含接收模塊、文件生成模塊、文件管理模塊。統計模塊生成數據后,通過HTM分時傳輸到CPU,CPU接收模塊從HTM驅動讀出后,push到共享內存。文件生成模塊從共享內存pop出數據,生成PQDIF文件,最后文件管理模塊對文件進行存儲及管理并提供接口給IEC 61850[9-10]、LCD及其他APP。

圖5 系統結構
按照IEC 61000-4-30 A級標準,每10個周波計算一個值,15個 10周波值做均方根,每到一個統計周期(如10min),將時間窗重新對齊,中間不允許丟點,如圖6所示。

圖6 IEC 61000-4-30A級數據窗
統計數據分為4種,即最大值、最小值、平均值、95%值。最大值、最小值、平均值含義比較明確。95%值含義是指將計算的點按從大到小的順序排列,去掉5%最大值,剩下中最大的即為95%值。舉個例子:100到1是100個數字,減去5%的最大值,即剩余 95~1共 95個數字,那么 95%值就是95(剩余最大值)。IEC標準取95%意指時間,即觀測點的評估指標應在95%的時間內符合標準要求。
這4種統計值都基于10周波數據,考慮到實時性,因此要放在DSP的實時中斷計算。在本算法實現中,統計模塊Statis拉取MMXU、MSQI、MHAI模塊的指針,如圖7所示。
計算中斷為50ms,因為每10周波計算一個數據,所以 50ms中斷不是每次都能刷到新數據。MMXU/MHAI/MSQI分別提供一個 cycle10的計數器,在10周波計算完成后該計數器加一。在Statis模塊檢測到cycle10計數器變化后,對新數據進行統計。最大值、最小值可以直接比較得出;平均值首先要計算累加和,等到統計周期結束后再進行平均計算;95%值需要將數據緩存下來,在統計周期結束后采用排序方法進行計算。
計算 95%值,按照 10周波一個點,每個點 4字節 float存儲,10min統計出結果,那么就需要4× 1 0× 6 0 ÷ 0 .2 = 1 2000字節,很耗費空間。這里采用一個反向方法,只選取最大的5%大值,這樣存儲空間就降到12000× 5 % = 6 00字節,空間節省 95%。C代碼片段如下所示。shell_sort按照升序排列,最終的cpf95_vec[0]就是95%值。

圖7 Statis統計模塊

統計模塊生成數據后,要設法傳輸到CPU板,因此必須設計一個數據傳輸通道。本方案 CPU和DSP[11]間通過HTM總線進行數據交互。由于還有其他應用數據也通過 HTM 傳輸,留給統計數據傳輸的帶寬并不大,因此要設計一種交換協議分時進行數據傳輸。本文采用的數據協議如下:

按照間隔1, 2, …, N的順序,每個間隔內按照MMXU、MHAI、MSQI的時序傳輸,合理分配帶寬,確保在一個統計周期(如 10min)內將數據傳輸完畢,每個50ms中斷傳輸數據個數M計算公式如下:

時序如圖8所示。

圖8 傳輸時序圖
統計數據通過HTM總線傳輸至CPU板卡之后,由HTM驅動模塊接收并且緩存。由于HTM驅動緩存較小,所以要及時讀取出來,否則緩存塞滿后就會丟失數據。在 Linux操作系統側,通過共享內存生成一個隊列長度256,每個隊列1KB的環形緩沖區,在1.25ms中斷讀取HTM數據并拷貝至環形緩沖區,由另外一個獨立的文件生成線程讀取數據,如圖9所示。

圖9 接收及生成模塊
在圖9中,采用獨立線程每3s批量讀取數據,根據預先設置的PQDIF生成模板,將數據組織生成文件。本文采用的PQDIF模板如下。
ChannelDef
?Voltage of A/B/C //三相電壓幅值
?Current of A/B/C //三相電流幅值
?Phase Angle of Voltage A/B/C //三相電壓相角
?Phase Angle of Current A/B/C //三相電流相角
?Unbalance of Voltage/Current //電壓電流不平衡度
?Positive/Negative/ZeroSequence of Voltage//電壓正負零序
?Positive/Negative/ZeroSequence of Current//電流正負零序
?THD of Voltage VA/VB/VC //三相電壓總畸變率
?HR of Voltage VA/VB/VC //三相電壓諧波含有率
?HRof Current IA/IB/IC //三相電流諧波含有率
?Real Power of the total/A/B/C //總及三相有功
?Active Power of the total/A/B/C //總及三相無功
?Apparent Power of the total/A/B/C //總及三相視在功率
?True Power Factor of the total/A/B/C //總及三相功率因素
?Phase Angle of Power Factor A/B/C //三相相角
?Real Power of Fundamental Frequency of the total/A/B/C //基波總及三相有功
?Acitve Power of Fundamental Frequency of the total/A/B/C //基波總及三相無功
?Apparent Power of Fundamental Frequency of the total/A/B/C //基波總及三相視在功率
?Power of Harmonic Frequency of the total/ A/B/C //總及三相諧波功率
由于PQDIF的物理層相當于鏈表結構,鏈表結構在文件系統中操作難度較大。因此,IEEE 1159.3推薦了一種很巧妙的方法,利用內存方式生成相應的鏈表結構,記錄下每個塊之間的內存偏移(相當于文件中鏈表的下一個塊),這種內存方式比文件系統易于操作,而且要靈活的多。由于整個PQDIF文件存儲內容較多,整個塊頭可能比較大,因此需要分段采用內存鏈表結構進行存儲,每存儲一個段就釋放內存,下一個段再重新利用這塊內存,這樣可以減小內存塊,減輕內存資源壓力。文件體采用壓縮格式存儲時也可以預先在內存中用zlib庫壓縮好后,再寫入文件中,C代碼片斷如下。

PQDIF文件生成后采用 MySQL[12]開源數據庫進行管理。MySQL是由瑞典MySQL AB公司開發的一款關系型數據庫,后來被Oracle公司收購。在嵌入式操作系統Linux中,MySQL應用十分廣泛。文件管理模塊設計如圖10所示,由PQDIF_SERVER主進程和insert_thread、query_thread、del_thread三個線程組成。PQDIF_SERVER主進程初始化MySQL數據庫,完成數據庫表結構的構建及關鍵字的建立。insert_thread功能為:當有新的PQDIF文件生成時,存儲進特定目錄,按照間隔+時間日期關鍵字存入MySQL表結構;query_thread功能為:為IEC 61850、LCD和其他APP提供同步和異步兩種接口,可以按照間隔+時間關鍵字的方式檢索信息,提供返回文件路徑接口。del_thread功能:定期檢測表結構及磁盤大小,按照時間順序刪除掉最老文件,同時也刪除相應的表結構信息。

圖10 文件管理模塊
本文對提出的電能質量數據交換文件方案做了測試進行驗證。測試平臺硬件:CPU為PPC,主頻800MHz;DSP為TI芯片,主頻1GHz;內存1G;SD卡為32G;操作系統為Linux。選擇電壓監測點如下:10%Un、150%Un,每個監測點持續 20個周波,總共持續15min,查看PQDIF文件數據結果,見表1。測試結果小于標準要求精度0.2%Un,滿足工程應用需求。

表1 測試結果摘錄
采用本文方案研發的電能質量監測終端已在安徽六合光伏、四川宜賓農網及重慶鋁廠等項目中成功運行。現場終端采用 51.2K/s的模擬采樣,通過交換機接入路由設備,通過綜合數據網上送到主站系統,規約采用IEC 61850。PQDIF文件既可通過IEC 61850的文件服務上送主站,又可通過終端本身自帶的USB進行數據拷貝。組網方式如圖11所示。
工程項目自投運以來,采用該方案實現的終端運行穩定可靠,采集和生成了大量電能質量PQDIF數據文件,為當地電力部門分析電網狀態、實施有效合理的治理措施提供了大量詳實的運行數據。

圖11 網絡結構圖
本文提出了電能質量數據交換文件的生成方案,并且成功地應用在電能質量終端的研發上。該方案嚴格遵守IEC 61000-4-30的測量方法,采用10周波數據,在實時系統與非實時系統間進行數據傳送生成PQDIF文件。試驗結果表明,該方案生成結果可靠正確。本文提出方案研發的電能質量監測終端已經被成功應用在安徽、四川及重慶等地,為用戶提供了大量詳實的電能質量數據,幫助用戶分析電網狀態,為科學決策電能質量治理問題提供了堅實的數據依據。