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