哈爾濱工程大學(xué)機電工程學(xué)院 富 威 劉 琪 許 凱 徐蕓潔 馬佳瑞
隨著計算機技術(shù)的迅猛發(fā)展,在電力設(shè)備運行狀態(tài)監(jiān)測領(lǐng)域,基于人工智能及其相關(guān)技術(shù)的設(shè)備健康監(jiān)測系統(tǒng)研究和應(yīng)用已成為工程技術(shù)人員的研究熱點[1]。傅雷[2]提出一種基于VMD-Ren yi熵多信息融合的支持向量機(SVM)分類方法;韓中合、劉明浩[3]構(gòu)建了一套以支持向量機算法為核心的汽輪機振動故障診斷系統(tǒng);石志標(biāo)、宋全剛[4]等人利用一種改進的粒子群算法(MPSO)對支持向量機進行參數(shù)優(yōu)化,并利用故障數(shù)據(jù)進行模式識別。本文將支持向量機應(yīng)用于汽輪機狀態(tài)監(jiān)測系統(tǒng)中,基于支持向量機構(gòu)建健康率預(yù)測模型,實現(xiàn)對汽輪機組部件的狀態(tài)監(jiān)測。
支持向量機預(yù)測模型建立流程如圖1所示。對原始樣本集進行預(yù)處理,將樣本集分為訓(xùn)練集、驗證集和測試集三個部分。針對訓(xùn)練集中的特征數(shù)據(jù)選取適當(dāng)?shù)膯我荒P瓦M行訓(xùn)練,在訓(xùn)練的過程中調(diào)整參數(shù),得到相關(guān)支持向量機模型;再利用驗證集中的特征數(shù)據(jù)對模型進行驗證;若不滿足需求,則繼續(xù)調(diào)整模型的參數(shù),直至模型滿足要求;模型構(gòu)建完成后,利用測試集數(shù)據(jù)進行測試,進而得到預(yù)測結(jié)果。支持向量機模型建立的大致過程可以歸納為三個步驟:獲取原始樣本集、數(shù)據(jù)預(yù)處理和構(gòu)建支持向量機模型。
圖 1 支持向量機模型建立流程圖
本文所使用的數(shù)據(jù)集來自核電廠核電凝汽式1000MW汽輪機(HN1000-6.43)日常運行監(jiān)測數(shù)據(jù),利用pandas實現(xiàn)對數(shù)據(jù)的讀取,pandas在代碼中用pd表示。實現(xiàn)讀取數(shù)據(jù)的代碼形式如下:dataset1=pd.read_csv('G:/3dOSG/osg18.6.8 final/data/7_train_data1.csv')
在數(shù)據(jù)分析與建模的過程中,數(shù)據(jù)預(yù)處理是一個非常重要的環(huán)節(jié),主要包括數(shù)據(jù)去重、數(shù)據(jù)歸約、數(shù)據(jù)降維、數(shù)據(jù)拆分。數(shù)據(jù)去重是將數(shù)據(jù)中重復(fù)的部分進行刪除,完成數(shù)據(jù)去重的代碼為:dataset1.drop_duplicates(inplace=True)
數(shù)據(jù)歸約的目的是在保持數(shù)據(jù)原貌的前提下,對數(shù)據(jù)進行壓縮、精簡,降低數(shù)據(jù)集的規(guī)模。其代碼為:trains.drop(delete_columns,axis=1,inplace=True),online_test.drop(delete_columns,axis=1,inplace=True)
數(shù)據(jù)降維是將高維度數(shù)據(jù)中較為重要的特征保留下來,去除次要特征,提高數(shù)據(jù)處理速度,本文中數(shù)據(jù)降維選用主成分分析方法(PCA)。其代碼如下:
from sklearn.decomposition import PCA
train_pca=PCA(n_components='mle')
train_pca.fit(trains) #訓(xùn) 練;n_compoe nts='mle' #表示自動確定需要保留的特征數(shù)
train_pca.transform(trains) #降維
train_pca.inverse_transform(trains) #反轉(zhuǎn)
數(shù)據(jù)拆分是將數(shù)據(jù)集劃分成訓(xùn)練集、驗證集和測試集的過程,隨機將數(shù)據(jù)集的60%劃為訓(xùn)練集,剩余的數(shù)據(jù)等分為驗證集和測試集。其代碼為:
print("數(shù)據(jù)拆分")
train_xy,offline_test=train_test_split(trains,test_size=0.2,random_state=21)
train,val=train_test_split(train_xy,test_size=0.2,random_state=21)
print("訓(xùn)練集")
y=train.is_trade #訓(xùn)練集標(biāo)簽
X=train.drop(['instance_id','is_trade'], axis=1) #訓(xùn)練集特征矩陣
print("驗證集")
val_y=val.is_trade #驗證集標(biāo)簽
val_X=val.drop(['instance_id','is_trade'], axis=1) #驗證集特征矩陣
print("測試集")
offline_test_X=offline_test.drop(['instance_id','is_trade'],axis=1) #線下測試特征矩陣
online_test_X=online_test.drop(['instance_id'],axis=1) #線上測試特征矩陣
支持向量機的預(yù)測性能與模型構(gòu)建過程中核函數(shù)的選擇及相關(guān)參數(shù)的選取有著直接關(guān)系[5]。本文從sklearn中導(dǎo)入支持向量機模型,選取高斯徑向基核函數(shù),構(gòu)建模型過程的代碼如下。
from sklearn.svm import SVC;global model
model=SVC(kernel="rbf",probability=True,verbose=False).fit(x_train,y_train) #創(chuàng)建模型
def validate_model():
print("模型驗證")
score=model.score(x_valid,y_valid)
print(score);return score #模型驗證
def predict_model(datapath):
create_model(datapath)
print("模型預(yù)測");global list
list=model.predict_proba(x_test)
list=list[:,0];list=list.tolist()
model_score=validate_model()
list.insert(0,model_score);return list #模型預(yù)測
為滿足狀態(tài)監(jiān)測系統(tǒng)的基本要求,對系統(tǒng)的功能模塊進行設(shè)計。所設(shè)計搭建的汽輪機狀態(tài)監(jiān)測系統(tǒng)主要功能有文件功能、編輯功能、構(gòu)建功能、模型訓(xùn)練、模型監(jiān)測、視圖、設(shè)置和指標(biāo)等。
本系統(tǒng)使用c++語言作為編寫語言,在c++中調(diào)用python來實現(xiàn)支持向量機,完成模型訓(xùn)練和模型預(yù)測;利用Qt進行界面設(shè)計,通過OSG(Open Scene Gragh)完成三維模型在系統(tǒng)界面中的渲染。本文系統(tǒng)所使用的三維模型,對汽輪機的控制設(shè)備和凝汽部分進行了省略,高壓缸和低壓缸部分都實現(xiàn)了較好的三維復(fù)現(xiàn)。本系統(tǒng)的操作是在汽輪機三維模型的基礎(chǔ)上進行的,主要采用結(jié)構(gòu)樹的方式表達汽輪機三維模型當(dāng)前狀態(tài),通過選擇結(jié)構(gòu)樹中相應(yīng)的子模型,進而實現(xiàn)對三維模型的相關(guān)操作。
將數(shù)據(jù)導(dǎo)入到系統(tǒng)后,系統(tǒng)利用數(shù)據(jù)開始訓(xùn)練模型,進行支持向量機模型的構(gòu)建。模型構(gòu)建完成后,對模型的正確率進行驗證,得到當(dāng)前模型的正確率為94.6027%,滿足模型準(zhǔn)確率的需要。在模型構(gòu)建完成且其正確率滿足要求后,系統(tǒng)就可對設(shè)備部件進行健康率監(jiān)測,監(jiān)測結(jié)果以百分比的形式滾動顯示在健康率監(jiān)測模塊中。由監(jiān)測結(jié)果可以得出1#徑向軸承的健康率為90.1067%,可推斷出1#徑向軸承的健康程度很高,與從核電廠工作人員了解到的情況相符。
圖2 三維模型結(jié)構(gòu)樹
本文所設(shè)計的汽輪機狀態(tài)監(jiān)測系統(tǒng)對汽輪機組軸系部件進行健康率監(jiān)測,得到的健康率結(jié)果,能較為直觀的體現(xiàn)設(shè)備的健康程度,有效指導(dǎo)設(shè)備的運行維護。本文主要對基于支持向量機的汽輪機狀態(tài)監(jiān)測系統(tǒng)相關(guān)內(nèi)容進行闡述,重點介紹了支持向量機模型的構(gòu)建流程及關(guān)鍵代碼,對系統(tǒng)的實現(xiàn)進行具體說明。對后續(xù)的汽輪機運行狀態(tài)監(jiān)測系統(tǒng)設(shè)計具有一定的參考價值。