朱建軍,孫佳東,謝俊杰,李天順,姜衍超
(1.吉林化工學院,吉林吉林,132022;2.燕山大學,河北秦皇島,066004)
PID[1]控制理論因其廣泛的工程應(yīng)用性,在高校的實驗課程中占有較大比重,但是目前常見的PID控制實驗裝置多為溫度、液位調(diào)節(jié)系統(tǒng),這類平臺普遍存在對實訓環(huán)境要求較高、參數(shù)設(shè)定困難、調(diào)節(jié)周期長等問題。該類實驗設(shè)備大都采購于教學儀器廠家,成本較高,維修升級麻煩。本文針對自動控制原理實驗課程,研制了小球懸浮實驗裝置[2]。該裝置操作簡單且便于維護,完全可以滿足自動化專業(yè)學生掌握PID原理、編程與應(yīng)用的需要。
本系統(tǒng)硬件系統(tǒng)主要由攝像頭、Arduino單片機、串口模塊、PWM調(diào)節(jié)器、玻璃筒、乒乓球、軸流風機等裝置組成,并在此基礎(chǔ)上設(shè)計軟件程序及上位機界面。乒乓球放置在下方安裝有軸流風機的豎直玻璃筒內(nèi),風機可吹動乒乓球在筒內(nèi)沿豎直方向運動。上位機與單目攝像頭連接,通過OpenCV進行顏色識別,可測得乒乓球在筒內(nèi)的位置信息,上位機通過PID算法處理位置信息,通過串口將輸出數(shù)據(jù)傳送給下位機,下位機接收到數(shù)據(jù)后,通過改變電機驅(qū)動板的輸入PWM波占空比,進而改變電機驅(qū)動板的輸出電壓,調(diào)整軸流風機風量,最終將乒乓球吹浮并穩(wěn)定于設(shè)定高度值處。PID參數(shù)、浮球位置設(shè)定值的設(shè)置可在上位機中進行,并且通過上位機監(jiān)視界面,還可以方便地觀察乒乓球位置實時變化情況。
小球懸浮實驗裝置硬件部分由攝像頭、PC機、Arduino微機、軸流風機、位置控制對象等組成。根據(jù)Arduino Mega 2560、USBTOTTL模塊、軸流風機、4~24V直流電壓源、自鎖開關(guān)等模塊的工作原理和使用方法,通過查找原理圖確定引腳的功能和連接方式,利用畫圖軟件繪制了硬件整體接線圖如圖1所示。
圖1 硬件整體接線圖
系統(tǒng)控制單元。該系統(tǒng)采用基于8位ATmega 2560芯片的Arduino Mega 2560單片機。該單片機片內(nèi)資源豐富、編程環(huán)境搭建快速、編程簡單快速、源碼開放,包含PWM接口、UART接口,時鐘、定時器等資源,負責接收PC數(shù)據(jù)和風機PWM脈寬調(diào)制。
串口通信[3]模塊。由于單片機的串口通訊采用TTL標準,因此本裝置采用USB TO TTL模塊實現(xiàn)上位機和單片機的通訊。本裝置串口波特率設(shè)置為115200bit/s,從而使系統(tǒng)整體具有較高的響應(yīng)速度。
軸流風機,具有安裝簡單、成本低廉、功耗低、散熱快、噪音低、節(jié)能環(huán)保等優(yōu)點。San Ace 40軸流風機額定電壓為12V,使用范圍在8~13.2V之間,額定電流為 1.1A,最大風量在為0.85m3/min。運用此風機,系統(tǒng)的超調(diào)量較小,調(diào)節(jié)時間較短,能夠快速到達穩(wěn)態(tài),并且系統(tǒng)達到穩(wěn)態(tài)后,穩(wěn)態(tài)誤差能夠保持在一個較小的范圍內(nèi)。
由單目相機為主要元件組成的單目視覺高度測量系統(tǒng),通過小球在相機圖像視野中4的位置,采用比例映射法測量小球的高度信息。小球高度測量示意圖如圖2所示。
圖2 小球高度測量示意圖
玻璃導管標定零點到標定最高點之間的距離為H,用單目攝像頭將其投射到相機成像原件CCD靶面后,其在垂直方向所占像素點個數(shù)為N。小球每到達一個高度,在CCD靶面中都對應(yīng)著一個像素塊,像素塊的幾何中心距離圖像底部的像素個數(shù)為n。因此小球高度h可以通過下式計算:
式中:N、H都是常量,其中N可以通過設(shè)置感興趣區(qū)域更改,這里設(shè)置為320,H可以通過測量直接獲得,這里為83cm。因此可以計算出H與N的比值k為0.26cm,可將(1)式簡化為:
至此已經(jīng)完成了對坐標世界坐標的建立,接下來需要通過OpenCV計算機視覺庫對現(xiàn)場采集的圖像進行處理。在數(shù)字圖像處理中常用色彩模型是RGB模型和HSV模型,HSV模型更符合人描述和解釋顏色的方式,因此本文在HSV顏色空間模型下進行顏色識別。
通過攝像頭采集的圖像在OpenCV計算機視覺庫[4]中默認格式為BGR格式,因此需要將圖片從BGR格式轉(zhuǎn)化為HSV格式,再對圖像進行二值化處理,根據(jù)小球HSV值,將閾值范圍內(nèi)的像素點設(shè)置為1,閾值范圍外的像素點設(shè)置為0。對圖像進行二值化處理后,通過區(qū)域生長算法[5]獲得白色連通區(qū)域的面積大小,通過對比選擇出最大的連通區(qū)域,即是二值化處理后的小球圖形,其程序流程圖如圖3所示。
圖3 程序流程圖
在圖像處理過程中會產(chǎn)生一些干擾[6],可以通過區(qū)域生長算法獲得干擾區(qū)域大小,若小于設(shè)定值則視為噪聲。區(qū)域生長算法先對每個需要分割的區(qū)域找到一個種子像素作為生長的起點,然后將種子像素周圍領(lǐng)域中與種子像素具有相似性質(zhì)的像素合并到種子像素所在的區(qū)域中,將這些新像素當做新的種子重復(fù)上面的過程。直到再沒有滿足條件的像素可被合并進來,生長停止。圖像經(jīng)過區(qū)域生長后,可以劃分為3個部分,分別是噪音、小球、背景,其中噪音占73個像素,小于設(shè)定值,被過濾,小球占293個像素,如圖4所示。
圖4 圖像消除干擾效果
本次設(shè)計中,下位機需要具有開關(guān)狀態(tài)檢測、串口讀寫、PWM脈寬調(diào)制這三個功能,并且三個功能需要互不影響、協(xié)同工作,其具體流程為:下位機對硬件進行初始化,初始化成功后,I/O口對軸流風機開關(guān)狀態(tài)進行檢測,若開關(guān)狀態(tài)引腳發(fā)生改變,則會通過串口發(fā)送開關(guān)狀態(tài)改變信號給上位機,之后通過串口函數(shù)對串口輸入緩沖區(qū)進行檢測,若在串口緩沖區(qū)有數(shù)據(jù)進入,程序會將串口數(shù)據(jù)存入寄存器,當計數(shù)器的計數(shù)值與寄存器中的值匹配后,計數(shù)器會在下一個時鐘周期清零計時器,重新計數(shù)。從而達到改變輸出PWM波的占空比的目的。下位機程序流程圖如圖5所示。
圖5 下位機程序流程圖
為了更好地實現(xiàn)人機交互,本文設(shè)計了基于Qt[7]框架的懸浮小球裝置人機交互軟件,該軟件實現(xiàn)了浮球位置的監(jiān)控、繪制、數(shù)據(jù)保存、HSV閾值[8]調(diào)節(jié)、小球高度設(shè)定等功能。其中,PID參數(shù)、HSV閾值數(shù)據(jù)、曲線數(shù)據(jù)都將存入SQLite數(shù)據(jù)庫中,并且曲線圖片可以通過點擊“保存圖片”按鈕存入本地,如圖6所示。
圖6 人機界面
在人機交互界面中能夠進行較為人性化的操作,操作者只需要在界面中調(diào)節(jié)參數(shù)就能夠?qū)崿F(xiàn)人與軟件之間的信息交互,達到對系統(tǒng)的監(jiān)視和控制的目的。
在上位機將小球高度值設(shè)定為41.6cm和31.2cm,分 別 設(shè) 置PID參 數(shù) 為P=1.5,I=0.04,D=30和P=3,I=0.04,D=30,進行位置控制實驗。
系統(tǒng)的計算結(jié)果平均誤差小于0.05cm,最大誤差不超過0.6cm,實驗結(jié)果表明:小球懸浮實驗裝置總體具有較好的穩(wěn)定性,滿足控制要求。
在實驗中小球的高度控制會受到系統(tǒng)本身以及外界干擾的影響,因此需要對小球的穩(wěn)定性進行分析。當小球進入穩(wěn)態(tài)后,由于受到不可控的干擾影響,小球高度會產(chǎn)生微小的波動。每次實驗都將小球設(shè)定在不同的高度,當小球進入穩(wěn)態(tài)后對平均誤差和最大誤差進行分析,計算方法如下:
式中:avee是小球進入穩(wěn)態(tài)后的平均誤差;maxe是小球進入穩(wěn)態(tài)后的最大誤差;a是小球進入穩(wěn)態(tài)前所采樣點的個數(shù);in是第i個采樣點所對應(yīng)的小球高度值,setn小球設(shè)定的高度位置。
多次實驗后,在不同的設(shè)定高度下,小球達到穩(wěn)態(tài)后所產(chǎn)生的位置誤差,如表1所示。
表1 位置誤差 單位cm
實驗結(jié)果表明:小球懸浮實驗裝置總體具有較好的穩(wěn)定性,在設(shè)定高度不同的情況下,其穩(wěn)定性也不同。在高度設(shè)定在160cm時穩(wěn)定性最好,平均誤差只有0.03mm,最大誤差為0.52cm。
本文同樣對系統(tǒng)的跟隨性和快速性進行了測試,分別把小球設(shè)定值設(shè)置為余弦和方波曲線,并繪制出跟隨曲線。
通過測試結(jié)果表明,本文設(shè)計的小球懸浮裝置具有很好的跟隨性,能夠快速、準確地跟隨位置設(shè)定曲線。
本文依據(jù)小球懸浮裝置控制要求,利用Qt框架、OpenCV計算機視覺庫、Arduino微機等,設(shè)計了小球懸浮控制系統(tǒng)。該系統(tǒng)搭建簡單、運行穩(wěn)定、數(shù)據(jù)存儲方便、操作簡單、人機交互界面簡潔明了,可以實現(xiàn)階躍、余弦、方波曲線的跟隨實驗,能夠滿足PID實驗課程的需求。