河北理工大學 冀風隊技術(shù)報告.doc_第1頁
河北理工大學 冀風隊技術(shù)報告.doc_第2頁
河北理工大學 冀風隊技術(shù)報告.doc_第3頁
河北理工大學 冀風隊技術(shù)報告.doc_第4頁
河北理工大學 冀風隊技術(shù)報告.doc_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第二屆全國大學生“飛思卡爾”杯智能汽車競賽技 術(shù) 報 告學 校: 河北理工大學隊伍名稱: 冀風參賽隊員: 李瑋汪漢清張明吉帶隊教師: 張瑞成 關(guān)于技術(shù)報告和研究論文使用授權(quán)的說明 本人完全了解第二屆全國大學生“飛思卡爾”杯智能汽車競賽關(guān)保留、使用技術(shù)報告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會和飛思卡爾半導體公司可以在相關(guān)主頁上收錄并公開參賽作品的設(shè)計方案、技術(shù)報告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會出版論文集中。參賽隊員簽名: 帶隊教師簽名: 日 期: 目錄第一章 引言1第二章 硬件電路設(shè)計22.1 模型車的主要技術(shù)參數(shù)說明:22。2 電源模塊22

2、。3路徑檢測模塊32。3。1傳感器的硬件設(shè)計:32.3.2傳感器排布42.4 測速模塊42.5 電機驅(qū)動模塊52.6轉(zhuǎn)向模塊5第三章 控制策略與軟件實現(xiàn)73.1黑線檢測方法73。2路徑形狀判斷93。3轉(zhuǎn)向控制策略103.4 速度檢測113。5 速度控制策略113.6 記憶控制方案12第四章 總結(jié)及比賽心得15參考文獻16附錄:源代碼I第一章 引言針對第二屆“飛思卡爾”杯全國大學生智能汽車邀請賽的要求,結(jié)合第一屆大賽各隊的特色參賽報告,我們提出了簡單、穩(wěn)定、快速、智能的方針作為模型車方案設(shè)計的指導原則。在整個準備過程中,我們經(jīng)歷了學習相關(guān)文獻、分析系統(tǒng)組成原理、制作硬件電路、選擇控制策略、實際跑

3、道調(diào)試等五個階段,而且針對各種實際問題我們提出了多種解決方案,并經(jīng)過大量的實驗,從而得出了一些相對較好的策略和思想.經(jīng)過對被控對象的分析,我們把智能車控制系統(tǒng)分為兩個主要的子控制系統(tǒng):轉(zhuǎn)向控制系統(tǒng)和速度控制系統(tǒng)。轉(zhuǎn)向控制系統(tǒng)保證小車能夠緊密的跟隨黑線前進,速度控制系統(tǒng)能使智能車盡快穩(wěn)定在所需要的不同速度上,即保證在直道入彎時能夠迅速降速保證小車不會因為車速過高而沖出跑道,在由彎道入直道時能夠經(jīng)快使小車提高到所需的速度,從而提高小車的平均速度。本文可分為三部分,第一部分簡述了硬件制作過程的方案選擇。第二部分詳細的闡述了智能車的控制思想及實現(xiàn)的方法.如黑線檢測方案、路形判斷方案、速度調(diào)節(jié)方案等。第

4、三部分是總結(jié),主要總結(jié)了制作的經(jīng)過以及一些心得體會.第二章 硬件電路設(shè)計2.1 模型車的主要技術(shù)參數(shù)說明:表2。1技術(shù)參數(shù)項目參數(shù)車模幾何尺寸(長、寬、高)(毫米)390200*100車模平均電流(勻速行駛)(毫安)1200電路電容總量(微法)2000傳感器種類及個數(shù)光電傳感器,16個新增加伺服電機個數(shù)0賽道信息檢測空間精度(毫米)10賽道信息檢測頻率(次/秒)200除MC9S12DG128之外其它主要芯片LM2940-5, TIP42C車模重量(帶有電池)(千克)32.2 電源模塊電源做為智能車的“心臟”,是小車的重要組成部分。小車使用的電源提供的電壓為7.2V,據(jù)資料可以知道,電動機可以工

