基于9S12DG128的智能車(chē)控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
0 引言
我國(guó)自2006年起舉辦的全國(guó)大學(xué)生“飛思卡爾杯”智能汽車(chē)競(jìng)賽融科學(xué)性、趣味性和觀賞性為一體,是一項(xiàng)以迅猛發(fā)展、前景廣闊的汽車(chē)電子為背景,涵蓋了自動(dòng)控制、模式識(shí)別、傳感技術(shù)、電子、電氣、計(jì)算機(jī)、機(jī)械與汽車(chē)等多個(gè)專(zhuān)業(yè)學(xué)科的科技創(chuàng)新比賽。參賽隊(duì)伍應(yīng)在車(chē)模平臺(tái)基礎(chǔ)上,制作一個(gè)能夠自主識(shí)別路線(xiàn)的智能車(chē),然后在專(zhuān)門(mén)設(shè)計(jì)的賽道上自動(dòng)識(shí)別道路并行駛。本文所述的智能車(chē)就是根據(jù)比賽規(guī)則要求設(shè)計(jì)并制作而成的,該智能車(chē)控制系統(tǒng)采用飛思卡爾半導(dǎo)體公司生產(chǎn)的16位MC9S12DG128單片機(jī)作為數(shù)字控制器,由安裝在車(chē)前部的黑白CMOS攝像頭負(fù)責(zé)采集賽道信息,并將采集到的信號(hào)經(jīng)二值化處理后傳人單片機(jī),在單片機(jī)對(duì)信號(hào)進(jìn)行判斷處理后,由PWM發(fā)生模塊發(fā)出PWM波對(duì)轉(zhuǎn)向舵機(jī)進(jìn)行控制,從而完成智能車(chē)的轉(zhuǎn)向。另外,智能車(chē)后輪上裝有旋轉(zhuǎn)編碼器,可用來(lái)采集車(chē)輪速度的脈沖信號(hào),然后由單片機(jī)使用PID控制算法處理后的控制量去改變電機(jī)驅(qū)動(dòng)模塊的PWM波占空比,從而控制智能車(chē)的行駛速度。
1 系統(tǒng)硬件電路組成
設(shè)計(jì)有效的智能車(chē)控制系統(tǒng)必須首先掌握控制對(duì)象的特性。根據(jù)對(duì)智能車(chē)特點(diǎn)的分析,可以認(rèn)為,智能車(chē)轉(zhuǎn)向控制系統(tǒng)的傳遞函數(shù)近似為一階積分加純滯后,速度控制對(duì)象的傳遞函數(shù)則近似為一階慣性加純滯后的結(jié)論。
轉(zhuǎn)向控制系統(tǒng)主要是要求響應(yīng)速度快,但對(duì)穩(wěn)態(tài)控制精度要求不高。而且控制對(duì)象只有積分和滯后環(huán)節(jié),沒(méi)有常見(jiàn)的慣性環(huán)節(jié)。根據(jù)以上特點(diǎn),本轉(zhuǎn)向控制可采用PD控制器。
對(duì)速度進(jìn)行檢測(cè)和控制的意義在于盡可能使智能車(chē)按照道路條件允許的最高速度行駛。在彎道應(yīng)將車(chē)速限制為不脫軌的最高速度,在直道則應(yīng)適當(dāng)進(jìn)行急加速以縮短單圈運(yùn)行時(shí)間,提高比賽成績(jī)。同時(shí),對(duì)速度信號(hào)進(jìn)行積分求和可以得到賽道長(zhǎng)度信息,以便為道路識(shí)別與記憶模塊提供數(shù)據(jù)。智能車(chē)速度控制系統(tǒng)的精度不需要太高,關(guān)鍵是如何快速響應(yīng)賽道的路況變化。因此,速度采用PID控制,以便針對(duì)不同的道路狀況可以迅速準(zhǔn)確地改變車(chē)速,實(shí)現(xiàn)穩(wěn)定過(guò)彎。智能車(chē)的硬件電路主要由視頻處理模塊、方向控制模塊和車(chē)速控制模塊組成。各模塊與單片機(jī)之間的硬件關(guān)系如圖1所示。
本系統(tǒng)中的視頻處理模塊由CMOS攝像頭、二值化電路和同步分離電路構(gòu)成;轉(zhuǎn)向控制模塊主要由舵機(jī)完成。舵機(jī)的轉(zhuǎn)動(dòng)會(huì)轉(zhuǎn)化為車(chē)模轉(zhuǎn)向拉桿的橫向移動(dòng),從而帶動(dòng)車(chē)模前輪的轉(zhuǎn)動(dòng),以控制智能車(chē)的行駛方向。舵機(jī)的轉(zhuǎn)向控制采用PD控制,單片機(jī)可以根據(jù)賽道中央黑線(xiàn)的位置向舵機(jī)輸出相應(yīng)占空比的PWM信號(hào)。
車(chē)速控制模塊主要由直流電機(jī)、驅(qū)動(dòng)電路和旋轉(zhuǎn)編碼器構(gòu)成。該模塊可根據(jù)CMOS攝像頭所檢測(cè)的路徑信息判斷智能車(chē)當(dāng)前所處的賽道狀況,并根據(jù)旋轉(zhuǎn)編碼器所檢測(cè)的實(shí)際車(chē)速形成對(duì)智能車(chē)行駛速度的閉環(huán)控制,合理地調(diào)整數(shù)字PID控制算法的Kp,Ki、Kd三個(gè)參數(shù),以達(dá)到迅速響應(yīng)車(chē)速并消除靜態(tài)誤差之目的。
2 電路設(shè)計(jì)
2.1 電源模塊設(shè)計(jì)
電源模塊要為單片機(jī)、傳感器、舵機(jī)和驅(qū)動(dòng)電機(jī)供電。因此需要提供多種電源以滿(mǎn)足各個(gè)模塊的要求。電池在完全充滿(mǎn)之后,其空載電壓只有8 V左右,而且隨著電池的消耗,電壓逐漸降低。此外,電機(jī)啟動(dòng)及反接制動(dòng)時(shí)的電流很大,也有可能將電池電壓拉得更低。為了避免電源電壓不穩(wěn)定,影響攝像頭視頻處理電路和單片機(jī)的正常工作,本設(shè)計(jì)使用了DC-DC變換芯片MC34063以及低差壓穩(wěn)壓器LM2940。MC34063可輸出穩(wěn)定的8V電壓給CMOS攝像頭,LM2940則可為16位MC9S12DG128單片機(jī)、視頻放大及二值化電路提供穩(wěn)定的5 V電源,從而保證了系統(tǒng)在各種情況下的穩(wěn)定運(yùn)行。其電源模塊電路原理圖如圖2所示。
2.2 直流電機(jī)驅(qū)動(dòng)模塊設(shè)計(jì)
直流電機(jī)驅(qū)動(dòng)采用飛思卡爾公司的5 A集成H橋芯片MC33886。MC33886芯片內(nèi)置有控制邏輯、電荷泵、門(mén)驅(qū)動(dòng)電路以及低導(dǎo)通電阻的MOSFET輸出電路。適合用來(lái)控制感性直流負(fù)載(如直流電機(jī))。該芯片可以提供連續(xù)的5 A電流,并集成有過(guò)流保護(hù)、過(guò)熱保護(hù)、欠壓保護(hù)電路。通過(guò)控制MC33886的四根輸入線(xiàn)可以方便地實(shí)現(xiàn)電機(jī)正轉(zhuǎn)、能耗制動(dòng)及反接制動(dòng)。圖3是經(jīng)過(guò)簡(jiǎn)化的H橋電路,圖中,當(dāng)S1、S4導(dǎo)通且S2、S3截止時(shí),電流正向流過(guò)直流電機(jī),智能車(chē)前進(jìn);當(dāng)S2、S3導(dǎo)通且S1、S4截止時(shí),電流反向流過(guò)直流電機(jī),利用這個(gè)過(guò)程可以使車(chē)模處于反接制動(dòng)狀態(tài),從而迅速降低車(chē)速;當(dāng)S3、S4導(dǎo)通且S1、S2截止時(shí),沒(méi)有電源加在直流電機(jī)上,直流電機(jī)電樞兩端相當(dāng)于短接在一起。由于電機(jī)軸在外力作用下旋轉(zhuǎn)時(shí)。電機(jī)可以產(chǎn)生電能,此時(shí)可以把直流電動(dòng)機(jī)看作一個(gè)帶了很重負(fù)載的發(fā)電機(jī),此時(shí)電機(jī)上會(huì)產(chǎn)生一個(gè)阻礙輸出軸運(yùn)動(dòng)的力,這個(gè)力的大小與負(fù)荷的大小成正比,這時(shí)電機(jī)處于能耗制動(dòng)狀態(tài)。
本方案采用了兩片MC33886并聯(lián),一方面減小導(dǎo)通電阻對(duì)直流電機(jī)特性的影響,另一方面,可以減小MC33886內(nèi)部過(guò)流保護(hù)電路對(duì)電機(jī)啟動(dòng)及制動(dòng)的影響。直流電機(jī)驅(qū)動(dòng)模塊的電路原理圖如圖4所示。
2.3 傳感器電路設(shè)計(jì)
本智能車(chē)采用CMOS攝像頭作為圖像傳感器,以保證賽道信息采集的準(zhǔn)確有效。CMOS攝像頭的輸出信號(hào)是PAL制式的復(fù)合全電視信號(hào),每秒輸出50幀(分為偶場(chǎng)和奇場(chǎng))。由于CMOS攝像頭采集圖像時(shí),偶場(chǎng)和奇場(chǎng)不是同時(shí)采集的。因此,可以在每場(chǎng)信號(hào)都對(duì)路徑進(jìn)行識(shí)別。
2.4 無(wú)線(xiàn)數(shù)據(jù)傳輸模塊設(shè)計(jì)
該智能車(chē)加裝了基于射頻收發(fā)芯片nRF403的無(wú)線(xiàn)數(shù)據(jù)傳輸模塊,并可在此基礎(chǔ)上實(shí)現(xiàn)MOD-BUS通信協(xié)議,這對(duì)測(cè)試智能車(chē)參數(shù)及程序調(diào)試很有幫助。在運(yùn)行的過(guò)程中,可以將智能車(chē)的各項(xiàng)參數(shù)實(shí)時(shí)發(fā)送上來(lái),而分析智能車(chē)的運(yùn)行狀態(tài)可以更有針對(duì)性地對(duì)控制程序進(jìn)行改進(jìn)。事實(shí)上,在調(diào)試運(yùn)動(dòng)參數(shù)的過(guò)程中,可以通過(guò)上位機(jī)軟件改變Kp、Ki、Kd等參數(shù),而不用重新燒寫(xiě)程序,因而十分迅速而方便。
3 軟件設(shè)計(jì)
本智能車(chē)控制系統(tǒng)的程序結(jié)構(gòu)如圖5所示。這是一個(gè)兩層的分級(jí)控制系統(tǒng)。底層控制包括“轉(zhuǎn)向控制系統(tǒng)”和“車(chē)速控制系統(tǒng)”,上層主控程序則可通過(guò)改變底層控制系統(tǒng)的設(shè)定值、控制參數(shù)和約束條件,來(lái)對(duì)整個(gè)控制系統(tǒng)進(jìn)行調(diào)度。設(shè)計(jì)這種分層結(jié)構(gòu)的控制系統(tǒng)是參照了集散控制系統(tǒng)DCS的結(jié)構(gòu)特點(diǎn),程序各部分功能明確、結(jié)構(gòu)清晰,便于調(diào)試和維護(hù)。為了調(diào)試方便,同時(shí)在主控程序中添加了基于無(wú)線(xiàn)信道的MODBUS通訊協(xié)議,因而對(duì)智能車(chē)行駛參數(shù)的監(jiān)視和調(diào)整提供了很大的便利。
本系統(tǒng)軟件所實(shí)現(xiàn)的功能主要是初始化、數(shù)據(jù)采集和濾波處理、道路識(shí)別、電機(jī)控制和舵機(jī)控制等。其中初始化主要是設(shè)置系統(tǒng)默認(rèn)參數(shù)。其次是數(shù)據(jù)采集及濾波處理。為了盡量減少引入的純滯后時(shí)間,本文提出了一種獨(dú)具創(chuàng)新性的視頻信號(hào)采集方法。即用MC9S12DG128單片機(jī)提供的SPI口直接讀取經(jīng)過(guò)二值化處理的視頻信號(hào)。由于大賽規(guī)則中指定了賽道上黑色引導(dǎo)線(xiàn)的寬度為2.5厘米,故攝像頭中采集到的引導(dǎo)線(xiàn)寬度在正常情況下也應(yīng)當(dāng)落在一定范圍內(nèi)。設(shè)計(jì)時(shí)可以用實(shí)驗(yàn)的方法測(cè)得引導(dǎo)線(xiàn)對(duì)應(yīng)的像素寬度,然后在濾波程序中對(duì)采集到的引導(dǎo)線(xiàn)線(xiàn)寬進(jìn)行控制,如果超出正常范圍即認(rèn)為是無(wú)效數(shù)據(jù)。
實(shí)驗(yàn)證明,這種方法可以有效地濾除干擾。智能車(chē)分層控制系統(tǒng)的核心是賽道的識(shí)別。實(shí)際測(cè)試發(fā)現(xiàn),由于CMOS攝像頭的可視范圍比較小而且視野范圍呈梯形,且在快速運(yùn)動(dòng)中經(jīng)常發(fā)生賽道部分可能全部脫離視野范圍的情況,給賽道識(shí)別帶來(lái)很大的困難,因此,完整賽道識(shí)別模式幾乎是不可能的。為了簡(jiǎn)化問(wèn)題,本方案只識(shí)別賽道中的直線(xiàn)段,并根據(jù)直線(xiàn)段的數(shù)量和長(zhǎng)度將賽道分割成不同的區(qū)域,然后在一個(gè)區(qū)域中對(duì)控制參數(shù)進(jìn)行優(yōu)化。
至于電機(jī)控制。本系統(tǒng)是用單片機(jī)通過(guò)接收旋轉(zhuǎn)編碼器來(lái)檢測(cè)智能車(chē)后輪轉(zhuǎn)動(dòng)所產(chǎn)生的脈沖數(shù),然后采用位置式PID控制算法的遞推形式對(duì)直流電機(jī)的轉(zhuǎn)速進(jìn)行快速準(zhǔn)確地控制。位置式PID控制算法的遞推形式如下:
△u(k)=Kp[e(k)-e(k-1)]+Kixe(k)+Kd[e(k)-2e(k-1)+e(k-2)],u(k)=u(k-1)+△u(k)
式中:u(k)為k時(shí)刻控制器的輸出;e(k)為k時(shí)刻的偏差;Kp、Ki、Kd分別為位置式PID控制算法的比例系數(shù)、積分常數(shù)和微分常數(shù)。舵機(jī)控制也是用單片機(jī)通過(guò)CMOS攝像頭來(lái)檢測(cè)路徑信息,然后采用不完全微分PD控制算法來(lái)控制舵機(jī)的轉(zhuǎn)角,從而實(shí)現(xiàn)路徑跟蹤。
4 結(jié)束語(yǔ)
本文介紹了一種智能車(chē)控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法。通過(guò)大量實(shí)驗(yàn)測(cè)試證明,該智能車(chē)能快速平穩(wěn)地在制作的賽道上跟蹤黑色引導(dǎo)線(xiàn)并行駛,而且尋跡效果良好,控制響應(yīng)速度快,動(dòng)態(tài)性能良好,穩(wěn)態(tài)誤差小,系統(tǒng)的穩(wěn)定性和抗干擾能力強(qiáng)。用本設(shè)計(jì)制作的智能車(chē)在2008年舉辦的全國(guó)大學(xué)生“飛思卡爾杯”智能汽車(chē)競(jìng)賽中取得了華北賽區(qū)二等獎(jiǎng),充分證明了該設(shè)計(jì)方案的有效性和穩(wěn)定性。
評(píng)論