毛片在线视频观看,一级日韩免费大片,在线网站黄色,澳门在线高清一级毛片

薈聚奇文、博采眾長、見賢思齊
當前位置:公文素材庫 > 報告體會 > 工作報告 > 光交換技術綜合報告

光交換技術綜合報告

網站:公文素材庫 | 時間:2019-05-29 20:03:04 | 移動端:光交換技術綜合報告

光交換技術綜合報告

光交換技術綜合報告

姓名:羅曉學號:專業(yè):通信工程

090642031

光交換技術和ATM交換一樣,都是寬帶交換的重要組成。在長途信息傳輸方面,光纖已經占了絕對優(yōu)勢。用戶環(huán)路光纖化也得到很大發(fā)展,尤其是寬帶綜合數(shù)字網中的用戶線路必須要用光纖。光技術已經在信息傳輸中得到廣泛應用,并占用舉足輕重的地位。同時,現(xiàn)有的大部分情況是光纖在傳輸部分帶寬幾乎無限200Tb/s,窗口200nm。相反,在交換部分,僅僅只有幾個Gb/s,這是因為電子的本征特性制約了它在交換部分的處理能力和交換速度。所以,許多研究機構致力于研究和開發(fā)光交換/光路由技術,試圖在光子層面上完成網絡交換工作,消除電子瓶頸的影響。當全光交換系統(tǒng)成為現(xiàn)實,就足夠可以滿足飛速增長的帶寬和處理速度需求,減少光電交換的損傷,同時能減少多達75%的網絡成本,具有誘人的市場前景。因此,廣電交換技術是未來交換技術的發(fā)展方向。

光交換技術是指不經過任何光、電轉換,在光域直接將輸入光信號交換到不同的輸出端。即全光通信網絡。光交換系統(tǒng)主要由輸入接口、光交換矩陣、輸出接口和控制單元四部分組成。實現(xiàn)光交換設備是光交換機,光交換器件是實現(xiàn)全光網絡的基礎,光交換機的光交換器件有光開光、光波長轉換器和光存儲器。

光開關在光通信技術中的作用一是將某一光纖通道中的光信號切斷或開通;其次是將某波長光信號由一個光纖通道轉換到另一通道中去;在是在同一通道中將一種波長的光信號轉換成另一種波長的光信號。一般有半導體光開光、耦合波導開關、硅襯底平面光波導開關等。波長轉換器有直接轉換和調制轉換兩種。直接轉換將輸入的光信號由光電探測器轉變?yōu)殡娦盘,然后再驅動激光器,使其輸出光信號,即?電光變換;調制轉換只在外調制器的控制端上施加適當?shù)闹绷髌秒妷,實現(xiàn)間接波長轉換。光存儲器有光纖延遲線存儲器和雙穩(wěn)態(tài)光二極管存儲器二種。

光交換技術可以分成光路交換技術和分組交換技術。光路交換又可分成三種類型,即空分(SD)、時分(TD)和波分/頻分(WD/FD)光交換,以及由這些交換組合而成的結合型。光分組交換又分為白分組(OPS)、突發(fā)(OBS)、標記(OMPLS)三種。

空分光交換技術就是在空間域上對光信號進行交換,其基本原理是將光交換元件組成門陣列開關,并適當控制門陣列開關,即可在任一路輸入光纖和任一輸出光纖之間構成通路?辗止饨粨Q的功能是使光信號的傳輸通路在空間上發(fā)生改變。它有兩種工作狀態(tài):平行和交叉兩種交換狀態(tài)?辗止饨粨Q按光矩陣開關所使用的技術又分成兩類,一是基于波導技術的波導空分,另一個是使用自由空間光傳播技術的自由空分光交換?辗止饨粨Q可以構成縱橫式(crossbar)網絡,雙縱橫式(double-crossbar)網絡,Banyan網絡和擴張的Banyan網絡,Benes網絡和擴張的Benes網絡。時分光交換是以時分復用為基礎,把時間劃分為若干互不重疊的時隙,由不同的時隙建立不同的子信道,通過時隙交換網絡完成話音的時隙搬移,從而實現(xiàn)入線和出線間話音交換的一種交換方式其基本原理與現(xiàn)行的電子程控交換中的時分交換系統(tǒng)完全相同,因此它能與采用全光時分多路復用方法的光傳輸系統(tǒng)匹配。波分光交換(或交叉連接)是以波分復用原理為基礎,采用波長選擇或波長變換的方法實現(xiàn)交換功能的。波分交換是根據(jù)光信號的波長來進行通路選擇的交換方式。其基本原理是通過改變輸入光信號的波長,把某個波長的光信號變換成另一個波長的光信號輸出。波分復用是指把N個波長互不相同的信道復用在一起,就可以得到一個N路的波分復用信號。

