池 毅,陳光武
1.蘭州交通大學(xué) 自動(dòng)化與電氣工程學(xué)院,蘭州 730070
2.蘭州交通大學(xué) 自動(dòng)控制研究所,蘭州 730070
3.甘肅省高原交通信息工程及控制重點(diǎn)實(shí)驗(yàn)室,蘭州 730073
S700k電動(dòng)轉(zhuǎn)轍機(jī)作為高速鐵路重要組成設(shè)備之一,是保證列車安全通過道岔的轉(zhuǎn)轍設(shè)備。而當(dāng)前我國(guó)主要是采用鐵路信號(hào)集中監(jiān)測(cè)系統(tǒng)(CMS)采集電流曲線或功率曲線進(jìn)行監(jiān)測(cè),以工作人員的定期修和故障修兩種方式相結(jié)合,這種道岔故障診斷方式已經(jīng)不適用于當(dāng)前高速鐵路自動(dòng)化、智能化發(fā)展方向。
傳統(tǒng)的故障診斷方法分為以下三個(gè)步驟,首先以專業(yè)的先驗(yàn)知識(shí)對(duì)原始動(dòng)作功率曲線數(shù)據(jù)進(jìn)行信號(hào)處理,提取特征數(shù)據(jù),主要有時(shí)域、頻域(小波分解(WT)[1])、時(shí)頻域(集合經(jīng)驗(yàn)?zāi)B(tài)分解(EEMD)[2])的信號(hào)處理方法;然后對(duì)提取的特征數(shù)據(jù)進(jìn)行降維,使用主成分分析(PCA)[1,3]、Fisher準(zhǔn)則[3]等方法;最后使用分類器對(duì)降維后的特征數(shù)據(jù)分類,使用反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)[1,4-5]、支持向量機(jī)(SVM)[5-6]、灰關(guān)聯(lián)[4]、隱馬爾可夫模型(HMM)[3]等方法,其中對(duì)分類器參數(shù)的優(yōu)化,通常使用粒子群優(yōu)化算法(PSO)[5]、遺傳算法(GA)[3]等算法,至此完成整個(gè)故障診斷。這種對(duì)信號(hào)進(jìn)行多樣化處理和分類算法改進(jìn)的分層診斷框架,很難進(jìn)行聯(lián)合優(yōu)化,而將兩者融合的方法目前研究較少。
深度學(xué)習(xí)在機(jī)器健康監(jiān)控中的應(yīng)用非常廣泛[7],常使用的是卷積神經(jīng)網(wǎng)絡(luò)和長(zhǎng)短期記憶網(wǎng)絡(luò)。二維卷積神經(jīng)網(wǎng)絡(luò)(2D-CNN)主要應(yīng)用在二維圖像識(shí)別領(lǐng)域,然而將2D-CNN用于時(shí)間序列數(shù)據(jù)時(shí),除了需要將數(shù)據(jù)從1D轉(zhuǎn)換到2D外,通常還需要大規(guī)模的數(shù)據(jù)集,所以本文采用直接處理一維時(shí)間序列數(shù)據(jù)更優(yōu)的一維卷積神經(jīng)網(wǎng)絡(luò),如應(yīng)用在心電圖信號(hào)檢測(cè)[8]、軸承振動(dòng)信號(hào)故障診斷[9-10]、加速度計(jì)采集時(shí)間序列信號(hào)的人類活動(dòng)識(shí)別研究[11],電力系統(tǒng)的電壓、功率和相角的時(shí)間序列穩(wěn)定評(píng)估[12]等。長(zhǎng)短期記憶網(wǎng)絡(luò)用于軌道電路的電流信號(hào)的故障診斷[13]、電機(jī)電流信號(hào)的實(shí)時(shí)故障診斷[14]等。
人工提取數(shù)據(jù)特征傾向于追求正確率而降低實(shí)際運(yùn)用的整體泛化能力,降維后構(gòu)建的特征工程則可能會(huì)丟失重要信息,故需要在特征完整度和診斷準(zhǔn)確率上進(jìn)行聯(lián)動(dòng),尋求兩者之間的平衡。本文采用的一維卷積神經(jīng)網(wǎng)絡(luò)可以直接應(yīng)用于原始信號(hào)(例如,電流、電壓、振動(dòng)等),卻無需進(jìn)行大量數(shù)據(jù)的預(yù)處理(例如特征提取、選擇、降維、去噪等)。直接對(duì)原始數(shù)據(jù)自適應(yīng)提取特征,有效地消除傳統(tǒng)人工特征提取與選擇所帶來的復(fù)雜性和不確定性;將特征提取與分類融合為一體,然后對(duì)整體進(jìn)行優(yōu)化,選擇最優(yōu)的結(jié)構(gòu),從而提升故障檢測(cè)正確率,并提高泛化能力,能更好地用于實(shí)際的檢測(cè)故障。對(duì)于這種線性1D卷積局部連接和參數(shù)共享機(jī)制,大大減少了模型的訓(xùn)練參數(shù)和訓(xùn)練時(shí)間,能實(shí)現(xiàn)實(shí)時(shí)診斷和在低成本的硬件上實(shí)現(xiàn)。
在分析S700k交流式轉(zhuǎn)轍機(jī)動(dòng)作的故障時(shí),主要分析轉(zhuǎn)轍機(jī)的動(dòng)作功率曲線和動(dòng)作電流曲線,轉(zhuǎn)轍機(jī)的工作狀態(tài)可以由其輸出工作拉力的具體變化情況表現(xiàn),而動(dòng)作功率曲線的大小能反映轉(zhuǎn)轍機(jī)輸出拉力的變化,所以本文使用動(dòng)作功率曲線進(jìn)行研究。
S700k轉(zhuǎn)轍機(jī)正常工作的動(dòng)作功率曲線如圖1所示,主要包括5個(gè)階段,分別是啟動(dòng)、解鎖、轉(zhuǎn)換、鎖閉、表示。轉(zhuǎn)轍機(jī)的功率動(dòng)作曲線在0~0.3 s之間,處于啟動(dòng)階段時(shí),功率值較大,隨即進(jìn)入解鎖、轉(zhuǎn)換階段,功率曲線值維持在0.5 kW左右,在功率曲線出現(xiàn)小幅下降時(shí),處于鎖閉階段,之后進(jìn)入表示階段,功率曲線降至0 kW。
圖1 S700k轉(zhuǎn)轍機(jī)正常功率曲線Fig.1 Normal power curve of S700k switch machine
通過現(xiàn)場(chǎng)調(diào)研和相關(guān)資料,當(dāng)前道岔主要有8種常見的故障模式,具體的故障現(xiàn)象及故障原因如表1所示,與其對(duì)應(yīng)的S700k轉(zhuǎn)轍機(jī)的動(dòng)作功率曲線如圖2所示。
圖2 常見的8種道岔故障所對(duì)應(yīng)的動(dòng)作功率曲線Fig.2 Action power curve corresponding to eight common turnout faults
表1 S700k轉(zhuǎn)轍機(jī)常見故障現(xiàn)象和故障原因Table 1 Common fault phenomena and causes of S700k switch machine
1D-CNN和2D-CNN結(jié)構(gòu)類似,其基本的結(jié)構(gòu)由輸入層、卷積層、池化層、全連接層、輸出層組成,其基本結(jié)構(gòu)如圖3所示,本文使用一維卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行序列到序列的學(xué)習(xí),將原始功信號(hào)的時(shí)間序列作為輸入,輸出一系列的標(biāo)簽預(yù)測(cè)。卷積層和池化層用于提取數(shù)據(jù)特征,通常需要堆疊多組卷積層和池化層,從而提取更深層次的特征序列,提高神經(jīng)網(wǎng)絡(luò)的性能,全連接層用于對(duì)提取的特征進(jìn)行分類。如圖4中結(jié)構(gòu)圖所示,是1DCNN的三個(gè)連續(xù)隱藏CNN層,其中包括兩個(gè)卷積層一個(gè)池化層。1D-CNN的卷積核是一個(gè)權(quán)值矩陣,卷積核以一定步長(zhǎng)依次對(duì)輸入信號(hào)的局部區(qū)域進(jìn)行卷積運(yùn)算以生成相應(yīng)的一維特征圖,不同的卷積核分別從輸入信號(hào)中提取不同的特征,且在同一輸入信號(hào)上實(shí)現(xiàn)權(quán)值共享,局部連接和權(quán)重共享的這一特征能有效地降低網(wǎng)絡(luò)的復(fù)雜性和減少訓(xùn)練參數(shù)的數(shù)量。完成卷積操作之后,需要使用激活函數(shù)實(shí)現(xiàn)非線性變換,使用在CNN中應(yīng)用廣泛的Relu激活函數(shù),它能使模型更好收斂和有稀疏表示,防止梯度消失。一維卷積層的運(yùn)算公式如下所示:kk
圖3 1D-CNN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.3 1D-CNN network structure diagram convolution operation
圖4 1D-CNN的三個(gè)連續(xù)隱藏CNN層Fig.4 Three consecutive hidden CNN layers of 1D-CNN
在卷積操作后,提取的特征序列的數(shù)量增加,導(dǎo)致數(shù)據(jù)的維數(shù)擴(kuò)大,提高了計(jì)算復(fù)雜度,通過池化(pooling)操作特征序列進(jìn)行降采樣DS(down sampling),降低特征序列數(shù)據(jù)的維度,最大池化(max pooling)是對(duì)設(shè)定窗口內(nèi)的最大參數(shù)作為輸出值。池化的計(jì)算公式如下所示:
經(jīng)過多層的卷積和池化操作后,將提取的多列深層次特征序列在扁平層(flatten)整合為一列,經(jīng)全連接層繼續(xù)提取時(shí)序特征,全連接層和傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)(ANN)結(jié)構(gòu)一致,是由多層的隱含層組成。在輸出層,采用softmax函數(shù)進(jìn)行分類,如下所示:
式中,P(j)表示輸出層輸出的第j類的概率值,值范圍在[0,1],k表示需要分類的數(shù)量。
損失函數(shù)用于度量模型的質(zhì)量,通過模型的輸出結(jié)果與實(shí)際目標(biāo)結(jié)果之間的接近度來描述,針對(duì)多分類問題,采用交叉熵?fù)p失函數(shù),如下所示:
在模型的訓(xùn)練過程中極易出現(xiàn)的過擬合問題,采用正則化增強(qiáng)模型的泛化能力,在全連接層中加入隨機(jī)丟棄神經(jīng)元(Dropout)的方法,防止神經(jīng)元對(duì)訓(xùn)練數(shù)據(jù)的適應(yīng)過度,Dropout只針對(duì)模型訓(xùn)練過程,丟棄的神經(jīng)元在梯度BP時(shí)不更新權(quán)值,這就使得網(wǎng)絡(luò)以不完美的方式學(xué)習(xí),達(dá)到了提高泛化能力的目的,也增加了模型的魯棒性。
S700k轉(zhuǎn)轍機(jī)的動(dòng)作功率曲線是一維時(shí)間序列數(shù)據(jù),正常的道岔動(dòng)作時(shí)間為6~7 s,鐵路信號(hào)微機(jī)監(jiān)測(cè)系統(tǒng)中采集一個(gè)數(shù)據(jù)的時(shí)間間隔為0.04 s,所以總計(jì)取150~175個(gè)點(diǎn),而一些故障的動(dòng)作時(shí)間會(huì)超過7 s,為了統(tǒng)一模型的輸入張量,所以將時(shí)間序列數(shù)據(jù)的長(zhǎng)度固定,取動(dòng)作功率曲線7 s的時(shí)間序列,總計(jì)175個(gè)點(diǎn)集,當(dāng)動(dòng)作功率曲線時(shí)間少于7 s時(shí),未到7 s的序列以0補(bǔ)充。在輸入模型訓(xùn)練之前,將數(shù)據(jù)進(jìn)行歸一化,其公式如下所示:
本文建立的基于一維卷積神經(jīng)網(wǎng)絡(luò)的道岔故障智能診斷流程圖如圖5所示,具體步驟如下:
圖5 1D-CNN訓(xùn)練流程圖Fig.5 1D-CNN training flow chart
(1)將不同狀態(tài)的所有功率序列數(shù)據(jù)集進(jìn)行歸一化,再將數(shù)據(jù)集的標(biāo)簽進(jìn)行獨(dú)熱編碼(one-hot vector),然后將數(shù)據(jù)集打亂,分為訓(xùn)練集、驗(yàn)證集、測(cè)試集,并在測(cè)試集中加入高斯白噪聲。
(2)建立1D-CNN模型并確定模型的超參數(shù)(迭代次數(shù)、批次數(shù)和學(xué)習(xí)率等),初始化模型的權(quán)值和偏差。
(3)輸入訓(xùn)練集,根據(jù)迭代次數(shù)和批次數(shù)訓(xùn)練模型,通過前向傳播得出模型的輸出值與期望值的誤差,然后進(jìn)行反向傳播,求得誤差梯度,更新模型的權(quán)重和偏差。在每輪訓(xùn)練過程中,使用驗(yàn)證集對(duì)模型進(jìn)行驗(yàn)證。
(4)重復(fù)執(zhí)行步驟(3),直至訓(xùn)練集完成所有的迭代次數(shù)后,得到1D-CNN模型。
(5)將測(cè)試集用于已經(jīng)訓(xùn)練好的模型,根據(jù)模型的輸出準(zhǔn)確率判斷模型是否符合實(shí)際診斷要求,保存模型。
1D-CNN模型在Python3.6的環(huán)境下,采用Keras深度學(xué)習(xí)框架搭建,模型采用隨機(jī)梯度下降(SGD)算法更新權(quán)值,設(shè)置學(xué)習(xí)率為0.001,采用小批量訓(xùn)練法,批量大小為15。本文選擇3層卷積層,3層池化層,使得模型對(duì)故障診斷的準(zhǔn)確率達(dá)到要求,而且模型的計(jì)算復(fù)雜度不是很高,模型具體結(jié)構(gòu)與相應(yīng)的參數(shù),如表2所示。
表2 1D-CNN參數(shù)分布Table 2 1D-CNN parameter distribution
由于在現(xiàn)場(chǎng)采集的正常和故障數(shù)據(jù)失衡,故障數(shù)據(jù)的數(shù)量相較正常數(shù)據(jù)少,通過Matlab中的rand函數(shù),對(duì)已有的故障數(shù)據(jù)加入不同程度的波動(dòng),仿真模擬出一部分故障數(shù)據(jù),總共900組數(shù)據(jù),其中訓(xùn)練集有630組數(shù)據(jù),取訓(xùn)練集中的20%作為驗(yàn)證集,測(cè)試集有270組數(shù)據(jù),然后在測(cè)試集繼續(xù)加入高斯白噪聲,驗(yàn)證訓(xùn)練的模型的泛化能力,魯棒性。
針對(duì)卷積核的多尺度對(duì)模型準(zhǔn)確率的影響進(jìn)行測(cè)試,以確定卷積核尺寸,具體結(jié)果如表3所示,從表中可以看出,第一層卷積層使用大卷積核,對(duì)模型的準(zhǔn)確率有一定的提高,因?yàn)榇缶矸e核能使原始數(shù)據(jù)中的噪聲對(duì)模型的準(zhǔn)確率影響降低,而后兩層采用小卷積核,因?yàn)樾【矸e核能更有效地提取出原始數(shù)據(jù)中的深層次特征,對(duì)模型的準(zhǔn)確率有著至關(guān)重要的作用。
表3 多尺度卷積核的模型診斷結(jié)果分析Table 3 Analysis of model diagnosis results based on multiscale convolution kernel
模型訓(xùn)練過程中的正確率如圖6所示,Train代表訓(xùn)練集的準(zhǔn)確率,validation代表驗(yàn)證集的準(zhǔn)確率,由實(shí)驗(yàn)結(jié)果看出,模型在迭代25輪之后,訓(xùn)練集上的準(zhǔn)確率為97%左右,而在模型迭代9輪之后,驗(yàn)證集上的準(zhǔn)確率為100%,驗(yàn)證集的準(zhǔn)確率高于訓(xùn)練集,導(dǎo)致出現(xiàn)這樣的結(jié)果,主要是因?yàn)槭褂昧苏齽t化Dropout。如圖7所示,模型在迭代25輪之后,訓(xùn)練集和驗(yàn)證集的交叉熵?fù)p失也接近0。
圖6 訓(xùn)練過程的準(zhǔn)確率曲線Fig.6 Accuracy curve of training process
圖7 訓(xùn)練過程的損失曲線Fig.7 Loss curve of training proces
為了驗(yàn)證一維卷積神經(jīng)網(wǎng)絡(luò)模型中卷積層對(duì)原始輸入信號(hào)的自適應(yīng)提取特征的能力,采用了可視化t分布隨機(jī)近鄰嵌入(t-distribution stochastic neighbor embedding,t-SNE)方法[15],它是一種將高維數(shù)據(jù)降維可視化的分析方法,其思想是在低維度空間構(gòu)建一個(gè)t分布,使其與高維空間構(gòu)造概率分布一致。將卷積層提取的特征進(jìn)行可視化分析呈現(xiàn),具體結(jié)果如圖8所示,展示了模型中三層卷積層提取特征的t-SNE可視化的映射視圖,如圖可知,在第一層卷積層提取特征之后,具有一定的雛形,明顯看到各種類型有一定的聚集,但是仍然有大量的散點(diǎn),分類效果非常不好;在第二層卷積層提取特征之后,各種類型能有效地聚集在一塊,但是相對(duì)有一些分散;在第三層卷積層提取特征之后,各種類型基本都能很緊密地聚集在一塊,且各種類型的距離更大,足以區(qū)分各種道岔的故障狀態(tài),這也說明了卷積層對(duì)提取道岔動(dòng)作功率曲線時(shí)間序列的深層特征有很明顯的效果,所以1D-CNN可以從含噪聲信號(hào)中學(xué)習(xí)有效的特征,并實(shí)現(xiàn)準(zhǔn)確的故障診斷。
圖8 模型中三層卷積層提取特征的t-SNE可視化Fig.8 T-SNE visualization of features extracted from three-layer convolution layer in models
LSTM模型是由兩層LSTM單元組成,然后用Dropout方法提高模型的魯棒性,最后采用softmax函數(shù)分類,迭代次數(shù)為50次;自編碼器模型是先訓(xùn)練4層編碼,4層解碼,然后將提取的特征輸入給softmax函數(shù),實(shí)現(xiàn)故障診斷,迭代次數(shù)為30次;兩模型均采用SGD算法更新權(quán)值,設(shè)置學(xué)習(xí)率為0.001,采用小批量訓(xùn)練法,批量大小為15。
圖9是一維卷積神經(jīng)網(wǎng)絡(luò)模型在測(cè)試集上分類的混淆矩陣,圖10是長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)模型和自編碼器(AutoEnconder)模型在測(cè)試集上分類的混淆矩陣。從圖9中看出,出現(xiàn)了一例誤判,將故障4預(yù)判為故障7,從圖2中可以看到,故障4和故障7的整體功率動(dòng)作曲線有很大的相似性,這是出現(xiàn)誤判的主要原因。
圖9 1D-CNN的混淆矩陣Fig.9 Confusion matrix of 1D-CNN
圖10 LSTM和AutoEnconder的混淆矩陣Fig.10 Confusion matrix of LSTM and AutoEnconder
分別對(duì)表4中的5種模型進(jìn)行10次訓(xùn)練測(cè)試,隨機(jī)選擇一組測(cè)試結(jié)果,分別得到模型的預(yù)測(cè)正確率和以分鐘為單位訓(xùn)練時(shí)間,1D-CNN模型在道岔各種狀態(tài)的預(yù)測(cè)正確率相比其他的模型最高,達(dá)到了99.63%,在多次測(cè)試中有時(shí)也能達(dá)到100%;在訓(xùn)練時(shí)間上,1D-CNN模型相比LSTM和AutoEncoder兩種深度學(xué)習(xí)模型更短,也能說明1D-CNN模型的計(jì)算復(fù)雜度低,1D-CNN模型相比SVM和BP兩種傳統(tǒng)機(jī)器學(xué)習(xí)的分類器,在訓(xùn)練時(shí)間上相差不多,但是在測(cè)試集上的準(zhǔn)確率有很大的提高。
表4 1D-CNN故障診斷模型和其他方法的對(duì)比Table 4 Comparison between 1D-CNN fault diagnosis model and other methods
本文采用的一維卷積神經(jīng)網(wǎng)絡(luò)是首次應(yīng)用于道岔故障診斷,根據(jù)實(shí)驗(yàn)結(jié)果可以得出如下結(jié)論:
(1)1D-CNN模型相比于傳統(tǒng)機(jī)器學(xué)習(xí)方法,不需要專業(yè)的先驗(yàn)知識(shí)去手工提取原始功率信號(hào)的相應(yīng)特征,所以不會(huì)破壞原始功率信號(hào)的時(shí)空信息,從原始功率信號(hào)的整體上直接學(xué)習(xí)更有代表性、更深層次的特征,突破了淺層學(xué)習(xí)的瓶頸,提高了診斷的準(zhǔn)確性。
(2)所提出的方法能將特征提取與分類操作融合到一個(gè)機(jī)器學(xué)習(xí)體中,能更好地進(jìn)行二者的聯(lián)合優(yōu)化。
(3)對(duì)于單個(gè)原始功率曲線輸入模型,只需要0.37 ms即可實(shí)現(xiàn)診斷分類,可以滿足道岔轉(zhuǎn)換實(shí)時(shí)的監(jiān)測(cè)。
(4)實(shí)現(xiàn)了端對(duì)端的自適應(yīng)學(xué)習(xí),直接輸入道岔原始的功率曲線時(shí)間序列,輸出道岔相應(yīng)的狀態(tài)類型,模型有很強(qiáng)的泛化能力,有很好的魯棒性,并且在準(zhǔn)確率上平均能達(dá)到99%以上,能很好地應(yīng)用于鐵路現(xiàn)場(chǎng)的實(shí)時(shí)道岔故障檢測(cè)。