蔡朝陽,柳 源,沈曉莉,吳新國
(中海油天津化工研究設計院有限公司,天津正達科技有限責任公司,天津 300308)
目前,工業循環冷卻水處理系統正在加速數字化與智能化轉型,許多系統已經安裝了在線檢測和遠程控制裝置,但大多數裝置只能提供數據展示和可視化,無法自動判斷系統運行狀況。隨著國家大力發展數字經濟和人工智能,研發能自動判斷和調整循環水系統的水處理裝置已變得極為必要。
循環水的濃縮或稀釋條件是循環水冷卻系統運行狀態中最重要的指標之一[1]。它綜合反映了循環水系統補水、排水和熱負荷等參數。準確掌握循環水濃縮與稀釋情況,可以提前預警循環水補排水異常和漏水問題。
線性回歸算法是人工智能中最基本的機器學習算法,也是目前應用最廣泛的算法之一,普遍用于數據預測與線性相關分析[2]。本文將在線檢測的電導率數據與線性回歸算法結合,擬合一段時間內電導率變化成一條直線,直線斜率用來判斷循環水的濃縮狀態。
1)x、y均為輸入參數,x原為采集時間,共有n個,但時間格式無法參與計算,即將時間轉換為由1到n整數列,并與時間對應,y為相應電導率值。
w,b∈R


4)因共有n個時刻的電導率,所以要建立一個總體損失函數,方程為損失函數的算術平均值的二分之一,總體損失函數表征預測值與實際值的近似程度。
5)為了找到J(w,b)最優解,我們使用反向傳播算法,通過鏈式求導法,反向推進,逐步求出該函數對于未知數w,b的偏導數:


7)根據最優解的w值及擬合的直線斜率來判斷時間n內電導率變化情況,及水系統濃縮情況,當w大于0時,水系統電導率呈整體上升趨勢;w小于0 時,水系統電導率呈整體下降趨勢。
本次線性回歸算法實現是通過python編程語言,結合Pandas和numpy庫進行科學計算,通過matplotlib庫實現可視化。
本次研究數據來源于某石化公司循環水系統近一年的歷史數據,該系統的保有水量為2.5萬m3,循環水量為7萬m3/h。正常運行時,濃縮倍數在7~10。該水系統安裝了在線檢測和遠程控制系統,可以監測pH值、電導率、氧化還原電位和藥劑濃度等參數,每分鐘向云服務器上傳一次數據。該水系統熱負荷較高,濃縮速度較快,十分適合本次算法的實現與驗證。
我們在天津正達科技有限責任公司自主研發的“正達智慧水質控制云平臺”上下載了該系統近半年的歷史電導率數據,采用Python的Pandas庫讀取這些電導率歷史數據。
2.2.1 缺失、異常值處理
在對電導率歷史數據進行線性回歸分析前,必須先對數據進行處理,消除異常值和缺失值。
對于缺失值,我們遍歷整個數據集,定位缺失的數據點,并用上一時間節點的數據進行替換。這可以最大限度地補充丟失的數據,使數據集更加完整。
對于異常值,需要將整個數據近似看作服從正態分布,計算出平均值μ與標準差σ。如果某個數據值落在μ±3σ區間外,即可判斷該數據異常,并將其替換為上一時刻的數據[3]。
2.2.2 數據類型處理
為了更好的實現線性回歸算法,需設定每次線性回歸時所截取的初始位置和范圍(本文設定初始位置start=10000,范圍area=2000)。將時間轉換為整數列,并通過numpy庫將電導率值及整數列均轉換為矩陣格式。圖1為電導率折線圖。