全光分組交換網可分成兩大類:時隙和非時隙。在時隙網絡中,分組長度是固定的,并在時隙中傳輸。時隙的長度應大于分組的時限,以便在分組的前后設置保護間隔。在非時隙網絡中,分組的大小是可變的,而且在交換之前,不需要排列,異步的,自由地交換每一個分組。這種網絡競爭性較大,分組丟失率較高。但是結構簡單,不需要同步,分組的分割和重組不需要在輸入輸出節(jié)點進行,更適合于原始IP業(yè)務,而且緩存容量較大的非時隙型網絡性能良好。

在光網絡設計中,對網絡設計者來說,非常重要的是減少當前網絡中協(xié)議層的數(shù)目,保留已有功能,并盡量利用現(xiàn)有的光技術。而光分組交換技術獨秀之處在于:大容量、數(shù)據(jù)率和格式的透明性、可配置性等特點;支持未來不同類型數(shù)據(jù);能提供端到端的光通道或者無連接的傳輸;帶寬利用效率高,能提供各種服務,滿足客戶的需求。把大量的交換業(yè)務轉移到光域,交換容量與WDM傳輸容量匹配,同時光分組技術與OXC、MPLS等新技術的結合,實現(xiàn)網絡的優(yōu)化與資源的合理利用因而,光分組交換技術勢必成為下一代全光網網絡規(guī)劃的“寵兒”。

擴展閱讀:軍交1隊技術報告

第一屆“飛思卡爾”杯全國大學生

智能汽車邀請賽

技術報告

學校:軍事交通學院隊伍名稱:軍交參賽隊員:郭振東李華郭燦

帶隊教師:徐友春

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ī)定,即:參賽作品著作權歸參賽者本人,比賽組委會和飛思卡爾半導體公司可以在相關主頁上收錄并公開參賽作品的設計方案、技術報告以及參賽模型車的視頻、圖像資料,并將相關內容編纂收錄在組委會出版論文集中。

參賽隊員簽名:郭振東

李華郭燦

帶隊教師簽名:徐友春日期: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設計制作思路.................................................................................................21.2設計方案概述.................................................................................................2第二章:硬件部分.....................................................................................................2

2.1車模組裝.........................................................................................................22.2傳感器的設計與安裝.....................................................................................2

2.2.1傳感器的選擇及工作原理................................................................22.2.2傳感器的布置方案............................................................................32.2.3傳感器信號探測及處理電路............................................................42.3系統(tǒng)電路板的設計、安裝與連接.................................................................42.4驅動電機和舵機.............................................................................................52.5主要車模參數(shù)................................................................................................6第三章:軟件部分.......................................................................................................7

3.1控制算法.........................................................................................................7

3.1.1理論介紹..............................................................................................73.1.2程序實現(xiàn)............................................................................................73.2代碼設計......................................................................................................10第四章:結論.............................................................................................................10

4.1主要性能........................................................................................................14.2改進方向.........................................................................................................1參考文獻.......................................................................................................................2附錄:程序源代碼.......................................................................................................2

第一章:引言

1.1設計制作思路

為了實現(xiàn)對小車的智能控制,本設計以MC9S12DG128為核心,將傳感器得到的路況信息進行綜合判別和處理,然后以脈寬調制(PWM)的方式控制舵機轉向和驅動電機加速或減速,從而控制小車,使小車能夠快速、準確地識別特定路線并按適當速度行駛。多傳感器并行工作、CPU的綜合數(shù)據(jù)處理為小車實現(xiàn)自動加速、減速、限速、左轉、右轉提供了充分的保證。先后經過了組裝車模、傳感器的選擇與布置、系統(tǒng)電路板的設計與安裝、開發(fā)工具BDM的調試以及控制算法的不斷改進等過程,完成對智能車粗略控制到精確控制,并使智能車由低速逐漸向高速過渡。在實驗的基礎上不斷發(fā)現(xiàn)問題,并不斷調試解決問題,使智能車能夠最大限度地沿著軌道快速、準確地行駛。

