国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于歸一化算法智能車的設計與實現(xiàn)

2015-05-15 21:48王靜金建陳凱施小東
電腦知識與技術 2015年8期
關鍵詞:單片機

王靜 金建 陳凱 施小東

摘要:該文詳細論述了安徽新華學院電子通信工程學院參賽隊所設計的智能賽車系統(tǒng),總體設計思想以及各模塊的功能,重點論述和分析了單片機部分軟硬件的設計思想及其實現(xiàn)。尤其是團隊在算法優(yōu)化方面分別采用增量式PID作為核心控制算法以及電磁路徑歸一化算法,收效顯著。采用該設計思想設計的成果已榮獲安徽省第九屆飛思卡爾一等獎并獲取參加國賽資格,且榮獲全國第九屆飛思卡爾一等獎。設計結果和參賽結果表明該設計思想具有可行性、先進性和創(chuàng)新性。

關鍵詞:單片機;智能賽車;飛思卡爾大賽;電磁傳感器

中圖分類號:TP391 文獻標識碼 A 文章編號:1009-3044(2015)08-0072-06

Abstract: This paper discusses in detail the intelligent car system from the Institute of electronic communication and engineering Anhui Xinhua University team design, general design idea and the function of each module, and then focuses on the design and implementation of hardware and software of MCU part thought. Especially, the team in the incremental PID algorithm optimization was used as the core control algorithm and the normalized electromagnetic path algorithm, with the outcome. The idea of design achievements have been awarded the Anhui Province ninth session of fly think of Carle the first prize and obtain the participating countries qualifying, and won the first prize in the Ninth National fly think of Carle. The design results and competition results show that the design idea is feasible, advanced and creative.

Key words: Single Chip Microcomputer; intelligent vehicle; frees Carle competition; electromagnetic sensor

全國大學生“飛思卡爾”杯智能汽車競賽起源于韓國,是韓國漢陽大學汽車控制實驗室在飛思卡爾半導體公司資助下舉辦的以HCS12單片機為核心的大學生課外科技競賽[1]。我國大學生智能汽車競賽是由教育部主辦、以智能汽車為研究對象的創(chuàng)意性科技競賽,簡稱飛思卡爾大賽,是面向全國大學生的一種具有探索性工程實踐活動。旨在促進高等學校素質教育,培養(yǎng)大學生的綜合知識運用能力、基本工程實踐能力和創(chuàng)新意識,激發(fā)大學生從事科學研究與探索的興趣和潛能,倡導理論聯(lián)系實際、求真務實的學風和團隊協(xié)作的人文精神,為優(yōu)秀人才的脫穎而出創(chuàng)造條件[2-3]。本文主要闡述了安徽新華學院電子通信工程學院參賽隊所設計的智能賽車系統(tǒng)的相關思想及單片機部分的實現(xiàn),將整個系統(tǒng)分為機械結構、控制模塊、控制算法等三部分對智能車控制系統(tǒng)進行深入的分析。該設計思想的設計成果獲全國第九屆飛思卡爾大賽一等獎(2014年度)。

1 總體設計

1.1 系統(tǒng)總體方案的設計

文獻[4-5]分析了Free Scale公司 Kinetis系列微控制器的總體特點和功能,文獻[6-7]分析了FreeScale公司 K60微控制器的總體特點和功能。文獻[8]詳細闡述了“飛思卡爾”智能車第九屆大賽規(guī)則。根據(jù)上述文獻分析和自身情況,團隊提出了系統(tǒng)總體方案。