5、作在7.2V,但單片機、傳感器必須工作在5V電壓下.故必須利用穩(wěn)壓芯片進行穩(wěn)壓。舵機可以工作在4.5V7.2V,舵機工作的電壓越大,它的反應速度越快。但由電源同時直接供電給電動機和舵機時,它們之間會產(chǎn)生很大的干擾。如果用穩(wěn)壓電路給舵機供電,就可以消除它們之間的干擾。利用7806穩(wěn)壓芯片穩(wěn)壓,使舵機工作在6V電壓下。電壓分配圖如下:7.2V(鎳鎘電池組) 2940-5V穩(wěn)壓芯片 光 電 傳 感 器 測速傳感器 單片機 7806(6V)穩(wěn)壓芯片 舵機 后輪電機 圖2。1 智能車系統(tǒng)電壓分配圖2.3路徑檢測模塊路徑檢測方式主要有兩種:光電傳感器檢測和CCD攝像頭檢測。由于光電傳感器具有掃描頻率高、結(jié)

6、構(gòu)簡單、質(zhì)量輕 、體積小、安裝方便、算法簡單等優(yōu)點,所以采用光電傳感器檢測方式。2.3.1傳感器的硬件設(shè)計:為了能夠清晰準確的辨別黑線軌跡,利用紅外光電傳感器的特性,制作了路徑識別模塊。電路特點:電路原理簡單,安裝方便,檢測速度快(道路檢測周期一般是幾十毫秒,遠快于CCD檢測,相比之下紅外接受管對反射光的響應時間和單片機讀取信號的時間是幾十微秒,因此在一個檢測周期的大部分時間內(nèi),紅外發(fā)射管不需要工作,只要檢測瞬間工作即可。這樣就可以大大降低耗電量。),如圖2。2所示,電路可以輸出連續(xù)變化的信號。圖 2.2 光電傳感器驅(qū)動電路該電路的實驗結(jié)果:電路和各參數(shù)如圖所示,第一級檢測電路可得到電壓是高電

7、平1015mV,低電平04mV,波形較好。經(jīng)過第二級放大,通過設(shè)置可調(diào)反饋電阻可以調(diào)節(jié)放大倍數(shù)。由于光電傳感器是通過判斷接收到的光的強度來識別賽道的,不可避免的要受到外界環(huán)境干擾,在電路中產(chǎn)生噪聲.噪聲主要來自環(huán)境光線干擾,主要是日光和賽道附近燈光。抑制噪聲的措施主要有:安裝遮光板。增加紅外發(fā)射功率,可以提高檢測信號的信噪比。電路濾波:環(huán)境干擾信號一般是緩慢變化的,可采用脈沖式紅外發(fā)射與檢測方式,或者選用帶有38KHZ的調(diào)制/解調(diào)紅外發(fā)射接受模塊.軟件濾波,使用單片機AD口采集紅外檢測信號,再通過軟件濾除干擾信息。2.3。2傳感器排布“一”字形排布是傳感器最常用的排布形式,即各個傳感器都在一條

8、直線上,從而保證縱向的一致性,使其控制策略主要集中在橫向上.非“一"字形排布雖然增加了縱向的特性.但由于縱向的排列不一致,就比“一"字形更增加了多傳感器同時感應的可能性,從而將控制策略復雜化.而“一”字形排布結(jié)構(gòu)簡單,對應的控制策略簡單,容易實現(xiàn),所以采用“一”字形排布形式2。4 測速模塊為了使智能車快速,穩(wěn)定的跟隨黑色軌跡,一個快速,準確的測速傳感器系統(tǒng)是必不可少的。常用的測速傳感器包括紅外光電傳感器,霍爾傳感器和測速發(fā)電機。本設(shè)計采用了基于紅外光電傳感器的智能車測速系統(tǒng)。選用紅外光電傳感器,響應時間是微秒量級,對于測量系統(tǒng)中的速度是完全足夠的。經(jīng)過測量,車輪周長17cm

9、,所以采用了17孔的測速碼盤,就可以滿足系統(tǒng)的要求,并且經(jīng)實際測試可以達到上述目的。電路原理圖及測速碼盤示意圖如下:圖2。3 測速傳感器電路圖 圖2.4 測速碼盤示意圖2.5 電機驅(qū)動模塊電機驅(qū)動模塊采用的是大賽組委會提供的MC33886芯片.MC33886簡介:20個引角,其中D1,D2為使能端,IN1,IN2為輸入端,OUT1,OUT2為輸出端,將MC33886的輸入端接到單片機PWM輸出口,在其輸出口可以得到與單片機PWM輸出口相應的并可以驅(qū)動直流電動機的PWM信號MC33886其實質(zhì)就是一個H橋驅(qū)動電路,只不過它又加了一些保護電路,起到過流保護等作用.MC33886內(nèi)部具有過電流保護電

