張立國
(中車青島四方機車車輛股份有限公司技術中心,266111,青島∥高級工程師)
基于Matlab/GUI的地鐵車輛試驗數據分析系統
張立國
(中車青島四方機車車輛股份有限公司技術中心,266111,青島∥高級工程師)
針對地鐵列車制動試驗數據處理量較大,人工處理步驟繁瑣、耗時較長、過程易錯等問題,開發了基于Matlab/GUI的地鐵車輛數據分析系統,解決了快速讀取數據、制動過程判斷的算法問題,實現了數據可編輯式修正預處理、數據讀取、數據單曲線繪圖和多曲線繪圖、有效制動次數的統計、制動過程車輪和閘瓦溫度峰值的提取以及自動生成報表等功能。通過測試分析與驗證結果表明,該系統實現了任意時間區段的列車速度、加速度、踏面溫度、車輪溫度、制動缸壓力等曲線的繪制及報表的自動生成,系統可靠、高效、簡便,數據處理精度保持與原始數據一致。
地鐵車輛; 制動試驗; 數據分析; 自動報表
Author′s address Technical Center of China Qingdao Sifang Locomotive Company Limited,266111,Qingdao,China
地鐵車輛數據分析工作是通過對地鐵車輛數據的收集、加工、統計、分析,對地鐵車輛的狀況做出科學判斷,并在此基礎上形成分析報告,供相關人員閱讀、理解和利用。我國地鐵車輛種類繁多、數量龐大,而且隨著測試檢驗的項點增多、測試數據的類型多樣、測試周期的逐漸縮短,對地鐵車輛進行分析評估的效率很難滿足需求。因為操作流程復雜、分析結果易錯、處理等待時間過長等原因,通常的人工分析處理方式已失去意義。因此,開發一款可以進行試驗數據處理并能自動生成報表的軟件有著重要的意義。文獻[2]基于SQL建立地鐵車輛運行數據庫,研制數據管理軟件。文獻[3]研究了基于程序自動化技術的通用報表的設計技術,通用報表將報表框架與報表數據分開,用戶可根據需要自主選擇數據來源和分析結果,系統可以自動快速生成報表,方便用戶迅速通過數據分析結果得到研究對象的特征要求。
本文以某地鐵列車線路運行試驗為背景,結合Matlab工具,利用Matlab高效率的矩陣運算特點縮短數據處理時間;利用Matlab強大的數值計算、顯示和圖形化實現用戶界面功能;運用多核計算方法提取數據,編制以制動指令為參照的制動判斷算法,自動生成數據圖象及表格報表。通過試驗數據驗證了軟件功能及其可靠性。
(1) 數據的數量多。地鐵車輛試驗數據量龐大、數據格式繁多、數據種類多樣,通常通過采集設備以TXT、Excel、Access、TDMS等方式保存。各種編程語言均能實現對不同類型數據文件的多種讀取方式。數據讀取方式取決于采集設備的數據保存方式,目前以SQL數據庫為主流數據采集保存方式,讀取速度快,數據更新簡便,但數據庫增大后可移動性變差,如果只提供Excel型數據進行分析,數據庫的使用也就沒有了明顯意義。在要求快速開發周期的前提下,應該減少不同編程語言之間的聯合,且兼顧讀取快速、后處理分析簡便等特點。
(2) 數據的文件量多。采集設備采集數據時會預設一個采集文件的上限,在連續、長時間采集,或因采集設備故障、人為等因素間斷采集時,采集的數據文件數量會增多,多文件讀取不同于單一文件讀取,需要優化讀取方式以避免讀取時間的成倍增長。
(3) 數據的提取項多。對車輛的運行狀況進行分析需要提取每個文件中的速度、加速度、制動缸壓力等多種不同的特征項,并通過圖表等方式直觀地表現出來。不同物理量的單曲線繪圖和不同物理量之間的多曲線繪圖,對分析挖掘車輛數據的內在信息,對進一步研究列車的運行效能有重要意義,因此需要實現曲線的批量繪制,并保障曲線的美觀性。
2.1 系統架構與設計方案
針對Excel數據文件進行系統設計,設計預處理、制動分析、輪邊溫度分析三個模塊。預處理模塊能通過數據的數值運算進行修正并能更新原始數據流;制動分析模塊將原始或預處理后的數據導入分析,實現時間區段的顯示、制動次數的統計、單曲線繪圖、多曲線繪圖、特征數據的提取統計以及標準化報表的自動生成;輪邊溫度分析模塊導入與制動分析模塊不同采樣頻率的數據并統一化采樣標準,自由選擇時間區段,繪制輪邊溫度曲線并能自動生成報表。系統架構如圖1所示。

圖1 地鐵車輛數據分析系統架構圖
使用GUIDE設計系統界面,如圖2所示。所有操作功能均設計在一個界面,在系統主界面可進行相應的數據提取、數據調整、數據顯示和輸出等操作。
2.2 算法及功能實現
2.2.1 數據快速導入及處理
由于采集器的定義、采集數據包含不同意義物理量導致使用多個通道,因此采集的數據文件轉化為Excel后是一個包含多個Sheet的文件,這就造成了文件數據比較瑣碎。無論是直接操作打開還是利用軟件讀取都需要較長的時間。本文利用Matlab多核計算算法讀取數據,節約系統運行操作時間。
為了能夠提高數據的處理能力,節約系統運行時間,在重復讀取數據中盡量采用結構一致的循環模式,通過修改循環中的for為parfor,將相似的讀寫指令分入計算機不同的線程進行操作。Matlab多核計算與其他編程語言多核計算的不同點在于:只是循環語句下的多核計算,形式較為單一,需要多核計算的代碼所執行的語句應該相同,內容應盡量相似。同時,parfor語句由于不能使用雙重嵌套,因此需要for-parfor格式進行嵌套程序的使用。

