張 淼,楊志杰,莫小凡,鄭理華
(1.中國鐵道科學研究院研究生部,北京 100081;2.中國鐵道科學研究院集團有限公司通信信號研究所,北京 100081;3.中國鐵道科學研究院集團有限公司標準計量研究所,北京 100081)
測速測距系統是列控車載設備控制列車安全運行的前提和基礎,完成列車運行速度、走行距離等信息的計算[1],由于測速測距系統對安全性和可靠性要求高,采用安全計算機平臺設計是必然趨勢,同步表決技術是平臺的關鍵技術之一。
目前,使用最多的列控車載設備安全計算機平臺是二乘二取二和三取二結構。其中,二乘二取二結構在可靠性和安全性上有明顯優勢[2-3],在列控車載系統、聯鎖系統、25 Hz軌道電路采集系統中已得到廣泛應用[4-6]。二乘二取二結構中的2個MCU(微控制單元)同步技術是冗余設計的核心,是表決的基礎,主要有時鐘同步和軟件任務級同步,時鐘同步又包括緊耦合同步和松耦合同步[7]。蔡煊等[7]采用公共外時鐘作為參考時鐘信號,基于時鐘漂移率有界模型對本地時鐘進行漂移補償;陳梅等[8]設定了任務起始、輸入數據和運算輸出3個同步點,通過比較數據的一致性來判斷單機是否故障;楊芳萍[9]設計了基于動態表決控制算法,實現了多通道系統中的動態同步。
數據表決方法方面,王瑞等[10]通過采用拼接方式進行輸出來確保數據的安全性和可靠性,可見主從MCU的計算結果必須完全一致。然而數字量的同步表決方法不能滿足測速測距系統的要求,楊文閣[11]等針對模擬量的特點,提出容差范圍內選取主處理單元數據的處理方式,容差范圍外按照故障安全原則采取措施;袁順[12]等將大量表決算法分類為標準型、混合型和特定型表決算法,同時橫向比較了算法的復雜度及可靠性;孫軍[13]設計了一種基于歷史信息的改進型帶權重值的表決算法,記錄歷史數據有效次數并動態分配權重值,當某個表決周期中存在數據失效時,仍可得到有效的表決輸出結果。
本文以3個測速測距周期為單位進行任務交互,結合測速測距物理量的意義,給出速度、距離的差異限制條件。在規定周期內,根據表決結果判定單系的表決狀態,分別使用內插和外推法、最小二乘擬合法和最大速度法進行表決輸出,利用實驗室測速測距平臺實現對比測試。研究成果可為測速測距平臺提供一種同步表決方法。
實驗室搭建了一套基于二乘二取二安全計算機平臺的測速測距系統,主備系冗余設計,每系中包含2個MCU,為避免2個MCU在同一系運行時存在潛在的共因失效[14],測速測距系統2個MCU擁有獨立的電源和晶振。每個MCU獨立運算,并將各自的計算結果,包含列車運行速度、速度的置信區間、走行距離和距離的置信區間等,通過SPI接口完成任務級同步,收到對方MCU的數據后進行數據表決。若表決通過,則將最終表決輸出結果通過CAN總線發送給主機;若表決未通過,則發送故障信息。系統結構如圖1所示。

圖1 二乘二取二測速測距系統結構
為滿足測速測距系統對實時性和精度的要求,采用系內的任務級同步,通過在任務中設立1個或多個表決點進行同步比較來完成一致性檢查[15]。
2個MCU獨立運算,由于測速測距系統對計算結果精度要求高,每個MCU運行周期短,如果每個周期多個任務點表決,會帶來系統的開銷負擔。測速測距系統需實時上傳速度、距離信息到列控車載主機,考慮到主機數據接收處理能力和測速測距精度要求,故設定3個測速測距周期為一個任務周期。
SPI接口輸入輸出設置不同存儲單元,SPI必須滿足接收到對方信息后才能發送的機制,這樣讀寫操作就可以分時進行,在輸出處設置同步檢查點進行數據交互,如果在規定時間內收到信息,則判定為2個MCU同步,否則判定為異步[16]。任務級同步允許處理器之間存在一定容許范圍內的異步度[7]。
任務級同步劃分為初始化階段和正常執行階段,2個MCU分別記為MCUA和MCUB,如圖2所示。

