張 淼,楊志杰,莫小凡,鄭理華
(1.中國(guó)鐵道科學(xué)研究院研究生部,北京 100081;2.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司通信信號(hào)研究所,北京 100081;3.中國(guó)鐵道科學(xué)研究院集團(tuán)有限公司標(biāo)準(zhǔn)計(jì)量研究所,北京 100081)
測(cè)速測(cè)距系統(tǒng)是列控車載設(shè)備控制列車安全運(yùn)行的前提和基礎(chǔ),完成列車運(yùn)行速度、走行距離等信息的計(jì)算[1],由于測(cè)速測(cè)距系統(tǒng)對(duì)安全性和可靠性要求高,采用安全計(jì)算機(jī)平臺(tái)設(shè)計(jì)是必然趨勢(shì),同步表決技術(shù)是平臺(tái)的關(guān)鍵技術(shù)之一。
目前,使用最多的列控車載設(shè)備安全計(jì)算機(jī)平臺(tái)是二乘二取二和三取二結(jié)構(gòu)。其中,二乘二取二結(jié)構(gòu)在可靠性和安全性上有明顯優(yōu)勢(shì)[2-3],在列控車載系統(tǒng)、聯(lián)鎖系統(tǒng)、25 Hz軌道電路采集系統(tǒng)中已得到廣泛應(yīng)用[4-6]。二乘二取二結(jié)構(gòu)中的2個(gè)MCU(微控制單元)同步技術(shù)是冗余設(shè)計(jì)的核心,是表決的基礎(chǔ),主要有時(shí)鐘同步和軟件任務(wù)級(jí)同步,時(shí)鐘同步又包括緊耦合同步和松耦合同步[7]。蔡煊等[7]采用公共外時(shí)鐘作為參考時(shí)鐘信號(hào),基于時(shí)鐘漂移率有界模型對(duì)本地時(shí)鐘進(jìn)行漂移補(bǔ)償;陳梅等[8]設(shè)定了任務(wù)起始、輸入數(shù)據(jù)和運(yùn)算輸出3個(gè)同步點(diǎn),通過(guò)比較數(shù)據(jù)的一致性來(lái)判斷單機(jī)是否故障;楊芳萍[9]設(shè)計(jì)了基于動(dòng)態(tài)表決控制算法,實(shí)現(xiàn)了多通道系統(tǒng)中的動(dòng)態(tài)同步。
數(shù)據(jù)表決方法方面,王瑞等[10]通過(guò)采用拼接方式進(jìn)行輸出來(lái)確保數(shù)據(jù)的安全性和可靠性,可見(jiàn)主從MCU的計(jì)算結(jié)果必須完全一致。然而數(shù)字量的同步表決方法不能滿足測(cè)速測(cè)距系統(tǒng)的要求,楊文閣[11]等針對(duì)模擬量的特點(diǎn),提出容差范圍內(nèi)選取主處理單元數(shù)據(jù)的處理方式,容差范圍外按照故障安全原則采取措施;袁順[12]等將大量表決算法分類為標(biāo)準(zhǔn)型、混合型和特定型表決算法,同時(shí)橫向比較了算法的復(fù)雜度及可靠性;孫軍[13]設(shè)計(jì)了一種基于歷史信息的改進(jìn)型帶權(quán)重值的表決算法,記錄歷史數(shù)據(jù)有效次數(shù)并動(dòng)態(tài)分配權(quán)重值,當(dāng)某個(gè)表決周期中存在數(shù)據(jù)失效時(shí),仍可得到有效的表決輸出結(jié)果。
本文以3個(gè)測(cè)速測(cè)距周期為單位進(jìn)行任務(wù)交互,結(jié)合測(cè)速測(cè)距物理量的意義,給出速度、距離的差異限制條件。在規(guī)定周期內(nèi),根據(jù)表決結(jié)果判定單系的表決狀態(tài),分別使用內(nèi)插和外推法、最小二乘擬合法和最大速度法進(jìn)行表決輸出,利用實(shí)驗(yàn)室測(cè)速測(cè)距平臺(tái)實(shí)現(xiàn)對(duì)比測(cè)試。研究成果可為測(cè)速測(cè)距平臺(tái)提供一種同步表決方法。
實(shí)驗(yàn)室搭建了一套基于二乘二取二安全計(jì)算機(jī)平臺(tái)的測(cè)速測(cè)距系統(tǒng),主備系冗余設(shè)計(jì),每系中包含2個(gè)MCU,為避免2個(gè)MCU在同一系運(yùn)行時(shí)存在潛在的共因失效[14],測(cè)速測(cè)距系統(tǒng)2個(gè)MCU擁有獨(dú)立的電源和晶振。每個(gè)MCU獨(dú)立運(yùn)算,并將各自的計(jì)算結(jié)果,包含列車運(yùn)行速度、速度的置信區(qū)間、走行距離和距離的置信區(qū)間等,通過(guò)SPI接口完成任務(wù)級(jí)同步,收到對(duì)方MCU的數(shù)據(jù)后進(jìn)行數(shù)據(jù)表決。若表決通過(guò),則將最終表決輸出結(jié)果通過(guò)CAN總線發(fā)送給主機(jī);若表決未通過(guò),則發(fā)送故障信息。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 二乘二取二測(cè)速測(cè)距系統(tǒng)結(jié)構(gòu)
為滿足測(cè)速測(cè)距系統(tǒng)對(duì)實(shí)時(shí)性和精度的要求,采用系內(nèi)的任務(wù)級(jí)同步,通過(guò)在任務(wù)中設(shè)立1個(gè)或多個(gè)表決點(diǎn)進(jìn)行同步比較來(lái)完成一致性檢查[15]。
2個(gè)MCU獨(dú)立運(yùn)算,由于測(cè)速測(cè)距系統(tǒng)對(duì)計(jì)算結(jié)果精度要求高,每個(gè)MCU運(yùn)行周期短,如果每個(gè)周期多個(gè)任務(wù)點(diǎn)表決,會(huì)帶來(lái)系統(tǒng)的開(kāi)銷負(fù)擔(dān)。測(cè)速測(cè)距系統(tǒng)需實(shí)時(shí)上傳速度、距離信息到列控車載主機(jī),考慮到主機(jī)數(shù)據(jù)接收處理能力和測(cè)速測(cè)距精度要求,故設(shè)定3個(gè)測(cè)速測(cè)距周期為一個(gè)任務(wù)周期。
SPI接口輸入輸出設(shè)置不同存儲(chǔ)單元,SPI必須滿足接收到對(duì)方信息后才能發(fā)送的機(jī)制,這樣讀寫操作就可以分時(shí)進(jìn)行,在輸出處設(shè)置同步檢查點(diǎn)進(jìn)行數(shù)據(jù)交互,如果在規(guī)定時(shí)間內(nèi)收到信息,則判定為2個(gè)MCU同步,否則判定為異步[16]。任務(wù)級(jí)同步允許處理器之間存在一定容許范圍內(nèi)的異步度[7]。
任務(wù)級(jí)同步劃分為初始化階段和正常執(zhí)行階段,2個(gè)MCU分別記為MCUA和MCUB,如圖2所示。
圖2 任務(wù)級(jí)同步過(guò)程
同步過(guò)程:
Step1初始化階段,第一次計(jì)算得到速度和距離后,記錄本地時(shí)間戳T1;交互得到對(duì)方時(shí)間戳T2,計(jì)算初始化階段時(shí)間戳偏差ΔT=|T1-T2|;
Step2對(duì)2個(gè)MCU進(jìn)行同步校正,比較2個(gè)MCU的時(shí)間戳,在較小時(shí)間戳基礎(chǔ)上增加ΔT;
Step3正常執(zhí)行階段,2個(gè)MCU各自計(jì)算速度、距離,交互時(shí)間戳和計(jì)算結(jié)果,進(jìn)行數(shù)據(jù)表決,并將表決結(jié)果和單系狀態(tài)信息發(fā)送給對(duì)方MCU;
Step4各自判斷2個(gè)MCU的表決狀態(tài),若均為正常態(tài),則MCUB計(jì)算CRC,MCUA將表決結(jié)果和MCUB計(jì)算的CRC拼成一幀數(shù)據(jù),周期性輸出并記錄輸出時(shí)間戳T3;
Step5 MCUB雖不輸出,但記錄對(duì)應(yīng)輸出時(shí)間戳為T4,交互時(shí)間戳,計(jì)算正常執(zhí)行階段時(shí)間偏差ΔT=|T3-T4|,若超過(guò)設(shè)定同步時(shí)間差閾值未收到回復(fù)信息,則轉(zhuǎn)Step6,否則回Step2;
Step6同步失敗,導(dǎo)向安全側(cè),輸出本系故障信息。
本次提出的一種速度和距離的數(shù)據(jù)表決方法是在安全平臺(tái)設(shè)計(jì)和系內(nèi)同步的前提條件下完成的,當(dāng)二取二表決器接收到2個(gè)MCU的計(jì)算結(jié)果后,需依次判斷數(shù)據(jù)是否有效,單系所處的表決狀態(tài),用以確定表決輸出的最終結(jié)果,對(duì)應(yīng)本節(jié)介紹的表決條件、表決狀態(tài)和表決輸出3個(gè)部分。
測(cè)速測(cè)距系統(tǒng)計(jì)算結(jié)果主要包含本周期計(jì)算結(jié)果時(shí)間戳(T_Datation)、上周期計(jì)算結(jié)果時(shí)間戳(T_Datation_before)、速度(V_Odo_Train)、速度上偏(Dv_Odo_Pos)、速度下偏(Dv_Odo_Neg)、距離、距離上偏和距離下偏等模擬量,無(wú)法通過(guò)一致性判斷來(lái)表決,以速度為例給出差異限制條件,距離表決同理。
結(jié)合上述變量的物理意義,MCUA的速度范圍為(A.V_Odo_Train-A.Dv_Odo_Neg,A.V_Odo_Train+A.Dv_Odo_Pos),MCUB的速度范圍為(B.V_Odo_Train-B.Dv_Odo_Neg,B.V_Odo_Train+B.Dv_Odo_Pos)。
比較A.V_Odo_Train-A.Dv_Odo_Neg和B.V_Odo_Train-B.Dv_Odo_Neg,其中,較大值設(shè)為max_min,較小值設(shè)為min_min;同理比較A.V_Odo_Train+A.Dv_Odo_Pos和B.V_Odo_Train+B.Dv_Odo_Pos,其中,較大值為max_max,較小值為min_max。
比較|A.Dv_Odo_Pos-B.Dv_Odo_Pos|和|A.Dv_Odo_Neg-B.Dv_Odo_Neg|,其中,較大值設(shè)為Offset。
測(cè)速測(cè)距速度相關(guān)量差異限制條件如下。
(1)若A.T_Datation<=A.T_Datation_before或B.T_Datation<=B.T_Datation_before,則時(shí)間判決異常,否則時(shí)間判決正常;
(2)若|A.V_Odo_Train-B.V_Odo_Train|>ΔVlim,2個(gè)MCU的速度差若超過(guò)速度差容忍門限,則速度超限;
(3)當(dāng)列車速度≥速度閾值,一般設(shè)為5 km/h,若min_max 圖3 速度誤差異常判定示意 (4)若Offset>Offsetlim,則速度誤差超限。 測(cè)速測(cè)距的單系狀態(tài)由2個(gè)MCU的數(shù)據(jù)表決結(jié)果推得,包含初始化態(tài)、正常態(tài)、轉(zhuǎn)換態(tài)和故障態(tài)4種狀態(tài),工作狀態(tài)切換關(guān)系如圖4所示。 圖4 測(cè)速測(cè)距系統(tǒng)狀態(tài)切換關(guān)系 在判斷單系狀態(tài)前,首先要對(duì)每個(gè)MCU的計(jì)算結(jié)果進(jìn)行判斷,若計(jì)算結(jié)果未越界且有效,則此MCU的狀態(tài)為正常態(tài),否則為故障態(tài)。 二取二系內(nèi)的2個(gè)MCU中,若任意1個(gè)MCU為初始化態(tài),則該系狀態(tài)為初始化態(tài);若任意1個(gè)MCU為故障態(tài),則該系狀態(tài)轉(zhuǎn)為故障態(tài);數(shù)據(jù)表決結(jié)果中若有1個(gè)表決條件不滿足,則系統(tǒng)進(jìn)入轉(zhuǎn)換態(tài);進(jìn)入轉(zhuǎn)換態(tài)后計(jì)時(shí),若3個(gè)周期內(nèi)仍沒(méi)有恢復(fù)為正常態(tài),則系統(tǒng)進(jìn)入故障態(tài)。 測(cè)速測(cè)距單系的4種不同表決狀態(tài)決定了表決輸出結(jié)果:當(dāng)表決狀態(tài)為初始化態(tài)時(shí),賦初始值輸出;當(dāng)表決狀態(tài)為故障態(tài)時(shí),賦默認(rèn)值輸出;當(dāng)表決狀態(tài)為正常態(tài)或轉(zhuǎn)換態(tài)時(shí),需要通過(guò)算法計(jì)算表決輸出結(jié)果。 目前,實(shí)際工程中普遍應(yīng)用最大速度法,當(dāng)2個(gè)MCU計(jì)算的速度不完全一致時(shí),導(dǎo)向安全側(cè),選其中速度較大值作為輸出。選取內(nèi)插和外推法[17-18]、最小二乘擬合法和最大速度法進(jìn)行對(duì)比,得到最優(yōu)的表決輸出算法。最小二乘擬合法是以MCUA和MCUB本周期和上周期的計(jì)算結(jié)果作為擬合點(diǎn),由于列車運(yùn)動(dòng)存在慣性,速度在短時(shí)間內(nèi)不會(huì)發(fā)生突變,故估計(jì)列車運(yùn)行速度為線性函數(shù)v=a0+a1t,解得a0、a1,代入車載主機(jī)當(dāng)前時(shí)間Ttrain,即可求得列車運(yùn)行速度Vtrain=a0+a1×Ttrain,走行距離是速度隨時(shí)間積分。 車載主機(jī)需實(shí)時(shí)監(jiān)控列車的運(yùn)行速度和走行距離,對(duì)測(cè)速測(cè)距精度要求很高。測(cè)速測(cè)距單系2個(gè)MCU間只是任務(wù)級(jí)同步,無(wú)法做到時(shí)鐘同步,采用內(nèi)插法可以得到任意時(shí)刻測(cè)速測(cè)距系統(tǒng)計(jì)算的速度和距離值。車載主機(jī)和測(cè)速測(cè)距系統(tǒng)間不可避免地存在通信延時(shí),影響測(cè)速測(cè)距精度,故需用當(dāng)前測(cè)速測(cè)距系統(tǒng)得到的速度進(jìn)行外推,得到可供車載主機(jī)使用的準(zhǔn)確列車運(yùn)行速度和走行距離。 設(shè)MCUA上一周期、當(dāng)前周期兩點(diǎn)Apre、Arec的坐標(biāo)分別為(TApre,VApre)、(TArec,VArec),由圖5可以看出,MCUA當(dāng)前時(shí)間TArec比MCUB當(dāng)前時(shí)間TBrec超前。 圖5 內(nèi)推外插法示意 由拉格朗日一次多項(xiàng)式[19],可得MCUB當(dāng)前時(shí)間TBrec時(shí)刻的內(nèi)插速度Vin (1) 若運(yùn)行方向向前,Brec的內(nèi)插走行距離Sin為 Sin=SArec-Vin×(TArec-TBrec) (2) 若方向向后,Brec的內(nèi)插走行距離Sin為 Sin=SArec+Vin×(TArec-TBrec) (3) 若方向未知,Brec的內(nèi)插走行距離Sin為 (4) 由于通信延時(shí)的存在,需采用外推法來(lái)得到準(zhǔn)確的實(shí)時(shí)速度,設(shè)測(cè)速測(cè)距輸出時(shí)間為Tin,車載主機(jī)當(dāng)前時(shí)間為Ttrain=Tin+Tdelay,車載主機(jī)與測(cè)速測(cè)距的時(shí)間差為ΔT=Ttrain-Tin,外推得到的列車速度為 Vex=Vin+ΔT×ACC (5) 其中,ACC為列車運(yùn)行的加速度。若正向運(yùn)行,外推得到的走行距離為 (6) 若反向運(yùn)行,走行距離為 (7) 利用實(shí)驗(yàn)室搭建的基于二乘二取二安全計(jì)算機(jī)平臺(tái)測(cè)速測(cè)距系統(tǒng),模擬實(shí)際列車運(yùn)行進(jìn)行測(cè)試。在任務(wù)級(jí)同步的基礎(chǔ)上,利用表決條件判定表決狀態(tài),單系處于正常態(tài)或轉(zhuǎn)換態(tài)時(shí),分別采用內(nèi)插和外推法、最小二乘擬合法和最大速度法進(jìn)行表決輸出。通過(guò)數(shù)據(jù)分析,列車運(yùn)行過(guò)程中加速度變化點(diǎn)算法對(duì)比明顯,加速度從恒速變?yōu)檎铀俣葧r(shí),運(yùn)用3種算法得到的列車運(yùn)行速度對(duì)比如圖6所示。 圖6 3種方法的列車運(yùn)行速度對(duì)比 由圖6可以看出,內(nèi)插和外推算法不僅能內(nèi)插得到測(cè)速測(cè)距系統(tǒng)任意時(shí)刻的速度值,還充分考慮了通信延時(shí),外推得到可供車載主機(jī)使用的列車實(shí)時(shí)運(yùn)行速度,在加速度變化點(diǎn)均滿足安全需求且精度更高。最小二乘擬合法,在速度變化時(shí)容易沿著速度的變化趨勢(shì)繼續(xù)推算,得到誤差較大的速度值,即列車由勻速到加速運(yùn)行過(guò)程中,列車運(yùn)行速度高于真實(shí)值;列車由勻速到減速運(yùn)行過(guò)程中,運(yùn)行速度低于真實(shí)值。最大速度法并沒(méi)有充分考慮測(cè)速測(cè)距系統(tǒng)和車載主機(jī)間的通信延時(shí),單一的選取最大速度作為計(jì)算結(jié)果看似考慮了安全側(cè),實(shí)際上浪費(fèi)了系統(tǒng)資源,還會(huì)在計(jì)算距離時(shí)累積較大的誤差,造成定位錯(cuò)誤。 表1列出了3種算法的誤差對(duì)比結(jié)果,內(nèi)插和外推法速度誤差為0.903 2 km/h,標(biāo)準(zhǔn)差為0.819 3 km/h;最小二乘擬合法的速度誤差為1.343 0 km/h,標(biāo)準(zhǔn)差為1.804 2 km/h;最大速度法的速度誤差為1.606 9 km/h,標(biāo)準(zhǔn)差為2.591 8 km/h。CTCS-2級(jí)列控車載設(shè)備技術(shù)條件[20]要求列車速度高于30 km/h時(shí),測(cè)速誤差不大于2%,選取的列車平均運(yùn)行速度為120 km/h,上述算法均滿足要求,但內(nèi)插和外推法的誤差和標(biāo)準(zhǔn)差較小,更接近真實(shí)值,故選取內(nèi)插和外推法作為2個(gè)MCU表決輸出算法。 表1 3種方法結(jié)果對(duì)比 綜上所述,提出的內(nèi)插和外推法是更優(yōu)的表決輸出算法,得到的列車運(yùn)行速度具有更高的精度且能滿足安全需求。 (1)基于二乘二取二安全平臺(tái)的列控車載設(shè)備測(cè)速測(cè)距系統(tǒng),以3個(gè)測(cè)速測(cè)距處理周期為任務(wù)組成循環(huán)隊(duì)列,實(shí)現(xiàn)2個(gè)MCU間的任務(wù)級(jí)同步,保證了系統(tǒng)的安全性和可靠性。 (2)針對(duì)列車運(yùn)行速度的物理特性,提出了差異限制條件,包括時(shí)間判決異常、速度超限、速度誤差異常和速度誤差超限。周期性檢查表決結(jié)果,得到單系的表決狀態(tài)。 (3)當(dāng)單系處于正常態(tài)或轉(zhuǎn)換態(tài)時(shí),分別采用內(nèi)插和外推法、最小二乘擬合法和最大速度法表決輸出,通過(guò)結(jié)果對(duì)比表明,提出的內(nèi)插和外推的表決輸出算法能在滿足安全需求條件基礎(chǔ)上,得到精度更高的計(jì)算結(jié)果。2.2 表決狀態(tài)
2.3 表決輸出
3 驗(yàn)證及對(duì)比分析
4 結(jié)語(yǔ)