圖2 地鐵車輛數據分析系統主界面
按照多核計算方法運行一個60 M數據文件時間為43.78 s;根據未修改程序運行相同程序,耗時85.77 s,效率提升48.9%。說明利用多線程計算可以明顯節約運行時間。而且當數據量越大的時候,相對節約時間越多。
2.2.2 制動信息統計與分析
由于數據文件多,且通常在試驗結束或者一定時間后才進行數據的分析處理,為便于分析,需要統計一個或者幾個數據文件中包含的有效制動次數。針對相應要求,編制以制動指令為參照的制動判斷算法。制動指令是一個0/1數字信號,在列車開始制動時跳變,制動結束時回零。定位制動指令是以數字電平信號高低轉換時間進行判斷,獲取可能的制動次數N;通過制動末態速度應小于1 km/h,向上浮動取1.5 km/h為判定值,剔除無試驗意義的車輛對標或車輛低速度挪移。 圖3為制動判斷算法流程圖。

圖3 制動判定算法流程圖
2.2.3 自動報表生成
系統分析數據后能夠自動生成報表,統計各特征參數。調用matlab中特定的office接口,利用activeserver函數,創建Microsoft word服務器,使用代碼命令控制word,生成所需要的報表。調用流程圖如圖4所示。

圖4 系統自動生成報表時的word調用流程圖
應用本系統對某城市地鐵車輛試驗的離線數據進行分析處理,以驗證系統的可靠性。隨機選取某段時間運行數據進行驗證,在使用過程中針對可能出現的情況給予彈窗提示,增加系統使用的體驗性。預處理中每次修改數據時提示完成并顯示已修改項,方便用戶操作;對導入數據是否存在有效制動進行提示,排除無用的離線數據,提高分析效率;增設時間查詢區段設定完整性,防止用戶誤操作而導致的時間設定錯誤,完善軟件的使用體驗。圖5為制動次數統計彈窗警示,在數據中無有效制動過程時彈窗警示。

圖5 制動次數彈窗警示
系統處理后的數據,能夠生成速度曲線全局預覽圖、速度曲線分段預覽圖、輪邊溫度預覽圖。圖6為地鐵車輛運行速度曲線全局預覽圖,顯示有效制動次數為3次,與實際情況相符。快速預功能滿足用戶的預查詢要求,提升系統的實際適應能力。
選定合適的時間區段后,自動生成速度、加速度、沖動、閘瓦溫度、車輪溫度、制動缸壓力的時間曲線圖及數值統計報表,圖7為寫入word報表后的列車速度曲線圖。繪圖處理及報表生成的時間為2 s,速度快、圖象精良、統計結果準確,在實現要求的同時提升了用戶體驗性。

圖6 地鐵車輛運行速度曲線全局預覽圖

圖7 寫入word報表后的列車速度曲線圖
基于MATLAB/GUI開發軟件平臺的離線數據處理與分析系統,運用多核計算方法快速導入數據,編制有效制動判斷算法,根據制動分析需求對某地鐵線路48 h的試驗數據進行分析。結果表明:使用MATLAB/GUI開發的數據分析處理系統,性能可靠,操作界面簡潔方便,人機交互功能良好;能夠減少人工處理數據的時間,提高處理分析的效率及準確性;能夠高效地導入數據,并能夠自由化對數據進行修正;自動報表功能可以一鍵生成所有特征物理量的時間軸曲線圖,統計制動初速、制動最大加速度、閘瓦及車輪峰值溫度等物理量,生成表格文件,獲得直觀的分析結果。系統設計采用模塊化設計架構,模塊調整靈活,后續升級方便,是城市軌道交通列車試驗離線數據處理的有用工具。
[1] 陳銳.數據分析用于地鐵運營設備維保管理[J].設備管理與維修,2016(3):9-11.
[2] 張森,蔡昌俊,何正友,等.地鐵綜合監控系統可靠性分析與數據管理軟件研制[J].交通運輸工程與信息學報,2007(4):89-94.
[3] 王海瑞,鄒繼良.基于程序自動化技術的通用報表的研究與實現[J].微計算機信息,2006(36):251-253.
[4] 周紅進,王秀森.基于MatLab的海量數據處理方法[J].計算機與數字工程,2012,(5):89-90.
[5] 徐海云,涂雄苓.海量數據導入與導出MATLAB的有效方法[J].數理統計與管理,2007(4):649-655.
[6] 焦勇,周喻虹.基于MATLAB的快速圖形化數據處理軟件設計[J].電子科技,2005(7):40-42.
[7] 任磊,杜一,馬帥,等.大數據可視分析綜述[J].軟件學報,2014(9):1909-1936.
On Metro Vehicle Test Data Analysis System Based on Matlab/GUI
ZHANG Liguo
Aiming at problems of huge amount of data on metro vehicle brake test,low efficient manual processing and error prone process,a programming language is developed based on Matlab/GUI method,it could solved problems like quick data reading and algorithmic of determination during the braking process,achieve functions of data pre-processing,data read,multi-curve and single-curve chart,and statistics collection of effective braking numbers,extract the peak temperature of wheel and brake shoes,generate report automatically.The test and analysis results show that this system could achieve automatic chart generation of velocity,acceleration,tread temperature,wheel temperature,pressure curve of brake cylinder at any time zones,the data processing is precise and in accordance with the initial data.
metro vehicle; brake test; data analysis; automated reporting
TP274+.2:U231
10.16037/j.1007-869x.2016.12.012
2016-08-07)