10、路,剎車效果好,接口簡單易用,能夠提供較大的驅(qū)動電流,但對于小車驟然時所需的電流還是不夠的,而且其發(fā)熱量也比較大。為了解決發(fā)熱的問題,我們采用了兩片33886芯片并聯(lián)使用的方式,經(jīng)過實驗這種方式可以有效的驅(qū)動電機并且發(fā)熱量很小,完全可以滿足要求.2。6轉(zhuǎn)向模塊為了盡量緩解舵機滯后性所帶來的影響,提高它的響應速度,我們采取了相應的措施:1)盡量加大舵機的工作電壓,提高其轉(zhuǎn)動速度.2)利用桿杠原理,通過對小車的拉杠的調(diào)整,增大前輪轉(zhuǎn)角和舵機轉(zhuǎn)角的傳動比。3)將小車的脈沖波形周期由20ms縮短到10ms,提高其響應速度。第三章 控制策略與軟件實現(xiàn)智能車控制算法是影響智能車運動性能的重要因素之一,在輸

11、入信號有限的條件下,運用一種有效的算法,對于提高智能車的運動性能,有著重要的作用。系統(tǒng)方框圖如下:圖3。1 系統(tǒng)方框圖3。1黑線檢測方法使用集成紅外傳感器的缺點是它對路徑的檢測是離散的量,不能連續(xù)觀注到黑線位置的變化.當傳感器的橫向間隔距離比較稀疏時,模型車進行方向糾正的時候會在黑線兩側(cè)產(chǎn)生較大的波動.所以傳感器的間距不能過大,應當盡量的縮小。但是,傳感器的分布過密也有不足之處,如果過密會大大增加路徑檢測模塊的質(zhì)量,加大模型車的轉(zhuǎn)動慣量,不利于過彎。同時由于傳感器的數(shù)量的限制,如果在個體之間布置過密,則整體的寬度也受到影響,檢測范圍縮窄,同樣不利于模型車的穩(wěn)定運行。所以,傳感器的間距應當根據(jù)實

12、際的情況,在各種利弊之間進行合理的取舍,最終確定比較適中的間距。經(jīng)過反復的分析和實驗測試,最終我們采用十二只光電傳感器“一”字型等距排列,間距是15mm。如圖3.2所示: 圖3.2 前排光電排布示意圖為了能夠有效的反應黑線相對于小車的位置,對前排光電進行坐標賦值,從左至右依次是-11,9,-7,5, -3,-1,1,3,5,7,9,11,當某一個或兩個光電檢測到黑線時(即返回信號為低電平時),通過軟件編程,根據(jù)光電反饋回來的高低電平的信號,當某個光電返回的信號為低電平時其對應的坐標值才為有效值,而反饋回的信號為高電平的光電對應的坐標值無效,為零。單片機根據(jù)收到的數(shù)據(jù)信息對十二個坐標值進行累加,

13、然后除以具有有效坐標值的光電數(shù),即為黑線相對于小車前排光電的位置坐標。通過軟件實現(xiàn)的細分的方法,可以把黑線相對于小車的位置值由12個提高到25個,在寬度不到170mm的范圍內(nèi)細分為25個有效坐標點,即為黑線與小車的相對位置每偏離5mm,此偏差即會被單片機識別,這個精度完全可以滿足對小車的控制要求。 在制作前排光電和調(diào)試的過程中,我們常常遇到光電管壞了而不知道,想知道某個光電處于的狀態(tài)時,信息卻無從知曉。為此,我們把每個光電串了個發(fā)光二極管(如圖3。2),利用一定阻值的上拉電阻提高它的電壓,使當光電檢測到黑線時對應的二極管發(fā)光。這樣我們就可是方便的觀察小車在運行的過程中每個光電的工作狀態(tài)了。在實

14、際跑道調(diào)試的過程中,由于長時間在同一跑道測試小車,使跑道局部受損或者由于小車輪胎的摩擦造成跑道變黑 ,常常造成光電誤判,即當某個光電檢測到受損或者變黑的地方誤判成是黑線,而且光電對光照特別敏感,再加上每個光電的特性也不完全相同,所以,對于十幾個光電能否同時適應不同的環(huán)境,會不會出現(xiàn)誤判現(xiàn)象對于小車能否穩(wěn)定運行起到至關(guān)重要的作用,光電之于智能車就相當于眼睛對于我們一樣重要。因此,為了解決這個難題,我們在硬件上已經(jīng)采取了一定的措施,例如每個光電都加了可調(diào)電阻,通過改變光電檢測返回的電平信號的大小,從而在一定程度上能夠使光電在同一環(huán)境保持效果一致.為了更有效的解決問題,我們采用軟件濾波的方式,使在某