圖2 任務級同步過程
同步過程:
Step1初始化階段,第一次計算得到速度和距離后,記錄本地時間戳T1;交互得到對方時間戳T2,計算初始化階段時間戳偏差ΔT=|T1-T2|;
Step2對2個MCU進行同步校正,比較2個MCU的時間戳,在較小時間戳基礎上增加ΔT;
Step3正常執行階段,2個MCU各自計算速度、距離,交互時間戳和計算結果,進行數據表決,并將表決結果和單系狀態信息發送給對方MCU;
Step4各自判斷2個MCU的表決狀態,若均為正常態,則MCUB計算CRC,MCUA將表決結果和MCUB計算的CRC拼成一幀數據,周期性輸出并記錄輸出時間戳T3;
Step5 MCUB雖不輸出,但記錄對應輸出時間戳為T4,交互時間戳,計算正常執行階段時間偏差ΔT=|T3-T4|,若超過設定同步時間差閾值未收到回復信息,則轉Step6,否則回Step2;
Step6同步失敗,導向安全側,輸出本系故障信息。
本次提出的一種速度和距離的數據表決方法是在安全平臺設計和系內同步的前提條件下完成的,當二取二表決器接收到2個MCU的計算結果后,需依次判斷數據是否有效,單系所處的表決狀態,用以確定表決輸出的最終結果,對應本節介紹的表決條件、表決狀態和表決輸出3個部分。
測速測距系統計算結果主要包含本周期計算結果時間戳(T_Datation)、上周期計算結果時間戳(T_Datation_before)、速度(V_Odo_Train)、速度上偏(Dv_Odo_Pos)、速度下偏(Dv_Odo_Neg)、距離、距離上偏和距離下偏等模擬量,無法通過一致性判斷來表決,以速度為例給出差異限制條件,距離表決同理。
結合上述變量的物理意義,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,其中,較大值設為max_min,較小值設為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|,其中,較大值設為Offset。
測速測距速度相關量差異限制條件如下。
(1)若A.T_Datation<=A.T_Datation_before或B.T_Datation<=B.T_Datation_before,則時間判決異常,否則時間判決正常;
(2)若|A.V_Odo_Train-B.V_Odo_Train|>ΔVlim,2個MCU的速度差若超過速度差容忍門限,則速度超限;
(3)當列車速度≥速度閾值,一般設為5 km/h,若min_max 圖3 速度誤差異常判定示意 (4)若Offset>Offsetlim,則速度誤差超限。 測速測距的單系狀態由2個MCU的數據表決結果推得,包含初始化態、正常態、轉換態和故障態4種狀態,工作狀態切換關系如圖4所示。 圖4 測速測距系統狀態切換關系 在判斷單系狀態前,首先要對每個MCU的計算結果進行判斷,若計算結果未越界且有效,則此MCU的狀態為正常態,否則為故障態。 二取二系內的2個MCU中,若任意1個MCU為初始化態,則該系狀態為初始化態;若任意1個MCU為故障態,則該系狀態轉為故障態;數據表決結果中若有1個表決條件不滿足,則系統進入轉換態;進入轉換態后計時,若3個周期內仍沒有恢復為正常態,則系統進入故障態。 測速測距單系的4種不同表決狀態決定了表決輸出結果:當表決狀態為初始化態時,賦初始值輸出;當表決狀態為故障態時,賦默認值輸出;當表決狀態為正常態或轉換態時,需要通過算法計算表決輸出結果。 目前,實際工程中普遍應用最大速度法,當2個MCU計算的速度不完全一致時,導向安全側,選其中速度較大值作為輸出。選取內插和外推法[17-18]、最小二乘擬合法和最大速度法進行對比,得到最優的表決輸出算法。最小二乘擬合法是以MCUA和MCUB本周期和上周期的計算結果作為擬合點,由于列車運動存在慣性,速度在短時間內不會發生突變,故估計列車運行速度為線性函數v=a0+a1t,解得a0、a1,代入車載主機當前時間Ttrain,即可求得列車運行速度Vtrain=a0+a1×Ttrain,走行距離是速度隨時間積分。 車載主機需實時監控列車的運行速度和走行距離,對測速測距精度要求很高。測速測距單系2個MCU間只是任務級同步,無法做到時鐘同步,采用內插法可以得到任意時刻測速測距系統計算的速度和距離值。車載主機和測速測距系統間不可避免地存在通信延時,影響測速測距精度,故需用當前測速測距系統得到的速度進行外推,得到可供車載主機使用的準確列車運行速度和走行距離。 設MCUA上一周期、當前周期兩點Apre、Arec的坐標分別為(TApre,VApre)、(TArec,VArec),由圖5可以看出,MCUA當前時間TArec比MCUB當前時間TBrec超前。 圖5 內推外插法示意 由拉格朗日一次多項式[19],可得MCUB當前時間TBrec時刻的內插速度Vin (1) 若運行方向向前,Brec的內插走行距離Sin為 Sin=SArec-Vin×(TArec-TBrec) (2) 若方向向后,Brec的內插走行距離Sin為 Sin=SArec+Vin×(TArec-TBrec) (3) 若方向未知,Brec的內插走行距離Sin為 (4) 由于通信延時的存在,需采用外推法來得到準確的實時速度,設測速測距輸出時間為Tin,車載主機當前時間為Ttrain=Tin+Tdelay,車載主機與測速測距的時間差為ΔT=Ttrain-Tin,外推得到的列車速度為 Vex=Vin+ΔT×ACC (5) 其中,ACC為列車運行的加速度。若正向運行,外推得到的走行距離為 (6) 若反向運行,走行距離為 (7) 利用實驗室搭建的基于二乘二取二安全計算機平臺測速測距系統,模擬實際列車運行進行測試。在任務級同步的基礎上,利用表決條件判定表決狀態,單系處于正常態或轉換態時,分別采用內插和外推法、最小二乘擬合法和最大速度法進行表決輸出。通過數據分析,列車運行過程中加速度變化點算法對比明顯,加速度從恒速變為正加速度時,運用3種算法得到的列車運行速度對比如圖6所示。 圖6 3種方法的列車運行速度對比 由圖6可以看出,內插和外推算法不僅能內插得到測速測距系統任意時刻的速度值,還充分考慮了通信延時,外推得到可供車載主機使用的列車實時運行速度,在加速度變化點均滿足安全需求且精度更高。最小二乘擬合法,在速度變化時容易沿著速度的變化趨勢繼續推算,得到誤差較大的速度值,即列車由勻速到加速運行過程中,列車運行速度高于真實值;列車由勻速到減速運行過程中,運行速度低于真實值。最大速度法并沒有充分考慮測速測距系統和車載主機間的通信延時,單一的選取最大速度作為計算結果看似考慮了安全側,實際上浪費了系統資源,還會在計算距離時累積較大的誤差,造成定位錯誤。 表1列出了3種算法的誤差對比結果,內插和外推法速度誤差為0.903 2 km/h,標準差為0.819 3 km/h;最小二乘擬合法的速度誤差為1.343 0 km/h,標準差為1.804 2 km/h;最大速度法的速度誤差為1.606 9 km/h,標準差為2.591 8 km/h。CTCS-2級列控車載設備技術條件[20]要求列車速度高于30 km/h時,測速誤差不大于2%,選取的列車平均運行速度為120 km/h,上述算法均滿足要求,但內插和外推法的誤差和標準差較小,更接近真實值,故選取內插和外推法作為2個MCU表決輸出算法。 表1 3種方法結果對比 綜上所述,提出的內插和外推法是更優的表決輸出算法,得到的列車運行速度具有更高的精度且能滿足安全需求。 (1)基于二乘二取二安全平臺的列控車載設備測速測距系統,以3個測速測距處理周期為任務組成循環隊列,實現2個MCU間的任務級同步,保證了系統的安全性和可靠性。 (2)針對列車運行速度的物理特性,提出了差異限制條件,包括時間判決異常、速度超限、速度誤差異常和速度誤差超限。周期性檢查表決結果,得到單系的表決狀態。 (3)當單系處于正常態或轉換態時,分別采用內插和外推法、最小二乘擬合法和最大速度法表決輸出,通過結果對比表明,提出的內插和外推的表決輸出算法能在滿足安全需求條件基礎上,得到精度更高的計算結果。
2.2 表決狀態

2.3 表決輸出


3 驗證及對比分析


4 結語