按照競賽規(guī)則,智能賽車系統(tǒng)采用大賽組委會統(tǒng)一提供的C型車模,以飛思卡爾半導體公司生產的32位微控制器K60作為核心控制器,在IAR開發(fā)環(huán)境中進行軟件開發(fā)。賽車的位置信號由車體前方的電磁傳感器采集,經(jīng)內部ADC進行模數(shù)轉換后,輸入到控制核心,用于賽車的運動控制決策。通過編碼器測速模塊檢測車速,并采用K60的輸入捕捉功能進行脈沖計數(shù),計算速度和路程。電機轉速控制采用 PID 控制,通過 PWM 控制驅動電路調整電機的轉速,完成智能車速度的閉環(huán)控制。 由于賽道增加了障礙,提高了賽道的難度,利用夏普的紅外測距儀進行避障控制。此外,還增加了鍵盤作為輸入輸出設備,用于智能車的角度和方位控制。

1.2 系統(tǒng)總體結構

參賽隊進過反復論證和實踐,最終確定的系統(tǒng)功能模塊如圖1所示。

根據(jù)以上系統(tǒng)方案設計,賽車共包括7大模塊:K60主控模塊、傳感器模塊、電源模塊、數(shù)模轉換模塊、電機驅動模塊、速度檢測模塊、輔助調試模塊。

2 模塊介紹

2.1 K60主控模塊

單片機將計算機的基本部件微型化,使之集成在一塊芯片上,片內含有中央處理部件、存儲器、輸入/輸出接口、定時/計數(shù)器、中斷控制、系統(tǒng)時鐘及總線等[9]。它具有功能強、體積小、易于產品化、價格低廉、低電壓、低功耗等特點[10]。單片機的發(fā)展可以分為四個階段[11]:單片機控索階段,單片機完善階段,8位單片機的鞏固發(fā)展及16位單片機的推出階段,微控制器的全面發(fā)展階段。

K60主控模塊作為整個智能車的“大腦”,將采集電感傳感器、編碼器等傳感器的信號,根據(jù)控制算法做出控制決策,驅動直流電機和伺服電機完成對智能車的控制。K60片內核心部件有:ARM Cortex-M4內核,主頻高達100MHZ;32路DMA供外設和存儲器使用,大大提高CPU利用率;10種低功耗模式,包括運行,等待,停止和斷電;512K Flash和128K SRAM;集成硬件和軟件看門狗,硬件加密電路和CRC電路;33路單路和4路差分的16位AD轉換,2路12位DA轉換;8路電機控制,2路方波解碼,4路可編程定時器通訊;SD卡主機控制器,6路UART,IIC,IIS,SPI,CAN;USB2.0全速和高速接口,支持OTG;IEEE1588以太網(wǎng)接口,支持MII和RMII通訊;工作電壓1.71V~3.6V,多達100路GPIO引腳[12]。

單片機最小系統(tǒng)板使用K60單片機,144引腳PQFP封裝,為減少電路板空間,主板上僅將本系統(tǒng)所用到的引腳引出,包括 PWM 接口、計數(shù)器接口、外部中斷接口、若干普通 IO 接口等。還包括電源濾波電路、時鐘電路、復位電路、串行通訊接口、JTAG下載接口和SD接口。采用單片機最小系統(tǒng)原理如圖2所示。

2.2 傳感器模塊

電磁傳感器是智能車的“眼睛”,可以通過一定的前瞻性,提前感知前方的賽道信息,為智能車的“大腦”做出決策提供必要的依據(jù)和充足的反應時間。紅外傳感器用于避開障礙,輔助轉向控制。根據(jù)競賽組委會的相關規(guī)定,我們選用磁傳感器,磁傳感器的應用首先在于選型,為了找出適合的磁傳感器,我們查閱了許多的產品資料,進行了大量的電感測試,發(fā)現(xiàn)只有在10mH電感中,得到感應電動勢曲線是較為規(guī)整的正弦波,頻率和賽道電源頻率一致,為20kHz,幅值較其他型號的大,且隨導線距離變化,規(guī)律為近大遠小。其他電感得到信號不好,頻率幅值變化雜亂,不宜采用。

2.3 電源模塊

電源模塊為整個系統(tǒng)提供合適而又穩(wěn)定的電源。主要為最小系統(tǒng)版、運放模塊、舵機、電機驅動、oled液晶、編碼器、紅外測距儀等供電,保證其正常工作。