15、一時刻同時最多只有3個光點是有效的,這樣就大大減小了誤判的幾率,而且不用每次改變環(huán)境后都要重新調(diào)試光電,利用這種方案后可以說已經(jīng)解決了誤判的問題.3。2路徑形狀判斷路徑識別模塊是智能車系統(tǒng)的關(guān)鍵模塊之一,路徑識別方案的好壞,直接關(guān)系到最終性能的優(yōu)劣。根據(jù)規(guī)定,跑道的形狀主要是直道、普通彎道和連續(xù)彎道(S彎道),能否控制好轉(zhuǎn)向和速度最重要的一個因素就是能否準確的判斷路徑的形狀:即在直道上以盡可能快的速度行駛,在遇到彎道時能夠及時的降速和轉(zhuǎn)彎。a)判斷入彎:在這里采用記錄黑線相對于小車中心的偏差的連續(xù)變化次數(shù)來實現(xiàn)對彎道的判斷,當黑線連續(xù)向右或者向左偏離5次,即為了確保小車能盡量準為前方路徑為彎道

16、。而且確及時的判斷出彎道,還通過軟件加了保險措施:以某個邊緣的光電為必須轉(zhuǎn)彎的極限值.即當黑線相對于小車的坐標出現(xiàn)大于等于7或小于等于7時,小車一定運行在彎道上。b)判斷出彎入直道:經(jīng)過常時間的調(diào)試發(fā)現(xiàn),由于小車的前瞻距離短及舵機相應滯后等因素的影響,小車在轉(zhuǎn)彎的過程中,黑線相對于小車中心的偏離量較大,而當出彎入直道時,偏離量會減小到零,經(jīng)過舵機的調(diào)節(jié)會迅速保持偏離量為零,這樣小車就能夠穩(wěn)定的在直道上運行。基于以上經(jīng)驗,采用中間三個坐標值(-1,0,1)為直道標志位,即當黑線相對于小車的坐標為以上三個值時,即為小車運行在直道上。c)判斷S彎道:S彎道也是彎道的一種,基于以上對彎道的判斷方法完全

17、可以實現(xiàn)對S彎道的第一個彎道的判斷,那么如何才能實現(xiàn)連續(xù)彎道的判斷呢?考慮到路形的可能情況,普通彎道的下一個路形不是直道就是連續(xù)彎道(即S彎),那么,在出彎的程序中加入一個過渡函數(shù),即在一定時間內(nèi)連續(xù)采集路況信息,如果出現(xiàn)偏離量增大或者減?。礇]有維持零狀態(tài))的情況,那就說明下一路徑形狀為彎道,而剛才經(jīng)過的彎道和現(xiàn)在的彎道將構(gòu)成S彎道.如果在過渡函數(shù)執(zhí)行的過程中,偏離量一直為零或者以零為中心上下波動,那么說明當前的路徑形狀為直道。3。3轉(zhuǎn)向控制策略經(jīng)過反復的實驗調(diào)試,應用PID算法的P控制就完全可以實現(xiàn)對舵機的轉(zhuǎn)向控制。轉(zhuǎn)向控制的方框圖如下: 目標位置 P控制 舵機 位置檢測 實際位置 圖3.

18、3 轉(zhuǎn)向控制的方框圖在這里由于在直道要求小車盡量不要產(chǎn)生波動,能夠快速的運行,而彎道上則要盡量大的調(diào)節(jié)以利于轉(zhuǎn)彎,所以,采用分段比例控制,根據(jù)偏移量和路形的不同而改變P控制的比例系數(shù)Kp。如下圖所示:偏移量 轉(zhuǎn)角(度) -40 -15 15 40 11 7 -11 -7 圖3.4 舵機轉(zhuǎn)角與小車偏移量示意圖在調(diào)試的過程中,時常會出現(xiàn)舵機打死現(xiàn)象,往往會使小車停止不動。為此,在轉(zhuǎn)向控制的軟件實現(xiàn)上,我們對舵機的控制信號實行了保護措施,即設(shè)定了舵機的最大和最小轉(zhuǎn)向角,從而有效的解決了這個問題。3.4 速度檢測本設(shè)計利用一個圓周分成17分的測速碼盤與一個投射式的紅外光電傳感器組成智能車的測速系統(tǒng)。就

