錢晨,徐忻,嵇達文
(光大環(huán)境科技(中國)有限公司,江蘇 南京 210003)
在垃圾滲濾液處理中,膜污染已成為影響膜系統(tǒng)運行效率的重要因素,引起人們廣泛的關(guān)注。目前很多研究者開展了有關(guān)膜污染防治、膜處理工藝和膜處理效果等方面的研究,并取得了實質(zhì)性的進展。劉研萍等人對垃圾滲濾液處理項目進行了研究,從預(yù)處理、膜污染結(jié)構(gòu)與形態(tài)、膜清洗等方面,探討了膜污染的防治措施并取得了階段性的成果[1];遲軍永等人分析了膜污染的形成,并提出了判斷清洗時機和評價清洗效果的方法,對超濾膜在滲濾液處理中的應(yīng)用有一定的指導(dǎo)意義[2];羅丹等人論述了膜分離技術(shù)在垃圾滲濾液處理中的應(yīng)用,并發(fā)現(xiàn)膜污染是阻礙其發(fā)展的主要原因,為此提出研發(fā)新材料,優(yōu)化膜工藝才能使膜技術(shù)更好的為垃圾滲濾液處理服務(wù)[3]。由上述研究現(xiàn)狀總結(jié)可見,對垃圾滲濾液膜污染的研究主要偏向于對膜污染的治理、膜工藝的改進和優(yōu)化方面,而對膜處理過程中的自動化、信息化和智能化問題鮮有涉足。在該背景下,本文提出了評估超濾膜污染狀況的方法并據(jù)此設(shè)計了一套系統(tǒng),該系統(tǒng)基于瀏覽器/服務(wù)器(B/S)模式并結(jié)合神經(jīng)網(wǎng)絡(luò)算法以及當(dāng)前主流的前后端框架,以網(wǎng)頁形式展示預(yù)測結(jié)果,并以此為依據(jù)及時對膜進行清洗,從而提高超濾處理過程的效率。
根據(jù)歷史工況數(shù)據(jù)預(yù)測超濾膜污染情況,首先要獲取超濾處理過程的歷史數(shù)據(jù),但由于現(xiàn)場很多情況下超濾循環(huán)泵都是滿負荷運行,導(dǎo)致歷史工況數(shù)據(jù)較為單一,直接使用這些數(shù)據(jù)建模可能會導(dǎo)致效果不佳,因此需要進行一段時間的實驗來獲取不同工況下的數(shù)據(jù)。實驗中通過對超濾過程進行固定時間間隔取樣,獲取其中涉及的相關(guān)量并以此為依據(jù)選取距離上一次的清洗時間、COD值、氨氮比、污泥濃度、進水流量、溫度、進水壓力、產(chǎn)水流量、濃水壓力作為樣本。算法模型設(shè)計流程分三個部分。
根據(jù)實際工藝,考慮到現(xiàn)場沒有安裝出水壓力測量裝置,因此只能根據(jù)原理得出超濾膜出水壓力等于進水壓力減去濃水壓力,進而計算出超濾膜壓差等于進水壓力與出水壓力的差值。再選取實驗過程中運行最好的工況作為初始狀態(tài),對應(yīng)的膜壓差和膜通量作為初始膜壓差和初始膜通量,并結(jié)合理論推導(dǎo)出膜污染指數(shù)公式[4]如式(1)所示:
(1)
式中:FI——膜污染指數(shù),m2/L;J0——初始膜通量,L/(m2·h);J——膜通量,L/(m2·h);p0——初始膜壓差,Pa;p——膜壓差,Pa;Vsp——單位面積膜的產(chǎn)水量,L/m2。
在實驗過程中難免會出現(xiàn)數(shù)據(jù)采集中斷、人為誤操作和儀器儀表故障等客觀原因?qū)е聰?shù)據(jù)缺失,目前最常用的缺失值處理辦法是刪除法和填補法,其中填補法又包括替代法和模型預(yù)測法。模型預(yù)測法包含回歸、灰度理論、極大似然估計、移動平均等算法[5-6]。根據(jù)現(xiàn)場實驗情況發(fā)現(xiàn)超濾進水水質(zhì)變化有一定的規(guī)律性,因此本文采用回歸填補法,盡可能不失真地還原缺失數(shù)據(jù)。
除此之外,還考慮到儀器故障、系統(tǒng)采集信號延遲和網(wǎng)絡(luò)丟包等因素造成的數(shù)據(jù)異常,目前對異常值的處理辦法主要包括: 刪除異常值、將異常值視為缺失值、用平均值修正等[5-8]。本文采用將異常值視為缺失值的方法。
首先將預(yù)處理后的數(shù)據(jù)集劃分成訓(xùn)練集和測試集;然后采用訓(xùn)練集對神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練,同時利用測試集評估建立的模型[9]。反復(fù)執(zhí)行上述步驟,優(yōu)化模型參數(shù)以獲取最優(yōu)模型。本文在模型訓(xùn)練中采用梯度下降法[10],如式(2)所示:
(2)
式中:α——步長;θ——求解的待定系數(shù);J(θ)——θ方差最小的損失函數(shù)。
本文通過采樣時間內(nèi)的數(shù)據(jù)訓(xùn)練得到3層神經(jīng)網(wǎng)絡(luò)模型如圖1所示,輸入層節(jié)點數(shù)為6,輸出層節(jié)點數(shù)為1,隱藏層節(jié)點數(shù)為7。除輸入層外,每一層的節(jié)點都包含了1個非線性Sigmoid變換[11],該變換呈現(xiàn)單增性,且可以將任何實數(shù)映射到0,1之間,但該模型需要根據(jù)具體工藝和具體采樣時間更新模型參數(shù)以適應(yīng)工況的變化。
圖1 神經(jīng)網(wǎng)絡(luò)模型示意
獲取輸入?yún)?shù)的最新數(shù)據(jù)輸入神經(jīng)網(wǎng)絡(luò)模型中進行運算,產(chǎn)生唯一的輸出用于預(yù)測超濾膜污染情況。
該系統(tǒng)采用B/S模式,在該種模式下,用戶通過瀏覽器發(fā)出請求,服務(wù)器對用戶的請求作出響應(yīng)。瀏覽器只負責(zé)將結(jié)果對外展示,而主要的事務(wù)邏輯均放在服務(wù)端統(tǒng)一完成[12]。B/S架構(gòu)通常分為3層[13]: 第1層為表現(xiàn)層,只負責(zé)前端頁面展示;第2層為業(yè)務(wù)邏輯層,起到承上啟下的作用,向上接收前端用戶請求,將邏輯處理后的結(jié)果返回給表現(xiàn)層,向下既要調(diào)用數(shù)據(jù)庫訪問層的接口,又要接收訪問數(shù)據(jù)庫返回的結(jié)果;第3層為數(shù)據(jù)訪問層,負責(zé)對數(shù)據(jù)庫進行增、刪、改、查操作。
該系統(tǒng)以Linux操作系統(tǒng)為平臺,以IntelliJ IDEA為Java語言開發(fā)工具。采用前后端分離的開發(fā)模式,模塊化編程,前后端并行開發(fā)提升效率。系統(tǒng)架構(gòu)如圖2所示,其有四個部分: 前端、后端、數(shù)據(jù)庫以及算法實現(xiàn)部分。其中前端由Jquery框架、BootStrap框架、ACE框架以及HighCharts框架構(gòu)成,實現(xiàn)了Web頁面的響應(yīng)式布局、局部刷新和模塊化展示。后端開發(fā)是以JDK8為開發(fā)工具包,使用SSM整合框架,并引入Shiro作為后端的安全框架進行身份認證和會話管理[14]。數(shù)據(jù)庫采用MySql開源關(guān)系型數(shù)據(jù)庫,以事務(wù)管理的方式保證數(shù)據(jù)存儲的安全性和可靠性,同時采用目前性能較佳的數(shù)據(jù)庫連接池技術(shù)druid,合理地配置數(shù)據(jù)庫連接資源,提高數(shù)據(jù)庫操作的性能。算法實現(xiàn)部分采用PyCharm集成開發(fā)工具編寫Python腳本,以Json數(shù)據(jù)格式返回結(jié)果并寫入數(shù)據(jù)庫中。整個系統(tǒng)的管理采用Apache Maven工具,用于管理項目依賴的jar包、編譯、文檔及維護整個項目的生命周期(project lifecycle)。
圖2 系統(tǒng)架構(gòu)示意
由圖2可知,按功能把系統(tǒng)分為登錄模塊、算法模塊和Web展示模塊。登錄模塊通過SpringBoot整合Shiro完成用戶身份認證和會話管理。身份認證采用Shiro的過濾器設(shè)置過濾鏈表,使所有用戶只有成功登錄后才能訪問主頁,否則被攔截。會話管理是通過創(chuàng)建由Shiro統(tǒng)一管理的Session對象實現(xiàn),每次http請求都會攜帶SessionID以保證同一會話,一旦Session過期失效,用戶需要重新登錄開啟新的會話,否則用戶發(fā)起的任何請求都會強制跳轉(zhuǎn)到登錄頁。
圖3 算法模塊執(zhí)行流程示意
算法模塊執(zhí)行流程如圖3所示。
該流程分為前期處理和算法執(zhí)行兩部分,其中算法執(zhí)行部分采用Python語言實現(xiàn),通過Crontab腳本將Python程序加入Linux定時任務(wù)列表循環(huán)執(zhí)行,源源不斷地將算法輸出結(jié)果存入數(shù)據(jù)庫,實現(xiàn)按時預(yù)測膜污染指數(shù)的功能。
Web模塊執(zhí)行流程如圖4所示。
圖4 Web模塊執(zhí)行流程示意
Web展示模塊基于傳統(tǒng)MVC模式,采用SSM輕量級復(fù)合框架搭建后端業(yè)務(wù)平臺,通過靈活地使用Jquery,BootStrap和HighCharts框架對前端頁面進行快速簡潔地開發(fā),同時合理地選用前后端銜接技術(shù)有效地降低系統(tǒng)的耦合度,提高代碼的可復(fù)用性。由圖4可知,點擊膜污染指數(shù)評估菜單,通過ajax的GET方式發(fā)起異步請求,請求對應(yīng)Restful風(fēng)格的url: "optimization/mog1PollutionData/"+startTime+"/"+endTime。位于后端的DispatcherServlet接收到請求并進行解析,找到與之匹配的@RequestMapping("/optimization")控制器類后,進一步窄化請求找到與@GetMapping(value="/mog1PollutionData/{startTime}/{endTime}")對應(yīng)的Restful方法。方法中通過@PathVariable("")注解得到startTime和endTime并把它們作為實參傳入Service對象的業(yè)務(wù)處理函數(shù)selectByModelIdandName(),通過在該函數(shù)中注入Mapper代理對象,調(diào)用其接口函數(shù)從數(shù)據(jù)庫中查詢到前12 h膜污染指數(shù)的預(yù)測結(jié)果,進而向上返回到Service層再到Controller層,最后成功地返回給ajax請求的異步函數(shù),并結(jié)合Highcharts圖表框架對前端頁面進行局部渲染,同時通過BootStrap響應(yīng)式柵格系統(tǒng)優(yōu)化頁面布局,使其結(jié)構(gòu)清晰層次分明。
該系統(tǒng)在光大環(huán)保能源公司滲濾液處理站部署以來運行效果良好,前12 h膜污染指數(shù)預(yù)測曲線如圖5所示。
圖5 膜污染指數(shù)預(yù)測曲線示意(2020-01-10)
由圖5可知,由于短時間內(nèi)膜污染程度變化不大,因此只展示出每小時的預(yù)測結(jié)果,通過這些數(shù)據(jù)操作人員便可直觀地了解超濾膜污染情況,提前對膜進行處理,改善超濾產(chǎn)水水質(zhì),確保反滲透的正常運行。除此之外,還可以點擊“實時推薦”按鈕,系統(tǒng)立即執(zhí)行算法預(yù)測出超濾循環(huán)泵推薦功率、超濾膜污染指數(shù)預(yù)測值及預(yù)期產(chǎn)水量,為現(xiàn)場技術(shù)人員及時決策提供了參考。以2020年1月10日某時刻為例,按下“實時推薦”按鈕后,推薦功率為28.2 kw,膜污染指數(shù)為38.7%,預(yù)期產(chǎn)水量為6.1 L/m2。
本文基于B/S模式并結(jié)合神經(jīng)網(wǎng)絡(luò)模型,采用當(dāng)前主流的前后端框架和Python智能化語言,開發(fā)了超濾膜污染情況預(yù)測系統(tǒng),該系統(tǒng)通過登錄模塊、算法模塊和Web展示模塊為用戶提供了身份認證、預(yù)測分析以及結(jié)果查詢等功能,并且具有界面友好、操作簡單和便于維護等優(yōu)勢。將該系統(tǒng)應(yīng)用于光大環(huán)保能源公司項目中,為現(xiàn)場操作人員準確判斷膜清洗的時機提供了依據(jù),對推動滲濾液處理信息化有一定的現(xiàn)實意義。