基于數(shù)字PID的高精度恒溫控制系統(tǒng)的實現(xiàn)
在許多工程領(lǐng)域中,對溫度進行現(xiàn)場測控時具有一定危險性,而實現(xiàn)溫度巡回檢測儀與上位機的通信后,上位機就能對下位機進行遠程監(jiān)控,這樣不僅提高了系統(tǒng)的安全性、方便性,也使下位機資源不足的問題(如存儲容量)得到了解決。
本文設(shè)計的溫度智能化巡回檢測系統(tǒng)采用溫度巡回檢測儀作為下位機來采集溫度數(shù)據(jù),經(jīng)過預(yù)處理后通過自帶的RS-485串行口將數(shù)據(jù)傳送給上位機,在PC機上運行采用VB的通信控件MSComm編制的實時檢測系統(tǒng)軟件,接收串行口傳送來的數(shù)據(jù),并進行相應(yīng)的數(shù)據(jù)處理,在用戶界面上實時顯示和設(shè)置,并對已設(shè)置的危險溫度進行報警。
圖1:系統(tǒng)總體框圖。
下位機部分
下位機部分通過輸入通道將溫度傳感器DS18B20采集到的被控對象當(dāng)前溫度轉(zhuǎn)變?yōu)閿?shù)字量并輸入到單片機中,單片機求出輸入的當(dāng)前溫度值與設(shè)定值的偏差,并根據(jù)該偏差進行PID運算,最后,根據(jù)PID運算的結(jié)果,通過功率調(diào)節(jié)電路改變給定周期內(nèi)加熱絲的通電時間以實現(xiàn)對溫度的控制。功率調(diào)節(jié)電路調(diào)節(jié)功率的實質(zhì)是利用PWM調(diào)節(jié)來改變加熱絲的平均功率,整個控制系統(tǒng)是一個典型的閉環(huán)系統(tǒng)。功率調(diào)節(jié)電路是控制系統(tǒng)的執(zhí)行機構(gòu),它不僅要求輸出功率大,還要求能夠根據(jù)需要對輸出功率進行精確調(diào)節(jié),是系統(tǒng)中最關(guān)鍵和昂貴的組成部分,通常也是故障率最高的部分。
1. 硬件電路
基于數(shù)字PID算法控制的硬件結(jié)構(gòu)原理框圖如圖2所示。這是下位機功率控制的核心部分,分別由PC機發(fā)送控制信號并接收實時溫度信號。
圖2:基于數(shù)字PID算法控制的硬件結(jié)構(gòu)原理框圖。
選用數(shù)控可編程電位器DS1867,可使功率調(diào)節(jié)分辨能力滿足很高的精度要求,圖3為其原理框圖。共采用了三個數(shù)字電位器,其中兩個作為粗調(diào)電位器,兩者同步調(diào)節(jié),DS1867單臂抽頭數(shù)為256。微調(diào)電位器將粗調(diào)電位器的每一檔又分為512檔,因此分辨能力為最大加熱功率的十萬分之一。固態(tài)繼電器選用30A/220V交流過零型。NE555占空比調(diào)節(jié)電阻R1、R2以決定占空比的最大值和最小值,其中阻值應(yīng)盡可能地小,以增大功率調(diào)節(jié)范圍,但由于受到數(shù)字電位器滑動端所能承受最大電流的限制,因而應(yīng)根據(jù)需要綜合考慮。
圖3:基于DS1867的功率調(diào)節(jié)原理框圖。
2. 軟件設(shè)計
本文中的設(shè)計以ASTROM提出的極限環(huán)法為基礎(chǔ),結(jié)合加熱絲控制系統(tǒng)無負輸入,溫度一旦超調(diào)就只能依靠自然冷卻達到設(shè)定工作溫度點的特點,提出了一種僅對程序溫控儀增加少量程序就能實現(xiàn)PID參數(shù)自整定功能的方法。算法原理詳見本刊網(wǎng)站。
在線整定PID參數(shù)時,對任意設(shè)定的工作溫度點,都規(guī)定了一個內(nèi)部設(shè)定溫度點。內(nèi)部設(shè)定溫度點的選取應(yīng)盡量靠近工作溫度點,又使溫度不超調(diào)。先讀出設(shè)定值,再根據(jù)設(shè)定值算出內(nèi)部設(shè)定溫度值,整個過程均實時采樣溫度,將采樣溫度與內(nèi)部設(shè)定溫度比較,當(dāng)采樣得到的溫度時間曲線以內(nèi)部設(shè)定溫度點為對稱線,上下等幅振蕩的時候,找出一個完整振蕩周期內(nèi)的最高點和最低點,并記錄兩點的時間差,由算法求出PID參數(shù)。
上位機部分
上位機部分與具有強大數(shù)據(jù)處理能力和豐富軟件資源的微機組成分布式系統(tǒng),由上位機對整個測量過程的溫度數(shù)據(jù)進行統(tǒng)一顯示、存儲、打印報表、參數(shù)設(shè)定和數(shù)據(jù)的進一步處理。整個下位機部分可分別通過單片機的P3.0和P3.1口與上位機實現(xiàn)串行通信。在上位機中采用VB的通信控件MSComm編寫實時監(jiān)測系統(tǒng)軟件,接收串行口送來的數(shù)據(jù),并進行相應(yīng)處理,在用戶界面上實時顯示與設(shè)置,并控制下位機部分。
用MSComm控件實現(xiàn)與下位機的通信時,選中標題為“串口取值”的選項按鈕控件,讀取下位機傳來的數(shù)據(jù);用VB提供的“Rnd”函數(shù)生成隨機數(shù),選中標題為“隨機數(shù)演示”的選項按鈕控件,實現(xiàn)讀取隨機數(shù)。讀取到的數(shù)據(jù)用標簽框控件“Label1”顯示出來,并在圖片框控件“picChart”中繪制溫度隨時間變化的曲線。繪制曲線需要用到計時器控件,以便控制繪圖的時間間隔。由于隨時都有可能需要讀取溫度值,可以用一個復(fù)選框控件實現(xiàn)停止讀取數(shù)據(jù),同時停止繪圖。用兩個組合框控件分別設(shè)定正常溫度上下限。圖形控件用來顯示溫度的正常或危險狀態(tài),本設(shè)計采用了兩個圖形控件,黃色與綠色交替出現(xiàn)為正常,黃色與紅色交替出現(xiàn)為危險。當(dāng)選擇讀取下位機的哪一路數(shù)據(jù)時,采用了選項按鈕控件,可以選擇從第1路到第3路的數(shù)據(jù)通道。為擴展對更多路數(shù)據(jù)的采集,還采用了一個組合框控件,其中裝載了從第4路到第15路的數(shù)據(jù)通道。
通信部分
利用MSComm控件,程序?qū)崿F(xiàn)起來相對簡單、結(jié)構(gòu)清晰,并且該控件具有與串行通信密切相關(guān)的豐富屬性和事件,可以提供對串口的各種操作,使用起來很方便,因此,實時監(jiān)測系統(tǒng)軟件使用這種方式與下位機實現(xiàn)串行通信。MSComm控件提供兩種不同的通信處理方式。事件驅(qū)動通信是處理串行端口交互作用的一種有效方法。在許多情況下,當(dāng)事件發(fā)生時需要得到通知。此時,可利用MSComm控件的OnComm事件捕獲并處理這些通信事件。OnComm事件還可以檢查和處理通信錯誤,將所有通信事件和通信錯誤進行列表。如果不使用事件方式,那么在程序的每個關(guān)鍵功能之后,可通過檢查CommEvent屬性值查詢事件和錯誤。如果應(yīng)用程序較小,這種方法可能具有更高可行性。
檢測儀與PC機通過RS-485異步串行通信接口進行通信,波特率為9,600bps,無奇偶校驗位,8位數(shù)據(jù)位,1位停止位。
在識別對下位機的某一路數(shù)據(jù)進行采集的程序中,采了幾個選項按鈕控件和一個組合框控件。例如選中標題為“1號”的選項按鈕,則由上位機向下位機發(fā)送十六進制的“1”。對應(yīng)單片機編程中也用十六進制的“1”標識第1路數(shù)據(jù)。當(dāng)下位機接收到十六進制的“1”后,就把第1路的數(shù)據(jù)傳送到上位機。要讀取第6路或更多路數(shù)據(jù),則從組合框中選擇。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。