白小偉,段成剛,郭 磊
Matlab 在電氣工程及牽引供電系統(tǒng)計算中應用廣泛,尤其是在電路網(wǎng)絡模型的構(gòu)建、方程求解、數(shù)據(jù)處理等方面,具有簡單、智能、高效等優(yōu)點。由于牽引計算專業(yè)性強、模型復雜、數(shù)據(jù)量大,早期通過編寫腳本語言進行的計算多采用過程式的編程,但是面對系統(tǒng)規(guī)模的增加,用戶數(shù)據(jù)交互頻繁,這種過程式編程在模型創(chuàng)建、算法分析、數(shù)據(jù)交互等方面局限性很大,無法滿足工程需求。如果采用面向?qū)ο蟮木幊蹋∣OP)方式,將極大地簡化整個工程的仿真計算,降低計算難度。
列車牽引計算仿真以研究列車牽引運動力學及電氣特性為基礎,借助算法實現(xiàn)列車牽引過程的模擬,最終得到工程預期結(jié)果。本文采用基于Matlab 的面向?qū)ο缶幊蹋∣OP)方式,將機車、線路、控制策略進行抽象,采用UML 圖對機車牽引仿真計算的關鍵步驟進行說明,其方案的代碼實現(xiàn)相比采用C#、Java 等編程更加簡單高效。
在Matlab OOP 中實現(xiàn)類設計,其方法與采用C#、Java 等語言類似,同樣離不開類的封裝、繼承、多態(tài)的特性,只是代碼實現(xiàn)上發(fā)生了變化。Matlab 的OOP 代碼更加簡單。
Matlab 類定義采用“classdef…end”語句,其中屬性定義采用“properties...end”,方法定義采用“methods...end,最后采用腳本對類實現(xiàn)封裝。程序中采用“<”符號實現(xiàn)繼承,提高代碼的復用性;在設計結(jié)構(gòu)中,采用類的層次化設計,從虛擬到具體逐步演化,靈活應用多態(tài)增強程序的擴展性能。
采用Matlab 類實現(xiàn)機車類的定義示例如圖1所示。由于類腳本編程中省略了變量類型的定義,相比C#和Java 要智能很多,便于用戶將精力集中于本專業(yè)算法編程。
圖1 Mat lab 類設計程序示意圖
列車牽引計算軟件的操作過程通過輸入機車、線路、編組、運行等數(shù)據(jù),實現(xiàn)牽引仿真計算。采用UML 圖對模塊進行說明,如圖2 所示。
圖2 軟件模塊化示意圖
在本軟件中,線路數(shù)據(jù)是通過Matlab 讀取Excel 表格數(shù)據(jù),完成線路的車站、坡道、彎道等數(shù)據(jù)提取,存儲在“cell”數(shù)組中?!癱ell”元包數(shù)據(jù)類型是Matlab 獨有,便于多維數(shù)據(jù)操作。線路數(shù)據(jù)表示意如表1 所示。
表1 線路數(shù)據(jù)表示意
應用Matlab 構(gòu)建機車、車輛類,如圖3 所示。采用 UML 類圖簡明直觀展示了類的構(gòu)建方法,及類之間的泛化關系,利于機車模型多態(tài)的實現(xiàn),提高代碼復用性。
圖3 機車類
除了線路、機車信息數(shù)據(jù)的建模,列車牽引計算中最重要的是列車運動控制邏輯的實現(xiàn),即對發(fā)車、停站、加速、勻速、制動等進行控制。本文采用給定速度曲線的跟蹤算法,控制列車的運行速度在目標速度值附近。其控制邏輯中,關鍵點是通過實時提取線路位置信息、列車運行狀態(tài),與列車實際位置進行對比,經(jīng)過信息綜合后,調(diào)用牽引計算算法,如圖4 所示。例如,在仿真過程中,機車位置處于下坡區(qū)段,速度未達到目標值,則列車牽引狀態(tài)標志位置1,否則置0。這樣可以實時調(diào)整機車牽引狀態(tài),兼顧停站、限速、信號機等實際控制條件。所有邏輯判斷均在牽引算法庫中實現(xiàn)。
圖4 列車運行邏輯判斷時序圖
機車類型為SS4,車輛類型為滑動軸承DG4,限于篇幅,機車牽引特性、制動特性曲線、車輛閘瓦壓力等數(shù)據(jù)參見《TB/T 1407.1-2018 列車牽引計算 第1 部分 機車牽引式列車》。特性曲線擬合采用Matlab 線性擬合函數(shù)。列車牽引質(zhì)量為100 t,停站時分300 s,仿真步長為0.1 s。
機車運行速度仿真曲線如圖5 所示,圖中顯示全線車站分布及里程,機車在車站發(fā)車、停站的過程模擬在速度曲線中可以看出。區(qū)間限速80 km/h,采用速度跟蹤算法,使機車速度保持恒定。
圖5 機車牽引計算速度仿真曲線
牽引計算的合力曲線如圖6 所示,為說明機車運動過程中出力狀態(tài),圖中將坡道數(shù)據(jù)放大10 倍后疊加在合力曲線中,驗證在上/下坡道過程中機車的出力,仿真結(jié)果顯示正確。
按照牽引計算原理計算得到機車合力后,通過推導計算可得到機車瞬時功率、電流值,同時可以得出功率及電流的統(tǒng)計值等,本文不做重點論述。
由于本研究中列車運行控制是基于給定速度曲線的跟蹤控制,速度曲線、合力曲線出現(xiàn)類似脈寬特性實屬正常。
圖6 機車牽引合力/速度結(jié)果
本文采用Matlab 面向?qū)ο螅∣OP)編程,給出了電氣化鐵路牽引計算算法的設計方案,實現(xiàn)了列車運行建模與運動控制計算,最終得到了列車合力、速度曲線。通過對列車牽引過程的仿真計算,了解機車出力狀況,可為后續(xù)計算提供依據(jù)。由于面向?qū)ο蟮木幊碳夹g靈活性高,文中尚有諸多不足之處,待將來進一步完善。