1.2設計方案概述

本設計方案主要分硬件、軟件和結論三個方面進行介紹。硬件部分主要闡述了外部傳感器的選擇、安裝、傳感器的探測原理、傳感器的探測電路設計,系統(tǒng)電路板的電路設計及安裝,驅動電機和舵機的控制。軟件部分主要介紹了控制算法的理論知識,程序以及代碼的設計。結論部分主要指出了小車的性能以及改進的方向,F(xiàn)在對本技術報告的主要部分概括介紹如下:

傳感器部分:本智能車的傳感器采用了反射式紅外光電傳感器,雙排布置。在智能車的頭部安裝了兩塊電路板,兩塊電路板的布置形式呈工字形。智能車通電后,光電傳感器的發(fā)光管發(fā)出探測光,如果探測到白色部分,接收管能夠接收到反射光;如果探測到黑色部分則探測光被吸收,接收管就接收不到反射光。根據(jù)此原理,把電信號轉換成數(shù)字信號,從而把路面信息反映到控制系統(tǒng),通過CPU的綜合數(shù)據(jù)處理,對智能車的轉向和速度進行控制。

控制系統(tǒng)部分:我們制作了以MC9S12DG128芯片為核心的系統(tǒng)電路板,它給布置線路帶來了極大的方便,并可以非常方便地安裝在智能車上,使系統(tǒng)得到了簡化。

控制算法部分:采用了目前自動控制領域中最常用的控制算法PID控制算法進行車輛行駛控制。在本方案的設計中采用了PID直接計算法。在行駛過程中,由于車輛轉向造成車輛中心與黑線有一定的偏差量,我們就選擇這一偏差量作為輸入的偏差。本設計方案中以前排電路板的中心為車輛中心線所在位置,在車輛行駛過程中,當某一傳感器感應到黑線位置時,就以該傳感器與電路板中心的距離作為車輛的行駛偏差,以此作為PID控制器的輸入量。為了改善控制算法中輸入量不連續(xù)的問題,我們引入車速作為算法輔助輸入量。

開發(fā)工具我們采用了主辦方提供的BDM調試器,在本報告中就不再贅述。

":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車模組裝

嚴格按照說明對車模進行組裝。重點是準確地調整舵機,使舵機和前輪處于最佳的工作位置。

2.2傳感器的設計與安裝

2.2.1傳感器的選擇及工作原理根據(jù)要求,我們有兩個選擇。

第一種是采用CCD傳感器,以一定的頻率對路面信息進行采集。CPU通過圖象處理判斷小車所處相對的位置。使用CCD進行圖象采集和識別的方法,雖然該方案獲得的信息較精確,但是不適用在小體積系統(tǒng)中使用,并且還涉及圖象采集、圖象識別等領域,占用系統(tǒng)資源較多,算法較復雜。

第二種是采用反射式紅外光電傳感器,以一定的頻率向CPU提供路面標志信號。CPU經過比較處理,粗略判斷出小車所處的相對位置。該傳感器體積小,價格便宜,使用方便,而且該方案占用系統(tǒng)資源較少,算法較易實現(xiàn)。故我們在本設計中采用了這種傳感器,鑒于車底盤較低,采用近距離(2cm4cm)有效的傳感器。工作原理如圖2.1所示:

發(fā)射路

接收探測距離圖2.1傳感器工作原理圖

反射式光電傳感器有發(fā)射管和接收管組成,工作時由發(fā)射管發(fā)射紅外線,經被探測物體面反射,反射的紅外線由接收管接收,接收管把接收的物理信號轉換成電信號。被檢測物體表面的顏色和粗糙程度影響反射光的強弱,反射面越不光滑,顏色越暗,反射光就會越弱。我們這里就是要運用紅外光電傳感器對顏色敏感的特點,當檢測物體表面的顏色為黑色時,反射光很弱,接收管接收的光線可以忽略,使接收管處于一種狀態(tài),例如開關管截止;當檢測物體表面的顏色為白色時,反射光較強烈。使接收管處于另一種狀態(tài),例如開關管導通。這兩種相反的狀態(tài)表現(xiàn)在電路中就是高低電平組成的脈沖信號。這個脈沖信號就是控制系統(tǒng)的輸入信號,并且設高電平的輸入信號為1低電平信號輸入為0。通過編寫控制算法,根據(jù)傳感器搜集的路況信息,調節(jié)PWM的占空比,控制舵機和驅動電機,實現(xiàn)小車的智能控制。

