貴州大學電氣工程學院 黨長青 陳湘萍
水位控制一直以來都是工業(yè)生產(chǎn)的一項重要的控制指標,其控制方法目前使用的也較多,但是隨著計算機技術(shù)的快速發(fā)展與應用,使得水位控制有了更加精確的控制定位,本文運用ARM技術(shù)實現(xiàn)了一個水位控制器的設(shè)計,該控制器以微控制器為核心,利用超射波檢測傳感電路實現(xiàn)了水位的高精度控制。
本水位控制系統(tǒng)硬件電路主要由電源電路、檢測超聲波檢測電路及接口電路構(gòu)成,其具體設(shè)計如下:
本系統(tǒng)采用的STM32F103VET6,STM32的工作電壓(VDD)為2.0~3.6V。通過內(nèi)置的電壓調(diào)節(jié)器提供所需的1.8V電源。當主電源VDD掉電后,通過VBAT腳為實時時鐘(RTC)和備份寄存器提供電源。具體電路圖如圖2.1所示。
圖2.1 系統(tǒng)的供電電路圖
圖2.2 超聲波檢測電路
其測距原理為:通過超聲波發(fā)射裝置發(fā)出超聲波,根據(jù)接收器接到超聲波時的時間差就可以知道距離了。這與雷達測距原理相似。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同時開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時(超聲波在空氣中的傳播速度為340m/s,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的距離(s),即:s=340t/2)。圖2.2所示為超聲波檢測電路。
其超聲波時序圖如圖2.3所示。
由圖2.3可看出只需要提供一個10uS以上脈沖觸發(fā)信號,該模塊內(nèi)部將發(fā)出8個40kHz周期電平并檢測回波。一旦檢測到有回波信號則輸出回響信號回響信號的脈沖寬度與所測的距離成正比。由此通過發(fā)射信號到收到的回響信號時間間隔可以計算得到距離。公式uS/58=厘米或者uS/148=英寸;或是:距離=高電平時間*聲速(340M/S)/2;建議測量周期為60ms以上,以防止發(fā)射信號對回響信號的影響。
圖2.3 超聲波時序圖
在本系統(tǒng)中需要用到串口通信,控制發(fā)送數(shù)據(jù)到PC上顯示,以實現(xiàn)單片機與PC機的通信。在串口通信中使用到的芯片是MAX3232CSE,MAX3232CSE是一種低功耗擁有兩個接收器和兩個發(fā)射器的串口接口芯片。它兼容了RS-232的特性。供電范圍是3V-5.5V。在MAX3232CSE內(nèi)部,有兩個充電泵。該芯片的外圍電路非常簡單,外部只需要接上4個0.1uF的充電電容就可以使用了。通信速率在120kbps能夠保證數(shù)據(jù)不出錯。并且能夠保持RS232的輸出電平。MAX3232CSE具有低至1uA的關(guān)閉模式,在便攜式設(shè)備中,降低了電源的消耗,延長了電池的壽命。在低能耗的關(guān)閉模式中,接收器任然處于激活模式,允許調(diào)制解調(diào)器接收數(shù)據(jù),該接口電路圖如圖2.4所示。
圖2.4 串口通信電路圖
以上為本水位控制系統(tǒng)的硬件設(shè)計。該硬件設(shè)計是實現(xiàn)本系統(tǒng)精確水位控制的基礎(chǔ)。
本系統(tǒng)的程序設(shè)計是基于常用的嵌入式系統(tǒng)軟件開發(fā)平臺Keil uVision4,用于實現(xiàn)數(shù)字控制器的設(shè)計,本系統(tǒng)對水位的控制主要采用數(shù)字PID控制器。以下是該數(shù)字控制器的設(shè)計實現(xiàn)。
在本設(shè)計中對于控制器的實現(xiàn)主要采用增量式PID算法,這是因為增量式PID算法只需保持當前時刻以前三個時刻的誤差即可。它與位置式PID相比,有下列優(yōu)點:
(1)位置式PID算法每次輸出與整個過去狀態(tài)有關(guān),計算式中要用到過去誤差的累加值,因此,容易產(chǎn)生較大的累積計算誤差。而增量式PID只需計算增量,計算誤差或精度不足時對控制量的計算影響較小。
(2)控制從手動切換到自動時,位置式PID算法必須先將計算機的輸出值置為原始閥門開時,才能保證無沖擊切換。若采用增量算法,與原始值無關(guān),易于實現(xiàn)手動到自動的無沖擊切換。
PID算法代碼如下:
如圖3.1所示,系統(tǒng)總體流程是:設(shè)定水位值,STM32F103VET6初始化,初始化后繼而運行同時使電機轉(zhuǎn)動,通過超聲波不斷反饋回來的數(shù)據(jù)判斷是否到達了設(shè)定的水位值,如果到達了,則使電機以這樣的速度穩(wěn)定運行下去,如果沒有達到設(shè)定的水位值,則將超聲波檢測到的數(shù)值與給定值做比較,得出誤差值,然后將誤差值通過DAC0832芯片轉(zhuǎn)換成0~5V電壓信號,反饋給執(zhí)行機構(gòu)(電機),再通過電機控制水泵的水流速度,來達到水位控制的要求。
圖3.1 下位機軟件控制流程圖
圖3.2 上位機軟件程序流程圖
該模塊主要是完成接收下位機傳送上來的數(shù)據(jù),并將數(shù)據(jù)以正確的形式顯示在控制界面當中。該模塊包括界面的設(shè)計以及具體的響應函數(shù)的設(shè)計。上位機的串口通信用的不是VC自帶的MSCOMM控件,.這里使用一個動態(tài)庫,分別是Pcomm.h,Pcomm.lib,Pcomm.dll。輸入?yún)?shù)為串口的接收數(shù)據(jù),輸出參數(shù)為編輯框的顯示數(shù)據(jù)。程序的流程圖如圖3.2所示。
根據(jù)要求,水位給定的范圍是0~150mm。分別取兩組數(shù)據(jù)進行測量,每組取6個數(shù)值。
第一組:0mm~65mm之間取值,所取的值分別為10mm、20mm、30mm、40mm、50mm、60mm。
第二組:65mm到150mm之間取值,所取的值分別為70mm、80mm、90mm、100mm、110mm、120mm。
將以上數(shù)據(jù)進行比較可得,設(shè)定水位值每次變化10mm,大約所需要的調(diào)節(jié)時間為12S到15S,基本符合題目的要求,系統(tǒng)的各個檢測單元的測試數(shù)據(jù)精度很高、顯示值與設(shè)定值非常接近,這與硬件的選擇及其參數(shù)的匹配選擇是不可分割的。當設(shè)定水位值和當前水位值有誤差時,會自動通過超聲波檢測到的數(shù)值與給定值做比較,得出誤差值,然后將誤差值通過DAC0832芯片轉(zhuǎn)換成0~5V電壓信號,反饋給執(zhí)行機構(gòu)(電機),再通過電機控制水泵的水流速度,來達到水位控制的要求。
本文設(shè)計了一個基于ARM的水位控制控制系統(tǒng),通過能采用ARM7內(nèi)核芯片和串口通信電路及超聲波檢測技術(shù)實現(xiàn)了水位的精確控制,從測試結(jié)果可以看出該系統(tǒng)具有良好的穩(wěn)定性,而且該系統(tǒng)還具有功耗低穩(wěn)定性好等特點,具有較高的實用價值。
[1]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程(第二版)[M].北京:北京航空航天大學出版社,2005.
[2]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程(二)[M].北京:北京航空航天大學出版社,2005.
[3]周立功.ARM嵌入式系統(tǒng)基礎(chǔ)教程(三)[M].北京:北京航空航天大學出版社,2005.
[4]周立功等,EasyArm2131教材.
[5]譚浩強著.C程序設(shè)計(第三版)[M].北京:清華大學出版社,2007.
[6]周旭.現(xiàn)代傳感器技術(shù)[M].北京:國防工業(yè)出版社,2007.
[7]田澤.嵌入式系統(tǒng)開發(fā)與應用教程[M].北京:北京航空航天大學出版社,2005.
[8]吳春祥.嵌入式水文自動測投系統(tǒng)的研究與設(shè)計[D].武漢理工大學,2008.