陳巍(1970-)
男,江西撫州人,碩士,講師,主要從事電子教學及研究。
摘要:本文針對全國大學生電子設計大賽運動控制試題之一《液體點滴速度監控》的控制要求,提出了一種基于單片機和步進電機液滴自動監控的研究方法。考慮到控制的可靠性及精確性,在軟件設計中使用了PID軟件算法進行液滴速度的測算,形成一個閉環傳遞控制系統實現精確的控制。
關鍵詞:光電傳感器;PID算法;步進電機;單片機;液晶顯示
Abstract: Aiming at the controlling requirement of the Monitoring of Dropping Rate of Liquid, one of the motion control test questions of National Undergraduate Electronic Design Contest,this paper offers a research method of the automatic monitoring based on SCM and stepper motor. In view of the reliability and accuracy of the control, PID software algorithm is used in software design to measure and calculate the dropping rate, and a transfer system with the closed loop is formed to realize accurate control.
Key words: photosensor; PID algorithm; stepper motor; SCM; liquid-crystal display
1 控制要求概述
2003年全國電子設計大賽F題為設計并制作一個液體點滴速度監測與控制裝置,要求:
(1)如圖1所示,滴斗處檢測點滴速度并制作一個數顯裝置,能動態顯示點滴速度。
(2)通過改變儲液瓶高度控制點滴的速度控制,點滴速度可以用鍵盤設定并顯示,設定范圍為20~150滴/分。
(3)當液面高度降到警戒值(2~3cm),能發出報警信號。
(4)設計并制作有主站控制16個從站的有線控制系統。
根據上述要求將任務分解為:液滴檢測任務、液滴速度控制任務、液面過低報警任務、主站從站通信任務。本論文將根據上述任務從如下幾個方面對其進行闡述:
a 系統的總體硬件結構設計將以硬件結構圖的形式予以闡述,以控制核心為主體,進行輸入與輸出的分析并從硬件的選擇包括檢測裝置,液晶顯示和通信傳輸裝置進行闡述。
b 軟件設計主要從系統流程的設計,算法的實現等方面進行分析和闡述。
c 結果分析
圖1 點滴裝置示意圖
2 硬件結構設計
本設計是基于STC89C52單片機為控制核心,通過步進電機控制輸液瓶的高度來實現液體滴定的速度,利用光電開關實現對液滴速度的檢測并將相關數據顯示在液晶顯示屏上,當液面降至禁戒線時發出聲光報警。硬件結構框圖如圖2所示。
2.1點滴速度控制
該點滴裝置采用步進電機來調節輸液瓶的高度,由于步進電機精度高,無位置累積誤差,可靠性高等特點,能夠滿足其控制滴斗中液滴滴下速度的精確性要求,因其可以通過電脈沖來改變步進電機的步進角精確實現輸液瓶的高度控制從而實現點滴速度控制。此系統采用L298對步進電機進行控制,電機控制模塊硬件圖如圖3所示。

圖3 電機驅動模塊原理圖
2.2 液滴速度檢測控制
選用光電開關進行液滴的速度檢測,其優點是測量范圍遠,靈敏度高;將光電開關安裝在滴斗壁上,當液滴滴下時,會給光電開關產生一個信號,通過在一分鐘內采集數個信號所用的時間就可以計算出液滴滴下的速度。其工作原理如圖4所示。

圖4(a) 光電開關原理圖

圖4(b) 利用光電開關檢測液滴速度
2.3 單片機通信總線
主站與從站之間通信總線采用485總線,通信接口芯片采用SN75LBC184,實現STC89C52的異步串行接口與RS232C標準串行通信電路之間的電平轉換,通信電路可以將16個輸液從站與主站的主機:連接起來構成輸液監控網絡,從而實現輸液的遙測,遙控。
2.4 液晶顯示模塊
利用1602液晶顯示如圖5所示,其優點是顯示直觀,內容豐富;其用來顯示液滴滴速和顯示報警信息。

圖5 液晶顯示原理圖
2.5 鍵盤設計
本設計采用的是4*4掃描鍵盤,其由四條I/O線作為行線,4條I/O線作為列線,在行線與列線的交叉點上設置交叉點,使其形成矩陣式排列,如圖6所示。

