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

?

基于閉環(huán)控制算法和PID優(yōu)化算法的智能小車軟件系統(tǒng)設(shè)計(jì)

2016-05-14 10:33:52李碧月
軟件工程 2016年9期
關(guān)鍵詞:智能小車PID控制閉環(huán)控制

摘 要:在全國(guó)大學(xué)生“飛思卡爾”杯智能汽車競(jìng)賽的背景下,設(shè)計(jì)出一種能夠自動(dòng)識(shí)別路徑、跟蹤賽道雙邊引導(dǎo)線的智能小車軟件控制系統(tǒng)。智能小車以飛思卡爾(Freescale)公司的MC9S12XS128為檢測(cè)和控制核心,根據(jù)不同的環(huán)境狀況動(dòng)態(tài)確定黑白二值化閾值之后,對(duì)攝像頭采集到的圖像進(jìn)行處理,從而準(zhǔn)確判斷不同類型的賽道,進(jìn)一步控制舵機(jī)和電機(jī)。使用舵機(jī)轉(zhuǎn)向閉環(huán)控制算法和電機(jī)速度閉環(huán)控制算法,結(jié)合經(jīng)典的PID控制算法,實(shí)現(xiàn)直道加速、彎道減速的優(yōu)化。智能小車最終可以在黑色雙邊引導(dǎo)線的白色背景賽道上自動(dòng)識(shí)別路徑行駛。

關(guān)鍵詞:智能小車;MC9S12XS128;圖像處理;閉環(huán)控制;PID控制

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:Under the background of "Freescale" cup national college students smart car competition,design a control system software.Under this system,the smart car can automatically identify paths and trace the track of bilateral guide line.Tracking smart car system is designed based on the control chip of system of Freescale MC9S12XS128 MCU.After determine the black and white binarization threshold according to the different environmental conditions,run a series of processing on the images captured by the camera.Then,make an accurate judgment in the different shapes of the circuit to further control of steering gear and motor.Using steering gear steering closed-loop control algorithm and motor speed closed-loop control algorithm,combined with the classic PID control algorithm to achieve optimization of car was straight-line acceleration,deceleration in bend.Smart car could eventually automatically identify route which has the bilateral guide line of the white on black background and run steadily.

Keywords:smart car;MC9S12XS128;image processing;closed-loop control;PID control

1 引言(Introduction)

智能車控制系統(tǒng)的設(shè)計(jì)以汽車電子為背景,涵蓋自動(dòng)控制、模式識(shí)別、傳感技術(shù)、計(jì)算機(jī)、機(jī)械與汽車工程等多門學(xué)科,是一項(xiàng)新興的綜合性技術(shù)。智能車系統(tǒng)是智能汽車的迷你版本,二者在信息提取及處理、控制系統(tǒng)構(gòu)成和控制方案整定方面有諸多相似之處,可以說(shuō)智能車系統(tǒng)是智能汽車良好的實(shí)驗(yàn)平臺(tái)。

智能車系統(tǒng)主要包括三個(gè)大部分,分別為車??傮w機(jī)械結(jié)構(gòu)、硬件電路系統(tǒng)、軟件算法控制系統(tǒng)。如果說(shuō)硬件是智能車行駛的基礎(chǔ),那么程序算法就是靈魂。高效的程序則是智能車高速平穩(wěn)自動(dòng)尋跡的基礎(chǔ)。

2 系統(tǒng)總體設(shè)計(jì)(General design of system)

2.1 概述

智能小車控制系統(tǒng)采用飛思卡爾公司的16位單片機(jī)MC9S12XS128為檢測(cè)和控制核心[1]。以COMS數(shù)字?jǐn)z像頭OV7620為路徑檢測(cè)傳感器,以歐姆龍500線編碼器為速度檢測(cè)傳感器,根據(jù)攝像頭檢測(cè)到的賽道信息[2],以及編碼器采集到的小車速度信息,基于XS128單片機(jī)通過(guò)智能小車軟件控制系統(tǒng)對(duì)小車進(jìn)行舵機(jī)轉(zhuǎn)向和電機(jī)驅(qū)動(dòng)的控制,使智能車系統(tǒng)達(dá)到所需的穩(wěn)定性及快速性要求,從而實(shí)現(xiàn)小車的智能化行駛,如圖1所示。

2.1.1 需求規(guī)定

