李良威,鄧云川,高 宏
AT供電方式牽引供電系統(tǒng)計算是高速電氣化鐵路供電設(shè)計的基礎(chǔ),是進行變壓器容量選擇、牽引網(wǎng)電壓水平和電能質(zhì)量評估的基本依據(jù)。為了更加精確地計算牽引供電系統(tǒng)各項技術(shù)指標(biāo),本文建立了AT供電方式的牽引供電系統(tǒng)模型,包含復(fù)雜的牽引網(wǎng)阻抗參數(shù)輸入模塊、牽引供電設(shè)施設(shè)置模塊以及數(shù)量龐大的行車實時數(shù)據(jù)處理及計算模塊。
該軟件開發(fā)具有以下特點:龐大的數(shù)據(jù)處理、豐富便捷的圖形處理和輸出、大量數(shù)據(jù)的分析。經(jīng)過多方案對比分析,決定采用混合編程技術(shù),利用Visual C++豐富的人機界面、高效的執(zhí)行效率、強大的底層交換數(shù)據(jù)能力和 Matlab強大的數(shù)值計算功能、便利的數(shù)據(jù)分析處理能力、優(yōu)秀的系統(tǒng)分析和圖形顯示技術(shù)。該技術(shù)充分利用了兩者優(yōu)勢,大大提高了工程分析計算、圖形處理的能力。軟件的開發(fā)提高了中鐵二院工程集團有限責(zé)任公司AT牽引供電系統(tǒng)的設(shè)計質(zhì)量、設(shè)計水平和生產(chǎn)效率,降低了設(shè)計人員的勞動強度,為設(shè)計工作提供強有力的技術(shù)支持。
Matlab是由美國mathworks公司發(fā)布的主要面對科學(xué)計算、可視化以及交互式程序設(shè)計的高科技計算環(huán)境。它將數(shù)值分析、矩陣計算、科學(xué)數(shù)據(jù)可視化以及非線性動態(tài)系統(tǒng)的建模和仿真等諸多強大功能集成在一個易于使用的視窗環(huán)境中,為科學(xué)研究、工程設(shè)計以及必須進行有效數(shù)值計算的眾多科學(xué)領(lǐng)域提供了一種全面的解決方案,并在很大程度上擺脫了傳統(tǒng)非交互式程序設(shè)計語言(如 C、Fortran)的編輯模式,代表了當(dāng)今國際科學(xué)計算軟件的先進水平。
Matlab的基本數(shù)據(jù)單位是矩陣,它的指令表達式與數(shù)學(xué)、工程中常用的形式十分相似,故用Matlab來解算問題要比用C、FORTRAN等語言完成相同的事情簡捷得多,在該平臺上,用戶只需寥寥數(shù)語就可以完成十分復(fù)雜的功能,大大提高了工程分析計算、圖形處理的效率。
但是,單獨編寫的 Matlab程序不能脫離其環(huán)境運行,只能在其所提供的平臺上使用,即用戶必須在安裝了 Matlab系統(tǒng)的計算機上執(zhí)行。并且Matlab在循環(huán)處理、可視化界面設(shè)計和程序設(shè)計的靈活性方面遜色于其他高級語言(C/C++)。
Visual C++是 Microsoft公司推出的開發(fā)Win32環(huán)境程序,面向?qū)ο蟮目梢暬删幊滔到y(tǒng)。它不但具有程序框架自動生成、靈活方便的類管理、代碼編寫和界面設(shè)計集成交互操作、可開發(fā)多種程序等優(yōu)點,而且通過簡單的設(shè)置就可使其生成的程序框架支持數(shù)據(jù)庫接口、OLE2,WinSock網(wǎng)絡(luò)、3D控制界面。
然而,Visual C++對于復(fù)雜的數(shù)值運算和繪圖功能的實現(xiàn)能力較弱,需要編制大量繁瑣復(fù)雜的函數(shù)。
Visual C++是當(dāng)前 Windows下的主要編程語言之一,其豐富的人機界面,高效的執(zhí)行效率能方便地形成應(yīng)用軟件中所需要的各種用戶界面和工具,并直接與系統(tǒng)及底層硬件交換數(shù)據(jù);而Matlab作為當(dāng)今世界上應(yīng)用最為廣泛的數(shù)學(xué)軟件,具有非常強大的數(shù)值計算、數(shù)據(jù)分析處理、系統(tǒng)分析、圖形顯示甚至符號運算的功能。采用 Visual C++與Matlab混合編程技術(shù),將兩者的優(yōu)勢完美結(jié)合,可以大大提高工程分析計算、圖像處理的效率,實現(xiàn)包含復(fù)雜數(shù)學(xué)計算的工程應(yīng)用性軟件的快速開發(fā)。
實現(xiàn)Visual C++和Matlab混合編程技術(shù)的方法有多種,根據(jù)其適用程度與功能范圍,常用的方法有以下幾種:
(1)通過Matlab引擎(Engine):采用C/S(客戶機/服務(wù)器)模式,Matlab作為后臺服務(wù)器,而Visual C++程序作為前臺客戶機,通過Windows的動態(tài)控件與服務(wù)器通信,實現(xiàn)Matlab Engine數(shù)據(jù)信息處理。用戶通過 Visual C++實現(xiàn)對 Matlab Engine的控制。采用該方法幾乎能利用Matlab全部功能,但是需要在機器上安裝Matlab軟件。
(2)通過Matlab C/C++數(shù)學(xué)函數(shù)庫:Matlab中提供了可以供C/C++語言調(diào)用的數(shù)學(xué)函數(shù)庫,其中的函數(shù)涉及到線形代數(shù)、數(shù)值分析、傅立葉變換、多項式計算、解微分方程等,通過它們可以在Visual C++中靈活、方便地實現(xiàn)Matlab中矩陣運算功能,但要求讀者對C/C++語言非常熟悉,該模式不能包括所有的 Matlab函數(shù),尤其是無法充分使用Matlab提供的詳盡的繪圖函數(shù)。
(3)通過 Matlab 編譯器(Compiler):Matlab編譯器(Compiler)能將*.m文件轉(zhuǎn)化成C/C++等不同類型的源代碼,并在此基礎(chǔ)上根據(jù)需要生成動態(tài)鏈接庫文件(*.dll),從而大大提高代碼的執(zhí)行效率。尤其是可獨立運行的應(yīng)用程序文件,不需要Matlab環(huán)境的支持,沒有安裝Matlab也能運行。
基于易用性、實用性、高效性和保密性的原則,針對AT牽引供電系統(tǒng)供電仿真計算軟件的特性,采用了本文討論的第3種方法。
AT供電方式牽引供電系統(tǒng)計算軟件是一個交流電氣化鐵道牽引供電的計算軟件,能夠完成變壓器容量、牽引網(wǎng)電壓水平、20 min電流分布、電能質(zhì)量評估、短路電流、軌地電位計算和仿真;并能為用戶顯示仿真實時曲線,便于設(shè)計分析。
該系統(tǒng)采用Visual C++與Matlab混合編程技術(shù),軟件的Visual C++界面是用戶操作的平臺,采用 Windows風(fēng)格,根據(jù)用戶輸入的行車參數(shù)、系統(tǒng)參數(shù)、牽引網(wǎng)參數(shù)以及設(shè)置供電布局方案,生成2 h的時實均勻分布負荷的牽引供電數(shù)據(jù),實現(xiàn)AT牽引供電系統(tǒng)的可視化編輯和運行。
軟件的核心數(shù)據(jù)處理和圖形繪制由 Matlab接口實現(xiàn),采用 Matlab語言為實現(xiàn)變壓器容量、牽引網(wǎng)電壓水平、電流分布、電能質(zhì)量評估、短路電流、軌地電位編寫的*.m文件,經(jīng)Matlab編譯器轉(zhuǎn)換生成相應(yīng)的動態(tài)鏈接庫文件(*.dll),在Visual C++主界面調(diào)用相關(guān)的功能函數(shù),利用Matlab強大的數(shù)值計算、數(shù)據(jù)分析處理、圖形顯示功能實現(xiàn)軟件的核心算法。實現(xiàn)整個系統(tǒng)的計算仿真,見圖1。

