光交換技術(shù)綜合報告
光交換技術(shù)綜合報告
姓名:羅曉學(xué)號:專業(yè):通信工程
090642031
光交換技術(shù)和ATM交換一樣,都是寬帶交換的重要組成。在長途信息傳輸方面,光纖已經(jīng)占了絕對優(yōu)勢。用戶環(huán)路光纖化也得到很大發(fā)展,尤其是寬帶綜合數(shù)字網(wǎng)中的用戶線路必須要用光纖。光技術(shù)已經(jīng)在信息傳輸中得到廣泛應(yīng)用,并占用舉足輕重的地位。同時,現(xiàn)有的大部分情況是光纖在傳輸部分帶寬幾乎無限200Tb/s,窗口200nm。相反,在交換部分,僅僅只有幾個Gb/s,這是因為電子的本征特性制約了它在交換部分的處理能力和交換速度。所以,許多研究機構(gòu)致力于研究和開發(fā)光交換/光路由技術(shù),試圖在光子層面上完成網(wǎng)絡(luò)交換工作,消除電子瓶頸的影響。當(dāng)全光交換系統(tǒng)成為現(xiàn)實,就足夠可以滿足飛速增長的帶寬和處理速度需求,減少光電交換的損傷,同時能減少多達(dá)75%的網(wǎng)絡(luò)成本,具有誘人的市場前景。因此,廣電交換技術(shù)是未來交換技術(shù)的發(fā)展方向。
光交換技術(shù)是指不經(jīng)過任何光、電轉(zhuǎn)換,在光域直接將輸入光信號交換到不同的輸出端。即全光通信網(wǎng)絡(luò)。光交換系統(tǒng)主要由輸入接口、光交換矩陣、輸出接口和控制單元四部分組成。實現(xiàn)光交換設(shè)備是光交換機,光交換器件是實現(xiàn)全光網(wǎng)絡(luò)的基礎(chǔ),光交換機的光交換器件有光開光、光波長轉(zhuǎn)換器和光存儲器。
光開關(guān)在光通信技術(shù)中的作用一是將某一光纖通道中的光信號切斷或開通;其次是將某波長光信號由一個光纖通道轉(zhuǎn)換到另一通道中去;在是在同一通道中將一種波長的光信號轉(zhuǎn)換成另一種波長的光信號。一般有半導(dǎo)體光開光、耦合波導(dǎo)開關(guān)、硅襯底平面光波導(dǎo)開關(guān)等。波長轉(zhuǎn)換器有直接轉(zhuǎn)換和調(diào)制轉(zhuǎn)換兩種。直接轉(zhuǎn)換將輸入的光信號由光電探測器轉(zhuǎn)變?yōu)殡娦盘枺缓笤衮?qū)動激光器,使其輸出光信號,即光-電光變換;調(diào)制轉(zhuǎn)換只在外調(diào)制器的控制端上施加適當(dāng)?shù)闹绷髌秒妷,實現(xiàn)間接波長轉(zhuǎn)換。光存儲器有光纖延遲線存儲器和雙穩(wěn)態(tài)光二極管存儲器二種。
光交換技術(shù)可以分成光路交換技術(shù)和分組交換技術(shù)。光路交換又可分成三種類型,即空分(SD)、時分(TD)和波分/頻分(WD/FD)光交換,以及由這些交換組合而成的結(jié)合型。光分組交換又分為白分組(OPS)、突發(fā)(OBS)、標(biāo)記(OMPLS)三種。
空分光交換技術(shù)就是在空間域上對光信號進(jìn)行交換,其基本原理是將光交換元件組成門陣列開關(guān),并適當(dāng)控制門陣列開關(guān),即可在任一路輸入光纖和任一輸出光纖之間構(gòu)成通路。空分光交換的功能是使光信號的傳輸通路在空間上發(fā)生改變。它有兩種工作狀態(tài):平行和交叉兩種交換狀態(tài)?辗止饨粨Q按光矩陣開關(guān)所使用的技術(shù)又分成兩類,一是基于波導(dǎo)技術(shù)的波導(dǎo)空分,另一個是使用自由空間光傳播技術(shù)的自由空分光交換?辗止饨粨Q可以構(gòu)成縱橫式(crossbar)網(wǎng)絡(luò),雙縱橫式(double-crossbar)網(wǎng)絡(luò),Banyan網(wǎng)絡(luò)和擴(kuò)張的Banyan網(wǎng)絡(luò),Benes網(wǎng)絡(luò)和擴(kuò)張的Benes網(wǎng)絡(luò)。時分光交換是以時分復(fù)用為基礎(chǔ),把時間劃分為若干互不重疊的時隙,由不同的時隙建立不同的子信道,通過時隙交換網(wǎng)絡(luò)完成話音的時隙搬移,從而實現(xiàn)入線和出線間話音交換的一種交換方式其基本原理與現(xiàn)行的電子程控交換中的時分交換系統(tǒng)完全相同,因此它能與采用全光時分多路復(fù)用方法的光傳輸系統(tǒng)匹配。波分光交換(或交叉連接)是以波分復(fù)用原理為基礎(chǔ),采用波長選擇或波長變換的方法實現(xiàn)交換功能的。波分交換是根據(jù)光信號的波長來進(jìn)行通路選擇的交換方式。其基本原理是通過改變輸入光信號的波長,把某個波長的光信號變換成另一個波長的光信號輸出。波分復(fù)用是指把N個波長互不相同的信道復(fù)用在一起,就可以得到一個N路的波分復(fù)用信號。
全光分組交換網(wǎng)可分成兩大類:時隙和非時隙。在時隙網(wǎng)絡(luò)中,分組長度是固定的,并在時隙中傳輸。時隙的長度應(yīng)大于分組的時限,以便在分組的前后設(shè)置保護(hù)間隔。在非時隙網(wǎng)絡(luò)中,分組的大小是可變的,而且在交換之前,不需要排列,異步的,自由地交換每一個分組。這種網(wǎng)絡(luò)競爭性較大,分組丟失率較高。但是結(jié)構(gòu)簡單,不需要同步,分組的分割和重組不需要在輸入輸出節(jié)點進(jìn)行,更適合于原始IP業(yè)務(wù),而且緩存容量較大的非時隙型網(wǎng)絡(luò)性能良好。
在光網(wǎng)絡(luò)設(shè)計中,對網(wǎng)絡(luò)設(shè)計者來說,非常重要的是減少當(dāng)前網(wǎng)絡(luò)中協(xié)議層的數(shù)目,保留已有功能,并盡量利用現(xiàn)有的光技術(shù)。而光分組交換技術(shù)獨秀之處在于:大容量、數(shù)據(jù)率和格式的透明性、可配置性等特點;支持未來不同類型數(shù)據(jù);能提供端到端的光通道或者無連接的傳輸;帶寬利用效率高,能提供各種服務(wù),滿足客戶的需求。把大量的交換業(yè)務(wù)轉(zhuǎn)移到光域,交換容量與WDM傳輸容量匹配,同時光分組技術(shù)與OXC、MPLS等新技術(shù)的結(jié)合,實現(xiàn)網(wǎng)絡(luò)的優(yōu)化與資源的合理利用因而,光分組交換技術(shù)勢必成為下一代全光網(wǎng)網(wǎng)絡(luò)規(guī)劃的“寵兒”。
擴(kuò)展閱讀:軍交1隊技術(shù)報告
第一屆“飛思卡爾”杯全國大學(xué)生
智能汽車邀請賽
技術(shù)報告
學(xué)校:軍事交通學(xué)院隊伍名稱:軍交參賽隊員:郭振東李華郭燦
帶隊教師:徐友春
1隊
":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})
關(guān)于技術(shù)報告和研究論文使用授權(quán)的說明
本人完全了解第一屆“飛思卡爾”杯全國大學(xué)生智能汽車邀請賽關(guān)保留、
使用技術(shù)報告和研究論文的規(guī)定,即:參賽作品著作權(quán)歸參賽者本人,比賽組委會和飛思卡爾半導(dǎo)體公司可以在相關(guān)主頁上收錄并公開參賽作品的設(shè)計方案、技術(shù)報告以及參賽模型車的視頻、圖像資料,并將相關(guān)內(nèi)容編纂收錄在組委會出版論文集中。
參賽隊員簽名:郭振東
李華郭燦
帶隊教師簽名:徐友春日期:8月5號
":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})
第一章:引言...............................................................................................................2
1.1設(shè)計制作思路.................................................................................................21.2設(shè)計方案概述.................................................................................................2第二章:硬件部分.....................................................................................................2
2.1車模組裝.........................................................................................................22.2傳感器的設(shè)計與安裝.....................................................................................2
2.2.1傳感器的選擇及工作原理................................................................22.2.2傳感器的布置方案............................................................................32.2.3傳感器信號探測及處理電路............................................................42.3系統(tǒng)電路板的設(shè)計、安裝與連接.................................................................42.4驅(qū)動電機和舵機.............................................................................................52.5主要車模參數(shù)................................................................................................6第三章:軟件部分.......................................................................................................7
3.1控制算法.........................................................................................................7
3.1.1理論介紹..............................................................................................73.1.2程序?qū)崿F(xiàn)............................................................................................73.2代碼設(shè)計......................................................................................................10第四章:結(jié)論.............................................................................................................10
4.1主要性能........................................................................................................14.2改進(jìn)方向.........................................................................................................1參考文獻(xiàn).......................................................................................................................2附錄:程序源代碼.......................................................................................................2
第一章:引言
1.1設(shè)計制作思路
為了實現(xiàn)對小車的智能控制,本設(shè)計以MC9S12DG128為核心,將傳感器得到的路況信息進(jìn)行綜合判別和處理,然后以脈寬調(diào)制(PWM)的方式控制舵機轉(zhuǎn)向和驅(qū)動電機加速或減速,從而控制小車,使小車能夠快速、準(zhǔn)確地識別特定路線并按適當(dāng)速度行駛。多傳感器并行工作、CPU的綜合數(shù)據(jù)處理為小車實現(xiàn)自動加速、減速、限速、左轉(zhuǎn)、右轉(zhuǎn)提供了充分的保證。先后經(jīng)過了組裝車模、傳感器的選擇與布置、系統(tǒng)電路板的設(shè)計與安裝、開發(fā)工具BDM的調(diào)試以及控制算法的不斷改進(jìn)等過程,完成對智能車粗略控制到精確控制,并使智能車由低速逐漸向高速過渡。在實驗的基礎(chǔ)上不斷發(fā)現(xiàn)問題,并不斷調(diào)試解決問題,使智能車能夠最大限度地沿著軌道快速、準(zhǔn)確地行駛。
1.2設(shè)計方案概述
本設(shè)計方案主要分硬件、軟件和結(jié)論三個方面進(jìn)行介紹。硬件部分主要闡述了外部傳感器的選擇、安裝、傳感器的探測原理、傳感器的探測電路設(shè)計,系統(tǒng)電路板的電路設(shè)計及安裝,驅(qū)動電機和舵機的控制。軟件部分主要介紹了控制算法的理論知識,程序以及代碼的設(shè)計。結(jié)論部分主要指出了小車的性能以及改進(jìn)的方向,F(xiàn)在對本技術(shù)報告的主要部分概括介紹如下:
傳感器部分:本智能車的傳感器采用了反射式紅外光電傳感器,雙排布置。在智能車的頭部安裝了兩塊電路板,兩塊電路板的布置形式呈工字形。智能車通電后,光電傳感器的發(fā)光管發(fā)出探測光,如果探測到白色部分,接收管能夠接收到反射光;如果探測到黑色部分則探測光被吸收,接收管就接收不到反射光。根據(jù)此原理,把電信號轉(zhuǎn)換成數(shù)字信號,從而把路面信息反映到控制系統(tǒng),通過CPU的綜合數(shù)據(jù)處理,對智能車的轉(zhuǎn)向和速度進(jìn)行控制。
控制系統(tǒng)部分:我們制作了以MC9S12DG128芯片為核心的系統(tǒng)電路板,它給布置線路帶來了極大的方便,并可以非常方便地安裝在智能車上,使系統(tǒng)得到了簡化。
控制算法部分:采用了目前自動控制領(lǐng)域中最常用的控制算法PID控制算法進(jìn)行車輛行駛控制。在本方案的設(shè)計中采用了PID直接計算法。在行駛過程中,由于車輛轉(zhuǎn)向造成車輛中心與黑線有一定的偏差量,我們就選擇這一偏差量作為輸入的偏差。本設(shè)計方案中以前排電路板的中心為車輛中心線所在位置,在車輛行駛過程中,當(dāng)某一傳感器感應(yīng)到黑線位置時,就以該傳感器與電路板中心的距離作為車輛的行駛偏差,以此作為PID控制器的輸入量。為了改善控制算法中輸入量不連續(xù)的問題,我們引入車速作為算法輔助輸入量。
開發(fā)工具我們采用了主辦方提供的BDM調(diào)試器,在本報告中就不再贅述。
":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})
第二章:硬件部分
2.1車模組裝
嚴(yán)格按照說明對車模進(jìn)行組裝。重點是準(zhǔn)確地調(diào)整舵機,使舵機和前輪處于最佳的工作位置。
2.2傳感器的設(shè)計與安裝
2.2.1傳感器的選擇及工作原理根據(jù)要求,我們有兩個選擇。
第一種是采用CCD傳感器,以一定的頻率對路面信息進(jìn)行采集。CPU通過圖象處理判斷小車所處相對的位置。使用CCD進(jìn)行圖象采集和識別的方法,雖然該方案獲得的信息較精確,但是不適用在小體積系統(tǒng)中使用,并且還涉及圖象采集、圖象識別等領(lǐng)域,占用系統(tǒng)資源較多,算法較復(fù)雜。
第二種是采用反射式紅外光電傳感器,以一定的頻率向CPU提供路面標(biāo)志信號。CPU經(jīng)過比較處理,粗略判斷出小車所處的相對位置。該傳感器體積小,價格便宜,使用方便,而且該方案占用系統(tǒng)資源較少,算法較易實現(xiàn)。故我們在本設(shè)計中采用了這種傳感器,鑒于車底盤較低,采用近距離(2cm4cm)有效的傳感器。工作原理如圖2.1所示:
發(fā)射路
面接收探測距離圖2.1傳感器工作原理圖
反射式光電傳感器有發(fā)射管和接收管組成,工作時由發(fā)射管發(fā)射紅外線,經(jīng)被探測物體面反射,反射的紅外線由接收管接收,接收管把接收的物理信號轉(zhuǎn)換成電信號。被檢測物體表面的顏色和粗糙程度影響反射光的強弱,反射面越不光滑,顏色越暗,反射光就會越弱。我們這里就是要運用紅外光電傳感器對顏色敏感的特點,當(dāng)檢測物體表面的顏色為黑色時,反射光很弱,接收管接收的光線可以忽略,使接收管處于一種狀態(tài),例如開關(guān)管截止;當(dāng)檢測物體表面的顏色為白色時,反射光較強烈。使接收管處于另一種狀態(tài),例如開關(guān)管導(dǎo)通。這兩種相反的狀態(tài)表現(xiàn)在電路中就是高低電平組成的脈沖信號。這個脈沖信號就是控制系統(tǒng)的輸入信號,并且設(shè)高電平的輸入信號為1低電平信號輸入為0。通過編寫控制算法,根據(jù)傳感器搜集的路況信息,調(diào)節(jié)PWM的占空比,控制舵機和驅(qū)動電機,實現(xiàn)小車的智能控制。
第二章:硬件部分
2.2.2傳感器的布置方案
為了減弱外界光線對反射式紅外光電傳感器的影響,且考慮到小車底盤較低,我們把傳感器放置在設(shè)計的電路板下,垂直探測地面。傳感器的布置方案有單排、雙排、W字形排列等。由于W字形排列的算法比較復(fù)雜,我們只考慮了單排布置和雙排布置的方案。
首先我們選用了單排布置,也就是在車模的頭部安裝一塊電路板,其底部安裝8個傳感器。通過對傳感器探測到黑色導(dǎo)航線的情況的分析,我們用編碼的形式把傳感器探測到的路面信息表示出來。然后把這些路況信息輸入到控制系統(tǒng)通過編寫的控制算法就可以控制舵機和驅(qū)動電機,實現(xiàn)智能車的加速、減速、左轉(zhuǎn)、右轉(zhuǎn)了。通過不斷的實驗,來進(jìn)一步地調(diào)整各種編碼下,智能車要轉(zhuǎn)的角度的參數(shù)。但是這種控制算法對智能車進(jìn)行控制時,并沒有考慮速度對其轉(zhuǎn)向的影響,只是簡單地在轉(zhuǎn)彎時減速,在直道時加速。因此在實驗中發(fā)現(xiàn)智能車在跑道上慢速行駛時還能比較平穩(wěn)的跑完全程,其速度稍微加大時,智能車在拐彎處即使進(jìn)行了減速,也會由于慣性常會飛出跑道。改進(jìn)的方法有二:一是改進(jìn)算法,采用PID控制算法,它可以解決車輛行駛速度與轉(zhuǎn)向角度大小的相關(guān)性問題,行駛軌跡的跟蹤及預(yù)測問題;二是增大傳感器的預(yù)描距離,進(jìn)入彎道時提前減速。我們就雙管齊下,增大了傳感器探測電路板伸出智能車的距離。同時為了獲得PID控制算法比較準(zhǔn)確地輸入量,就在前排的后面又安裝了一塊電路板,并在它的下面安裝了6個傳感器,采集更多的信息。最終我們采用了雙排布置,即在智能車的頭部安裝了前、后兩塊電路板。其形狀及尺寸如圖2.2(單位:毫米)所示:
圖2.2
兩塊電路板的布置如圖2.3所示:在前排電路板上任意兩個相鄰的傳感器的中心距離位2.5cm;在后排電路板上,中間兩個傳感器的中心距離為5.0cm,其余的相鄰兩傳感器間的距離也為2.5cm。前后兩塊電路板傳感器分布所在直線間的
第一屆全國大學(xué)生智能汽車邀請賽技術(shù)報告
垂直距離為10.8cm。
2.2.3傳感器信號探測及處理電路
圖2.3
傳感器信號探測及處理電路設(shè)計如圖2.4所示:
圖2.4
D1為紅外光電傳感器的發(fā)射管,D2為其接收管。D1發(fā)射紅外線,D2接收信號,判斷是否有反射信號。如果有則D2輸出高電平,如果沒有則輸出低電平,信號經(jīng)過三極管、集成運放器輸出到CPU的PORTA或PORTB。14個傳感器獲得的信號并行輸入單片機,從而把路面信息反饋到控制系統(tǒng),實現(xiàn)對智能車的控制。制作電路板后,要把探測電路上的元件一一對應(yīng)地焊接到電路板上。焊接電阻時,要注意防止虛焊;焊接插件時要注意避免兩個焊接點連接在一起造成短路;焊接發(fā)光二極管和接收二極管前要用萬用表測量一下極性,防止將二極管反向安裝。
2.3系統(tǒng)電路板的設(shè)計、安裝與連接
第二章:硬件部分
我們沒有采用主辦方提供了核心S12的電路板,自行設(shè)計了系統(tǒng)電路板。首先核心S12電路板體積比較大,既不方便在智能車上安裝,也不美觀;其次在核心S12電路板上找到正確的引腳插線,也顯得比較復(fù)雜。我們設(shè)計的系統(tǒng)電路板就解決了這方面的問題,可以把它很方便地固定在智能車的底盤上,并制作了轉(zhuǎn)用的插槽(如圖2.2所示)。我們制作了以MC9S12DG128芯片為核心,并附以復(fù)位電路、晶體振蕩器及時鐘電路、+5V的電源、驅(qū)動電機的供電插座、單片機引腳插槽以及其他一些常規(guī)電子元件組成的系統(tǒng)控制電路。系統(tǒng)控制電路原理圖如圖2.5所示:
圖2.5
2.4驅(qū)動電機和舵機
傳感器信息電機MC9S12DG128加減速MC33886PID算法PWM波舵機轉(zhuǎn)向圖2.6舵機和電機工作原理原理圖
第一屆全國大學(xué)生智能汽車邀請賽技術(shù)報告
驅(qū)動電機和舵機是智能車整個系統(tǒng)的執(zhí)行部件。以MC9S12DG128芯片為核心的控制系統(tǒng)由傳感器獲得路面信息,通過PID控制算法來調(diào)節(jié)舵機和驅(qū)動電機的PWM的占空比,控制智能車的轉(zhuǎn)向和車速。其工作原理圖2.6所示。本次比賽要求不得對驅(qū)動電機和舵機進(jìn)行改造,本文對其不再贅述。
2.5主要車模參數(shù)
a)車重:1.1kg長:384mm寬:185mm高:77mm
b)電路功耗:所有電容總?cè)萘浚?900uFc)傳感器種類:反射式紅外光電傳感器數(shù)目:14d)伺服電機個數(shù):0
e)賽道信息檢測精度:6mm頻率:1000Hz
第三章:軟件部分
3.1控制算法
本智能車輛的控制算法部分主要需解決如下問題:車輛直線行駛的穩(wěn)定性問題,車輛轉(zhuǎn)彎控制問題,車輛行駛速度與轉(zhuǎn)向角度大小的相關(guān)性問題,行駛軌跡的跟蹤及預(yù)測問題等。為了更好的解決設(shè)計中存在的問題,本方案采用了目前自動控制領(lǐng)域中最常用的控制算法PID控制算法進(jìn)行車輛行駛控制。3.1.1理論介紹
PID控制算法包括直接計算法和增量算法,所謂的增量算法就是相對于標(biāo)準(zhǔn)的相鄰兩次運算之差,得到的結(jié)果是增量。也就是說在上一次的控制量的基礎(chǔ)上需要增加(負(fù)值意味著減少)控制量,例如對于智能小車控制算法,就是智能小車相對于上一次轉(zhuǎn)向角度還需要增加或減少的轉(zhuǎn)向角度。在本方案的設(shè)計中采用了PID直接計算法。
(一)PID算法中常用概念解釋如下:1、基本偏差e(t)
表示當(dāng)前測量值與設(shè)定目標(biāo)間的差,設(shè)定目標(biāo)是被減數(shù),結(jié)果可以是正或負(fù),正數(shù)表示還沒有達(dá)到,負(fù)數(shù)表示已經(jīng)超過了設(shè)定值。這是面向比例項用的變動數(shù)據(jù)。
2、累計偏差:e(t)e(t)e(t1)e(t2)...e(1)公式1
表示每一次測量到的偏差值的總和,這是代數(shù)和,是面向積分項用的一個變動數(shù)據(jù)。
3、基本偏差的相對偏差e(t)-e(t-1)
表示用本次的基本偏差減去上一次的基本偏差,用于考察當(dāng)前控制對象的趨勢,作為快速反應(yīng)的重要依據(jù),這是面向微分項的一個變動數(shù)據(jù)。4、三個基本參數(shù):Kp,Ki,Kd
這三個參數(shù)是做好控制器的關(guān)鍵常數(shù),分別稱為比例常數(shù)、積分常數(shù)和微分常數(shù),不同的控制對象需要選擇不同的數(shù)值,還需要經(jīng)過現(xiàn)場調(diào)試才能獲得較好的效果。
5、標(biāo)準(zhǔn)的直接算法公式
Pout(t)Kp*e(t)Ki*e(t)Kd*(e(t)e(t1))公式2(二)三個基本參數(shù)Kp,Ki,Kd在實際控制中的作用:
比例調(diào)節(jié)作用:是按比例反映系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調(diào)節(jié)立即產(chǎn)生調(diào)節(jié)作用用以減少偏差。比例作用大,可以加快調(diào)節(jié),減少誤差,但是過大的比例,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的不穩(wěn)定。
積分調(diào)節(jié)作用:是使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度。因為有誤差,積分
第一屆全國大學(xué)生智能汽車邀請賽技術(shù)報告
調(diào)節(jié)就進(jìn)行直至無差,積分調(diào)節(jié)停止,積分調(diào)節(jié)輸出一常值。積分作用的強弱取決于積分時間常數(shù)Ti,Ti越小,積分作用就越強。反之Ti越大則積分作用越弱,加入積分調(diào)節(jié)可使系統(tǒng)穩(wěn)定性下降,動態(tài)相應(yīng)變慢。積分作用常與另兩種調(diào)節(jié)規(guī)律結(jié)合,組成PI調(diào)節(jié)器或PID調(diào)節(jié)器。
微分調(diào)節(jié)作用:微分作用反映系統(tǒng)偏差信號的變化率,具有預(yù)見性,能預(yù)見偏差變化的趨勢,因此能產(chǎn)生超前的控制作用,在偏差還沒有形成之前,以被微分調(diào)節(jié)作用消除。因此,可以改善系統(tǒng)的動態(tài)性能。在微分時間選擇合適情況下,可以減少超調(diào),減少調(diào)節(jié)時間。微分作用對于噪聲干擾有放大作用,因此過強的加微分調(diào)節(jié),對系統(tǒng)抗干擾不利。此外,微分反應(yīng)的是變化率,而當(dāng)輸入沒有變化時,微分作用輸出為零。微分作用不能單獨使用,需要與另外兩種調(diào)節(jié)規(guī)律相結(jié)合,組成PD或PID控制器。(三)智能車輛PID控制算法中參數(shù)的選擇
此次參賽的智能車輛主要是尋跡行駛,控制算法所要做的就是控制車輛沿著預(yù)先設(shè)計好黑線行駛,保證車輛中心線在黑線上。在行駛過程中,由于車輛轉(zhuǎn)向造成車輛中心與黑線有一定的偏差量,我們就選擇這一偏差量作為輸入的偏差。本設(shè)計方案中以前排電路板的中心為車輛中心線所在位置,在車輛行駛過程中,當(dāng)某一傳感器感應(yīng)到黑線位置時,就以該傳感器與電路板中心的距離作為車輛的行駛偏差,以此做為PID控制器的輸入量。如圖3.1所示:
通過直接算法公式(公式2)計算出t時刻智能車的控制轉(zhuǎn)向角,由此達(dá)到對智能車轉(zhuǎn)向進(jìn)行控制的目的。但是由于輸入量取值是由傳感器的位置決定,而傳感器的數(shù)量又是有限的,所以我們只能獲得有限的精確輸入量,這樣通過控制算法得出的控制轉(zhuǎn)角就不是很理想。為了改善控制算法中輸入量不連續(xù)的問題,我們引入車速作為算法輔助輸入量。通過車速、車輛上一次轉(zhuǎn)角、車輛長度等值之間的數(shù)學(xué)關(guān)系,可以計算出車輛中心與黑線中心在一次傳感器采樣周期內(nèi)的偏差,以此值與傳感器采樣值之間做比較,從而獲得比較理想的偏差值,為控制算法找到較理想的輸入量。車速、車輛上一次轉(zhuǎn)角、車輛長度等數(shù)值之間
8傳感器車輛中e(t)中心黑線圖3.第三章:軟件部件
的關(guān)系可由圖3.2導(dǎo)出:經(jīng)過△t時間后車輛轉(zhuǎn)過的角度為
vt180R12公式3(0是車輛上一時刻的轉(zhuǎn)角。)公式4
R120cos0sin0
由圖上各值的幾何關(guān)系可知:
圖3.2
a1800arctanb902arctan2L1L2L1L2公式5
2公式6
22arccosR22R2L1L2R12R222L1L2222公式7
2L1L2R12R12L1L2cosa公式8
C2R2sin公式9
10LCsinb公式
最后計算出的L即為經(jīng)過t時間后車輛中心的橫向位移,將此值與傳感器獲得的車輛中心與黑線的偏差進(jìn)行比較,得到我們需要的輸入量。
通過輸入量與輸出量之間的比較,初步定下PID控制算法中參數(shù)Kp,Ki,
":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})第一屆全國大學(xué)生智能汽車邀請賽技術(shù)報告
Kd的值,然后通過實驗找到合適的三個控制參數(shù)值。3.1.2程序?qū)崿F(xiàn)
數(shù)值分析和變量之間的聯(lián)系我們通過以上的分析過程已經(jīng)基本了解,要通過程序?qū)⒁陨线^程實現(xiàn)并達(dá)到預(yù)期的效果,還需要做一些準(zhǔn)備工作。首先是將轉(zhuǎn)向舵機和驅(qū)動電機的驅(qū)動程序設(shè)計好,然后測出智能車的最大行駛速度和最大轉(zhuǎn)角,量出車輛軸距以及程序設(shè)計中需要用的一些參數(shù)。完成這些準(zhǔn)備工作之后,畫出程序流程圖,如圖3.3所示:
開始
定義變量和函數(shù)并初始化數(shù)據(jù)
檢測端口值的變化并記錄到變量中
否是傳感器的檢
測值=0?
進(jìn)行數(shù)值編碼調(diào)用PID函數(shù)輸出控制角度和
調(diào)用轉(zhuǎn)向函數(shù)和調(diào)速函數(shù),調(diào)整車速和
轉(zhuǎn)速角否程序是否結(jié)束
程序結(jié)束圖3.3
圖3.3
通過程序流程圖,很快就可以確定下來編程方案,按照結(jié)構(gòu)化程序設(shè)計的要求,對程序中的函數(shù)都進(jìn)行模塊化設(shè)計,保證程序的可讀性和易維護(hù)性,實現(xiàn)預(yù)期的設(shè)計目的。
3.2代碼設(shè)計
通過以上分析,我們在編程時需要解決以下問題:
第三章:軟件部分
(1)PID控制算法的程序?qū)崿F(xiàn)(2)基本計算函數(shù)的編程實現(xiàn)
(3)輸入輸出量與PID算法之間的結(jié)合(4)變量之間數(shù)據(jù)類型的變化
根據(jù)以上的問題提出了下述解決方法:
(1)定義PID計算的結(jié)構(gòu)體如下:typedefstructPID{
floatSetPoint;//設(shè)定目標(biāo)DesiredValue
floatProportion;//比例常數(shù)ProportionalConstfloatIntegral;//積分常數(shù)IntegralConstfloatDerivative;//微分常數(shù)DerivativeConstfloatLastError;//Error[-1]floatPrevError;//Error[-2]
floatSumError;//SumsofErrors
}PID;
(2)定義基本計算函數(shù)
floatPIDCalc(PID*pp,floatNextPoint)//PID計算{
floatdError,Error;
Error=pp->SetPoint-NextPoint;//偏差pp->SumError+=Error;//積分
dError=pp->LastError-pp->PrevError;//當(dāng)前微分pp->PrevError=pp->LastError;pp->LastError=Error;
return(pp->Proportion*Error//比例項+pp->Integral*pp->SumError//積分項+pp->Derivative*dError//微分項);}
floatR(floatx)//計算車輛轉(zhuǎn)彎半徑{float
resu=200.0*(cosf(x*3.1415926/180.0))*(cosf(x*3.1415926/180.0))/(sinf(x*3.1415926/180.0));
returnresu;
第一屆全國大學(xué)生智能汽車邀請賽技術(shù)報告
}floatangela(floatx)//計算角度a{
return(180.0+x-51.3);}
floatangelb(floatx,floaty)//計算角度b{
floatrest=(180.0*y*0.025)/(R(x)*3.1415926);returnrest;}
floatangelc(floatx)//計算角度c{
float
resul=acosf((Rnext(x)*Rnext(x)+16400.0-R(x)*R(x))/(256.0*Rnext(x)))*180.0/3.1415926;
returnresul;}
floatRnext(floatx)//計算車輛中心點轉(zhuǎn)彎半徑{
float
resaff=R(x)*R(x)+16400.0-2.0*R(x)*128.0*cosf(angela(x)*3.1415926/180.0);
floatreste=sqrtf(resaff);returnreste;}
floatclength(floatx,floaty)//計算部分位移{
return(2.0*Rnext(x)*sinf(y*3.1415926/180.0));}
floatslength(floatx,floaty)//計算最終位移{
return
(clength(x,y)*sinf((90.0+y/2-38.66-angelc(x))*3.1415926/180.0));
}(3)確定輸入輸出量與定義函數(shù)之間的關(guān)系intcoding(unsignedcharsensors)
":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})第三章:軟件部分
{inta=0;
floatlength=0.0,rIn=0.0;switch(sensors){
case1:length=12.5;;a=1;break;//speed=50case3:length=25.0;a=1;break;//speed=50;case2:length=37.5;a=1;break;//speed=45;case6:length=50.0;a=1;break;//speed=40;case4:length=62.5;a=1;break;//speed=35;case12:length=75.0;a=1;break;//speed=30;case8:length=87.5;a=1;break;//speed=26;case16:length=12.5;a=-1;break;//speed=50;case48:length=25.0;a=-1;break;//speed=50;case32:length=37.5;a=-1;break;//speed=45;case96:length=50.0;a=-1;break;//speed=40;case64:length=62.5;a=-1;break;//speed=35;case192:length=75.0;a=-1;break;//speed=30;case128:length=87.5;a=-1;break;//speed=26;default:a=0;speed=20;break;}
if(length==templength){
rIn=length-slength((tempangle*0.2),angelb((tempangle*0.2),(float)(0.2*(120-tempangle)*125)));
}else
rIn=length;
tempangle=PIDCalc(&sPID,rIn);//PerformPIDInterationif(tempangle":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})
第四章:結(jié)論
4.1主要性能
總體上,智能車已經(jīng)實現(xiàn)了加速、減速、轉(zhuǎn)向、剎車的基本功能,能夠沿黑色導(dǎo)航線比較平穩(wěn)、快速地行駛了。
本智能車輛的控制算法部分主要解決如下問題:車輛直線行駛的穩(wěn)定性問題,車輛轉(zhuǎn)彎控制問題,車輛行駛速度與轉(zhuǎn)向角度大小的相關(guān)性問題,行駛軌跡的跟蹤及預(yù)測問題等。PID控制算法就可以解決這些問題。它有諸多優(yōu)點:1)我們采用狀態(tài)控制。在每個很小的一段時間內(nèi),認(rèn)為車輛狀態(tài)不變,因而在這段時間內(nèi)可將車輛作靜態(tài)處理。轉(zhuǎn)向目的就是減小小車所在的中心線與車輛行駛的黑色導(dǎo)航線的靜態(tài)誤差。狀態(tài)控制不考慮時間過程,而注重調(diào)整前后的狀態(tài)變化。實際應(yīng)用過程中,當(dāng)時間足夠小時,由于執(zhí)行機構(gòu)的響應(yīng)能力遠(yuǎn)遠(yuǎn)低于單片機的運行速度,實際控制操作效果就如同連續(xù)控制一樣,保證了控制的準(zhǔn)確性。2)控制輸出不要求最優(yōu)。從實際情況可知,在相同的情況下,同一駕駛員兩次控制的結(jié)果可能不盡相同的,具有一定的隨機性,但結(jié)果都能完成所要求的任務(wù)。因此,對于本智能車的控制輸出的轉(zhuǎn)向角,不要求它在當(dāng)前位置是最優(yōu)的,而只要求它滿足兩個條件,即方向正確,轉(zhuǎn)向角度合理。3)控制算法交易實現(xiàn)。比較其他比較復(fù)雜的算法,如最優(yōu)控制必須考慮時間的過程,因而需要了解各執(zhí)行機構(gòu)的動態(tài)響應(yīng)特性,以獲得準(zhǔn)確的傳遞函數(shù)。而本文提供的算法只需要車輛當(dāng)前的狀態(tài)信息,即小車的當(dāng)前位置(由傳感器提供)與小車所應(yīng)處的位置(由算法提供),即可得到轉(zhuǎn)向控制角。整個過程不涉及執(zhí)行機構(gòu)的動態(tài)響應(yīng)函數(shù),從而降低了難度。
4.2改進(jìn)方向
本控制算法還存在一些不足:1)由于傳感器的預(yù)描距離。10cm左右),隨著車速的提高,要求控制的頻率提高。由于系統(tǒng)硬件的限制很難滿足高速情況下的轉(zhuǎn)向控制的要求。2)作為輔助輸入量的速度并不十分準(zhǔn)確,所取的速度是算法賦予小車的速度,并非小車的真實速度。不同的路面,不同的轉(zhuǎn)向?qū)π≤嚨乃俣榷紩a(chǎn)生影響,而這些影響是很難量化的。3)算法中參數(shù)的調(diào)整完全依靠實驗人工標(biāo)定,工作量比較大。這些問題都亟待解決。
":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})
參考文獻(xiàn)
01.自動控制原理/蔣大名、戴勝華主編。北京:清華大學(xué)出版社、北方交通大學(xué)出版
社,201*.6
02.現(xiàn)代傳感技術(shù)/魏永廣著。東北大學(xué)出版社,201*.4
03.C程序設(shè)計:第2版/譚浩強著。北京:清華大學(xué)出版社,201*.6
04.單片機嵌入式應(yīng)用的在線開發(fā)方法/邵貝貝著。北京:清華大學(xué)出版社,201*.10
附錄:程序源代碼
#include#include#include"stdio.h"#include"math.h"#definestart_speed5;
#pragmaLINK_INFODERIVATIVE"mc9s12dg128b"typedefstructPID{
floatSetPoint;floatProportion;floatIntegral;
floatDerivative;floatLastError;floatPrevError;
floatSumError;}PID;PIDsPID;inttemp;intangle;
floatspeed;charflag;floattemplength;
floatcoding(unsignedcharsensors);voidinitial_pwm(void);voidinitial_atd(void);
characc_sensorX(void);characc_sensorY(void);voidsteer_pwm(floatangle);
voiddrive_pwm(signedcharspeed);
voidPIDInit(PID*pp);
floatPIDCalc(PID*pps,floatNextPoint);
floatR(floatx);
floatangela(floatx);floatangelb(floatx,floaty);floatangelc(floatx);floatRnext(floatx);
floatclength(floatx,floaty);floatslength(floatx,floaty);floatR(floatx){
return(200*cos(x)*cos(x)/sin(x));}floatangela(floatx){return(180+x-51.34);}
floatangelb(floatx,floaty){return(180*y*0.025/R(x));}floatangelc(floatx){
return(arccos((Rnext(x)*Rnext(x)+16400-R(x)*R(x))/(256*Rnext(x))));}floatRnext(floatx){
return(sqr(R(x)*R(x)+16400-2*R(x)*128*cos(angela(x))));}
floatclength(floatx,floaty){
return(2*Rnext(x)*sin(y));}floatslength(floatx,floaty){
return(clength(x,y)*sin(90+y/2-38.66-angelc(x)));}voidTimerOverflow(void){.
while(TCNT!=0x0000);while(TCNT==0x0000);flag=1;}
voidinitial_pwm(void){PWME=0X82;PWMCTL=0X80;
PWMCLK=0X80;PWMPRCLK=0X24;PWMSCLA=0X40;
PWMSCLB=0X02;PWMPOL=0X82;PWMCAE=0X00;
PWMPER1=0X40;
PWMDTY1=0X10;PWMPER67=0X2710;PWMDTY67=0X2D0;}voidinitial_atd(void)
{ATD0CTL2=0xC0;ATD0CTL3=0x18;ATD0CTL4=0xA7;
ATD0CTL5=0xb1;ATD0DIEN=0x00;}
floatcoding(unsignedcharsensors)
{floata,length;floatrIn,rOut;
switch(sensors){
case1:length=12.5;speed=50;break;case3:length=25;speed=50;break;
case2:length=37.5;speed=45;break;
case6:length=50;speed=40;break;case4:length=62.5;speed=35;break;case12:length=75;speed=30;break;case8:length=87.5;speed=25;break;
case16:length=-12.5;speed=50;break;case48:length=-25;speed=50;break;case32:length=-37.5;speed=45;break;
case96:length=-50;speed=40;break;case64:length=-62.5;speed=35;break;case192:length=-75;speed=30;break;
case128:length=-87.5;speed=25;break;default:a=0;speed=20;break;}if(length==templength)
{rIn=length-slength(temp*0.2,angelb(temp*0.2,speed));}rIn=length;
a=PIDCalc(&sPID,rIn);
templength=length;
returna;}
voidsteer_pwm(intangle){PWMDTY67=720+angle;PWMCNT67=0;}
voiddrive_pwm(signedcharspeed){PWMDTY1=speed;PWMCNT1=0;}
characc_sensorX(void){charx;
x=ATD0DR0L;
returnx;}
characc_sensorY(void){chary;
y=ATD0DR1L;returny;}
floatPIDCalc(PID*pp,floatNextPoint)
{floatdError,Error;
Error=pp->SetPoint-NextPoint;pp->SumError+=Error;dError=pp->LastError-pp->PrevError;pp->PrevError=pp->LastError;
pp->LastError=Error;
return(pp->Proportion*Error+pp->Integral*pp->SumError
+pp->Derivative*dError);}voidPIDInit(PID*pp){memset(pp,0,sizeof(PID));}
voidmain(void)
{unsignedcharsensor1,stop,tt;characc_X,acc_Y;
TSCR1=0x80;/*enabletimerTCNT*/TSCR2=0x01;/*TCNTprescalersetup*/flag=0;
tt=0;
DDRA=0X00;DDRB=0XFF;DDRK=0XFF;DDRE=0X00;
PORTK=0X02;initial_pwm();
sPID.Proportion=0.5;sPID.Integral=0.5;sPID.Derivative=0.0;sPID.SetPoint=0;
for(;;)
{stop=PORTE;stop=stop&0x03;
if(stop==1){PORTK=0;tt=1;}if(stop==2){
PORTK=0X02;
10tt=0;}if(tt==0){sensor1=PORTA;PORTB=sensor1;
sensor1=~sensor1;acc_X=acc_sensorX();acc_Y=acc_sensorY();
if(sensor1==0xff){PORTK=0;}else{PORTK=0X02;}
if(sensor1==17){angle=0;speed=60;}else{
if(sensor1==0){angle=temp;speed=25;}
else{angle=(int)coding(sensor1);
temp=angle;}}TimerOverflow();if(flag==1){steer_pwm(angle);
drive_pwm(speed);flag=0;}}}
12友情提示:本文中關(guān)于《光交換技術(shù)綜合報告》給出的范例僅供您參考拓展思維使用,光交換技術(shù)綜合報告:該篇文章建議您自主創(chuàng)作。
來源:網(wǎng)絡(luò)整理 免責(zé)聲明:本文僅限學(xué)習(xí)分享,如產(chǎn)生版權(quán)問題,請聯(lián)系我們及時刪除。