第二章:硬件部分

2.2.2傳感器的布置方案

為了減弱外界光線對反射式紅外光電傳感器的影響,且考慮到小車底盤較低,我們把傳感器放置在設計的電路板下,垂直探測地面。傳感器的布置方案有單排、雙排、W字形排列等。由于W字形排列的算法比較復雜,我們只考慮了單排布置和雙排布置的方案。

首先我們選用了單排布置,也就是在車模的頭部安裝一塊電路板,其底部安裝8個傳感器。通過對傳感器探測到黑色導航線的情況的分析,我們用編碼的形式把傳感器探測到的路面信息表示出來。然后把這些路況信息輸入到控制系統(tǒng)通過編寫的控制算法就可以控制舵機和驅動電機,實現(xiàn)智能車的加速、減速、左轉、右轉了。通過不斷的實驗,來進一步地調整各種編碼下,智能車要轉的角度的參數(shù)。但是這種控制算法對智能車進行控制時,并沒有考慮速度對其轉向的影響,只是簡單地在轉彎時減速,在直道時加速。因此在實驗中發(fā)現(xiàn)智能車在跑道上慢速行駛時還能比較平穩(wěn)的跑完全程,其速度稍微加大時,智能車在拐彎處即使進行了減速,也會由于慣性常會飛出跑道。改進的方法有二:一是改進算法,采用PID控制算法,它可以解決車輛行駛速度與轉向角度大小的相關性問題,行駛軌跡的跟蹤及預測問題;二是增大傳感器的預描距離,進入彎道時提前減速。我們就雙管齊下,增大了傳感器探測電路板伸出智能車的距離。同時為了獲得PID控制算法比較準確地輸入量,就在前排的后面又安裝了一塊電路板,并在它的下面安裝了6個傳感器,采集更多的信息。最終我們采用了雙排布置,即在智能車的頭部安裝了前、后兩塊電路板。其形狀及尺寸如圖2.2(單位:毫米)所示:

圖2.2

兩塊電路板的布置如圖2.3所示:在前排電路板上任意兩個相鄰的傳感器的中心距離位2.5cm;在后排電路板上,中間兩個傳感器的中心距離為5.0cm,其余的相鄰兩傳感器間的距離也為2.5cm。前后兩塊電路板傳感器分布所在直線間的

第一屆全國大學生智能汽車邀請賽技術報告

垂直距離為10.8cm。

2.2.3傳感器信號探測及處理電路

圖2.3

傳感器信號探測及處理電路設計如圖2.4所示:

圖2.4

D1為紅外光電傳感器的發(fā)射管,D2為其接收管。D1發(fā)射紅外線,D2接收信號,判斷是否有反射信號。如果有則D2輸出高電平,如果沒有則輸出低電平,信號經過三極管、集成運放器輸出到CPU的PORTA或PORTB。14個傳感器獲得的信號并行輸入單片機,從而把路面信息反饋到控制系統(tǒng),實現(xiàn)對智能車的控制。制作電路板后,要把探測電路上的元件一一對應地焊接到電路板上。焊接電阻時,要注意防止虛焊;焊接插件時要注意避免兩個焊接點連接在一起造成短路;焊接發(fā)光二極管和接收二極管前要用萬用表測量一下極性,防止將二極管反向安裝。

2.3系統(tǒng)電路板的設計、安裝與連接

第二章:硬件部分

我們沒有采用主辦方提供了核心S12的電路板,自行設計了系統(tǒng)電路板。首先核心S12電路板體積比較大,既不方便在智能車上安裝,也不美觀;其次在核心S12電路板上找到正確的引腳插線,也顯得比較復雜。我們設計的系統(tǒng)電路板就解決了這方面的問題,可以把它很方便地固定在智能車的底盤上,并制作了轉用的插槽(如圖2.2所示)。我們制作了以MC9S12DG128芯片為核心,并附以復位電路、晶體振蕩器及時鐘電路、+5V的電源、驅動電機的供電插座、單片機引腳插槽以及其他一些常規(guī)電子元件組成的系統(tǒng)控制電路。系統(tǒng)控制電路原理圖如圖2.5所示:

圖2.5

2.4驅動電機和舵機

