王慧鋒 吳中相
(華東理工大學(xué)信息科學(xué)與工程學(xué)院,上海 200237)
儲(chǔ)罐液位監(jiān)控是庫區(qū)自動(dòng)化中的重要一環(huán),關(guān)系到庫區(qū)的經(jīng)濟(jì)效益及運(yùn)行安全等多方面問題。由于儲(chǔ)罐的容量較大,單位時(shí)間儲(chǔ)罐液位高度變化微小且微小的高度誤差都會(huì)帶來很大的容量誤差,因此精確穩(wěn)定的液位監(jiān)測(cè)和高精度的液位控制顯得異常重要。
儲(chǔ)罐液位的自動(dòng)測(cè)量儀表通常采用伺服液位計(jì)、超聲波液位計(jì)及雷達(dá)液位計(jì)等。通過讀取儀表的液位信號(hào),完成對(duì)儲(chǔ)罐液位的監(jiān)控過程。但液位儀表檢測(cè)出的儲(chǔ)罐液位信號(hào)常常伴有以下問題,如儲(chǔ)罐進(jìn)出料、油輪上儲(chǔ)罐或攪拌器運(yùn)行時(shí)液面發(fā)生的波動(dòng)及液位信號(hào)夾雜著測(cè)量噪聲等,都會(huì)影響儲(chǔ)罐液位的監(jiān)控效果。解決此類問題的關(guān)鍵在于對(duì)儲(chǔ)罐液位信號(hào)進(jìn)行濾波處理,將影響液位監(jiān)控的液面波動(dòng)、測(cè)量噪聲和失波效應(yīng)濾除,從復(fù)雜的現(xiàn)場(chǎng)液位信號(hào)中獲取真實(shí)平穩(wěn)的液位信號(hào)從而實(shí)現(xiàn)高效的液位監(jiān)控。傳統(tǒng)的方法如平均值濾波等[1],會(huì)在一定程度上避免噪聲對(duì)監(jiān)控造成的影響,但當(dāng)發(fā)生諸如液位信號(hào)夾雜能量較高的噪聲、超聲波或雷達(dá)液位計(jì)發(fā)生短暫虛假回波或儲(chǔ)罐液位長時(shí)間周期性波動(dòng)等情況時(shí),其濾波效果不明顯,且算法的實(shí)時(shí)性差,影響控制效果。文獻(xiàn)[2]提出的誤差回歸模型方法,在特定條件下可以很好地預(yù)測(cè)真實(shí)液位,但該方法適應(yīng)性較差,不同情況需要采用不同的誤差模型完成對(duì)誤差液位的修正處理,且該方法并沒有從本質(zhì)上濾除液位信號(hào)的干擾和噪聲。
針對(duì)平均值濾波及噪聲回歸模型等方法的缺陷,結(jié)合實(shí)際應(yīng)用背景并對(duì)各類濾波方法進(jìn)行深入研究后[3~6],筆者提出了基于卡爾曼濾波器的儲(chǔ)罐液位監(jiān)控方法,并將其應(yīng)用在COC儲(chǔ)運(yùn)培訓(xùn)中心的庫區(qū)自動(dòng)化控制系統(tǒng)中,實(shí)現(xiàn)了儲(chǔ)罐液位的穩(wěn)定監(jiān)測(cè)和高精度控制,收到了理想的效果。
儲(chǔ)罐液位模型結(jié)構(gòu)如圖1所示。

圖1 儲(chǔ)罐液位模型

(1)
卡爾曼濾波的基本思想是采用信號(hào)與噪聲的狀態(tài)空間模型,利用前一時(shí)刻的估計(jì)值和現(xiàn)在時(shí)刻的觀測(cè)值來更新對(duì)狀態(tài)變量的估計(jì),求出現(xiàn)在時(shí)刻的估計(jì)值??柭鼮V波在隨機(jī)干擾和噪聲的情況下,以線性最小方差估計(jì)方法給出狀態(tài)的最優(yōu)估計(jì)值[8~10]。
由于筆者討論的是卡爾曼濾波在Rockwell PLC平臺(tái)上的實(shí)現(xiàn),屬于離散系統(tǒng)的范疇,因此在濾波前,首先要將待濾波系統(tǒng)的傳遞函數(shù)離散化:

(2)
其中x(k)是k時(shí)刻的系統(tǒng)狀態(tài),u(k)是k時(shí)刻對(duì)系統(tǒng)的控制量,A和B分別是系統(tǒng)矩陣和控制矩陣,C為輸出矩陣,w(k)和v(k)分別是k時(shí)刻的控制和測(cè)量噪聲,且滿足E[w(k)]=E[v(k)]=0,E[w(k)wT(j)]=0,E[v(k)vT(j)]=R,E[v(k)wT(j)]=0。
卡爾曼濾波器的濾波過程分為兩部分,分別為時(shí)間更新環(huán)節(jié)和測(cè)量更新環(huán)節(jié),時(shí)間更新環(huán)節(jié)預(yù)測(cè)測(cè)量更新環(huán)節(jié)所需要的參數(shù),測(cè)量更新環(huán)節(jié)修正時(shí)間更新環(huán)節(jié)的測(cè)量結(jié)果。
時(shí)間更新環(huán)節(jié)包含兩個(gè)方程:
x(k|k-1)=Ax(k-1|k-1)+Bu(k)
(3)
P(k|k-1)=AP(k-1|k-1)AT+BQBT
(4)
其中,x(k|k-1)為k時(shí)刻的先驗(yàn)狀態(tài)估計(jì)值(根據(jù)系統(tǒng)過程原理或經(jīng)驗(yàn)得到的估計(jì)值),x(k|k)為k時(shí)刻的后驗(yàn)狀態(tài)估計(jì)值(結(jié)合之前的先驗(yàn)狀態(tài)估計(jì)值和加權(quán)測(cè)量值得到理論上最接近真實(shí)值的結(jié)果)。定義系統(tǒng)的先驗(yàn)協(xié)方差和后驗(yàn)協(xié)方差分別為P(k|k-1)=E[e(k|k-1)·e(k|k-1)T]和P(k|k)=E[e(k|k)·e(k|k)T],其中e(k|k-1)=x(k)-x(k|k-1)為系統(tǒng)的先驗(yàn)誤差,e(k|k)=x(k)-x(k|k)為系統(tǒng)的后驗(yàn)誤差。
測(cè)量更新環(huán)節(jié)包含3個(gè)方程:
(5)
x(k|k)=x(k|k-1)+K(k)[Z(k)-Cx(k|k-1)]
(6)
P(k|k)=[I-K(k)C]P(k|k-1)
(7)
其中,K(k)為Kalman增益或混合因子,Z(k)-Cx(k|k-1)包含了所有的誤差信息,稱為新息。
卡爾曼的濾波過程為:
a. 根據(jù)式(3)計(jì)算當(dāng)前時(shí)刻系統(tǒng)狀態(tài)的先驗(yàn)估計(jì)值x(k|k-1);
b. 根據(jù)式(4)計(jì)算當(dāng)前時(shí)刻系統(tǒng)協(xié)方差的先驗(yàn)估計(jì)值P(k|k-1),此時(shí)完成了時(shí)間更新環(huán)節(jié),隨后進(jìn)入測(cè)量更新環(huán)節(jié);
c. 根據(jù)式(5)計(jì)算Kalman增益K;
d. 根據(jù)式(6)計(jì)算當(dāng)前時(shí)刻系統(tǒng)狀態(tài)的后驗(yàn)估計(jì)值x(k|k),該值即本輪計(jì)算的狀態(tài)輸出值;
e. 根據(jù)式(7)更新當(dāng)前時(shí)刻系統(tǒng)的后驗(yàn)協(xié)方差P(k|k)。
所有步驟結(jié)束后即完成了卡爾曼濾波器的一個(gè)工作周期。
儲(chǔ)罐液位監(jiān)測(cè)常伴有測(cè)量干擾,包括液位測(cè)量儀表本身的噪聲及進(jìn)出料時(shí)液位上表面的波動(dòng)等。將卡爾曼濾波器配置在液位測(cè)量儀表的后端,可以很好地抑制測(cè)量干擾,且可設(shè)置不同的測(cè)量噪聲協(xié)方差R實(shí)現(xiàn)對(duì)液位不同性能的跟蹤。液位監(jiān)測(cè)的原理如圖2所示。