19、相當于小車每前進1cm就會出現(xiàn)上升沿或者下降沿,然后使用HS12上的輸入捕捉功能對輸入脈沖進行二次捕捉后,可以計算出兩次脈沖之間的時間t,從而可以比較精確的計算出小車的速度v。3.5 速度控制策略PID控制算法具有原理簡單,易于實現(xiàn),魯棒性強和實用面廣等優(yōu)點。即使在過程計算機控制中,PID控制仍然是最廣泛的控制算法,使用計算機實現(xiàn)PID控制就不簡單是把PID控制規(guī)律數(shù)字化,而是進一步與與計算機的邏輯功能結(jié)合起來,使PID的控制更加靈活多樣。PID的作用:(1)比例控制的優(yōu)點是當誤差一旦產(chǎn)生,控制器立即產(chǎn)生控制作用.使被控制量向誤差減少方向變化。其缺點是對于階躍響應的終值為一個有限值時,系統(tǒng)的控

20、制存在穩(wěn)態(tài)誤差,加大Kp可減少穩(wěn)態(tài)誤差。但Kp過大時,會使動態(tài)性能變壞,即產(chǎn)生過多的振蕩甚至會使整個閉環(huán)系統(tǒng)不穩(wěn)定。(2)積分控制的優(yōu)點是能對誤差進行積分,有利于消除穩(wěn)態(tài)誤差。其缺點是積分具有滯后特性,積分控制作用太強了會使控制的動態(tài)性能變差,以至于使系統(tǒng)不穩(wěn)定。(3)微分控制的優(yōu)點是能對誤差進行微分,迅速地感應出誤差的變化趨勢。增大微分控制作用可縮短系統(tǒng)響應時間,使超調(diào)量減少,增加系統(tǒng)的穩(wěn)定性。其缺點是它對干擾同樣敏感,使系統(tǒng)抗干擾能力降低對于速度的控制采用增量式PID控制,根據(jù)測速系統(tǒng)反饋回來的小車當前速度值和系統(tǒng)記錄的上兩個狀態(tài)的速度值,從而實現(xiàn)對速度的調(diào)節(jié).調(diào)速系統(tǒng)框圖如下: 路 形

21、目標車速 PID控制 電機 實際速度 測速碼盤 圖3.5 速度控制方框圖增量式PID公式如下:u(n)=Kpe(n)e(n-1)+Ki e(n)+Kde(n)-2e(n1)+e(n2)其中u(n)為第n次輸出增量,則u(n+1)- u(n)=u(n),Kp,Ki,Kd分別為P,I,D調(diào)節(jié)參數(shù),e(n)代表位置偏差.利用HS12單片機的外部捕捉中斷和RTI實時中斷,可以精確及時的計算出小車的速度并與目標車速進行比較而得出速度偏差,根據(jù)當前的速度偏差以及系統(tǒng)記錄的上兩個狀態(tài)的速度偏差,利用PID算法即可及時的調(diào)節(jié)速度。調(diào)速系統(tǒng)在此模型車的主要作用就是能夠及時的加速減速使其達到理想的速度值,而由直道

22、入彎道時能否快速的使速度降到彎道的速度是保證小車順利轉(zhuǎn)彎的關(guān)鍵所在。為此,采取過三種減速方式:一是利用H橋驅(qū)動電路實行反轉(zhuǎn)點剎制動.這種方式的優(yōu)點是可以快速的使速度降低到目標值.缺點是由于剎車反應過快,使速度較低到零,然后再重新加速到目標值,這樣就浪費了時間.而且這種反轉(zhuǎn)剎車的方式會產(chǎn)生過大的沖擊電流,有可能造成單片機的復位和死機。二是利用H橋驅(qū)動電路的反轉(zhuǎn)連續(xù)剎車,同時利用測速系統(tǒng)對車速進行監(jiān)控,當達到目標車速時就停止剎車.這種方式能夠?qū)崿F(xiàn)迅速剎車,同時能夠解決上述方法的浪費時間的缺點。但是由于降速時間太短,很有可能造成車反轉(zhuǎn)運行在目標車速上。三是利用調(diào)速系統(tǒng)進行PID調(diào)速來實現(xiàn)降速。這種方

23、式能夠?qū)崿F(xiàn)快速降速,但相對于上兩種方式要慢一些。但他卻不會出現(xiàn)上述方式的錯誤現(xiàn)象。綜上,采用第三種方式來實現(xiàn)智能車的調(diào)速。經(jīng)過反復的實驗,得出盡量增大PID調(diào)速系統(tǒng)的比例系數(shù)Kp,有利于快速調(diào)節(jié)速度,但Kp值也不能太大,太大就會造成系統(tǒng)的不穩(wěn)定。3。6 記憶控制方案由于光電前瞻量的限制使小車不能過早的得知路徑的形狀,以及舵機的機械延遲性使指令的發(fā)出與執(zhí)行存在滯后,就限制了小車的行駛速度。為了能夠再提高小車的運行速度,采用了路徑記憶的方法,即小車以穩(wěn)定的速度跑完第一圈,同時能夠可靠準確的記錄下跑道的路徑信息,這樣,在跑第二圈時就能夠提前知道前方的路徑形狀而實現(xiàn)提前對小車采取相應的控制.在這里我們