傳感器信息電機MC9S12DG128加減速MC33886PID算法PWM波舵機轉向圖2.6舵機和電機工作原理原理圖

第一屆全國大學生智能汽車邀請賽技術報告

驅動電機和舵機是智能車整個系統(tǒng)的執(zhí)行部件。以MC9S12DG128芯片為核心的控制系統(tǒng)由傳感器獲得路面信息,通過PID控制算法來調節(jié)舵機和驅動電機的PWM的占空比,控制智能車的轉向和車速。其工作原理圖2.6所示。本次比賽要求不得對驅動電機和舵機進行改造,本文對其不再贅述。

2.5主要車模參數(shù)

a)車重:1.1kg長:384mm寬:185mm高:77mm

b)電路功耗:所有電容總容量:1900uFc)傳感器種類:反射式紅外光電傳感器數(shù)目:14d)伺服電機個數(shù):0

e)賽道信息檢測精度:6mm頻率:1000Hz

第三章:軟件部分

3.1控制算法

本智能車輛的控制算法部分主要需解決如下問題:車輛直線行駛的穩(wěn)定性問題,車輛轉彎控制問題,車輛行駛速度與轉向角度大小的相關性問題,行駛軌跡的跟蹤及預測問題等。為了更好的解決設計中存在的問題,本方案采用了目前自動控制領域中最常用的控制算法PID控制算法進行車輛行駛控制。3.1.1理論介紹

PID控制算法包括直接計算法和增量算法,所謂的增量算法就是相對于標準的相鄰兩次運算之差,得到的結果是增量。也就是說在上一次的控制量的基礎上需要增加(負值意味著減少)控制量,例如對于智能小車控制算法,就是智能小車相對于上一次轉向角度還需要增加或減少的轉向角度。在本方案的設計中采用了PID直接計算法。

(一)PID算法中常用概念解釋如下:1、基本偏差e(t)

表示當前測量值與設定目標間的差,設定目標是被減數(shù),結果可以是正或負,正數(shù)表示還沒有達到,負數(shù)表示已經超過了設定值。這是面向比例項用的變動數(shù)據(jù)。

2、累計偏差:e(t)e(t)e(t1)e(t2)...e(1)公式1

表示每一次測量到的偏差值的總和,這是代數(shù)和,是面向積分項用的一個變動數(shù)據(jù)。

3、基本偏差的相對偏差e(t)-e(t-1)

表示用本次的基本偏差減去上一次的基本偏差,用于考察當前控制對象的趨勢,作為快速反應的重要依據(jù),這是面向微分項的一個變動數(shù)據(jù)。4、三個基本參數(shù):Kp,Ki,Kd

這三個參數(shù)是做好控制器的關鍵常數(shù),分別稱為比例常數(shù)、積分常數(shù)和微分常數(shù),不同的控制對象需要選擇不同的數(shù)值,還需要經過現(xiàn)場調試才能獲得較好的效果。

5、標準的直接算法公式

Pout(t)Kp*e(t)Ki*e(t)Kd*(e(t)e(t1))公式2(二)三個基本參數(shù)Kp,Ki,Kd在實際控制中的作用:

比例調節(jié)作用:是按比例反映系統(tǒng)的偏差,系統(tǒng)一旦出現(xiàn)了偏差,比例調節(jié)立即產生調節(jié)作用用以減少偏差。比例作用大,可以加快調節(jié),減少誤差,但是過大的比例,使系統(tǒng)的穩(wěn)定性下降,甚至造成系統(tǒng)的不穩(wěn)定。

積分調節(jié)作用:是使系統(tǒng)消除穩(wěn)態(tài)誤差,提高無差度。因為有誤差,積分

第一屆全國大學生智能汽車邀請賽技術報告

調節(jié)就進行直至無差,積分調節(jié)停止,積分調節(jié)輸出一常值。積分作用的強弱取決于積分時間常數(shù)Ti,Ti越小,積分作用就越強。反之Ti越大則積分作用越弱,加入積分調節(jié)可使系統(tǒng)穩(wěn)定性下降,動態(tài)相應變慢。積分作用常與另兩種調節(jié)規(guī)律結合,組成PI調節(jié)器或PID調節(jié)器。