(1)在小車功能方面

最終完成的基于攝像頭傳感器的智能小車,要能夠做到在此軟件控制系統(tǒng)的支撐下,完成按規(guī)則繞賽道運(yùn)行一周的任務(wù)。在準(zhǔn)確識(shí)別賽道并穩(wěn)定運(yùn)行一周的基礎(chǔ)上[3],期望小車的速度越快越好,即完成比賽的用時(shí)越短越好。

(2)在小車性能方面

第一,要求智能小車軟件控制系統(tǒng)應(yīng)具有良好的運(yùn)行效率,行駛速度盡可能快,能夠快速準(zhǔn)確判斷出不同類型的彎道,并及時(shí)躲避在賽道上的障礙物;第二,應(yīng)具有良好的靈活性,使行駛速度、自身調(diào)整角度都可以靈活改變;第三,應(yīng)提供良好的測(cè)試模式,使設(shè)計(jì)人員可以方便的觀察、調(diào)整的小車運(yùn)行模式;第四,應(yīng)具有良好的可擴(kuò)展性,從而為日后升級(jí)系統(tǒng)提供方便。

2.1.2 運(yùn)行環(huán)境

2.2 系統(tǒng)各模塊設(shè)計(jì)

2.2.1 基于核心板MC9S12XS128的主程序(main函數(shù))設(shè)計(jì)

(1)流程圖(圖2)

PLL_Init( ):初始化鎖相環(huán)函數(shù);

SCI_Init( ):串口初始化函數(shù);

PIT_Init( ):PIT定時(shí)器中斷初始化函數(shù);

PWM_Init( ):脈沖寬度調(diào)試模塊初始化函數(shù);

PH_Init( ):初始化單片機(jī)PH口函數(shù)(用于接收編碼器測(cè)速信息);

OV7620_Init( ):初始化攝像頭函數(shù)(用于OV7620信息采集)。

2.2.2 圖像采集模塊

(1)流程圖(圖3)

(2)定義

存儲(chǔ)原始圖像矩陣的二維數(shù)組:Image_Data[ROW][LIN]。

(3)解釋

攝像頭是智能車的眼睛,我們將采用數(shù)字?jǐn)z像頭進(jìn)行賽道采集,在采集時(shí),我們利用行、場(chǎng)中斷進(jìn)行數(shù)據(jù)采集。在每次捕捉到40個(gè)行中斷之后,觸發(fā)一次場(chǎng)中斷,其中,在行中斷的中斷子函數(shù)中利用單片機(jī)讀出圖像數(shù)據(jù)。由于單片機(jī)的處理能力有限,所以不能對(duì)攝像頭的一場(chǎng)圖像中所有行的所有像素點(diǎn)都進(jìn)行處理,但為了獲得理想的賽道信息和足夠的前瞻量,需要通過(guò)多次實(shí)驗(yàn),需要選擇出合適的行和每一行中需要采集的像素點(diǎn)數(shù)。最終,將所采集的數(shù)據(jù)存在一個(gè)二維數(shù)組中,得到原始的圖像矩陣,以便后續(xù)處理。

2.2.3 圖像處理模塊

(1)流程圖(圖4)

(2)定義

BEST_THRESHOLD( ):確定最佳黑白二值化閾值函數(shù)。

(3)解釋

在圖像處理模塊,為了能夠做到識(shí)別不同光線環(huán)境下的賽道,首先需要確定一個(gè)合適的黑白二值化閾值,確定閾值后,在保持原始圖像矩陣大小不變的前提下,對(duì)其進(jìn)行均值濾波,在此算法基礎(chǔ)上對(duì)原始圖像進(jìn)行二值化處理,從而達(dá)到降噪的目的,最終通過(guò)攝像頭的上位機(jī)獲取到賽道的二值圖像。

2.2.4 電機(jī)驅(qū)動(dòng)模塊

(1)電機(jī)驅(qū)動(dòng)模塊采取速度閉環(huán)控制原理,結(jié)構(gòu)示意圖如圖5所示。

speed_error=setV-backV:本次速度的偏差值=設(shè)定速度值-編碼器讀回的小車實(shí)際速度值;

last_speed_error:上一次的速度偏差值;

pre_speed_error:上上次的速度偏差值;

derta_M:經(jīng)過(guò)PID控制器處理過(guò)后的速度改變量。

