劉年霖,彭佑多
(湖南科技大學(xué) 機械設(shè)備健康維護省重點實驗室,湘潭 411201)
極端天氣下的大風(fēng)對安裝在露天的碟式太陽能發(fā)電系統(tǒng)的危害很大:一是可能會引起太陽能發(fā)電系統(tǒng)的嚴(yán)重變形,甚至損壞性倒塌;二是大風(fēng)會使網(wǎng)架變形,進而引起集熱鏡損壞[2]。為了避免以上危害的發(fā)生,需要設(shè)計一種合理、有效的預(yù)警系統(tǒng)來實現(xiàn)對大風(fēng)風(fēng)速的提前預(yù)測,使碟式太陽能發(fā)電系統(tǒng)中的聚光器在大風(fēng)來到前調(diào)整到最佳角度,以最少迎風(fēng)受力面躲避大風(fēng),從而保證碟式太陽能發(fā)電系統(tǒng)的安全。
目前,國內(nèi)外大風(fēng)預(yù)警系統(tǒng)所用預(yù)警策略可根據(jù)其采用的原理不同分為時間點預(yù)警、空間點預(yù)警和預(yù)警值預(yù)警。時間點預(yù)警方法可借助計算機實現(xiàn)整個建模和預(yù)測的過程,實用性強,但存在對突發(fā)大風(fēng)預(yù)測精度不高的問題;空間點預(yù)警該方法操作實現(xiàn)簡單,只需構(gòu)建軟件系統(tǒng),然后利用氣象部門已有的硬件系統(tǒng),實現(xiàn)大風(fēng)預(yù)警,但是該方法預(yù)測精度不高,尤其對太陽能電站周圍的風(fēng)速變化情況無法準(zhǔn)確反映出來;預(yù)警值預(yù)警能很好實現(xiàn)漸變風(fēng)速和突變大風(fēng)的預(yù)警,但是增加了操作過程的麻煩程度,也縮短了預(yù)警時間。
根據(jù)太陽能電站的實際情況,大風(fēng)預(yù)警系統(tǒng)采取以時間點預(yù)警為主,以預(yù)警值預(yù)警為輔的預(yù)警策略。既充分發(fā)揮時間點預(yù)警策略的優(yōu)勢特點,又利用預(yù)警值預(yù)警來彌補時間點預(yù)警對于突變大風(fēng)預(yù)測帶來的預(yù)測誤差。
為了滿足監(jiān)控中心的指揮需要,對大風(fēng)預(yù)警系統(tǒng)的性能提出如下要求:
(1)預(yù)測精度方面:風(fēng)速的超前一步預(yù)測平均相對誤差MAPE≤10%。
(2)實時性方面:預(yù)測模型輸出結(jié)果的時間延時不超過超前預(yù)測時間的10%。
(3)模型計算方面:在保證預(yù)測精度的前提下,所建模型盡量簡單,建模計算量小,同時完成建模后能夠得到模型的具體方程。
碟式太陽能電站對日跟蹤系統(tǒng)采用雙軸驅(qū)動控制方案,雙軸驅(qū)動系統(tǒng)設(shè)計有確定的伺服電機、驅(qū)動機構(gòu)及控制器硬件系統(tǒng)。因此,本文所述大風(fēng)預(yù)警系統(tǒng)只需在雙軸驅(qū)動系統(tǒng)的基礎(chǔ)上增加風(fēng)速傳感器和上位機。其工作原理為:風(fēng)速傳感器將采集到風(fēng)速數(shù)據(jù)輸入到運動控制器,運動控制器將風(fēng)速數(shù)據(jù)以動畫形式呈現(xiàn)于上位機,上位機根據(jù)采集到的大量歷史風(fēng)速數(shù)據(jù)運用預(yù)測數(shù)學(xué)算法實現(xiàn)對大風(fēng)風(fēng)速的提前預(yù)測,同時上位機利用組態(tài)王軟件實現(xiàn)對實時進行風(fēng)速預(yù)警值監(jiān)控,當(dāng)預(yù)測得到的風(fēng)速值大于8級風(fēng)的風(fēng)速值時或者預(yù)警風(fēng)速短時間內(nèi)持續(xù)大于7級風(fēng)的風(fēng)速值時,上位機命令運動控制器向伺服驅(qū)動器發(fā)出一定的脈沖數(shù)和脈沖頻率,以驅(qū)動方位角伺服電機停止動作,高度角伺服電機快速使聚光器到達水平位置,以最少迎風(fēng)受力面等待大風(fēng)的到來。大風(fēng)預(yù)警控制系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 大風(fēng)預(yù)警控制系統(tǒng)結(jié)構(gòu)Fig.1 Gale warning and control system structure
目前,風(fēng)速預(yù)測算法[10]有很多種,時間序列法憑借其原理簡單、建模方便而運用最為廣泛,但它卻存在預(yù)測精度低和預(yù)測延時的不足。卡爾曼濾波法能根據(jù)最新測量數(shù)據(jù)修正模型參數(shù),獲得較高的預(yù)測精度,同時彌補了預(yù)測延時的問題,而利用卡爾曼濾波法實現(xiàn)預(yù)測的前提是根據(jù)預(yù)測對象推導(dǎo)出卡爾曼濾波法對應(yīng)的狀態(tài)方程和測量方程,考慮到時間序列法的建模優(yōu)勢,可利用時間序列法的模型參數(shù)推導(dǎo)出卡爾曼濾波法的狀態(tài)方程和測量方程,以此來實現(xiàn)對風(fēng)速的超前預(yù)測。
大風(fēng)預(yù)警系統(tǒng)主要由風(fēng)速采集裝置、雙軸驅(qū)動機構(gòu)和上位機組成。風(fēng)速采集部分主要由風(fēng)速傳感器、PLC和PLC配套的模擬量輸入模塊組成。風(fēng)速傳感器與模擬量輸入模塊連接,系統(tǒng)由PLC接收經(jīng)模擬量輸入模塊轉(zhuǎn)化后得到的風(fēng)速信號,獲取風(fēng)速值,PLC根據(jù)上位機的要求,控制雙軸驅(qū)動機構(gòu)。雙軸驅(qū)動機構(gòu)主要由伺服驅(qū)動器、伺服電機、高度角運動裝置和方位角運動裝置組成。伺服驅(qū)動器接收PLC的輸出脈沖,根據(jù)輸出脈沖的個數(shù)和脈沖頻率來控制伺服電機的轉(zhuǎn)動角度和轉(zhuǎn)速,從而通過伺服電機來驅(qū)動高度角運動裝置和方位角運動裝置調(diào)整聚光器的位置。Matlab軟件和組態(tài)王軟件組成上位機系統(tǒng),Matlab根據(jù)采集到的風(fēng)速數(shù)據(jù)運用數(shù)學(xué)預(yù)測算法得到預(yù)測風(fēng)速值,運用DDE通信技術(shù)將預(yù)測風(fēng)速值傳給組態(tài)王,組態(tài)王根據(jù)實時監(jiān)控的風(fēng)速情況和接收到的預(yù)測風(fēng)速值情況,控制PLC實現(xiàn)需要的操作。根據(jù)大風(fēng)預(yù)警系統(tǒng)的控制功能要求,系統(tǒng)需要開關(guān)量輸入點4個,開關(guān)量輸出點4個。
大風(fēng)預(yù)警系統(tǒng)的硬件接線圖如圖2所示,風(fēng)速傳感器有紅、黃、綠三根線,紅線為風(fēng)速傳感器的電源線,與DC24V+連接;黃線為信號輸出線,輸出4~20mA的電流信號,接A/D轉(zhuǎn)換模塊的V+,同時必須將A/D轉(zhuǎn)換模塊上的V+和I+接口并聯(lián)起來,綠線則同時與DC24V-和VI-相連。伺服驅(qū)動器10號引腳ServoEn為伺服使能端子,與外接24 V電源的負(fù)極相連,當(dāng)它為ON時,伺服驅(qū)動器工作;為OFF時,伺服驅(qū)動器停止工作。18號引腳VCCCOM與外接24V電源的正極相連,用來驅(qū)動輸入端子的光電耦合器。32號引腳PulseInv+和33號引腳PulseInv-為脈沖信號輸入端,接收PLC輸出的脈沖數(shù),實現(xiàn)對伺服交流電機轉(zhuǎn)動角度的控制。34號引腳SingInv+和35號引腳SingInv-為方向信號輸入端,接收方向信號,實現(xiàn)對伺服交流電機轉(zhuǎn)動方向的控制。
圖2 大風(fēng)預(yù)警系統(tǒng)硬件接線圖Fig.2 Hardware w iring diagram of the gale warning system
首先,運行組態(tài)王軟件,新建一個名為“基于組態(tài)王和Matlab大風(fēng)預(yù)警系統(tǒng)”的工程,并設(shè)為當(dāng)前工程;進入工程瀏覽界面,在組態(tài)王中定義與所用PLC相對應(yīng)的邏輯設(shè)備,根據(jù)“設(shè)備配置向?qū)А蓖瓿?;完成后,點擊左側(cè)目錄樹中的“COM1”,選擇波特率為9600、數(shù)據(jù)位為7、校驗方式為偶校驗、停止位為1、通信方式為RS422。其次,需要構(gòu)造數(shù)據(jù)庫,在左側(cè)的目錄樹中,選擇“數(shù)據(jù)詞典”,點擊新建;按照I/O分配表新建對應(yīng)的變量,運行組態(tài)王時就可以從PLC上采集到這些數(shù)據(jù)。最后,在組態(tài)王開發(fā)系統(tǒng)中,利用其提供的圖庫和各種控件完成畫面的設(shè)計,通過與數(shù)據(jù)詞典中各變量連接,完成了組態(tài)王的程序設(shè)計[3-5]。設(shè)計的主畫面如圖3所示。
圖3 組態(tài)王監(jiān)控主界面Fig.3 Main interface of Kingview
Matlab程序設(shè)計包括卡爾曼濾波法算法程序設(shè)計、Matlab與組態(tài)王通信程序設(shè)計和基于Matlab的GUI大風(fēng)預(yù)警界面設(shè)計。
(1)由于很難得到風(fēng)速與氣溫、氣象等風(fēng)速影響因素之間的函數(shù)關(guān)系方程來推導(dǎo)出卡爾曼濾波法對應(yīng)的狀態(tài)方程和測量方程,為了解決這個問題,通過研究發(fā)現(xiàn)可以利用時間序列法的模型參數(shù)來推導(dǎo)卡爾曼濾波法對應(yīng)的狀態(tài)方程和測量方程。時間序列法的求參過程包括風(fēng)速序列的非平穩(wěn)性檢驗與預(yù)處理、自相關(guān)函數(shù)與偏相關(guān)函數(shù)的計算、根據(jù)AIC準(zhǔn)則定階和運用矩估計實現(xiàn)模型參數(shù)的確立等諸多工作,根據(jù)求得的模型參數(shù)就能推導(dǎo)出卡爾曼濾波法的狀態(tài)方程和測量方程,從而實現(xiàn)對風(fēng)速的超前預(yù)測。以上這些工作均可通過Matlab編程來實現(xiàn)。
(2)Matlab軟件與組態(tài)王軟件間的數(shù)據(jù)通信是采用DDE來實現(xiàn)。在Windows環(huán)境下,DDE是不同程序之間共享數(shù)據(jù)的一個協(xié)議。DDE對話發(fā)生在客戶應(yīng)用程序和服務(wù)器應(yīng)用程序之間,數(shù)據(jù)交換雙方互做服務(wù)器和客戶。此程序需要實現(xiàn)將采集的風(fēng)速數(shù)據(jù)送入組態(tài)王進行動態(tài)顯示,并送到Matlab進行復(fù)雜的運算處理,將運算得到的結(jié)果返回組態(tài)王以顯示。
在組態(tài)王中DDE的建立步驟如下:工程瀏覽器-系統(tǒng)-設(shè)備-DDE-新建-設(shè)備配置向?qū)?指導(dǎo)連接對象名Matlab-服務(wù)程序名Matlab-話題名tagname-標(biāo)準(zhǔn)的Windows項目交換。設(shè)備新建完成后需要在數(shù)據(jù)詞典中定義允許DDE訪問的I/O變量,且變量與PLC存儲區(qū)關(guān)聯(lián),這些變量用于與Matlab進行數(shù)據(jù)交換,并在完成畫面制作后對畫面和變量間進行關(guān)聯(lián)[6]。
Matlab的DDE客戶函數(shù)有7個,它們完全可以滿足組態(tài)王軟件不斷將采集到的數(shù)據(jù)送到Matlab程序中,Matlab計算完成后將結(jié)果返回主程序的任務(wù)。在使用過程中發(fā)現(xiàn),由于需要的風(fēng)速歷史數(shù)據(jù)比較大,自己實時從組態(tài)王傳輸給Matlab程序比較耗費時間,且在傳輸過程中Matlab無法進行其他操作,因此,這里改用一種更為簡單和方便的數(shù)據(jù)交換方式,即組態(tài)王將歷史風(fēng)速數(shù)據(jù)以Excel文件導(dǎo)入到Matlab中,Matlab將計算后的結(jié)果通過DDE傳入到組態(tài)王進行顯示[7-9]。
(3)根據(jù)前文完成的卡爾曼濾波算法程序設(shè)計和Matlab與組態(tài)王通信程序設(shè)計,同時為了更直觀、更方便的實現(xiàn)人機化操作,使用Matlab中的GUI工具箱完成了大風(fēng)預(yù)測操作界面的設(shè)計。大風(fēng)預(yù)測操作界面如圖4和圖5所示[1]。
圖4 風(fēng)速數(shù)據(jù)預(yù)處理界面Fig.4 W ind speed data preprocessing interface
圖5 風(fēng)速預(yù)測結(jié)果顯示界面Fig.5 Wind speed forecasting results disp lay interface
通過組態(tài)王軟件采集250個實測風(fēng)速數(shù)據(jù)(每分鐘采樣1點,相隔5個數(shù)據(jù)進行平均化處理),前200個數(shù)據(jù)用于預(yù)測模型的建立,后50個數(shù)據(jù)用于驗證模型的準(zhǔn)確度和對系統(tǒng)性能進行分析。從圖5中可以看出預(yù)測曲線能體現(xiàn)風(fēng)速變化趨勢,擬合風(fēng)速基本接近實測風(fēng)速,算得其平均相對誤差為3.54%,預(yù)測精度較高,滿足預(yù)測精度要求,具有實用價值。同時按下“數(shù)據(jù)傳入組態(tài)王”按鈕,預(yù)測數(shù)據(jù)將傳入組態(tài)王中顯示,并自動與設(shè)定的8級風(fēng)速值比較,實現(xiàn)大風(fēng)的預(yù)警,整個預(yù)警過程大約花費時間為10 s,遠(yuǎn)遠(yuǎn)小于30 s的最大允許值。同時為了得到預(yù)測模型的具體方程,利用了時間序列分析法的模型參數(shù)來推導(dǎo)卡爾曼濾波法對應(yīng)的狀態(tài)方程和測量方程,由于時間序列分析法的求參過程相對容易,因此,整個模型計算難度不大,計算量小,可通過Matlab軟件編程實現(xiàn),使其具有很好的工程實用性。
本文將Matlab強大的數(shù)學(xué)計算能力和組態(tài)王強大的人機界面和通信功能有效結(jié)合起來,設(shè)計了一種以PLC為核心的大風(fēng)預(yù)警系統(tǒng)。根據(jù)大風(fēng)預(yù)警系統(tǒng)的性能要求,完成了硬件結(jié)構(gòu)和軟件的設(shè)計,針對風(fēng)速進行超前預(yù)測,該系統(tǒng)具有通用性、實用性和可擴展性的特點,可以根據(jù)現(xiàn)場的情況,實現(xiàn)穩(wěn)定、有效的通信。
[1] 陳垚光,毛濤濤,王正林,等.精通MATLAB GUI設(shè)計[M].北京:電子工業(yè)出版社,2011.
[2] 劉年霖,彭佑多,王旻輝,等.大功率碟式太陽能電站大風(fēng)預(yù)警系統(tǒng)設(shè)計與研究[J].機械工程與自動化,2013(3):126-128.
[3] 徐建國,鐘偉明,童旻,等.基于Matlab7.0和組態(tài)王的先進過程控制算法實測平臺[J].儀器儀表學(xué)報,2006,27(6):542-544.
[4] 胡大斌,胡錦暉,吳峰.基于組態(tài)王與MATLAB的監(jiān)控軟件實現(xiàn)[J].武漢理工大學(xué)學(xué)報:交通科學(xué)與工程版,2005,29(2):234-237.
[5] 朱培逸,王引佳,高玨,等.基于PLC和組態(tài)王的水果品質(zhì)分級系統(tǒng)設(shè)計[J].農(nóng)機化研究,2013(10):103-106.
[6] 鄭華,呂偉珍.基于組態(tài)王和Matlab的雙容水箱液位控制[J].中國農(nóng)機化,2012(2):155-157.
[7] 崔紅,龐中華,劉軍.基于組態(tài)王6.0和MATLAB的實時監(jiān)控系統(tǒng)[J].青島科技大學(xué)學(xué)報,2005,26(2):173-176.
[8] 黃衛(wèi)華,方康玲,章政.基于組態(tài)王和MATLAB的溫度監(jiān)控系統(tǒng)[J].武漢科技大學(xué)學(xué)報:自然科學(xué)版,2006,29(5):490-492.
[9] 陳艷紅,付海鴻,趙媛媛,等.基于Matlab與Excel的實驗數(shù)據(jù)自動處理[J].計算機工程,2007,33(23):279-280.
[10]潘迪夫,劉輝,李燕飛.風(fēng)電場風(fēng)速短期多步預(yù)測改進算法[J].中國電機工程學(xué)報,2008,28(26):87-91. ■