微分調節(jié)作用:微分作用反映系統(tǒng)偏差信號的變化率,具有預見性,能預見偏差變化的趨勢,因此能產生超前的控制作用,在偏差還沒有形成之前,以被微分調節(jié)作用消除。因此,可以改善系統(tǒng)的動態(tài)性能。在微分時間選擇合適情況下,可以減少超調,減少調節(jié)時間。微分作用對于噪聲干擾有放大作用,因此過強的加微分調節(jié),對系統(tǒng)抗干擾不利。此外,微分反應的是變化率,而當輸入沒有變化時,微分作用輸出為零。微分作用不能單獨使用,需要與另外兩種調節(jié)規(guī)律相結合,組成PD或PID控制器。(三)智能車輛PID控制算法中參數(shù)的選擇

此次參賽的智能車輛主要是尋跡行駛,控制算法所要做的就是控制車輛沿著預先設計好黑線行駛,保證車輛中心線在黑線上。在行駛過程中,由于車輛轉向造成車輛中心與黑線有一定的偏差量,我們就選擇這一偏差量作為輸入的偏差。本設計方案中以前排電路板的中心為車輛中心線所在位置,在車輛行駛過程中,當某一傳感器感應到黑線位置時,就以該傳感器與電路板中心的距離作為車輛的行駛偏差,以此做為PID控制器的輸入量。如圖3.1所示:

通過直接算法公式(公式2)計算出t時刻智能車的控制轉向角,由此達到對智能車轉向進行控制的目的。但是由于輸入量取值是由傳感器的位置決定,而傳感器的數(shù)量又是有限的,所以我們只能獲得有限的精確輸入量,這樣通過控制算法得出的控制轉角就不是很理想。為了改善控制算法中輸入量不連續(xù)的問題,我們引入車速作為算法輔助輸入量。通過車速、車輛上一次轉角、車輛長度等值之間的數(shù)學關系,可以計算出車輛中心與黑線中心在一次傳感器采樣周期內的偏差,以此值與傳感器采樣值之間做比較,從而獲得比較理想的偏差值,為控制算法找到較理想的輸入量。車速、車輛上一次轉角、車輛長度等數(shù)值之間

8

傳感器車輛中e(t)中心黑線圖3.第三章:軟件部件

的關系可由圖3.2導出:經過△t時間后車輛轉過的角度為

vt180R12公式3(0是車輛上一時刻的轉角。)公式4

R120cos0sin0

由圖上各值的幾何關系可知:

圖3.2

a1800arctanb902arctan2L1L2L1L2公式5

2公式6

22arccosR22R2L1L2R12R222L1L2222公式7

2L1L2R12R12L1L2cosa公式8

C2R2sin公式9

10

LCsinb公式

最后計算出的L即為經過t時間后車輛中心的橫向位移,將此值與傳感器獲得的車輛中心與黑線的偏差進行比較,得到我們需要的輸入量。

通過輸入量與輸出量之間的比較,初步定下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}})第一屆全國大學生智能汽車邀請賽技術報告

Kd的值,然后通過實驗找到合適的三個控制參數(shù)值。3.1.2程序實現(xiàn)

數(shù)值分析和變量之間的聯(lián)系我們通過以上的分析過程已經基本了解,要通過程序將以上過程實現(xiàn)并達到預期的效果,還需要做一些準備工作。首先是將轉向舵機和驅動電機的驅動程序設計好,然后測出智能車的最大行駛速度和最大轉角,量出車輛軸距以及程序設計中需要用的一些參數(shù)。完成這些準備工作之后,畫出程序流程圖,如圖3.3所示:

開始

定義變量和函數(shù)并初始化數(shù)據(jù)

檢測端口值的變化并記錄到變量中

否是傳感器的檢

測值=0?

進行數(shù)值編碼調用PID函數(shù)輸出控制角度和

調用轉向函數(shù)和調速函數(shù),調整車速和

轉速角否程序是否結束

程序結束圖3.3

圖3.3

通過程序流程圖,很快就可以確定下來編程方案,按照結構化程序設計的要求,對程序中的函數(shù)都進行模塊化設計,保證程序的可讀性和易維護性,實現(xiàn)預期的設計目的。

3.2代碼設計

通過以上分析,我們在編程時需要解決以下問題:

第三章:軟件部分

(1)PID控制算法的程序實現(xiàn)(2)基本計算函數(shù)的編程實現(xiàn)

(3)輸入輸出量與PID算法之間的結合(4)變量之間數(shù)據(jù)類型的變化

根據(jù)以上的問題提出了下述解決方法:

