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

?

智能循跡小車的設(shè)計(jì)與實(shí)現(xiàn)

2014-10-10 18:17:01許思維強(qiáng)俊
電腦知識(shí)與技術(shù) 2014年24期
關(guān)鍵詞:PID算法控制

許思維 強(qiáng)俊

摘要:針對(duì)大學(xué)生學(xué)科競(jìng)賽的熱點(diǎn)項(xiàng)目,設(shè)計(jì)了一款速度快、運(yùn)行穩(wěn)定、循跡精度高的基于光電傳感器的智能小車。通過(guò)對(duì)整體硬件結(jié)構(gòu)設(shè)計(jì),PID算法設(shè)計(jì),實(shí)現(xiàn)了對(duì)智能小車的路徑控制,速度控制和穩(wěn)定性控制。實(shí)驗(yàn)表明,該設(shè)計(jì)方案能結(jié)合賽道的實(shí)際情況,高速、穩(wěn)定、準(zhǔn)確的完成比賽。

關(guān)鍵詞:智能循跡小車;光電傳感器;PID算法;控制

中圖分類號(hào):TP18 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)24-5746-04

循跡小車的設(shè)計(jì)與制作是現(xiàn)在大學(xué)生學(xué)科競(jìng)賽的一個(gè)熱點(diǎn)項(xiàng)目。智能循跡小車實(shí)際上是智能機(jī)器人的另一種表現(xiàn)形式,輪子相當(dāng)于機(jī)器人的雙腿,雖然它在機(jī)械設(shè)計(jì)和電路方面以及控制系統(tǒng)都比智能機(jī)器人較為簡(jiǎn)單,但是其對(duì)行車速度和行駛方向的配合則要求較嚴(yán)格,通常在比賽中要求小車能沿著與地面具有明顯對(duì)比度的黑色或白色引導(dǎo)線前進(jìn),通過(guò)傳感器獲取目標(biāo)道路信息,然后結(jié)合智能小車當(dāng)前的行駛狀態(tài)做出決策,對(duì)其行駛方向與行車速度進(jìn)行調(diào)整,從而達(dá)到準(zhǔn)確快速跟蹤道路的目的。本系統(tǒng)是由12V鉛酸蓄電池供電,7路光敏電阻傳感,后兩輪驅(qū)動(dòng),STC51單片機(jī)控制的自主循跡機(jī)器人系統(tǒng)。

1 智能循跡小車硬件結(jié)構(gòu)設(shè)計(jì)

機(jī)器人通過(guò)STC51單片機(jī)的AD轉(zhuǎn)換功能實(shí)現(xiàn)數(shù)據(jù)采集,通過(guò)STC單片機(jī)的PCA/PWM實(shí)現(xiàn)控制電機(jī)轉(zhuǎn)度,通過(guò)執(zhí)行存儲(chǔ)在用戶程序區(qū)的程序?qū)崿F(xiàn)對(duì)采樣數(shù)據(jù)的后續(xù)加工以及對(duì)電機(jī)的控制,從而對(duì)車體的實(shí)時(shí)控制。

整體硬件結(jié)構(gòu)設(shè)計(jì)主要包括輸入輸出模塊、電機(jī)驅(qū)動(dòng)模塊、通信模塊、傳感器模塊和電源。

1.1 輸入輸出模塊

1.4 傳感器模塊

LED支路為光敏電阻的探測(cè)過(guò)程提供了光源,光敏電阻與一個(gè)33kΩ的定值電阻串聯(lián)構(gòu)成另一支路;LED發(fā)出的光線經(jīng)賽道表面反射后會(huì)有相當(dāng)一部分照射在光敏電阻表面;因而光敏電阻的阻值會(huì)隨賽道表面的反光程度的變換而變化。單片機(jī) A/D轉(zhuǎn)換 引腳接在光敏電阻與定值電阻之間,因此能夠?qū)崟r(shí)測(cè)得光敏電阻所分得的電壓值(A/D轉(zhuǎn)換的返回值并非電壓值,而是一個(gè)和電壓成正比例關(guān)系的8位或10位整數(shù)值)。所以,單片機(jī)就能夠?qū)崟r(shí)提取賽道表面信息。

1.5 電源

圖中電源驅(qū)動(dòng)為L(zhǎng)M7805, 接口對(duì)應(yīng)關(guān)系:J9為電源開(kāi)關(guān),J10為電源插頭。LED D6為電源指示燈。

2 算法設(shè)計(jì)

控制系統(tǒng)角度分析,機(jī)器人系統(tǒng)共有7個(gè)輸入(7路傳感器返回值)2個(gè)輸出(兩個(gè)電機(jī)的PWM)。只需完成將7路傳感器返回值處理為黑線的位置值,系統(tǒng)即轉(zhuǎn)即變?yōu)?個(gè)輸入2個(gè)輸出。而該位置信息經(jīng)PID算法計(jì)算可得一個(gè)輸出值,只需實(shí)現(xiàn)PID算法輸出到兩電機(jī)PWM的轉(zhuǎn)換,即可實(shí)現(xiàn)控制程序。并加入無(wú)線控制,可以實(shí)現(xiàn)無(wú)線啟動(dòng)。