(3)解釋

取三次速度偏差值,經(jīng)過(guò)PID控制器的處理,得到處理后的速度改變量,作用在設(shè)定速度setV上,通過(guò)調(diào)整過(guò)后的PWM波來(lái)控制電機(jī)的轉(zhuǎn)動(dòng),使小車在不同類型賽道上行駛時(shí)有一個(gè)合適的速度。

2.2.5 舵機(jī)轉(zhuǎn)向模塊

(1)舵機(jī)轉(zhuǎn)向模塊采取運(yùn)動(dòng)方向閉環(huán)控制算法,結(jié)構(gòu)示意圖如圖6所示。

Error[S_ROW]:原始偏差數(shù)組;

angle_error=E2:本次角度的偏差值=處理后的偏差值E2;

last_angle_error:上一次的角度偏差值;

pre_angle_error:上上次的角度偏差值;

derta_S經(jīng)過(guò)PID控制器處理過(guò)后的角度改變量。

(3)解釋

通過(guò)獲取到的賽道信息,提取出賽道的中線,與圖像的中線進(jìn)行比較,將每一行的偏差值存儲(chǔ)在數(shù)組Error[S_ROW]中,使用加權(quán)算法得到偏差值E2,取三次角度偏差值(指E2),經(jīng)過(guò)PID控制器的處理,得到處理后的角度改變量,作用在舵機(jī)的參考零點(diǎn)上,通過(guò)調(diào)整過(guò)后的PWM波來(lái)控制舵機(jī)的轉(zhuǎn)向量。

2.2.6 調(diào)試模塊

為了能夠?qū)幋a器采集到的小車速度以及攝像頭采集到的賽道圖像進(jìn)行檢測(cè),還需要完善調(diào)試檢測(cè)模塊。實(shí)際使用中,我們將成品藍(lán)牙模塊與USB-TTL模塊連接并連接至電腦,將另一個(gè)藍(lán)牙模塊連接至單片機(jī)的UART1組,即S2、S3口,該口定義為TXD、RXD,通過(guò)串口SCI接收與發(fā)送數(shù)據(jù),接受到的數(shù)據(jù)我們通過(guò)上位機(jī)軟件,串口助手進(jìn)行接收。所接收到的圖像如圖7所示(以十字路口的識(shí)別為例)。

3.1 PID控制算法

3.1.1 PID控制算法簡(jiǎn)介

PID控制器是一種線性控制器,它根據(jù)給定值與實(shí)際輸出值構(gòu)成控制偏差。將偏差的比例(P)、積分(I)和微分(D)通過(guò)線性組合構(gòu)成控制量[4],對(duì)被控對(duì)象進(jìn)行控制,故稱PID控制器,原理框圖如圖8所示。

在計(jì)算機(jī)控制系統(tǒng)中,使用的是數(shù)字PID控制器,控制規(guī)律為

式中,:采樣序號(hào),=0,1,2,…;:第次給定值;:第次實(shí)際輸出值;:第次輸出控制量;:第次偏差;:第次偏差;:比例系數(shù);:積分時(shí)間常數(shù);:微分時(shí)間常數(shù);:采樣周期。

3.1.2 增量式PID

由上文中公式可得

得增量式PID控制算法公式

可以看出由于一般計(jì)算機(jī)控制系統(tǒng)采用恒定的采樣周期T,一旦確定了KP、KI、KD,只要使用前后三次量值的偏差,即可由上式求出控制增量[5]。

3.2 圖像采集時(shí)如何躲避消隱區(qū)

在攝像頭進(jìn)行圖像信息采集時(shí)會(huì)產(chǎn)生消隱區(qū)失真的問(wèn)題,故使用延時(shí)函數(shù),通過(guò)延時(shí)作用來(lái)跳過(guò)圖像采集時(shí)的消隱信號(hào),保證圖像不失真。

3.3 黑白二值化閾值的確定

要想從原始圖像數(shù)組中分離出白色賽道、黑色邊界和藍(lán)色的底布,必須在程序上設(shè)置一個(gè)灰度的閾值,當(dāng)像素點(diǎn)灰度值大于該閾值時(shí)為白色賽道,當(dāng)像素點(diǎn)灰度值小于該閾值時(shí)為非賽道,所以要將此值設(shè)置在藍(lán)色底布和白色賽道之間。但是由于比賽場(chǎng)地?zé)艄?,以及底布藍(lán)色深淺的不同,所界定的閾值也應(yīng)該相應(yīng)的改變,所以采用動(dòng)態(tài)閾值可以大大提高小車對(duì)比賽環(huán)境的適應(yīng)性[6]。

