姜慧楠,張向鋒,王致杰,于 荷,趙丹華
(上海電機學院電氣學院,上海 201306)
隨著石油等化石能源的日漸枯竭,利用清潔能源發(fā)電受到世界各國的重視。風力發(fā)電是全球新能源中發(fā)展最快的新能源,主要集中在歐洲、北美洲和亞洲[1]。海上風電比陸地上的風電具有資源更豐富、不占用耕地、對人民生活環(huán)境影響小等優(yōu)勢。因此,風電行業(yè)的新趨勢是發(fā)展海上風力發(fā)電技術。國內相關的專業(yè)人士持有中國的海上風電在近年內將會迅速發(fā)展的觀點[2]。
海上風電的工作環(huán)境比陸地風電的工作環(huán)境更惡劣,所以機械和電氣系統(tǒng)的故障率也大幅度增加。常用于海上風電場的檢修共有三種方案:定期檢修,停機檢修,監(jiān)測檢修。從最大限度的利用機組資源及維修成本兩方面考慮,監(jiān)測檢修是海上風電機組監(jiān)測的最好的選擇[3-4]。國內外的學者提出新的方法進行海上風力發(fā)電機組的狀態(tài)監(jiān)測,然而這些新的方法仍處于試驗階段[5]。文獻[6]指出創(chuàng)建和應用提高風電組件可靠性的策略非常重要。一方面,通過檢測指示所檢查結構狀態(tài)的參數進行結構健康監(jiān)測。另一方面,狀態(tài)監(jiān)測可被視為結構健康監(jiān)測中的一個領域,其目的是檢測旋轉機械的損傷。文獻[7]提出了一種利用快速傅立葉變換和小波變換的新方法,并說明了它們在1.5MW變速變槳風力發(fā)電機中檢測發(fā)電機軸承故障中的應用。文獻[8]介紹了一些新方法和工作結果,用于分析標準SCADA數據,以便檢測潛在故障,尤其是在風力發(fā)電機傳動系統(tǒng)中的潛在故障。然而我國的風電監(jiān)測系統(tǒng)開發(fā)和研究的比較晚,研究開發(fā)大型風電場的整體監(jiān)測系統(tǒng)經驗不太豐富。文獻[9]設計了一種可利用無線通信技術傳輸機組內外部的視頻數據、在線狀態(tài)監(jiān)測的數據、SCADA的數據的海上風力發(fā)電機組遠程狀態(tài)監(jiān)測系統(tǒng)。文獻[10]提出了一種基于B/S模式的大型海上風電機組監(jiān)測平臺的研發(fā),利用監(jiān)測數據判斷故障類型,使故障損失最小化。但是未考慮監(jiān)測到故障時,工作人員不在現場的情況。
本文基于ZigBee技術的海上風力發(fā)電機組狀態(tài)監(jiān)測系統(tǒng)可使工作人員較全面的了解風電機組的狀態(tài),及時發(fā)現故障所在,對于海上風電機組監(jiān)測技術的發(fā)展具有十分重要的意義。
近年來隨著無線技術的成熟,各種無線傳感器網絡的協(xié)議[11]逐漸標準化,ZigBee具有功耗低、成本低、數據傳輸可靠、網絡容量大的優(yōu)點,因此,在海上風電監(jiān)測系統(tǒng)具有廣泛的應用前景。由此本次海上風電機組的狀態(tài)監(jiān)測系統(tǒng)設計中的無線通訊采用ZigBee技術。系統(tǒng)設計原理圖如圖1所示。

圖1 系統(tǒng)設計原理圖 Fig.1 The schematic design of the system
系統(tǒng)采用樹狀網絡拓撲結構,協(xié)調器是用來建立網絡,應變傳感器、振動傳感器、轉速傳感器等傳感器加入網絡,然后周期性的采集風電機組狀態(tài)的數據,并將這些數據發(fā)送至協(xié)調器,最后由協(xié)調器通過GPRS無線通信傳到監(jiān)控中心。
系統(tǒng)的硬件部分主要完成對風力發(fā)電機組狀態(tài)信息的采集和傳輸。在制定系統(tǒng)總體的設計方案時需要著重考慮功能及性能需求兩個方面的內容。對CPU進行選型時需要滿足以下幾點要求:性價比較高;容易開發(fā),如果硬件成功的案例多、資源較豐富,且在硬件調試方面的工具種類多,那么就能滿足容易開發(fā)這一要求;可擴展性好。根據本次監(jiān)測系統(tǒng)設計的性能要求,決定選擇把CC2530[12]作為ZigBee節(jié)點的硬件核心CPU,其優(yōu)勢在于CC2530可以滿足以上CPU選型時的要求。
系統(tǒng)的硬件電路總體設計框圖如下圖2所示。

