摘 要:該智能車控制系統的硬件以MC9S12DG128單片機為核心,包括路徑檢測模塊、車速檢測模塊、舵機轉向模塊、直流電機驅動模塊、電源模塊和通訊調試模塊等部分。路徑檢測采用CMOS攝像頭,車速檢測采用安裝于后軸上的旋轉編碼器,從而分別構成了轉向和車速兩個閉環控制系統。轉向控制采用不完全微分PD控制器,速度控制采用PID控制器。兩個閉環控制系統的設定值均由主控程序給出,形成了具有分層結構的智能車控制系統。
關鍵詞:智能車;路徑跟蹤;控制器;傳感器
Abstract:The hardware of the smart car control system takes a singlechip of MC9S12DG128 as the core, including the path detecting module, the car’s speed detecting module, the rudder machine’s direction changing module, the direct current motor’s drive module, the power supply module and communication debugging module etc.The path detecting adopts the CMOS camera. The car’s speed detecting adopts the revolving encoder to be installed in the as the tail shaft of the smart car.thus they respectively constitute two closed-loop control systems which are the direction changing and the car’s speed. The direction changing control adopts the incomplete differential PD controller.The speed control adopts the PID controller.Two given values of two closed-loop control systems are both provided by the master programme, coming into being the smart control system with the layering structure.
Keyword:Smart car;Path follow;Controller; Sensor
1引言
我國自2006年起舉辦的全國大學生“飛思卡爾杯”智能汽車競賽融科學性、趣味性和觀賞性為一體,是一項以迅猛發展、前景廣闊的汽車電子為背景,涵蓋了自動控制、模式識別、傳感技術、電子、電氣、計算機、機械與汽車等多個學科專業的科技創新比賽。參賽隊伍在車模平臺基礎上,制作一個能夠自主識別路線的智能車,在專門設計的賽道上自動識別道路行駛 [sup][1][/sup]。
本文所述的智能車就是根據比賽規則要求設計并制作而成的,該智能車控制系統采用飛思卡爾半導體公司生產的16位MC9S12DG128單片機作為數字控制器,由安裝在車前部的黑白CMOS攝像頭負責采集賽道信息,并將采集到的信號經二值化處理后傳入單片機,單片機對信號進行判斷處理后,由PWM發生模塊發出PWM波對轉向舵機進行控制,完成智能車的轉向。另外,智能車后輪上裝旋轉編碼器,用來采集車輪速度的脈沖信號,單片機使用PID控制算法處理后的控制量去改變電機驅動模塊的PWM波占空比,從而控制智能車的行駛速度。
2控制方案設計和硬件電路組成
設計有效的智能車控制系統必須首先掌握控制對象的特性。根據對智能車特點的分析,可以認為智能車轉向控制系統的傳遞函數近似為一階積分加純滯后,速度控制對象的傳遞函數近似為一階慣性加純滯后的結論。
轉向控制系統主要是要求響應速度快,對穩態控制精度要求不高。而且控制對象只有積分和滯后環節,沒有常見的慣性環節。根據以上特點,轉向控制采用PD控制器。
對速度進行檢測和控制的意義在于盡可能使智能車按照道路條件允許的最高速度行駛。
在彎道應將車速限制為不脫軌的最高速度,在直道應當適當進行急加速以縮短單圈運行時間,提高比賽成績。同時,對速度信號進行積分求和可以得到賽道長度信息,為道路識別與記憶模塊提供數據。智能車速度控制系統的精度不需要太高,關鍵是如何快速響應賽道的路況變化。因此速度控制采用PID控制器。針對不同的道路狀況迅速準確地改變車速,實現穩定過彎。
智能車的硬件電路主要由視頻處理模塊、方向控制模塊和車速控制模塊組成。各模塊與單片機之間的關系如圖1所示。
3 模塊功能
(1)視頻處理模塊。視頻處理模塊由CMOS攝像頭、二值化電路和同步分離電路構成。
(2)轉向控制模塊。轉向控制模塊主要由舵機完成。舵機的轉動會轉化為車模轉向拉桿的橫向移動,從而帶動車模前輪的轉動,控制智能車的行駛方向。舵機的轉向控制采用PD控制,根據賽道中央黑線的位置,單片機向舵機輸出相應占空比的PWM信號。
(3)車速控制模塊。車速控制模塊主要由直流電機、驅動電路和旋轉編碼器構成。根據CMOS攝像頭所檢測的路徑信息判斷智能車當前所處的賽道狀況,并根據旋轉編碼器所檢測的實際車速形成對智能車行駛速度的閉環控制,合理地調整數字PID控制算法的Kp、Ki、Kd三個參數,達到車速響應迅速并消除靜態誤差的目的。
[b]4 電路設計
[/b] (1)電源模塊設計。電源模塊要為單片機、傳感器、舵機和驅動電機供電。因此需要提供多種電源滿足各個模塊的要求。電池在完全充滿之后空載電壓只有8v左右,并隨著電池的消耗,電壓逐漸降低。電機啟動及反接制動時電流很大,也有可能將電池電壓拉得比較低。為了避免電源電壓不穩定,影響攝像頭視頻處理電路和單片機工作不正常,在本設計方案中使用了DC-DC變換芯片MC34063以及低差壓穩壓器LM2940。MC34063輸出穩定的8伏電壓提供給CMOS攝像頭,LM2940為16位MC9S12DG128單片機、視頻放大及二值化電路提供穩定的5伏電源,保證了系統在各種情況下的穩定運行。電源模塊原理圖如圖2所示。

