劉帆,韓國棟,張智雄,吳鈁
(1.華中科技大學 自動化學院, 武漢 430074; 2.中核蘭州鈾濃縮有限公司, 蘭州 730065)
電力電子技術(shù)的普及,為我們帶來極大便利的同時,也使得電網(wǎng)的電能質(zhì)量惡化,尤其對于電能需求大的工業(yè)現(xiàn)場,其非線性負載在運行期間會對電網(wǎng)注入諧波,引起周邊用戶供電質(zhì)量的惡化,甚至影響電網(wǎng)輸配電設(shè)備的穩(wěn)定運行。使用有源電力濾波器(APF),可以有效地改善電網(wǎng)的電能質(zhì)量。因此,APF供電系統(tǒng)運行時數(shù)據(jù)的實時采集與監(jiān)控,對于系統(tǒng)的安全可靠運行,有著非常重要的意義[1-2]。
文獻[3]和文獻[4]使用主控芯片TMS320C5416的SCI接口,通過RS-232通信方式與上位機直接進行數(shù)據(jù)交換,對于MAX3232來說,其最高的通信速率為120 kbps,即使?jié)M負荷運行,在滿足采樣精度的前提下,也無法完成從同一個時刻開始對電網(wǎng)側(cè)電壓電流等模擬采樣值的實時數(shù)據(jù)采集,并且其通信模式也制約了數(shù)據(jù)的長距離傳輸。文獻[5]采用STM32作為系統(tǒng)的監(jiān)控模塊,利用自身的AD模塊采集需要監(jiān)控的數(shù)據(jù),并通過4個串口進行傳輸,雖然它的外設(shè)豐富,可以支持無線、RS485等多種數(shù)據(jù)傳輸顯示方式,但是一方面其所獲得的模擬數(shù)據(jù)并非是參與控制的數(shù)據(jù),采樣精度低,并且沒有與主控芯片交互,對于內(nèi)部的運行數(shù)據(jù)無法獲取,另一方面受限于串口通信速率,其不能獲取每一次采樣中斷中所得到的數(shù)據(jù),即使利用外擴的SD卡存儲數(shù)據(jù),其數(shù)據(jù)保存量有限并且獲取數(shù)據(jù)操作繁瑣,不利于數(shù)據(jù)實時采集與監(jiān)控。
針對以上的問題,設(shè)計了一個基于LwIP的APF實時數(shù)據(jù)采集監(jiān)控系統(tǒng),通過ARM獲取來自主控芯片DSP的實時數(shù)據(jù),然后利用ARM自身的網(wǎng)絡接口,與上位機進行數(shù)據(jù)交互,其最大速率可以達到100 M。本系統(tǒng)解決了數(shù)據(jù)傳輸實時性的要求,在最大32 kHz控制頻率下,可以獲取每一個采樣中斷得到的12個模擬數(shù)據(jù)以及此時系統(tǒng)的運行狀態(tài),同時,來自于上位機的各種控制參數(shù)可以由網(wǎng)口寫入到下位機中,便于實現(xiàn)在不同控制參數(shù)下測試APF系統(tǒng)的性能,并且系統(tǒng)運行的實時數(shù)據(jù),可以在上位機中采集,通過對原始數(shù)據(jù)的分析,可以更加直觀地獲得系統(tǒng)的控制效果,利于初期設(shè)備調(diào)試時控制算法的優(yōu)化。另一方面由于網(wǎng)絡數(shù)據(jù)傳輸距離不受限制,可以設(shè)置不同IP節(jié)點,實現(xiàn)多臺設(shè)備組網(wǎng),方便應用于工業(yè)現(xiàn)場的遠程監(jiān)控[6-7]。
如圖1所示,系統(tǒng)的核心芯片為某公司的雙核DSP芯片TMS32F28377D,其主要參與系統(tǒng)的電網(wǎng)側(cè)三相電壓、電流以及負載三相電流等模擬量的采集,故障信號輸入,IO信號輸入輸出,串口通信,PWM脈沖輸出等工作,是系統(tǒng)穩(wěn)定運行的關(guān)鍵。某公司的LPC4357作為系統(tǒng)的對外通訊模塊,其為Cortex-M4內(nèi)核的ARM芯片,擁有USART,SPI,SSP,CAN以及ENTHERNET等通信模塊,由于本系統(tǒng)是選取PC作為顯示終端,所以主要使用其SPI,SSP以及ENTHERNET接口,其余預留的通訊接口可作為日后功能擴展。ARM利用外部的以太網(wǎng)物理層芯片DP83848與上位機進行數(shù)據(jù)交互。
圖1 系統(tǒng)整體結(jié)構(gòu)
整個數(shù)據(jù)采集監(jiān)控系統(tǒng)運行流程為:板子上電后,存儲在ARM中的控制參數(shù)通過串口寫入到DSP中,在確定傳輸數(shù)據(jù)有效后,系統(tǒng)正常工作。首先通過電流霍爾、線性光耦以及電壓互感器(Potential Transformer,PT)等傳感器將三相電壓電流信號統(tǒng)一轉(zhuǎn)換為幅值在一定范圍內(nèi)的電壓信號,再經(jīng)過各種調(diào)理電路,轉(zhuǎn)換為最終進入到DSP的模擬信號和數(shù)字信號。其中差分的模擬信號作為DSP內(nèi)部16位精度的AD輸入,數(shù)字信號(故障信號)先輸入到CPLD中,然后通過SPI傳輸?shù)紻SP中。每次進入采樣中斷,DSP讀取AD模塊中已經(jīng)轉(zhuǎn)換完成的12個16位精度的數(shù)字量,與獲得的故障及系統(tǒng)運行狀態(tài)信號組成一幀(17個16位數(shù)據(jù)),在適當時機由SPI接口(16 bit傳輸模式)傳輸?shù)紸RM中,ARM在接收完這幀數(shù)據(jù)后就將其傳輸?shù)缴衔粰C中,由上位機對數(shù)據(jù)進行相應的處理,并顯示相應的數(shù)據(jù)。
LwIP是由瑞典計算機科學院(SICS)的Adam Dunkels開發(fā)的一種輕量級IP協(xié)議,它使用C語言編寫,通過減少對RAM的占用,使得其在保存TCP協(xié)議主要功能的情況下,可以移植到嵌入式系統(tǒng)中使用[8]。并且LwIP提供了多種常用的的協(xié)議,例如:IP,UCMP, TCP/IP, ARP, DHCP, HTTP服務器等,這些功能可以通過lwippopts.h中的宏定義來決定功能的啟用或者禁用[9]。同時,LwIP不僅能夠獨立運行,而且可以移植到嵌入式操作系統(tǒng)。正是由于LwIP的這些優(yōu)點,使得其在嵌入式系統(tǒng)的網(wǎng)絡通訊中有廣泛的應用。
本系統(tǒng)采用LwIP作為LPC4357與上位機通信的協(xié)議,考慮到傳輸數(shù)據(jù)的特點,主要使用了TCP/IP與UDP協(xié)議。對于一些數(shù)據(jù),比如上位機發(fā)出的控制指令和控制參數(shù),它們只需要在某一個特定時刻寫入到下位機中,但是必須保證下位機接收到了數(shù)據(jù),并且數(shù)據(jù)必須正確,這時使用TCP/IP協(xié)議,因為TCP是面向連接的通訊協(xié)議,當它發(fā)現(xiàn)數(shù)據(jù)傳輸出現(xiàn)問題時,會要求重新發(fā)送,這樣就能保證數(shù)據(jù)安全準確地發(fā)送到目的地。而對于要以32 kHz頻率實時更新的系統(tǒng)運行數(shù)據(jù),由于實時性的要求采用UDP這種無需接收方確認的無連接通訊協(xié)議,可以滿足系統(tǒng)實時性的需求[10]。
采用TCP/IP傳輸數(shù)據(jù),上位機作為客戶端,下位機(LPC4357)作為服務器,下位機處于監(jiān)聽狀態(tài),當上位機發(fā)起連接請求時,下位機就與上位機建立好連接,此時就可以進行數(shù)據(jù)的交互。當接收到TCP/IP協(xié)議獲取實時數(shù)據(jù)的指令時,開始傳輸實時數(shù)據(jù),此時采用UDP協(xié)議,上位機作為服務器,下位機作為客戶端,下位機以32 kHz的頻率向上位機的指定端口寫入數(shù)據(jù)幀。
系統(tǒng)的軟件設(shè)計主要分為三部分:主控芯片DSP負責整個APF系統(tǒng)的數(shù)據(jù)獲取與控制,同時組織相應數(shù)據(jù)傳輸給ARM或者接受來自ARM的數(shù)據(jù),DSP控制整個采集系統(tǒng)的時序,只有當DSP數(shù)據(jù)更新才觸發(fā)ARM完成一次數(shù)據(jù)的傳輸;通訊芯片ARM負責協(xié)調(diào)組織來自DSP的數(shù)據(jù)并將其上傳到上位機中,并且DSP所需的控制參數(shù)也由其存儲,在系統(tǒng)上電后寫入;上位機采用C#編寫了一個數(shù)據(jù)存儲和顯示的應用程序,負責對來自ARM的數(shù)據(jù)進行分析處理,再根據(jù)需求顯示存儲數(shù)據(jù)。
如圖2、圖3所示,傳輸?shù)臄?shù)據(jù)主要分為兩種:(1)開機階段儲存于ARM中的控制參數(shù)下發(fā)與上傳及正常運行時控制參數(shù)修改后寫入ARM的EEROM中;(2)正常運行時采樣中斷頻率下更新的實時數(shù)據(jù)由DSP經(jīng)ARM上傳到上位機中。
圖2 控制參數(shù)傳輸
圖3 實時數(shù)據(jù)傳輸
由于數(shù)據(jù)采集系統(tǒng)單位時間內(nèi)數(shù)據(jù)更新量大,底層硬件電路要保證在盡可能短的時間內(nèi)完成系統(tǒng)的數(shù)據(jù)更新,所以對于底層的軟件設(shè)計要解決數(shù)據(jù)更新傳輸?shù)臅r序控制問題。圖4為實時數(shù)據(jù)采集監(jiān)控系統(tǒng)的主要底層軟件程序流程圖,可以有效滿足系統(tǒng)數(shù)據(jù)量大,實時性要求高的需求。
系統(tǒng)實際分為DSP和ARM中的底層軟件設(shè)計:
(1)APF中所有核心控制算法均由DSP實現(xiàn),DSP計算任務艱巨,為了不影響APF系統(tǒng)的整體控制性能,對于實時數(shù)據(jù)的傳輸要做到在不過多占用系統(tǒng)主頻的情況下將數(shù)據(jù)組織發(fā)送給ARM。本系統(tǒng)采用時間分片的方式,由中斷程序的數(shù)據(jù)更新標志控制DSP主循環(huán)中實時數(shù)據(jù)的組織與發(fā)送。當更新標志置1時,執(zhí)行主循環(huán)中數(shù)據(jù)發(fā)送程序,將新的數(shù)據(jù)壓入到SPI的發(fā)送FIFO中,然后通知ARM數(shù)據(jù)已更新,由ARM產(chǎn)生時鐘來讀取數(shù)據(jù),無需等待數(shù)據(jù)發(fā)送完畢,當數(shù)據(jù)未更新時,則執(zhí)行主循環(huán)中的其它程序。需要注意的是,APF系統(tǒng)運行必須要設(shè)定控制參數(shù),所以在系統(tǒng)上電的時候要從ARM中獲取當前運行的控制參數(shù)值,因此在沒有獲得參數(shù)之前,系統(tǒng)一直處于等待狀態(tài)。
圖4 主要功能程序流程圖
(2)ARM是整個采集監(jiān)控系統(tǒng)的核心,負責數(shù)據(jù)調(diào)度。一方面ARM和上位機交互,根據(jù)上位機下發(fā)的不同指令一一予以回復,同時還要保證DSP數(shù)據(jù)更新信號到來時在盡可能短的時間內(nèi)響應,從DSP端讀取數(shù)據(jù);另一方面,要保證在系統(tǒng)上電時,能準確地向DSP端寫入控制參數(shù),使系統(tǒng)可以正常運行。為了滿足對DSP信號的及時響應,在每一個數(shù)據(jù)更新周期中,只檢查一次IP層數(shù)據(jù)包,查詢是否上位機有下發(fā)新指令,其余時間都在等待數(shù)據(jù)更新信號,這樣就可以在最短的時間內(nèi)讀取DSP的新數(shù)據(jù),避免數(shù)據(jù)幀的丟失。
上位機采用C#編寫監(jiān)控界面,主要負責下發(fā)指令和控制參數(shù)以及接收下位機上傳的實時數(shù)據(jù)。監(jiān)控界面分為連接調(diào)試、控制參數(shù)、數(shù)據(jù)采樣、系統(tǒng)狀態(tài)、波形查看5個界面。其中連接調(diào)試界面用于設(shè)置遠程服務器IP以及端口號,連接或者斷開服務器,同時可以顯示當前連接狀態(tài)與接收和發(fā)送的數(shù)據(jù);控制參數(shù)界面主要進行下位機控制參數(shù)的獲取和寫入新的參數(shù)值;數(shù)據(jù)采樣界面負責下達實時數(shù)據(jù)采樣指令,也可以停止數(shù)據(jù)上傳,使采集監(jiān)控系統(tǒng)處于待機狀態(tài),功率回路采樣的電壓與電流有效值在此頁面顯示;系統(tǒng)狀態(tài)界面用于顯示當前APF系統(tǒng)的運行狀態(tài),當系統(tǒng)發(fā)生故障時,能及時顯示并報警;波形查看界面負責所有波形的顯示任務,它可以在同一個坐標系下顯示同一時刻的一個或者多個波形,波形刷新頻率可以根據(jù)不同需求進行設(shè)置,也能停止數(shù)據(jù)刷新,查看波形狀態(tài)。對于每一個波形數(shù)據(jù)都有對應的按鈕可以保存某一時刻開始的系統(tǒng)實時采樣數(shù)據(jù),數(shù)據(jù)保存在txt文檔中,便于利用分析軟件對系統(tǒng)的控制效果進行分析。
為了驗證基于LwIP的APF實時數(shù)據(jù)采集監(jiān)控系統(tǒng)的正確性,通過設(shè)計的硬件電路,如圖5所示,驗證電網(wǎng)三相交流電壓輸入的情況下,控制參數(shù)的上傳與下發(fā)以及上位機實時數(shù)據(jù)顯示與保存等功能(數(shù)據(jù)僅為驗證系統(tǒng)功能)。
圖5 硬件電路實物圖
如圖6的控制參數(shù)界面,可以完成系統(tǒng)實際運行時的調(diào)試以及各次諧波的補償控制等需求。通過讀取參數(shù)按鈕可以獲取當前系統(tǒng)運行的控制參數(shù),如需修改APF運行的控制參數(shù),將參數(shù)填入相應的方框中,按確認修改按鈕,則新的控制參數(shù)寫入到ARM的EEROM中,在系統(tǒng)重新上電后通過SPI傳輸?shù)紻SP中,作為APF系統(tǒng)的運行參數(shù)。只有當這些控制參數(shù)準確下發(fā)到DSP中,系統(tǒng)才能正常運行,完成對應諧波的補償。
圖6 控制參數(shù)
圖7和圖 8為上位機單相線電壓與三相線電壓的顯示波形,通過本系統(tǒng)準確地顯示出了DSP采樣得到的電網(wǎng)輸入三相線電壓波形。
圖7 輸入單相電壓的顯示波形
圖8 輸入三相電壓的顯示波形
通過數(shù)據(jù)保存按鈕,獲取VSR_Vab一段時間的實時數(shù)據(jù),利用Matlab對其中的3201數(shù)據(jù)進行波形分析得到圖9的5個完整的正弦周期。由于DSP是以32 kHz頻率對電網(wǎng)50 Hz的三相電壓進行模擬采樣,在輸入電壓的一個周期內(nèi)采樣640~641個點,則對于5個正弦周期有3 200~3 205個數(shù)據(jù)點。因此驗證了系統(tǒng)的實時性,滿足了實時數(shù)據(jù)上傳的需求。
圖9 Matlab導入數(shù)據(jù)波形
由于采用的是以太網(wǎng)通訊方式,保證了數(shù)據(jù)傳輸?shù)目煽啃耘c穩(wěn)定性。系統(tǒng)經(jīng)過長時間不間斷的運行測試,底層硬件能穩(wěn)定工作,實時數(shù)據(jù)按照設(shè)定的時序,通過網(wǎng)絡接口準確地上傳到上位機中,不會影響到APF系統(tǒng)的正常運行。
闡述了基于LwIP的APF實時數(shù)據(jù)采集監(jiān)控系統(tǒng),本文設(shè)計了利用網(wǎng)口傳輸速率快的特點,結(jié)合DSP與ARM之間的SPI數(shù)據(jù)通信,通過一定的時序控制,實現(xiàn)了上位機獲取DSP在32 kHz中斷頻率下的12個實時采樣模擬數(shù)據(jù)以及此時系統(tǒng)運行狀態(tài)(3個16位數(shù)據(jù)),上位機單位時間內(nèi)所獲取的數(shù)據(jù)量為48萬個16位數(shù)據(jù),解決了利用RS-232或者RS-485等串口通信數(shù)據(jù)傳輸有限的問題,實現(xiàn)了上位機與DSP的數(shù)據(jù)同步,達到APF系統(tǒng)實時監(jiān)控以及數(shù)據(jù)采集的功能。同時,可以通過DSP與ARM之間的通信接口從上位機下發(fā)數(shù)據(jù)到下位機中,實現(xiàn)APF的控制參數(shù)更新,便于滿足不同諧波補償比例的需求以及研發(fā)初期設(shè)備的調(diào)試。通過實驗驗證了該系統(tǒng)的實時性與可靠性。