24、主要采用了記憶跑道中直道的長度;即通過記錄測速碼盤產(chǎn)生的脈沖數(shù)量來記錄直道的長度。在第二圈時就可以讓小車在直道上全速運行,并根據(jù)記錄的直道的長度數(shù)據(jù)來進行提前降速,以利于小車能夠順利轉(zhuǎn)彎.此方案在很大程度上提高了車的平均速度,但是當跑道中直道比較少時,這種方式的提速效果就不明顯了.基于記憶控制思想的軟件流圖如下:圖3。6 軟件流圖第四章 總結(jié)及比賽心得本方案的設(shè)計中沒有對車模做任何的改動,而是按照車模附帶的圖紙進行的搭建。本設(shè)計采用12個光電傳感器組成路徑檢測系統(tǒng),通過軟件配合,可以準確的識別路徑信息。采用分段比例控制轉(zhuǎn)向,可以使小車在各種路形上都能穩(wěn)定的運行.利用投射式光電傳感器和碼盤組成的

25、測速系統(tǒng)可以精確的測量車速。適當?shù)腜ID參數(shù)使速度可以及時的得到調(diào)節(jié)。從小車的實際運行情況來看,這套方案基本上是成功的。在賽車調(diào)試的過程中,為了便于觀察一些重要的數(shù)據(jù),我們使用了串口調(diào)試軟件,可以通過串口線準確的把要知道的數(shù)據(jù)傳到電腦上。還利用了液晶顯示裝置,可以把小車運行時某一時刻的速度值等數(shù)據(jù)顯示在液晶屏上。通過這些方式,對于調(diào)試小車起來很大作用。比賽心得:1)大部分參賽隊伍采用的是攝像頭檢測路面信息,而且效果明顯優(yōu)于光電檢測。雖然攝像頭檢測需要涉及圖像處理的問題,算法也會更復雜,但是攝像頭是更好的路徑檢測裝置.2)有些參賽隊伍對舵機的外部機械結(jié)構(gòu)進行了改動,使舵機的反應速度大大加快,這是

26、個相當好的方法,值得借鑒。3)利用MC33886驅(qū)動電機,雖然可以實現(xiàn)基本功能,并且利用兩片芯片并聯(lián)可以有效解決散熱問題,但由于芯片本身的限流保護作用,在一定程度上限制了驅(qū)動電流,使小車的加速變慢。4)采用記憶策略時,應在第一圈完全的記憶跑道,如果只記憶知道部分,那么對于知道少的跑道,就大大的不利了。5)在比賽前我們做的在制作硬件電路時,要選擇質(zhì)量號的器件,以防止在比賽前出現(xiàn)器件壞掉的危險。參考文獻1卓晴,黃開勝,邵貝貝.學做智能車-挑戰(zhàn)“飛思卡爾”杯M.北京:北京航空航天大學出版社,2007年3月2 邵貝貝.單片機嵌入式應用的在線開發(fā)方法M。北京:清華大學出版社,2004年3 朱玉璽,崔如春

27、,鄺小磊.計算機控制技術(shù)M。北京:電子工業(yè)出版社,2005年 6月4 陶永華.新型PID控制及其應用M。北京:機械工業(yè)出版社,2002年10月5 蔣新松智能車學導論M沈陽:遼寧人民出版社,19944204266 諸靜智能車與控制技術(shù)M杭州:浙江大學出版社,1991710,115126,2222537 Kraus T W, Myron T J。 SelfTuning P I D Controller Uses Pattern Recognation Approach。 Control EngineeringC, 1984 。6: 109-1118 陶永華. PID控制原理和自整定策略C 。工業(yè)儀

28、表與自動化裝置。1997(4): 6064附錄:源代碼#include <hidef。h> / common defines and macros /include mc9s12dg128.h /* derivative information */pragma LINK_INFO DERIVATIVE ”mc9s12dg128b"static int sp_e;static int Speed_dtct;static int Speed_set;static int Kp_s;static int Ki; static int Kd;static int inc_mdu

29、ty;static int Mduty;static int x3;static int y;static int AD12;static int conter2;static int sign3;static int flag;static int zkb1;static int SPEED3;static int black,black2,black3;static int Kp;static int sudu1,sudu2,sudu3,sudu4,sudu5;static int timer30;static int pulse;static int end;static int dat

