基于飛思卡爾16位單片機(jī)電磁型智能小車的畢業(yè)設(shè)計_第1頁
基于飛思卡爾16位單片機(jī)電磁型智能小車的畢業(yè)設(shè)計_第2頁
基于飛思卡爾16位單片機(jī)電磁型智能小車的畢業(yè)設(shè)計_第3頁
基于飛思卡爾16位單片機(jī)電磁型智能小車的畢業(yè)設(shè)計_第4頁
基于飛思卡爾16位單片機(jī)電磁型智能小車的畢業(yè)設(shè)計_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 本科畢業(yè)論文基于飛思卡爾16位單片機(jī)電磁型智能小車的設(shè)計BASED ON FREESCALE 16-BITMICROCONTROLLER SMART CAR DESIGN學(xué)院(部): 機(jī)械工程學(xué)院 專業(yè)班級: 機(jī)設(shè)09-12 2013年 月 日基于飛思卡爾16位單片機(jī)電磁型智能小車的設(shè)計摘要本文是以飛思卡爾智能車競賽為背景設(shè)計的一個智能小車運(yùn)行系統(tǒng)。本系統(tǒng)是以飛思卡爾MC9S12XS128單片機(jī)為核心通過傳感器識別道路的智能車控制系統(tǒng)。本文著重闡述了道路信息的獲取,處理和識別過程,并設(shè)計出PID控制器,運(yùn)用有效的控制算法對智能小車進(jìn)行控制,使智能小車能準(zhǔn)確快速地對道路進(jìn)行跟蹤。該系統(tǒng)通過光電

2、傳感器獲取當(dāng)前道路信息,通過有效的數(shù)字圖像處理算法對原始圖像進(jìn)行處理,對主要的有用信息進(jìn)行分析和提取。在智能小車運(yùn)動的控制中,對小車的轉(zhuǎn)向和速度采用PID控制算法,控制表來對智能小車進(jìn)行轉(zhuǎn)向和速度控制。關(guān)鍵詞:單片機(jī),智能小車,PID控制算法Based on Freescale 16-bit microcontroller smart car designAbstractIt is based on freescale intelligence car competition as the background design of a smart car running system in t

3、his article. This system is based on freescale MC9S12XS128 single-chip microcomputer as the core through the sensors to identify road intelligent car control system.The article focuses on the acquisition,processing and recognition of the target path information.The Fuzzy controller using an effectiv

4、e controlling algorithm for intelligent vehicle control makes the smart car track the road fast and accurate.With the CCD camera the system obtains the current road information and deal with the original image,the main useful analysis and information extraction through effective digital image proces

5、sing algorithms.According to the motion rules of the intelligent vehicle,fuzzy control algorithm and fuzzy PID algorithm can be applied to control the steering and speed of the intelligent vehicle separately.Fuzzy control rules can be generated according to the requirement of the path tracking,which

6、 is followed by the generation of the fuzzy control table,then the steering and motion speed of the intelligent vehicle can be regulated after querying the fuzzy control tableaccording to the path information which is already inquired.KEYWORDS:mcu, smart car , PID,45 / 50目錄摘要(中文)I摘要(外文)II1、緒論11.1 智能

7、汽車賽事概況11.2 課題研究現(xiàn)狀11.3 本課題的研究容22、智能車原理32.1 直立行走任務(wù)分解32.2 車模直立控制42.3 車模速度控制82.4 車模方向控制102.4.1 道路電磁中心線的偏差檢測102.4.2 電機(jī)差動控制102.5 車模傾角測量112.5.1 加速度傳感器112.5.2 角速度傳感器-陀螺儀123、智能車硬件設(shè)計與軟件設(shè)計163.1智能車硬件設(shè)計163.1.1 整體電路框圖163.1.2 單片機(jī)最小系統(tǒng)173.1.3 傾角傳感器電路193.1.4 電機(jī)驅(qū)動電路203.1.5 速度傳感器213.1.6 電磁線檢測電路223.2智能車軟件設(shè)計243.2.1軟件功能與框

8、架243.2.2 單片機(jī)資源配置273.2.3主要算法與其實(shí)現(xiàn)283.2.4程序調(diào)試與參數(shù)整定364、智能車機(jī)械設(shè)計374.1 車模簡化改裝374.2 傳感器安裝384.2.1速度傳感器安裝384.2.2電磁傳感器安裝394.2.3車模傾角傳感器404.3 注意事項(xiàng)40結(jié)論42附錄 程序代碼43參考文獻(xiàn)48致491、緒論1.1 智能汽車賽事概況“飛思卡爾杯”全國大學(xué)生智能汽車競賽是由教育部高等學(xué)校自動化專業(yè)教學(xué)指導(dǎo)分委員會主辦,飛思卡爾半導(dǎo)體公司協(xié)辦的全國性的比賽;全國大學(xué)生智能汽車競賽是在統(tǒng)一汽車模型平臺上,使用飛思卡爾半導(dǎo)體公司的8位、16位微控制器作為核心控制模塊,通過增加道路傳感器、設(shè)

9、計電機(jī)驅(qū)動電路、編寫相應(yīng)軟件以與裝配模型車,制作一個能夠自主識別道路的模型汽車,按照規(guī)定路線行進(jìn),以完成時間最短者為優(yōu)勝。與以往的專業(yè)競賽不同,智能汽車競賽是以快速發(fā)展的汽車電子為背景,涵蓋了控制、模式識別、傳感技術(shù)、電子、電氣、計算機(jī)、機(jī)械等多個學(xué)科交叉的科技創(chuàng)新比賽,己經(jīng)成為各高校展示科研成果和學(xué)生實(shí)踐能力的重要途徑,同時也為社會選拔優(yōu)秀的創(chuàng)新人才提供了重要平臺。1.2 課題研究現(xiàn)狀智能車輛作為智能交通系統(tǒng)的關(guān)鍵技術(shù),是許多高新技術(shù)綜合集成的載體。智能車輛駕駛是一種通用性術(shù)語,指全部或部分完成一項(xiàng)或多項(xiàng)駕駛?cè)蝿?wù)的綜合車輛技術(shù)。智能車輛的一個基本特征是在一定道路條件下實(shí)現(xiàn)全部或者部分的自動駕

