0 引言
我國現擁有的鍋爐設備四十多萬臺,這些鍋爐是工業、農業及民用上不可缺少的動力設備,也是用于各行業及民用采暖中的重要設備。鍋爐現代化的管理不但需要安全、自動化的控制方案,還需考慮到高效、節能、無污染、無噪音等方面的因素。所以,對于鍋爐的研究仍是一個需要探索、研究和學習的領域。
早期的鍋爐自動化程度不夠高,監控系統不夠完善,導致系統故障率高,維修困難;本系統利用工控組態軟件MCGS設計鍋爐的液位和溫度控制系統,通過OLE技術將控制器嵌入到系統中,可實時調整系統參數,實現上位機管理監控,從而在很大程度上提高系統的自動化程度和控制精度。
1 系統分析
液位的控制是通過控制進水或出水閥門的開度,改變水流量來實現的,而水溫的控制是通過調節加熱的功率來實現的。在控制器設計中,采用技術相對成熟的經典PID控制,同時加死區、步長控制和輸出限幅控制。在MCGS中設定水位溫度上下限、死區、比例帶等參數,實際運行是通過OLE技術連接到VB中運算,運算結果再返回到監控系統中,實時的顯示與控制
2 PID控制器的設計
根據鍋爐實際工藝特點和所要達到的控制效果,下面分析控制器設計的具體流程。控制器的設計由主程序和幾個子程序構成。
2.1主程序
以鍋爐的液位控制為例來說明主程序的實現(溫度控制類似),先采集關于鍋爐的實際過程參數值并設定算法中的各個參數。然后判斷給定水位和測量水位之差(即偏差)與偏差限度之間的大小關系,如果偏差大于偏差限度,那么采用快速PID參數調節,如果偏差在偏差限度的允許范圍內,采用精確的PID參數的運算調節,然后要對這個輸出的閥位進行一定的限制與控制,需要限制的是閥的死區、步長、高低限,經過一定的控制之后輸出的才是最后的閥位結果。主程序流程圖如圖1所示。
圖1 PID控制器主程序框圖
2.2 PID參數計算子程序kpkikd
在讀取數據之后,計算PID控制需要的參數值,首先計算給定值與測量值之間的差值,即偏差。這里考慮這樣一個問題,如果偏差比較大的話,要快速跟蹤給定值,稱之為粗調,如果偏差比較小的話,那么更應該注重控制的精度,采用細調。這兩個子程序分別由kpkikd2和kpkikd1實現。二者的計算方法基本一致,只是所采用的比例帶,積分時間和微分時間不同。
2.3偏差的計算子程序En_Ln_Mn_Nn
PID的參數調節實現的功能是計算出實際PID控制器的各個系數kp、ki、kd的過程,偏差計算程序En_Ln_Mn_Nn是利用數據采集子程序取得的當前過程值計算出回路中的各種偏差、偏差累計及偏差變化率ln、en、mn,采用位置算法(數據采集子程序略)。
2.4 PID輸出子程序PIDout
在得到PID的比例、積分、微分系數以及偏差的一階和二階變化之后,即可得到控制輸出,系統設計中考慮這樣一個問題,如果偏差很小,那么對液位進行控制的意義不大,所以可以設定一個調節死區DB,當偏差小于調節死區時,則不進行PID調節,當偏差大于調節死區時,再進行PID調節。在進行PID調節時,考慮到控制的精度問題,將積分系數分為兩部分,當偏差變化率為正時,采用積分系數ki1,當偏差變化率為負時,采用積分系數ki2。有了PID的系數和偏差,即可利用(Pid)子程序得到具體的PID調節器的輸出:pidY = kp * ln + ki * en + kd * mn 。
2.5死區、步長、輸出高低限幅的設定
在實際系統中,如果頻繁的變動閥門的開度,或者閥門動作過大,都會對閥門造成一定的傷害,降低閥門的使用壽命,所以要限制閥門的頻繁變化以及閥門的最大變化步長,以起到保護閥門的作用。首先設置閥門的最大開度與最小開度,當閥位計算值超過最大限度時應使其保持在最大閥位,而當閥位計算的值小于最小閥位時,則要使閥位保持在最小閥位。步長限幅的原理類似,當輸出的開度范圍大于給定的閥位步長VS時,取VS,其中應該考慮到閥位的正負。死區設定根據工藝要求和現場經驗設定。最后將輸出值保存到閥位的初始值,并取得水位的實時變化值。
3 MCGS與OLE技術
計算機技術和網絡技術的飛速發展,為工業自動化開辟了廣闊的發展空間,用戶可以方便快捷地組建優質高效的監控系統,在這方面,MCGS工控組態軟件提供強有力的軟件支持。本系統采用全中文工控組態軟件MCGS來實現。
OLE(Object Linking & Embedded)是指對象的鏈接與嵌入技術。OLE控件是可以嵌入的組件對象模型(COM),它是作為一個進程中的服務器的動態鏈接庫來實現的。
MCGS把其核心作為一個對象包裝起來,把MCGS的大多數功能作為對象的屬性和方法暴露出來,使其它的應用程序通過OLE自動化來操作MCGS,在VB中通過OLE來取得MCGS實時數據庫對象,編程操作MCGS提供的屬性和方法。
4 組態系統的實現
鍋爐液位和溫度控制PID程序是通過VB編制的,通過OLE與MCGS連接,首先讀取MCGS中的各個數據和參數到VB中,經過控制運算以后再送回到MCGS中去,如圖2所示。
在MCGS中需要做的工作有幾部分,首先是定義變量,在實時數據庫中定義變量,這些參數變量分別為實現各個功能服務。然后在用戶窗口中組態,并將各個輸入框與實時數據庫中的數據連接,同時將實時曲線中的顯示曲線的變量和給定值以及測量值連接上。然后在主控窗口中定義其初始設置等。經過檢查無誤后,組態工作即完成。
然后運行系統,結果輸出就是要得到的閥位的控制量輸出。另外為了觀察到實際的控制效果,將水位的給定值、實時測量值和閥位的變化值同時送到MCGS中實時顯示,通過實時曲線可以觀察最終控制效果。
5 結束語
通過分析鍋爐液位和溫度系統的控制特點及要求,采用VB編制PID控制程序通過OLE與MCGS連接,設計出了鍋爐水位和溫度的控制器,實現了水位和溫度計算機自動控制。
參考文獻
[1] 范從振. 鍋爐原理. 北京:水利電力出版社,2000
[2] 施仁 等. 自動化儀表與過程控制. 北京:電子工業出版社,2003
[3] 陶永華 等. 新型PID控制及其應用. 北京:機械工業出版社,1999