王 玲,張 強,李雪梅
(1.白城師范學院計算機科學學院,吉林白城 137000;2.白城師范學院機械工程學院,吉林白城 137000)
隨著汽車電子和智能機器人的快速發展,智能車已成為智能控制領域研究的熱點。智能小車是具有自主引導功能的輪式移動機器人,它是集路徑感知、路徑決策與規劃、行為控制與執行等多功能于一體的綜合系統[1]。自主尋跡小車可以看成縮小版的智能車,對智能車的研究設計很大程度上促進了電子機械、運動控制、微處理器、傳感器技術等相關學科的快速發展,其研究結果可以在多領域加以推廣和利用[2]。本文所研究設計的智能小車由微處理器控制模塊、電機驅動模塊、舵機轉向控制模塊、路徑尋跡模塊、電源供電模塊、測速反饋控制模塊等部分組成。測控系統是小車設計中的關鍵技術之一,本文簡述智能小車設計的總體思路和架構,主要討論智能小車測控系統軟硬件的設計和研究。
智能自主尋跡小車系統由硬件部分和軟件部分組成。硬件部分由微處理器控制模塊、測控模塊、電源供電模塊等組成,系統軟件的設計需要根據所采用的硬件器件決定,系統采用飛思卡爾M 9S12XS128芯片作為微處理器模塊的核心,采用紅外光電傳感器采集路徑信息,微處理器根據路徑信息和小車當前狀態采用脈沖寬度調制(PWM)方式對驅動電機和舵機進行控制以完成路徑尋跡。智能自主尋跡小車的整體架構如圖1所示。
本智能小車采用的是飛思卡爾公司16位處理器M 9S12XS128作為主控制系統的核心,其擁有128 kB Flash、8 kB RAM和2 kB EEPROM;片內資源也很豐富,內部集成有16路A/D轉換器,精度最高可設置為10位;并且擁有8路8位的PWM,支持兩兩級聯,形成4路16位的通道,各通道獨立運行,特別適合控制多電機系統,處理器性能完全滿足系統功能的要求[3]。

圖1 智能自主尋跡小車的整體架構圖Fig.1 The overall architecture diagram of intelligent autonomous tracing cars
電源供電模塊負責給系統不同的模塊提供所需的穩定電壓,此部分設計的好壞直接影響智能小車的正常運轉。在硬件設計中,除了考慮器件的電壓范圍和電流容量等基本參數,還要在電壓轉換效率、功耗大小、輸出穩定性等方面加以優化。本智能小車采用7.2 V蓄電池供電,由于不同模塊所需的電流容量和工作電壓不同,所以需經供電模塊進行轉換。系統中微處理器模塊和路徑尋跡模塊需要5 V的電源,電機驅動模塊需要7.2 V的電源,舵機轉向控制模塊需要6 V的電源。
根據各模塊電壓所需,電源供電模塊采用降壓穩壓電路對7.2 V蓄電池分別進行轉換:采用LM 2940將7.2 V電壓轉換成5 V電壓供微處理器模塊和路徑尋跡模塊使用;利用LM 2941將7.2 V電壓降壓為6 V電壓供舵機轉向控制模塊使用。為了改善舵機的響應時間可以適當調整LM 2941,提高電壓輸出[4]。智能小車供電模塊電壓分配圖如圖2所示。