10、駛功能。智能車輛的研究始于20世紀(jì)50年代初,美國Barrett Electronics公司開發(fā)出的世界上第一臺自動引導(dǎo)車輛系統(tǒng)(Automated Guided Vehicle System,AGVS)。1974年,瑞典的Volvo Kalmar轎車裝配工廠與SchiinderDigitron公司合作,研制出一種可裝載轎車車體的AGVS,并由多臺該種AGVS組成了汽車裝配線,從而取消了傳統(tǒng)應(yīng)用的拖車與叉車等運(yùn)輸工具。由于Kalmar工廠采用AGVS獲得了明顯的經(jīng)濟(jì)效益,許多西歐國家紛紛效仿Volvo公司,并逐步使AGVS在裝配作業(yè)中成為一種流行的運(yùn)輸手段。中國第一汽車集團(tuán)公司和國防科技大學(xué)機(jī)

11、電工程與自動化學(xué)院于2003年7月研制成功我國第一輛自主駕駛轎車。該自主駕駛轎車在正常交通情況下,在高速公路上行駛的最高穩(wěn)定速度為130公里/小時,最高峰值速度為170公里/小時,并且具有超車功能,其總體技術(shù)性能和指標(biāo)已經(jīng)達(dá)到世界先進(jìn)水平。轎車自主駕駛的基本原理是仿人駕駛。車的環(huán)境識別系統(tǒng)識別出道路狀況,測量前方車輛的距離和相對速度,相當(dāng)于駕駛員的眼睛;車載主控計算機(jī)和相應(yīng)的路徑規(guī)劃軟件根據(jù)計算機(jī)視覺提供的道路信息、車前車輛情況以與自身的行駛狀態(tài),決定是沿道路前進(jìn)還是換道準(zhǔn)備超車,相當(dāng)于駕駛員的大腦;接著,自動駕駛控制軟件按照需要跟蹤的路徑和汽車行駛動力學(xué),向方向盤控制器、油門控制器和剎車控制

12、器發(fā)出動作指令,操縱汽車按規(guī)劃好的路徑前進(jìn),起到駕駛員的手和腳的作用。1.3 本課題的研究容本課題的主要研究容包括:(1)競賽用智能賽車系統(tǒng)的總體設(shè)計,圍繞智能賽車系統(tǒng)要求,從而確定了控制系統(tǒng)的硬件設(shè)計和軟件設(shè)計方案。(2)機(jī)械結(jié)構(gòu)的調(diào)整與完成,對智能汽車車模進(jìn)行了結(jié)構(gòu)改造,完成了定位參數(shù)的優(yōu)化、車輛重心位置的調(diào)整、轉(zhuǎn)向舵機(jī)的力臂的改造以與齒輪傳動機(jī)構(gòu)的調(diào)整等。(3)控制系統(tǒng)的硬件設(shè)計與完成,從電源模塊設(shè)計開始,完成道路信息采集模塊、速度測量模塊、驅(qū)動控制模塊、故障診斷模塊與串口模塊等的設(shè)計。(4)控制系統(tǒng)軟件的設(shè)計與實(shí)現(xiàn),從單片機(jī)的功能入手完成系統(tǒng)各個模塊的設(shè)計,根據(jù)所選用的硬件,完成賽車信

13、息的算法和車體的控制算法。2、智能車控制原理2.1 直立行走任務(wù)分解電磁組比賽要求車模在直立的狀態(tài)下以兩個輪子著地沿著賽道進(jìn)行比賽,相比四輪著地狀態(tài),車模控制任務(wù)更為復(fù)雜。為了能夠方便找到解決問題的辦法,首先將復(fù)雜的問題分解成簡單的問題進(jìn)行討論。為了分析方便,根據(jù)比賽規(guī)則,假設(shè)維持車模直立、運(yùn)行的動力都來自于車模的兩個后車輪,后輪轉(zhuǎn)動由兩個直流電機(jī)驅(qū)動。因此從控制角度來看,由控制車模兩個電機(jī)旋轉(zhuǎn)方向與速度實(shí)現(xiàn)對車模的控制。車模運(yùn)動控制任務(wù)可以分解成以下三個基本任務(wù):(1) 控制車模直立:通過控制兩個電機(jī)正反向運(yùn)動保持車模直立狀態(tài);(2) 控制車模速度:通過控制兩個電機(jī)轉(zhuǎn)速速度實(shí)現(xiàn)車模行進(jìn)控制;

14、(3) 控制車模轉(zhuǎn)向:通過控制兩個電機(jī)之間的轉(zhuǎn)動差速實(shí)現(xiàn)車模轉(zhuǎn)向控制。以上三個任務(wù)都是通過控制車模兩個后輪驅(qū)動電機(jī)完成的。可以假設(shè)車模的電機(jī)可以虛擬地被拆解成三個不同功能的驅(qū)動電機(jī),它們同軸相連,分別控制車模的直立平衡、前進(jìn)行走、左右轉(zhuǎn)向,如圖2.1 所示。圖 2.1 車模運(yùn)動控制分解示意圖直流電機(jī)的力矩最終來自于電機(jī)驅(qū)動電壓產(chǎn)生的電流。因此只要電機(jī)處于線性狀態(tài),上述拆解可以等效成三種不同控制目標(biāo)的電壓疊加之后,施加在電機(jī)上。在上述三個任務(wù)中保持車模直立是關(guān)鍵。由于車模同時受到三種控制的影響,從車模直立控制的角度,其它兩個控制就成為它的干擾。因此在速度、方向控制的時候,應(yīng)該盡量平滑,以減少對于