根據(jù)實驗需要,本車模上存在2種供電電壓,如圖3所示。

1)智能車使用鎳鎘充電電池,充滿時電壓在7.8~8.2V??芍苯佑糜陔姍C供電。

2)采用線性可調穩(wěn)壓芯片lm2941,調至6.5V電壓給舵機供電。

3)一些數(shù)字器件使用直流5V,5V電源選用線性穩(wěn)壓芯TPS76850,同時為單片機運算放大器供電。

2.4 數(shù)模轉換模塊

數(shù)模轉換模塊利用車體前方的電磁傳感器采集賽車的位置信號,經(jīng)內部AD進行模數(shù)轉換后,輸入到控制核心,用于賽車的運動控制決策。由于K60的內部AD比較精確,我們在測試外部AD后結果顯示其結果與內部AD相差不大,而且方差較內部AD更大,當然這也有可能是測試方法有問題。內部AD較外部AD可以簡化電路設計,綜合考慮這下我們還是決定使用內部AD,考慮到我們所使用的傳感器數(shù)量,引出6路AD。

2.5 電機驅動模塊

電機驅動模塊驅動直流電機和伺服電機完成智能車的加減速控制和轉向控制。

電機采用芯片BTS7971控制,其應用非常簡單。在接上電源與地、拉高使能端之后,只需要向芯片第2引腳輸入PWM 波就能控制。當系統(tǒng)中只需要單向控制時,只需要讓電機一端接地,另一端接BTS7971的輸出引腳。由于單片BTS7971只能構成半橋,如果需要電機雙向旋轉控制,則需要兩片BTS7971 共同組成全橋。同時考慮到小車有兩個電機,我們使用4片BTS7971構成兩個全橋共同控制電機。在電路中,我們增加了74hc244驅動隔離芯片,起到了保護作用[13]。

2.6 速度檢測模塊

速度檢測模塊檢測反饋智能車后輪的轉速,用于速度的閉環(huán)控制。

在電機上方架編碼器,當電機轉動時帶動編碼器轉動,由此獲取速度信息。用編碼器測速較光柵片測速精度更高。測速模塊供給主板的信號要經(jīng)過整波,使用上拉電阻提高其峰值電壓,再使用三態(tài)門將波形整為矩形波。

2.7 輔助調試模塊

輔助調試模塊主要用于智能車系統(tǒng)的功能調試、賽車狀態(tài)監(jiān)控等方面。如紅外測距儀主要用來檢測障礙的距離;人機交互模塊增加數(shù)字鍵盤;撥檔開關用于輸入?yún)?shù)、策略調整;加入液晶屏顯示小車狀態(tài)便于調試。

3 軟件設計

3.1 軟件設計整體流程圖

智能車軟件設計流程如圖5所示。

3.2 K60單片機軟件模塊

在整個系統(tǒng)設計中,用到5個單片機基本功能模塊:時鐘模塊、PWM 輸出模塊、ADC模塊、串口通信模塊以及普通IO 模塊。根據(jù)系統(tǒng)實際需求,對各個模塊進行初始化配置,通過對相應數(shù)據(jù)寄存器或狀態(tài)寄存器的讀寫,實現(xiàn)相應的功能。

3.2.1 ADC模塊

由于K60的ADC模塊的時鐘頻率最高可配置為50MHz,最快采樣周期為四個時鐘,所以采樣最高可達12.5MHz。K60共有2個ADC模塊,每個ADC模塊包含27個寄存器,具有最高達16位的分辨率。ADC模塊編程要點:初始化、開始轉換操作、完成轉換、獲取AD的值。

3.2.2 PWM 模塊