在此采用最大類間方差法:對(duì)原始圖像矩陣,記為前景與背景的分割閾值,前景點(diǎn)數(shù)占圖像比例為,平均灰度為;背景點(diǎn)數(shù)占圖像比例為,平均灰度為。圖像的總平均灰度為;從最小灰度值到最大灰度值遍歷,當(dāng)使得值最大時(shí),即為分割的最佳閾值。

3.4 圖像降噪時(shí)的均值濾波算法

為了使獲取到的圖像信息更加準(zhǔn)確,需要對(duì)原始的圖像進(jìn)行降噪處理,在這里我們使用均值濾波算法。均值濾波的基本原理是用平均值代替原圖像中的各個(gè)像素值,即對(duì)待處理的當(dāng)前像素點(diǎn)[7],選擇一個(gè)小窗口(如一個(gè)3×3的矩陣),該窗口由其近鄰的若干像素點(diǎn)組成,求窗口中所有像素點(diǎn)的平均值,再把該均值賦予當(dāng)前像素點(diǎn),作為處理后圖像在該點(diǎn)上的灰度,即為該模板中包含當(dāng)前像素點(diǎn)在內(nèi)的像素總個(gè)數(shù)。

在具體實(shí)現(xiàn)過(guò)程中,我們將在原始圖像矩陣中依次取3*3的矩陣,采用九宮格形式[8],將每一次計(jì)算的均值賦給該矩陣的左上角元素,得到處理過(guò)后圖像矩陣,根據(jù)動(dòng)態(tài)設(shè)定的閾值進(jìn)行二值化操作,得到最終的賽道的二值圖像。

3.5 電機(jī)驅(qū)動(dòng)模塊Set_V的確定

由于在不同類型的賽道上小車行駛的速度不同,故設(shè)定值Set_V不能始終為一個(gè)固定值參與到電機(jī)控制環(huán)中。

解決方法:考慮到直道速度快,彎道速度較慢,建立Set_V

和E2之間的二次曲線的模型關(guān)系,即,其中,,使用MATLAB仿真結(jié)果如圖9所示。

3.6 賽道中線的提取

前提:規(guī)定白色為1,黑色為0。具體操作:提取二值化賽道圖像(圖10)的一行,從該行數(shù)組的第一個(gè)元素開始判斷,當(dāng)連續(xù)的1達(dá)到一定個(gè)數(shù)時(shí)(暫時(shí)規(guī)定10個(gè)1為標(biāo)準(zhǔn)),則第一個(gè)檢測(cè)到的1所在的位置確定為L(zhǎng)eft;從該行數(shù)組的最后一個(gè)元素開始倒序判斷,同樣,當(dāng)連續(xù)的1達(dá)到一定個(gè)數(shù)時(shí),第一個(gè)檢測(cè)到的1所在的位置確定為Right,每行數(shù)組均進(jìn)行此操作,將每一行的所在的位置進(jìn)行存儲(chǔ),得到賽道中線信息,并分別與圖像的中心線位置做差,得到的數(shù)據(jù)存儲(chǔ)到Error[S_ROW]即為原始偏差數(shù)組。

3.7 對(duì)原始偏差數(shù)組的加權(quán)處理算法

小車速度大小V對(duì)圖像遠(yuǎn)近處偏差值權(quán)重大小的影響:車速慢時(shí)舵機(jī)不用提前打角,只需利用近處的圖像便可跑好,但是車速快時(shí),由于舵機(jī)要提前打角,所以即使遠(yuǎn)處的圖像不夠真實(shí)準(zhǔn)確,對(duì)于快速行駛的小車來(lái)說(shuō)遠(yuǎn)處的圖像也顯得很重要。

因此,當(dāng)獲取到原始偏差數(shù)組Error[S_ROW]后,需要通過(guò)加權(quán)處理,對(duì)數(shù)組中不同行的元素乘以不同的權(quán)值,最終得到較為準(zhǔn)確的偏差量E2,該權(quán)值分配需滿足如圖11所示的關(guān)系。