15、直立控制的干擾。三者之間的配合如圖2.2所示。圖2.2 三層控制之間相互配合,底層盡量減少多上層的干擾上述三個控制各自獨(dú)立進(jìn)行控制,它們各自假設(shè)其它兩個控制都已經(jīng)達(dá)到穩(wěn)定。比如速度控制時,假設(shè)車模已經(jīng)在直立控制下保持了直立穩(wěn)定,通過改變電機(jī)的電壓控制車模加速和減速。車模在加速和減速的時候,直立控制一直在起作用,它會自動改變車模的傾角,移動車模的重心,使得車模實(shí)現(xiàn)加速和減速。下面分別討論三個任務(wù)的實(shí)現(xiàn)原理。2.2 車模直立控制控制車模直立的直觀經(jīng)驗(yàn)來自于雜技表演。一般的人通過簡單練習(xí)就可以讓一個直木棒在手指尖上保持直立。這需要兩個條件:一個是托著木棒的手掌可以移動;另一個是眼睛可以觀察到木棒的傾

16、斜角度和傾斜趨勢(角加速度)。通過手掌移動抵消木棒的傾斜角度和趨勢,從而保持木棒的直立。這兩個條件缺一不可,實(shí)際上就是控制中的負(fù)反饋機(jī)制,參見圖2.3。世界上還沒有任何一個天才雜技演員可以蒙著眼睛使得木棒在自己手指上直立,因?yàn)闆]有了負(fù)反饋。圖2.3 通過反饋保持木棒的直立車模直立也是通過負(fù)反饋實(shí)現(xiàn)的。但相對于上面的木棒直立相對簡單。因?yàn)檐嚹S袃蓚€輪子著地,因此車體只會在輪子滾動的方向上發(fā)生傾斜。控制輪子轉(zhuǎn)動,抵消傾斜的趨勢便可以保持車體直立了。如圖2.4 所示。 圖 2.4 通過車輪運(yùn)動控制保持車體直立那么車輪如何運(yùn)行,才能夠最終保持車體垂直穩(wěn)定?為了回答這個問題,一般的做法需要建立車模的運(yùn)動

17、學(xué)和動力學(xué)數(shù)學(xué)模型,通過設(shè)計最優(yōu)控制來保證車模的穩(wěn)定。為了使得同學(xué)們能夠比較清楚理解其中的物理過程。下面通過對比單擺模型來說明保持車模穩(wěn)定的控制規(guī)律。重力場中使用細(xì)線懸掛著重物經(jīng)過簡化便形成理想化的單擺模型。直立著的車??梢钥闯煞胖迷诳梢宰笥乙苿悠脚_上的倒立著的單擺。如圖2.5 所示。圖 2.5 車模可以簡化成倒立的單擺普通的單擺受力分析如圖 2.6 所示圖2.6 普通單擺受力分析當(dāng)物體離開垂直的平衡位置之后,便會受到重力與懸線的作用合力,驅(qū)動重物回復(fù)平衡位置。這個力稱之為回復(fù)力,其大小為F = -mg sin -mg在此回復(fù)力作用下,單擺便進(jìn)行周期運(yùn)動。在空氣中運(yùn)動的單擺,由于受到空氣的阻尼

18、力,單擺最終會停止在垂直平衡位置??諝獾淖枘崃εc單擺運(yùn)行速度成正比,方向相反。阻尼力越大,單擺越會盡快在垂直位置穩(wěn)定下來。圖2.7 顯示出不同阻尼系數(shù)下,單擺的運(yùn)動曲線。圖2.7 單擺在不同阻尼下的運(yùn)動情況總結(jié)單擺能夠穩(wěn)定在垂直位置的條件有兩個:(1) 受到與位移(角度)相反的恢復(fù)力;(2) 受到與運(yùn)動速度相反的阻尼力。如果沒有阻尼力,單擺會在垂直位置左右擺動。阻尼力會使得單擺最終停止在垂直位置。阻尼力過小(欠阻尼)會使得單擺產(chǎn)生震蕩,阻尼力過大(過阻尼)會使得單擺到達(dá)平衡位置時間拉長。存在一個阻尼臨界阻尼系數(shù),使得單擺最快穩(wěn)定在平衡位置。為什么倒立擺在垂直位置時,在受到外部擾動的情況下,無法

19、保持穩(wěn)定呢?分析倒立擺的受力,如圖2.8 所示。 圖 2.8 在車輪上參照系中車體受力分析倒立擺之所以不能象單擺一樣可以穩(wěn)定在垂直位置,就是因?yàn)樵谒x平衡位置的時候,所受到的回復(fù)力與位移方向一樣,而不是相反!因此,倒立擺便會加速偏離垂直位置,直到倒下。如何通過控制使得倒立擺能夠像單擺一樣,穩(wěn)定在垂直位置呢?要達(dá)到這一目的,只有兩個辦法:一個是改變重力的方向;另一個是增加額外的受力,使得恢復(fù)力與位移方向相反才行。由此,能夠做的顯然只有第二種方式??刂频沽[底部車輪,使得它作加速運(yùn)動。這樣站在小車上(非慣性系)看倒立擺,它就會受到額外的力(慣性力),該力與車輪的加速度方向相反,大小成正比。這樣倒

20、立擺所受到的回復(fù)力為F = mg sin - ma mg - mk1 (2-1)式中,假設(shè)控制車輪加速度與偏角成正比,比例為k1。顯然,如果k1 g,(g是重力加速度)那么回復(fù)力的方向便于位移方向相反了。此外,為了使得倒立擺能夠盡快地在垂直位置穩(wěn)定下來,還需要增加阻尼力,與偏角的速度成正比,方向相反。因此式(2-1)可變?yōu)镕 = mg - mk1 - mk2 (2-2)按照上面的控制方法,可把倒立擺模型變?yōu)閱螖[模型,能夠穩(wěn)定在垂直位置。因此,可得控制車輪加速度的控制算法 a=k1 +k2 (2-3)式中,為車模傾角;為角速度;k1、k2均為比例系數(shù);兩項(xiàng)相加后作為車輪加速度的控制量。只要保證在

21、k1 g, k2 0條件下,可以維持車模直立狀態(tài)。其中, k1決定了車模是否能夠穩(wěn)定到垂直位置,它必須大于重力加速度;k2決定了車?;氐酱怪蔽恢玫淖枘嵯禂?shù),選取合適的阻尼系數(shù)可以保證車模盡快穩(wěn)定在垂直位置。因此控制車模穩(wěn)定,需要下列兩個條件:(1)能夠精確測量車模傾角的大小和角速度的大??;(2)可以控制車輪的加速度。2.3 車模速度控制車模運(yùn)行速度是通過控制車輪速度實(shí)現(xiàn)的,車輪通過車模兩個后輪電機(jī)經(jīng)由減速齒輪箱驅(qū)動,因此通過控制電機(jī)轉(zhuǎn)速可以實(shí)現(xiàn)對車輪的運(yùn)動控制。電機(jī)的運(yùn)動控制有三個作用:(1) 通過電機(jī)加速度控制實(shí)現(xiàn)車模直立穩(wěn)定。(2)通過電機(jī)速度控制,實(shí)現(xiàn)車模恒速運(yùn)行和靜止。(3)通過電機(jī)差