(2)直流電機驅動模塊設計。直流電機驅動采用飛思卡爾公司的5A 集成H橋芯片MC33886。MC33886芯片內置了控制邏輯、電荷泵、門驅動電路以及低導通電阻的MOSFET輸出電路,適合用來控制感性直流負載(例如直流電機)。可以提供連續的5A電流,并且集成了過流保護、過熱保護、欠壓保護。通過控制MC33886 的四根輸入線可以方便地實現電機正轉、能耗制動及反接制動。圖3為經過簡化的H橋電路,當S1、S4 導通且S2、S3 截止時,電流正向流過直流電機,智能車前進;當S2、S3 導通且S1、S4 截止時,電流反向流過直流電機,適當利用這個過程可以使車模處于反接制動的狀態,迅速降低車速;當S3、S4導通且S1、S2 截止時,沒有電源加在直流電機上,直流電機電樞兩端相當于短接在一起。由于電機軸在外力作用下旋轉時,電機可以產生電能,此時可以把直流電動機看作一個帶了很重負載的發電機,電機上會產生一個阻礙輸出軸運動的力,這個力的大小與負荷的大小成正比,此時電機處于能耗制動狀態。
本設計方案中采用兩片MC33886并聯,一方面減小導通電阻對直流電機特性的影響,另一方面減小MC33886內部的過流保護電路對電機啟動及制動時的影響。直流電機驅動模塊電路原理圖如圖4所示。
(3)傳感器電路設計。智能車采用CMOS攝像頭作為圖像傳感器,保證賽道信息采集準確有效。CMOS攝像頭的輸出信號是PAL制式的復合全電視信號,每秒輸出50幀(分為偶場和奇場)。當CMOS攝像頭采集圖像時,偶場和奇場不是同時采集的,因此,可以在每場信號都對路徑進行識別。
(4)無線數據傳輸模塊設計。智能車加裝了基于射頻收發芯片nRF403的無線數據傳輸模塊,并在此基礎上實現了MODBUS 通信協議,在測試智能車參數及程序調試的過程中很有幫助。在運行的過程中可以將智能車的各項參數實時地發送上來,分析智能車的運行狀態可以更有針對性地對控制程序進行改進。在調試運動參數的過程中,可以通過上位機軟件改變如Kp、Ki、Kd 等參數,而不用重新燒寫程序,迅速而方便。
5 軟件設計
智能車控制系統程序結構如圖5所示,這是一個兩層的分級控制系統。底層控制系統包括“轉向控制系統”和“車速控制系統” ,上層主控程序通過改變底層控制系統的設定值、控制參數和約束條件的方法,對整個控制系統進行調度。設計這種分層結構的控制系統是參照了集散控制系統DCS的結構特點,程序各部分功能明確、結構清晰,便于調試和維護。為了調試方便,主控程序中添加了基于無線信道的MODBUS通訊協議,對智能車行駛參數的監視和調整提供了很大的便利。
軟件所實現的功能有:
①初始化。
②數據采集及濾波處理。為了盡量減少引入的純滯后時間,本文提出了一種獨特的具有創新性的視頻信號采集方法,即用MC9S12DG128 單片機提供的SPI 口直接讀取經過二值化處理的視頻信號。大賽規則中指定了賽道上黑色引導線的寬度為2.5 厘米,故攝像頭中采集到的引導線寬度在正常情況下也應當落在一定范圍內。可以用實驗的方法測得引導線對應的像素寬度,然后在濾波程序中對采集到的引導線線寬進行控制,如果超出正常范圍即認為是無效數據。實驗證明,這種方法可以有效地將干擾濾除。
③道路識別。智能車分層控制系統的核心是賽道的識別。實際測試發現由于CMOS攝像頭的可視范圍比較小而且視野范圍呈梯形,在快速運動中經常發生賽道部分甚至全部脫離視野范圍的情況,給賽道識別帶來很大的困難,因此完整識別賽道模式幾乎是不可能的。為了簡化問題,本方案只識別賽道中的直線段,根據直線段的數量和長度將賽道分割成不同的區域,在一個區域中對控制參數進行優化。
④電機控制。單片機通過接收旋轉編碼器檢測智能車后輪轉動所產生的脈沖數,采用位置式PID控制算法的遞推形式對直流電機的轉速進行快速準確地控制。
位置式PID控制算法的遞推形式:
Δu(k) =Kp[e(k) -e(k-1)] +Ki×e(k) +Kd[e(k) -2e(k-1) +e(k-2)],u(k) =u(k-1) +Δu(k)
式中:u(k)為k時刻控制器的輸出; e(k)為k時刻的偏差;Kp、Ki、Kd分別為位置式PID控制算法的比例系數、積分常數和微分常數[sup][7][/sup]。
⑤舵機控制。單片機通過CMOS攝像頭檢測到的路徑信息,采用不完全微分PD控制算法控制舵機的轉角,實現路徑跟蹤。
6 結語
本文介紹了一種智能車控制系統的設計與實現。圖5為已制作完成的智能車實物照片。通過大量實驗測試證明該智能車能快速平穩地在制作的賽道上跟蹤黑色引導線行駛,尋跡效果良好,速度控制響應快,動態性能良好,穩態誤差較小,系統的穩定性和抗干擾能力強。在2008舉辦的全國大學生“飛思卡爾杯”智能汽車競賽中取得了華北賽區二等獎的好成績,
充分證明了設計方案的有效性和穩定性。
參考文獻(References):
[1]http://www.smartcar.org.cn
[2] 卓晴,王琎, 王磊. 基于面陣CCD 路徑參數檢測方法[J].電子產品世界.2006 年4 月
[3] 黃開勝,金華民,蔣狄南.韓國智能模型車技術方案分析[J].電子產品世界.2006 年3 月
[4] MC9S12DT128 Device User Guide[Z] 9S12DT128DGV2/D V02.15 2005
[5] 王京起,陳慧巖,鄭培.應用模糊自適應PID 和預瞄策略的自主車輛轉向控制[J].25(4)
汽車工程.2003
[6] 王志中,王榮本,張友坤,李兵.自動引導車輛轉向系統的辨識建模[J].農業工程學報15(2).1999
[7] 賴壽宏.微型計算機控制技術[M].北京.機械工業出版社.2000年5月
[8] 陳宋,李立國,黃開勝.智能模型車底盤淺析[J]. .電子產品世界.2006年6月