圖1 start=10000,area=2000時電導率圖
設定迭代次數m=500次,初始設定w,b均為1,設定w的學習速率為a=10-6,b的學習速率為c=0.1,根據線性回歸原理編寫代碼,并每迭代100次打印w、b、J的值。
運行結果如下:
第1次循環,w:1.1977805665,b:53.74745000000001,J:301909.00675
第100次循環,w:0.1164001784998458,b:1379.196607649783,J:2476.082405
第200次循環,w:0.0212565758988605,b:1503.7705236895,J:28.4377887435
第300次循環,w:0.0125798508467344,b:1515.13117841144,J:8.0813947012
第400次循環,w:0.0117885674017936,b:1516.1672257623,J:7.91209611774
第500次循環,w:0.0117164054413215,b:1516.261709235,J:7.910688107473
由以上看出,隨著迭代開始,J值迅速下降,并最終收斂于7.91左右,最終w值為0.01172,b值為1516.2617。w值為正值,該時間范圍內水系統為濃縮過程。將直線繪制至電導率圖像內可得到圖2。

圖2 start =10000,area=2000時電導率及趨勢線圖
對起始位置start取不同值,area不變,得出不同時間段內水系統濃縮情況變化(表1)。再通過與實驗室分析濃縮倍數變化情況做出對比,以確定如何以w值判斷水系統濃縮情況。

表1 算法結果與實驗室分析對比
由表1看出,當w值處于-0.005~0.005之間時,可判斷水系統處于既不濃縮也不稀釋的穩定運行狀態;當w>0.005時,水系統處于濃縮狀態;當w<-0.005時,水系統處于稀釋狀態。
上述線性回歸算法雖然可以自動判斷一定時間范圍內電導率變化趨勢,但考慮到實際情況,當上述算法對實時采集的電導率進行判斷時,會出現一定的滯后性(如先升后降時,當電導率降低至一定程度時w值才會變為負數)。
此時可采用對w值的實時監測進行彌補,即在進行實時線性回歸時最優解中w的變化情況。通過代碼對取值初始位置(start=10000)不斷向后迭代(200次)以模擬實時采集判斷(area保持2000不變),記錄每次迭代中w的最優值,如圖3。

圖3 w值變化曲線圖
由圖3看出,w值再不斷升高,也就表明再水系統在后 200 min 內濃縮是逐漸加劇的。對比圖4中藍框中數據表明,該 200 min 電導率是急劇上升的。這樣就可以通過w值的變化情況來表征一部分系統濃縮情況。即當出現表2中的情況時可給予判斷。(本次w值以w1標識,上次為w0)

表2 濃縮情況修正表

圖4 start =10000,area=2200時電導率及趨勢線圖
線性回歸算法作為機器學習中基礎算法,擁有模型簡單、解釋性強等優勢,但也有不足之處:
1)對異常值敏感,異常值會對最優解產生極大的影響,所以使用線性回歸時必須提前對異常值進行處理[4]。
2)通過對電導率進行線性回歸對水系統濃縮情況的判斷,過于依賴電導率的準確性,并容易被電導率的異常升高或降低誤導,如漏入高鹽水或系統出現鹽的沉積等,所以研發出更多的可以表征濃縮情況的在線檢測探頭,如K+、SiO2等,結合多個參數可以得到更加準確的判斷。
3)線性回歸存在一定滯后性。因電導率在線檢測波動性,我們無法設定較小的時間范圍。這會導致在判斷變化趨勢時出現滯后。
通過使用線性回歸算法對循環水系統電導率進行趨勢判斷,可輔助水處理工作者們判斷循環水處理系統運行狀態,以便更好地管理循環水系統。
下一步工作,將通過優化算法,解決上述不足,并將更多的人工智能算法如聚類算法、決策樹、神經網絡算法、強化學習等引入到工業循環水處理工作中[5]。
未來,隨著人工智能技術發展,高效的智能系統將逐漸廣泛應用于工業生產各環節。工業4.0的實施離不開高水平的人才與技術支撐,這也是工業發展與轉型升級的必然要求。我們應抓住歷史機遇,努力提高自身的知識與技能,致力于人工智能技術的研發與應用,為人類社會的進步與發展作出應有的貢獻。