22、速控制,可以實(shí)現(xiàn)車模方向控制。電機(jī)運(yùn)動控制是通過改變施加在其上的驅(qū)動電壓實(shí)現(xiàn)的。對于電機(jī)的電磁模型、動力學(xué)模型以與車模的動力學(xué)模型進(jìn)行分析和簡化,可以將電機(jī)運(yùn)動模型簡化成如下的一階慣性環(huán)節(jié)模型。施加在電機(jī)上一個階躍電壓Eu(t),電機(jī)的速度變化曲線為(t)=Ekm(1-e-t/T1)u(t) (2-4)式中,E為電壓;u(t)為單位階躍函數(shù);T1為慣性環(huán)節(jié)時間常數(shù);km為電機(jī)轉(zhuǎn)速常數(shù)。對應(yīng)不同的電壓,電機(jī)的速度變化曲線如圖 2.9 所示。 圖 2.9 電機(jī)在不同電壓下的速度由圖 2.9 可以看出,電機(jī)運(yùn)動明顯分為兩個階段:第一個階段是加速階段;第二個階段為恒速階段。其中,在加速階段,電機(jī)帶動車

23、模后輪進(jìn)行加速運(yùn)動,加速度近似和施加在電機(jī)上的電壓成正比,加速階段的時間長度取決于時間常數(shù)T1,該常數(shù)由電機(jī)轉(zhuǎn)動慣量、減速齒輪箱、車模的轉(zhuǎn)動慣量決定;在恒速階段,電機(jī)帶動車模后輪進(jìn)行恒速運(yùn)行,運(yùn)行速度與施加在電機(jī)上的電壓成正比。調(diào)整車模直立時間常數(shù)很小,此時電機(jī)基本上運(yùn)行在加速階段。由上一節(jié)式(2-3)計算所得到的加速度控制量a再乘以一個比例系數(shù),即為施加在電機(jī)上的控制電壓,這樣便可以控制車模保持直立狀態(tài)。車模運(yùn)行速度調(diào)整時間相對很長,此時,電機(jī)速度與施加在其上的電壓成正比。通過傳統(tǒng)的PID 反饋控制,便可以精確控制電機(jī)的運(yùn)行速度,從而控制車模的運(yùn)行速度。電機(jī)速度控制需要測量電機(jī)的轉(zhuǎn)速,電機(jī)旋

24、轉(zhuǎn)速度可以通過安裝在電機(jī)輸出軸上的光電編碼盤方便獲得。如圖2.10 所示。圖2.10 電機(jī)速度監(jiān)測利用控制單片機(jī)的計數(shù)器測量在固定時間間隔速度脈沖信號的個數(shù)可以測量電機(jī)的轉(zhuǎn)速。對于電機(jī)速度 PID 控制方法如圖2.11 所示。圖2.11 電機(jī)PI反饋控制 電機(jī)速度控制采用了 PI 調(diào)節(jié)器,具體實(shí)現(xiàn)可以通過單片機(jī)軟件編程實(shí)現(xiàn)。2.4 車模方向控制2.4.1 道路電磁中心線的偏差檢測道路電磁中心線檢測簡單的方法可以通過安裝在車模前方的兩個電磁感應(yīng)線圈實(shí)現(xiàn)。線圈一般采用10mH 的工字型電感。2.4.2 電機(jī)差動控制利用電磁線偏差檢測信號分別與車模速度控制信號進(jìn)行加和減,形成左右輪差動控制電壓,使得

25、車模左右輪運(yùn)行角速度不一致進(jìn)而控制車模方向。如圖2.12所示。圖2.12 通過差動控制左右電機(jī)驅(qū)動電壓控制車模方向通過左右電機(jī)速度差驅(qū)動車模轉(zhuǎn)向消除車模偏差,這個過程是一個積分過程。因此車模差動控制一般只需要進(jìn)行簡單的比例控制就可以完成車模方向控制。2.5 車模傾角測量通過測量車模的傾角和傾角加速度控制車模車輪的加速度來消除車模的傾角。因此車模傾角以與傾角加速度的測量成為控制車模直立的關(guān)鍵。測量車模傾角和傾角加速度可以通過加速度傳感器和陀螺儀實(shí)現(xiàn)。2.5.1 加速度傳感器加速度傳感器可以測量由地球引力作用或者物體運(yùn)動所產(chǎn)生的加速度。加速度傳感器采用飛思卡爾公司生產(chǎn)的加速度傳感器。該系列的傳感器

26、采用了半導(dǎo)體表面微機(jī)械加工和集成電路技術(shù),傳感器體積小,重量輕?;驹砣鐖D2.13圖2.13 加速度傳感器通過微機(jī)械加工技術(shù)在硅片上加工形成了一個機(jī)械懸臂。它與相鄰的電極形成了兩個電容。由于加速度使得機(jī)械懸臂與兩個電極之間的距離發(fā)生變化,從而改變了兩個電容的參數(shù)。通過集成的開關(guān)電容放大電路量測電容參數(shù)的變化,形成了與加速度成正比的電壓輸出。MMA7260 是一款三軸低g 半導(dǎo)體加速度計,可以同時輸出三個方向上的加速度模擬信號,如圖2.14所示。圖2.14 三軸加速度傳感器通過設(shè)置可以使得 MMA7260 最大輸出靈敏度為800mV/g。只需要測量其中一個方向上的加速度值,就可以計算出車模傾角

