王志強(qiáng)
(蘇州大學(xué)城市軌道交通學(xué)院,215006,蘇州∥講師)
基于牽引計算的列車運(yùn)行仿真技術(shù)可充分利用現(xiàn)代計算機(jī)軟硬件技術(shù),真實、快速、準(zhǔn)確地計算列車運(yùn)行過程,為線路工程咨詢、工程設(shè)計、運(yùn)營管理提供強(qiáng)有力的科技設(shè)計手段和輔助分析與決策工具,具有重要的現(xiàn)實意義。然而,傳統(tǒng)的列車運(yùn)行仿真算法運(yùn)算量大、運(yùn)算效率低,大大限制了其應(yīng)用范圍。為此,本文從常規(guī)算法的缺點和不足出發(fā),充分發(fā)揮日益普及的多核中央處理器(CPU)的運(yùn)算優(yōu)勢,提出基于并行計算的列車運(yùn)行仿真快速算法。該算法能在不影響運(yùn)算精度的前提下大大提升運(yùn)算效率,為拓展列車運(yùn)行仿真技術(shù)的應(yīng)用范圍奠定基礎(chǔ)。
以單質(zhì)點模型為例,列車受到的外力全部作用在質(zhì)點上,包括:牽引力Fqy,基本阻力Wjz,由于曲線、坡道和隧道等產(chǎn)生的附加阻力Wfz,制動力Fzd,列車自身的重力Pg,線路對列車的支持力N 等(如圖1所示)。
圖1 列車受力分析
影響列車運(yùn)行過程的外力主要有 Fqy、Wjz、Wfz和Fzd。由它們矢量疊加產(chǎn)生的合力,是推動列車運(yùn)行狀態(tài)不斷變化的源泉。
1)單位牽引力fqy:其取值根據(jù)牽引特性數(shù)據(jù)(fqy=f1(v)),通過線性插值法求得任意速度點的單位牽引力值。
2)單位基本阻力wjz:根據(jù)公式wjz=a+bv+cv2求得,其中a、b、c 為與車輛有關(guān)的經(jīng)驗常數(shù)。
3)單位附加阻力wfz:包括單位坡度附加阻力wi(wi=i,i 為線路坡度),單位曲線附加阻力wr(wr=A/R,其中A =600 為經(jīng)驗常數(shù),R 是線路曲線半徑)和單位隧道附加阻力 ws(ws=0.000 13Ls,Ls為隧道長度)三部分。
4)單位制動力fzd:根據(jù)制動特性曲線(fzd=fz(v))采取線性插值法計算任意速度的單位制動力。
列車運(yùn)行過程中的各種工況包括:起動工況,加速工況,惰行工況及制動工況。各工況下列車所受單位合力c 如下:
1)起動工況下:
式中,e 為單位起動阻力的經(jīng)驗值。
2)加速工況下:
3)惰行工況下:
4)制動工況下:
根據(jù)所受的單位合力c,即可求得列車瞬時加速度a 如下:
式中:
C——列車受到的合力;
m——列車總質(zhì)量;
γ——回轉(zhuǎn)質(zhì)量系數(shù),通常取0.06;
g——重力加速度。
然后按照式(6)所示速度-距離基本迭代計算公式,計算列車運(yùn)行過程中的相關(guān)數(shù)據(jù)。
式中:
ai——第i 步長時的列車瞬間加速度;
ci——第i 步長時列車受到的單位合力;
Si——第i 步長時列車的位置;
vi——第i 步長時列車的速度;
Δt——每個步長的時間間隔。
列車制動距離是指自制動開始到停車,列車所通過的距離。為了保證城市軌道交通列車的準(zhǔn)確停車,必須要滿足列車到達(dá)車站指定位置時速度為零。
為了確保列車進(jìn)站精確停車,仿真計算過程中的每一步都需要調(diào)用算法來判斷列車在當(dāng)前狀態(tài)(vi,Si)下若采取制動,能否滿足列車到站時速度為零的要求。所以,計算過程中需要頻繁調(diào)用“準(zhǔn)確停站判斷算法”,如圖2所示。
圖2 列車準(zhǔn)確停站的判斷算法
列車運(yùn)行仿真常規(guī)算法流程的具體步驟如下:
1)取得線路平縱斷面、列車牽引特性、列車制動力等基礎(chǔ)數(shù)據(jù)。
2)根據(jù)運(yùn)營的限速要求和線路曲線對速度的限制要求,將列車的運(yùn)行線路分成若干個限速分段,并且判斷限速分段之間能否滿足列車的合理過渡,即列車從限速為vi的分段向限速為vj的分段過渡時列車制動能力能否滿足要求。
3)初始化列車的速度、位移、時間等相關(guān)參數(shù)。
4)計算在列車起動過程中,每一個步長時間內(nèi)的列車速度值、時間值和位移值,并將數(shù)據(jù)保存。
5)判斷列車在下一個步長內(nèi),如果采取牽引工況的話,能否滿足列車制動準(zhǔn)確停站的要求。如果滿足條件,則計算列車在下一個步長內(nèi)牽引工況下的列車速度值、時間值和位移值,并將數(shù)據(jù)保存;反之,則轉(zhuǎn)步驟6)。
6)判斷列車在下一個步長內(nèi),如果采取惰行工況的話,能否滿足列車制動準(zhǔn)確停站的要求。如果滿足條件,則計算列車在下一個步長內(nèi)惰行工況下的列車速度值、時間值和位移值,并將數(shù)據(jù)保存;反之,則轉(zhuǎn)步驟7)。
7)計算列車在下一個步長內(nèi)制動工況下的列車速度值、時間值和位移值,并將數(shù)據(jù)保存。
8)判斷列車是否到達(dá)終點,如果是,則轉(zhuǎn)步驟9);反之,則轉(zhuǎn)步驟5)。
9)將每個步長內(nèi)計算得到的列車運(yùn)行數(shù)據(jù)在圖上表示出來,并用短直線連接,以形成列車牽引的速度-距離(v-S)曲線和時間-距離(T-S)曲線。
根據(jù)上述常規(guī)算法的計算流程,不難發(fā)現(xiàn)該算法存在以下不足:
1)仿真算法采用單線程順序計算,列車只能從起點開始,按照里程依次前行,途徑沿線的各個區(qū)間和車站,最后到達(dá)終點。
2)計算過程中的每一個仿真步長都需要進(jìn)行1 至2 次的制動起點反向推算,才能判斷出擬采用的牽引工況是否滿足要求。而每次的制動起點反向推算,都需要調(diào)用圖2所示的反向遞推試湊算法來尋找制動起點。這就使得算法的計算量非常巨大,計算過程耗時很長,不利于實時仿真的實現(xiàn),也限制了列車運(yùn)行仿真技術(shù)的推廣應(yīng)用。
為了克服上述常規(guī)算法的不足,本文在下述兩方面對常規(guī)算法進(jìn)行了改進(jìn)。
充分利用日益普及的多核CPU 的計算優(yōu)勢,將線路上每個區(qū)間的列車運(yùn)行過程拆分為一個獨(dú)立的運(yùn)算單元,實現(xiàn)各區(qū)間的列車運(yùn)行過程并行計算,待所有區(qū)間運(yùn)行過程完成之后,再將計算數(shù)據(jù)匯總和處理。
圖3所示為常規(guī)算法的順序計算流程,按照里程順序依次計算各區(qū)間的運(yùn)行數(shù)據(jù),抵達(dá)線路終點后仿真計算完成。
圖3 單線程順序計算的流程示意圖
圖4所示為本文采用的并行計算算法流程。因各區(qū)間的運(yùn)行過程被當(dāng)做一個獨(dú)立的運(yùn)算單元,因此與圖3所示的順序計算流程相比,并行計算在計算開始前的準(zhǔn)備和計算結(jié)束后的處理上均有所不同。
圖4 多線程并行計算的流程示意圖
1)計算開始前的準(zhǔn)備工作:將各運(yùn)算單元的列車初始位置設(shè)為區(qū)間起點車站的中心線位置,列車初始速度設(shè)為車站控制速度,初始仿真時鐘設(shè)為零。
式中:
si,0,vi,0,ti,0——分別為第 i 個運(yùn)算單元的列車位移、列車速度和仿真時間的初始值;
si,s1,vi,s1——分別為第 i 個運(yùn)算單元所對應(yīng)的區(qū)間起點車站的中心線位置和該起點車站所規(guī)定的車站控制速度。
2)計算結(jié)束后的處理工作:按區(qū)間里程順序,按式(8)所示的換算規(guī)則,依次收集各區(qū)間的運(yùn)行數(shù)據(jù),得到完整的全線列車運(yùn)行仿真數(shù)據(jù)。
式中:
sk,vk,tk——為匯總后的第 k 組計算結(jié)果數(shù)據(jù)中的列車位移、列車速度和仿真時間;
si,j,vi,j,ti,j——為第 i 個運(yùn)算單元的第 j 組計算結(jié)果數(shù)據(jù)中的列車位移、列車速度和仿真時間。
與順序計算一樣,并行計算忽略了列車每次抵達(dá)區(qū)間終點站時產(chǎn)生的位置誤差和速度誤差,即每次列車開始從區(qū)間起點站出發(fā)時,其位置和速度都默認(rèn)為起點車站規(guī)定的標(biāo)準(zhǔn)值。
與順序計算相比較,并行計算雖然在計算開始前的準(zhǔn)備和計算結(jié)束后的處理上有額外的工作,但從式(7)和式(8)可知,其主要是簡單的賦值運(yùn)算。因此,并行計算的綜合效率要遠(yuǎn)高于順序計算。
采用預(yù)先計算制動曲線的方法,當(dāng)列車v-s 坐標(biāo)點遠(yuǎn)離制動曲線時,只進(jìn)行限速要求判斷不進(jìn)行制動起點推算;當(dāng)列車v-s 坐標(biāo)點接近制動曲線時,才啟動制動起點推算,以尋找最佳的制動起點。
如圖5所示,常規(guī)算法的制動起點反向推算需列車從A 站出發(fā)時起,至列車v-s 曲線點抵達(dá)制動曲線時止,其推算運(yùn)行距離如圖5 中的L常規(guī)。
圖5 減少制動起點反向推算次數(shù)的技術(shù)示意圖
從圖5 中可知,大量的反向制動推算工作是沒有必要的,只有當(dāng)列車v-s 曲線點靠近制動曲線時,才有必要進(jìn)行制動反向推算。為此,可從制動曲線與限速紅線的交點所對應(yīng)的距離s1處開始進(jìn)行反向推算,則所需的推算距離為圖5所示的L推算,其遠(yuǎn)小于L常規(guī)。從而大大減少了列車運(yùn)行過程中的制動起點反向推算次數(shù),減少了計算量,大大地提升了列車運(yùn)行計算的速度。
在圖6 中,與常規(guī)算法的流程一樣,首先進(jìn)行基礎(chǔ)數(shù)據(jù)的讀取和限速分段的劃分;然后,按照區(qū)間數(shù)量劃分運(yùn)算單元,列車在每個區(qū)間的單向運(yùn)行過程被劃分為一個獨(dú)立的線程運(yùn)算單元;再后,主線程將各個區(qū)間范圍內(nèi)的線路基礎(chǔ)數(shù)據(jù)、限速要求數(shù)據(jù)和列車性能數(shù)據(jù)傳遞給對應(yīng)的線程運(yùn)算單元,做好啟動計算前的準(zhǔn)備工作;接著,主線程給每一個線程運(yùn)算單元傳達(dá)啟動計算命令,并不斷偵聽各線程運(yùn)算單元的計算進(jìn)度,直至所有線程運(yùn)算單元完成計算;最后,主線程收集各線程運(yùn)算單元的計算結(jié)果,并進(jìn)行處理和匯總,得到全線路范圍內(nèi)的列車運(yùn)行仿真數(shù)據(jù),并將其保存后繪制v-s、t-s 曲線,結(jié)束本次計算。
在圖7 中,線程運(yùn)算單元首先接收到主線程傳遞來的線路基礎(chǔ)數(shù)據(jù)、限速要求數(shù)據(jù)和列車性能數(shù)據(jù),并找出區(qū)間內(nèi)每個速度控制點的控制位置和控制速度;然后,按照反向遞推法求出每個速度控制點對應(yīng)的制動曲線,找出該制動曲線與限速紅線的交點,并記錄其位置信息s1,i。接著,將列車初始位置設(shè)為區(qū)間起始車站的中心線位置,將列車的初始速度設(shè)為區(qū)間起始車站的控制速度,將仿真時鐘設(shè)為零,并開始仿真計算;在每一個仿真步長內(nèi),首先判斷列車當(dāng)前位置 sk是否小于 s1,i,若 Sk< s1,i,則列車在下一步長工況選擇時,只需判斷是否滿足限速紅線要求即可,無需進(jìn)行制動起點推算;反之,若sk≥s1,i,則列車在下一步長工況選擇時,需要進(jìn)行制動起點推算,判斷是否同時滿足制動停車和限速紅線兩個要求;最后,當(dāng)列車到達(dá)區(qū)間終點車站的中心線位置時,保存仿真數(shù)據(jù)并結(jié)束計算。
圖6 基于并行計算的列車運(yùn)行仿真算法流程圖
圖8所示為采用改進(jìn)算法的一個列車運(yùn)行仿真效果實例圖。圖8 中設(shè)有10 個車站,A 站~J 站,選用編組相同的列車進(jìn)行追蹤運(yùn)行,仿真步長取0.1 s,其它參數(shù)略。列車從A 站起動到J 站停車,在中間各站均停車30 s,列車的運(yùn)行曲線如圖8所示。在i7-920(2.66 GHz 四核八線程)的微機(jī)平臺上,在計算參數(shù)完全相同的條件下采用改進(jìn)算法完成本次運(yùn)算共用時6.2 s,而常規(guī)算法完成本次運(yùn)算則耗時274 s??梢?,本文所述的并行計算方法在多核CPU平臺上的計算效率要遠(yuǎn)高于常規(guī)算法,且其效率的提高值隨著CPU 內(nèi)核數(shù)的增加而增加。
本文提出了一種軌道交通列車運(yùn)行仿真計算的快速算法,能在不影響計算精度的前提下大大地提升列車運(yùn)行仿真計算的運(yùn)算速度,克服了列車運(yùn)行仿真常規(guī)算法運(yùn)算量大、計算速度慢等缺點。該算法可應(yīng)用于列車運(yùn)行仿真、多列車運(yùn)行模擬、列車運(yùn)行延誤及其傳播特點分析等相關(guān)技術(shù)領(lǐng)域,可提升系統(tǒng)分析計算的效率。
圖7 單個運(yùn)算單元的算法流程圖
圖8 基于牽引計算的列車運(yùn)行仿真效果實例圖
[1]劉海東,毛保華,何天健,等.不同閉塞方式下城軌列車追蹤運(yùn)行過程及其仿真系統(tǒng)的研究[J].鐵道學(xué)報,2005(2):120.
[2]石紅國,彭其淵,郭寒英.城市軌道交通牽引計算模型[J]. 交通運(yùn)輸工程學(xué)報,2005(4):20.
[3]王志強(qiáng),何嘉杭.故障列車救援情況下的多列車運(yùn)行仿真研究[J].城市軌道交通研究,2013(1):19.