(1)定義PID計算的結構體如下:typedefstructPID{

floatSetPoint;//設定目標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;//當前微分pp->PrevError=pp->LastError;pp->LastError=Error;

return(pp->Proportion*Error//比例項+pp->Integral*pp->SumError//積分項+pp->Derivative*dError//微分項);}

floatR(floatx)//計算車輛轉彎半徑{float

resu=200.0*(cosf(x*3.1415926/180.0))*(cosf(x*3.1415926/180.0))/(sinf(x*3.1415926/180.0));

returnresu;

第一屆全國大學生智能汽車邀請賽技術報告

}

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)//計算車輛中心點轉彎半徑{

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ù)之間的關系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}})

第四章:結論

4.1主要性能

總體上,智能車已經實現(xiàn)了加速、減速、轉向、剎車的基本功能,能夠沿黑色導航線比較平穩(wěn)、快速地行駛了。

本智能車輛的控制算法部分主要解決如下問題:車輛直線行駛的穩(wěn)定性問題,車輛轉彎控制問題,車輛行駛速度與轉向角度大小的相關性問題,行駛軌跡的跟蹤及預測問題等。PID控制算法就可以解決這些問題。它有諸多優(yōu)點:1)我們采用狀態(tài)控制。在每個很小的一段時間內,認為車輛狀態(tài)不變,因而在這段時間內可將車輛作靜態(tài)處理。轉向目的就是減小小車所在的中心線與車輛行駛的黑色導航線的靜態(tài)誤差。狀態(tài)控制不考慮時間過程,而注重調整前后的狀態(tài)變化。實際應用過程中,當時間足夠小時,由于執(zhí)行機構的響應能力遠遠低于單片機的運行速度,實際控制操作效果就如同連續(xù)控制一樣,保證了控制的準確性。2)控制輸出不要求最優(yōu)。從實際情況可知,在相同的情況下,同一駕駛員兩次控制的結果可能不盡相同的,具有一定的隨機性,但結果都能完成所要求的任務。因此,對于本智能車的控制輸出的轉向角,不要求它在當前位置是最優(yōu)的,而只要求它滿足兩個條件,即方向正確,轉向角度合理。3)控制算法交易實現(xiàn)。比較其他比較復雜的算法,如最優(yōu)控制必須考慮時間的過程,因而需要了解各執(zhí)行機構的動態(tài)響應特性,以獲得準確的傳遞函數(shù)。而本文提供的算法只需要車輛當前的狀態(tài)信息,即小車的當前位置(由傳感器提供)與小車所應處的位置(由算法提供),即可得到轉向控制角。整個過程不涉及執(zhí)行機構的動態(tài)響應函數(shù),從而降低了難度。

4.2改進方向

本控制算法還存在一些不足:1)由于傳感器的預描距離。10cm左右),隨著車速的提高,要求控制的頻率提高。由于系統(tǒng)硬件的限制很難滿足高速情況下的轉向控制的要求。2)作為輔助輸入量的速度并不十分準確,所取的速度是算法賦予小車的速度,并非小車的真實速度。不同的路面,不同的轉向對小車的速度都會產生影響,而這些影響是很難量化的。3)算法中參數(shù)的調整完全依靠實驗人工標定,工作量比較大。這些問題都亟待解決。

":null,"page":{"ph":1263.375,"pw":893.25,"v":6,"t":"1","pptlike":null,"cx":0,"cy":0,"cw":893.25,"ch":1263.375}})

參考文獻

01.自動控制原理/蔣大名、戴勝華主編。北京:清華大學出版社、北方交通大學出版

社,201*.6

02.現(xiàn)代傳感技術/魏永廣著。東北大學出版社,201*.4

03.C程序設計:第2版/譚浩強著。北京:清華大學出版社,201*.6

04.單片機嵌入式應用的在線開發(fā)方法/邵貝貝著。北京:清華大學出版社,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;

10

tt=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

友情提示:本文中關于《光交換技術綜合報告》給出的范例僅供您參考拓展思維使用,光交換技術綜合報告:該篇文章建議您自主創(chuàng)作。

來源:網絡整理 免責聲明:本文僅限學習分享,如產生版權問題,請聯(lián)系我們及時刪除。


光交換技術綜合報告》由互聯(lián)網用戶整理提供,轉載分享請保留原作者信息,謝謝!
鏈接地址:http://www.seogis.com/gongwen/735850.html
相關文章