圖2 智能小車供電模塊電壓分配圖Fig.2 Voltage distribution diagram of the intelligent car power supply module
測控模塊是智能小車自主尋跡的功能模塊,它主要由電機驅動模塊、舵機轉向控制模塊、路徑尋跡模塊、測速反饋控制模塊等部分組成。其中,路徑尋跡模塊采用紅外光電傳感器方案,即路徑識別電路由一系列發光二極管和接收二極管組成。由于白色跑道和黑色路徑對二極管所發射紅外線的反射程度不同,只要合理安排紅外光電傳感器,利用傳感器接收信息的差別,就可以判斷出小車相對于黑色路徑的偏移位置,進而控制舵機轉向達到小車尋跡行駛。
在智能小車尋跡運行過程中,測控系統實時檢測路徑信息和小車行駛狀態,經微處理器數據處理后用于調整小車行駛路線和控制小車運行速度。在測控系統中,路徑尋跡模塊負責探測白色跑道上的黑色路徑;測速反饋模塊用于測量小車的行駛速度,以防止小車行駛過快發生偏移和側翻;電機驅動模塊用來控制直流電機的轉動方向與轉動速度,以滿足智能小車尋跡運行中加速、減速、剎車等功能;舵機轉向控制模塊負責小車行駛方向的控制,其控制轉角的精度直接影響智能小車能否準確尋跡行駛。
路徑尋跡模塊采用TCRT5000紅外光電傳感器作為探測器件,紅外光電傳感器TCRT5000是光電二極管發射,三極管接收并輸出的裝置。本模塊由14只TCRT5000紅外光電傳感器及外圍電路組成,這14只TCRT5000紅外光電傳感器安裝在智能小車的前端,以“一”字形排列,每只TCRT5000紅外光電傳感器的輸出經過比較放大后輸入M 9S12XS128單 片 機 PTH0~PTH7 和 PORT A0~PORT A5 上 。M 9S12XS128計算區分路徑后產生PWM信號控制舵機轉向。
光電傳感器的排列模式和位置影響小車舵機轉角的控制,系統采用的車模長為26.4 cm,光電傳感器探測板長為20.6 cm,探測板距小車車頭約9.8 cm。為了便于對光電傳感器位置計算,這里將14只傳感器加以編號,從左至右依次編號為:-7、-6、-5、-4、-3、-2、-1、1、2、3、4、5、6、7,并設小車中線軸線與光電傳感器探測板垂直平分線的交點為原點,光電傳感器位置計算圖如圖3所示。

圖3 光電傳感器位置計算圖Fig.3 The position calculation charts of photoelectric sensor
由圖3可知,檢測到的最大偏角為

每個光電傳感器離小車中心軸線的距離為

由式(2)可以計算出光電傳感器坐標值的具體數值,如表1所示。

表1 光電傳感器坐標數值表Table1 The coordinate value table of photoelectric sensor
在小車車輪沒有打滑的情況下,小車的車速正比于小車驅動電機的轉速,本模塊通過車速檢測,對小車的轉速進行閉環反饋控制。車速的檢測方法有很多,本模塊方案使用CS3020霍爾傳感器加磁鋼的方法測量小車車速。在小車的后輪上等距間隔安裝6個小磁鋼,則電機每轉動一圈CS3020傳感器就產生6個脈沖,M 9S12XS128單片機對輸入引腳的脈沖進行累加計時,然后根據已知的定時時間和車輪周長計算當前小車的車速,判斷測量小車的實際速度與期望速度的大小,按照它們間的偏差進行比例-積分-微分(PID)運算,進而得出相應的PWM占空比,從而以此控制電機得到所需的小車車速[5]。
本系統采用RS-380SH型直流電機作為小車的動力裝置,為了避免直通短路且保證各開關動作的協同性和同步性,模塊采用橋式驅動器MC33886對電機進行驅動。直流電機的轉動狀態取決于加在電樞上的電壓,兩端電壓的極性決定電機的轉向,電壓的大小影響電機的轉速。通過PWM方式模擬電壓極性變化,以達到控制電機正反轉的目的,利用MC33886控制H橋通斷進而控制小車前進的速度[6]。
驅動電路對兩塊MC33886并聯使用,并將單片機的PWM 1和PWM 2、PWM 4和PWM 5兩路8位寄存器合成16位寄存器使用,這樣可以提高模糊控制的精度。
舵機轉向控制模塊采用FUTABA-S3010型舵機完成轉向控制功能。控制舵機的脈沖信號由M 9S12XS128單片機的PWM 0和PWM 1級聯提供。改變占空比常數就可以改變輸出脈沖的寬度。脈沖信號的寬度決定舵機輸出舵盤的角度。
經多次轉向實驗,在輸入信號為50 Hz,即PWM的周期為20ms時,舵機的轉角與輸入脈寬呈線性關系。高電平為1 500μs時,舵機的轉角為0°;高電平為1 900 μs時,舵機轉角為右向45°;高電平為1 100μs時,舵機轉向為左向45°。舵機轉角與輸入脈寬的關系圖如圖4所示。

