李東炎, 李常賢
(大連交通大學(xué), 1.自動化與電氣信息工程學(xué)院; 2. 軌道交通裝備設(shè)計與制造技術(shù)國家地方聯(lián)合工程研究中心, 遼寧, 大連 116021)
牽引電機作為列車的動力源,其健康狀態(tài)直接影響著列車的平穩(wěn)性和安全性。軸承是牽引電機的基礎(chǔ)零件,也是電機中最易損壞的部分,而且由于軸承損壞的原因會占到電機故障的80%[1]。
城軌列車電機滾動軸承基本結(jié)構(gòu)由軸承內(nèi)環(huán)、軸承外環(huán)、滾動體、保持架四部分構(gòu)成[2]。當電機軸承外環(huán)內(nèi)表面、內(nèi)環(huán)外表面或滾子發(fā)生故障時,故障點與其他相鄰面接觸時會產(chǎn)生振動信號[3]。由于電機出現(xiàn)故障后,電機軸承溫度會不斷上升,所以對于電機溫度的監(jiān)控同樣重要。電機的振動信號及溫度數(shù)據(jù)主要通過安裝在牽引電機軸承上的傳感器進行采集,振動信號數(shù)據(jù)量龐大,導(dǎo)致傳輸數(shù)據(jù)難度加大[4]。同時牽引電機的故障也不易于發(fā)現(xiàn),不能及時做出預(yù)警,極大的影響了列車的行車安全[5]。
針對上述問題,同時根據(jù)企業(yè)實際需求,搭建城軌列車牽引電機軸承監(jiān)控系統(tǒng)。以此系統(tǒng)實時監(jiān)控牽引電機軸承的狀態(tài),可以對電機軸承發(fā)生的故障做出及時的預(yù)警。實時監(jiān)控軸承狀態(tài),對于列車的安全行駛具有極其重要的作用,可以更好的保障乘客的人身安全。
牽引電機軸承監(jiān)控系統(tǒng)總體框架如圖1所示。系統(tǒng)包含數(shù)據(jù)采集單元,中央數(shù)據(jù)處理單元,上位機人機交互單元,牽引系統(tǒng)車載單元以及MQTT服務(wù)器。
圖1 牽引電機軸承監(jiān)控系統(tǒng)結(jié)構(gòu)框圖
通過安裝在列車牽引電機軸承的復(fù)合傳感器(溫度、振動加速度傳感器)實時采集軸承的溫度及振動加速度原始數(shù)據(jù),數(shù)據(jù)采集單元將數(shù)據(jù)通過UDP協(xié)議傳輸?shù)街醒霐?shù)據(jù)處理單元進行預(yù)處理及特征值計算以進行故障診斷。同時,牽引系統(tǒng)車載單元采集牽引電機的三相電流,三相電壓及轉(zhuǎn)速數(shù)據(jù),通過TCP協(xié)議傳輸至中央數(shù)據(jù)處理單元。中央數(shù)據(jù)處理單元將處理得到的時頻域數(shù)據(jù)通過UDP協(xié)議傳輸?shù)缴衔粰C(PC)顯示軸承的實時狀態(tài)。同時將所有數(shù)據(jù)以MQTT協(xié)議傳輸?shù)組QTT服務(wù)器進行數(shù)據(jù)集中存儲管理。
該層的功能是通過安裝在各列車電機軸承上的壓電式加速度傳感器采集軸承(傳動端和非傳動端)振動信號(可以實現(xiàn)多通道采集)。
采用溫度傳感器采集各電機軸承溫度信號。同時牽引系統(tǒng)車載單元采集電機三相電流、三相電壓、轉(zhuǎn)速原始數(shù)據(jù)通過TCP協(xié)議傳輸至數(shù)據(jù)處理單元。以上數(shù)據(jù)的采樣頻率及通道選擇可在上位機進行設(shè)定。
該層功能主要是將數(shù)據(jù)采集單元發(fā)送來振動加速度原始數(shù)據(jù)進行預(yù)處理(零均值處理、濾波處理、異常值處理),以去除數(shù)據(jù)中的干擾因素,獲得精度更高的故障數(shù)據(jù)。將預(yù)處理后的數(shù)據(jù)進行特征計算,分別得到時域,頻域指標。如偏斜度,式(1);峭度,式(2);均方根值,式(3)。3個頻域指標,譜重心,式(4);譜均值,式(5);譜有效值,式(6)。
(1)
(2)
(3)
Fj=(j-1)/N(j=1,…,N)
(4)
(5)
(6)
式中,y(j)表示時域振動信號u(i)經(jīng)過FFT變換后得到的頻域序列,N為時域振動信號u(i)的樣本點總數(shù)。
對原始數(shù)據(jù)以及計算得到的時、頻域特征數(shù)據(jù)保存為.txt文件。同時對每種類型的文件夾壓縮及加密,以減少磁盤占用空間及保證數(shù)據(jù)的安全性。
該層的功能是實現(xiàn)溫度預(yù)警以及振動加速度報警功能。
1) 對于溫度故障診斷:通過對采集到的溫度數(shù)據(jù)進行實時監(jiān)控與存儲。主要分為兩種故障診斷方式:一是溫度閾值報警;二是溫差報警。若溫度及溫差超過所設(shè)定的閾值,則會產(chǎn)生溫度報警。
2) 振動加速度報警是預(yù)先設(shè)定好時域,頻域指標閾值,如果某一通道經(jīng)實時計算得到的指標值超過閾值,則會產(chǎn)預(yù)警數(shù)據(jù)。
該層的功能是通過人機交互單元界面,實時顯示監(jiān)控的原始數(shù)據(jù),故障診斷數(shù)據(jù)。使操作人員更及時的獲得電機運行狀態(tài)。在界面中可以設(shè)置數(shù)據(jù)處理單元的處理參數(shù)。如某一特征指標的閾值,振動數(shù)據(jù)的采樣頻率等。上位機人機交互界面也具有文件解壓縮,文件解密功能。
下面重點闡述軸承監(jiān)控系統(tǒng)上位機軟件程序設(shè)計與實現(xiàn)。
軟件主要功能包括:與下位機TCP通訊功能,F(xiàn)TP文件下載,刪除功能,下位機參數(shù)設(shè)置功能,時頻域顯示。輔助功能包括用戶注冊及密碼修改功能,下位機IP,子網(wǎng)掩碼及網(wǎng)關(guān)地址修改功能,查看及修改下位機系統(tǒng)時間等功能。軟件總體框架如圖2所示。
圖2 上位機軟件總體框架
軟件主要包括前端界面顯示,前端用戶主界面顯示包括:連接下位機功能子界面,用于選擇下位機IP地址進行連接。FTP時、頻域文件下載、文件刪除子界面,是以FTP協(xié)議下載、刪除下位機文件。下位機參數(shù)設(shè)置子界面,可視化設(shè)置下位機運行參數(shù)。實時數(shù)據(jù)顯示子界面,可實時顯示時域、頻域數(shù)據(jù)指標,方便用戶隨時查看。
后端進行通訊連接,線程調(diào)度,數(shù)據(jù)存儲。將大量的數(shù)據(jù)處理及存儲操作放入后端線程中進行以保證界面顯示的流暢性。上位機以UDP協(xié)議與下位機進行通訊傳輸。線程調(diào)度采用消息隊列進行線程之間數(shù)據(jù)銜接,每個線程之間不用相互等待,各自有不同的優(yōu)先級,可以動態(tài)的占用CPU時間。
上位機軟件開發(fā)工具為Visual Studio 2015,通過Qt VS Tools 與Qt5.9.6建立連接,實現(xiàn)VS與Qt的混合編程。Qt是基于C++的圖形用戶界面應(yīng)用程序開發(fā)框架,其面向?qū)ο蟮奶攸c易于程序的模塊化[6]。程序設(shè)計主要包括界面程序設(shè)計,UDP通訊線程類程序設(shè)計。
3.2.1 軟件界面程序設(shè)計與實現(xiàn)
軟件主界面類繼承Qt中的QMianWindow類,通過在主界面類中添加菜單欄類——QMenu類,工具欄QToolBar類。QAction類,這個類代表了窗口的一個“動作”,比如用戶點擊菜單時,程序做出響應(yīng)。將QAction的實例化對象添加到菜單欄或工具欄中,實現(xiàn)對該“動作”的添加。
子菜單界面繼承與QWidget或QDialog類。
通過在Qt Desidner中添加控件,設(shè)置界面布局實現(xiàn)自定義子菜單界面。QSplitter類實現(xiàn)了一個分離小部件,允許用戶通過拖動子部件之間的邊界來控制它們的大小。QMdiArea類使用于主窗口中,用于容納多個子菜單界面類。將繼承于QSplitter的子菜單類添加入QMdiArea中,可以實現(xiàn)各子菜單的獨立顯示。
開發(fā)界面的主要代碼如下:
//添加菜單欄及工具欄
QToolBar *fileToolBar=addToolBar(tr("File"));
QMenu *fileMenu = menuBar()->addMenu(tr("文件"));
fileMenu->setObjectName("m_fileMenu");
parentActionName = fileMenu->objectName();
//將個子菜單按索引值nameIndex分別加入QMdiArea中mdiSub[nameIndex]
=mdiArea->addSubWindow(child[nameIndex]);
child[nameIndex]->parentArea = mdiArea;
如圖3所示為創(chuàng)建監(jiān)視實時振動加速度、電機速度、電機溫度子菜單界面流程圖。
圖3 子菜單界面創(chuàng)建流程圖
3.2.2 軟件通訊線程類程序設(shè)計與實現(xiàn)
UDP通訊類繼承Qt的QUdpSocket類來進行UDP數(shù)據(jù)報文的發(fā)送和接收。在使用QUdpSocket通訊類時要在VS2015的工程屬性界面Qt modules中添加“network”模塊。通過初始化QUdpSocket對象,綁定IP地址和端口號。當收到數(shù)據(jù)時,會觸發(fā)readyRead()信號,通過自定義processPendingDatagramsByUC()槽函數(shù)可以對讀取的數(shù)據(jù)進行處理。
UDP通訊類部分代碼如下:
//初始化UDP通訊對象,綁定IP地址及端口。
_udpSocketByUC = new QUdpSocket(parent);
_udpSocketByUC->bind(_portByUC,QUdpSocket::ShareAddress);
//通過connect()連接readyRead()信號和槽函數(shù)
connect(_udpSocketByUC, SIGNAL(readyRead()),this, SLOT(processPendingDatagramsByUC()), Qt::DirectConnection);
在槽函數(shù)processPendingDatagramsByUC()中將datagramBuffer緩存區(qū)內(nèi)的數(shù)據(jù)進行讀取,保存到報文處理隊列中。
//讀取報文數(shù)據(jù)保存到報文處理隊列中
char * datagramBuffer = new char[datagramSize];
_udpSocketByUC->readDatagram(datagramBuffer, datagramSize,&hostAddress);
_bufferQueue.append(qMakePair(datagramSize, datagramBuffer));
線程類繼承Qt中的QThread類,一個QThread類對象管理一個線程。QThread的執(zhí)行從run()函數(shù)的執(zhí)行開始。調(diào)用run()函數(shù)線程啟動。然后啟動UDP通訊接口。將通過UDP傳輸?shù)母鲾?shù)據(jù)報文放在一個處理報文的任務(wù)隊列中,根據(jù)接收的報文類型進行數(shù)據(jù)處理。報文處理流程圖如圖4所示。首先根據(jù)線程啟動標志runIsStop判斷線程是否啟動,若runIsStop標志為false,則繼續(xù)檢查報文任務(wù)隊列,若報文任務(wù)隊列不為空,以不同類型的報文分類處理任務(wù)隊列。報文可分為振動加速度報文、溫度報文、頻譜報文、轉(zhuǎn)速報文及電壓電流報文。為保證臨界緩沖區(qū)在同一時刻只能由一個線程持有,需要對臨界區(qū)進行加鎖處理。保證原子操作。
圖4 報文數(shù)據(jù)處理流程圖
線程類部分代碼如下:
//線程啟動后,判斷報文隊列是否為空
if (gMsgDuty.size() == 0)
{
QThread::msleep(100);//延時100 ms
}
Else
//加入互斥鎖
mutex.lock();
t = gMsgDuty.head();
gMsgDuty.pop_front();
//解鎖操作
mutex.unlock();
}
啟動上位軟件后,輸入用戶名及密碼,驗證成功后進入系統(tǒng)軟件主界面,如圖5所示。主界面中顯示各子界面的工具欄以及各子界面的快捷鍵。
圖5 軟件主界面
點擊“連接”菜單,彈出連接下位機界面,運行界面如圖6所示。鼠標選擇下位機IP地址后,點擊“開始連接”。顯示連接成功。點擊“斷開連接”,即可斷開與下位機否連接。若要修改下位機參數(shù)。打開參數(shù)設(shè)置界面,例如可以修改采集通道數(shù)量,溫度與振動數(shù)據(jù)采樣頻率等信息,也可以設(shè)置不同的報警閾值。設(shè)置成功后可將設(shè)置的參數(shù)通過UDP協(xié)議傳輸?shù)较挛粰C數(shù)據(jù)處理單元。參數(shù)設(shè)置界面如圖7所示。
圖6 連接下位機運行界面圖
圖7 下位機參數(shù)設(shè)置運行界面
點擊“實時數(shù)據(jù)”菜單按鈕可實時顯示振動加速度、溫度、三相電流、三相電壓數(shù)據(jù)曲線等曲線。振動加速度數(shù)據(jù)實時顯示界面如圖8所示。對于下位機存儲的加密壓縮.zip文件,可由FTP協(xié)議下載保存到上位機,進行歷史數(shù)據(jù)的顯示。軟件上位機也具有解密,解壓縮功能,方便用戶使用 。
圖8 振動加速度數(shù)據(jù)實時顯示界面
點擊“故障診斷”菜單,彈出實時故障特征值界面。界面如圖9所示。根據(jù)對應(yīng)的數(shù)據(jù)指標是否大于其閾值判斷軸承是否出現(xiàn)故障。若產(chǎn)生故障則對應(yīng)的指標數(shù)據(jù)將顯示紅色預(yù)警(圖中軸承狀態(tài)為正常)。
圖9 軸承振動故障診斷數(shù)據(jù)運行界面
本文提出并實現(xiàn)了對牽引電機軸承的實時監(jiān)控以及故障報警系統(tǒng),基本滿足了所設(shè)計的功能。通過實現(xiàn)振動及溫度數(shù)據(jù)的實時采集,實時監(jiān)控,保證牽引電機軸承的健康運行。通過上位機人機交互界面方便用戶進行監(jiān)控。為解決大量數(shù)據(jù)存儲問題,將數(shù)據(jù)實時上傳至MQTT服務(wù)器,減輕下位機存儲空間壓力。系統(tǒng)下一步考慮將神經(jīng)網(wǎng)絡(luò)算法應(yīng)用到該軸承故障監(jiān)控系統(tǒng)中,以提高故障預(yù)警的準確[7]。
該監(jiān)控系統(tǒng)經(jīng)過運行測試和用戶的反饋信息表明:該系統(tǒng)基本實現(xiàn)所提出的功能需求并達到使用要求。對于保障牽引電機的安全運行具有重要的作用。