圖11 對(duì)原始偏差數(shù)組的加權(quán)處理示意圖

Fig.11 The deviation of the original array weighting diagram

4 結(jié)論(Conclusion)

經(jīng)過(guò)調(diào)試和檢測(cè)的結(jié)果證明,在基于MC9S12XS128的智能車軟件控制系統(tǒng)的作用下,小車能夠在黑色雙邊引導(dǎo)線的白色背景賽道上自動(dòng)識(shí)別路徑平穩(wěn)行駛。通過(guò)PID控制算法的優(yōu)化,實(shí)現(xiàn)了直道加速、彎道減速的設(shè)想;在圖像采集時(shí),使用延時(shí)函數(shù)在一定程度上解決了圖像消隱區(qū)失真問(wèn)題;均值濾波的降噪處理對(duì)于采集到的圖像進(jìn)行了進(jìn)一步的完善;閉環(huán)控制算法更是保證了小車行駛的穩(wěn)定性和快速性。相信通過(guò)進(jìn)一步的探索與完善,這個(gè)智能小車軟件控制系統(tǒng)會(huì)得到越來(lái)越廣泛的應(yīng)用。

參考文獻(xiàn)(References)

[1] Zhang.L.,Q.H.Song.Design of Smart Car Servosystem Based on Camera[J].Manufacturing Science and Technology,2012:5923-5927.

[2] Jiang.Z.J.,M.F.Wang,P.Guo.The Road Information Video Capture and Processing Research for Smart Car Based on CMOS Camera[J].Proceedings of 2009 International Conference on Information,Electronic and Computer Science,Vols I and II,2009:96-101.

[3] Ye.M.J.,C.H.Hu.Design of Electromagnetic Smart Car System[J].Mechanical and Electronics Engineering III,2012:343-346.

[4] 張飛飛,楊雪松.基于MC9S12XS128單片機(jī)的路徑圖像識(shí)別智能小車[J].甘肅科技,2013(13):12-14.

[5] 陶永華.新型PID控制及其應(yīng)用──第一講PID控制原理和自整定策略[J].工業(yè)儀表與自動(dòng)化裝置,1997(04):60-64;46.

[6] 孔巖,董奧,王勇.攝像頭型智能車的賽道類型處理[J].電子世界,2016(11):134.

[7] 王惠華,等.基于二值圖像連通域提取的圖像濾波方法[J].北京印刷學(xué)院學(xué)報(bào),2015,06:39-41.

[8] 李旭東,廖中浩,孟嬌.基于CMOS攝像頭的智能車控制系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2013(04):414-418.

作者簡(jiǎn)介:

李碧月(1996-),女,本科生.研究領(lǐng)域:電子信息工程.

猜你喜歡
智能小車PID控制閉環(huán)控制
基于LMI的過(guò)渡態(tài)主控回路閉環(huán)控制律優(yōu)化設(shè)計(jì)
適用于厚度在線測(cè)量的水壓閉環(huán)控制系統(tǒng)
智能車競(jìng)賽中的閉環(huán)控制算法應(yīng)用分析
電子制作(2018年11期)2018-08-04 03:25:58
基于STC89C51智能小車的移動(dòng)家居平臺(tái)的設(shè)計(jì)
內(nèi)??刂圃诨痣姀S主汽溫系統(tǒng)中的應(yīng)用
基于HC—SR04超聲波傳感器的智能避障小車設(shè)計(jì)
《計(jì)算機(jī)測(cè)控技術(shù)》課程中PID控制部分的教學(xué)探討
常規(guī)PID控制和常規(guī)模糊控制的比較
智能安全防盜探測(cè)小車
基于單片機(jī)的循跡智能車系統(tǒng)設(shè)計(jì)
宁安市| 云南省| 扶风县| 维西| 通道| 乌兰县| 莱州市| 隆昌县| 芮城县| 瑞金市| 济宁市| 师宗县| 翁牛特旗| 山阴县| 连南| 梁河县| 甘德县| 天峻县| 惠来县| 上林县| 民县| 德清县| 东光县| 九寨沟县| 聂荣县| 怀宁县| 佛教| 吉林省| 油尖旺区| 福鼎市| 南木林县| 荔浦县| 陵水| 全南县| 靖西县| 新源县| 扬州市| 南昌市| 乌拉特后旗| 临海市| 阳城县|