摘要:本設計以第八屆“飛思卡爾”杯全國大學生智能車競賽為背景,提出了一種根據(jù)線性CCD采集圖像引導直立小車循跡行駛的方案。本文介紹了這一方案的基本思想,所依據(jù)的物理原理,并重點介紹在雙速度控制算法下對轉(zhuǎn)向及障礙問題的優(yōu)化處理,并根據(jù)方案實際制作了小車。實踐證明該方案是可行的,并且效果較好。
關鍵詞:智能車;直立;速度控制;Kinetis K10;TSL1401CL
引言
以往的智能車競賽分為光電組、攝像頭組及電磁組。在本屆比賽中,光電組首次嘗試小車直立行走,并且首次采用線性CCD作為圖像采集傳感器。本文介紹以飛思卡爾Kinetis K10為主控芯片,如何使用線性CCD所采集的圖像進行數(shù)據(jù)處理的過程以及基于獨創(chuàng)的雙速度控制算法,從速度控制上解決了智能車過障礙的問題。
1 設計原理
1.1 數(shù)據(jù)采集算法
檢測路徑參數(shù)可以使用多種傳感器件,如光電管陣列、CCD圖像傳感器、激光掃描器等。各種檢測方法都有相應優(yōu)缺點,其中最常使用的方法為光電管陣列和CCD圖像傳感器。如何有效利用單片機內(nèi)部資源進行路徑參數(shù)檢測,是確定檢測方案的關鍵。
CCD傳感器是一種新型光電轉(zhuǎn)換器件,它能存儲由光產(chǎn)生的信號電荷。當對它施加特定時序的脈沖時,其存儲的信號電荷便可在CCD內(nèi)作定向傳輸而實現(xiàn)自掃描。CCD有面陣和線陣之分,面陣是把CCD像素排成1個平面的器件;而線陣是把CCD像素排成1直線的器件。本設計中使用線性CCD作為圖像傳感元件。
在本設計中選用TSL1401CL線性CCD,TSL1401CL線性傳感器陣列由一個128×1的光電二極管陣列、相關的電荷放大器電路和一個內(nèi)部的像素數(shù)據(jù)保持器構成。該陣列由128個像素組成,其中每一個像素的光敏面積為3 524.3μm2,像素之間的間隔是8μm。該芯片操作簡單,只需要一個串行輸入信號和一個時鐘信號即可進行數(shù)據(jù)的讀取。
在CCD采集上,所采用的曝光時間自適應策略如圖1所示。
從圖1可看出,該曝光時間自適應策略就是一個典型的閉環(huán)控制,控制對象是線性CCD模塊的曝光時間,反饋是線性CCD感應到的曝光量。調(diào)節(jié)的目標是設定曝光量。控制器的工作原理是將設定的曝光量減去實際曝光量,差值即為曝光量的偏差e,曝光量調(diào)節(jié)器用Kp乘以e再加上上次的曝光時間作為新的曝光時間進行曝光,曝光時間調(diào)整后直接影響實際反饋的曝光量,如此反復進行調(diào)節(jié)就能達到適應環(huán)境光的目的。我們的做法是取一次采集到的128個像素電壓的平均值作為曝光量當量,設定的曝光量也就是設定的128像素點平均電壓。
1.2 數(shù)據(jù)處理算法
在圖像處理中,采用邊緣檢測法檢測賽道。因為賽道采回圖像電壓值不同,白色賽道與黑色賽道邊緣的交界處會出現(xiàn)圖像的凹槽,也就是圖像數(shù)值的下降沿。將CCD的128個圖像點進行坐標標注,由0~127,就可以確定出兩邊黑線的左右值。
得到左右坐標,根據(jù)公式“中線=(左坐標+右坐標)/2”,就提取到了中線。當然還要考慮邊線丟失的情況,我們采取補線的策略,如果這一時刻坐標丟失就采用上一時刻未丟失的坐標代替,這樣無論在十字彎、直道、彎道還是虛線,都可以實現(xiàn)很好的識別與控制,適應各種不同的賽道要求。
對電機的控制上,采用傳統(tǒng)的PID控制算法。PID控制是最早發(fā)展起來的控制策略之一。PID控制器綜合了關于系統(tǒng)過去(I)、現(xiàn)在(P)和未來(D)三方面的信息,控制效果令人滿意。工業(yè)控制95%以上都采用了PID結構,具有簡單、魯棒性好和可靠性高的優(yōu)點。
PID算法示意圖如圖2所示。
其中,所采用的數(shù)字PID算法公式如下:
綜上所述.在小車控制系統(tǒng)的閉環(huán)部分均采用了傳統(tǒng)數(shù)字PID算法或改進型智能PID算法。
2 雙速度控制算法方案設計
2.1 傳統(tǒng)速度控制算法
由于車模的整個行駛過程是時刻變化的,在賽道構成復雜且車模運行速度很高的情況下,對于系統(tǒng)的響應要求很快。因此速度控制必須具有迅速、準確、響應快的特點。由PID原理知:I(積分項)的遲滯效果會讓控制系統(tǒng)響應變慢,因此為適應直立車模高速運行下的各種不同類型賽道,放棄官方設計方案中所推薦的PI控制,而采用反應更迅速、調(diào)節(jié)速度更快的PD控制。
直立車模是雙電機分別控制左右輪,并且通過左右輪的差速進行轉(zhuǎn)彎。在直立車的電機控制中,PWM波的輸出是由直立控制量、速度控制量與轉(zhuǎn)向控制量共同組成的,即:
電機輸出量=直立控制量+速度控制量+轉(zhuǎn)向控制量 (1)
傳統(tǒng)速度控制算法中控制公式為:
速度控制量=速度設定值=速度測量值=速度設定值-(左輪速度+右輪速度)/2 (2)
由上式可知,實際值為左右輪速度的平均值。得到速度控制量同時加給左右電機,即左右電機速度控制量始終相同,由此可知左右電機速度控制量始終相同。在傳統(tǒng)速度控制算法下,轉(zhuǎn)向控制量相對于速度控制量來說相當于是一種擾動量。
2.2 雙速度控制算法
我們所設計雙速度控制的思想如下:
左電機輸出量=直立控制量+左輪速度控制量+轉(zhuǎn)向控制量 (3)
右電機輸出量=直立控制量+右輪速度控制量-轉(zhuǎn)向控制量 (4)
因為在小車行駛過程中,小車保持直立,因此在小車直立行駛狀態(tài)下,直立值為固定值,所以:
左速度控制量=沒定值-左輪速度測量值 (5)
右速度控制量=設定值-右輪速度測量值 (6)
左、右輪速度值均由該輪速度控制量與轉(zhuǎn)向控制量同時給定。
由此可知:
左輪速度控制量=設定值-(速度控制量測量值+轉(zhuǎn)向控制量測量值)
右輪速度控制量=設定值-(速度控制量測量值+轉(zhuǎn)向控制量測量值)
則實際上,轉(zhuǎn)向控制量為速度控制閉環(huán)中一部分,在C語言實現(xiàn)時,將兩控制量由同一控制算法計算。最終輸出量為:
電機輸出量=直立控制量+速度與轉(zhuǎn)向控制量
由原理可知,在直道上行駛時,因為轉(zhuǎn)向控制量接近于零,所以傳統(tǒng)速度控制與我們所使用雙速度控制下的速度輸出量相同。轉(zhuǎn)向時,由于圖像采集后的PID控制產(chǎn)生轉(zhuǎn)彎控制量,形成左右輪差速,實現(xiàn)車模轉(zhuǎn)彎。傳統(tǒng)速度控制模式下轉(zhuǎn)彎控制量并不受速度控制調(diào)整,轉(zhuǎn)彎量相對速度控制參數(shù)來說是一種擾動量,在雙速度控制算法下,轉(zhuǎn)彎量因?qū)Ξ斍拜喬マD(zhuǎn)速造成影響,故受到該輪速度控制調(diào)節(jié)。雙速度控制下,當車模運行轉(zhuǎn)彎時,雙速度控制實際上會減緩車模入彎控制速度,加快車模出彎控制速度。實驗效果上,因雙速度控制減緩車模入彎控制量,則在很大程度上減小了車模因快速入彎而造成的側(cè)滑以及側(cè)翻,而對于出彎的快速調(diào)整,使車模可以在出彎后更快地調(diào)整車模位置,便于處理連續(xù)彎道及出彎后的障礙、虛線、起跑線等特殊賽道情況。因此,雙速度控制下,轉(zhuǎn)彎時速度控制量不為零,相當于系統(tǒng)轉(zhuǎn)彎時始終有速度閉環(huán)存在,輪子的左右差速由速度閉環(huán)控制。
3 實驗數(shù)據(jù)
以下為各種不同道路情況下,測得系統(tǒng)在不同路況下所能通過的最短時間,由光電門測量計時,如表1所列。
由以上數(shù)據(jù)可以看出,在彎道越多時,雙速度控制所帶來的速度提升越明顯,而在連續(xù)小S彎道時所帶來的提升不大。
在本屆智能車競賽中,對光電平衡車來說,對于速度提升最大的考驗是本屆智能車首次加入的障礙部分。障礙部分最大的難點在于,車模直立狀態(tài)經(jīng)過障礙時,不可預測是車模的左輪還是右輪先經(jīng)過障礙。在車模高速行駛經(jīng)過障礙時,會出現(xiàn)車模騰空、車模電機失速的現(xiàn)象。當電機失速時,車模落地時左右輪哪一個先落地同樣不可控,由此車模回歸地面速度不可控,造成車模倒地或側(cè)翻。
雙速度控制在很大程度上可以減小車模在過障礙時的失速。當車模經(jīng)過障礙時,無論是左輪還是右輪先經(jīng)過障礙,車輪失速、雙速度控制下,雙電機的速度控制是獨立的,又由于對電機的控制采用調(diào)節(jié)速度很快的PD控制,可以控制電機在失速回歸地面后迅速調(diào)整車身姿態(tài),在車身重心較低情況下,高速通過單個障礙。經(jīng)反復試驗,PD控制下的雙速度控制可以很好地克服車模過障礙時對車模產(chǎn)生的影響,效果很好。
結語
本屆競賽,組委會首次要求光電組直立,本設計基于飛思卡爾K10芯片,首次嘗試使用線性CCD作為圖像處理傳感器。根據(jù)線性CCD所采圖像,通過PID控制原理,采用雙速度控制算法對高度復雜的不同路況、障礙等情況都實現(xiàn)較好處理,效果良好。