30、e;static int date2;static int circle;void DelayNS(int dly) /輸入是1000時大概延時0.75sint i;for(;dly0;dly)for(i=0;i1000;i+);void ini_port(void) DDRA=0XEF; PORTA=0XFF; void ini_ad(void) ATD0CTL2=0xC0; / AD模塊上電, 快速清零, 無等待模式, 禁止外部觸發(fā), 中斷禁止 ATD0CTL3=0x20; / 每個序列4次轉(zhuǎn)換, No FIFO, Freeze模式下繼續(xù)轉(zhuǎn)換 ATD0CTL4=0x83; / 8位精度,

31、2個時鐘, ATDClock=BusClock0.5/PRS+1 ; PRS=5, ATD1CTL2=0xC0; / AD模塊上電, 快速清零, 無等待模式, 禁止外部觸發(fā), 中斷禁止 ATD1CTL3=0x20; / 每個序列4次轉(zhuǎn)換, No FIFO, Freeze模式下繼續(xù)轉(zhuǎn)換 ATD1CTL4=0x83; / 8位精度, 2個時鐘, ATDClock=BusClock0.5/PRS+1 ; PRS=5, ATD0DIEN=0x00; / 禁止數(shù)字輸入 ATD1DIEN=0x00; / 禁止數(shù)字輸入 void AD_caiji_12(void) int i; black2=0; blac