27、,比如使用Z 軸方向上的加速度信號。車模直立時,固定加速度器在Z 軸水平方向,此時輸出信號為零偏電壓信號。當(dāng)車模發(fā)生傾斜時,重力加速度g 便會在Z 軸方向形成加速度分量,從而引起該軸輸出電壓變化。變化的規(guī)律為u = kg sin式中,g為重力加速度;為車模傾角;k為比例系數(shù)。當(dāng)傾比較小的時候,輸出電壓的變化可以近似與傾角成正比。只需要加速度就可以獲得車模的傾角,再對此信號進(jìn)行微分便可以獲得傾角加速度。但在實(shí)際車模運(yùn)行過程中,由于車模本身的運(yùn)動所產(chǎn)生的加速度會產(chǎn)生很大的干擾信號疊加在上述測量信號上,使得輸出信號無法準(zhǔn)確反映車模的傾角,如圖2.15所示。圖 2.15 車模運(yùn)動引起加速度計信號波動車

28、模運(yùn)動產(chǎn)生的振動加速度使得輸出電壓在實(shí)際傾角電壓附近波動,可以通過數(shù)據(jù)平滑濾波將其濾除。但是平滑濾波也會使得信號無法實(shí)時反映車模傾角的變化,從而減緩對于車模車輪控制,使得車模無法保持平衡。因此對于車模直立控制所需要的傾角信息需要通過另外一種器件獲得,那就是角速度傳感器-陀螺儀。2.5.2 角速度傳感器-陀螺儀陀螺儀可以用來測量物體的旋轉(zhuǎn)角速度。選用EN-03 系列的加速度傳感器。它利用了旋轉(zhuǎn)坐標(biāo)系中的物體會受到克里利奧力的原理,在器件中利用壓電瓷做成振動單元。當(dāng)旋轉(zhuǎn)器件時會改變振動頻率從而反映出物體旋轉(zhuǎn)的角速度。在車模上安裝陀螺儀,可以測量車模傾斜的角速度,將角速度信號進(jìn)行積分便可以得到車模的

29、傾角。如圖2.16所示。圖2.16 測量車模角速度和角度由于陀螺儀輸出的是車模的角速度,不會受到車體振動影響。因此該信號中噪聲很小。車模的角度又是通過對角速度積分而得,這可進(jìn)一步平滑信號,從而使得角度信號更加穩(wěn)定。因此車??刂扑枰慕嵌群徒撬俣瓤梢允褂猛勇輧x所得到的信號。由于從陀螺儀的角速度獲得角度信息,需要經(jīng)過積分運(yùn)算。如果角速度信號存在微小的偏差,經(jīng)過積分運(yùn)算之后,變化形成積累誤差。這個誤差會隨著時間延長逐步增加,最終導(dǎo)致電路飽和,無法形成正確的角度信號,如圖2.17所示。圖2.17 角度積分漂移 對于積累誤差的消除,可以通過上面的加速度傳感器獲得的角度信息對此進(jìn)行校正,如圖 2.18所

30、示。圖2.18 角度積分漂移校正利用加速度計所獲得的角度信息g與陀螺儀積分后的角度進(jìn)行比較,將比較的誤差信號經(jīng)過比例Tg放大之后與陀螺儀輸出的角速度信號疊加之后再進(jìn)行積分。從圖2.18中的框圖可以看出,對于加速度計給定的角度g,經(jīng)過比例、積分環(huán)節(jié)之后產(chǎn)生的角度必然最終等于g。由于加速度計獲得的角度信息不會存在積累誤差,所以最終將輸出角度中的積累誤差消除了。加速度計所產(chǎn)生的角度信息g中會疊加很強(qiáng)的有車模運(yùn)動加速度噪聲信號。為了避免該信號對于角度的影響,因此比例系數(shù)Tg應(yīng)該非常小。這樣,加速度的噪聲信號經(jīng)過比例、積分后,在輸出角度信息中就會非常小了。由于存在積分環(huán)節(jié),所以無論比例Tg多么小,最終輸

31、出角度必然與加速度計測量的角度g相等,只是這個調(diào)節(jié)過程會隨著Tg的減小而延長。為了避免輸出角度跟著g過長,可以采取以下兩個方面的措施:(1)仔細(xì)調(diào)整陀螺儀的放大電路,使得它的零點(diǎn)偏置盡量接近于設(shè)定值,并且穩(wěn)定。(2)在控制電路和程序運(yùn)行的開始,盡量保持車模處于直立狀態(tài),這樣一開始就使得輸出角度與g相等。此后,加速度計的輸出只是消除積分的偏移,輸出角度不會出現(xiàn)很大的偏差。2.6 車模直立行走控制算法總圖將車模直立行走主要的控制算法集中起來,形成控制算法總框圖,如圖2.19圖2.19 車模運(yùn)動控制總框圖 為了實(shí)現(xiàn)車模直立行走,需要采集如下信號:(1) 車模陀螺儀信號;(2) 車模加速度計信號(z

32、軸信號);(3) 車模電機(jī)轉(zhuǎn)速脈沖信號;(4) 車模電磁偏差信號(兩路)。需要進(jìn)行如下控制環(huán)節(jié),控制車模電機(jī)轉(zhuǎn)動:(1)車模直立控制:使用車模傾角的PD(比例、微分)控制;(2)車模速度控制:使用PI(比例、積分)控制;(3)車模方向控制:使用P(比例)控制??赏ㄟ^單片機(jī)軟件實(shí)現(xiàn)上述控制算法。車模的三種控制(直立、速度、方向)最終是將控制量疊加在一起作為電機(jī)輸出電壓控制量。直立控制是基礎(chǔ),它的調(diào)整速度非??欤俣群头较蚩刂葡鄬φ{(diào)整速度慢。速度和方向控制的輸出量是直接疊加在電機(jī)控制電壓上。它們假定直立控制會始終保持車模不跌倒,直立控制會自動調(diào)節(jié)車模的傾角以適應(yīng)車模的加速、減速和轉(zhuǎn)彎的需要。車模加

33、速前進(jìn)時,由速度控制算法給出電機(jī)增加的正向電壓,電機(jī)開始逐步加速旋轉(zhuǎn)。在此同時,車模直立控制會迅速進(jìn)行調(diào)整,使得車模往前傾斜,車模開始加速。當(dāng)車模速度達(dá)到設(shè)定值,由車模速到控制算法使得電機(jī)進(jìn)入恒速運(yùn)行。此時車模直立控制算法也會相應(yīng)調(diào)整車模出于直立狀態(tài),車模恒速運(yùn)行。車模減速過程與此類似,由速度控制算法減少了電機(jī)的電壓,電機(jī)開始減速運(yùn)行。直立控制算法會自動調(diào)整車模往后傾斜,使得車模減速。車模轉(zhuǎn)向控制是在車速控制基礎(chǔ)之上,調(diào)節(jié)兩個電機(jī)驅(qū)動電壓差使得電機(jī)運(yùn)行速度出現(xiàn)差動,進(jìn)而調(diào)整車模的方向。3、智能車硬件設(shè)計與軟件設(shè)計3.1智能車硬件設(shè)計3.1.1 整體電路框圖設(shè)計車??刂葡到y(tǒng)的電路,首先需要分析系

34、統(tǒng)的輸入、輸出信號,然后選擇合適的核心控制嵌入式計算機(jī)(單片機(jī)),逐步設(shè)計各個電路子模塊,最后形成完整的控制電路。系統(tǒng)的輸入輸出包括:(1) AD 轉(zhuǎn)換接口(至少4 路)a) 電磁監(jiān)測:左右兩路,用于測量左右兩個感應(yīng)線圈電壓。b) 陀螺儀:一路,測量陀螺儀輸出電壓。c) 加速度計:一路,測量加速度 Z 軸輸出電壓。d) 輔助調(diào)試:(備用)1 到3 路,用于車模調(diào)試、設(shè)置作用。(2) PWM 接口(4 路)a) 控制左右兩個電極雙方向運(yùn)行,需要四路 PWM 接口。(3) 定時器接口(2 路)a) 測量兩個電機(jī)轉(zhuǎn)速,需要兩個定時器脈沖輸入端口。(4) 通訊接口(備用)a) SCI(UART):一路

