聶方正 王瑞良 楊翀 閔睿
(1.浙江運達風電股份有限公司,浙江杭州 310012;2.浙江省風力發(fā)電技術(shù)重點實驗室,浙江杭州 310012)
風能是一種可再生的清潔能源,在當前全世界能源危機逐漸凸顯的情況下,有必要采用合理的方式進行風能資源的利用。我國地理條件復雜,要想充分發(fā)揮風能的作用,需要借助先進的技術(shù)手段[1]。隨著機械學和力學等學科的不斷發(fā)展,風力發(fā)電技術(shù)得到進一步的升級轉(zhuǎn)化。作為新能源主力軍之一,風電行業(yè)在2022年仍然保持著一路高歌的態(tài)勢。國家能源局日前發(fā)布數(shù)據(jù)顯示,我國風電并網(wǎng)裝機容量突破3億kW,較2016年底實現(xiàn)翻番,是2020年底歐盟風電總裝機的1.4倍、美國的2.6倍,已連續(xù)12年穩(wěn)居全球第一。
控制系統(tǒng)對于風力發(fā)電機組的安全、可靠運行甚至是整個風廠的正常運轉(zhuǎn)都具有著十分重要的作用[2],但是隨著風電技術(shù)應用的推廣和機組功率的增大,出現(xiàn)了許多控制難題,如時變性、非線性、多干擾性、耦合性等。為此,現(xiàn)代科學家將智能控制方法引入了風電機組控制系統(tǒng),不斷優(yōu)化風電機組控制系統(tǒng)的動態(tài)特性和控制效果[3]。在控制技術(shù)逐漸走向成熟的過程中,對控制算法的測試是保證該過程穩(wěn)步前進的基礎(chǔ)。隨著風力發(fā)電技術(shù)的發(fā)展,全面完善的控制算法測試與評測技術(shù)的重要性也日益凸顯。
風電機組控制系統(tǒng)的設(shè)計和分析方法都涵蓋在經(jīng)典控制理論范圍內(nèi),需要在控制系統(tǒng)設(shè)計前對風電機組動態(tài)模型進行線性化。線性化模型至少包含傳動鏈的動態(tài)特性、塔架的前后振動、功率或轉(zhuǎn)速響應、變槳執(zhí)行機構(gòu)的響應等[4],如圖1所示。
圖1 風電機組模型示意圖
控制算法主要對轉(zhuǎn)矩和槳距進行控制。轉(zhuǎn)矩控制和槳距控制的基本方法都是PI控制,但不同的是,轉(zhuǎn)矩PI控制器的Kp和Ki是固定值,而變槳PI控制器的Kp則是隨槳距角β變化的,其形式為:
式中:K為濾波器;增益G為槳距角β的非線性函數(shù),在控制上一般采用查表法實現(xiàn);s為轉(zhuǎn)速;Ti為時間常數(shù)。
風力發(fā)電機組通過控制轉(zhuǎn)矩來控制轉(zhuǎn)速,通過控制槳距來控制功率。為了維持控制系統(tǒng)的穩(wěn)定,在系統(tǒng)中加入了反饋校正系統(tǒng)。
一個完整的風電機組控制系統(tǒng)除了要保證高發(fā)電效率外,還應避免過多的變槳動作和發(fā)電機轉(zhuǎn)矩調(diào)節(jié),抑制傳動鏈和塔架振動,避免輪轂、葉片以及塔架等的負載過大。因此,設(shè)計控制算法時必須考慮這些影響。
1.2.1 塔架振動控制
塔架前后振動控制用于增加塔架前后振動模態(tài)阻尼,減小塔架前后振動,從而減小塔架載荷。塔架前后振動控制的實現(xiàn)過程包括:塔架前后振動加速度測量值通過濾波、比例控制器后得到輸出,輸出值為變槳補償量,施加到變槳控制的槳距角給定值。
塔架左右振動控制用于增加塔架左右振動模態(tài)阻尼,減小塔架左右振動,從而減小塔架載荷。塔架左右振動控制的實現(xiàn)過程包括:塔架左右振動加速度測量值經(jīng)過積分、比例控制器后得到輸出,輸出的量為補償量,施加到扭矩控制的輸出值。
1.2.2 暴風控制
暴風控制為風力發(fā)電機組軟切出控制。截至目前,風電機型最常見的切出風速設(shè)計為18~20 m/s,根據(jù)不同類型的項目中實際的風資源情況進行統(tǒng)計,如果經(jīng)評估確定該風速段的發(fā)電收益接近最大值(20~25 m/s風速段),那么可進行軟切出控制。軟切出控制在原本停機的風速下保持正常發(fā)電運行,在大風況地區(qū)能明顯增加發(fā)電量。
1.2.3 雷達前饋控制
在機艙上方安裝激光測風雷達,通過雷達光束測得前方來風的風速以及風向信息,經(jīng)過前饋計算,提前進行變槳,極大地減小了極限載荷。激光雷達還可識別陣風,不僅避免了極端載荷,還可以保證機組安全。
1.2.4 雙??刂?/p>
低風速地區(qū),不僅發(fā)電量受影響,還會頻繁切出停機,針對這種情況,通過控制變流器運行模式,將脫網(wǎng)轉(zhuǎn)速減小,延長發(fā)電曲線,在小風情況下能夠啟機發(fā)電,增加發(fā)電量。
大功率、長葉片技術(shù)的快速發(fā)展,給風力發(fā)電機組控制系統(tǒng)提出了新的要求和挑戰(zhàn),為了保證發(fā)電機組安全可靠運行,對控制算法的設(shè)計和測試尤為重要。本節(jié)對控制算法的測試方法進行詳細說明,在實際運用中,采用傳統(tǒng)測試方法結(jié)合新的測試方法,更能發(fā)現(xiàn)算法中潛在的問題。
現(xiàn)有的算法測試方法,基本都是依托Bladed仿真軟件進行算法的仿真測試。半物理仿真測試中,采用真實的控制器,變流器和發(fā)電機部分采用虛擬環(huán)境代替,將控制算法封裝成算法庫,在控制器中周期調(diào)用??刂扑惴ㄋ杓钣扇糠纸M成,如圖2所示。
圖2 傳統(tǒng)控制算法測試示意圖
第一部分由Bladed模型提供,模型提供風速的設(shè)定、模態(tài)分析相關(guān)參數(shù)、功率傳動鏈等相關(guān)信息。
第二部分由Hardware test plan提供,在仿真開始之前,可以在plan文件中對單個或多個變量設(shè)置值,通過對時序的控制,在不同時刻對算法輸入不同的值,從而收集算法的輸出進行分析。
第三部分由HMI軟件提供,通過變量的ADS地址映射,將所需改變的變量開放到HMI軟件中,在仿真過程中人工修改HMI上對應的值,可以仿真出不同的工況。
該方法類似第二種方法,優(yōu)點在于操作方便、使用簡單;缺點是不能控制在某個時刻精準觸發(fā),在對時序要求不高的情況下使用較多。
在傳統(tǒng)的測試方法中,從風速到控制算法變量的指定都是人為構(gòu)造的數(shù)據(jù)。人為構(gòu)造的數(shù)據(jù)在測試用例覆蓋率方面具有局限性,和實際風場收集的數(shù)據(jù)存在較大的差異。因此,在對算法測試的用例中,可以選用現(xiàn)場實際收集(通過SCADA或Matlab)的數(shù)據(jù)經(jīng)過處理后作為測試用例,再輸入到算法中運行,運行結(jié)束后分析算法輸出結(jié)果,如圖3所示。
圖3 基于真實數(shù)據(jù)的測試方法示意圖
現(xiàn)場數(shù)據(jù)選用標準包含兩方面:一方面,需涵蓋各種地形的風場數(shù)據(jù);另一方面,收集現(xiàn)場故障數(shù)據(jù),將故障分類并在每類故障中選擇代表性數(shù)據(jù)作為算法輸入。
現(xiàn)場真實數(shù)據(jù)隨著故障的收集會不斷擴增,使用Python腳本對數(shù)據(jù)集進行統(tǒng)一管理,并按照一定的順序輸入到算法中,節(jié)省了仿真的時間,大幅提高了測試效率。
Google test是測試技術(shù)團隊根據(jù)谷歌的特定要求和約束條件開發(fā)的測試框架,同時支持Linux、Windows以及Mac三種操作系統(tǒng)環(huán)境,主要針對C++代碼,不僅支持單元測試,還支持生成測試報告。
在控制算法測試中,2.1、2.2小節(jié)中提及的方法依然是基于Bladed仿真環(huán)境進行的。但受環(huán)境約束或基于某些算法模塊特定的需求,可以脫離Bladed環(huán)境進行測試。例如,在仿真測試中出現(xiàn)了內(nèi)存占用過高的問題,通過走讀代碼無法定位問題語句,則可以將采集到的輸入數(shù)據(jù)保存至文本,在Google test中將文本作為算法模塊的輸入,并統(tǒng)計模塊中每個變量的變化情況以及函數(shù)的耗時,進而分析出根本原因。
基于Google test框架的測試方法需要在控制算法源代碼中引入測試框架頭文件,再將待測的算法模塊以及輸入數(shù)據(jù)作為測試用例。例如,DSP算法中需要測試將采集到的轉(zhuǎn)速數(shù)據(jù)寫入CSV文件功能以及該功能消耗的時間,將功能函數(shù)返回值以及期望值作為參數(shù)傳入EXPECT_EQ函數(shù),進行結(jié)果對比,然后在外部調(diào)用框架中testing類的InitGoogleTest函數(shù),返回RUN_ALL_TESTS函數(shù)即可。運行程序可得到測試結(jié)果,由測試結(jié)果可知DSP算法中所測函數(shù)寫入功能是否正確,且耗時具體到微秒。通過該類測試方法,可以很容易地測得算法中更為詳細的運行信息,從而彌補其他測試方法的缺陷。
風力發(fā)電控制算法的仿真結(jié)束后,需要對結(jié)果進行評測,以判斷算法是否符合設(shè)計需求。
首先對變量進行采集,在整個測試過程中需要關(guān)注的變量分為兩類,如表1所示:一類是固定的重要變量,貫穿所有測試內(nèi)容;另一類是針對性變量,即針對特定的內(nèi)容所需要關(guān)注的變量。
表1 控制算法采集相關(guān)變量
另外,變量采集后,需要對變量的時序進行分析,從而確定結(jié)果是否正確。對測試結(jié)果有如下兩個參考標準:
(1)變量的變化符合算法設(shè)計。例如,驗證停機工況時,需要查看停機后功率設(shè)定值是否按照設(shè)計的速率下拉,脫網(wǎng)指令是否在滿足條件時進行下發(fā),收槳速率是否按照設(shè)計進行,同時需要核對狀態(tài)機的運行時間和順序是否正常。以上相關(guān)變量需同時符合設(shè)計。
(2)變量的變化收斂。在測試過程中,固定的重要變量若出現(xiàn)持續(xù)性或間歇性發(fā)散、振蕩現(xiàn)象,則需要對算法邏輯以及參數(shù)進行排查。更新測試后,保證變量在運行穩(wěn)定的情況下變化也趨于穩(wěn)定,說明滿足需求。
性能測試貫穿啟機到停機所有過程,可以驗證因內(nèi)存泄漏或通道過載造成的CPU占用率過高的問題。性能測試可以通過觀察內(nèi)存的實時占用百分比從而判斷是否存在問題,如圖4所示。
圖4 控制算法性能驗證示意圖
正常情況下,內(nèi)存使用率在20%~40%,持續(xù)超過50%則認為內(nèi)存使用異常。此時,可以使用Google test測試方法,根據(jù)算法的函數(shù)、變量變化和耗時進行排查。
本文針對風力發(fā)電控制算法提出了兩種新的測試方法——基于現(xiàn)場真實數(shù)據(jù)測試以及使用Google test框架測試,這不僅彌補了傳統(tǒng)測試方法的不足,解決了測試覆蓋率低的問題,還大幅提高了算法測試的效率。
本文通過對風力發(fā)電控制算法測試結(jié)果從功能和性能兩個維度進行評測,驗證了算法的正確性和穩(wěn)定性,保證了整個測試流程的閉環(huán)。