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

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

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

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