劉昌林
蘇州大學(xué)機(jī)電工程學(xué)院 江蘇蘇州 215007
隨著當(dāng)今世界信息化技術(shù)的不斷發(fā)展和進(jìn)步,人工智能也在不斷地飛速發(fā)展,同時(shí)也受到人們?nèi)找娴年P(guān)注。其中智能小車是人們關(guān)注和研究的熱點(diǎn)方向之一,它可以幫助人們完成許多事情,尤其是在一些復(fù)雜和危險(xiǎn)的路況環(huán)境中可以發(fā)揮更加重要的作用。比如,它可以幫助人們完成貨物搬運(yùn)、設(shè)備檢測、路況探尋、人員搜救等任務(wù)。對智能小車而言,要使其完成人們所需要的功能,正確地行駛在人們規(guī)劃好的路線并躲避障礙物是智能小車技術(shù)實(shí)現(xiàn)的關(guān)鍵所在。
智能小車技術(shù)實(shí)現(xiàn)的重點(diǎn)問題在于:(1)智能避障。(2)自動循跡?;诖吮尘埃疚囊許TM32單片機(jī)為控制核心,設(shè)計(jì)了一輛可以在規(guī)定路線上行駛的小車,利用傳感器采集信息并將該信息傳送給單片機(jī),單片機(jī)通過改變PWM的占空比可以控制電機(jī)轉(zhuǎn)子的轉(zhuǎn)速,同時(shí)配合PID速度控制算法,可以實(shí)現(xiàn)小車在直道加速和彎道減速的控制,從而實(shí)現(xiàn)小車循跡的穩(wěn)定性和速度的提升。小車上安裝一個(gè)光電編碼器,通過光電編碼器獲取小車速度并反饋給單片機(jī),單片機(jī)對收集到的信息進(jìn)行處理,并控制電機(jī)進(jìn)行加速或減速運(yùn)動,從而實(shí)現(xiàn)小車速度的閉環(huán)控制。小車頭部裝有兩個(gè)紅外傳感器,通過紅外傳感器檢測障礙物來實(shí)現(xiàn)小車的避障功能。
本設(shè)計(jì)的智能避障小車是以單片機(jī)為控制核心,控制驅(qū)動電機(jī)運(yùn)動,并通過傳感器采集路線信息和障礙信息傳送到單片機(jī),單片機(jī)接收信息以后控制電機(jī)實(shí)現(xiàn)循跡和避障。小車的總體設(shè)計(jì)構(gòu)成圖如圖1所示。
圖1 系統(tǒng)總體設(shè)計(jì)框圖
本設(shè)計(jì)的控制模塊是以單片機(jī)為核心,采用STM32系列微處理器芯片的LBT-4控制器,STM32微處理器的程序存儲器為512k。并通過LBT-4型控制器上的USB接口進(jìn)行程序的燒錄。該控制器上還裝有顯示屏,其與按鍵配合可以選擇相應(yīng)的模式。
本設(shè)計(jì)采用四個(gè)伺服電機(jī),用以驅(qū)動左右兩邊的四個(gè)輪子,使其實(shí)現(xiàn)小車的運(yùn)動。由于單片機(jī)引腳輸出高,電平信號比較弱,直接驅(qū)動使小車運(yùn)動較為困難,所以我們增加了一個(gè)LBT-4型大功率驅(qū)動器,LBT-4型大功率驅(qū)動器的工作電壓為4~36V,該大功率驅(qū)動器輸入電壓需與所驅(qū)動的電機(jī)電壓相匹配。輸入電壓低于電機(jī)電壓時(shí),會使驅(qū)動能力下降,過高時(shí),會使電機(jī)使用壽命減少或燒毀。且LBT-4型大功率驅(qū)動器可以與控制器直接相連,從而方便對其進(jìn)行控制。LBT-4型大功率驅(qū)動器可以通過電機(jī)驅(qū)動端口驅(qū)動四個(gè)電機(jī)正常運(yùn)行,并控制其只能單向轉(zhuǎn)動,單向轉(zhuǎn)動時(shí)每路的最大驅(qū)動電流為5A。
當(dāng)8通道集成灰度傳感器檢測到彎道時(shí),通過單片機(jī)改變PWM的占空比控制四個(gè)電機(jī)的轉(zhuǎn)速以及轉(zhuǎn)向,從而實(shí)現(xiàn)轉(zhuǎn)彎。通過PID閉環(huán)速度控制算法,可以實(shí)現(xiàn)電機(jī)在直道加速和彎道減速。在給大功率驅(qū)動器供電時(shí),最好通過穩(wěn)壓模塊穩(wěn)壓后再給大功率驅(qū)動器供電,這樣可以使電機(jī)的轉(zhuǎn)速高低不受電壓高低的影響。
傳感器能夠很好地獲取小車前方的路況信息,并將采集到的信息實(shí)時(shí)反饋給單片機(jī)進(jìn)行處理,對小車進(jìn)行控制。循跡路線是在地面上提前設(shè)置好的白色引導(dǎo)線,小車通過8通道集成灰度傳感器來采集灰度信息。該8通道集成灰度傳感器上有多組發(fā)光二極管,點(diǎn)亮發(fā)光二極管照到白色引導(dǎo)線上,由于光在白色引導(dǎo)線和其他顏色的線上的反射系數(shù)不同,所以其反射光的程度也大不相同,從而傳感器接收到的光的變化曲線不同,就實(shí)現(xiàn)了引導(dǎo)線的區(qū)分,即實(shí)現(xiàn)灰度信息的采集。之后傳感器將采集到的信息傳遞給單片機(jī),單片機(jī)讀取傳感器的信息來判斷相應(yīng)的動作,并經(jīng)過內(nèi)部信號處理后,送出一個(gè)信號給電機(jī),控制電機(jī)驅(qū)動實(shí)現(xiàn)小車前進(jìn)、轉(zhuǎn)彎等功能,完成循跡,并通過小車頭部的兩個(gè)紅外傳感器檢測障礙物。紅外線在不同顏色的物體表面具有不同的反射性質(zhì),當(dāng)紅外傳感器采集到障礙物的信息時(shí),傳感器將該信息傳遞給單片機(jī),單片機(jī)進(jìn)行內(nèi)部處理,并控制電機(jī)完成相應(yīng)的動作實(shí)現(xiàn)避障。
本設(shè)計(jì)系統(tǒng)軟件程序采用模塊化結(jié)構(gòu),由主程序、電機(jī)控制程序端口操作程序、串口操作程序、系統(tǒng)延時(shí)程序、多任務(wù)操作程序等構(gòu)成。主要功能是單片機(jī)通過對傳感器信號的接收,并控制驅(qū)動電機(jī)進(jìn)行速度調(diào)節(jié)和轉(zhuǎn)彎,從而實(shí)現(xiàn)小車的避障和循跡。但小車由于硬件的安裝和路況的影響,會使其速度在實(shí)際運(yùn)動過程中與設(shè)定值產(chǎn)生偏差。這會對電機(jī)產(chǎn)生損耗并對小車循跡避障功能的穩(wěn)定性產(chǎn)生一定的影響,所以我們在小車上安裝有一光電編碼器,通過實(shí)時(shí)獲取小車的速度反饋給單片機(jī),從而實(shí)現(xiàn)小車速度的閉環(huán)控制。主程序流程圖如圖2所示。
圖2 主程序流程圖
在小車運(yùn)動過程中,通過傳感器對跑道的識別和檢測,實(shí)現(xiàn)在直道加速、彎道減速,并且在半徑不同的彎道其速度也是不同的,這就需要控制電機(jī)轉(zhuǎn)速實(shí)現(xiàn)相應(yīng)的功能。在小車的運(yùn)動過程中我們通過光電編碼器反饋當(dāng)前速度值,并通過PID算法進(jìn)行調(diào)節(jié),實(shí)現(xiàn)閉環(huán)控制。其控制系統(tǒng)原理圖如圖3所示。
圖3 控制系統(tǒng)原理圖
模擬PID調(diào)節(jié)器的控制規(guī)律如式(1)所示:
(1)
將模擬PID控制規(guī)律離散化為式(2):
(2)
(3)
由數(shù)字PID位置式(3)推導(dǎo)出PID增量式(4):
()=[()-(-1)]+()+
[()-2(-1)+(-2)]
(4)
式中()、(-1)、(-2)分別為第k次、k-1次和k-2次的偏差值。
在PID處理的過程中,每次計(jì)算完(),需要將其賦值給電機(jī)控制對應(yīng)的PWM通道信號,通過PWM信號值的改變,實(shí)現(xiàn)電機(jī)速度的改變。同時(shí)提前設(shè)定好PWM信號的最大值和最小值,保證()的取值處于最大值和最小值的區(qū)間內(nèi),若()的值大于最大值,則()的值用最大值取代,若()的值小于最小值,則()的值用最小值取代。
當(dāng)小車在直道運(yùn)動時(shí),設(shè)置其為加速或勻速運(yùn)動,速度設(shè)定值滿足小車實(shí)現(xiàn)以最大速度進(jìn)入彎道,當(dāng)小車駛出彎道后進(jìn)入直道,其速度增加。小車速度設(shè)定如式(5)所示:
(5)
其中:補(bǔ)償效果系數(shù);調(diào)速補(bǔ)償變量。
當(dāng)小車進(jìn)入彎道時(shí),出于對小車穩(wěn)定性的考慮,以及循跡的穩(wěn)定性和可靠性,需對小車進(jìn)行減速控制。應(yīng)將小車速度在原來的直道速度設(shè)定值的基礎(chǔ)上,將小車的速度降低至低速運(yùn)行的設(shè)定值,從而確保小車能夠更加平穩(wěn)地進(jìn)入和駛出彎道。小車速度設(shè)定公式如(6)所示:
()=-·|()|
(6)
其中:()為小車速度閉環(huán)設(shè)定值;為小車全程運(yùn)動平均速度設(shè)定值;為減速控制比例系數(shù);()為車體偏離理想軌跡的偏差值。
在實(shí)際應(yīng)用中發(fā)現(xiàn),算法中的PID參數(shù)是通過人工“試湊”得來的,這種方式極大地增加了實(shí)驗(yàn)任務(wù)的工作量,同時(shí)也不能高效地獲得我們所需要的準(zhǔn)確PID參數(shù)數(shù)值?;诖耍驹O(shè)計(jì)采用遺傳算法對PID參數(shù)進(jìn)行整定,以求計(jì)算出最佳的PID參數(shù)。在本設(shè)計(jì)中我們要優(yōu)化的變量為(),即車體偏離理想軌跡的誤差值,為了獲得比較合適的小車動態(tài)性能,采用誤差的絕對值時(shí)間積分特征作為最小目標(biāo)函數(shù),()>0時(shí)目標(biāo)函數(shù)如式(7)所示:
(7)
其中:、、為系統(tǒng)的加權(quán)值;()為車體偏離理想軌跡的誤差值;()為控制器輸出;為上升時(shí)間。
為了避免系統(tǒng)超調(diào),采用了懲罰措施,即一旦產(chǎn)生超調(diào),則將超調(diào)量作為優(yōu)化指標(biāo)之一。當(dāng)()<0時(shí)最終優(yōu)化指標(biāo)函數(shù)如式(8)所示:
(8)
其中:為加權(quán)值,且>>。
某一個(gè)體的適應(yīng)度函數(shù)取為:
(9)
則該個(gè)體被選中的概率為:
=∑
(10)
在選擇過程中,為防止適應(yīng)度值高的某個(gè)體被淘汰,采用適應(yīng)度比例法和最優(yōu)保留策略進(jìn)行選擇操作,以便更快地尋找到最優(yōu)解。
之后通過MATLAB系統(tǒng)仿真可得到優(yōu)化后的PID參數(shù),并將其代入小車算法中去,最終得到電機(jī)轉(zhuǎn)速優(yōu)化和位置優(yōu)化。
在小車循跡和避障的運(yùn)動過程中,通過傳感器檢測路線和障礙物信息,將其反饋給單片機(jī),單片機(jī)控制直流電機(jī)實(shí)現(xiàn)轉(zhuǎn)速和轉(zhuǎn)向的轉(zhuǎn)變。通過對小車的速度采用PID算法進(jìn)行控制,使其在直道能夠加速行駛以及在彎道能夠減速行駛,并通過光電編碼器進(jìn)行速度的閉環(huán)控制,以達(dá)到穩(wěn)定的速度控制效果。采用傳感器和PID算法的雙重控制可以提高小車循跡的穩(wěn)定性,并且可以提升小車的行駛速度。這種控制手段大幅度地提升了小車在自動循跡和避障過程中的可靠性和穩(wěn)定性。在之后的設(shè)計(jì)中,可以考慮在不同的環(huán)境狀況下,通過改變小車的形狀和組裝結(jié)構(gòu),使其可以適應(yīng)不同的環(huán)境狀況,以完成更有實(shí)際操作價(jià)值的循跡和避障功能。