王 玲,張 強(qiáng),李雪梅
(1.白城師范學(xué)院計算機(jī)科學(xué)學(xué)院,吉林白城 137000;2.白城師范學(xué)院機(jī)械工程學(xué)院,吉林白城 137000)
隨著汽車電子和智能機(jī)器人的快速發(fā)展,智能車已成為智能控制領(lǐng)域研究的熱點。智能小車是具有自主引導(dǎo)功能的輪式移動機(jī)器人,它是集路徑感知、路徑?jīng)Q策與規(guī)劃、行為控制與執(zhí)行等多功能于一體的綜合系統(tǒng)[1]。自主尋跡小車可以看成縮小版的智能車,對智能車的研究設(shè)計很大程度上促進(jìn)了電子機(jī)械、運動控制、微處理器、傳感器技術(shù)等相關(guān)學(xué)科的快速發(fā)展,其研究結(jié)果可以在多領(lǐng)域加以推廣和利用[2]。本文所研究設(shè)計的智能小車由微處理器控制模塊、電機(jī)驅(qū)動模塊、舵機(jī)轉(zhuǎn)向控制模塊、路徑尋跡模塊、電源供電模塊、測速反饋控制模塊等部分組成。測控系統(tǒng)是小車設(shè)計中的關(guān)鍵技術(shù)之一,本文簡述智能小車設(shè)計的總體思路和架構(gòu),主要討論智能小車測控系統(tǒng)軟硬件的設(shè)計和研究。
智能自主尋跡小車系統(tǒng)由硬件部分和軟件部分組成。硬件部分由微處理器控制模塊、測控模塊、電源供電模塊等組成,系統(tǒng)軟件的設(shè)計需要根據(jù)所采用的硬件器件決定,系統(tǒng)采用飛思卡爾M 9S12XS128芯片作為微處理器模塊的核心,采用紅外光電傳感器采集路徑信息,微處理器根據(jù)路徑信息和小車當(dāng)前狀態(tài)采用脈沖寬度調(diào)制(PWM)方式對驅(qū)動電機(jī)和舵機(jī)進(jìn)行控制以完成路徑尋跡。智能自主尋跡小車的整體架構(gòu)如圖1所示。
本智能小車采用的是飛思卡爾公司16位處理器M 9S12XS128作為主控制系統(tǒng)的核心,其擁有128 kB Flash、8 kB RAM和2 kB EEPROM;片內(nèi)資源也很豐富,內(nèi)部集成有16路A/D轉(zhuǎn)換器,精度最高可設(shè)置為10位;并且擁有8路8位的PWM,支持兩兩級聯(lián),形成4路16位的通道,各通道獨立運行,特別適合控制多電機(jī)系統(tǒng),處理器性能完全滿足系統(tǒng)功能的要求[3]。
圖1 智能自主尋跡小車的整體架構(gòu)圖Fig.1 The overall architecture diagram of intelligent autonomous tracing cars
電源供電模塊負(fù)責(zé)給系統(tǒng)不同的模塊提供所需的穩(wěn)定電壓,此部分設(shè)計的好壞直接影響智能小車的正常運轉(zhuǎn)。在硬件設(shè)計中,除了考慮器件的電壓范圍和電流容量等基本參數(shù),還要在電壓轉(zhuǎn)換效率、功耗大小、輸出穩(wěn)定性等方面加以優(yōu)化。本智能小車采用7.2 V蓄電池供電,由于不同模塊所需的電流容量和工作電壓不同,所以需經(jīng)供電模塊進(jìn)行轉(zhuǎn)換。系統(tǒng)中微處理器模塊和路徑尋跡模塊需要5 V的電源,電機(jī)驅(qū)動模塊需要7.2 V的電源,舵機(jī)轉(zhuǎn)向控制模塊需要6 V的電源。
根據(jù)各模塊電壓所需,電源供電模塊采用降壓穩(wěn)壓電路對7.2 V蓄電池分別進(jìn)行轉(zhuǎn)換:采用LM 2940將7.2 V電壓轉(zhuǎn)換成5 V電壓供微處理器模塊和路徑尋跡模塊使用;利用LM 2941將7.2 V電壓降壓為6 V電壓供舵機(jī)轉(zhuǎn)向控制模塊使用。為了改善舵機(jī)的響應(yīng)時間可以適當(dāng)調(diào)整LM 2941,提高電壓輸出[4]。智能小車供電模塊電壓分配圖如圖2所示。
圖2 智能小車供電模塊電壓分配圖Fig.2 Voltage distribution diagram of the intelligent car power supply module
測控模塊是智能小車自主尋跡的功能模塊,它主要由電機(jī)驅(qū)動模塊、舵機(jī)轉(zhuǎn)向控制模塊、路徑尋跡模塊、測速反饋控制模塊等部分組成。其中,路徑尋跡模塊采用紅外光電傳感器方案,即路徑識別電路由一系列發(fā)光二極管和接收二極管組成。由于白色跑道和黑色路徑對二極管所發(fā)射紅外線的反射程度不同,只要合理安排紅外光電傳感器,利用傳感器接收信息的差別,就可以判斷出小車相對于黑色路徑的偏移位置,進(jìn)而控制舵機(jī)轉(zhuǎn)向達(dá)到小車尋跡行駛。
在智能小車尋跡運行過程中,測控系統(tǒng)實時檢測路徑信息和小車行駛狀態(tài),經(jīng)微處理器數(shù)據(jù)處理后用于調(diào)整小車行駛路線和控制小車運行速度。在測控系統(tǒng)中,路徑尋跡模塊負(fù)責(zé)探測白色跑道上的黑色路徑;測速反饋模塊用于測量小車的行駛速度,以防止小車行駛過快發(fā)生偏移和側(cè)翻;電機(jī)驅(qū)動模塊用來控制直流電機(jī)的轉(zhuǎn)動方向與轉(zhuǎn)動速度,以滿足智能小車尋跡運行中加速、減速、剎車等功能;舵機(jī)轉(zhuǎn)向控制模塊負(fù)責(zé)小車行駛方向的控制,其控制轉(zhuǎn)角的精度直接影響智能小車能否準(zhǔn)確尋跡行駛。
路徑尋跡模塊采用TCRT5000紅外光電傳感器作為探測器件,紅外光電傳感器TCRT5000是光電二極管發(fā)射,三極管接收并輸出的裝置。本模塊由14只TCRT5000紅外光電傳感器及外圍電路組成,這14只TCRT5000紅外光電傳感器安裝在智能小車的前端,以“一”字形排列,每只TCRT5000紅外光電傳感器的輸出經(jīng)過比較放大后輸入M 9S12XS128單 片 機(jī) PTH0~PTH7 和 PORT A0~PORT A5 上 。M 9S12XS128計算區(qū)分路徑后產(chǎn)生PWM信號控制舵機(jī)轉(zhuǎn)向。
光電傳感器的排列模式和位置影響小車舵機(jī)轉(zhuǎn)角的控制,系統(tǒng)采用的車模長為26.4 cm,光電傳感器探測板長為20.6 cm,探測板距小車車頭約9.8 cm。為了便于對光電傳感器位置計算,這里將14只傳感器加以編號,從左至右依次編號為:-7、-6、-5、-4、-3、-2、-1、1、2、3、4、5、6、7,并設(shè)小車中線軸線與光電傳感器探測板垂直平分線的交點為原點,光電傳感器位置計算圖如圖3所示。
圖3 光電傳感器位置計算圖Fig.3 The position calculation charts of photoelectric sensor
由圖3可知,檢測到的最大偏角為
每個光電傳感器離小車中心軸線的距離為
由式(2)可以計算出光電傳感器坐標(biāo)值的具體數(shù)值,如表1所示。
表1 光電傳感器坐標(biāo)數(shù)值表Table1 The coordinate value table of photoelectric sensor
在小車車輪沒有打滑的情況下,小車的車速正比于小車驅(qū)動電機(jī)的轉(zhuǎn)速,本模塊通過車速檢測,對小車的轉(zhuǎn)速進(jìn)行閉環(huán)反饋控制。車速的檢測方法有很多,本模塊方案使用CS3020霍爾傳感器加磁鋼的方法測量小車車速。在小車的后輪上等距間隔安裝6個小磁鋼,則電機(jī)每轉(zhuǎn)動一圈CS3020傳感器就產(chǎn)生6個脈沖,M 9S12XS128單片機(jī)對輸入引腳的脈沖進(jìn)行累加計時,然后根據(jù)已知的定時時間和車輪周長計算當(dāng)前小車的車速,判斷測量小車的實際速度與期望速度的大小,按照它們間的偏差進(jìn)行比例-積分-微分(PID)運算,進(jìn)而得出相應(yīng)的PWM占空比,從而以此控制電機(jī)得到所需的小車車速[5]。
本系統(tǒng)采用RS-380SH型直流電機(jī)作為小車的動力裝置,為了避免直通短路且保證各開關(guān)動作的協(xié)同性和同步性,模塊采用橋式驅(qū)動器MC33886對電機(jī)進(jìn)行驅(qū)動。直流電機(jī)的轉(zhuǎn)動狀態(tài)取決于加在電樞上的電壓,兩端電壓的極性決定電機(jī)的轉(zhuǎn)向,電壓的大小影響電機(jī)的轉(zhuǎn)速。通過PWM方式模擬電壓極性變化,以達(dá)到控制電機(jī)正反轉(zhuǎn)的目的,利用MC33886控制H橋通斷進(jìn)而控制小車前進(jìn)的速度[6]。
驅(qū)動電路對兩塊MC33886并聯(lián)使用,并將單片機(jī)的PWM 1和PWM 2、PWM 4和PWM 5兩路8位寄存器合成16位寄存器使用,這樣可以提高模糊控制的精度。
舵機(jī)轉(zhuǎn)向控制模塊采用FUTABA-S3010型舵機(jī)完成轉(zhuǎn)向控制功能??刂贫鏅C(jī)的脈沖信號由M 9S12XS128單片機(jī)的PWM 0和PWM 1級聯(lián)提供。改變占空比常數(shù)就可以改變輸出脈沖的寬度。脈沖信號的寬度決定舵機(jī)輸出舵盤的角度。
經(jīng)多次轉(zhuǎn)向?qū)嶒灒谳斎胄盘枮?0 Hz,即PWM的周期為20ms時,舵機(jī)的轉(zhuǎn)角與輸入脈寬呈線性關(guān)系。高電平為1 500μs時,舵機(jī)的轉(zhuǎn)角為0°;高電平為1 900 μs時,舵機(jī)轉(zhuǎn)角為右向45°;高電平為1 100μs時,舵機(jī)轉(zhuǎn)向為左向45°。舵機(jī)轉(zhuǎn)角與輸入脈寬的關(guān)系圖如圖4所示。
圖4 舵機(jī)轉(zhuǎn)角與輸入脈寬的關(guān)系圖Fig.4 Steering angle and input pulse diagram
智能小車硬件的設(shè)計是智能小車整個架構(gòu)的基礎(chǔ),而針對底層硬件的軟件設(shè)計則是小車控制系統(tǒng)的關(guān)鍵所在。軟件的設(shè)計離不開算法的應(yīng)用,控制算法在整個測控系統(tǒng)的軟件編寫中處于核心的地位,控制算法的好壞決定了智能小車運行的穩(wěn)定性和精確性。
由于傳統(tǒng)的PID控制算法需要在被控對象上建立精確的數(shù)學(xué)模型,難度較大且模型的抗干擾能力較差。而模糊控制是一種基于實踐經(jīng)驗的非線性控制算法,所以在測控系統(tǒng)中采用模糊PID控制算法驅(qū)動電機(jī)轉(zhuǎn)速。
PID控制算法輸出的系統(tǒng)控制信號是PID控制器對誤差信號進(jìn)行比例P、積分I、微分D計算之后所得的輸出值,而比例P控制是以當(dāng)前時刻的偏差信號進(jìn)行放大或衰減后作為控制信號的輸出,其輸出增量和輸入增量呈對應(yīng)比例關(guān)系,其比例系數(shù)kP越大,控制作用越強(qiáng),調(diào)節(jié)反應(yīng)速度越快,而舵機(jī)轉(zhuǎn)向?qū)崟r性要求高,考慮到小車車體較大,運行較快,為保持小車轉(zhuǎn)向的快速性,對誤差信號進(jìn)行比例P調(diào)節(jié)。小車的方向偏差θ和位置偏差d體現(xiàn)了小車當(dāng)前位置與黑色路徑的關(guān)系,為了得到精確的轉(zhuǎn)角,分別對方向偏差θ和位置偏差d進(jìn)行比例調(diào)節(jié)以得到相應(yīng)的轉(zhuǎn)角。所以采用雙P控制算法對舵機(jī)轉(zhuǎn)向進(jìn)行控制。
在小車尋跡過程中,舵機(jī)的轉(zhuǎn)角與紅外光電傳感器布局和檢測到黑色路徑光電管的位置有關(guān)。雙P控制算法首先要確定舵機(jī)控制的輸入值和輸出值。
表1列出了光電傳感器的具體坐標(biāo),在小車行駛過程中,當(dāng)某個光電傳感器檢測到黑色路徑時,得到黑色路徑與小車中線軸線的距離d(見圖3),d的正值表示檢測到黑色路徑傳感器相對于小車中線軸線的右邊,其絕對值大小表示小車距離黑色路徑的位置偏差,以此類推。由位置偏差d可以得到方向偏差θ
即
θ的絕對值大小表示小車前方路徑與當(dāng)前位置的方向偏離關(guān)系,其絕對值越大表示舵機(jī)轉(zhuǎn)角越大。θ的正值代表小車將向右轉(zhuǎn),負(fù)值代表小車將向左轉(zhuǎn)。小車的方向偏差θ和位置偏差d體現(xiàn)了小車當(dāng)前位置與黑色路徑的關(guān)系,故將兩個參數(shù)作為小車舵機(jī)轉(zhuǎn)向控制算法的輸入量。
設(shè)?為當(dāng)前舵機(jī)控制的轉(zhuǎn)角值,對舵機(jī)的雙P控制需要滿足
式(5)中,kθ和kd分別為方向偏差θ和位置偏差d的比例調(diào)節(jié)系數(shù)。根據(jù)PID控制規(guī)律,經(jīng)實驗可以確定兩個比例系數(shù)的值,經(jīng)檢測發(fā)現(xiàn),舵機(jī)轉(zhuǎn)角||?=36°時已達(dá)到扭轉(zhuǎn)極限。并且當(dāng)電池電壓不穩(wěn)或路面狀況發(fā)生變化時,對舵機(jī)轉(zhuǎn)角的靈敏度有所影響,因此,在系統(tǒng)中對不同光電傳感器A/D采樣時調(diào)整其權(quán)值?;陔pP控制算法的舵機(jī)PWM控制流程圖如圖5所示。
圖5 基于雙P控制算法的舵機(jī)PWM控制流程圖Fig.5 Servo PWM control flow chart based on double P control algorithm
4.2.1 車速模糊控制策略
模糊控制是以模糊集合論、模糊語言變量和模糊邏輯推理為基礎(chǔ)的一種計算機(jī)控制技術(shù),適合于那些數(shù)學(xué)模型不確定、復(fù)雜非線性型系統(tǒng)[7]。
小車的電機(jī)驅(qū)動模塊利用模糊PID控制算法實現(xiàn)小車車速的控制,本模塊所建立的雙輸入單輸出的模糊控制器如圖6所示。
圖6 車速模糊控制器Fig.6 Speed fuzzy control
模糊控制器的輸入量為舵機(jī)轉(zhuǎn)角?和舵機(jī)轉(zhuǎn)角的變化值?-acc,輸出值為控制小車的PWM占空比pwmdr;??和為輸入量的語言變量,占空比PWMDR為模糊控制器的輸出語言變量;D/F將清晰量轉(zhuǎn)化為模糊量;A?°R將輸入的模糊量A?利用近似推理得到模糊輸出量PWMDR;F/D將模糊輸出量PWMDR轉(zhuǎn)化為清晰量。以下介紹各部分的設(shè)計。
4.2.1.1 輸入輸出模糊量確定
1)輸入變量?模糊化。輸入變量?理論范圍為-45°~+45°,將輸入變量量化為7級,則模糊論域為[ ]
?1,?2,?3,?4,?5,?6,?7,將它賦值得到[-3,-2,-1,0,1,2,3],對應(yīng)的模糊變量語言為[NB,NM,NS,Z,PS,PM,PB],從而得到?的量化因子k?值為3/45=1/15,本模塊選用三角函數(shù)為隸屬度函數(shù)。
2)輸入變量?-acc模糊化。根據(jù)實際情況將舵機(jī)轉(zhuǎn)角變化值定義為-15°~+15°,同樣量化為7級,則對應(yīng)的模糊論域為[ ]?-acc1,?-acc2,…,?-acc7,對應(yīng)的7個模糊語言變量為[NB,NM,NS,Z,PS,PM,PB],由此得到?-acc的量化因子=3/15=1/5。
3)定義模糊變量PWM占空比系數(shù)kpwmdr。經(jīng)反復(fù)實驗定義模糊變量PWM占空比系數(shù)kpwmdr的物理論域為[30,70],將其量化為5個等級,模糊論域設(shè)置為[0,1,2,3,4],對應(yīng)的模糊語言變量為[S1,S2,S3,S4,S5],pwmdr的比例因子kpwmdr=4/(70-30)=1/10。
4.2.1.2 設(shè)定模糊控制規(guī)則
根據(jù)小車實際運行規(guī)律和操作經(jīng)驗,這里設(shè)置車速的模糊控制規(guī)則為:a.直道上快速行駛;b.彎道時適當(dāng)減速;c.舵機(jī)轉(zhuǎn)角角度越大,小車行駛速度越慢;d.彎道上速度過慢適當(dāng)提速,由此建立如表2所示的車速模糊控制規(guī)則表。4.2.1.3 車速模糊推理計算
根據(jù)表2的車速模糊控制規(guī)則表,采用Mamdani模糊推理法,可得占空比PWMDR的模糊控制關(guān)系
利用?和?-acc模糊論域,計算可得PWMDR的模糊控制量
4.2.1.4 模糊量的清晰化
采用重心法對進(jìn)行精確化計算得到小車控制的精確值Ckl(PWMDR),從而得到輸出控制值pwmdr
由此得到以?和?-acc為精確輸入,以pwmdr為精確輸出的小車速度控制表如表3所示。在小車實際行駛時,只需查找表3即可方便快速地實現(xiàn)小車速度的控制。
表3 PWM占空比pwmdr的模糊控制表Table3 Fuzzy control table of the PWM duty cycle pwmdr
4.2.2 車速PID調(diào)整策略
在模糊控制的基礎(chǔ)上,對小車的速度進(jìn)行位置式PID調(diào)整,以保證小車在各種路面情況和供電變化下能夠平穩(wěn)快速運行。比例微分控制器為
式(9)中,un為當(dāng)前電機(jī)值;KP和KD分別為比例系數(shù)和微分系數(shù);en為系統(tǒng)期望車速與光電傳感器所測車速之差;en-1為系統(tǒng)期望車速與上次所測車速之差。KP和KD通過實驗方式湊試得到,期望車速可通過查找模糊控制表得到,當(dāng)前車速由測速模塊測得。模糊PID車速控制流程如圖7所示。
圖7 模糊PID車速控制流程Fig.7 Fuzzy PID speed control processes
為了驗證智能小車測控系統(tǒng)的有效性,將智能小車放在蛇形跑道上進(jìn)行調(diào)試。調(diào)試過程中主要對舵機(jī)轉(zhuǎn)向和小車車速進(jìn)行檢測。圖8為小車檢測實驗圖。
圖8 小車檢測實驗圖Fig.8 Car testing chart
由圖8可知,小車雖不是嚴(yán)格按照路徑尋跡而行,但在稍偏路徑后能及時轉(zhuǎn)角保證小車準(zhǔn)確尋跡,說明小車舵機(jī)轉(zhuǎn)角控制算法的準(zhǔn)確穩(wěn)定,當(dāng)小車行駛在彎道時,小車車速平緩,尋跡轉(zhuǎn)彎及時有效。從而證明了小車測控系統(tǒng)的健壯可靠。
本文簡述了智能小車設(shè)計的總體思路和架構(gòu),主要研究了智能小車測控系統(tǒng)軟硬件設(shè)計,并給出了部分模塊的硬件布局和軟件流程。采用模糊PID控制策略對直流電機(jī)的轉(zhuǎn)速進(jìn)行控制,利用雙P控制算法控制智能車舵機(jī)轉(zhuǎn)向。實驗結(jié)果證明,該智能小車架構(gòu)完善,測控系統(tǒng)健壯有效。
[1] 韓 毅,楊 天.基于紅外傳感器的智能尋跡賽車的設(shè)計與實現(xiàn)[J].計算機(jī)工程與設(shè)計,2009,30(11):2687-2690.
[2] 曹衛(wèi)華,吳 敏,侯少云,等.一種尋線行走機(jī)器人設(shè)計與實現(xiàn)[J].計算機(jī)測量與控制,2006,14(10):4-6.
[3] 江 總.基于單片機(jī)的智能車控制系統(tǒng)的設(shè)計[D].南昌:南昌大學(xué),2011:12-15.
[4] 王祥好.模糊PID控制算法在智能小車中的研究與應(yīng)用[D].合肥:合肥工業(yè)大學(xué),2009.
[5] 胡媛媛,鄧世建,王書婧.基于紅外光電傳感器的智能尋跡小車設(shè)計[J].電子設(shè)計工程,2011,19(7):142-143.
[6] 雷 鈞.光電自動尋跡智能車控制系統(tǒng)的開發(fā)[J].蘇州大學(xué)學(xué)報(工科版),2009,29(6):44-48.
[7] 程志江,李劍波.基于遺傳算法的智能小車模糊控制系統(tǒng)的研發(fā)[J].自動化儀表,2009,30(8):44-48.