圖1 軟件系統(tǒng)主體結(jié)構(gòu)示意圖
以新建成都至貴陽鐵路樂山至貴陽段為例,成貴鐵路為雙線電氣化客運專線;列車設(shè)計行車速度200 km/h及以上;限制坡度20‰,個別地段30‰;牽引供電系統(tǒng)采用單相工頻(50 Hz)25 kV交流制AT供電方式,全線新建11座AT牽引變電所、11座 AT分區(qū)所和 19座 AT所;牽引變電所采用220 kV三相Vx牽引變壓器,接觸網(wǎng)采用全補償彈性鏈形懸掛JTMH-120 +CTMH -150+ LBGLJ -240(正饋線);行車采用250 km/h動車組CRH1(16輛編組),按3 min追蹤計算能力。根據(jù)以上條件及行車運量數(shù)據(jù)在VC++程序主界面設(shè)置相關(guān)的參數(shù),如圖2所示。

圖2 Visual C++程序主界面圖
通過 Matlab建立大型的矩陣,采用稀疏矩陣算法,大大提高了軟件的核心數(shù)據(jù)處理能力,計算精度高,并能方便地輸出各種實時曲線和統(tǒng)計圖形。其主要功能實現(xiàn)示例如圖3所示。

圖3 Matlab接口程序輸出結(jié)果示意圖
AT供電方式牽引供電系統(tǒng)計算采用 Visual C++與Matlab混合編程技術(shù),充分將兩者的優(yōu)勢結(jié)合起來,大大提高了工程分析計算、圖形處理的效率,實現(xiàn)了包含復(fù)雜數(shù)學(xué)計算的工程應(yīng)用性軟件的快速開發(fā)。其精確的計算能力和良好的圖形輸出界面為AT供電方式牽引供電系統(tǒng)的設(shè)計提供了強有力的技術(shù)支持。
[1]趙耀,呂運鵬.基于COM接口的VC++與MATLAB混合編程[J].計算機與信息技術(shù),2008,27(57):57-59.
[2]李傳軍.C語言與 MATLAB接口[M].北京:北京郵電大學(xué)出版社,2004.
[3]曹建猷.電氣化鐵道供電系統(tǒng)[M].北京:中國鐵道出版社,1987.
[4]鐵道部電氣化工程局電氣化勘測設(shè)計院.電氣化鐵道設(shè)計手冊-牽引供電系統(tǒng).北京:中國鐵道出版社.
[5]李群湛,賀建閩.牽引供電系統(tǒng)分析[M].成都:西南交通大學(xué)出版社,2007.