卡斯柯信號(hào)有限公司 職文超 呂新軍 李付軍
本文使用開(kāi)源軟件Scilab/xcos進(jìn)行列車動(dòng)力學(xué)建模、仿真,采用開(kāi)源軟件X2C將模型生成嵌入式C代碼,結(jié)合部分手寫(xiě)驅(qū)動(dòng)代碼,以開(kāi)源FreeRTOS為實(shí)時(shí)操作系統(tǒng),運(yùn)行在ESP32硬件模組之上,搭建了列車動(dòng)力學(xué)半實(shí)物仿真平臺(tái),用以自動(dòng)駕駛控制算法測(cè)試,在保證性能的基礎(chǔ)上,大幅降低系統(tǒng)成本。
列車自動(dòng)控制系統(tǒng)(ATC)一般由列車自動(dòng)監(jiān)控系統(tǒng)(ATS)、列車超速防護(hù)系統(tǒng)(ATP)、列車自動(dòng)駕駛系統(tǒng)(ATO)構(gòu)成。而自動(dòng)駕駛算法是ATO系統(tǒng)的核心,直接關(guān)系到軌道交通系統(tǒng)的運(yùn)營(yíng)效率和乘客舒適度,列車的牽引和制動(dòng)是其主要控制對(duì)象。在具體工程項(xiàng)目的實(shí)施過(guò)程中,因?yàn)椴煌熊嚨男阅艽嬖谄?,尤其是列車停站過(guò)程中電制動(dòng)、空氣制動(dòng)的切換,引入了非線性因素,列車模型整定和自動(dòng)駕駛算法調(diào)試工作量大、耗時(shí)長(zhǎng)。為縮短現(xiàn)場(chǎng)調(diào)試時(shí)間、提高調(diào)試效率,降低項(xiàng)目實(shí)施成本,可以提前在實(shí)驗(yàn)室,根據(jù)項(xiàng)目所用列車的牽引和制動(dòng)的動(dòng)靜態(tài)特性參數(shù),搭建動(dòng)力學(xué)模型,用來(lái)進(jìn)行算法調(diào)整、參數(shù)整定并驗(yàn)證算法的性能。
而純軟件的仿真也有其缺點(diǎn),比如沒(méi)有考慮模型的浮點(diǎn)運(yùn)算和MCU上面整形運(yùn)算的區(qū)別、電流或電壓輸出時(shí)的精度局限、TIMS控制列車時(shí)的通訊延遲等等因素,因此,即便在PC仿真時(shí),得到了滿意的列車控制算法,也要在真實(shí)的ATO控制器運(yùn)行列車控制算法,控制仿真列車,來(lái)進(jìn)一步驗(yàn)證ATO算法的有效性。也就是說(shuō)采用半實(shí)物仿真,取代部分?jǐn)?shù)學(xué)模型,更接近實(shí)際情況,從而獲取更確切的信息。
商業(yè)軟件Labview或者M(jìn)atlab/Simulink可以完成列車動(dòng)力學(xué)建模、算法仿真和半實(shí)物仿真的全過(guò)程,但價(jià)格不菲,且可能面臨被國(guó)外公司禁止使用的風(fēng)險(xiǎn)。本文探索使用開(kāi)源軟件、低成本硬件搭建自主可控的列車動(dòng)力學(xué)半實(shí)物仿真測(cè)試平臺(tái)。
仿真平臺(tái)由兩部分組成,分別是上位機(jī)和下位機(jī)。
上位機(jī)負(fù)責(zé)對(duì)列車運(yùn)動(dòng)學(xué)進(jìn)行建模、仿真,仿真過(guò)程中可以對(duì)動(dòng)力學(xué)模型的結(jié)構(gòu)(一階時(shí)滯模型、二階時(shí)滯模型)、參數(shù)(延時(shí)大小、時(shí)間常數(shù)等)進(jìn)行調(diào)整,在得到滿足項(xiàng)目要求的模型后,通過(guò)工具把模型自動(dòng)轉(zhuǎn)換為C代碼,最后把模型代碼編譯成可執(zhí)行的程序,下載到下位機(jī)。
下位機(jī)負(fù)責(zé)與ATO控制器的物理接口、運(yùn)行列車運(yùn)動(dòng)學(xué)模型,對(duì)于ATO控制器來(lái)說(shuō),下位機(jī)就相當(dāng)于列車,是ATO控制器的控制對(duì)象。列車的運(yùn)動(dòng)學(xué)模型需要在下位機(jī)中實(shí)時(shí)運(yùn)行,其實(shí)時(shí)性直接影響到仿真效果是否足夠真實(shí)。因此,嵌入式實(shí)時(shí)操作系統(tǒng)的選用、驅(qū)動(dòng)程序的設(shè)計(jì),就需要考慮到滿足實(shí)時(shí)性要求。
本文選用ESP32作為主控制芯片,ESP32是自主化的IOT芯片,主頻可達(dá)240MHz,可滿足列車模型的計(jì)算需求;片上資源豐富,可滿足列車模型外部連接的要求,開(kāi)源開(kāi)發(fā)環(huán)境ESP-IDF基于FreeRTOS開(kāi)源操作系統(tǒng),驅(qū)動(dòng)代碼可以GITHUB上直接下載。4MB的Flash模塊為模型程序提供了足夠的保存空間。
FreeRTOS提供了基于優(yōu)先級(jí)的任務(wù)調(diào)度機(jī)制,可以保證模型的實(shí)時(shí)執(zhí)行。另外ESP32是雙核的CPU,將列車運(yùn)動(dòng)學(xué)模型單獨(dú)運(yùn)行在其中一個(gè)核,保證模型的實(shí)時(shí)性,不受其他任務(wù)的影響。
ATO自動(dòng)駕駛系統(tǒng)可以通過(guò)里程計(jì)、雷達(dá)等傳感器獲得列車的運(yùn)行速度或者位移,ATO控制器(Carbone controller,以下簡(jiǎn)稱CC)通過(guò)安裝在車軸上的里程計(jì)獲知列車的位移、速度、加速度,更新列車在軌道上的位置,經(jīng)過(guò)自動(dòng)駕駛算法運(yùn)算之后,得到的牽引或者制動(dòng)命令通過(guò)繼電器、電流環(huán)、TIMS網(wǎng)絡(luò)接口(MVB、TRDP)輸出給列車。列車控制器的執(zhí)行周期為100ms。本文中CC與測(cè)試平臺(tái)之間經(jīng)過(guò)電平轉(zhuǎn)換,通過(guò)硬線連接。如圖1所示。
圖1 仿真平臺(tái)與列車控制器的接口
MDR/BDR/MBC分別為牽引命令/制動(dòng)命令/牽引制動(dòng)等級(jí),C1/C2/C3分別為里程計(jì)的輸入脈沖。
ESP32通過(guò)PWM模塊輸出控制三個(gè)引腳,輸出相差120°的速度脈沖,分別對(duì)應(yīng)里程計(jì)的C1/C2/C3,里程計(jì)正向旋轉(zhuǎn)時(shí),C1/C2/C3依次成120°;里程計(jì)反向旋轉(zhuǎn)時(shí),C1/C3/C2依次成120°。通過(guò)改變引腳輸出順序、定時(shí)器頻率,即可模擬車輪的正反轉(zhuǎn)、轉(zhuǎn)速變化;動(dòng)力學(xué)模型的輸出速度,是編碼里程計(jì)模塊的輸入。每個(gè)仿真周期,根據(jù)仿真列車的速度,通過(guò)設(shè)置分頻器,調(diào)整定時(shí)器的輸入時(shí)鐘頻率,模擬列車速度的變化。里程計(jì)轉(zhuǎn)過(guò)一個(gè)齒,代表車輪轉(zhuǎn)過(guò)的實(shí)際距離為teeth_dist,那么freq=speed/teeth_dist。這里的freq即為PWM輸出的頻率。
通過(guò)邏輯分析儀可以看到,從左到右,列車速度逐漸降低,而C1/C2/C3的周期在逐漸增加的同時(shí),C1/C2/C3之間保持了嚴(yán)格的相位差。如圖2所示。
圖2 里程計(jì)C1/C2/C3的仿真圖
ESP32從數(shù)字引腳GPIO獲取MDR/BDR輸入線的電平高低,從模擬數(shù)字轉(zhuǎn)換器ADC獲取MBC值,模型的輸入可以用以下邏輯表示
Scilab/xcos是由法國(guó)國(guó)家信息自動(dòng)化研究所開(kāi)源的科學(xué)計(jì)算軟件,在功能上分別與Matlab/Simulink類似,可以方便地進(jìn)行模型建模與仿真。X2C為Xcos提供了一個(gè)工具箱,支持將Xcos搭建的列車運(yùn)動(dòng)學(xué)模型轉(zhuǎn)換成嵌入式C代碼,并不與特定硬件平臺(tái)綁定,只要對(duì)應(yīng)平臺(tái)支持C編譯器即可。整體實(shí)現(xiàn)過(guò)程如圖3所示。
圖3 運(yùn)動(dòng)學(xué)模型編譯下載流程
列車運(yùn)動(dòng)學(xué)模型采用一階帶延遲模型,模型的輸入是ATO控制器向列車請(qǐng)求的加速度命令,模型的輸出是仿真列車的速度,列車速度是對(duì)列車加速度積分而來(lái),列車動(dòng)力學(xué)模型如圖4所示。
圖4 列車運(yùn)動(dòng)學(xué)模型
模型的仿真周期為10ms,使用X2Code工具生成模型的軟件后,使用ESP32提供的高精度定時(shí)器釋放信號(hào)量,周期性運(yùn)行模型軟件,模型的輸出為列車速度。
在該平臺(tái)上使用ATO駕駛模式,CC控制列車運(yùn)行在兩站之間,仿真曲線如圖5所示,其中紅色曲線為列車速度、淺綠色曲線為CC輸出的牽引制動(dòng)命令、深綠色曲線為根據(jù)列車仿真平臺(tái)給出的C1/C2/C3里程計(jì)輸出計(jì)算出的列車實(shí)際加速度,可以看出仿真平臺(tái)較好地模擬了列車的動(dòng)力學(xué)特性。
圖5 ATO駕駛站間仿真
X2C可以生成模型的定點(diǎn)數(shù)代碼,對(duì)于沒(méi)有浮點(diǎn)運(yùn)算單元FPU的CPU來(lái)說(shuō),可以有效減輕仿真平臺(tái)的計(jì)算負(fù)擔(dān),以10ms周期性運(yùn)行模型軟件,對(duì)ESP32的CPU利用率進(jìn)行監(jiān)測(cè),約在30%左右,計(jì)算裕量較大,可支持更復(fù)雜的列車模型,為以后模型的精細(xì)化留下空間。
本文使用開(kāi)源軟件,在ESP32硬件平臺(tái),搭建了一套列車運(yùn)動(dòng)學(xué)仿真平臺(tái),測(cè)試表明性能滿足要求,成本大幅下降。根據(jù)本文提供的建模方式,不同地鐵項(xiàng)目建立不同的列車動(dòng)力學(xué)模型,是一種快速低成本搭建仿真平臺(tái)的方式。后續(xù)可以在交互性(比如提供友好的WEB界面)、列車速度的精度、TIMS網(wǎng)絡(luò)連接等方面,繼續(xù)優(yōu)化拓展。