脈寬調制模塊有12 路獨立的可設置周期和占空比的PWM 通道,每個通道配有專門的計數(shù)器。該模塊有6 個時鐘源,能分別控制12 路信號。通過配置寄存器可設置PWM 的使能與否、每個通道的工作脈沖極性、每個通道輸出的對齊方式、時鐘源以及使用方式(八個8 位通道還是四個16 位通道)。驅動舵機的PWM信號的頻率為50Hz,電機的PWM信號的頻率為1.3KHz。

3.2.3 串口模塊

串口通信模塊設有兩個串行通信接口SCI1 和SCI0。使用時,可以對波特率、數(shù)據(jù)格式(8 位或9 位)、發(fā)送輸出極性、接收喚醒方式等進行選擇。另外,發(fā)送和接收可分開使能,模塊中還提供多種避免傳輸錯誤的選項。本設計利用其中一個串口SCI0,將所需要的信息通過串口傳到上位機上進行必要的處理和分析,以提高調試的效率。

控制程序是人的思想在車模體現(xiàn),程序要體系化,模塊化,穩(wěn)定化,目標是將硬件電路和機械性能發(fā)揮到最大,讓車模用最快的速度完成比賽。

3.3 算法設計

良好的硬件設計需要有同樣良好的軟件配合,才能最大地發(fā)揮其功能。根據(jù)電磁車實際需要,軟件設計主要包括路徑識別算法、舵機控制算法設計和電機控制程序設計。

路徑識別是智能小車的靈魂,是決定小車能否順利完成賽道的關鍵部分。好的路徑識別模塊程序,能夠使小車能夠順利的完成賽道,并且表現(xiàn)出良好隨動性。該設計使用電感傳感器檢測預先鋪設在賽道下方的漆包線發(fā)出的20kHz的交變電磁波。其軟件設計主要有對電感傳感器采樣值的處理,并將所得出的值用來控制小車轉向舵機的轉向。

整個路徑識別模塊的工作過程為:在系統(tǒng)上電后,進行道路狀況檢測,當通過AD模塊處理,然后對采集的數(shù)據(jù)進行處理和計算,進行道路軌跡的獲取,計算出道路大致曲率,結合實時檢測的速度值,控制舵機轉向和直流電機轉速從而控制方向和速度的目的。其系統(tǒng)框圖如圖6所示:

3.3.1舵機控制算法

根據(jù)車頭兩邊與導線垂直的兩個傳感器的值經(jīng)過簡單運算可以得到一條線性度很大的一條直線, x軸是傳感器中心線距離賽道引線的距離,y軸則是當先傳感器回傳的數(shù)據(jù)量。在對回傳數(shù)據(jù)與輸出到舵機的PWM波占空比建立一個線性關系則建立舵機PWM波占空比與當前傳感器中心到賽道中心引線的線性關系,這樣就可以實時的根據(jù)當前偏差量輸出一定的舵機轉角使小車一直沿著賽道路徑前行。

經(jīng)過實踐之后發(fā)現(xiàn),如果PWM波占空比與偏移距離用簡單的線性關系會有弊端:如果比例系數(shù)較大彎道會有比較靈敏的表現(xiàn),但直道會發(fā)生抖動而不穩(wěn)定;比例系數(shù)太小直道比較穩(wěn)定,而彎道則會因轉角過小發(fā)生沖出賽道的現(xiàn)象。基于此,建立一個非線性的數(shù)據(jù)對應關系:當小車偏移較小時比例系數(shù)比較小來使直道行駛穩(wěn)定,而偏移變大時加大比例系數(shù)來增大彎道的靈敏度。實踐證明通過這樣的非線性的算法此外再配合簡單而有效的PD控制,就保證小車平穩(wěn)流暢的通過各種賽道情況。

3.3.2 電機控制--PID控制算法

PID參數(shù)整定

速度檢測速度的檢測采用旋轉編碼器測速裝置,小車車輪每轉一圈,走過路程為16. 7cm(記為L),小車傳動輪有76 個齒,旋轉編碼器齒輪有18 個齒, 旋轉編碼器有600 線。所以小車車輪轉過一周會產76/18*600=3210 個脈沖(記為M)。將小車的測速程序寫在中斷中,每10ms(記為T)進入中斷,將10ms 內接受到的脈沖數(shù)(記為N)計算一次速度反饋到單片機。

