基于PID控制算法的氣味循跡車設(shè)計(jì)
摘要:氣味源的循跡是目前的研究熱點(diǎn)之一,在以后的日常生活以及生產(chǎn)方面有著較為廣泛的運(yùn)用。本文介紹了一種基于 STC12C5A60S2單片機(jī)設(shè)計(jì)的簡(jiǎn)便智能氣味循跡小車。采用兩個(gè)氣味傳感器,根據(jù)濃度差判斷氣味流向,并通過PID算法控制舵機(jī)打出偏角,使小車循著氣味行走。整個(gè)硬件模塊的設(shè)計(jì)結(jié)構(gòu)簡(jiǎn)單靈活,通過實(shí)驗(yàn)仿真,在室內(nèi)時(shí)變氣流場(chǎng)的環(huán)境下,該小車能達(dá)到氣味循跡要求。
關(guān)鍵詞:?jiǎn)纹瑱C(jī);PID;氣味;循跡小車
氣味循跡可以從事尋找有毒有害氣體泄漏源、尋找爆炸源等相關(guān)工作,受到科研人員高度關(guān)注,發(fā)展十分迅速。同時(shí),隨著人們?nèi)粘I钪悄芑潭鹊脑鰪?qiáng),具有智能控制系統(tǒng)的小車、機(jī)器人層出不窮,而這些智能體將在未來工業(yè)生產(chǎn)和日常生活中扮演更重要的角色。智能車,是一種能感知環(huán)境和自動(dòng)有目的地行駛的綜合系統(tǒng)。我們也可以這樣認(rèn)為,智能車也是智能機(jī)器人的一種形式,它的雙腿我們用輪子代替,因而更加簡(jiǎn)單實(shí)現(xiàn)和控制。
耗時(shí)長(zhǎng)、跟隨性能差是當(dāng)下智能氣味循跡車在循跡過程中普遍存在著的情況。本文介紹的智能氣味循跡車的控制核心是STC12單片機(jī),能自動(dòng)感知附近特定的氣味,并應(yīng)用
PID算法調(diào)節(jié)舵機(jī),控制方向遵循氣味來向前行,實(shí)驗(yàn)結(jié)果顯示能有效縮短循跡時(shí)間,改善智能車的跟隨性能。
1 硬件系統(tǒng)及其工作原理
1.1 硬件系統(tǒng)設(shè)計(jì)
智能車的系統(tǒng)(圖1)的組成模塊有:電源模塊(變壓穩(wěn)壓)、控制處理模塊、傳感器模塊(探尋氣味)、轉(zhuǎn)向控制模塊、電機(jī)驅(qū)動(dòng)模塊和狀態(tài)顯示模塊等??刂铺幚砟K為STC12 C5A單片機(jī),由ULN2003APC驅(qū)動(dòng)電機(jī),采用后輪驅(qū)動(dòng),舵機(jī)由單片機(jī)直接控制,而舵機(jī)控制前輪轉(zhuǎn)向。部分電路圖(圖2)和電路板實(shí)物圖(圖3)如下。
1.2 工作原理簡(jiǎn)介
本設(shè)計(jì)中,智能小車先由氣味傳感器感知兩個(gè)方向的氣味濃度,傳送給單片機(jī)的AD口,由單片機(jī)進(jìn)行判斷,判斷兩個(gè)方向的濃度高低,然后通過PID算法,控制舵機(jī)打出偏角,跟隨軌跡前行。
2 芯片配置及其功能
2.1 單片機(jī)STC12C5A60S2介紹
STC12C5A60S2引腳圖如圖4所示。
此單片機(jī)具有如下配置:RAM擁有1 280字節(jié),具備40個(gè)通用I/O口,復(fù)位后為準(zhǔn)雙向口/弱上拉。具有EEPROM、看門狗功能。5.0 V單片機(jī)為:11~17 MHz,3.3 V單片機(jī)為:8~12 MHz。Power Down模式可由外部中斷喚醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCPO/P1.3,CCPO/P1.3。
雙串口,RxD2/P1.2,TxD2/P1.3。
氣味傳感器是氣味循跡小車的關(guān)鍵模塊,氣體感應(yīng)的準(zhǔn)確性關(guān)系著小車最終能否尋找到氣味源。本實(shí)驗(yàn)采用一個(gè)MS5100傳感器。MS5100通電后,圓圈內(nèi)的金屬化合物能感知特定氣味,其電阻隨氣味濃度升高而降低,則增大,輸送給單片機(jī)的AD口,因?yàn)閱纹瑱C(jī)能判斷此氣味傳感器所處位置的氣味濃度。(電路圖如圖5)
2.2 舵機(jī)模塊
本設(shè)計(jì)中舵機(jī)(圖2中舵機(jī)部分)采用PWM信號(hào)(脈寬調(diào)制信號(hào))作為控制信號(hào),控制周期為20 ms,擁有0.5~2.5 ms的脈沖寬度,以及0~180度的舵盤偏移角度,呈線性變化。也就是說,給它提供一定的脈寬,它的輸出軸就會(huì)保持在一個(gè)相對(duì)應(yīng)的角度上,無(wú)論外界轉(zhuǎn)矩怎樣改變,直到給它提供一個(gè)另外寬度的脈沖信號(hào),它才會(huì)改變輸出角度到新的對(duì)應(yīng)的位置上。
2.3 電機(jī)驅(qū)動(dòng)模塊
由于單片機(jī)提供的電流無(wú)法直接驅(qū)動(dòng)小車上的直流電機(jī),故本設(shè)計(jì)采用外接驅(qū)動(dòng)芯片達(dá)林頓管,即ULN2003作為電機(jī)驅(qū)動(dòng)(圖2中電機(jī)驅(qū)動(dòng)部分),控制電機(jī)轉(zhuǎn)動(dòng)。此芯片能承受較高的工作電壓和電流,采用編程產(chǎn)生有序的PWM波,對(duì)電機(jī)進(jìn)行控制,能達(dá)到速度可調(diào)的效果。
2.4 指示燈顯示模塊
本設(shè)計(jì)中采用發(fā)光二極管,將將傳感器的采集結(jié)果直接輸出,可直觀了解到各個(gè)傳感器的工作情況。通過對(duì)觀察傳感器工作情況與的行駛小車狀態(tài),可判斷小車是否正常工作。
2.5 電源模塊
本設(shè)計(jì)中單片機(jī)、電機(jī)驅(qū)動(dòng)等元器件的正常工作均需要穩(wěn)定的電壓,因此采用LM7805和LM7806并配上穩(wěn)壓濾波電路分別將干電池的電源直接變壓成5 V和6 V的直流電源,來提供單片機(jī)、舵機(jī)、電機(jī)等元件工作所需電源。
3 實(shí)驗(yàn)
智能車追蹤氣味源的關(guān)鍵在于快速地分析氣味的流向,并迅速準(zhǔn)確地控制舵機(jī)打出偏角。然而在連續(xù)轉(zhuǎn)彎時(shí),由于曲率變化過大,加上小車具有一定的速度,舵機(jī)響應(yīng)又需要一定的時(shí)間,所以在實(shí)際中經(jīng)常出現(xiàn)小車來不及掉頭而隨意沖撞的情況。本設(shè)計(jì)中采用PID算法來控制舵機(jī)轉(zhuǎn)向,在智能車對(duì)氣味的跟隨性能上有明顯改善,能實(shí)現(xiàn)快速準(zhǔn)確地控制(圖8)。PID算法公式:
其中:Kp為比例控制參數(shù);
KI為積分控制參數(shù);
KD為微分控制參數(shù)。
C語(yǔ)言是實(shí)驗(yàn)的主要編程語(yǔ)言,上述PID算法代碼可用下面語(yǔ)句實(shí)現(xiàn):
PID_out=(servo_P*error_history[2]//比例
+servo_I*error_sum/10//積分
+servo_D*(error_history[2]-error_history[1])//微分
)/10;//這里的能將小數(shù)計(jì)算轉(zhuǎn)換成整數(shù)計(jì)算,以減輕單片機(jī)的負(fù)擔(dān)
4 結(jié)束語(yǔ)
本設(shè)計(jì)系統(tǒng)的主控模塊采用的STC12C5A60S2單片機(jī),可以將氣味傳感器輸入的模擬量通過AD轉(zhuǎn)換轉(zhuǎn)換成數(shù)字量從而使運(yùn)算更加簡(jiǎn)便,加上合適的 PID運(yùn)算,能對(duì)舵機(jī)進(jìn)行較為準(zhǔn)確的控制,從而能夠達(dá)到智能車跟隨氣味行走的目的。本方案系統(tǒng)設(shè)計(jì)合理有序。不足的地方就在于傳感器的靈敏度,本設(shè)計(jì)需要傳感器能較為準(zhǔn)確地判斷比較兩個(gè)傳感器所處位置的濃度差,而一般的傳感器不能很好的達(dá)到這一要求。本實(shí)驗(yàn)最終的結(jié)果實(shí)現(xiàn)了智能小車對(duì)氣味的感知,并能尋找高濃度的方向。通過對(duì)智能氣味循跡車添加PID算法控制的實(shí)驗(yàn)證明:添加算法后,小車循跡更加迅速準(zhǔn)確,有較強(qiáng)的適應(yīng)能力。