圖6 矩陣鍵盤原理圖
2.6 警戒線檢測
利用光電開關對輸液瓶中液體進行檢測,當高度低于警戒值給單片機發送報警信號。將光電開關安裝在輸液壁上,當液面高于警界線時,會給光電開關產生一個信號,使其保持高電平,當沒有接收到信號時,產生低電平,從而予以報警。如圖7所示。

圖7 光電傳感器檢測原理圖
3 軟件的算法及軟件設計
3.1 液滴速度的算法
控制輸液瓶的高度來控制液滴地下的速度,假設滴斗到儲液瓶的高度為H1且滴速夾固定不變,如圖8所示。
由圖中所示可以得到液滴在高為H1處落下所產生的壓強的物理公示:

考慮到滴速夾,輸液管的摩擦等原因,將影響到理想情況下的液體壓強,假設所有阻尼為f,假設在管子的某個截面上產生了重力引起的壓強和一個向上的阻尼,經過多次的實驗測試,可以得到其重力引起的壓強和阻尼之間存在著線性關系,從而對液滴速度產生影響。

圖8 系統框圖
根據功率可得方程:

由上式可以得到滴速v的表達式,其中f受管道摩擦和滴速夾影響,所以要保證f不變就必須保證滴速夾固定不變。
3.2 采用PID算法調速
要得到H1與液滴速度v之間的關系,需要用到PID算法,此算法能夠解決復雜的工程計算。其實質是根據輸入的偏差值,按一定的函數關系進行運算,其運算結果用以控制輸出。
在此系統中,PID采用差分方程表示:

通過上式可以求得其輸出控制量 u(k) 對應于系統的輸出y(位置),是全量輸出,形成了一個閉環傳遞函數,系統框圖如圖8所示。

圖9 位置型PID算式
3.3 點滴周期算法
通過采集幾個相鄰間隔脈沖信號周期Ti,平均得到相鄰間隔脈沖信號的周期T,這樣就可以得到點滴速度


圖10 點滴速度測量
3.4 電機驅動設計算法
此系統采用L298對步進電機進行控制,可以通過電脈沖來改變步進電機的步進角,且能提供步進電機所需負載。用過該步進角來改變輸液瓶的高度從而實現液滴速度的改變。通過集成芯片L298可以直接驅動步進電機。本系統中使用的步進電機所需要的脈沖電流幅度是0.6A,電壓幅度是12V,繞組阻抗是20Ω,力矩為8.5 Kg×cm,力臂40mm。通過集成芯片L298可以直接驅動步進電機。單片機輸出四路脈沖信號控制電動機轉動相位角。單片機產生四相四拍脈沖信號的波形如圖11所示。
3.5 點滴速度檢測算法
以每分鐘記錄點滴數。通過乘法計算出點滴速度,此方法在點滴速度恒定的情況下,可以采用多個單位時間取均值,從而求得單位時間的平均點滴數,這種方法可以實現較高的精度。設T=200ms,當檢測到第一個到來的脈沖信號時,程序進行中斷處理,將計數器存儲內容讀出,再將計數器清零作為記錄脈沖信號的,當定時器定時到達200ms時,程序中斷檢測輸入信號是否有脈沖信號到來,同時計數器加1,另外設定計數器記錄檢測到的脈沖信號個數,設定計數器的存儲單元是10,這樣可以通過循環存儲脈沖個數。在定時器中取出5個相臨脈沖信號點這樣就能計算出5個脈沖點所需要的時間為:

其中sum=n2-n1根據上面的理論分析和計算,得到點滴速度測量的程序框圖如圖12所示。

圖11 四相四拍脈沖信號

圖 12 點滴速度測量
4 測速結果及結果分析
表1

由表格中數據可見,該電路可靠性高,誤差小,主要得益于步進電機的精確控制和軟件算法的合理運用,所以只要選用的測試方法合理,控制方案及調節手段合適完全可以得到良好的控制效果。
[1] 陶永華等.新型PID控制及其應用[M].北京: 機械工業出版社.
[2] 王治剛.單片機典型系統設計[M].北京: 電子工業出版社.
[3] 張愛萍.硬件電路設計原理[M].哈爾濱: 哈爾濱工業大學出版社.
[4] 張偉.Protel 99SE高級應用[M].北京: 人民郵電出版社.
信息來源:自動化博覽