圖2 儲(chǔ)罐液位監(jiān)測(cè)原理
監(jiān)測(cè)模式下的卡爾曼濾波器的工作不依賴于系統(tǒng)的模型,且無控制變量參與系統(tǒng)狀態(tài)的估計(jì),而僅根據(jù)輸入信號(hào)進(jìn)行濾波。因此,液位監(jiān)測(cè)時(shí)的卡爾曼濾波器參數(shù)應(yīng)設(shè)置為A=1,B=0,C=1。液位的原始信號(hào)反映儲(chǔ)罐液位的動(dòng)態(tài)變化,濾波信號(hào)反映儲(chǔ)罐液位的穩(wěn)定狀態(tài)和變化趨勢(shì),再將儲(chǔ)罐上的音叉信號(hào)融合在一起將實(shí)現(xiàn)完整的儲(chǔ)罐液位監(jiān)測(cè)系統(tǒng)。在海上航行的油輪上的儲(chǔ)罐,由于顛簸,儲(chǔ)罐液位上表面周期性波動(dòng)劇烈從而觸及高位音叉,使監(jiān)控系統(tǒng)的高位報(bào)警時(shí)斷時(shí)續(xù),影響儲(chǔ)罐監(jiān)控效果。而在監(jiān)控系統(tǒng)中加入卡爾曼濾波器后,液位檢測(cè)儀表檢測(cè)到的周期性振蕩信號(hào)將被濾除。此時(shí),若高位音叉報(bào)警,但濾波后液位信號(hào)低于音叉高度時(shí),則高位音叉報(bào)警無效;而當(dāng)濾波后的液位信號(hào)高于高位音叉位置且音叉報(bào)警時(shí),則高位音叉報(bào)警有效。
采用PID算法控制儲(chǔ)罐的液位,卡爾曼濾波器在PID控制策略中可起到對(duì)系統(tǒng)狀態(tài)的準(zhǔn)確估計(jì),濾除噪聲的同時(shí)可縮短傳統(tǒng)PID算法的調(diào)節(jié)時(shí)間,降低超調(diào)等[11,12]。此時(shí),卡爾曼濾波需要根據(jù)被控對(duì)象的狀態(tài)方程和PID控制器的控制量實(shí)現(xiàn)對(duì)系統(tǒng)狀態(tài)的預(yù)估。
基于卡爾曼濾波器的儲(chǔ)罐液位PID控制原理如圖3所示。

圖3 儲(chǔ)罐液位控制原理
將儲(chǔ)罐液位模型離散化,求得A、B、C。將其代入卡爾曼濾波算法中,按照上述卡爾曼濾波步驟,完成對(duì)儲(chǔ)罐液位的估計(jì),隨后求得與設(shè)定值的偏差,送入PID控制器計(jì)算控制量完成一次控制周期。
儲(chǔ)罐監(jiān)控系統(tǒng)結(jié)構(gòu)如圖4所示,采用Rockwell Logix5000(1789-L62)控制器,現(xiàn)場(chǎng)選用的物位儀表為Endress+Hauser FMP51導(dǎo)播雷達(dá),該雷達(dá)在量程小于或等于15m時(shí)精度可達(dá)±2mm,并以HART方式與控制器通信。變頻器接入交換機(jī)與PLC通信,實(shí)現(xiàn)對(duì)水泵狀態(tài)的讀取和頻率控制。上位機(jī)采用GE iFix SCADA系統(tǒng)。本測(cè)試庫區(qū)包含1號(hào)和2號(hào)兩個(gè)儲(chǔ)罐,兩儲(chǔ)罐高度均為10m、截面積均為7m2,配合現(xiàn)場(chǎng)管路和離心泵可實(shí)現(xiàn)物料在兩罐之間的輸送,罐內(nèi)物料為水??刂破鞯木幊汰h(huán)境采用RSlogix5000 V20.00,編程語言采用 Structured Text(ST)。

