廖于翔,帥驍睿,李可維,孔祥偉,張正卿
一種基于迭代計(jì)算邏輯的正弦信號(hào)分析算法
廖于翔,帥驍睿,李可維,孔祥偉,張正卿
(武漢第二船舶設(shè)計(jì)研究所,武漢 430205)
本文針對(duì)電力監(jiān)測中對(duì)于正弦信號(hào)的分析計(jì)算問題,提出了一種基于FPGA平臺(tái)、以迭代計(jì)算邏輯為運(yùn)算核心的正弦信號(hào)分析算法。本文介紹了信號(hào)分析的數(shù)學(xué)原理,給出了計(jì)算步驟。為了解決運(yùn)算中的除法、開平方根、求正弦、求反正弦這些較為復(fù)雜的數(shù)學(xué)計(jì)算問題,在FPGA中設(shè)計(jì)了基于數(shù)字邏輯的迭代計(jì)算邏輯。本算法集成度高,對(duì)硬件資源消耗較少,在功能開發(fā)方面具有很強(qiáng)的靈活性?;诖怂惴ǎ疚慕o出了具有觸發(fā)錄波、信號(hào)分析、電能質(zhì)量運(yùn)算的多通道正弦信號(hào)數(shù)據(jù)采集及分析裝置的設(shè)計(jì)方案,這對(duì)于電力監(jiān)測裝置的研發(fā)具有一定的參考價(jià)值。
正弦信號(hào)分析 FPGA 算法 設(shè)計(jì)數(shù)據(jù)處理
現(xiàn)代電網(wǎng)以大機(jī)組、大電網(wǎng)、超高壓、長距離、重負(fù)荷、大區(qū)域聯(lián)網(wǎng)、交直流聯(lián)合、風(fēng)力及太陽能等新能源的大規(guī)模并網(wǎng)為特點(diǎn)[1~2],在強(qiáng)有力地保證社會(huì)日益增長的用電需求的同時(shí),其復(fù)雜程度也越來越高,因此,也對(duì)電力系統(tǒng)的狀態(tài)檢測與故障診斷技術(shù)提出了更高的要求。
目前,電力系統(tǒng)主要通過能量管理系統(tǒng)(EMS)、廣域測量系統(tǒng)(WAMS)、動(dòng)態(tài)安全分析(DSA)、自動(dòng)發(fā)電控制、自動(dòng)電壓和無功控制、安全自動(dòng)裝置等系統(tǒng)監(jiān)測和控制電力系統(tǒng)的運(yùn)行狀態(tài)和穩(wěn)定性[3]。
在電力系統(tǒng)的狀態(tài)監(jiān)測中,對(duì)采集的工頻正弦信號(hào)進(jìn)行采集、分析計(jì)算后,得到的待測信號(hào)的幅值、頻率、相位、諧波等特征信息,可用于反映電網(wǎng)或設(shè)備的運(yùn)行狀態(tài),是極為重要的數(shù)據(jù)。例如廣域測量中的同步相量、故障錄波的觸發(fā)判斷、供電的電能質(zhì)量等,都需要以正弦信號(hào)的分析數(shù)據(jù)為基礎(chǔ)。因此,準(zhǔn)確而快速的正弦信號(hào)分析算法,在電力系統(tǒng)監(jiān)測中具有重要作用。
本文針對(duì)電力監(jiān)測中對(duì)于正弦信號(hào)的分析計(jì)算問題,提出了一種以FPGA為開發(fā)平臺(tái)的正弦信號(hào)分析算法。算法以遞歸DFT、再采樣、多階濾波為計(jì)算原理,以具有多種數(shù)學(xué)運(yùn)算功能的迭代運(yùn)算邏輯為數(shù)字邏輯計(jì)算核心,具有硬件資源開銷小、后續(xù)可開發(fā)性強(qiáng)等特點(diǎn)。
在此算法的計(jì)算上,本位給出了具有觸發(fā)錄波、信號(hào)分析、電能質(zhì)量運(yùn)算的多通道正弦信號(hào)數(shù)據(jù)采集及分析裝置的設(shè)計(jì)方案,對(duì)于電力監(jiān)測裝置的研發(fā)具有實(shí)際的應(yīng)用意義。
通過AD轉(zhuǎn)換對(duì)正弦信號(hào)進(jìn)行數(shù)據(jù)采集后,首先通過遞歸DFT運(yùn)算得到信號(hào)的相量復(fù)數(shù)表達(dá)形式。相對(duì)DFT運(yùn)算,遞歸DFT具有更小的計(jì)算量,其計(jì)算公式為:
公式(1)中,、為上一個(gè)遞歸DFT計(jì)算時(shí)得到的待測正弦信號(hào)的的復(fù)數(shù)表現(xiàn)形式,為實(shí)部,為虛部。為數(shù)據(jù)窗內(nèi)參與計(jì)算的瞬時(shí)值的點(diǎn)數(shù)。等于2p/。、為新數(shù)據(jù)窗計(jì)算得到的待測正弦信號(hào)的實(shí)部與虛部。x為滑窗移動(dòng)一個(gè)單位后最新時(shí)刻的待測信號(hào)波形瞬時(shí)采樣點(diǎn),x為從最新窗中移去的采樣點(diǎn)。
將連續(xù)兩個(gè)數(shù)據(jù)窗計(jì)算得到的待測信號(hào)復(fù)數(shù)形式轉(zhuǎn)換為相量形式:
計(jì)算相鄰兩次遞歸DFT運(yùn)算的相位差:
在計(jì)算時(shí)需要進(jìn)行單調(diào)化處理以保證D大于0。連續(xù)的滑窗計(jì)算得到個(gè)D數(shù)值,令其分別為D1、D2、……、Dm。令S1為這個(gè)個(gè)數(shù)值之和,下一個(gè)數(shù)據(jù)窗計(jì)算得到最新值Dm+1,則采用遞歸算法更新S1值:
公式(4)描述過程為第一階平均濾波過程。同樣,存儲(chǔ)個(gè)S1數(shù)值,令其為S11、S12、……、S1,令S2為這個(gè)個(gè)數(shù)值之和。采用類似的遞歸計(jì)算公式,每次滑窗計(jì)算后更新S2:
公式(5)描述過程為第二階平均濾波過程。采用同樣的遞歸算法,共進(jìn)行四階濾波,最終得到的結(jié)果為S4與待測信號(hào)頻率f的關(guān)系為,
公式(6)中,s為采樣率。當(dāng)待測信號(hào)頻率偏移了額定頻率時(shí),采用DFT算法得到的計(jì)算結(jié)果會(huì)耦合接近二次諧波的誤差[4]。為減小誤差,采用了(4)~(6)式描述的多階平均濾波算法,可有效濾除因?yàn)轭l率偏差而導(dǎo)致的相位差數(shù)據(jù)波動(dòng),由此計(jì)算得到的待測信號(hào)頻率,具有較高精度。
得到待測信號(hào)的精確頻率后,通過再采樣算法,可以得到與待測信號(hào)同步的信號(hào)采樣值。其計(jì)算公式為,
其中,x為待測波形第時(shí)刻的瞬時(shí)采樣點(diǎn)。為與待測信號(hào)頻率的理論同步采樣點(diǎn)與實(shí)際采樣點(diǎn)之間的相位差,其計(jì)算公式為:
再采樣計(jì)算后得到個(gè)同步采樣點(diǎn):1'、2'、……、x'。對(duì)再采樣點(diǎn)進(jìn)行DFT運(yùn)算,將復(fù)數(shù)計(jì)算結(jié)果轉(zhuǎn)換為相量形式后,可得到待測信號(hào)的幅值、相位,直流分量、諧波幅值。此計(jì)算結(jié)果具有較高精度。
在正弦信號(hào)的測量算法中,除了常規(guī)的加、減、乘法,還使用了除法、求平方根、求正弦(DFT、再采樣算式中)、求反正弦(將復(fù)數(shù)轉(zhuǎn)為相量)這些復(fù)雜的數(shù)學(xué)運(yùn)算。在FPGA中,這些算法都要采用數(shù)字邏輯的方式實(shí)現(xiàn),在兼顧實(shí)現(xiàn)的基礎(chǔ)上還要盡可能減少對(duì)于各類硬件資源的消耗,是FPGA算法設(shè)計(jì)中的重點(diǎn)與難點(diǎn)。
在FPGA設(shè)計(jì)中,雖然可通過使用IP核的算法實(shí)現(xiàn)部分?jǐn)?shù)學(xué)運(yùn)算[5],但是這些IP核進(jìn)行了封裝,單個(gè)IP核往往只對(duì)應(yīng)于一種功能,對(duì)于本系統(tǒng)而言靈活性和拓展性不足。
在本設(shè)計(jì)中,設(shè)計(jì)了迭代計(jì)算邏輯模塊,專門用于解決計(jì)算過程中乘法、除法、平方根、正弦、反正弦的數(shù)學(xué)計(jì)算問題,模塊的結(jié)構(gòu)如圖1所示。
圖1 迭代計(jì)算邏輯模塊結(jié)構(gòu)圖
模塊主要由四個(gè)乘法器、一個(gè)加法器、一個(gè)減法器,數(shù)據(jù)選擇邏輯、迭代計(jì)算邏輯、只讀存儲(chǔ)器ROM組成。
迭代運(yùn)算模塊計(jì)算類型由iCal_State決定,具有除法運(yùn)算(CAL_DIV)、開方運(yùn)算(CAL_SQRT)、正弦計(jì)算(CAL_SIN)、反正弦計(jì)算(CAL_ASIN)、普通乘法運(yùn)算(CAL_MUL)這幾種功能,其模塊輸出oR與數(shù)據(jù)輸入iX,iY,iZ的關(guān)系為:
當(dāng)iCal_State等于CAL_MUL時(shí),模塊輸出oC1 ~oC4、oD1、oD2與數(shù)據(jù)輸入iA1 ~iA4、iB1 ~iB4、之間的計(jì)算關(guān)系為:
公式(9)、(10)說明,改變iCal_State的數(shù)值,迭代計(jì)算模塊既可以用于特定的除法、開方、正弦、反正弦計(jì)算;也可以用于外部輸入量的乘法、乘加、乘減運(yùn)算。此模塊具有多種功能,所有運(yùn)算最多依賴于四個(gè)乘法器,最大程度上減小了用于數(shù)學(xué)計(jì)算的硬件資源開銷。
在具體特定的數(shù)學(xué)運(yùn)算方面,采用了迭代計(jì)算的方法,將復(fù)雜的數(shù)學(xué)運(yùn)算轉(zhuǎn)換為乘法與比較運(yùn)算,從而實(shí)現(xiàn)了除法、開方、正弦、反正弦計(jì)算。這些運(yùn)算的數(shù)學(xué)問題描述為:已知單調(diào)函數(shù),函數(shù)輸入?yún)?shù)為,求()的數(shù)值。
迭代算法的解法為:令函數(shù)的反函數(shù)為單調(diào)增函數(shù)-1,初始化時(shí),令最大可能計(jì)算結(jié)果的1/2為,初始迭代計(jì)算步進(jìn)為Δ=/ 2,初始迭代次數(shù)= 1,計(jì)算-1() =';比較與',有,
每輪迭代計(jì)算更新值,再進(jìn)行下一輪計(jì)算,直至='或Δ=0或大于設(shè)定值。此時(shí)即得到計(jì)算結(jié)果() =。
對(duì)于除法計(jì)算() =/,其反函數(shù)為-1() =?;開方運(yùn)算() = sqrt() 的反函數(shù)為-1() =2。兩者通過迭代算法,都順利轉(zhuǎn)換成了乘法和比較運(yùn)算。
正弦計(jì)算sin()( 0o≤≤)則需要稍加變動(dòng)。在ROM中存儲(chǔ)了計(jì)算好的特定角度的正弦值、余弦值,這些數(shù)值包括:
迭代計(jì)算初始化時(shí)令= 0、= sin(),比較與大小,有,
其中,公式(13)算式中的正弦值、余弦值的計(jì)算通過和差化積公式實(shí)現(xiàn)。其中,sin(/2)與cos(/2)的數(shù)值已經(jīng)預(yù)先存儲(chǔ)于ROM中,通過訪問ROM得到。
反正弦計(jì)算可以看做是正弦計(jì)算的逆過程。數(shù)學(xué)問題為:已知,求asin()。初始化令=,通過訪問ROM獲取sin()與cos()的數(shù)值,進(jìn)行比較:
由以上分析可知,正弦計(jì)算、反正弦計(jì)算轉(zhuǎn)換成了乘加、乘減和比較運(yùn)算。為了便于三角函數(shù)的和差化積運(yùn)算,故迭代計(jì)算模塊中配置了4個(gè)乘法器,并將兩兩的計(jì)算結(jié)果分別再進(jìn)行了一次加法和減法運(yùn)算。迭代計(jì)算邏輯模塊解決了正弦信號(hào)計(jì)算中復(fù)雜的除法、平方根、正弦、反正弦的數(shù)學(xué)計(jì)算問題,且還能用于一般的乘法運(yùn)算,實(shí)現(xiàn)功能的同時(shí)最大程度上降低了對(duì)于FPGA硬件資源的消耗。
在本文描述算法的基礎(chǔ)之上,設(shè)計(jì)了多通道正弦信號(hào)數(shù)據(jù)采集及分析系統(tǒng)。整個(gè)硬件系統(tǒng)設(shè)計(jì)緊湊,具有錄波數(shù)據(jù)發(fā)送、錄波觸發(fā)判斷、波形特征信息(幅值、相位、頻率、諧波)、電能質(zhì)量分析等多種功能,系統(tǒng)的硬件結(jié)構(gòu)如圖2所示。
圖2 基于正弦信號(hào)測量算法的應(yīng)用系統(tǒng)硬件結(jié)構(gòu)圖
多通道待測信號(hào)被高速AD同步采集,采集波形數(shù)據(jù)通過通信接口按照一定協(xié)議可發(fā)送至DSP或上位機(jī)。波形數(shù)據(jù)同時(shí)進(jìn)入信號(hào)分析計(jì)算邏輯進(jìn)行分析處理,由此得到每個(gè)周期內(nèi)待測正弦信號(hào)的幅值、相位、頻率、諧波分量等。
這些計(jì)算結(jié)果通過與用戶配置的觸發(fā)閾值進(jìn)行比較。當(dāng)計(jì)算結(jié)果超過閾值設(shè)定范圍時(shí),錄波觸發(fā)判斷邏輯即發(fā)出帶絕對(duì)時(shí)間的觸發(fā)信號(hào)。上位機(jī)接收到此信號(hào)后可在波形信息上做出標(biāo)識(shí),從而實(shí)現(xiàn)錄波觸發(fā)的功能。電能質(zhì)量分析計(jì)算邏輯對(duì)每個(gè)周期的計(jì)算結(jié)果進(jìn)行統(tǒng)計(jì),每3s根據(jù)電能質(zhì)量的相關(guān)標(biāo)準(zhǔn)定義進(jìn)行運(yùn)算,從而得到待測信號(hào)電能質(zhì)量信息。錄波觸發(fā)與電能質(zhì)量運(yùn)算的軟件計(jì)算流程如圖3所示。整個(gè)硬件系統(tǒng)以FPGA為開發(fā)平臺(tái),具有較強(qiáng)的靈活性,可實(shí)際根據(jù)需要增刪功能。
圖3 計(jì)算軟件流程
對(duì)正弦信號(hào)的采集、分析和計(jì)算,是電力監(jiān)測設(shè)備中的基本而重要的功能。本文提出了一種以FPGA為開發(fā)平臺(tái)、基于復(fù)用迭代運(yùn)算模塊的正弦交流信號(hào)的分析算法。本文首先詳細(xì)論述了正弦信號(hào)分析計(jì)算的原理,然后針對(duì)理論算法中除法、開方、求正弦、求余弦這些采用數(shù)字邏輯起來實(shí)現(xiàn)較為困難的數(shù)學(xué)運(yùn)算,給出了一種基于迭代計(jì)算邏輯模塊的解決方案。迭代計(jì)算邏輯模塊將復(fù)雜的數(shù)學(xué)運(yùn)算轉(zhuǎn)換為迭代運(yùn)算,并通過ROM、復(fù)用乘法器、比較運(yùn)算等,在實(shí)現(xiàn)了運(yùn)算求解的同時(shí),最大程度上降低了硬件資源消耗。在此設(shè)計(jì)基礎(chǔ)之上,給出了具備有觸發(fā)錄波、信號(hào)分析、電能質(zhì)量計(jì)算的多通道正弦信號(hào)數(shù)據(jù)采集及分析系統(tǒng)設(shè)計(jì)方案。本文提出的正弦信號(hào)測量算法緊湊而靈活,具有一定的實(shí)際應(yīng)用價(jià)值。
[1] 周孝信, 陳樹勇, 魯宗相. 電網(wǎng)和電網(wǎng)技術(shù)發(fā)展的回顧與展望——試論三代電網(wǎng)[J]. 中國電機(jī)工程學(xué)報(bào). 2013. 33(22): 1-11.
[2] 羅劍波, 陳永華, 劉強(qiáng). 大規(guī)模間歇性新能源并網(wǎng)控制技術(shù)綜述[J].電力系統(tǒng)保護(hù)與控制, 2014, 42(22): 140-146.
[3] 湯涌, 王英濤, 田芳, 等. 大電網(wǎng)安全分析預(yù)警及控制系統(tǒng)的研發(fā)[J]. 電網(wǎng)技術(shù), 2012.36(7): 1-11.
[4] A G Phadke, J S Thorp.Synchronized Phasor Measurementsand Their Applications[M]. Springer, 2010.
[5] 劉東華. Xilinx系列FPGA芯片IP核詳解[M].電子工業(yè)出版社, 2013.
A sinusoidal signal analysis algorithm based on iterative calculation logic
Liao Yuxiang, Shuai Xiaorui, Li Kewei, Kong Xiangwei, Zhang Zhengqing
(Wuhan Second Ship Design and Research Institute, Wuhan 430205, China)
TM93
A
1003-4862(2022)03-0048-04
2021-07-30
廖于翔(1987-),男,工程師。主要從事電力監(jiān)測技術(shù)研究。E-mail: ttdlyx@qq.com