2.1 狀態(tài)集定義

程序中涉及三種狀態(tài):傳感器狀態(tài)(Sensor State),采樣狀態(tài)(Sample State),賽道狀態(tài)(Line State)。每次采樣,由每個(gè)傳感器的返回值即可判斷出傳感器狀態(tài);由本次采樣的7個(gè)傳感器的返回值能夠判斷出采樣狀態(tài);由相鄰兩次采樣狀態(tài)就能判斷出賽道狀態(tài)。

enum SampleState { // 采樣狀態(tài)

SS_MISS, // 丟失,miss

SS_NORM, // 正常,normal

SS_HORI, // 橫線,horizontal

SS_UNKNOW

} state, // 當(dāng)前采樣狀態(tài)

last_state; // 上次采樣狀態(tài)

enum LineState { // 黑線狀態(tài)

LS_NORMAL,

LS_TRUN_L,

LS_TRUN_R,

LS_UNKNOW

}ls_state;

2.2狀態(tài)信息提取

傳感器狀態(tài)(Sensor State)只有兩種(黑或白),所以程序中并沒(méi)有定義相應(yīng)的數(shù)據(jù)類型。由于不同傳感器具有差異,直接用A/D轉(zhuǎn)換的結(jié)果計(jì)算狀態(tài)(固定閥值)的誤差較大。為了避免傳感器差異造成的影響,我們采用了相對(duì)閥值法,具體過(guò)程為:

在DEBUG狀態(tài)編譯后,讓每個(gè)傳感器在賽道上進(jìn)行掃描,分別記錄每個(gè)傳感器輸出的最大值max(對(duì)應(yīng)讀到黑線中心的情況)和最小值min(對(duì)應(yīng)遠(yuǎn)離黑線讀到白色賽道的情況),寫入程序Sb[],Sw[]數(shù)組中;調(diào)試選項(xiàng)改為OL_DEBUG重新編譯,程序運(yùn)行時(shí),用每個(gè)傳感器的當(dāng)前值sense[i]減去最小值Sw[i]的差除以最大值Sb[i]減去Sw[i]的差,即傳感器的相對(duì)值rat[i] = (sense[i] - Sw[i])/(float)(Sb[i]-Sw[i]);這樣就把7路傳感器的返回值處理為7個(gè)相對(duì)值,再與一個(gè)總結(jié)出的相對(duì)值閥值做比較即可判斷出每個(gè)傳感器的狀態(tài)值。

2.3 黑線定位(PID輸入)

為了保證控制精度,黑線的定位必須有足夠的精度。

這里采用相鄰比例法,即用兩個(gè)相鄰傳感器相對(duì)值的比例表示黑線到兩相鄰傳感器距離值的比例方法,具體流程為:

① 當(dāng)黑線在兩個(gè)傳感器之間(相鄰的兩個(gè)rat[i]>SPOT)時(shí),用兩傳感器相對(duì)值的比例表示黑線距離兩傳感器的距離值的比例;

② 當(dāng)黑線在邊緣時(shí)(rat[0]

2.4 PID算法及PID輸出適配器

我們的程序選擇了成熟的PID控制,用黑線位置值黑中心位置值(3.0)的差作為PID輸入,用PID輸出控制兩輪驅(qū)動(dòng)電機(jī)的PWM差值,實(shí)現(xiàn)小車的循跡跟隨。

如下所示:

PID輸出適配器,即實(shí)現(xiàn)從PID輸出到兩電機(jī)PWM值的轉(zhuǎn)換的一個(gè)配接器。示意圖及PID輸出到兩電機(jī)PWM輸出關(guān)系圖如下(負(fù)值表示反向):

3 實(shí)驗(yàn)結(jié)果

根據(jù)硬件設(shè)計(jì)方案及相關(guān)算法設(shè)計(jì),我們對(duì)智能小車進(jìn)行了多次實(shí)驗(yàn)

采用了三種定位方法進(jìn)行測(cè)試:

1) 利用以最大的rat[i]為中心的三個(gè)相鄰傳感器的相對(duì)值rat[i-1], rat[i], rat[i+1]帶入二次函數(shù)求對(duì)稱軸的方法;

2) 利用以最大的rat[i]為中心的三個(gè)相鄰傳感器的相對(duì)值rat[i-1], rat[i], rat[i+1], 用(rat[i]-rat[i-1] ) : (rat[i]-rat[i+1]) 近似表示黑線偏離傳感器i的比例;