圖4 舵機轉角與輸入脈寬的關系圖Fig.4 Steering angle and input pulse diagram
智能小車硬件的設計是智能小車整個架構的基礎,而針對底層硬件的軟件設計則是小車控制系統的關鍵所在。軟件的設計離不開算法的應用,控制算法在整個測控系統的軟件編寫中處于核心的地位,控制算法的好壞決定了智能小車運行的穩定性和精確性。
由于傳統的PID控制算法需要在被控對象上建立精確的數學模型,難度較大且模型的抗干擾能力較差。而模糊控制是一種基于實踐經驗的非線性控制算法,所以在測控系統中采用模糊PID控制算法驅動電機轉速。
PID控制算法輸出的系統控制信號是PID控制器對誤差信號進行比例P、積分I、微分D計算之后所得的輸出值,而比例P控制是以當前時刻的偏差信號進行放大或衰減后作為控制信號的輸出,其輸出增量和輸入增量呈對應比例關系,其比例系數kP越大,控制作用越強,調節反應速度越快,而舵機轉向實時性要求高,考慮到小車車體較大,運行較快,為保持小車轉向的快速性,對誤差信號進行比例P調節。小車的方向偏差θ和位置偏差d體現了小車當前位置與黑色路徑的關系,為了得到精確的轉角,分別對方向偏差θ和位置偏差d進行比例調節以得到相應的轉角。所以采用雙P控制算法對舵機轉向進行控制。
在小車尋跡過程中,舵機的轉角與紅外光電傳感器布局和檢測到黑色路徑光電管的位置有關。雙P控制算法首先要確定舵機控制的輸入值和輸出值。
表1列出了光電傳感器的具體坐標,在小車行駛過程中,當某個光電傳感器檢測到黑色路徑時,得到黑色路徑與小車中線軸線的距離d(見圖3),d的正值表示檢測到黑色路徑傳感器相對于小車中線軸線的右邊,其絕對值大小表示小車距離黑色路徑的位置偏差,以此類推。由位置偏差d可以得到方向偏差θ

即

θ的絕對值大小表示小車前方路徑與當前位置的方向偏離關系,其絕對值越大表示舵機轉角越大。θ的正值代表小車將向右轉,負值代表小車將向左轉。小車的方向偏差θ和位置偏差d體現了小車當前位置與黑色路徑的關系,故將兩個參數作為小車舵機轉向控制算法的輸入量。
設?為當前舵機控制的轉角值,對舵機的雙P控制需要滿足

式(5)中,kθ和kd分別為方向偏差θ和位置偏差d的比例調節系數。根據PID控制規律,經實驗可以確定兩個比例系數的值,經檢測發現,舵機轉角||?=36°時已達到扭轉極限。并且當電池電壓不穩或路面狀況發生變化時,對舵機轉角的靈敏度有所影響,因此,在系統中對不同光電傳感器A/D采樣時調整其權值。基于雙P控制算法的舵機PWM控制流程圖如圖5所示。

圖5 基于雙P控制算法的舵機PWM控制流程圖Fig.5 Servo PWM control flow chart based on double P control algorithm
4.2.1 車速模糊控制策略
模糊控制是以模糊集合論、模糊語言變量和模糊邏輯推理為基礎的一種計算機控制技術,適合于那些數學模型不確定、復雜非線性型系統[7]。
小車的電機驅動模塊利用模糊PID控制算法實現小車車速的控制,本模塊所建立的雙輸入單輸出的模糊控制器如圖6所示。

