基于MC9S12DP256B的客車ABS控制器設(shè)計
汽車防抱死制動系統(tǒng)簡稱ABS(Anti-Lock Brake System),是在汽車制動過程中,防止車輪完全抱死,提高汽車在制動過程中的方向穩(wěn)定性和轉(zhuǎn)向操縱能力,縮短制動距離。針對汽車防抱死制動系統(tǒng)(ABS), 國際上流行的控制方法有邏輯門限值控制、PID控制、滑模變結(jié)構(gòu)控制、最優(yōu)控制、模糊控制和神經(jīng)網(wǎng)絡(luò)控制等控制方法。國內(nèi)開發(fā)ABS采用的控制方法主要是最基本的邏輯門限值控制方法。目前,國內(nèi)研究ABS理論的科研單位有很多,比較有代表性的有:以郭孔輝院士為代表的吉林大學(xué)汽車動態(tài)模擬國家重點實驗室、清華大學(xué)汽車安全與節(jié)能國家重點實驗室、華南理工交通學(xué)院汽車系、濟(jì)南程軍電子科技公司等。國內(nèi)生產(chǎn)ABS的公司不少, 但大多數(shù)公司是和國外著名ABS公司合作生產(chǎn), 其產(chǎn)品并非自主研制開發(fā)出來的。完全自主開發(fā)ABS的國內(nèi)比較有代表性的公司有重慶聚能汽車技術(shù)有限責(zé)任公司和西安博華機(jī)電股份有限公司等[1]。
汽車在制動過程中,車輪可能相對于路面發(fā)生滑移,滑移成分在車輪縱向運動中所占的比例可由滑移率來表征。定義滑移率為s:
式中: v為車身速度,ω為車輪角速度,r為車輪半徑。在不同的滑移率時,附著力系數(shù)也不同。試驗表明,縱向和側(cè)向附著力系數(shù)與滑移率關(guān)系如圖1所示。
防抱死制動系統(tǒng)的工作原理就是將車輪的滑移率控制在最佳滑移率sc附近,以獲得較高的縱向和側(cè)向附著系數(shù)從而減小制動距離以及保證汽車制動時的方向穩(wěn)定性。
1 ABS硬件設(shè)計
1.1 MC9S12DP256B單片機(jī)[2]
MC9S12DP256B是Motorola 16位單片機(jī)HCS12家族中的一員,其處理單元采用16位的STAR12CPU。片內(nèi)資源包括256KB的Flash ROM、12KB的RAM、4KB的EEPROM、一個8通道的脈沖寬度調(diào)制模塊(PWM)、一個8通道的增強(qiáng)型捕捉定時器模塊(ECT)、兩個8通道的A/D轉(zhuǎn)換模塊(ATD)、兩個串行通訊接口(SCI)、三個串行設(shè)備接口(SPI)等。在Codewarrior集成開發(fā)環(huán)境中,可以對單片機(jī)進(jìn)行程序編輯、編譯、下載和在線調(diào)試,使其開發(fā)十分便利。
ECT模塊具有八個輸入捕捉/輸出比較(IC/OC)通道,四個8位或兩個16位的脈沖累加器(PAI)通道。當(dāng)該模塊運行時,16位的自由定時器按照設(shè)定的時鐘頻率在$0000~$FFFF之間循環(huán)計數(shù)。若某個通道設(shè)置為I/O功能,當(dāng)被測信號的設(shè)定邊沿到來時,輸入捕捉邏輯立即將自由定時器的內(nèi)容捕捉到16位的IC/OC寄存器中,其分辨能力高達(dá)1μs甚至更高,并設(shè)置中斷請求標(biāo)志,隨后程序進(jìn)行中斷處理。若某個通道設(shè)置為OC功能,輸出比較邏輯自動將IC/OC寄存器的內(nèi)容與自由定時器的內(nèi)容進(jìn)行比較,一旦相符立即操作對應(yīng)的引腳,同時設(shè)置相應(yīng)的中斷標(biāo)志,隨后程序進(jìn)行中斷處理,引腳輸出波形的時間分辨能力也可以達(dá)到1μs甚至更高。脈沖計數(shù)器則只對輸入脈沖的個數(shù)或者邊沿進(jìn)行計數(shù),不產(chǎn)生中斷。在輪速采集算法中使用了該功能。
IC/OC與通用I/O口PORTT共享八個引腳。四個8位的PAI通道0~3與前四個IC通道IC0~3共享引腳PORTT0~3。本控制器中,PORTT0~3使用脈沖累加器功能,注錄四個輪速傳感器的脈沖個數(shù)。當(dāng)產(chǎn)生實時中斷(RTI)后,中斷程序讀取脈沖累加器的值,計算車輪的速度,同時脈沖累加器清零,重新開始計數(shù)。PORTT4~7使用輸出比較功能,當(dāng)IC/OC寄存器的值與自由計數(shù)器的值相等之后,產(chǎn)生中斷,四個中斷程序分別處理各自輪子的ABS控制策略。
1.2 電子控制單元ECU硬件結(jié)構(gòu)
ABS的核心部件是電子控制單元ECU(Electronic Control Unit)。ECU電路主要包括四個模塊:電源模塊、輪速信號處理模塊、運算模塊、電磁閥驅(qū)動電路,其基本功能是要實現(xiàn)輪速的采集、ABS的故障檢測、按照控制規(guī)律對電磁閥發(fā)控制信號。其結(jié)構(gòu)框圖如圖2所示。
2 ABS控制算法
ABS控制算法采用邏輯門限值控制。它的基本原理是以車輪的加減速度作為主要控制門限,以車輪的滑移率作為輔助控制門限,在減速度達(dá)到下門限值時發(fā)出減壓控制信號,在加速度達(dá)到第一上門限值時發(fā)出增壓控制信號。如此反復(fù)循環(huán),直到輪速降至一個較低的數(shù)值,退出ABS控制。
不同的路面附著系數(shù)使用不同的控制策略,所以算法的第一步就是識別路面。路面識別的方法是:首先給車輪發(fā)出保壓信號,保壓一段時間后,根據(jù)此時的輪減速度來識別路面。如果此時的輪減速度超過了第二上門限值,則說明是高附著路面;如果輪減速度在第一上門限值和第二上門限值之間,說明是一般附著路面;如果輪減速度小于第一上門限值,則說明是低附著路面。這樣做的結(jié)果是每個輪子的保壓等待時間占據(jù)一個循環(huán)周期的大部分時間,如果采用四個輪子的循環(huán)順序來執(zhí)行則需要很長時間,不能滿足時效性要求。但如果引入多任務(wù)實時操作系統(tǒng)勢必使得算法過于復(fù)雜。因此,提出了引入四個中斷處理的方法,即每個輪子都有獨立的計時時鐘,ABS控制完全按照各自設(shè)定的中斷時間執(zhí)行,實現(xiàn)了四個輪子的并行控制。中斷時間的設(shè)定是保證一秒鐘ABS控制循環(huán)執(zhí)行十幾到幾十次。
2.1 ABS詳細(xì)控制策略
Step 1:輪減速度剛達(dá)到下門限值時,系統(tǒng)開始保壓,同時計算滑移率,直到判斷出車輪進(jìn)入不穩(wěn)定區(qū)域,置階段標(biāo)志位Flag=2,減壓。
Step 2:判斷減速度,直到減速度小于下門限值,置Flag=3,保壓。
Step 3:保壓一定時間,判斷此時加速度的大?。?1)如果加速度小于第一上門限值,判斷為低附著路面,置Flag=41,減壓。(2)如果加速度在第一上門限值和第二上門限值之間,判斷為一般路面,置Flag=42,保壓。(3)如果加速度大于第二上門限值,判斷為高附著路面,置Flag=43,增壓。
Step 4:根據(jù)Step3得出的Flag值執(zhí)行不同的控制方案。
Step 5:一個階段完畢,置Flag=1,準(zhǔn)備進(jìn)入下一個循環(huán)。
這樣程序每次進(jìn)入中斷后都將根據(jù)階段標(biāo)志位的值執(zhí)行不同的控制階段,直到完成整個ABS控制。
2.2 輪速處理算法[4]
輪速是ABS 程序中計算車輪加減速度的基礎(chǔ)。對輪速的處理必須滿足:(1)實時性好。ABS 的防抱死控制一秒鐘要進(jìn)行多次循環(huán),因此對輪速處理的及時性要求很高,要求輪速處理程序不能過于復(fù)雜。(2)精度高。ABS 輪速的精度對其以后的輪加減速度和參考車速的計算精度影響很大。
輪速采集的方法通常有周期法和脈沖計數(shù)法,這里采用脈沖計數(shù)法。脈沖計數(shù)法是利用一定時間內(nèi)輪速傳感器采集進(jìn)來的齒圈個數(shù)即脈沖數(shù)來計算輪速。其計算公式為:
ω=2(πr/N)×(n/△t) (2)
式中,ω為車輪角速度;r為車輪半徑;N為齒圈齒數(shù);n為記錄的脈沖個數(shù);△t為測量時間間隔。由式(2)可以看出,計算誤差主要由后半部分引起。單片機(jī)的計時很精確,因此△t的誤差可以忽略不計,但脈沖個數(shù)n易造成±1齒的測量誤差。誤差產(chǎn)生示意圖如圖3所示。
在低速時,這±1齒的誤差很可能會造成ABS的誤動作。如果增加測量時間間隔△t,ABS控制時效性變差。這里采用平均值法,即保持△t不變,每次計算輪速取最近四次的脈沖計數(shù)值的平均值,這樣就減小了隨機(jī)誤差,既能反映出車輪減速度的變化趨勢,又能防止±1齒的誤差給計算帶來大的干擾。
2.3 程序流程
程序流程圖分別如圖4、圖5、圖6所示。
3 仿真平臺及結(jié)果
仿真方式采用xPC Target結(jié)構(gòu)。xPC Target是MathWorks公司發(fā)行的一個基于RTW(Real-Time Workshop)體系框架的補(bǔ)充產(chǎn)品,它可將Intel 80x86/Pentium計算機(jī)或PC兼容機(jī)轉(zhuǎn)變?yōu)橐粋€實時系統(tǒng),而且支持許多類型的I/O接口板,采用宿主機(jī)和目標(biāo)機(jī)的“雙機(jī)型”解決途徑,使用兩臺PC機(jī),其中宿主機(jī)用于運行Simulink,而目標(biāo)機(jī)則用于執(zhí)行實時代碼。目標(biāo)機(jī)運行了一個高度緊縮的實時操作內(nèi)核,通過以太網(wǎng)絡(luò)連接來實現(xiàn)宿主機(jī)和目標(biāo)機(jī)之間的通信。仿真結(jié)束后可將結(jié)果數(shù)據(jù)上傳至宿主機(jī),進(jìn)行分析處理。
客車整車模型在宿主機(jī)Matlab/Simulink環(huán)境中搭建,然后采用xPC工具將模型自動轉(zhuǎn)換成C代碼,通過以太網(wǎng)下載到工控機(jī)中作為被控對象,實現(xiàn)實時仿真。硬件部分的信號接收及轉(zhuǎn)換使用Advantech公司的數(shù)據(jù)采集卡PCL-726完成。控制器的開發(fā)平臺使用Metrowerks公司的Codewarrior3.1,程序編譯之后下載至控制器(ECU)中,并在BDM模式下調(diào)試程序。半實物仿真平臺如圖7所示。
其中一個輪子的仿真結(jié)果如圖8所示。
圖8為車輛初速度為25mps、路面附著系數(shù)為0.6工況下的單輪結(jié)果圖。圖中四條曲線分別代表車身速度、車輪速度、電磁閥信號和制動踏板信號。電磁閥高狀態(tài)表示增壓,0狀態(tài)表示保壓,低狀態(tài)表示減壓。1秒鐘之后給制動信號, ABS開始起作用。由圖中可以看出,在輪速驟減的地方毛刺大,而電磁閥都是處于減壓或者減保脈沖階段;在輪速變化比較平緩的地方都是處于增壓或者增保脈沖階段。9秒鐘以后,車身速度降到3mps以下,自動退出ABS控制,恢復(fù)到常規(guī)制動。在整個制動階段中都沒有出現(xiàn)過車輪抱死的情況,結(jié)果比較理想。
本文介紹了利用Motorola單片機(jī)MC9S12DP256B進(jìn)行客車ABS控制器的設(shè)計,提出了采用四級中斷的方式實現(xiàn)并行任務(wù)的處理。仿真平臺使用快速原型開發(fā)技術(shù),利用Matlab自帶的xPC Target工具,將Simulink模型直接生成可執(zhí)行的C代碼,構(gòu)成閉環(huán)半實物仿真平臺。經(jīng)過模擬各種工況后,控制器均取得了很好的控制效果,可以實車測試進(jìn)一步優(yōu)化,以達(dá)到成品化的效果。