智能無人駕駛汽車計算機控制系統(tǒng)
一、智能無人駕駛汽車計算機控制系統(tǒng)簡介
1、智能無人駕駛簡介
智能無人駕駛汽車是一個集環(huán)境感知、規(guī)劃決策、多等級輔助駕駛等功能于一體的綜合系統(tǒng),對車輛的操作實質(zhì)上可視為對一個多輸入、多輸出、輸入輸出關(guān)系復(fù)雜多變、不確定多干擾源的復(fù)雜非線性系統(tǒng)的控制過程。駕駛員既要接受環(huán)境如通路、擁擠、方向、行人等的信息,還要感受汽車如車速、側(cè)性偏移、橫擺角速度等的信息,然后經(jīng)過判斷分析和決策,并與自己的駕駛經(jīng)驗相比較,確定出應(yīng)該做的操縱動作,最后由身體、手、腳等來完成操縱車輛的動作。因此在整個駕駛過程中,駕駛員的人為因素占了很大的比重。一旦出現(xiàn)駕駛員長時間駕車、疲勞駕車、判斷失誤的情況,很容易造成交通事故。
二、系統(tǒng)的控制要求
(1)系統(tǒng)中心控制部件(單片機)可靠性高,抗干擾能力強,工作頻率最高可達到25MHz,能保障系統(tǒng)的實時性。
(2)系統(tǒng)在軟硬件方面均應(yīng)采用抗干擾技術(shù),包括光電隔離技術(shù)、電磁兼容性分析、數(shù)字濾波技術(shù)等。
(3)系統(tǒng)具有電源實時監(jiān)控、欠壓狀態(tài)自動斷電功能。
(4)系統(tǒng)具有故障自診斷功能。
(5)系統(tǒng)具有良好的人性化顯示模塊,可以將系統(tǒng)當(dāng)前狀態(tài)的重要參數(shù)(如智能車速度、電源電壓)顯示在LCD上。
(6)系統(tǒng)中汽車驅(qū)動力為500N時,汽車將在5秒內(nèi)達到10m/s的最大速度。
一、 系統(tǒng)總體方案設(shè)計
1、系統(tǒng)總體結(jié)構(gòu)
整個系統(tǒng)主要由車模、模型車控制系統(tǒng)及輔助開發(fā)系統(tǒng)構(gòu)成。
智能車系統(tǒng)的功能模塊主要包括:控制核心模塊、電源管理模塊、路徑識別模塊、后輪電機驅(qū)動模塊、轉(zhuǎn)向舵機控制模塊、速度檢測模塊、電池監(jiān)控模塊、小車故障診斷模塊、LCD數(shù)據(jù)顯示模塊及調(diào)試輔助模塊。每個模塊都包括硬件和軟件兩部分。硬件為系統(tǒng)工作提供硬件實體,軟件為系統(tǒng)提供各種算法。
2、控制機構(gòu)與執(zhí)行機構(gòu)
智能車主要通過自制小車來模擬執(zhí)行機構(gòu),自制小車長為34.6cm,寬為24.5cm,重為1.2kg,采樣周期為3ms,檢測精度為4mm。
控制機構(gòu)中,主控制核心采用freescale16位單片機MC9S12DG128B。系統(tǒng)在CodeWarrior軟件平臺基礎(chǔ)上設(shè)計完成,采用C語言和匯編語言混合編程,提供強大的輔助模塊,包括電池檢測模塊、小車故障診斷模塊、LCD數(shù)據(jù)顯示模塊以及調(diào)試輔助模塊。在路徑識別模塊,系統(tǒng)利用了freescaleS12系列單片機提供的模糊推理機。
3、控制規(guī)律
因為系統(tǒng)電機控制模塊控制小車的運動狀態(tài),其在不同階段特性參數(shù)變化很大,故采用數(shù)字PID控制器,該控制器技術(shù)成熟,結(jié)構(gòu)簡單,參數(shù)容易調(diào)整,不一定需要系統(tǒng)的確切數(shù)字模型。
4、系統(tǒng)各模塊的主要功能
控制核心模塊:使用freescale16位單片機MC9S12DG128B,主要功能是完成采集信號的處理和控制信號的輸出。
電源管理模塊:對電池進行電壓調(diào)節(jié),為各模塊正常工作提供可靠的電壓。
路徑識別模塊:完成跑道信息的采集、預(yù)處理以及數(shù)據(jù)識別。
后輪電機驅(qū)動模塊:為電機提供可靠的驅(qū)動電路和控制算法。
轉(zhuǎn)向舵機控制模塊:為舵機提供可靠的控制電路和控制算法。
速度檢測模塊:為電機控制提供準確的速度反饋。
電池監(jiān)控模塊:對電池電量進行實時監(jiān)控,以便科學(xué)的利用,保護電池。
小車故障診斷模塊:對小車故障進行快速、準確的診斷。
LCD數(shù)據(jù)顯示模塊:顯示系統(tǒng)當(dāng)前狀態(tài)的重要參數(shù)。
調(diào)試輔助模塊:使得小車調(diào)試更加方便。
5、系統(tǒng)的開發(fā)平臺
系統(tǒng)軟件開發(fā)平臺采用CodeWarrior for S12
二、系統(tǒng)硬件和軟件設(shè)計
1、系統(tǒng)的硬件設(shè)計
系統(tǒng)硬件系統(tǒng)框圖如下:
以下按各模塊來分別設(shè)計本硬件電路:
(1)電源管理模塊:
電源管理模塊的功能對電池進行電壓調(diào)節(jié),為各個模塊正常工作提供可靠的工作電壓。電源管理模塊采用7.2V、2000mAh鎳鎘電池以及LM2576(5V),LM317(6V)穩(wěn)壓芯片構(gòu)成。
(2)微處理器:采用微處理器MC9S12DG128
(3)路徑識別模塊:
紅外發(fā)射管和紅外接收管以及達林頓管ULN2803A作為路徑識別的傳感器。采用雙排傳感器的策略,第一排傳感器專門用于識別路徑以及記憶路徑的各種特征點,第二排傳感器專門用于識別起始位置與十字交叉路口,由于不同傳感器的功能不一樣,因此它們的布置與安裝位置也是不同。
(4)后輪驅(qū)動和速度檢測模塊:
驅(qū)動直流電機的型號為RS—380SH,輸出功率為0.9W—40W。電機驅(qū)動部分采用了兩塊MC33886組成的全橋式驅(qū)動電路,可以控制電機的反轉(zhuǎn)以達到制動的目的。
(5)轉(zhuǎn)向舵機模塊:
凡是需要操作性動作時都可以用舵機來實現(xiàn)。本設(shè)計采用的舵機型號為HS—925(SANWA),尺寸為39.4*37.8*27.8,重量56kg,工作速度0.11sec/60(4.8V),0.07sec/60(6.0V),堵轉(zhuǎn)力矩6.1kg。
(6)電源電壓檢測模塊
智能車采用鎳鎘電池供電,本模塊用到的主要器件為光電耦合芯片TLP521—2以及運算放大器LM324。
(7)液晶顯示模塊:LCD控制器HD44780。
(8)輔助調(diào)試模塊(紅外遙控):
本模塊主要用紅外接收器HS0038A和紅外遙控器來進行遙控控制。
(9)故障診斷模塊:
利用單片機的SCIO口,通過RS—232接口與上位機連接起來,通過軟件編程,小車不斷的向上位機發(fā)送代碼,通過故障代碼就可以馬上診斷出故障源。
2、系統(tǒng)的軟件設(shè)計
(1)后輪驅(qū)動電機控制算法
采用數(shù)字控制器的連續(xù)化設(shè)計技術(shù)PID控制算法來控制本部分電路。
PID控制器的傳遞函數(shù)為:
設(shè)定Kp= 1500進行測試,此時仿真靜態(tài)值與靜態(tài)誤差以及上升時間已基本滿足系統(tǒng)需求,從而完全可以通過繼續(xù)增加比例系數(shù)來調(diào)節(jié)系統(tǒng)特性,進而理論上可以省去積分環(huán)節(jié)。但是隨著比例系數(shù)的增加動態(tài)過程將讓人不滿意,其動態(tài)變化將過快,從而給駕駛?cè)藛T帶來身體上的不適,增加積分環(huán)節(jié):
積分環(huán)節(jié)的加入可以調(diào)節(jié)系統(tǒng)的靜態(tài)誤差。設(shè)定Kp=1000,Ki= 50系統(tǒng)基本實現(xiàn)設(shè)計要求
所以綜上所述,我們設(shè)計的PID控制器的傳遞函數(shù)為:
,采樣周期為T=0.1s。
然后,利用數(shù)字控制器的離散化設(shè)計步驟來設(shè)計本系統(tǒng)。通過前面的分析,知道被控對象的連續(xù)傳遞函數(shù)為:
。其中,m=1000,b=50。因為零階保持器的傳遞函數(shù)為:
。所以得到廣義對象的脈沖傳遞函數(shù)為:
對單位脈沖輸入信號的十倍,
,選擇
。
在十倍的單位階躍信號,采樣周期為1s時,只需一拍輸出就能跟蹤輸入,誤差為零,非常好的達到了系統(tǒng)的設(shè)計要求。
(2)路徑識別模塊的軟件設(shè)計
路徑識別主要運用MC9S12DG128B內(nèi)部的模糊推理機運用模糊邏輯的基本知識來實現(xiàn)。
(3)數(shù)字濾波技術(shù)
在電動機數(shù)字閉環(huán)控制系統(tǒng)中,測量值是通過系統(tǒng)的輸出量進行采樣而得到的。它與給定值r(t)之差形成偏差信號,所以,測量值是決定偏差大小的重要數(shù)據(jù)。測量值如果不能真實地反映系統(tǒng)的輸出,那么這個控制系統(tǒng)就會失去它的作用。在實際中,對電動機輸出的測量值?;煊懈蓴_噪聲,用混有干擾的測量值作為控制信號,將引起誤動作,在有微分控制環(huán)節(jié)的系統(tǒng)中還會引起系統(tǒng)震蕩,危害極大。
在本系統(tǒng)設(shè)計中,采用了移動平均濾波法。移動平均濾波法沒計算一次測量值,只需采樣一次,所以大大加快了數(shù)據(jù)處理速度,非常適合于實時控制。
移動平均濾波法是將采樣后的數(shù)據(jù)按采樣時刻的先后順序存放在RAM中,在每次計算前先順序移動數(shù)據(jù),將隊列前的最先采樣的數(shù)據(jù)移出,然后將最新采樣的數(shù)據(jù)補充到隊列的尾部,以保證數(shù)據(jù)緩沖區(qū)里總有n個數(shù)據(jù),并且數(shù)據(jù)仍按采樣的先后順序排列。這時計算隊列中各數(shù)據(jù)的算術(shù)平均值,這個算術(shù)平均值就是測量值,它實現(xiàn)了每采樣一次,就計算一個。
(4)轉(zhuǎn)向舵機控制算法
舵機控制是智能車系統(tǒng)中很重要的一個環(huán)節(jié),舵機控制的好壞也直接影響了小車的控制效果,舵機的控制信號為20ms的脈寬調(diào)制信號,其中脈沖寬度從0.5ms—2.5ms,相對應(yīng)舵盤的位置為0—180度,呈線性變化。也就是說,給它一定的脈寬,它的輸出軸就會保持在一個相對應(yīng)的角度上,無論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個另外寬度的脈沖信號,它才會改變輸出角度到新的對應(yīng)的位置上。
(5)速度檢測軟件設(shè)計
速度傳感器采用紅外對射式傳感器,傳感器感應(yīng)出與速度相關(guān)的脈沖后,接下來就要識別這些脈沖。有兩種方法可以識別,一種是通過測量脈沖的寬度來識別小車的速度,另一種是通過計算一定時間內(nèi)的脈沖的個數(shù)來識別小車的速度。本設(shè)計采用后一種方法。在本設(shè)計中利用了MC9S12DG128B內(nèi)部的兩個資源,分別是RTI中斷和輸入捕捉中斷:通過RTI中斷,可以控制一定的時間,這段時間是固定的;通過輸入捕捉中斷,來計算捕獲脈沖的個數(shù),最后通過在這段時間內(nèi)捕獲的脈沖個數(shù)來反映小車速度的大小。
一、 系統(tǒng)設(shè)計總結(jié)
該智能車控制系統(tǒng)智能化程度較高,使用操作簡單,性能可靠;采用專用單片機控制系統(tǒng),提高系統(tǒng)工作可靠性;智能化程度較高,在一定程度下,基本不用人工操作;采用LCD液晶顯示,人機交互化程度較高。