35、,用于程序下載和調(diào)試接口;b) I2C:(備用)如果選擇飛思卡爾公司的數(shù)字加速度計,可以通過I2C 接口直接讀取加速度值。 (5) IO 接口(備用)4 到8 路輸入輸出,應(yīng)用車模運(yùn)行狀態(tài)顯示,功能設(shè)置等。整體電路框圖如圖3.1圖3.1 整體電路框圖根據(jù)圖 3.1,控制電路劃分為如下子模塊:(1) 單片機(jī)最小系統(tǒng):包括DSC 處理器,程序下載調(diào)試接口等; (2) 電磁線檢測:包括兩路一樣的電磁感應(yīng)信號放大與檢波電路; (3) 陀螺儀與加速度計:包括兩個姿態(tài)傳感器信號放大濾波電路; (4) 速度檢測:檢測電機(jī)光電碼盤脈沖頻率; (5) 電機(jī)驅(qū)動:驅(qū)動兩個電極運(yùn)行電路; (6) 電源:電源電壓轉(zhuǎn)換

36、、穩(wěn)壓、濾波電路; (7) 設(shè)置與調(diào)試:顯示系統(tǒng)運(yùn)行狀態(tài)、速度設(shè)定、程序下載與監(jiān)控。3.1.2單片機(jī)最小系統(tǒng)單片機(jī)選擇MC9S12XS128。主要外設(shè)包括(1)PWM 6 通道;(2)AD 6 通道,12bit;(3)定時器,16bit,4 通道;(4)外部串行接口:SCI,I2C,SPI;(5)IO 口:最多可以提供26 路。單片機(jī)的最小系統(tǒng)電路如圖 3.2所示。圖3.2 單片機(jī)最小系統(tǒng)電路(1) 模擬量檢測接口a) ANA0(PIN12):陀螺儀電壓;b) ANA1(PIN11):加速度計電壓;c) ANB0(PIN5):右側(cè)電感檢波電壓;d) ANB1(PIN6):左側(cè)電感檢波電壓。(2

37、) 電機(jī)轉(zhuǎn)速脈沖接口a) T0(PIN19):右側(cè)電機(jī)光電碼盤脈沖;b) T2(PIN22):左側(cè)電機(jī)光電碼盤脈沖。(3) 電機(jī)PWM 驅(qū)動接口a) PWM0-3(PIN23,24,28,29):電機(jī)驅(qū)動。(4) 程序下載調(diào)試JTEG 接口a) TDI(PIN30);b) TDO(PIN32);c) TMS(PIN31);d) TCK(PIN14);e) /RESET(PIN15)。(5) 串口監(jiān)控UART 接口:a) RXD(PIN1);b) TXD(PIN3)。沒有使用的 IO 和模擬量口作狀態(tài)顯示、運(yùn)行設(shè)置以與輔助調(diào)試作用。3.1.3傾角傳感器電路車模傾角傳感器電路主要是將陀螺儀信號進(jìn)行

38、放大濾波。由于加速度傳感器采用是低g 值的傳感器MMA7260,它的輸出信號非常大,不需要再進(jìn)行放大。電路圖如圖3.3所示。圖3.3 陀螺計、加速度計電路圖 3.3中,將陀螺儀的輸出信號放大了10 倍左右,并將零點(diǎn)偏置電壓調(diào)整到工作電源的一半(1.65V)左右。放大倍數(shù)需要根據(jù)選取的傳感器輸出靈敏度設(shè)計。將上述電路單獨(dú)制作成小的電路板,可以比較方便放置在車模的最穩(wěn)定的位置。實(shí)際的電路圖如圖3.4所示。圖 3.4傳感器電路3.1.4電機(jī)驅(qū)動電路車模有兩個后輪驅(qū)動電機(jī),需要兩組電機(jī)驅(qū)動橋電路。圖3.5選用了兩片33886芯片組成電機(jī)驅(qū)動電路。圖3.5 電機(jī)驅(qū)動電路為提高電源的應(yīng)用效率,驅(qū)動電機(jī)的P

