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