32、k3=0; for(i=0;i<=7;i+) ADi=0; ATD1CTL5=(i+128); while(!(ATD1STAT1 0x01)); ADi = ATD1DR0L; for(i=0;i<=3;i+) ADi+8=0; ATD0CTL5=(i+128); while(!(ATD0STAT1 0x01); ADi+8 = ATD0DR0L; if(AD0>100)AD0=0; else AD0=11;black2=black2+1; if(AD1>100)AD1=0; else AD1=-9;black2=black2+1; if(AD2100)AD2=0;

33、else AD2=7;black2=black2+1; if(AD3100)AD3=0; else AD3=5;black2=black2+1;black3=black3+1; if(AD4100)AD4=0; else AD4=3;black2=black2+1;black3=black3+1; if(AD5>100)AD5=0; else AD5=1;black2=black2+1;black3=black3+1; if(AD6100)AD6=0; else AD6=1;black2=black2+1;black3=black3+1; if(AD7100)AD7=0; else AD

34、7=3;black2=black2+1;black3=black3+1; if(AD8>100)AD8=0; else AD8=5;black2=black2+1;black3=black3+1; if(AD9100)AD9=0; else AD9=7;black2=black2+1; if(AD10>100)AD10=0; else AD10=9;black2=black2+1; if(AD11100)AD11=0; else AD11=11;black2=black2+1; void SCI0Init(void) SCI0BDL = (unsigned char)((16000

35、000UL /* OSC freq / / 2) / 9600 / baud rate */ / 16 /*factor*/); SCI0CR2 = 0x0C;void SCI_AD(void) SCI0Init(); while (!(SCI0SR1 & 0x80); SCI0DRL = timer0; while (!(SCI0SR1 & 0x80)); SCI0DRL = timer1; while (?。⊿CI0SR1 0x80)); SCI0DRL = timer2; while (!(SCI0SR1 & 0x80); SCI0DRL = timer3; wh

36、ile (!(SCI0SR1 0x80); SCI0DRL = timer4; while (!(SCI0SR1 0x80)); SCI0DRL = timer5; while (!(SCI0SR1 & 0x80); SCI0DRL = timer6; int zuobiao() int z,k; AD_caiji_12(); black=0; for(k=0;k<=11;k+) if(abs(ADkx0)3) ADk=0; if(ADk>0)black=black+1; z=0; /注意重新賦初值 for(k=0;k<=11;k+) z=z+ADk; /y小車位置坐

37、標 if(black=4)z=x0; if(black=3)z=z/3; if(black=2)z=z/2; if(z=0) if(x0>9)z=11; else if(x0<9) z=0; else z=x0; return(z); void ini_pwm() PWMCLK=0x00; /選該2通道的時鐘源為B,0,1通道為A PWMPOL=0x03;/0,1通道高電平開始 PWMPRCLK=0x23; /決定時鐘A或B的頻率(B是總線的1/4,A是1/8) PWMCNT7=0;/計數(shù)器清0 PWMCNT6=0;/計數(shù)器清0 PWMCNT2=0;/計數(shù)器清0 PWMCNT1=0

38、;/計數(shù)器清0 PWMCTL=0x10;/0,1級聯(lián) void PWM0(int duty) /啟動函數(shù):通過duty值改變速度 PWMDTY0=duty/256; PWMDTY1=duty%256; PWMPER0=39; /set period PWMPER1=16; /value as 10000PWME=0x03; /選通PWM的0,1通道 void PWM1(int duty) PWMDTY0=duty/256; PWMDTY1=duty%256; PWMPER0=39; /set period PWMPER1=16; /value as 10000PWME=0x43; /選通PWM

39、的0,1,6通道 void PWM6(int duty) /通過duty值改變速度PWMDTY6=duty; /改變占空比duty/200PWMPER6=0xc8; /周期200PWME=0x43; void PWM7(int duty) /通過duty值改變速度PWMDTY7=duty; /改變占空比duty/200PWMPER7=0xc8;/周期200PWME=0x83;ini_speed() /測速初始化 CRGINT =0X00; /屏蔽rti中斷 RTICTL = 0X49; /分頻100HZ CRGFLG = 0X80; /清零 TCTL4 = 0X01; /上升沿選擇,輸入捕捉器

40、0使能 TSCR2 = 0x06; /將計數(shù)時鐘周期設(shè)為16微秒 ICSYS_BUFEN=1; /使能保持寄存器 ICSYS_LATQ =0; /隊列模式 DLYCT = 0x02; /防止毛刺 TIE=1; CRGINT = 0x80; TSCR1 = 0x80; #pragma CODE_SEG _NEAR_SEG NON_BANKED /測速子模塊 void interrupt 8 timer4speed(void) TFLG1=1; if(TC0>TC0H)sp_e=TC0TC0H; else sp_e=65535-TC0H+TC0; Speed_dtct=12500/sp_e;

41、 pulse=pulse+1; #pragma CODE_SEG _NEAR_SEG NON_BANKED /調(diào)速子模塊void interrupt 7 rti(void) Kp_s=15; Ki=3; Kd=0; CRGFLG = 0X80; /清零 SPEED0=Speed_setSpeed_dtct; inc_mduty=Kp_s(SPEED0SPEED1)+Ki*SPEED0+Kd(SPEED02*SPEED1+SPEED2); Mduty=Mduty+inc_mduty; if(Mduty=200)Mduty=200; if(Mduty=0)Mduty=10; PWM7(0); PW

42、M6(Mduty); SPEED2=SPEED1; SPEED1=SPEED0; int transition() int i; PORTA_BIT6=1; /路徑指示燈 PORTA_BIT7=1; Kp=20; flag=0; PWM1(1490); for(i=0;i<=450;i+) y=zuobiao(); if(y3) /判斷是否有入右彎道的趨勢 conter0=7; conter1=0; PORTA_BIT6=1; /路徑指示燈 PORTA_BIT7=0; sign0=1; sign1=0; sign2=1; flag=1; break; if(y<-3) /判斷是否有

43、入左彎道的趨勢 conter0=0; conter1=7; PORTA_BIT6=0; /路徑指示燈 PORTA_BIT7=1; sign0=1; sign1=1; sign2=0; flag=1; break; zkb1=1490+Kp*y; PWM1(zkb1); x2=x1; x1=x0; x0=y; if(flag=0) / Kp=10; if(circle=2) if(timerdate>50) Speed_set=sudu1; else Speed_set=sudu5; date2=date2+1; conter0=0; / 入直道 conter1=0; PORTA_BIT6

44、=0; / 路徑指示燈 PORTA_BIT7=0; sign0=1; sign1=0; sign2=0; pulse=0; void qipaoxian() / 區(qū)分起跑線和十字交叉線 int i; for(i=0;i<=100;i+) if(black3=6) DelayNS(80);break; y=zuobiao(); if(black36) circle=circle+1; timerdate=pulse25/100; pulse=0;end=date; date=0; if(circle=2)Speed_set=sudu1;void fir_cir() if(y>=5si

45、gn1=0) PORTA_BIT6=1; / 路徑指示燈 PORTA_BIT7=0; conter0=0; conter1=0; Kp=23; if(flag=0) timerdate=pulse*25/100; date=date+1; pulse=0; Kp=30; sign0=0; sign1=1; sign2=0; flag=1; if(y<=-5sign2=0) PORTA_BIT6=0; / 路徑指示燈 PORTA_BIT7=1; conter1=0; conter0=0; Kp=23; if(flag=0) timerdate=pulse*25/100; date=date+1; pulse=0; Kp=30; sign0=0; sign1=0; sign2=

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論