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