圖6 車速模糊控制器Fig.6 Speed fuzzy control
模糊控制器的輸入量為舵機轉角?和舵機轉角的變化值?-acc,輸出值為控制小車的PWM占空比pwmdr;??和為輸入量的語言變量,占空比PWMDR為模糊控制器的輸出語言變量;D/F將清晰量轉化為模糊量;A?°R將輸入的模糊量A?利用近似推理得到模糊輸出量PWMDR;F/D將模糊輸出量PWMDR轉化為清晰量。以下介紹各部分的設計。
4.2.1.1 輸入輸出模糊量確定
1)輸入變量?模糊化。輸入變量?理論范圍為-45°~+45°,將輸入變量量化為7級,則模糊論域為[ ]
?1,?2,?3,?4,?5,?6,?7,將它賦值得到[-3,-2,-1,0,1,2,3],對應的模糊變量語言為[NB,NM,NS,Z,PS,PM,PB],從而得到?的量化因子k?值為3/45=1/15,本模塊選用三角函數為隸屬度函數。
2)輸入變量?-acc模糊化。根據實際情況將舵機轉角變化值定義為-15°~+15°,同樣量化為7級,則對應的模糊論域為[ ]?-acc1,?-acc2,…,?-acc7,對應的7個模糊語言變量為[NB,NM,NS,Z,PS,PM,PB],由此得到?-acc的量化因子=3/15=1/5。
3)定義模糊變量PWM占空比系數kpwmdr。經反復實驗定義模糊變量PWM占空比系數kpwmdr的物理論域為[30,70],將其量化為5個等級,模糊論域設置為[0,1,2,3,4],對應的模糊語言變量為[S1,S2,S3,S4,S5],pwmdr的比例因子kpwmdr=4/(70-30)=1/10。
4.2.1.2 設定模糊控制規則
根據小車實際運行規律和操作經驗,這里設置車速的模糊控制規則為:a.直道上快速行駛;b.彎道時適當減速;c.舵機轉角角度越大,小車行駛速度越慢;d.彎道上速度過慢適當提速,由此建立如表2所示的車速模糊控制規則表。4.2.1.3 車速模糊推理計算
根據表2的車速模糊控制規則表,采用Mamdani模糊推理法,可得占空比PWMDR的模糊控制關系

利用?和?-acc模糊論域,計算可得PWMDR的模糊控制量

4.2.1.4 模糊量的清晰化
采用重心法對進行精確化計算得到小車控制的精確值Ckl(PWMDR),從而得到輸出控制值pwmdr

由此得到以?和?-acc為精確輸入,以pwmdr為精確輸出的小車速度控制表如表3所示。在小車實際行駛時,只需查找表3即可方便快速地實現小車速度的控制。

表3 PWM占空比pwmdr的模糊控制表Table3 Fuzzy control table of the PWM duty cycle pwmdr
4.2.2 車速PID調整策略
在模糊控制的基礎上,對小車的速度進行位置式PID調整,以保證小車在各種路面情況和供電變化下能夠平穩快速運行。比例微分控制器為

式(9)中,un為當前電機值;KP和KD分別為比例系數和微分系數;en為系統期望車速與光電傳感器所測車速之差;en-1為系統期望車速與上次所測車速之差。KP和KD通過實驗方式湊試得到,期望車速可通過查找模糊控制表得到,當前車速由測速模塊測得。模糊PID車速控制流程如圖7所示。

圖7 模糊PID車速控制流程Fig.7 Fuzzy PID speed control processes
為了驗證智能小車測控系統的有效性,將智能小車放在蛇形跑道上進行調試。調試過程中主要對舵機轉向和小車車速進行檢測。圖8為小車檢測實驗圖。

圖8 小車檢測實驗圖Fig.8 Car testing chart
由圖8可知,小車雖不是嚴格按照路徑尋跡而行,但在稍偏路徑后能及時轉角保證小車準確尋跡,說明小車舵機轉角控制算法的準確穩定,當小車行駛在彎道時,小車車速平緩,尋跡轉彎及時有效。從而證明了小車測控系統的健壯可靠。
本文簡述了智能小車設計的總體思路和架構,主要研究了智能小車測控系統軟硬件設計,并給出了部分模塊的硬件布局和軟件流程。采用模糊PID控制策略對直流電機的轉速進行控制,利用雙P控制算法控制智能車舵機轉向。實驗結果證明,該智能小車架構完善,測控系統健壯有效。
[1] 韓 毅,楊 天.基于紅外傳感器的智能尋跡賽車的設計與實現[J].計算機工程與設計,2009,30(11):2687-2690.
[2] 曹衛華,吳 敏,侯少云,等.一種尋線行走機器人設計與實現[J].計算機測量與控制,2006,14(10):4-6.
[3] 江 總.基于單片機的智能車控制系統的設計[D].南昌:南昌大學,2011:12-15.
[4] 王祥好.模糊PID控制算法在智能小車中的研究與應用[D].合肥:合肥工業大學,2009.
[5] 胡媛媛,鄧世建,王書婧.基于紅外光電傳感器的智能尋跡小車設計[J].電子設計工程,2011,19(7):142-143.
[6] 雷 鈞.光電自動尋跡智能車控制系統的開發[J].蘇州大學學報(工科版),2009,29(6):44-48.
[7] 程志江,李劍波.基于遺傳算法的智能小車模糊控制系統的研發[J].自動化儀表,2009,30(8):44-48.