比賽拼的是速度,因此如何讓小車以最快的速度而又不發(fā)生沖出賽道的情況完成比賽是最終的目的。速度控制則是程序的重點,小車能在以較快速度完成比賽取決于直道入彎有效的剎車和彎道內的靈敏的速度調節(jié)。

直道為達到較高的速度,通過分離的PID 環(huán)節(jié)單獨調整速度,使他快速的達到既定速度值,而在彎道內部和出彎進入直道通過簡單的速度PID算法完成加速,當速度大于設定值的時候再適當減少PWM 波占空比,通過調整參數(shù),這種簡單的速度控制方式就可以完成穩(wěn)定的速度控制。

而直道入彎的剎車控制采用多點遞減的剎車方式:即在小車入彎的每個位置分別給一定的點剎,剎車的大小量根據(jù)小車當前舵機轉角量來決定,舵機轉角越大剎車給的越多,而舵機轉角越小剎車給的就小。

如圖8所示波形即為PID參數(shù)整定后的理想圖形。

綠線:設定速度曲線。

黃線:實際速度曲線。

紅線:電池電壓。

3.3.3 電磁路徑算法

歸一化就是把采集的數(shù)據(jù)經(jīng)處理后使數(shù)據(jù)限制在一定的范圍內[14],其目的是保證數(shù)據(jù)后續(xù)處理的方便,以及保證數(shù)據(jù)的收斂。

在解決電磁路徑問題時,團隊采用是二值歸一化的算法,將電感值以10位AD的精度進行采樣,采樣之后對電流的最大值和最小值進行歸一化的運算,保證電感值在0~100之間變化,這樣做是為了方便計算。在傳感器的電感區(qū)間分為了5段,通過4個電感的值進行分段選取,辨別區(qū)間后進行運算,2段用電感2和3進行差值運算,說明此刻車子在賽道的中線上偏離不多,0段和4段分別用2、3電感的單個電感做差,電感值越大,說明車子偏離中線越少。1段和3段分別分為多種情況,分別用電感2、3進行差值和比例運算。

3.3.4 增量式PID控制算法

PID控制算法是志比例、積分和微分,分為位置式和增量式。PID控制算法原理簡單、使用方便、適應性強、魯棒性好,在應用中不需要精確的系統(tǒng)模型的預先知識,是生產過程控制中應用最為廣泛的控制方法[15]。

增量式PID 是指數(shù)字控制器的輸出只是控制量的增量Δu(k)。采用增量式算法時,計算機輸出的控制量Δu(k)對應的是本次執(zhí)行機構位置的增量,而不是對應執(zhí)行機構的實際位置,因此要求執(zhí)行機構必須具有對控制量增量的累積功能, 才能完成對被控對象的控制操作。執(zhí)行機構的累積功能可以采用硬件的方法實現(xiàn);也可以采用軟件來實現(xiàn)【16-17】。

由式可得增量式PID 控制算式 :

控制增量Δu(k)的確定僅與采樣值有關,容易通過加權處理獲得比較好的控制效果。

本例采用增量式數(shù)字PID 程序以PWM 方式來對直流電機進行調速。增量式數(shù)字PID 調節(jié)的數(shù)學表達式。其中Kp 為比例常數(shù),Ti 為積分時間常數(shù),Td 為微分時間常數(shù),T 為采樣周期。

增量式PID 具有以下優(yōu)點:

由于計算機輸出增量,所以誤動作時影響小,必要時可用邏輯判斷的方法關掉。

手動/自動切換時沖擊小,便于實現(xiàn)無擾動切換。此外,當計算機發(fā)生故障時,由于輸出通道或執(zhí)行裝置具有信號的鎖存作用,故能保持原值。

