




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
PAGE50PAGEIII 第六屆“飛思卡爾”杯全國大學生智能汽車競賽技術(shù)報告 學校:桂林理工大學 隊伍名稱:林星隊 參賽隊員:楊書杰 吳澤昆 楊經(jīng)率 帶隊教師:鄧健志 沈卓君關(guān)于技術(shù)報告和研究論文使用授權(quán)的說明本人完全了解第四屆“飛思卡爾”杯全國大學生智能汽車邀請賽有關(guān)保留、使用技術(shù)報告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會和飛思卡爾半導體公司可以在相關(guān)主頁上收錄并公開參賽作品的設計方案、技術(shù)報告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會出版論文集中。參賽隊員簽名:楊書杰吳澤昆楊經(jīng)率帶隊教師簽名:鄧健志沈卓君日期:2011-8-摘要本文在第六屆“飛思卡爾”杯全國大學生智能汽車比賽的背景下,制作一個在專門設計的跑道上自動識別行駛路徑的智能車,在并不違規(guī)的情況下,能夠在最短時間內(nèi)跑完全程的隊伍即可勝出。文中介紹了智能小車控制系統(tǒng)的軟硬件設計和開發(fā)流程。整個系統(tǒng)涉及車模機械結(jié)構(gòu)調(diào)整、傳感器電路設計及信號處理、控制算法和策略優(yōu)化等多個方面。車模的簡單工作原理是單片機MC9S12XS128通過檢測由OV7620提供的視頻同步信號,在I/O口上讀取OV7620采集的圖像數(shù)據(jù),再通過軟件算法提取賽道黑線,由MC9S12XS128提供三路PWM,一路16位PWM用于舵機打角控制車模的前進方向,另兩路16位PWM用于驅(qū)動兩路電機給小車提供前進的動力。經(jīng)過反復調(diào)試,控制系統(tǒng)的實時性及穩(wěn)定性得到了很大的提高,智能車的平均速度達到2.7m/s以上,極速達到4m/s,能穩(wěn)定跑完全程。小車運行穩(wěn)定、快速、可靠,達到了設計要求。關(guān)鍵詞:智能車;MC9S12XS128;OV7620;PID 目錄第一章引言 11.1賽事背景 11.2智能車制作概況 1第二章機械改造設計 22.1車模組裝與改造 22.1.1前后輪定位的調(diào)整 22.1.2舵機的安裝 22.1.3攝像頭的安裝 32.1.4編碼器的安裝 4第三章硬件系統(tǒng)設計與實現(xiàn) 73.1系統(tǒng)基本工作原理及分析 73.1.1攝像頭與單片機的接口電路及采集代碼 83.2電機驅(qū)動電路 83.3速度采集電路 93.4舵機驅(qū)動電路 103.5主控芯片電源電路 113.6模型車技術(shù)參數(shù)統(tǒng)計 11第四章軟件系統(tǒng)設計與實現(xiàn) 134.1系統(tǒng)軟件設計 134.1.1圖像采集 134.1.2圖像處理 164.1.3賽道判斷 184.2虛線的處理 194.3起跑線的識別 19第五章控制算法 205.1舵機的控制 205.2電機的控制 20第六章調(diào)試工具及開發(fā)環(huán)境 24第七章總結(jié)與展望 267.1總結(jié) 267.2展望 26致謝 27參考文獻 28附錄: 29第一章引言PAGE51第一章引言1.1賽事背景“飛思卡爾杯”全國大學生智能汽車競賽是由教育部批準并委托自動化分教指委主辦,飛思卡爾公司協(xié)辦,面向全國大學生的重要賽事。它是以迅猛發(fā)展的汽車電子為背景,涵蓋了自動控制、模式識別、傳感技術(shù)、電子電氣、計算機、機械等多個學科交叉的科技創(chuàng)意性比賽。根據(jù)比賽章程,全國大學生智能汽車競賽是在統(tǒng)一汽車模型平臺上,使用飛思卡爾半導體公司的8位、16位微控制器作為核心控制模塊,通過增加道路傳感器、設計電機驅(qū)動電路、編寫相應軟件以及裝配模型車,制作一個能夠自主識別道路的模型汽車。改裝后的模型汽車按照規(guī)定路線行進,以完成時間最短者為優(yōu)勝。競賽以“立足培養(yǎng),重在參與,鼓勵探索,追求卓越”為指導思想,旨在促進高等學校素質(zhì)教育,培養(yǎng)大學生的綜合知識運用能力、基本工程實踐能力和創(chuàng)新意識,激發(fā)大學生從事科學研究與探索的興趣和潛能,倡導理論聯(lián)系實際、求真務實的學風和團隊協(xié)作的人文精神,為優(yōu)秀人才的脫穎而出創(chuàng)造條件。競賽集科學性、趣味性和觀賞性于一體,吸引了大批同學參與其中,受到了廣泛的歡迎。1.2智能車制作概況在過去的10個月里,在硬件上,我們把攝像頭架到車身的后邊,這樣就使得車子的重心往后移,使得車模避免近處出現(xiàn)盲區(qū)的現(xiàn)象,而且車模重心在后邊,小車在轉(zhuǎn)彎時,前沖的慣性變小,使得小車更容易過彎。在軟件上,我們采用抗干擾能力更強的邊沿提取及動態(tài)閥值方案,使賽道信息更加準確。采用PID速度控制策略,使得車模在加減速上更快加速并且平穩(wěn)。總而言之,我們在摸索的同時,學到了很多東西。第六屆全國大學生智能汽車邀請賽技術(shù)報告第三章硬件系統(tǒng)設計與第二章機械改造設計在智能車比賽中,最關(guān)鍵的是速度,而模型車的機械結(jié)構(gòu)無疑是影響速度關(guān)鍵因素之一。鑒于這個原因,我們對模型車的機械結(jié)構(gòu)做了很多的改造,進行了大量的調(diào)整,達到了比較滿意的效果。2.1車模組裝與改造第六屆飛思卡爾比賽所用的車模是C型車模,該車模套裝是有東莞博思電子數(shù)碼科技有限公司提供。該車模套裝參數(shù)如下:車模:尺寸為28.5×16×8cm,有極好的調(diào)零裝置可以自由組裝,套裝中包含帶馬達模型車1套、模型車塑膠件配件包1包、模型車五金件配件包1包。馬達:DC7.2V260馬達,功率可達4.17W,是模型車完成競賽任務的有力保障。伺服器:FutabaS3010伺服器,6V時扭力達6.5Kg.cm,動作速度0.16+/-0.02sec/60°輪胎:φ52*25mm,輕便小巧,內(nèi)填海綿,極好的減震性和耐磨性。電池:7.2V2000mAh的鎳鎘電池2塊,為車模提供強大的動力。充電器:智能充電器,充滿電自動停止??蛰d綠燈(或桔黃燈),正常充電紅燈,充滿電綠燈,電池強勁電能的來源。C型車齒輪配件包:包含A、B齒輪各1個。2.1.1前后輪定位的調(diào)整在調(diào)試中我們發(fā)現(xiàn),模型車過彎時,轉(zhuǎn)向舵機的負載會因車輪轉(zhuǎn)向角度增大而增大。為了盡可能的降低舵機的負載及過彎的穩(wěn)定性,我們前輪采用了內(nèi)八的形式。而后輪則采用窄輪距,可有效避免切彎過度時有一個后輪跑出去。2.1.2舵機的安裝舵機轉(zhuǎn)向是整個車模系統(tǒng)中產(chǎn)生延遲最大的一個環(huán)節(jié),為了降低這部分的影響,通常通過改變舵機的安裝位置,加長力臂來提高舵機的響應速度。經(jīng)過我們組員的討論及在車模上的多次試驗,最終選擇延長舵機力臂至30mm,把舵機豎著固定在車身的前方,使舵機的力臂與傳動臂平行的方案。實物如下圖所示: 圖2.1舵機安裝實物圖2.1.3攝像頭的安裝我們使用在車模上的傳感器主要是攝像頭。攝像頭是車模的眼睛,車模就是通過這個視覺來行走的,所以說攝像頭安裝是整體結(jié)構(gòu)中至關(guān)重要的一環(huán)。攝像頭的安裝要求使得攝像頭位于車模水平中心的位置,而且高度及攝像頭的俯角要合適于圖像的采集及處理。經(jīng)過不斷的實踐,我們最終決定將攝像頭固定在29cm碳纖管支架上,并把俯角調(diào)到合適的位置,這樣我們能很穩(wěn)定的采集到前方1.5m的賽道信息,對識別賽道已經(jīng)足夠了。同時,攝像頭架這樣的高度會使得圖像變形大,但這樣能使得車模過萬的時候更加穩(wěn)定,所以我們就采用這種方式來架設。另外值得一提的是,我們的攝像頭是倒立的,即是反轉(zhuǎn)180度安裝的。因為這樣子安裝,攝像頭是先從車模近處開始掃描圖像的,此時的數(shù)據(jù)相對于遠端的數(shù)據(jù)可靠性大大增加。因為我們采集圖像的時候就是根據(jù)上一行來確定搜索范圍的,這樣子架設攝像頭,更有利于我們的圖像采集。攝像頭安裝示意圖如圖所示:10150cm29cm27cm10150cm29cm27cm攝像頭安裝實物如下圖所示:圖2.3攝像頭安裝實物2.1.4編碼器的安裝速度傳感器的選擇一般為對射式光柵與速度編碼器。對射式光柵的重量輕,阻力小,在速度慢的時候精度也很高,但高速的時候,誤差就很大了。而且對于C型車模,架設光柵非常困難。而速度編碼器相對來說是比較好架設的,測量精度也不會與光柵相差很大,甚至在高速的時候高過它。最終我們采用了編碼器采集速度。C車模是由兩個電機驅(qū)動的,兩個編碼器能準確測出車模的速度。所以最后采用兩個100線的編碼器直接與電機咬合的方法。咬合的原則是:兩傳動齒輪軸保持平行,齒輪間的配合間隙要合適,過松容易打壞齒輪,過緊又會增加傳動阻力傳動部;分要輕松、順暢,容易轉(zhuǎn)動。判斷齒輪傳動是否調(diào)整好的一個依據(jù)是,聽一下電機帶動后輪空轉(zhuǎn)時的聲音。聲音刺耳響亮,說明齒輪間的配合間隙過大,傳動中有撞齒現(xiàn)象;聲音悶而且有遲滯,則說明齒輪間的配合間隙過小,咬合過緊,或者兩齒輪軸不平行,電機負載加大。調(diào)整好的齒輪傳動噪音小,并且不會有碰撞類的雜音。我們編碼器安裝如下圖:圖2.4右輪編碼器安裝實物圖圖2.5左輪編碼器安裝示意圖第三章硬件系統(tǒng)設計與實現(xiàn)第三章硬件系統(tǒng)設計與實現(xiàn)智能車系統(tǒng)主要包括一下模塊:飛思卡爾MCU模塊、轉(zhuǎn)向舵機模塊、轉(zhuǎn)速反饋模塊(編碼器)、電機驅(qū)動模塊和圖像采集模塊。當然,還有最基本的電源模塊。總共六個模塊。整體結(jié)構(gòu)框架圖(6)如下:MC9S12XS128MC9S12XS128圖像采集模塊速度采集模塊電機驅(qū)動模塊模塊舵機驅(qū)動模塊電源模塊圖3.1系統(tǒng)框架圖3.1系統(tǒng)基本工作原理及分析單片機采集圖像傳感器的數(shù)據(jù)有兩種方法,模擬式和數(shù)字式的。在往屆的比賽中,最為廣泛的圖像采集方案是采用基于LM1881視頻同步分離芯片的模擬信號采集方案。模擬信號采集方案需先將攝像頭輸出的復合視頻信號進行分離,得到獨立的同步信號和視頻模擬量信號,接著根據(jù)同步信號對模擬視頻信號進行A/D轉(zhuǎn)換或者運用硬件二值化電路對模擬視頻信號進行二值化。最常用的就是是用外部高速AD對攝像頭輸出的模擬信號進行轉(zhuǎn)換,比較常用的就是TLC5510。該方案是優(yōu)點是在小車高速時,輸出的圖像清晰度高,而且在這個方案下,單片機所采集的點數(shù)不會亞于數(shù)字攝像頭。但這個方案的缺點也很明顯,一般需要一個升12V的升壓電路、一個視頻分離電路及一個外部的AD電路,這無形中增加了電路的設計難度及系統(tǒng)的不穩(wěn)定性。而數(shù)字式圖像采集方案則是利用CMOS圖像傳感器可以直接輸出并行數(shù)字信號與時序信號的特性,直接讀取傳感器的數(shù)字輸出。該方案性能穩(wěn)定,不需要A/D,也不需要額外的同步信號分離電路與升壓電路。圖像采集工作在單片機里就變成了按照一定順序?qū)⑼獠繑?shù)據(jù)并行讀入,因此程序簡單,采集速度快。CMOS攝像頭一般只需5V供電,還可以通過I2C/SCCB總線進行參數(shù)設置,如調(diào)整亮度、對比度、圖像開窗等等。通過綜合考慮,我們最終選擇了一款美國OmniVision公司開發(fā)的CMOS彩色圖像傳感器OV7620作為我們的主傳感器。3.1.1攝像頭與單片機的接口電路及采集代碼圖3.2攝像頭接口電路圖如上圖,OV7620數(shù)字攝像頭與單片機接口就是三個信號線,八個數(shù)據(jù)線。很大程度上降低了電路的設計難度。其中PT4是奇偶場標志位,PT5是行中斷標志位,PT6是場中斷標志位,PB0~PB7是數(shù)據(jù)口。3.2電機驅(qū)動電路由于本屆C型車模是雙電機控制,所以我們采用了兩片BTS7960驅(qū)動并聯(lián)獨立控制一個電機。器驅(qū)動電路如下:圖3.4電機驅(qū)動電路圖由于是并聯(lián)式,所以能控制電機的正反轉(zhuǎn)。3.3速度采集電路由于是雙電機,所以我們采用了兩個100線的編碼器分別對電機采集速度,單片機通過一個模擬開關(guān)選通要測量的電機。其電路如下圖所示: 圖3.5編碼器接口電路圖模擬開關(guān)電路圖如下:圖3.6模擬開關(guān)電路圖通過單片機不斷切換所測量的電機,計數(shù)器撲捉來自編碼器返回來的脈沖,這個脈沖個數(shù)是整個車身豎向中軸的速度。3.4舵機驅(qū)動電路 剛開始的時候我們采用通過一個二極管直接用電池驅(qū)動電壓,但是在使用一段時間后,舵機總是莫名其妙的原因燒掉,所以后面我們就采用LM2596穩(wěn)壓芯片穩(wěn)到6V給舵機供電。 其電路圖如下所示:圖3.7舵機穩(wěn)壓電路圖3.5主控芯片電源電路主控芯片是整個系統(tǒng)的大腦,為了能讓“大腦”工作穩(wěn)定,我們使用開關(guān)電源LM2940為芯片供電。 其電路圖如下所示:圖3.8主控芯片供電電路圖3.6模型車技術(shù)參數(shù)統(tǒng)計項目參數(shù)路徑檢測方法(賽題組)攝像頭組車模幾何尺寸(長、寬、高)(毫米)300mm,170mm,300mm車模軸距/輪距(毫米)140mm,200mm車模平均電流(勻速行駛)(毫安)710mA電路電容總量(微法)1615.4uF傳感器種類及個數(shù)攝像頭,1個新增加伺服電機個數(shù)FUTABA3010,1個賽道信息檢測空間精度(毫米)1200mm賽道信息檢測頻率(次/秒)30次/秒主要集成電路種類/數(shù)量1片MC9S12XS128,4片BTS7960車模重量(帶有電池)(千克)1.12kg表格SEQ表格\*ARABIC1小結(jié):硬件電路是做小車整個過程中最基本的部分,再好的算法都是在優(yōu)良的硬件電路上實現(xiàn)的。因此,設計硬件電路盡量選用成熟的模塊,避免哪些莫名其妙的事情發(fā)生。由于我們的基礎差,所以我們走的彎路也很多,電路板都做了十幾套了,每一次都是在摸索著前進。到現(xiàn)在為止,我們裝在車上的板子算是比較穩(wěn)定的了??偠灾?,硬件是個基時,只有把這個搞好了,后面的事情才會好做。第四章軟件系統(tǒng)設計與實現(xiàn)第四章軟件系統(tǒng)設計與實現(xiàn)4.1系統(tǒng)軟件設計軟件設計部分主要包括圖像采集、圖像處理、賽道判斷、舵機打腳、電機控制以及速度反饋處理,系統(tǒng)的流程圖如下圖所示:系統(tǒng)初始化系統(tǒng)初始化圖像采集圖像處理(是否丟線)賽道判斷舵機打角電機控制圖4.1軟件流程圖4.1.1圖像采集我們的車模選HQ7620作為攝像頭,它采用OV7620芯片。該芯片采用1.3英寸的CMOS傳感器,有效分辨率為664(水平方向)*492(垂直方向)。具有自動白平衡等多種調(diào)節(jié)功能。輸出信號8位的圖像數(shù)據(jù)信號,行、場和像素的同步信號,以及混合視頻信號等。要準確讀取圖像信號,需要在像素同步信號的上升沿讀取亮度信息。但S12XS128型單片機的處理速度優(yōu)先,無法捕捉的像素同步信號。為了簡化電路設計,同時最大限度地利用攝像頭采集到的圖像信號。我們將單片機超頻到72M后從OV7620的數(shù)據(jù)端口讀取圖像信號。我們采用指針的方式采集,這種方法每行能采集到220點,考慮到單片機的內(nèi)存,最后我們每行采用120點。這樣的精度也足夠滿足我們的需求了。為了提高單片機的運算效率,我們采用逐行處理及隔行采集的方法。這樣的話,在單片機內(nèi)存里邊只有一行圖像的數(shù)據(jù)。為了提高攝像頭采集賽道信息的準確度,我們在處理數(shù)據(jù)的時候會根據(jù)前面的路徑點對下一個點的范圍進行估計,并在此范圍內(nèi)搜索黑線。識別引導線常用的方法主要有閥值法和邊沿檢測法。邊沿檢測法在圖像受到光照影響時表現(xiàn)比較穩(wěn)定,但在實際應用中,當車速比較快時,CMOS傳感器生成的圖像比較模糊,邊沿不明顯。為了能夠在車速比較快的時候能夠準確提取到黑線,我們結(jié)合了動態(tài)閥值的思想,就是每采一行的圖像,在提取黑線中心的時候,黑線邊沿的閥值是不一樣的。結(jié)合了前面提到的縮小搜索范圍后,采集到的圖像中心能夠滿足我們控制的要求。所以我們后期一直采用這種方法。我們攝像頭采集的圖像如下所示:采集代碼如下:#defineROW_START11#defineROW_END162uchartu_count,cha_ROW;//圖像采集位置uintshu;bytetu_flag;#pragmaCODE_SEG__NEAR_SEGNON_BANKEDvoidinterrupt13ECT5_interrupt(void){TFLG1=0x20;//清除行中斷標志Sample_row++;//采樣行坐標加1staticuint16Sample_row,Sample_column;//當前采樣圖像的行和列if((Sample_row>ROW_START)&&(Sample_row<ROW_END))//{if(Sample_row==tu_count){*(*(huidu+shu)+0)=PORTB;*(*(huidu+shu)+1)=PORTB;*(*(huidu+shu)+1)=PORTB;*(*(huidu+shu)+2)=PORTB; ……… *(*(huidu+shu)+110)=PORTB;*(*(huidu+shu)+110)=PORTB;tu_count+=cha_ROW;if(tu_flag){cha_ROW=cha_ROW-1;tu_flag=0;}else{tu_flag=1;}shu++;if(shu==20){TIE_C5I=0;//通道5中斷使能get_speed();}}}}#pragmaCODE_SEG__NEAR_SEGNON_BANKEDvoidinterrupt14ECT6_interrupt(void){flag=1;Sample_row=0;//采樣行清零shu=0; tu_count=23; cha_ROW=12;tu_flag=1;TIE_C5I=1;//通道5中斷使能TFLG1_C5F=1;//清除通道5中斷標志TFLG1=0x40;//定時中斷標志寄存器TFLG1C}#pragmaCODE_SEG__NEAR_SEGNON_BANKED4.1.2圖像處理對于攝像頭來說,最重要的還是對攝像頭才回來的信息做處理,處理的結(jié)果直接影響后面控制策略,而控制策略也影響著最終成績。我們采用比較成熟的邊沿提取黑線的方案,相對于二值化來說,它提高了單片機的運算效率。但是在小車車速提高之后,采集回來的圖像的邊沿會變得模糊,如果是采用靜態(tài)閥值的話,圖像遠端根本采不回正確的圖像信息,為此,我們引用動態(tài)閥值的思想,從白色像素到黑色像素的下降沿和從黑色像素到白色像素的上升沿,然后計算上升沿和下降沿的位置差,如果大于一定的標準值,即認為找到了黑線,并可求平均值算出黑線的中心點。至于上升沿、下降沿的檢測,可以通過上上次采樣數(shù)與這次采樣數(shù)的差值的絕對值是否大于一個閾值來判斷,如果“是”且差值為負,則為上升沿;如果“是”且差值為正,則為下降沿。后來我們發(fā)現(xiàn)在賽道上,大部分的黑線是連續(xù)的(虛線除外),我們采用了黑線邊沿跟蹤的方法,這個方法的好處是:掃描速度快;由于搜索范圍窄,所以抗干擾能力也很強,采集回來的黑線中心可靠。具體實現(xiàn)思路是:先掃描離車子最近的一行,假如采集到正確的黑線,就以該行的黑線中心為準,向兩邊掃描上升沿和下降沿。如果是沒掃描到黑線,就根據(jù)前兩行的黑線趨勢來判定該行的黑線中心,即相當于處理虛線,還要做個標志位;采不到黑線,標志位就加1,判斷標志位的值大于某個閥值就能判定車模有沒有丟失圖像了。下圖是攝像頭采回來的信息:圖4.2攝像頭采集回來的信息(1)這個是出大S彎采回來的信息,下圖二值化的圖像是為了跟邊沿提取對比的。圖4.3攝像頭采集回來的信息(2)從上圖可以很容易看出,邊沿提取法所采到的信息量遠比二值化多得多,而且可靠。4.1.3賽道判斷準確的圖像信息只是整個控制系統(tǒng)中的基石,我們還要對它進行加工才能用。因為我們是競速類的智能車,我們一定要對賽道進行判斷,要不然就無法走出好的路徑了。我們判斷賽道的方法是:先就采集到的圖像判斷車子是否已經(jīng)丟失賽道了;如果沒丟失,就判斷能采到的黑線行數(shù)是多少,再求出黑線行的平均黑線中心。這就相當于兩個條件:黑線行數(shù),黑線的平均位置。我們就是由這兩個變量來判斷賽道類型的。4.2虛線的處理今年的智能車比賽賽道較上屆增加了難度,主要體現(xiàn)在賽道增加了虛線。按照我們的搜索黑線的方式,如果該行搜索不到正確的黑線,而前兩次的黑線是正確的,那就以前兩次黑線中心的趨勢來計算該行的黑線中心位置。4.3起跑線的識別根據(jù)比賽的規(guī)則,跑完一圈后不能停車的加1秒。在這種競速類的比賽中,一秒可以讓車子提升好幾個名次。它對最終成績影響是很大的。我們識別起跑線的方法是特征提取法。起跑線如下圖所示:圖4.4起跑線示意圖應為在正常的情況下,黑線的跳變次數(shù)為左右各一次。我們在車出發(fā)一定時間后在檢測起跑線,采用從中間的黑線中心開始搜索,如果左右各有一對邊沿,就認為是起跑線。這個方法準確率比較高。延時一段時間才開啟檢測起跑線,主要是為了濾除掉十字交叉線或者其他的干擾。第五章控制算法第五章控制算法5.1舵機的控制由于舵機的力臂比較長,舵機的PWM的范圍是±175。剛開始的時候我們采用常規(guī)的PID控制,發(fā)現(xiàn)舵機反應偏慢,而且不穩(wěn)定,后來經(jīng)過多次實踐,我們發(fā)現(xiàn)采用位置式的PD控制后,舵機反應足夠靈敏,并且很穩(wěn)定。后期,我們一直采用這種方式。其控制代碼如下:公式SEQ公式\*ARABIC1其中,D_zhongxin是車模前輪擺正時的參數(shù),為1460;D_Kp是舵機PD控制的P值;xiu_D_Kp是舵機P值的修正值;error是當前圖像的黑線中心的偏差;D_Kd是舵機PD控制中的D值;dd_error是上次圖像黑線中心的偏差。DJ_chu是輸出給舵機的PWM值。5.2電機的控制速度控制策略的好壞與否直接決定小車能否取得優(yōu)秀的成績,如何給定速度是關(guān)鍵,什么類型的賽道配合什么樣的速度。比如過彎時要提前減速使賽車在入彎前達到一個安全的速度,從而避免車模沖出賽道;過S彎的時候和走直道的時候要區(qū)分開來。經(jīng)過很多次的實踐,我們將給定速度處理二次曲線,有點類似PID的效果,這樣達到的實際效果還是比較理想。代碼如下:公式SEQ公式\*ARABIC2其中,error是當前圖像的黑線中心的偏差;dv_error數(shù)組是用來存儲圖像黑線中心偏差,dv_error[0]是存上次偏差的值,dv_error[1]是存上上次偏差的值,dv_error[2]是存前面第三次偏差的值;qu_shi_ii是用來反應賽道趨勢的一個參數(shù)。公式SEQ公式\*ARABIC3其中,error是當前圖像的黑線中心的偏差;High_speed表示滿占空比,即100;low_speed是允許單片機輸出PWM的最小值;qu_shi_ii是用來做輸出的一個微調(diào)參數(shù)。DJv_chu是電機輸出的一個期待值。為了能是小車能以最短的時間響應給定的速度,我們采用了增量式PID,其代碼如下:公式SEQ公式\*ARABIC4其中,Yuqi_V是公式3輸出的結(jié)果,即電機的期望值;pluse_cnt是編碼器返回的脈沖值;Tn是當前偏差。公式SEQ公式\*ARABIC5其中,V_Kp是電機PID控制中的P參數(shù);Tn是公式4的計算結(jié)果;V_Ki是電機PID控制的I值;Tn_1是上次偏差;V_Kd是電機PID控制的D值;Tn_2是上上次偏差。CV是速度的增量。比例積分微分+比例積分微分++被控對象e(t)U(t)圖5.1PID控制器示意圖由上圖可知,PID是個閉環(huán)算法。比例(P)、積分(I)、微分(D)在控制算法里邊各自有作用:比例(P),反應系統(tǒng)的基本(當前)偏差e(t),系數(shù)大,可以加快調(diào)節(jié),減小誤差,但過大的比例是系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)不穩(wěn)定;積分(I),反應系統(tǒng)的累計偏差;是系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度,因為有誤差,積分調(diào)節(jié)就進行,直至無誤差;微分,反應系統(tǒng)偏差信號的變化率,具有預見性,能預見偏差變化的趨勢,產(chǎn)生超前的控制作用,在偏差還沒有形成之前,已被微分調(diào)節(jié)作用消除,因此可以改善系統(tǒng)的動態(tài)性能。但積分和微分都不能單獨起作用,必須與比例控制配合。下面將常用的各種控制規(guī)律的控制特點簡單歸納一下:1.比例控制規(guī)律P:采用P控制規(guī)律能較快地克服擾動的影響,它的作用于輸出值較快,但不能很好穩(wěn)定在一個理想的數(shù)值,不良的后果是雖較能有效的克服擾動的影響,但有余差出現(xiàn)。它適合于控制通道滯后較小、負載變化不大、控制要求不高、被控參數(shù)允許在一定范圍內(nèi)有余差的場合。如:水泵房冷、熱,水池水位控制等場合不適合在小車的控制系統(tǒng)上,所以我們并沒有采用P控制。2.比例積分控制規(guī)律(PI):這個是應用最廣泛的一種控制規(guī)律。積分能在比例的基礎上消除余差,它適合于控制通道滯后較小、負荷變化不大、被控參數(shù)不允許有余差的場合。如:油泵房供油管流量控制系統(tǒng)、溫度調(diào)節(jié)系統(tǒng)等。我們也嘗試過在車模上用這中控制規(guī)律,但實踐的結(jié)果表明:小車入彎、出彎都不夠穩(wěn)定;我們分析原因是在入彎和出彎的時候,電機的負載變化大造成的不穩(wěn)定。所以我們也并為采用這種控制。3.比例微分控制規(guī)律(PD):微分具有超前作用,對于具有容量滯后的通道,引入微分參與控制,在微分項設置得當?shù)那闆r下,對于提高系統(tǒng)的動態(tài)性能指標,有著顯著效果。因此,對于控制通道的說話間常數(shù)或容量滯后較大的場合,為了提高系統(tǒng)的穩(wěn)定性,減小動態(tài)偏差等可選用比例微分控制規(guī)律。我們在調(diào)試小車的時候,用這種方法控制小車的舵機,效果令我們滿意。4.比例積分微分控制規(guī)律(PID):PID是一種較為理想的控制規(guī)律,它在比例的基礎上引入積分,可以消除余差,再加入微分作用,又能提高系統(tǒng)的穩(wěn)定性。它適合于控制通道時間常數(shù)或容量滯后較大、控制要求較高的場合。我們在調(diào)試小車時,速度采用了這種控制,效果良好。鑒于D規(guī)律的作用,我們還必須了解時間滯后的概念,時間滯后包括容量滯后與純滯后。其中容量滯后通常又包括:測量滯后和傳送滯后。測量滯后是檢測元件在檢測時需要建立一種平衡,如熱電偶、熱電阻、壓力等響應較慢產(chǎn)生的一種滯后。而傳送滯后則是在傳感器、變送器、執(zhí)行機構(gòu)等設備長生的一種控制滯后。純滯后是相對于測量滯后的,在工業(yè)上。大多數(shù)的純滯后是由于物料傳輸所致。在我們調(diào)試車模的過程中,調(diào)PID參數(shù)是件不容易的事情。特別是今年的C型車模,它是雙電機控制的,涉及的差速控制,在轉(zhuǎn)彎時PID的參數(shù)對兩個電機是不一樣的。經(jīng)過我們的無數(shù)次實踐,現(xiàn)在車子跑得穩(wěn)定、快速、可靠。結(jié)果還是令我們比較滿意的。第六章調(diào)試工具及開發(fā)環(huán)境為了提高調(diào)試效率,更容易發(fā)現(xiàn)問題及解決問題,我們用串口調(diào)試工具及無線模塊;下面是我們自己編寫的一個上位機的軟件,功能雖然很簡單,只能傳送當前的電機的PWM上來,但在我們的調(diào)試中占據(jù)著很重要的位置。因為我們可以看到小車當前的速度以及判斷小車是否沖出了跑道。下圖是該軟件的界面。左上角的現(xiàn)在速度就是車子返回來的PWM值。圖6.1上位機調(diào)試軟件界面我們的軟件開發(fā)環(huán)境是CodeWarriorS12V5.0,它有著非常好的人機操作界面,跟我們熟悉的Keil差不多,很容易上手。它的操作界面如下:圖6.2開發(fā)環(huán)境操作界面第七章總結(jié)與展望第七章總結(jié)與展望7.1總結(jié)將近10個月的努力,我們的成果就是小車,看著小車在賽道上飛馳,我們都感到很欣慰。因為我們的基礎比別的學校差得遠,所以我們付出了更多的努力。由于我們并非機械專業(yè)的學生,也不是汽車專業(yè)的學生,所以我們在調(diào)試車模機械結(jié)構(gòu)的時候都是參照別人的技術(shù)報告來調(diào)試車模的機械結(jié)構(gòu)的。我們將舵機架高,編碼器也是精心安裝,使其不會對電機驅(qū)動有影響,而前輪我們調(diào)校稍微內(nèi)八型。攝像頭的固定,我們是實踐過很多次,嘗試過不同高度,不同俯角對圖像的采集、車模的運動的影響,最終確定現(xiàn)在的高度及俯角??偟脕碚f,好的機械結(jié)構(gòu)對車模的提速影響是很大。對于攝像頭組的車模來說,黑線的提取及處理是核心。我們經(jīng)過大量的實踐,最終確定是從中間往兩邊搜索黑線。這種方法干干擾強,提取的信息準確。我們后期一直采用這種方法。在控制方面,我們運用閉環(huán)的PID,PID控制算法能夠使小車加速減速迅速,容易實現(xiàn)“進彎減速,出彎加速”,該控制算法具有很強的靈活性,可以根據(jù)實驗和經(jīng)驗在線調(diào)整參數(shù),具有更好的控制性能。它具有控制精度高、超調(diào)小的優(yōu)點,使靜態(tài)、動態(tài)性能指標較為理想,同時又達到了準確、快速測定的目的。7.2展望這是我們第一次參加“飛思卡爾”杯智能車比賽,各個方面都不是那么的完美,我們在理論與實際聯(lián)系的過程中缺乏一定的相關(guān)知識。但通過我們不懈的努力,部分難題已經(jīng)被攻破,我們實踐能力也得到了提升。而剩下的就留給下一屆吧,正所謂“親出于藍而勝于藍”,我們相信以后會出現(xiàn)更多優(yōu)秀的隊伍在智能車比賽上大放異彩?。≈轮x 在制作智能車的過程中,我們遇到過很多問題,從最初的傳感器選型到后面的軟硬件調(diào)試。在解決一個個問題之后,我們的技術(shù)在不斷的升級,思想在不斷的成熟。這一切都離不開學校、老師和同學們的支持。 首先,我們感謝學校對這次比賽的重視,感謝學校對我們的支持。其次,我們要感謝鄧健志老師和沈卓君老師的悉心指導。最后,感謝在同一個實驗室做車模的其他同學,感謝大四學長的支持?。⒖嘉墨I參考文獻[1]基于HCS12的嵌入式系統(tǒng)設計吳曄,張陽,滕勤編著。北京:電子工業(yè)出版社,2010.1[2]學做智能車—挑戰(zhàn)“飛思卡爾”杯卓晴,黃開勝,邵貝貝。北京:北京航空航天大學出版社,2007[3]單片機嵌入式應用的在線開發(fā)方法邵貝貝。北京:清華大學出版社.2004[4]新型PID控制及其應用(第二版)陶永樂編著。機械工業(yè)出版社,2002[5]絕塵隊第四屆“飛思卡爾”杯全國大學生智能車大賽技術(shù)報告西安交通大學2009[6]瞬之隊第四屆“飛思卡爾”杯全國大學生智能車大賽技術(shù)報告西北師范大學2009[7]錢江2號第五屆“飛思卡爾”杯全國大學生智能車大賽技術(shù)報告杭州電子科技大學2010[8]獵豹隊第二屆“飛思卡爾”杯全國大學生智能車大賽技術(shù)報告東北大學2007附錄: 部分源代碼如下:#include<hidef.h>/*commondefinesandmacros*/#include<MC9S12XS128.h>/*derivativeinformation*/#include"Init.h"http://***************************黑線中心提取函數(shù)*************************//#include<hidef.h>/*commondefinesandmacros*/#include<MC9S12XS128.h>/*derivativeinformation*/#include"Init.h"externucharhuidu[Hang][105];//圖像intcenter[Hang];//中心uintcenter1[Hang];externuintshu;externucharflag_2;ucharteb_huidu[105];ucharlast_qi_zhong;ucharlast_qi_hang;ucharZ_xin_point7(void)//以上一行數(shù)據(jù)為中心點進行掃描{inti,k,t,end,count1,count2;intcount_start,count_end,flag1,flag2;intteb,teb1;intxch1,xch2;intflag3,flag4;intcount3,count4;//ucharpian_count;//無效行記數(shù)charflag_start=0;ucharflag_tt=0;charteb_F_zhi,teb_X_zhi;intkuan_du;for(t=0;t<Hang;t++){center[t]=-1;if(flag_start){if(flag_tt){k=(center[t-1]-center[t-2])+center[t-1];}else{k=center[t-1];flag_tt=1;}end=25;}else{if(t>Hang/2){return0;}k=last_qi_zhong;end=(Dian_end-Dian_start)/2-10;}xch1=xch2=flag3=flag4=count3=count4=0;teb_F_zhi=F_zhi-Hang/4;teb_X_zhi=X_zhi+Hang/4;while(t>=shu);if(huidu[t][k]-huidu[t][k-2]>teb_F_zhi)//flag1上升沿flag1=1;elseflag1=0;if(huidu[t][k]-huidu[t][k+2]>teb_F_zhi)//flag2下降沿flag2=1;elseflag2=0;for(i=1;i<end;i++){if(flag3==0)//是否找到上升沿{if((i+k)>Dian_end)flag3=1;count1=huidu[t][k+i]-huidu[t][i+k-2];if(count1>teb_F_zhi){flag1++;if(flag1>1){flag3=1;count_end=k+i;count4=1;}}elseif(count1<teb_X_zhi){xch1++;flag1=0;if(xch1>1){count_start=k+i-3;count3=1;flag4=1;end=i+10;}}else{xch1=0;flag1=0;}}if(flag4==0)//是否找到下降沿{if((k-i)<Dian_start)flag4=1;count2=huidu[t][k-i]-huidu[t][k+2-i];if(count2>teb_F_zhi){flag2++;if(flag2>1){flag4=1;count_start=k-i;count3=1;}}elseif(count2<teb_X_zhi){xch2++;flag2=0;if(xch2>1){count_end=k-i+3;flag3=1;end=i+10;count4=1;}}else{xch2=0;flag2=0;}}if(count3>0&&count4>0){teb=count_end-count_start;//黑線寬度teb1=count_start+teb/2;//黑線中心if(flag_start)//if(teb<kuan_du+10){center[t]=teb1;flag_start=1;kuan_du=teb;}else{//if(teb<25){center[t]=teb1;last_qi_zhong=(uchar)teb1;last_qi_hang=(uchar)t;flag_start=1;kuan_du=teb;}}break;}}//endforiif(center[t]<0){pian_count++;if(pian_count>12)//7.4-4{for(;t<Hang;t++)center[t]=center[t-1];flag_2=1;return1;}center[t]=center[t-1];}else{pian_count=0;}}//endfortflag_2=1;return1;}/******************************平均中心點控制**************************************/uintZ_xin;uintlast_Z_xin;externucharnie_qie;//內(nèi)切程度voidP_zhongxin(){uinti,t=0;ulongsum=0;for(i=nie_qie;i<Hang;i++)//7.6-i=0;if(center[i]>0){t++;sum+=center[i];}Z_xin=(uint)sum/t;//求和取平均if(Z_xin>150)Z_xin=last_Z_xin;elselast_Z_xin=Z_xin;}#include<hidef.h>/*commondefinesandmacros*/#include<MC9S12XS128.h>/*derivativeinformation*/#include"Init.h"externucharHigh_speed;//最高速externucharlow_speed;//***************************舵機控制函數(shù)*************************//#defineD_Kp25//25//舵機PID參數(shù)400#defineD_Ki0//0//#defineD_Kd3//8//7.6-12150intd_error,dd_error;intDJ_chu;ucharxiu_D_Kp;voidDUOJI_PID2(interror)//位置式{xiu_D_Kp=(uchar)(_abs(error));DJ_chu=D_zhongxin+(D_Kp+xiu_D_Kp)*error/10+D_Kd*(error-dd_error)/10;if(DJ_chu>D_right)DJ_chu=D_right;elseif(DJ_chu<D_left)DJ_chu=D_left;DUOJI=DJ_chu;dd_error=d_error;d_error=error;}//***************************電機控制函數(shù)*************************//intTn,Tn_1,Tn_2,Vn,Vn_1,CV,Vn;#defineV_Kp42//222025//P調(diào)節(jié)22#defineV_Ki3//1177//PI調(diào)節(jié)22-318-9#defineV_Kd0//0-32//externcharqu_shi_ii;externucharpluse_cnt;intDianji_PID(ucharYuqi_V){Tn=Yuqi_V-pluse_cnt;//if(Tn>(High_speed-low_speed))//Tn=(High_speed-low_speed);//elseif(Tn<(low_speed-High_speed))//Tn=(low_speed-High_speed);CV=(V_Kp*Tn/10+V_Ki*(Tn-Tn_1)/10+V_Kd*(Tn-2*Tn_1+Tn_2)/10);Vn=Vn_1+CV;if(Vn>250)Vn=250;elseif(Vn<qu_shi_ii)Vn=qu_shi_ii;Vn_1=Vn;Tn_2=Tn_1;Tn_1=Tn;returnVn;}/***************************速度控制PID********************************/chardv_error[10];intDJv_chu;externucharqu_shi,qu_shi_high;externcharqu_shi_ii;//externucharxiu_D_Kp;ucharK_speed(charerror)//位置式{chari;qu_shi_ii=2*(error-dv_error[1])+(dv_error[0]-dv_error[2]);qu_shi=(uchar)_abs(qu_shi_ii);DJv_chu=(High_speed+error*(High_speed-low_speed)/40+qu_shi_ii);//DJv_chu=(High_speed+error*(High_speed-low_speed)/40+(3*(error-dv_error[1])+2*(dv_error[0]-dv_error[2])+(dv_error[1]-dv_error[3])+(dv_error[2]-dv_error[4])));//DJv_chu=(High_speed+error*(High_speed-low_speed)/40+((error-dv_error[1])+(dv_error[0]-dv_error[2])+(dv_error[1]-dv_error[3])));//DJv_chu=(High_speed+error*(High_speed-low_speed)/40+((error-dv_error[1])+(dv_error[0]-dv_error[2])));if(DJv_chu>High_speed+15)DJv_chu=High_speed+15;elseif(DJv_chu<low_speed-20)DJv_chu=low_speed-20;for(i=9;i>0;i--)dv_error[i]=dv_error[i-1];dv_error[0]=error;return(uchar)DJv_chu;}/************************PID初始化**************************************/voidPID_init(){/////////舵機PID///////////d_error=0;dd_error=0;DJ_chu=0;/////////電機PID///////////Tn=0;Tn_1=0;Tn_2=0;Vn=0;Vn_1=0;CV=250;Vn=0;}#include<hidef.h>/*commondefinesandmacros*/#include<MC9S12XS128.h>/*derivativeinformation*/#include"Init.h"#include"nRF905.h"externucharpluse_cnt;externuintZ_xin;//當前圖像中心externucharHigh_speed;//最高速externucharlow_speed;externcharZ_cha;//中心偏差externuintJ_cha;//偏差絕對值上次差上上次差ucharF_xiang,last_F_xiang;//上次轉(zhuǎn)動方向記錄0為左1為右ucharstart_line;//起始線externintPID_speed;externucharcount_teb;voidkongzhi(charX){//intsum;if(X==1){P_zhongxin();//中心平均值Z_cha=Z_xin-zhongxin;//中心偏差左負右正if(Z_cha<0){if(Z_cha<-40)Z_cha=-40;F_xiang=0;}else{if(Z_cha>40)Z_cha=40;F_xiang=1;}J_cha=_abs(Z_cha);DUOJI_PID2(Z_cha);if(start_line){if(start_line>4){count_teb=0;if(pluse_cnt>25){Dianji1_1=250;Dianji1_2=0;Dianji2_1=250;Dianji2_2=0;}else{Dianji1_1=0;Dianji1_2=0;Dianji2_1=0;Dianji2_2=0;PWME_PWME0=0;PWME_PWME1=0;PWME_PWME4=0;PWME_PWME5=0;//DisableInterrupts;}}else{count_teb=K_speed((char)(0-(J_cha)));start_line++;}}else{count_teb=K_speed((char)(0-(J_cha)));}}else{if(F_xiang){DUOJI_PID2(40);count_teb=low_speed;}else{DUOJI_PID2(-40);count_teb=low_speed;}}}///////////////////差速///////////////////////////////charqu_shi_ii;voidcha_su(){intcount_speed1=0,count_speed2=0;intteb_cha;if(250-PID_speed>100)count_speed1=PID_speed+100;elsecount_speed1=250;teb_cha=DUOJI-D_zhongxin;//開差速//teb_cha=0;//關(guān)//count_speed1=PID_speed+_abs(teb_cha)/4;//count_speed1=250;if(count_speed1>250)count_speed1=250;/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年亳州職業(yè)技術(shù)學院單招職業(yè)適應性測試題庫審定版
- 2025年常州機電職業(yè)技術(shù)學院單招職業(yè)傾向性考試題庫及參考答案一套
- 2025年貴州航天職業(yè)技術(shù)學院單招職業(yè)傾向性測試題庫學生專用
- 2025年阜陽幼兒師范高等專科學校單招職業(yè)技能考試題庫學生專用
- 2025年貴州健康職業(yè)學院單招職業(yè)技能考試題庫及參考答案1套
- 農(nóng)田生態(tài)系統(tǒng)服務-第1篇-深度研究
- 鑄件表面質(zhì)量在線檢測系統(tǒng)-深度研究
- 中學實驗設備購置項目可行性研究報告
- 茶旅項目可行性研究報告
- 靶向異構(gòu)體識別策略-深度研究
- 骶髂關(guān)節(jié)損傷郭倩課件
- 內(nèi)科學疾病概要-支氣管擴張課件
- 2025陜西渭南光明電力集團限公司招聘39人易考易錯模擬試題(共500題)試卷后附參考答案
- 預防感冒和流感的方法
- 2024年黑龍江職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 2024年南京旅游職業(yè)學院高職單招語文歷年參考題庫含答案解析
- 人教版高中英語挖掘文本深度學習-選修二-UNIT-4(解析版)
- 中藥學電子版教材
- 評審會專家意見表
- pep小學英語四年級上冊Unit3全英文說課稿
- 中藥知識文庫:天麻形態(tài)學
評論
0/150
提交評論