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