算式中不需要累加??刂圃隽俊鱱(k)的確定僅與最近k 次的采樣值有關,所以較容易通過加權處理而獲得比較好的控制效果。

3.4 路徑優(yōu)化

雖然在速度控制上引入了二次曲線控制但在后期調試發(fā)現(xiàn),智能車在彎道上路徑并不是很完美。經(jīng)過我們小組成員嚴謹?shù)拈_了一次會;決定引入加權平均算法,通過提取出整場所有有效行的中心線后,結合事先給定的權重計算出中心線的加權平均,作為本場的中心引導線。這樣一來車輛在過彎時路徑有了很大的提升,切彎還算完美。

4 結束語

自初報名參加“飛思卡爾”杯智能汽車競賽以來,我們的團隊積極查找資料,很快形成了自己的設計思想,組裝車模,并從傳感器布局、電路和算法等方面進行優(yōu)化,最終結合我們自身的情況確定了原理圖和相應算法,確保小車直線加速,彎道減速,最終保證了在最短時間跑完全程,取得了全國一等獎的驕人戰(zhàn)績。我們不斷總結分析,力爭在以后的比賽中取得更好的成績。

參考文獻:

[1] http://www.baike.baidu.com/2014-02-20.

[2] 全國大學生“飛思卡爾杯”智能汽車競賽[EB/OL]. (2014-11-07). http://www.smartcar.au.tsinghua.edu.cn/.

[3] 趙隆基,喬朕,陸群. “飛思卡爾”智能汽車系統(tǒng)設計分析[J].科技傳媒,2006,10(8):83-84.

[4]百度知道[EB/OL]. (2014-12-30). http://zhidao.baidu.com/question/1818982410790719668.html.

[5] 徐岳清. Frees Cale Kinetis的三軸點膠運動控制卡的設計與實現(xiàn)[J].寧波職業(yè)技術學院學報,2012,16(2):4-7.

[6] 郭震,呂立兵,吳雪玲.基于K60與FPGA的電子式互感器采集單元的實現(xiàn)[J].信息技術,2014(4):104-106.

[7] 于豐華,岳仕達.基于K60單片機的環(huán)境控制在蓄禽舍中的應用[J].中國農機化學報,2013,34(16):261-263.

[8] 第九屆飛思卡爾智能車官方競賽規(guī)則[EB/OL]. (2013-11-01). http://www.docin.com/p-724479296.html.

[9] 劉旭.微機原理與接口技術[M].合肥:中國科學技術大學出版社,2012,1(2):6.

[10] 高洪志.MCS-51單片機原理及應用技術教程[M].北京:人民郵電出版社,2012,6(5):2-3.

[11] 安鵬,馬偉.S12單片機模塊應用及程序調試[J].電子產品世界,2006(11):162-163.

[12] K60管腳定義[EB/OL]. (2012-09-06). http://www.docin.com/p-475401703.html/.

[13] 童詩白,華成英.模擬電子技術基礎[M].北京:高等教育出版社,2000 .

[14] http://www.docin.com/p-389405614.html[EB/OL]. (2012-04-24). http://www.docin.com/p-389405614.html.

[15] WU Hong-Xin,SHEN Shao-Ping.Application and Theory of the PID Controller[J].Control Engineering,2003,10(1):37-42.

[16] 李敬兆 .計算機控制技術[M].西安:西安電子科技大學出版社,2010(12):85-86.

[17] 于海生.微型計算機控制技術[M].北京:清華大學出版社,2001:85-87.

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現(xiàn)
基于單片機的層次漸變暖燈的研究
基于單片機的多功能智能插排
基于單片機的便捷式LCF測量儀
小議PLC與單片機之間的串行通信及應用
MSP430單片機在仿真中要注意的幾點問題
基于單片機的平衡控制系統(tǒng)設計
基于單片機的三維LED點陣設計
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統(tǒng)的仿真設計