曾水根 丁俊健 劉萬(wàn)斌
摘要:本文首先對(duì)繼電保護(hù)技術(shù)在日益壯大與復(fù)雜的電網(wǎng)安全運(yùn)行中重要性進(jìn)行分析,指出了電力錄波波形重現(xiàn)技術(shù)在電網(wǎng)安全運(yùn)行中的重要性,繼而基于逆波蘭算法實(shí)現(xiàn)了一種電力錄波數(shù)據(jù)分析公式編輯器。隨后基于公式編輯器的設(shè)計(jì)思路進(jìn)行分步解析予以實(shí)現(xiàn),同時(shí)將該公式編輯器應(yīng)用于實(shí)踐。
關(guān)鍵詞:電網(wǎng);繼電保護(hù);錄波數(shù)據(jù);數(shù)據(jù)分析;逆波蘭;公式編輯器
中圖分類(lèi)號(hào):TP399
文獻(xiàn)標(biāo)識(shí)碼:B
DOI: 10.3969/j.issn.1003-6970.2015.08.026
0 引言
隨著電力需求的快速增長(zhǎng),電力網(wǎng)絡(luò)規(guī)模也日益壯大,電網(wǎng)結(jié)構(gòu)越來(lái)越復(fù)雜,電網(wǎng)安全顯得日益重要?;诖?,作為電網(wǎng)安全運(yùn)行重要保障的繼電保護(hù)技術(shù)在近些年獲得了突飛猛進(jìn)的發(fā)展。電力錄波技術(shù)能夠正確評(píng)價(jià)繼電保護(hù)裝置的工作情況,在保護(hù)裝置動(dòng)作時(shí)有利于幫助我們準(zhǔn)確地找出電網(wǎng)運(yùn)行的錄波點(diǎn),以及時(shí)采取有效措施,減少電網(wǎng)錄波發(fā)生概率,盡量降低損失。但電力錄波技術(shù)的錄波數(shù)據(jù)并不是直觀的事故分析數(shù)據(jù),所以我們需要將計(jì)算機(jī)軟件技術(shù)應(yīng)用于電力錄波數(shù)據(jù)分析,以實(shí)現(xiàn)對(duì)電力錄波數(shù)據(jù)進(jìn)行直觀的圖形或列表化顯示,幫助我們對(duì)保護(hù)動(dòng)作情況形成全面、完整、客觀的判斷。
現(xiàn)有電力系統(tǒng)錄波數(shù)據(jù)分析軟件的分析功能雖然已經(jīng)比較豐富,基本上實(shí)現(xiàn)了包括諧波分析、相/序量分析、阻抗分析、功率分析、功角分析、頻率分析、差流分析、矢量圖分析等分析功能,能滿足用戶的一般需求,但這些分析功能有一個(gè)共同缺點(diǎn),用戶參與僅限于有限的參數(shù)設(shè)置與一定數(shù)量的通道選擇,而對(duì)于電力系統(tǒng)專(zhuān)家級(jí)需求的電力系統(tǒng)錄波分析,這些分析功能遠(yuǎn)遠(yuǎn)不夠,他們往往要求更復(fù)雜的分析功能。鑒于此,本文基于算術(shù)逆波蘭算法實(shí)現(xiàn)了一種電力錄波數(shù)據(jù)分析公式編輯器,以滿足專(zhuān)家級(jí)用戶對(duì)電力錄波數(shù)據(jù)更復(fù)雜的分析要求。
1 設(shè)計(jì)思路
1.1 表達(dá)式
表達(dá)式,是由數(shù)字、運(yùn)算符、數(shù)字分組符號(hào)(括號(hào))、自由變量和約束變量等以能求得數(shù)值的有意義排列方法所得的組合。約束變量在表達(dá)式中已被指定數(shù)值,而自由變量則可以在表達(dá)式之外另行指定數(shù)值。例如,表達(dá)式x/y中,自由變量x和y可分別在表達(dá)式之外指定值,如x=10和y=5。
1.2 逆波蘭表達(dá)式
把變量和數(shù)字都看作操作數(shù)(Operand),同時(shí)數(shù)字分組符號(hào)看作運(yùn)算符(Operator),表達(dá)式則可看作一般由操作數(shù)和運(yùn)算符組成,例如算術(shù)表達(dá)式中,通常把運(yùn)算符放在兩個(gè)操作數(shù)的中間,例如a+b,為中綴表達(dá)式。波蘭數(shù)學(xué)家Jan Lukasiewicz提出了另一種數(shù)學(xué)表示法,它有兩種表示形式:把運(yùn)算符寫(xiě)在操作數(shù)之前,稱(chēng)為波蘭表達(dá)式(Polish Expression)或前綴表達(dá)式(Prefix Expression),如+ab;把運(yùn)算符寫(xiě)在操作數(shù)之后,稱(chēng)為逆波蘭表達(dá)式(Reverse Polish Expression)或后綴表達(dá)式(Suffix Expression),如ab+。
1.3 本文中的公式編輯器表達(dá)式
本文中的公式編輯器基于算術(shù)逆波蘭算法實(shí)現(xiàn),將用戶按照一定規(guī)則編寫(xiě)好的復(fù)雜的公式交由分析軟件來(lái)檢查執(zhí)行并顯示運(yùn)算效果的一種有效算法。通過(guò)該算法,用戶可以實(shí)現(xiàn)對(duì)指定通道及數(shù)據(jù)的復(fù)雜運(yùn)算,以更好地對(duì)電力系統(tǒng)錄波數(shù)據(jù)進(jìn)行分析,得出想要的結(jié)果。
2 本文中的公式編輯器實(shí)現(xiàn)
本文中的公式編輯器執(zhí)行分為三步。
第一步,將編寫(xiě)好的公式代人相應(yīng)的通道變量值,轉(zhuǎn)換為普通的中綴表達(dá)式;第二步,將第一步轉(zhuǎn)換好的普通中綴表達(dá)式轉(zhuǎn)換為逆波蘭表達(dá)式(后綴表達(dá)式);第三步,轉(zhuǎn)換好的逆波蘭表達(dá)式求值。
2.1 將編寫(xiě)好的公式轉(zhuǎn)換為普通的中綴表達(dá)式
從左到右掃描編寫(xiě)好的公式,如果發(fā)現(xiàn)Freq(頻率偏差)、EFFV(有效值)、Dist(信號(hào)畸變)、Phase(相位差)、IMP_M(阻抗幅值)、IMP_P(阻抗相位)、P(有功功率)、Q(無(wú)功功率)、HARM_M(諧波幅值)、HARM_P(諧波相位)、Shift(相移)、正序、負(fù)序、零序、突變量運(yùn)算符和Sum(求和)、Avg(求平均)、Abs(絕對(duì)值)、Sin(正弦)、Cos(余弦)、Sqrt(開(kāi)方)等變量,直接獲取對(duì)應(yīng)通道或數(shù)字,計(jì)算出相應(yīng)值,將計(jì)算出的值替換掉公式中對(duì)應(yīng)部分變量字符串,并繼續(xù)對(duì)替換后的公式進(jìn)行從左到右掃描直到結(jié)束,獲得替換后的表達(dá)式即為第二步中作為輸入的普通中綴表達(dá)式,如圖1:
2.2 將普通的中綴表達(dá)式轉(zhuǎn)換為后綴表達(dá)式
1.首先構(gòu)造一個(gè)運(yùn)算符棧,此運(yùn)算符在棧內(nèi)遵循越往棧頂優(yōu)先級(jí)越高的原則。
2.讀人第一步中得到的中綴表達(dá)式。
3.從左至右掃描該中綴表達(dá)式,從第一個(gè)字符開(kāi)始判斷,如果該字符是數(shù)字,則分析到該數(shù)字串的結(jié)束并將該數(shù)字串直接輸出。
4.如果不是數(shù)字,該字符則是運(yùn)算符,此時(shí)需比較優(yōu)先級(jí)關(guān)系,做法如下:
將該字符與運(yùn)算符棧頂?shù)倪\(yùn)算符的優(yōu)先關(guān)系相比較。如果該字符優(yōu)先關(guān)系高于此運(yùn)算符棧頂?shù)倪\(yùn)算符,則將該運(yùn)算符人棧;倘若不是的話,則將棧頂?shù)倪\(yùn)算符從棧中彈出,直到棧頂運(yùn)算符的優(yōu)先級(jí)低于當(dāng)前運(yùn)算符,將該字符人棧。
5.重復(fù)上述操作1-4直至掃描完整個(gè)中綴表達(dá)式,確定所有字符都得到正確處理,我們便可以將該中綴式轉(zhuǎn)化為逆波蘭表達(dá)式(后綴表達(dá)式)。
圖2為將普通的中綴表達(dá)式轉(zhuǎn)換成逆波蘭表達(dá)式的流程圖,圖中Si為掃描中綴表達(dá)式的臨時(shí)字符變量,re為轉(zhuǎn)換結(jié)果輸出串,sk為臨時(shí)棧。
2.3 逆波蘭表達(dá)式求值
第三步,逆波蘭表達(dá)式求值。
將第二步轉(zhuǎn)換得到的逆波蘭表達(dá)式作為本步的計(jì)算表達(dá)式。
1.首先構(gòu)造一個(gè)運(yùn)算符棧。
2.從左向右掃描第二步轉(zhuǎn)換得到的逆波蘭表達(dá)式。
3.如果掃描的項(xiàng)目是操作數(shù),則將其壓人操作數(shù)堆棧,并掃描下一個(gè)項(xiàng)目。
4.如果掃描的項(xiàng)目是一個(gè)二元運(yùn)算符,則對(duì)棧的頂上兩個(gè)操作數(shù)執(zhí)行該二元運(yùn)算符。
5.如果掃描的項(xiàng)目是一個(gè)一元運(yùn)算符,則對(duì)棧的最頂上操作數(shù)執(zhí)行該一元運(yùn)算符。
6.將運(yùn)算結(jié)果重新壓人堆棧。
7.重復(fù)步驟2-6,堆棧中即為結(jié)果值。
圖3為逆波蘭表達(dá)式求值流程圖,即2-6執(zhí)行過(guò)程流程圖。
3 公式編輯器應(yīng)用
3.1 應(yīng)用領(lǐng)域
本文實(shí)現(xiàn)的公式編輯器可應(yīng)用于電力系統(tǒng)錄波數(shù)據(jù)分析軟件,以實(shí)現(xiàn)高端用戶對(duì)于電力錄波數(shù)據(jù)的較復(fù)雜的分析需求,對(duì)電力系統(tǒng)錄波數(shù)據(jù)分析具有重大意義??梢宰層脩糇约簞?dòng)手編寫(xiě)運(yùn)算公式,通過(guò)按鈕選擇或手動(dòng)輸入實(shí)現(xiàn)對(duì)任意符合條件的通道進(jìn)行包括Freq(頻率偏差)、EFFV(有效值)、Dist(信號(hào)畸變)、Phase(相位差)、IMP_M(阻抗幅值)、IMP_P(阻抗相位)、P(有功功率)、Q(無(wú)功功率)、HARM_M(諧波幅值)、HARM_P(諧波相位)、Shift(相移)、正序、負(fù)序、零序、突變量等通道運(yùn)算或加、減、乘、除、Sum(求和)、Avg(求平均)、Abs(絕對(duì)值)、Sin(正弦)、Cos(余弦)、Sqrt(開(kāi)方)等算術(shù)運(yùn)算以及混合運(yùn)算,公式編寫(xiě)完成后,首先通過(guò)檢查按鈕進(jìn)行公式正確性檢查,檢查通過(guò)后則可通過(guò)執(zhí)行按鈕經(jīng)過(guò)逆波蘭算法實(shí)現(xiàn)公式計(jì)算的三部算法計(jì)算每個(gè)點(diǎn)的值,將運(yùn)算結(jié)果生成新的指定類(lèi)型的通道并在分析波形顯示界面顯示其波形,編寫(xiě)的公式還可以存儲(chǔ)到本地磁盤(pán),以備以后隨時(shí)調(diào)用編輯,或直接執(zhí)行。
3.2 應(yīng)用實(shí)例
筆者將本文實(shí)現(xiàn)的公式編輯器應(yīng)用于公司的電力系統(tǒng)錄波數(shù)據(jù)分析軟件,在公式編輯窗口提供了便捷的Freq(頻率偏差)、EFFV(有效值)、Dist(信號(hào)畸變)、Phase(相位差)、IMP_M(阻抗幅值)、IMP_P(阻抗相位)、P(有功功率)、Q(無(wú)功功率)、HARM_M(諧波幅值)、HARM_P(諧波相位)、Shift(相移)、正序、負(fù)序、零序、突變量和加、減、乘、除、Sum(求和)、Avg(求平均)、Abs(絕對(duì)值)、Sin(正弦)、Cos(余弦)、Sqrt(開(kāi)方)等實(shí)用按鈕,從用戶反饋信息來(lái)看,實(shí)用效果滿足高端用戶對(duì)于電力錄波數(shù)據(jù)的較復(fù)雜的分析需求,對(duì)電力系統(tǒng)錄波數(shù)據(jù)分析具有重大意義。圖4為基于本文實(shí)現(xiàn)的公式編輯器實(shí)現(xiàn)的電力錄波數(shù)據(jù)分析系統(tǒng)公式編輯器編輯界面。
4 結(jié)束語(yǔ)
本文基于逆波蘭算法構(gòu)建了一種實(shí)用的電力錄波數(shù)據(jù)分析公式編輯器,并將其應(yīng)用于軟件產(chǎn)品研發(fā)。經(jīng)實(shí)踐證明,該公式編輯器的實(shí)現(xiàn)豐富了電力錄波數(shù)據(jù)的分析功能,滿足了專(zhuān)家級(jí)用戶對(duì)于電力錄波數(shù)據(jù)的復(fù)雜分析需求,對(duì)電力系統(tǒng)錄波數(shù)據(jù)分析具有重大意義,是繼電保護(hù)裝置平穩(wěn)運(yùn)行不可或缺的得力助手,進(jìn)而為電網(wǎng)穩(wěn)定運(yùn)行保駕護(hù)航。
當(dāng)然,本文實(shí)現(xiàn)的公式編輯器還具有一定的局限性,例如只能對(duì)有限的運(yùn)算符進(jìn)行運(yùn)算,需要在使用和實(shí)踐中不斷完善。