39、WM 波形采用單極性的驅(qū)動方式。如圖3.6所示。圖 3.6單極性PWM、雙極性PWM因此每一路電機(jī)為了能夠?qū)崿F(xiàn)正反轉(zhuǎn),都需要兩個PWM 信號。兩個電機(jī)總共需4路PWM 信號。具體實(shí)現(xiàn)的驅(qū)動電路如圖3.7所示。圖 3.7兩片33886 組成的電機(jī)驅(qū)動電路為了防止電機(jī)輸出電流對于電源的沖擊,在電路板的電源輸入(7.2V)端口并聯(lián)了一個1000 微法的電容。3.1.5速度傳感器電機(jī)速度傳感器使用了固定在電機(jī)輸出軸上的光碼盤以與相互配合的光電對管器件,如圖3.8所示。圖 3.8速度傳感器電路由于光電管器件直接輸出數(shù)字脈沖信號,因此可以直接將這些脈沖信號連接到單片機(jī)的計數(shù)器端口。每個光電管輸出兩個脈沖信

40、號,它們波形一樣,只是相位相差90。如果電機(jī)正轉(zhuǎn),第二個脈沖落后90;如果電機(jī)反轉(zhuǎn),第二個脈沖超前90??梢酝ㄟ^這個關(guān)系判斷電機(jī)是否正反轉(zhuǎn)。在實(shí)際電路中,只檢測了一路脈沖信號。通過他的頻率測量得到電機(jī)的轉(zhuǎn)速。電機(jī)的轉(zhuǎn)向是通過施加在電機(jī)上的電壓正負(fù)進(jìn)行判斷的。通過實(shí)驗(yàn)驗(yàn)證這個方法可以有效判斷電機(jī)的轉(zhuǎn)動方向并進(jìn)行速度控制。3.1.6電磁線檢測電路道路中心線的電磁線檢測是保證車模能夠運(yùn)行在賽道上。電池檢測電路圖如圖3.9圖3.9電磁檢測電路按該電路制作電路如圖 3.10圖3.10 電機(jī)檢測電路板3.2智能車軟件設(shè)計車模是否能夠正常高速穩(wěn)定運(yùn)行,需要通過軟件編寫和調(diào)試來完成。軟件編寫與調(diào)試主要任務(wù)包括

41、:(1)建立軟件工程,配置單片機(jī)資源;(2)編寫單片機(jī)軟件程序框架,編寫上位機(jī)監(jiān)控軟件,建立軟件編譯、下載、調(diào)試的環(huán)境;(3)實(shí)現(xiàn)并測試各個子模塊的功能正確性;(3)逐步完成車模閉環(huán)控制,整定各個待定參數(shù);(4)進(jìn)行車模整體運(yùn)行性能測試與提高。3.2.1軟件功能與框架軟件的主要功能包括有:(1)車模運(yùn)行狀態(tài)檢測;(2)電機(jī)PWM 輸出;(3)車模運(yùn)行控制:直立控制、速度控制、方向控制;(4)車模運(yùn)行流程控制:程序初始化、車模啟動與結(jié)束;(5)系統(tǒng)界面:狀態(tài)顯示、上位機(jī)監(jiān)控、參數(shù)設(shè)定等。上述功能可以分成兩大類:第一類包括 1-3 功能,它們屬于需要精確時間周期執(zhí)行,因此可以在一個周期定時中斷里完

42、成。第二類包括4-5 功能。它的執(zhí)行不需要精確的時間周期??梢苑旁诔绦虻闹鞒绦蛑型瓿?。這兩類任務(wù)之間可以通過全局變量實(shí)現(xiàn)相互的通訊。主程序框架如圖 3.11所示圖3.11主程序框架圖 3.11中,程序上電運(yùn)行后,便進(jìn)行單片機(jī)的初始化。初始化的工作包括有兩部分,一部分是對于單片機(jī)各個應(yīng)用到的模塊進(jìn)行初始化。這部分的代碼由CodeWarrior 集成環(huán)境的ProcessorExpert 工具生成。第二部分是應(yīng)用程序初始化,是對于車??刂瞥绦蛑袘?yīng)用到的變量值進(jìn)行初始化。初始化完成后,首先進(jìn)入車模直立檢測子程序。該程序通過讀取加速度計的數(shù)值判斷車模是否處于直立狀態(tài)。如果一旦處于直立狀態(tài)則啟動車模直立控

43、制、方向控制以與速度控制。程序在主循環(huán)中不停發(fā)送監(jiān)控數(shù)據(jù),在通過串口發(fā)送到上位機(jī)進(jìn)行監(jiān)控。同時檢查車模是否跌倒。跌倒判斷可以通過車模傾角是否超過一定圍進(jìn)行確定,或者通過安裝在車模前后防撞支架上的微動開關(guān)來判斷。一定車模跌倒,則停止車模運(yùn)行。包括車模直立控制、速度控制以與方向控制。然后重新進(jìn)入車模直立判斷過程。車模的直立控制、速度控制以與方向控制都是在中斷程序中完成。通過全局標(biāo)志變量確定是否進(jìn)行這些閉環(huán)控制。中斷程序框架如圖 3.1.2所示。圖 3.1.2中斷服務(wù)程序框架圖 3.1.2中,使用一個定時器,產(chǎn)生一毫秒的周期中斷。中斷服務(wù)程序的任務(wù)被均勻分配在0-4 的中斷片段中。因此每個中斷片段中

44、的任務(wù)執(zhí)行的頻率為200Hz。將任務(wù)分配到不同的中斷片段中,一方面防止這些任務(wù)累積執(zhí)行時間超過 1 毫秒,擾亂一毫秒中斷的時序,同時也考慮到這些任務(wù)之間的時間先后順序。這些任務(wù)包括:(1)電機(jī)測速脈沖計數(shù)器讀取與清除。累積電機(jī)轉(zhuǎn)動角度。累積電機(jī)速度,為后面車模速度控制提供平均數(shù);(2)啟動AD 轉(zhuǎn)換。由于AD 轉(zhuǎn)換啟動到完成需要一定時間。所以讀取AD 轉(zhuǎn)換在下一個時間片段中。(3)讀取AD 轉(zhuǎn)換值。這些值包括有陀螺儀、加速度計數(shù)值、電磁場檢測電壓值等。讀取完畢之后,便進(jìn)行車模直立控制過程。包括車模角度計算、直立控制計算、電機(jī)PWM 輸出等。(4)車模速度控制:在這個時間片段中,又進(jìn)行0-19

