馬世典,孔令晶,韓 牟,吳 狄,唐 鑫
MA Shi-dian1,KONG Ling-jing2,HAN Mou2,WU Di1,TANG Xin1
(1. 江蘇大學 汽車工程研究院,鎮(zhèn)江 212013;2. 江蘇大學 計算機與通信工程學院,鎮(zhèn)江 212013)
智能車是典型機電一體化綜合智能系統(tǒng),是智能機器人的汽車體現(xiàn)形式。智能車行駛中主要依靠軌跡傳感器探測前方形式路線,進而制定相應的行駛策略和底盤控制策略。如當智能車高速過彎時,因為單一傳感器分辨率較低及信息采集量不夠,在復雜環(huán)境中難以取得車輛實時姿態(tài)定位或前方行進路線識別的理想效果,往往導致轉(zhuǎn)彎不足或過轉(zhuǎn)彎的問題,最終使得車輛偏離預定路線,甚至翻車[1]。
隨著智能傳感器和多傳感器數(shù)據(jù)融合技術的進步,智能車特殊工況下姿態(tài)實時準確定位成為可能[2]。本文基于對智能循跡小車運行工況分析,提出一種基于多傳感器協(xié)同的智能循跡小車模糊控制系統(tǒng)設計方案,介紹控制系統(tǒng)的硬件組成、軟件設計和控制策略,并將所開發(fā)的控制系統(tǒng)裝車進行驗證試驗,為智能循跡小車精確化循跡及車輛控制提供有益參考。
基于多傳感器協(xié)同的智能循跡小車模糊控制系統(tǒng)由路面軌跡采集模塊、控制模塊(主控制器)、執(zhí)行模塊和反饋模塊等組成,如圖1所示。軌跡采集模塊是系統(tǒng)的輸入部分,主要通過光電傳感器器采集路面軌跡信息并轉(zhuǎn)化為供主控制器識別的電信號; 控制模塊是系統(tǒng)的核心部分,采用8位單片機作為處理器,其任務是調(diào)理輸入信號并對執(zhí)行模塊進行實時控制;執(zhí)行模塊包含智能車左右后輪的驅(qū)動電機和前輪轉(zhuǎn)向伺服;反饋模塊主要作用是通過光電編碼傳感器實時反饋左后后輪輪速和前輪轉(zhuǎn)向角;系統(tǒng)采用智能車車載電源供電,驅(qū)動電機電壓8V,控制模塊電壓為5V。
圖1 基于多傳感器協(xié)同的智能循跡小車模糊控制系統(tǒng)組成
智能循跡小車的行駛過程如圖2所示,車輛進入運行軌道后通過三路循跡傳感器探測路線軌跡,并實時確定車輛姿態(tài)。兩路輪速傳感器和轉(zhuǎn)角傳感器實時反饋當前航向和速度信息,控制模塊融合當前車輛姿態(tài)和航向及速度信息,形成下一時刻車輛行駛路線的預測及驅(qū)動信號,最終閉環(huán)驅(qū)動左右后輪電機按照預定轉(zhuǎn)速運轉(zhuǎn),實現(xiàn)快速準確地循跡運行。
圖2 智能循跡小車的運行示意圖
圖3是控制器的硬件組成結構??刂破饔布蒟C866L-4FR和若干外圍輔助模塊及接口模塊構成。XC866L-4FR集成片內(nèi)振蕩器和嵌入式電壓調(diào)節(jié)器,因而可由 3.3V或 5.0V的單電源供電。此外,嵌入式閃存(Flash)器件為系統(tǒng)開發(fā)和批量生產(chǎn)提供了很大的靈活性,多閃存組(Flash Bank)結構支持在線應用編程(IAP),通過外部主機(如 PC)對嵌入式FLASH方便的編程或擦除。XC866還具有如下的非常優(yōu)越的功能:用來產(chǎn)生脈寬調(diào)制信號、帶有電機控制專用模式的捕獲/比較單元(CCU6),可以滿足對電機和轉(zhuǎn)向伺服的驅(qū)動要求,并可通過配置為捕獲模式來實時檢測輪速信號[3]。
圖3 控制器硬件組成結構
小型直流電機以其靈活的控制性能和良好的經(jīng)濟性能獲得很多使用者的青睞。但是,在直流電機驅(qū)動時對相關電路產(chǎn)生的干擾也是不可忽視的問題,特別是電機停止啟動瞬間的反向瞬間脈沖干擾,嚴重時會燒毀芯片或擊穿元件造成整個系統(tǒng)的失效[4,5]。如圖4所示,為確保電機輸出力矩,本文采用2片BTM7700G芯片組合實現(xiàn)左右后輪電機的驅(qū)動。
圖4 左右后輪電機驅(qū)動原理
試驗樣車的輪速信號為頻率和幅值均隨車速增大而增大的正弦交變信號,必須調(diào)理成同頻率的方波信號,便于單片機處理。輪速信號調(diào)理電路如圖5所示,該電路包括四部分:1)限幅濾波處理電路,由兩個穩(wěn)壓二極管1N4728A(D2和D3、D4和D5)的陰極串聯(lián)成限幅二極管電路,用于輪速反饋信號過大時保護后級電路;2)低通濾波電路,由電阻R9(R21)和電容C17(C19)組成RC低通濾波電路,此處取R9(R21)為100K歐電阻、C17(C19)為0.01微法電容,濾除正弦波輪速信號中的高頻噪聲;3)正弦波轉(zhuǎn)化方波電路,由集成運放LF353N的前級組成同相比例放大電路,將輪速正弦波信號放大20倍,然后利用LF353N的后級構成正反饋電路,對放大后的輪速信號過零比較,實現(xiàn)正弦信號到同頻率方波信號的轉(zhuǎn)換;4)隔離電路,如圖5所示利用4路光電隔離芯片TLP521-4的1通道和2通道實現(xiàn)兩路輪速信號的隔離,利用3通道實現(xiàn)對轉(zhuǎn)向伺服轉(zhuǎn)角信號的隔離。最后TLP521-4隔離后的信號分別經(jīng)電阻(R4、R5、R6)上拉后輸出到微處理器XC866[6]。
小車電池電壓VBat 為+9V,需要通過外加穩(wěn)壓芯片的方式給電機驅(qū)動板提供+5V電源以及XC866所用的+3.3V電源。如圖6所示,此處采用1B1205SD產(chǎn)生5V穩(wěn)壓后再經(jīng)DC-DC芯片REG1117-3.3產(chǎn)生3.3V直流電壓供MCU循跡傳感器使用。
圖5 反饋模塊電路
圖6 電源模塊
小車驅(qū)動電機額定電流為0.5A,轉(zhuǎn)向伺服額定電流為0.3A。此類感性負載對于控制信號毫安級電流將會造成較大幅度的波動,因此電源模塊的電路設計必須充分考慮驅(qū)動部分對控制部分的干擾。本系統(tǒng)采用DC-DC芯片將信號電源和電機驅(qū)動電源隔離,從而達到抵抗干擾的作用。
軌跡采集模塊由3組紅外傳感器構成,每組包含7個傳感單元,每個傳感單元均可根據(jù)當前所感應的車道顏色情況輸出二值化的檢測結果,其中“1”代表該傳感單元檢測到黑色車道線,“0”代表該傳感單元未檢測到黑色車道線。如圖7所示,通過3片74LS244芯片對MCU的P2口進行擴展,使得每一組軌跡傳感器分時復用P2口傳輸當前車道線檢測狀態(tài)數(shù)據(jù)到MCU。其分時復用功能是通過P3口分別控制3片74LS244的1G和2G引腳輸入電平高低來實現(xiàn)的。
如圖2所示,當車輛行駛在賽道時根據(jù)三組循跡傳感器的狀態(tài)動態(tài)確定車輛當前運行姿態(tài)和路況信息,結合輪速和轉(zhuǎn)角信息實現(xiàn)對車輛運行狀態(tài)的精確控制[7,8]。每個傳感器組均有7個傳感器組成,將各傳感器位置權值定義如圖8所示。分別定義前、中、后循跡傳感器組分別命名為SFx、SMx、SRx,各傳感器命名及取值如表1所示。
圖7 軌跡采集模塊電路
圖8 傳感器位置權值示意圖
表1 傳感器取值列表
車輛相對車道線姿態(tài)識別主要依靠SM和SR兩組傳感器反饋信息和轉(zhuǎn)向伺服轉(zhuǎn)角傳感器進行協(xié)同定位。智能小車瞬時運行情況抽象模型如圖9所示。其中A、B、C分別為前、中、后傳感器組中當前時刻處在車道中線上的傳感器(即該傳感器反饋值為1,且不在兩側(cè)車道線上),因而其權值q范圍均為-3~+3之間。車輛相對車道線姿態(tài)識別方法如下:1)讀取傳感器組反饋值;2)判斷當前車道中線觸發(fā)傳感器所處位置,并將相應權值分別付給A、B、C;3)計算B、C之差的絕對值m;4)將B、C與0對比,若B、C均大于0,則小車整體偏右,反之小車整體偏左,偏移量取B、C之和的一半,記為p;5)根據(jù)公式1計算車身行駛偏角a(單位為度,qB>qC時取正,反之取負),其中L1為車身長度;6)根據(jù)公式2確定轉(zhuǎn)向伺服電機絕對轉(zhuǎn)角b(單位為度);7)結合當前轉(zhuǎn)向伺服實際轉(zhuǎn)向角度c計算轉(zhuǎn)向伺服驅(qū)動指令參數(shù),并采用PID控制技術實現(xiàn)轉(zhuǎn)向控制。
圖9 小車運行狀態(tài)抽象模型
小車運行路況主要有直道、彎道和換道三種,如圖9所示通過OA、OC間夾角、小車行駛方向偏角以及當前轉(zhuǎn)向伺服轉(zhuǎn)角綜合判定當前路況。具體方法如下:1)讀取傳感器組反饋值;2)重復3.1節(jié)計算行駛方向偏角過程,計算偏角;3)根據(jù)公式3計算OA和OC間夾角β;4)根據(jù)公式4估算當前車道中線曲率半徑r,以識別當前路況是否為彎道以及彎道曲率半徑。
其中c為當前轉(zhuǎn)向伺服實際轉(zhuǎn)向角度。
對于換道路況的識別只需滿足傳感器組A無車道線反饋,同時傳感器組B合C均有車道線反饋這一組合條件,即可判定為換道路況。
主程序?qū)崿F(xiàn)對硬件的初始化和對控制系統(tǒng)軟件各狀態(tài)的循環(huán)檢測及各子程序調(diào)用執(zhí)行。本系統(tǒng)主要實現(xiàn)功能如下:1)初始化硬件;2)循環(huán)檢測3組軌跡傳感器反饋值;3)實時獲取輪速傳感器反饋信號并計算實時車速;4)按照3.2節(jié)所述協(xié)同策略判斷當前運行工況,并調(diào)用相關子程序?qū)崿F(xiàn)車輛實時精確控制。其流程如圖10所示,系統(tǒng)上電后將自動進行初始化,具體工作包括:配置MCU I/O口及芯片工作模式、初始化轉(zhuǎn)向伺服位置、矯正轉(zhuǎn)角傳感器初始值。初始化后循環(huán)等待行車使能信號,在接收到有效行車信號后系統(tǒng)首先讀取當前軌跡傳感器反饋值、輪速以及轉(zhuǎn)向角,并綜合判斷當前運行工況和路況。然后,根據(jù)路況識別策略及響應協(xié)調(diào)控制策略實現(xiàn)車輛實時智能控制。
在提高硬件可靠性設計的同時,軟件可靠性保證以其設計靈活、節(jié)省硬件資源及可靠性好等優(yōu)點越來越受到重視[9]。
3.4.1 傳感器信號消抖處理
行駛中的小車在加速減速或顛簸的時候都會造成傳感器的信號隨之波動,因此就需要對傳感器反饋的信號進行必要消抖處理。本文采用多次采集后去除最大和最小值然后取平均值的方法來確保采集信號的準確性。
3.4.2 軟件抗干擾
3.4.2.1 指令冗余設計
MCU 取指過程是先取操作碼,再取操作數(shù)。當PC(程序指針)受到干擾出現(xiàn)錯誤時,程序便脫離正常運行軌道,稱之為“跑飛”;此時MCU往往將一些操作數(shù)當作指令碼來執(zhí)行,引起程序混亂。當程序彈飛到某一條單字節(jié)指令上時,便自動納入正軌,但是當彈飛到某雙字節(jié)或三字節(jié)指令上時,就有可能落到其操作數(shù)上,從而繼續(xù)出錯。因此,在設計軟件時應多采用單字節(jié)指令,并在關鍵的地方人為的插入一些單字節(jié)指令或?qū)巫止?jié)指令重復書寫,這便是指令冗余。
圖10 程序流程
本文是在雙字節(jié)指令和三字節(jié)指令后插入兩次以上NOP指令。這樣即使跑飛的程序飛到操作數(shù)上,由于空操作指令NOP的存在,也可以避免了后面的指令被當作操作數(shù)執(zhí)行,從而使程序納入正軌。此外,對程序流向起重要作用的指令如返回、子程序調(diào)用、跳轉(zhuǎn)、硬件置位清零等指令前插入兩條NOP,可以將跑飛的程序納入正軌,以確保這些重要指令的正確執(zhí)行。但是使用指令冗余時也要注意:1)加入太多冗余指令將降低程序的運行效率;2)對于跑飛到程序區(qū)外的情況,將無法保證納入正軌。
3.4.2.2 設置軟件陷阱
如上所述,當跑飛的程序落到非程序區(qū)時冗余指令技術就失效了。對于此種情況本文采用設置軟件陷阱的方法予以解決。本文設計的軟件陷阱為兩條NOP指令加上一條強制跳轉(zhuǎn)指令,這樣在軟件陷阱捕捉到跑飛的程序后就會自動將之引導到錯誤處理子程序中了。
本文中軟件陷阱設置的位置如下:1)本文使用的MCU包含14個中斷,大部分在本文沒有使用,在這些沒有使用的中斷向量區(qū)設置軟件陷阱,以捕捉到錯誤的中斷。2)未使用的大片ROM程序存儲空間,本文中ROM容量為8K字節(jié),由于代碼量不大必須在沒有使用的存儲空間設置多個軟件陷阱。3)表格區(qū)域,本文中在此設置了軟件陷阱,當MCU在進行前照燈高度調(diào)節(jié)需要進行查表確認調(diào)節(jié)量;如果程序跑飛到該表格中,陷阱就可以捕捉并將之納入正軌了。4)程序區(qū),主要是針對程序中可能出現(xiàn)斷裂點的地方設置陷阱,這些指令有跳轉(zhuǎn)指令、返回指令等。
3.4.2.3 “看門狗”技術應用
當跑飛的程序在沒有碰到冗余指令和軟件陷阱之前就已經(jīng)形成一個死循環(huán)的話,以上兩種抗干擾方法就失效了。對此本文中啟用了“看門狗”技術。
本文使用的MCU自帶有WDT(看門狗定時器),考慮到本系統(tǒng)的實時性要求不高,設置看門狗刷新周期最大為159ms。在軟件循環(huán)的過程中需要定期的刷新WDT的值,為可靠性考慮每次刷新WDT之前先重置WDTCON(看門狗定時器配置字)。
在對系統(tǒng)功能需求和潛在問題分析的基礎上,從多傳感器協(xié)同的角度出發(fā),利用XC866L-4FR單片機的豐富資源和高速運算處理能力作為控制系統(tǒng)的核心,對智能小車控制系統(tǒng)硬件進行了設計改進。設計了軌跡傳感器、輪速傳感器以及轉(zhuǎn)角傳感協(xié)同方法、給出各路況下的控制策略,并進行了軟件可靠性設計。通過實車試驗小車直道行駛穩(wěn)定性和過彎速度均有明顯改善。
[1] 劉源,張文斌,劉雪揚,等.電磁導航智能車檢測和控制系統(tǒng)的研究[J].傳感器與微系統(tǒng),2012,31(4):63-66.
[2] 李東偉,王明宇,萬鵬飛,等.多傳感器協(xié)同管理技術分析[J].飛航導彈,2011,7:77-79.
[3] 陳安輝,房森林,崔巍,等.基于XC866的無刷直流電動機無位置傳感器控制系統(tǒng)研究[J].微電機,2008,7:25-28.
[4] Lai YS.Shyu F S.Chang Y S. Novel Sensorless PWM-controlled BLDCM Drives Without Using Position and Current Sensors,Filter and Center-tap Voltage[C]. in Proc.IEEE. IECON,2003: 2124-2149.
[5] 林瀟,潘雙夏,胡曉杭.一種無位置傳感器BLDC零啟動的純硬件實現(xiàn)方法[J].浙江大學學報:工學版,2008,42(9):1591-1596.
[6] 程耀強,徐德民,萬彥輝,等.基于數(shù)字濾波的激光陀螺數(shù)字信號處理算法[J].中國慣性技術學報,2013,21(1):112-130.
[7] 趙炯,王偉.基于傳感器融合技術的電動汽車自動駕駛系統(tǒng)的開發(fā)[J].制造業(yè)自動化.2013.35(5):43-46.
[8] GAO Yun-yuan,LUO Zhi-zeng.Dynamic task allocation method based on immune system for cooperative robots[C]/ /Proc of the 7th.World Conference on Intelligent and Automation.2008:1015-1020.
[9] 曹銀波,張志永,沈康,等.離子電流檢測系統(tǒng)的抗干擾設計[J].同濟大學學報(自然科學版).2012,40(9): 1369-1375.