圖2 系統(tǒng)硬件電路設計框圖 Fig.2 The block diagram of system hardware circuit design
根據ZigBee技術的需要,系統(tǒng)硬件電路設計框圖如圖2所示。其中協(xié)調器[13]是以CC2530為主芯片,外圍電路主要包括下載端子及LCD液晶顯示,還包括SMA接口及PL2303USB轉串口。路由器和終端節(jié)點的電路板相同,不同之處在于程序設置的不同,則功能也不相同。與協(xié)調器底板相比則多了一些傳感器。
為了能準確的反映風電發(fā)電機組的運行狀態(tài),考慮監(jiān)測系統(tǒng)的運行成本,傳感器安裝的位置非常重要。根據測試點對傳感器的精度要求不高、測試點選取要全面且避免重復、測試點應選擇在易發(fā)生故障的部位等原則選取安裝位置。
該系統(tǒng)能較全面的監(jiān)測風機的運行狀態(tài),所監(jiān)測的運行參數主要包括速度、電氣、溫度等,所監(jiān)測的運行狀態(tài)參數主要有部件的振動。按所監(jiān)測的運行參數分類,該監(jiān)測系統(tǒng)所選傳感器的測試點及相應傳感器的數量如下表1所示[9]。

表1 海上風力發(fā)電機組在線狀態(tài)監(jiān)測系統(tǒng)傳感器配置Tab.1 The sensor configuration of offshore wind turbine online condition monitoring system
IAR Embedded Workbench(又稱為EW)的C交叉編譯器是一款完整、穩(wěn)定且很容易使用的專業(yè)嵌入式應用開發(fā)工具[14]。EW能供給統(tǒng)一的用戶界面,當前技術可以支持至少35種的8位、16位、32 位ARM微處理器結構。EW集成的編譯器有以下特點:完全兼容的標準C語言;內部含有相應芯片的程序速度和內部優(yōu)化器;高效的浮點支持;內存模式選擇。
主函數一是調用osal_init_system( )函數,實現初始化操作系統(tǒng)的功能,對用到的硬件及軟件進行初始化,為下一步的正確執(zhí)行作預備;二是調用osal_start_system( )函數[15],當初始化任務結束時,便可進入執(zhí)行操作系統(tǒng)實體。當編譯為協(xié)調器時,則首先組建網絡,接著進行無線的檢測,然后等待接收信號,若有節(jié)點申請加入網路,就批準節(jié)點加入網路,繼續(xù)進入無線監(jiān)控,若接收到信號,則進入接收程序,最后一步將接收到的數據發(fā)送到PC機上,然后再次執(zhí)行無線監(jiān)控;反之,首先需要設置路由器或者終端節(jié)點相關設備。若設置為路由器,則需要初始化路由器,接著路由器申請加入網絡,然后判斷是否加入成功,如果加入成功則開始進行無線監(jiān)控,然后判斷是否接收到數據,若是則進行數據處理,否則再次返回進入無線監(jiān)控。若設置為終端節(jié)點,那么首先進行初始化傳感器節(jié)點,然后申請加入網絡,如果判斷申請加入網絡成功,則進入休眠狀態(tài),反之則再次申請加入網絡。進入休眠狀態(tài)然后判斷當有命令存在時,則進行數據處理,否則繼續(xù)進入休眠狀態(tài)。系統(tǒng)軟件程序詳細流程如圖3所示。

圖3 系統(tǒng)軟件程序流程圖 Fig.3 The flow chart of system software program
ZigBee協(xié)議棧的流程圖如圖4所示,首先對相關設備進行初始化,接著執(zhí)行運行操作系統(tǒng),當系統(tǒng)中有任務執(zhí)行時,則執(zhí)行操作系統(tǒng),反之則等待執(zhí)行任務,只要系統(tǒng)有任務需要執(zhí)行時,便執(zhí)行操作系統(tǒng)。
從圖4我們可以得出協(xié)議棧中主要包括了兩個重要函osal_init_system( )函數及osal_start_system( )函數,其中osal_init_system( )流程圖如圖5所示。操作系統(tǒng)的使命就是對不同項的任務進行調度,保證各項任務有序的在CPU上運行。但其實執(zhí)行操作系統(tǒng)函數僅有一行代碼:

從代碼的注釋可以看出執(zhí)行操作函數沒有返回值。協(xié)議棧的架構及操作系統(tǒng)的實體如圖6所示。

圖4 ZigBee協(xié)議棧工作流程圖 Fig.4 The flow chart of ZigBee

圖5 系統(tǒng)初始化流程圖 Fig.5 The flow chart of system initialization

圖6 ZigBee協(xié)議棧架構和操作系統(tǒng)實體 Fig.6 ZigBee protocol stack architecture and operating system entity
一般情況下,用戶僅需另加入三個文件就可以完成屬于自己的項目[16]:一是主文件主要存放相關事件的處理函數;二是主文件對應的頭文件;三是操作系統(tǒng)的接口文件,主要用來存放tasksArr[](任務處理函數數組)的文件。如圖7所示。

圖7 用戶開發(fā)程序所需要 新增編寫的文件 Fig.7 Newly written files needed to develop programs for users
通過以上這種方式,ZigBee協(xié)議棧就能實現絕大部分代碼的公用功能,用戶僅需加入上述函數,改寫自己的tasksArr( )函數,而且在該過程中不需要改動ZigBee協(xié)議棧的核心代碼,方便了用戶使用源代碼的可行性,便于用戶調試程序。
協(xié)調器的主要功能是進行ZigBee網絡的組建,處理路由器及傳感器節(jié)點加入網絡的申請[17]。由于整個ZigBee協(xié)議棧是以事件為基礎進行驅動的,正確高效的閱讀代碼的方法是要了解系統(tǒng)每一步都需要處理哪些事件,最后查找到相應的事件的處理函數,而不應該把每個文件從頭到尾的讀一遍。協(xié)調器加入網絡的過程為如圖8所示。其中ZDO(ZigBee Device Object)為ZigBee設備對象,ZDO層提供對ZigBee設備管理的功能。通過程序流程圖可以看到,首先需要進行設備的初始化,也就是說是在調用ZDO層設備初始化函數之后設置網絡事件,其中包括主要是調用網絡請求函數,這部分源碼是在協(xié)調器開源部分的源碼程序,編寫程序的時候調用已經建好的工程,之后設置網絡狀態(tài)的改變事件,再加入更新網絡的狀態(tài),最后向用戶發(fā)送ZDO層發(fā)送在執(zhí)行任務的時候需要改變的一些突發(fā)事件,當知道已經改變之后,通過任務函數,去執(zhí)行狀態(tài)改變事件需要做的任務,整個過程比較復雜,難以理解,但是就整體工作而言,只需要知道如何工作,如何調用功能函數就可以了。

圖8 協(xié)調器加入網絡的過程 Fig.8 The process of coordinator joining the network
路由器主要負責數據包有關路由方面的選擇問題[18]。由圖9可得出,路由器加入網絡的過程是由ZDO來實現的,其次會在應用層會收到ZDO_STATE_CHANGE消息,對該消息中包含的網絡狀態(tài),使用如下代碼:

即可讀取當前的網絡的狀態(tài),對于路由器而言,加入網絡以后,網絡狀態(tài)改變?yōu)镈EV_ROUTER。

圖9 路由器加入網絡的過程 Fig.9 The process of Router joins the network
終端節(jié)點主要負責數據的采集,不具備路由功能。從圖10可知終端節(jié)點加入網絡的過程,ZDO實現終端節(jié)點加入網絡,一旦其加入網絡成功后,便會在應用層收到來自ZDO_STATE_CHANGE的包含與目前節(jié)點網絡狀態(tài)有關的信息,所用代碼如下:
GenericApp_NwkState=(devstates_t)(MSGpkt->hdr.status); 以讀取當前的網絡的狀態(tài),對終端節(jié)點來說,加入網絡之后,DEV_DEVICE為此時網絡的狀態(tài)。
考慮到海上風電場運行維護的特點,本文設計了可用于海上風力發(fā)電機組狀態(tài)監(jiān)測的系統(tǒng),本系 統(tǒng)采用ZigBee技術及GPRS無線通信的技術傳輸系統(tǒng)數據,可實現將風電機組的數據傳送至監(jiān)控中心的功能,達到了實時監(jiān)控海上風電機組狀態(tài)的目標。基于ZigBee技術的海上風力發(fā)電機組對狀態(tài)監(jiān)測技術的研究可減少因海上風電機組突發(fā)故障造成的經濟損失,這對海上風電機組狀態(tài)監(jiān)測技術的發(fā)展具有十分重要的意義。

圖10 終端節(jié)點加入網路的過程 Fig.10 The process of terminal node joins the network