45、計數(shù)。在其中第0 片段中,進(jìn)行速度PID 調(diào)節(jié)。因此,速度調(diào)節(jié)的周期為100 毫秒。也就是每秒鐘調(diào)節(jié)10 次。(5)車模方向控制:根據(jù)前面讀取的電磁場檢波數(shù)值,計算偏差數(shù)值。然后計算電機(jī)差??刂齐妷簲?shù)值。3.2.2 單片機(jī)資源配置1)毫秒定時中斷:TI1硬件模塊:TMR2_Compare中短周期:Period:1ms觸發(fā)事件:Event:Interrupt2)電機(jī)輸出控制:PWMC1硬件模塊:PWM_Timer輸出頻率:Frequence:10Khz輸出模式:PWM0,1,2,3 Independent死區(qū)時間:Dead Time:0 3)ADC 采集通道:ADC硬件模塊:ANA0,1,ANB

46、0,1數(shù)值圍:Range:0 - 0x7ff0轉(zhuǎn)換時間:Conversion Time:1.594us采集模式:Mode: Sequency轉(zhuǎn)換分辨率:Resolution:12bit4)電機(jī)測速脈沖計數(shù)器:Counter1硬件模塊:TMR0計數(shù)圍:16bit信號觸發(fā)沿:Rising Edge5)電機(jī)測速脈沖計數(shù)器:Counter2硬件模塊:TMR1計數(shù)圍:16bit信號觸發(fā)沿:Rising Edge6) 監(jiān)控 UART 串口硬件模塊 SCI通訊速率:Baud:117647(實(shí)際值)7)讀取MMA8452Q 的I2C總線(備用)硬件模塊:I2C中斷模式:Interrupt Service:Di

47、sableI2C地址:Address:4c 通訊速率:SCL Frequency:200kHz3.2.3主要算法與其實(shí)現(xiàn)主程序框架、中斷程序框架中的各個主要子程序功能與其程序電機(jī) PWM 輸出子程序包括兩個子程序:第一個程序:SetMotorVoltage設(shè)置四個PWM 輸出數(shù)值。函數(shù)輸入?yún)?shù):nLeftVol,nRightVol:分別表示左右兩個電機(jī)輸出電壓數(shù)值。取值圍:-0x8000 至 0x7fff:代表定點(diǎn)小數(shù) -1.0 至1.0。正負(fù)號表示電機(jī)的正反轉(zhuǎn)。具體的程序參見如程序3.1 所示。void SetMotorVoltage(int nLeftVol, int nRightVol)

48、 short nPeriod;nPeriod = (short)getReg(PWM_PWMCM);if(nLeftVol 0) setReg(PWM_PWMVAL0, 0);nLeftVol = mult(nLeftVol, nPeriod);setReg(PWM_PWMVAL1, nLeftVol); else nLeftVol = -nLeftVol;setReg(PWM_PWMVAL1, 0);nLeftVol = mult(nLeftVol, nPeriod);setReg(PWM_PWMVAL0, nLeftVol);if(nRightVol 0) setReg(PWM_PWMVA

49、L3, 0);nRightVol = mult(nRightVol, nPeriod);setReg(PWM_PWMVAL2, nRightVol); else setReg(PWM_PWMVAL2, 0);nRightVol = -nRightVol;nRightVol = mult(nRightVol, nPeriod);setReg(PWM_PWMVAL3, nRightVol); 程序 3.1 電機(jī)PWM 輸出子程序這個子程序 3.1 由下面的第二個程序調(diào)用。第二個子程序:MotorSpeedOut()它的輸入?yún)?shù)為兩個全局變量:g_nLeftMotorOut, g_nRightMot

50、orOut。分別表示左右兩個電機(jī)輸出電壓。取值圍: -0x7ff 至 0x7ff。輸出參數(shù):調(diào)用 MOTOR_SET()實(shí)際上就是上面的子程序。該程序主要功能為包括:(1) 在輸出數(shù)值上添加克服死區(qū)的數(shù)值,利用宏定義MOTOR_OUT_DEAD_VAL(缺省為1000)表示。這個數(shù)值需要通過實(shí)驗(yàn)確定。對于電機(jī)施加比較小的電壓時,由于存在靜摩擦力,車模實(shí)際上是不運(yùn)動的。因此,在輸出的時候,需要根據(jù)輸出的數(shù)值,增加一個固定量,克服靜摩擦力,使得車模運(yùn)行比較平穩(wěn)。死區(qū)補(bǔ)償關(guān)系如圖3.1.3所示。圖3.1.3 電機(jī)死區(qū)補(bǔ)償(2) 進(jìn)行輸出數(shù)值的飽和判斷,確保在調(diào)用MOTOR_SET 的時候,輸入?yún)⒘吭?/p>

51、-0x8000 至0x7fff 之間。 程序 3.2 代碼。void MotorSpeedOut(void) int nLeftVal, nRightVal;nLeftVal = g_nLeftMotorOut;nRightVal = g_nRightMotorOut;if(nLeftVal 0) nLeftVal += MOTOR_OUT_DEAD_VAL;else if(nLeftVal 0) nRightVal += MOTOR_OUT_DEAD_VAL;else if(nRightVal MOTOR_OUT_MAX) nLeftVal = MOTOR_OUT_MAX;if(nLeftVal MOTOR_OUT_MAX) nRightVal = MOTOR_OUT_MAX;if(nRightVal MOTOR_OUT_MIN) nRightVal = MOTOR_OUT_MIN;nLeftVal = nLeftVal 4;nRightVal = nRightVal 10); /.lnDeltaValue = g_nCarAcceVal - g_nCarAngle;lnDeltaValue = lnDeltaValue * CAR_ACCE_RATIO;g_lnCarAngleSigma += (g_nCarGyroVal + l

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論