圖4 儲(chǔ)罐監(jiān)控系統(tǒng)結(jié)構(gòu)
將變頻器設(shè)置為50Hz輸出,向一號(hào)罐上裝料,同時(shí)向液位信號(hào)中加載強(qiáng)度為0.1的白噪聲和頻率為0.1Hz、幅值為2m的正弦波信號(hào),極端方式模擬儲(chǔ)罐裝料過程,考察卡爾曼濾波獲取儲(chǔ)罐液位變化趨勢(shì)的能力,測(cè)試結(jié)果如圖5所示。可以看出,噪聲液位信號(hào)已完全判斷不出液位變化的趨勢(shì),與真實(shí)液位偏離較大。卡爾曼濾波器參數(shù)R分別設(shè)置為0.01、0.1和1時(shí),3根曲線均很好地抑制了噪聲信號(hào),同時(shí)隨著R值的增大,卡爾曼濾波器的輸出與液位真實(shí)值貼合越緊密,表明R值越大的卡爾曼濾波器,其抗干擾能力也越強(qiáng),而越小R值的卡爾曼濾波器,其輸出跟蹤輸入的能力越強(qiáng)。在現(xiàn)場(chǎng)使用卡爾曼濾波器做儲(chǔ)罐液位監(jiān)測(cè)時(shí),應(yīng)根據(jù)現(xiàn)場(chǎng)噪聲和監(jiān)測(cè)要求合理改變R值。

圖5 儲(chǔ)罐液位監(jiān)測(cè)測(cè)試

PID控制器參數(shù)設(shè)置為P=200,I=0,D=0,卡爾曼濾波器R=0.1。現(xiàn)將1號(hào)儲(chǔ)罐內(nèi)水排空,控制水泵進(jìn)行裝罐,液位設(shè)定點(diǎn)為1m,向儲(chǔ)罐液位信號(hào)中加載強(qiáng)度為0.1的白噪聲,幅值為0.1m。儲(chǔ)罐液位變化情況如圖6所示,由于白噪聲作用,未加卡爾曼濾波器的儲(chǔ)罐液位在設(shè)定值0.5m處不能收斂。而加卡爾曼濾波的液位輸出平滑無波動(dòng),噪聲對(duì)控制精度并未造成影響。PID控制器輸出情況如圖7所示,加卡爾曼濾波器后控制器輸出平穩(wěn)無波動(dòng),而未加卡爾曼濾波器的PID控制器輸出則波動(dòng)劇烈。向液位信號(hào)中加載頻率為0.1Hz、幅值為0.1m的正弦信號(hào)時(shí),控制1號(hào)儲(chǔ)罐裝料過程可得到相似的控制效果。

圖6 儲(chǔ)罐液位控制曲線

圖7 PID控制器輸出
由此可見,卡爾曼濾波器提高了PID控制器的抗干擾能力,很好地抑制了噪聲及液面波動(dòng)等對(duì)儲(chǔ)罐液位監(jiān)控造成的影響。同時(shí),由于卡爾曼濾波給出了系統(tǒng)的最優(yōu)狀態(tài)估計(jì),優(yōu)化了PID控制器的調(diào)節(jié)作用,在對(duì)進(jìn)出料同時(shí)進(jìn)行的復(fù)雜儲(chǔ)罐液位控制過程中,還將具備縮短調(diào)節(jié)時(shí)間及降低超調(diào)量等優(yōu)點(diǎn)。
筆者提出了基于卡爾曼濾波器的儲(chǔ)罐液位監(jiān)控方法,該方法提高了儲(chǔ)罐液位監(jiān)測(cè)的穩(wěn)定性和控制的精度?;赗ockwell PLC平臺(tái)的卡爾曼濾波算法采用ST語言編制,并成功地將其應(yīng)用在某公司COC儲(chǔ)運(yùn)培訓(xùn)中心的庫區(qū)自動(dòng)化控制系統(tǒng)中,收到了很好的液位監(jiān)控效果。該方法及其在PLC平臺(tái)上實(shí)現(xiàn)的方式,對(duì)庫區(qū)儲(chǔ)罐液位監(jiān)控具有較高的指導(dǎo)意義和實(shí)用價(jià)值。