3) 利用7個(gè)傳感器相對(duì)值與編號(hào)的加權(quán)平均值表示位置;

實(shí)驗(yàn)表明幾種方法都能解決得到相對(duì)連續(xù)的位置值,但是都存在問(wèn)題,結(jié)果存在一定的跳躍性。同時(shí)針對(duì)黑白交界位置不穩(wěn)定的問(wèn)題,將黑線定位改為由相鄰兩個(gè)傳感器的相對(duì)值計(jì)算,引入采樣狀態(tài),只有一或兩個(gè)檢測(cè)到黑是,狀態(tài)記為SS_NORM;發(fā)現(xiàn)一次又多個(gè)檢測(cè)到黑線時(shí),狀態(tài)記錄為SS_HORI,并判斷如果之前不為SS_HORI,就算作黑線。這種方法能夠得到相對(duì)連續(xù)、穩(wěn)定的位置值,解決了位置值的跳躍問(wèn)題。小車的穩(wěn)定性得到很大的提升,速度自然也就得到了提高。在各類比賽場(chǎng)地的適應(yīng)中都未出現(xiàn)漂移和偏離軌道的現(xiàn)象。

4 總結(jié)

循跡智能小車的設(shè)計(jì),精度和穩(wěn)定性都是決定小車最終成績(jī)的重要因素。該文詳細(xì)介紹了硬件設(shè)計(jì)和控制算法設(shè)計(jì),以及在實(shí)驗(yàn)的調(diào)試過(guò)程。在黑線定位方法調(diào)整為對(duì)相鄰兩個(gè)傳感器的相對(duì)值計(jì)算之后,小車的靈敏度和準(zhǔn)確性得到了極大的提高,同時(shí)PID算法的加入,小車的穩(wěn)定性也得到了提高。

參考文獻(xiàn):

[1] 何用輝.復(fù)雜場(chǎng)地環(huán)境下機(jī)器人光電循跡系統(tǒng)研究與設(shè)計(jì)[J].重慶理工大學(xué)學(xué)報(bào):自然科學(xué),2012(10):46-50.

[2] 朱濤.基于STC89C52單片機(jī)的智能循跡小車設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2011(31):7751-7753,7758.

[3] 高月華.基于紅外光電傳感器的智能車自動(dòng)循跡系統(tǒng)的設(shè)計(jì)[J].光電技術(shù)應(yīng)用,2009(2):1-5.

[4] 何立民.基于HCS12的小車智能控制系統(tǒng)設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(3):51-53,57.

[5] 李維軍,韓小剛,李晉.基于單片機(jī)用軟件實(shí)現(xiàn)直流電機(jī)PWM調(diào)速系統(tǒng)[J].機(jī)電一體化,2004,10(5):49-51.

[6] 郭天祥.51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2011.

[7] 揚(yáng)興友,朱宏輝.單片微型計(jì)算機(jī)原理及接口技術(shù)[M].北京:中國(guó)水利水電出版社,2002.

[8] 王秋爽,曾兆龍.單片機(jī)開(kāi)發(fā)基礎(chǔ)與經(jīng)典設(shè)計(jì)實(shí)例[M].北京:機(jī)械工業(yè)出版社,2008.

猜你喜歡
PID算法控制
基于LabVIEW的旋轉(zhuǎn)倒立擺系統(tǒng)設(shè)計(jì)
基于STM32的風(fēng)力擺控制系統(tǒng)
關(guān)于工程項(xiàng)目成本管理的分析
社會(huì)轉(zhuǎn)型期行政權(quán)控制的路徑探索
科技視界(2016年21期)2016-10-17 17:06:18
淺析應(yīng)收賬款的產(chǎn)生原因和對(duì)策
商(2016年27期)2016-10-17 05:41:05
會(huì)計(jì)預(yù)算控制現(xiàn)狀及方法
淺談高層建筑沉降監(jiān)測(cè)關(guān)鍵環(huán)節(jié)控制
科技視界(2016年20期)2016-09-29 13:07:14
保險(xiǎn)公司財(cái)務(wù)風(fēng)險(xiǎn)管理及控制研究
風(fēng)力擺控制系統(tǒng)
基于K60的智能循跡小車系統(tǒng)實(shí)現(xiàn)
新乐市| 涪陵区| 绥中县| 丹阳市| 大同县| 华蓥市| 乐清市| 莫力| 江津市| 锡林郭勒盟| 环江| 玉林市| 融水| 岢岚县| 天门市| 遵义县| 琼结县| 准格尔旗| 甘洛县| 县级市| 徐州市| 宁蒗| 宜良县| 遂宁市| 苗栗县| 福建省| 精河县| 定兴县| 达日县| 固始县| 晋中市| 宾阳县| 玉田县| 淅川县| 南宫市| 郸城县| 麦盖提县| 铜山县| 海伦市| 徐汇区| 井陉县|