![河海大學(xué)“凌波號”智能小車組技術(shù)報告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/0bbbf526-9539-42ed-8b7c-ef93513be435/0bbbf526-9539-42ed-8b7c-ef93513be4351.gif)
![河海大學(xué)“凌波號”智能小車組技術(shù)報告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/0bbbf526-9539-42ed-8b7c-ef93513be435/0bbbf526-9539-42ed-8b7c-ef93513be4352.gif)
![河海大學(xué)“凌波號”智能小車組技術(shù)報告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/0bbbf526-9539-42ed-8b7c-ef93513be435/0bbbf526-9539-42ed-8b7c-ef93513be4353.gif)
![河海大學(xué)“凌波號”智能小車組技術(shù)報告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/0bbbf526-9539-42ed-8b7c-ef93513be435/0bbbf526-9539-42ed-8b7c-ef93513be4354.gif)
![河海大學(xué)“凌波號”智能小車組技術(shù)報告_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/1/0bbbf526-9539-42ed-8b7c-ef93513be435/0bbbf526-9539-42ed-8b7c-ef93513be4355.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、河海大學(xué)“飛思卡爾”杯全國大學(xué)生智能汽車競賽技術(shù)報告 學(xué) 校: 河海大學(xué) 隊伍名稱:“凌波號 ”智能小車組參賽隊員: 張思德,郁舒陽,賴柄霖,張華山,周夢茜 目錄第一章 摘要3第二章 作品完成功能42.1 舵機的固定與安裝42.2 前輪的調(diào)整52.3 差速的調(diào)整62.4 整車重心的調(diào)整7第三章 系統(tǒng)方案論證93.1 電機驅(qū)動模塊方案選取103.2 H橋式電機驅(qū)動電路原理 103.3 傳感器布局103.3.1確定導(dǎo)線位置布局103.3.2前瞻設(shè)計10第四章 硬件結(jié)構(gòu)設(shè)計及實現(xiàn)124.1 控制器模塊134.2 路徑識別模塊134.2.1感應(yīng)線圈134.2.2信號選頻放大134.2.3檢波
2、整流154.3 電源模塊164.4 舵機使能控制電路164.5 電機驅(qū)動模塊17第五章 軟件結(jié)構(gòu)設(shè)計及實現(xiàn)185.1 控制總流程195.2 導(dǎo)線位置提取195.3 系統(tǒng)控制算法205.3.1舵機轉(zhuǎn)角控制算法205.3.2電機轉(zhuǎn)速控制算法21第六章 作品測試數(shù)據(jù)22第七章 不足及今后改進方向22附錄A 程序代碼23第一章 摘要 第九屆“飛思卡爾杯”全國大學(xué)生智能汽車邀請賽規(guī)定參賽選手須使用競賽秘書處統(tǒng)一指定并負責(zé)采購競賽車模套件,采用飛思卡爾半導(dǎo)體公司的8位、16位微控制器作為核心控制單元,自主構(gòu)思控制方案進行系統(tǒng)設(shè)計,包括傳感器信號采集處理、動力電機驅(qū)動、轉(zhuǎn)向舵機控制以
3、及控制算法軟件開發(fā)等,完成智能車工程制作及調(diào)試。大賽分光電、攝像頭與電磁三個賽題組,在車模中使用透鏡成像進行道路檢測方法屬于攝像頭賽題組,檢測賽道下通電漆包線磁場的屬于電磁組,除此之外則屬于光電賽題組。本組設(shè)計的智能小車是基于激光傳感器的,屬于光電賽題組。 我們的技術(shù)報告以智能小車的設(shè)計為主線,包括小車的構(gòu)架設(shè)計、軟硬件設(shè)計,以及控制算法研究等,分為七章。其中,第一章為摘要;第二章主要介紹了小車的作品完成功能;第三章介紹了小車的系統(tǒng)方案論證;第四章描述了小車的硬件結(jié)構(gòu)設(shè)計及實現(xiàn);第五章介紹了小車的軟件結(jié)構(gòu)設(shè)計及實現(xiàn);第六章敘述了我們在調(diào)試小車時的測試數(shù)據(jù);第七章寫了我們組的小車的不足
4、及今后改進方向。第二章 作品完成功能圖2.0 智能車整體圖2.1 舵機的固定與安裝 許多小組都將舵機豎著安裝,因為舵機的擺臂增長可以提高舵機的響應(yīng)速度。因為舵機的擺臂越長,當車輪轉(zhuǎn)過相同的角度時,舵機轉(zhuǎn)過的角度越小,即時間越短。但我們小組由于材料匱乏,兩擺臂長不等,所以只能將舵機橫著安裝,并且在調(diào)試時沒有太大的影響。2.2 前輪的調(diào)整調(diào)試中發(fā)現(xiàn),前輪的初始狀態(tài)對車子轉(zhuǎn)彎有很大的影響??偟膩碚f,決定前輪的初始狀態(tài)有以下幾個參數(shù):主銷內(nèi)傾、主銷后傾、前輪外傾、前輪前束。主銷內(nèi)傾角指前輪的主銷軸線與地面垂直線在汽車橫向斷面內(nèi)的夾角。內(nèi)傾角可以使車輪保持直線行駛,這個角度和它的輪子回正能力是成反比的,
5、也就是說角度越大,回正能力越強,但是輪子轉(zhuǎn)向阻力增大,由于這個限制,通常這個角度不會大于8度,一般3°左右就夠了。當轉(zhuǎn)向輪在外力作用下發(fā)生偏轉(zhuǎn)時,由于主銷內(nèi)傾的原因,車輪連同整個汽車的前部將被抬起一定高度;當外力消失后,車輪就會在重力作用下恢復(fù)到原來的中間位置。為了避免前輪胎的磨損,我們這里將主銷內(nèi)傾角設(shè)置為3度左右。主銷后傾角指主銷軸線與車體縱向平面的夾角,它使車輛轉(zhuǎn)彎時產(chǎn)生的離心力所形成的力矩方向與車輪偏轉(zhuǎn)方向相反,迫使車輪偏轉(zhuǎn)后自動回正到原來的中間位置上,從而保持汽車直線行駛的穩(wěn)定性。前面所說的主銷內(nèi)傾角與車速是無關(guān)的,但是主銷后傾角與車速以及回正力都有關(guān)。這個角度越大,回正力
6、就越大,而且速度越大,回正力也越大。但是回正力太大也不是好事,可能會損壞舵機齒輪,特別是高速時主銷后傾角對回正力的影響很大,可能會損壞舵機齒輪。通常情況下,我們可以把后傾角減少到接近零度。由于過大的后傾角會使轉(zhuǎn)向沉重,加上比賽使用的舵機性能偏軟,故為了避免使模型車轉(zhuǎn)彎遲滯,我們這里將主銷后傾角設(shè)置為0度。前輪外傾角對汽車的轉(zhuǎn)彎性能有直接影響,它的作用是提高前輪的轉(zhuǎn)向安全性和轉(zhuǎn)向操縱的輕便性。前輪外傾角俗稱“外八字”,如果車輪垂直地面一旦滿載就易產(chǎn)生變形,可能引起車輪上部向內(nèi)傾側(cè),導(dǎo)致車輪聯(lián)接件損壞。所以事先將車輪校偏一個外八字角度,這個角度約在1°左右。所謂前束是指兩輪之間的后距離數(shù)
7、值與前距離數(shù)值之差,也指前輪中心線與縱向中心線的夾角。在日常生活中的汽車修理一般都要校對車輪前束,前輪前束的作用是保證汽車的行駛性能,減少輪胎的磨損。前輪在滾動時,其慣性力會自然將輪胎向內(nèi)偏斜,如果前束適當,輪胎滾動時的偏斜方向就會抵消,輪胎內(nèi)外側(cè)磨損的現(xiàn)象會減少,前輪前束可通過轉(zhuǎn)向橫拉桿長度來調(diào)整。這里將前束值設(shè)置為6mm左右。2.3 差速的調(diào)整在車實際跑的過程中,我們發(fā)現(xiàn),后面兩個輪的相對松緊程度,也就是差速對拐彎有很大的影響。差速太緊,則拐彎容易甩尾,速度快的時候很容易甩出去,但是差速如果太松,雖然會改善轉(zhuǎn)彎性能,但是嚴重影響了直線上的加減速,而且齒輪的咬合也不是很好,對齒輪會有一定的損
8、壞。所以,后面兩個輪子的相對松緊程度要適中,經(jīng)過多次的調(diào)試,我們得出了比較滿意的效果,即將模型車放到跑到上,用手抓住后輪的一只輪子使其不能轉(zhuǎn)動,在賽道上推車子轉(zhuǎn)彎,如果車子能夠稍輕松的推動,則此時的差速器為最適合。當然,實際還需要根據(jù)不同的賽道和車的機械性能進行相應(yīng)的微調(diào)。調(diào)節(jié)差速可以通過工具旋緊或者旋松右后輪來得到合適的差速控制,其實就是適當?shù)恼{(diào)整兩片軸承的壓力以滿足后輪驅(qū)動和差速的要求。 2.4 整車重心的調(diào)整剛開始的時候由于速度比較慢,車體的重心對整輛車的影響看不出,但隨著模型車速度的提高,模型車的重心對車子的整體性能的影響就顯得越來越突出了。這集中表現(xiàn)為前輪對地摩擦力的影響和車體否能穩(wěn)
9、定行駛。垂直高度上的重心影響車的穩(wěn)定性,重心越低,穩(wěn)定性越高,當然這要求保證車的底板不會出現(xiàn)觸地的現(xiàn)象;水平方向上的重心位置及其重要,它將直接影響了前輪對地的摩擦力,也就是我們想要的前輪抓地能力的強度。重心靠前,將有利于增加前輪的摩擦力。實際測試中,穩(wěn)定性對跑道S彎和急轉(zhuǎn)彎的影響最大;而摩擦力則對跑道急轉(zhuǎn)彎影響最重。所以為了提高車對整個跑道的綜合性能,我們將車的垂直重心盡可能降到最低,而將水平重心的位置調(diào)整為靠近前輪。 圖2.1 智能車布局圖第三章 系統(tǒng)方案論證3.1 電機驅(qū)動模塊方案選取 驅(qū)動電路是整個系統(tǒng)的重要組成部分,也是高效的算法得以實現(xiàn)的硬件基礎(chǔ)。要獲得一個良好的加速性能以及入彎時的
10、及時制動能力,則一個性能優(yōu)異的驅(qū)動電路時不可或缺的。 對于直流電機,常用的數(shù)字調(diào)速方法就是電樞電壓進行脈寬調(diào)制技術(shù)(PWM)。典型的驅(qū)動電路就是H橋式電路,可以控制電機的正反轉(zhuǎn),同時通過PWM脈寬調(diào)制可以方便的調(diào)節(jié)電機轉(zhuǎn)速。3.2 H橋式電機驅(qū)動電路原理電機驅(qū)動采用H橋驅(qū)動電路,原理如下: 當Q1管和Q4管導(dǎo)通時,電流就從電源正極經(jīng)Q1從左至右穿過電機,然后再經(jīng)Q4回到電源負極。按圖中電流箭頭所示,該流向的電流將驅(qū)動電機順時針轉(zhuǎn)動。 當Q2管和Q3管導(dǎo)通時,電流就從電源正極經(jīng)Q3從右至左穿過電機,然后再經(jīng)Q2回到電源負極。按圖中電流箭頭所示,該流向的電流將驅(qū)動電機逆時針轉(zhuǎn)動。3.3
11、 傳感器布局由3.2所述的性質(zhì),我們可以知道,垂直線圈可以比較容易地得出小車與導(dǎo)線的相對位置,水平線圈可以預(yù)測前方彎道以及傳感器擺放的一些要求。根據(jù)這些性質(zhì),分檢測導(dǎo)線位置和前瞻兩部分論述傳感器的布局方案。3.3.1確定導(dǎo)線位置布局以垂直線圈作為檢測小車與導(dǎo)線的相對位置,原則上采用雙垂直線圈就可以判斷導(dǎo)線的位置。然而增加傳感器可以增加檢測的精度,有利于小車的精確控制。我們選用三個垂直線圈平均間隔一字排開。3.3.2前瞻設(shè)計由于受到小車長度和垂直線圈檢測方式限制,電磁小車的前瞻受到很大的局限。盡管小車長度達到了極限,而小車的前瞻卻只有10cm左右,不能滿足智能車高速運行的要求。因此需要用必要的手
12、段增加小車的前瞻性能。方案一:雙排傳感器。單排傳感器檢測信息單一,而雙排傳感器可以通過判斷導(dǎo)線斜率來彌補前瞻不足。由于雙排傳感器檢測的信息較為豐富,可以合理利用其信息作轉(zhuǎn)角以及速度的控制。測試發(fā)現(xiàn)的確優(yōu)于單排傳感器。方案二:合理變更傳感器方向。由于水平線圈對遠方道路比較敏感,可以感知道路的變化趨勢,因此可以利用這個特點進行前瞻。以6電感線圈為例,這種方法的前瞻可以在原來傳感器位置的基礎(chǔ)上前瞻約10cm的路況。變更其擺放的方向和角度,可以在傳感器原位置基礎(chǔ)上前瞻約15cm25cm的距離。這樣,小車的前瞻最大可達到約35cm。如果檢測線圈直徑較大,則可以做到約40cm的前瞻,下稱“大前瞻”。我們采
13、用與小車前進方向一致的擺法。這樣的前瞻在5cm以內(nèi),下稱“弱前瞻”。由于線圈放置方向的關(guān)系,前瞻重要解決的問題是能否順利通過十字交叉的賽道。導(dǎo)線十字交叉出現(xiàn)場強疊加的情況,這樣對大前瞻來說是一個嚴重的干擾。盡管經(jīng)過處理之后小車能夠順利通過十字交叉路口,但無可避免會有少許抖動。這樣既影響小車穩(wěn)定性,也使行進速度有一定下降。而弱前瞻具有一定的前瞻,盡管非常小,但總比沒有前瞻要好。在十字交叉處幾乎不受干擾。權(quán)衡利弊,從小車的穩(wěn)定性考慮,選擇了弱前瞻的方案。第四章 硬件電路模塊 整個硬件系統(tǒng)使用模塊化的設(shè)計思想,整體的硬件框圖如圖4所示: 電源模塊S12XS128控制核心單片機LCD液晶顯示與鍵盤模塊
14、控制器模塊起跑線檢測模塊測速模塊舵機使能控制電路模塊電機驅(qū)動模塊 圖4 系統(tǒng)硬件結(jié)構(gòu)圖 4.1 控制器模塊小車控制器是大賽指定的XS128芯片。使用BDM下載。經(jīng)過多次測試和在跑道上跑,信號采集只需要7路AD檢測,同時需要的I/O資源也不多,因而選用80pin的芯片則滿足要求。而且80pin的CPU價格比多管腳的CPU便宜,功能上差不多,只是AD口少了一半,其他沒有什么區(qū)別。單片機控制器是各功能模塊的CPU,在滿足智能車功能的前提下,我們本著最簡單電路的原則,使用了單片機的若干端口,單片機端口分配圖如表4.1所示表4.1 端口資源分配AD模塊PAD0-PAD6傳感器信號檢測PWM模塊PP1舵機
15、控制PP3電機控制ECT模塊PT7測速(編碼器脈沖輸入)EXT模塊PE1起跑線檢測I/0口PE6、PB1、PB3、PB5、PB7液晶顯示PA1、PA3、PA5、PA7按鍵PB0舵機使能控制4.2 路徑識別模塊測量磁場核心是檢測線圈的感應(yīng)電動勢E的幅值。信號檢測放大電路包括感應(yīng)線圈、信號選頻放大、整流三部分組成。4.2.1感應(yīng)線圈檢測線圈可以自行繞制,也可以使用市場上能夠比較方便購買的工字型10mH的電感。這類電感體積小,Q值高,具有開放的磁芯,可以感應(yīng)周圍交變的磁場。4.2.2信號選頻放大使用電感線圈可以對其周圍的交變磁場感應(yīng)出感應(yīng)電動勢。這個感應(yīng)電動勢信號比較弱,干擾多。因此信號放大需要進行
16、選頻放大,使得20kHz的信號能夠有效的放大,并且去除其它干擾信號的影響。可以使用 LC串并聯(lián)諧振電路(帶通電路)來實現(xiàn)選頻電路。如圖4.2.1所示:圖4.2.1 選頻電路圖電路諧振頻率為: (公式7)已知感應(yīng)電動勢的頻率f0=20KHz,感應(yīng)線圈電感為L=10mH,由(公式7)可以得到電容容量的表達式如(公式8)。 (公式8)由(公式8)可以計算出諧振電容的容量為:通常在市場上可以購買到的標稱電容與上述容值最為接近的電容為 6.8nF,所以在實際電路中我們選用 6.8nF的電容作為諧振電容。為了能夠更加準確測量感應(yīng)電容式的電壓,還需要將上述感應(yīng)電壓進一步放大,一般情況下將電壓峰峰值放大到15
17、V左右,就可以進行幅度檢測,所以需要放大電路具有100倍左右的電壓增益(40db)。最簡單的設(shè)計可以只是用一階共射三極管放大電路就可以滿足要求。也可以選用運算放大器進行電壓放大。但是需要選擇低噪音、動態(tài)范圍大的高速運放,成本較高,所示不選用運算放大器進行信號放大。一般晶體三極管帶寬較大,因而大體只需考慮放大倍數(shù)??梢赃x取常用的NPN三極管8050-D或1815-GR,我們選取的是1815-GR作為放大。4.2.3檢波整流測量放大后的感應(yīng)電動勢的幅值E使用二極管檢波電路將交變的電壓信號檢波形成直流信號,該信號正比于感應(yīng)電壓幅值的數(shù)值,可以知道單片機的AD進行測量。為了能夠獲得更大的動態(tài)范圍,檢波
18、電路中的二極管使用肖特基二極管1N5819。由于肖特基二極管的開啟電壓一般在0.10.3V左右,小于普通的硅二極管(0.7V),可以增加輸出信號的動態(tài)范圍和增加整體電路的靈敏度。最終,我們得到整個路徑識別模塊的電路圖如圖4.2.2所示:圖4.2.2 信號放大處理電路圖4.3 電源模塊智能小車采用組委會提供的7.2V 2000mAh Ni-cd 電池直接供電,并采用穩(wěn)壓器件調(diào)整出各路模塊所需電源。電路結(jié)構(gòu)如圖4.3.1所示。圖4.3.1 電源模塊結(jié)構(gòu)圖4.4 舵機使能控制電路可以說,舵機是一個非常脆弱的部件,稍有不慎就會燒掉,特別是被卡住的時候,為了防止在下載程序的時候舵機處于供電狀態(tài),所以加了
19、一個舵機使能控制電路,舵機使能電路相當于一個軟開關(guān),可以通過軟件去控制舵機電源。設(shè)置PB0口可以使得舵機只有在程序被下進去并且運行之后才會被供電,否則處于斷電狀態(tài),原理圖如圖4.5.1所示。圖4.5.1 舵機使能控制電路4.5 電機驅(qū)動模塊為了加強小車后輪驅(qū)動能力,采用大功率MOS管IRF4905和IRF3205搭成H橋驅(qū)動電機。為使小車能夠快速的加減速,可以采用反轉(zhuǎn)進行剎車。但電機的正反轉(zhuǎn)會產(chǎn)生很大的制動電流,對電機驅(qū)動本身造成很大的損害。而在實際應(yīng)用中只使用到半橋,其中一個控制端接地。當需要制動時,只要使電機對地短接,依靠電機反電動勢制動同樣得到較好的制動效果。驅(qū)動和單片機之間使用了MIC
20、4424驅(qū)動H橋電路,既保證了開啟MOS管柵極的邏輯控制,也對單片機有隔離保護的作用。 圖4.6.1 電機驅(qū)動電路圖 第五章 智能車軟件設(shè)計5.1 控制總流程本隊所用的軟件調(diào)試工具為CodeWarrior軟件和BDM仿真器,這個軟件支持C語言和匯編語言的混合編程,由于C語言操作簡單,可修改和移植性強,所以大部分程序都使用C語言編寫,只有在某些地方加入了匯編語句。編程基本上采用模塊化的思想,使得整個設(shè)計清晰明了。下面是系統(tǒng)總體的軟程圖。 圖5.1 系統(tǒng)軟件流程圖5.2 導(dǎo)線位置提取方案一:數(shù)字檢測法。把檢測回來的信號數(shù)字化,根據(jù)數(shù)字量判斷導(dǎo)線的位置。這種方法路徑分辨率不高,而且當導(dǎo)線電流不穩(wěn)定的
21、時候,容易受到干擾,適應(yīng)性不強。為提高空間分辨率,只能增加傳感器數(shù)量,但每個傳感器之間相互會造成較大的干擾。方案二:模擬檢測法。根據(jù)采集回來的ad值進行合理的運算,判斷導(dǎo)線的位置。這種方法空間分辨率可以達到2mm,而且受電流變化的影響比較少,適合小車穩(wěn)定的檢測要求。故選方案二作為導(dǎo)線提取方法。首先,將 AD值做歸一化處理,即根據(jù)各個傳感器接收賽道的最高電壓和最低電壓,計算出各個傳感器的相對值,最后來計算黑線位置。信號歸一化的方法如下:求取電壓值最大的傳感器位置,然后和它周圍兩個傳感器采樣值進行加權(quán)計算即可求得小車的偏差。5.3 系統(tǒng)控制算法提取小車和導(dǎo)線之間的位置關(guān)系后,可以確定基本控制策略。
22、當小車偏離導(dǎo)線較少時,給定一個較小的回正角度,小車也可以加速行駛。當小車偏離導(dǎo)線較大時,應(yīng)該給定較大的回正角度和減慢車速。5.3.1舵機轉(zhuǎn)角控制算法void Servo_control() float SP=2; AD_jzlb(); ad_chazhi=ad_lb2-ad_lb0+3;/為調(diào)整直道時車在中間加3 error_ad_chazhi=ad_chazhi-pre_ad_chazhi; if(!left_flag&&!right_flag) if(ad_lb0<5)left_flag=1; if(ad_lb2<5)right_flag=1; if(ad_lb
23、1>45)SP=2; else if(ad_lb1>35)SP=5; else if(ad_lb1>20)SP=8; else SP=35; ServoPWM=mid_ServoPWM+SP*ad_chazhi-2*error_ad_chazhi;/-2;/調(diào)試ad_chazhi和error_ad_chazhi的系數(shù)? /ad_chazhi_square=ad_chazhi2; /ServoPWM=1600+15*ad_chazhi_square-2*error_ad_chazhi;/-2;/調(diào)試ad_chazhi_square和error_ad_chazhi的系數(shù)? if(
24、left_flag=1) right_flag=0; if(ad_lb1>38)left_flag=0; ServoPWM=mid_ServoPWM+7*(50-ad_lb0)+2*error_ad_chazhi;if(right_flag=1) left_flag=0; if(ad_lb1>38)right_flag=0; ServoPWM=mid_ServoPWM-7*(50-ad_lb2)-2*error_ad_chazhi; 5.3.2電機轉(zhuǎn)速控制算法 void Motor_control() AD_jzlb(); if(ad_lb1>=40) /MortorPWM+
25、; MortorPWM=MortorPWM+5; if(MortorPWM>max_MortorPWM)MortorPWM=max_MortorPWM; else if(ad_lb1>=10) MortorPWM=MortorPWM-5; if(MortorPWM<wan_MortorPWM)MortorPWM=wan_MortorPWM; if(ad_lb0<1&&ad_lb1<1&&ad_lb2<1) /Motor_left_brake(); /Motor_right_brake(); MortorPWM=0; Motor
26、_left_forward(MortorPWM); Motor_right_forward(MortorPWM); 第六章 作品測試數(shù)據(jù)1.舵機轉(zhuǎn)動函數(shù) 左邊最大值1220 ,右邊最大值1940,中間值1600。2.FLAG(5,5,38),SP(2,5,8,35),+3,(7,2,7,2)V:6090,wandao_V:45/40,減速閾值40,可以 15S(較穩(wěn)定) FLAG(5,5,38),SP(2,5,8,35),+3,(7,2,7,2)V:60100,wandao_V:50,減速閾值40,可以 15S(較穩(wěn)定)。 FLAG(5,5,38),SP(2,5,8,35),+3,(7,2,7
27、,2)V:6090,wandao_V:45/40,減速閾值40,可以 15S(較穩(wěn)定) FLAG(5,5,38),SP(2,5,8,35),+3,(7,2,7,2)V:60100,wandao_V:50,減速閾值40,可以 15S(較穩(wěn)定) FLAG(5,5,38),SP(2,5,8,35),+3,(7,2,7,2)V:70100,wandao_V:60,減速閾值40,可以 14S(較穩(wěn)定)3. 為調(diào)整直道時車在中間,在程序段中ad_chazhi=ad_lb2-ad_lb0+3;/為調(diào)整直道時車在中間加3。 第七章 不足及今后改進方向 經(jīng)過幾個月時間的籌備,我隊順利完成了智能車的設(shè)計與制作,實
28、現(xiàn)了智能車的尋跡自動行駛功能。在此過程中,我們完成了小車的組裝,程序的編寫以及小車的調(diào)試。 由于知識水平和制作條件的限制,智能車在行駛過程中還存在一些問題。1.車子安裝的穩(wěn)定性問題。由于材料的限制,我們組小車的固定的強度不是太好,在小車調(diào)試的時候,舵機上的傳動裝置和測速用的編碼盤,還有前瞻都掉下來過。2.本智能車系統(tǒng)在控制算法上還是采用傳統(tǒng)的控制算法,在智能算法研究上還有所欠缺。因此,在之后的工作中,智能算法的研究將是控制算法改進的主要方向之一。附錄A 部分程序代碼(帶 / 或 /* */ 符號的為注釋)#include <hidef.h> /* common defines an
29、d macros */#include "derivative.h" /* derivative-specific definitions */PWM常量定義/#define CH_SA_DIV 4#define BUS_FREQ 8000000 #define CH_A_PREQ 8000000#define CH_SA_PREQ 1000000#define CH_B_PREQ 8000000#define CH_SB_PREQ 1000000#define Servo_PREQ 50#define Motor_PREQ 5000#define Abs(x) (x)&g
30、t;0)?(x):(-(x) /定義絕對值函數(shù)/變量定義volatile int advalue45=0,ad_lb5 = 0; /AD數(shù)據(jù)采樣,ad_lbi是加權(quán)遞推均值濾波后的采樣值,ad_standard是進一步歸一化后的值volatile int ad_chazhi,ad_chazhi_square,error_ad_chazhi,pre_ad_chazhi=10; /變量分別為:AD差值,當前差值誤差,前一次差值誤差volatile int ServoPWM,mid_ServoPWM=1750;volatile unsigned char MortorPWM,wan_MortorPW
31、M,max_MortorPWM;volatile int left_flag=0,right_flag=0;/* Function:AD采樣模塊*/void AD_init(void) ATD0DIEN=0x00; /禁止數(shù)字輸入 ATD0CTL0=0x04; /轉(zhuǎn)換AD0AD3 ATD0CTL1=0x00; /7:非外部觸發(fā),65:00-8位精度(10-12位精度),4:不放電,3210:ch ATD0CTL2=0x40; /禁止外部觸發(fā), 中斷禁止 ATD0CTL3=0xc0; /右對齊無符號,每次轉(zhuǎn)換8個序列, No FIFO, Freeze模式下繼續(xù)轉(zhuǎn) ATD0CTL4=0x01; /
32、765:采樣時間為4個AD時鐘周期,ATDClock=BusClock*0.5/PRS+1 ATD0CTL5=0x30; /6:0特殊通道禁止,5:1連續(xù)轉(zhuǎn)換 ,4:1多通道輪流采樣 /-ADC轉(zhuǎn)換部分-void getvalue() while(!ATD0STAT2L_CCF0); advalue00 = ATD0DR0; while(!ATD0STAT2L_CCF1); advalue10 = ATD0DR1; while(!ATD0STAT2L_CCF2); advalue20 = ATD0DR2; while(!ATD0STAT2L_CCF2); advalue30 = ATD0DR3
33、; /* Funciton:加權(quán)遞推平均濾波法 本函數(shù)是3電感濾波,隊列長度為5 */void AD_jzlb(void) int i,j; for(i=0;i<4;i+) for(j=3;j>=0;j-) advalueij+1 = advalueij; getvalue(); for(i=0;i<5;i+) ad_lbi = 45*advaluei0/75 + 16*advaluei1/75 + 8*advaluei2/75 + 4*advaluei3/75 + 2*advaluei4/75; /ad_lbi 0.75 i越小,權(quán)值越重,因為i越小時 /延時函數(shù),延時1m
34、s void delay(unsigned int ms) unsigned int i,j; for(j=0;j<ms;j+) for(i=0;i<1325;i+); void PWM_init1(void) /電機PWM初始化 PWME=0x00; PWMCLK=0xc3; PWMPRCLK=0x00; PWMSCLA=4; PWMPER0=CH_SA_PREQ/Motor_PREQ; PWMPER1=CH_SA_PREQ/Motor_PREQ; PWMSCLB=4; PWMPER6=CH_SB_PREQ/Motor_PREQ; PWMPER7=CH_SB_PREQ/Motor
35、_PREQ; PWMCTL=0x00;void PWM_init2(void) /舵機PWM初始化 PWME_PWME3=0; PWMCLK_PCLK3=1; PWMPRCLK=0x00; PWMSCLB=4; PWMCTL_CON23=1; PWMPER23=CH_SB_PREQ/Servo_PREQ; PWMPOL=0x4a; PWMCAE=0x00; PWME_PWME3=1;void Servo(unsigned int duty) /舵機轉(zhuǎn)動函數(shù) 左邊最大值1220 ,右邊最大值1940,中間值1600 PWMDTY23=duty;void Motor_right_forward(u
36、nsigned char duty) /右電機前轉(zhuǎn)函數(shù) PWME_PWME0=0; PWME_PWME1=1; DDRK_DDRK4=1; PORTK_PK4=1; PWMDTY1=duty;void Motor_right_brake(void) /右電機停轉(zhuǎn)函數(shù) PWME_PWME0=0; PWME_PWME1=0; DDRK_DDRK5=1; PORTK_PK5=0;void Motor_left_forward(unsigned char duty) / 左電機前轉(zhuǎn)函數(shù) PWME_PWME6=1; PWME_PWME7=0; DDRK_DDRK5=1; PORTK_PK5=1; PWM
37、DTY6=duty;void Motor_left_brake(void) / 左電機停轉(zhuǎn)函數(shù) PWME_PWME6=0; PWME_PWME7=0; DDRK_DDRK4=1; PORTK_PK4=0;/電機控制 void Motor_control() AD_jzlb(); if(ad_lb1>=40) /MortorPWM+; MortorPWM=MortorPWM+5; if(MortorPWM>max_MortorPWM)MortorPWM=max_MortorPWM; else if(ad_lb1>=10) MortorPWM=MortorPWM-5; if(Mo
38、rtorPWM<wan_MortorPWM)MortorPWM=wan_MortorPWM; if(ad_lb0<1&&ad_lb1<1&&ad_lb2<1) /Motor_left_brake(); /Motor_right_brake(); MortorPWM=0; Motor_left_forward(MortorPWM); Motor_right_forward(MortorPWM); /舵機控制 void Servo_control() float SP=2; AD_jzlb(); ad_chazhi=ad_lb2-ad_lb0
39、+3;/為調(diào)整直道時車在中間加3 error_ad_chazhi=ad_chazhi-pre_ad_chazhi; if(!left_flag&&!right_flag) if(ad_lb0<5)left_flag=1; if(ad_lb2<5)right_flag=1; if(ad_lb1>45)SP=2; else if(ad_lb1>35)SP=5; else if(ad_lb1>20)SP=8; else SP=35; ServoPWM=mid_ServoPWM+SP*ad_chazhi-2*error_ad_chazhi;/-2;/調(diào)試ad_c
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年海洋服務(wù)合作協(xié)議書
- 新型保安服務(wù)模式的探索與創(chuàng)新計劃
- 班級經(jīng)驗分享會的開展計劃
- 培養(yǎng)學(xué)生判斷力與批判性思維計劃
- 增強圖書館開放日活動效果計劃
- 如何應(yīng)對財務(wù)恐懼癥計劃
- 經(jīng)理績效目標規(guī)劃計劃
- 美術(shù)欣賞與文化傳播課程大綱計劃
- 幼兒心理健康關(guān)懷計劃
- 2025年藝術(shù)表演場館服務(wù)項目建議書
- 大學(xué)有機化學(xué)(王小蘭) 緒論
- 象數(shù)療法好療效
- A320系列飛行訓(xùn)練課程:電子飛行儀表系統(tǒng)概況
- 黃土地質(zhì)災(zāi)害類型及其危害性評估
- 交際德語教程第二版A1Studio[21] 課后習(xí)題參考答案
- 氣割、電氣焊作業(yè)的應(yīng)急救援預(yù)案
- 超級精美PPT模版美國經(jīng)典ppt模板(通用珍藏版2)
- 施工現(xiàn)場應(yīng)急處置方案
- 陰符咒術(shù)(基本知識--畫符)
- 氣動控制閥的定義分類及工作原理詳解
- DZW中文說明書
評論
0/150
提交評論