錢晨
摘? ?要:針對超濾循環(huán)泵在垃圾滲濾液處理中的能耗問題,設(shè)計了一套降低超濾循環(huán)泵能耗的方法及系統(tǒng)。該系統(tǒng)采用B/S架構(gòu)并結(jié)合神經(jīng)網(wǎng)絡(luò)訓(xùn)練出的最優(yōu)算法模型,提前對超濾循環(huán)泵的運行參數(shù)作出調(diào)整,從而起到節(jié)能降耗的作用。前端展示部分采用Jquery+Bootstrap+Highcharts+ACE框架,后端服務(wù)部分采用Spring+SpringBoot+MyBatis框架,前后端通過Json數(shù)據(jù)格式進行交互。系統(tǒng)經(jīng)過在線測試和現(xiàn)場試運行階段后,已正式投入使用,并取得良好的效果。
關(guān)鍵詞:超濾循環(huán)泵;能耗;B/S架構(gòu);神經(jīng)網(wǎng)絡(luò);前端;后端;Json
中圖分類號:TP39? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標(biāo)識碼:A
Design and Implementation of Energy Saving and Consumption Reduction
System for Ultrafiltration Circulating Pump Based on B/S Architecture
QIAN Chen
(Everbright Environmental Protection Technology Research Institute (Nanjing) Co.,Ltd.,Nanjing,Jiangsu 210003,China)
Abstract:Aiming at the energy consumption of ultrafiltration circulating pump in landfill leachate treatment,this paper designs a method and system to reduce the energy consumption of ultrafiltration circulating pump. The system adopts the B/S architecture and combines the optimal algorithm model trained by the neural network to adjust the operating parameters of the ultrafiltration circulating pump in advance,thereby saving energy and reducing consumption. The front-end display part uses Jquery+Bootstrap+Highcharts+ACE framework,the back-end service part adopts Spring+SpringBoot+MyBatis framework,and the front and back ends interact through Json data format. After the online test and on-site trial operation,the system has been officially put into use and achieved good results.
Key words:ultrafiltration circulating pump;energy consumption;B/S architecture;neural networks;front-end;back-end;Json
目前國內(nèi)垃圾滲濾液處理工藝中的能耗設(shè)備主要有曝氣風(fēng)機、超濾循環(huán)泵、納濾循環(huán)泵、換熱泵、射流泵、污泥脫水機以及一些膜清理裝置,其中超濾循環(huán)泵是垃圾滲濾液處理中的能耗大戶。在實際運行中,大多數(shù)情況下都沒有對它進行優(yōu)化,只是為了使得循環(huán)流量達到設(shè)計參數(shù)的要求,直接將循環(huán)泵開到滿頻,這不僅會縮短設(shè)備壽命,還會導(dǎo)致不必要的能源浪費,因此如何讓超濾循環(huán)泵在滿足設(shè)計要求的情況下節(jié)能降耗已成為亟需解決的問題。在此背景下,提供了一套降低超濾循環(huán)泵能耗的方法及系統(tǒng),該系統(tǒng)基于B/S模式并結(jié)合神經(jīng)網(wǎng)絡(luò)算法以及當(dāng)前主流的前后端框架,以網(wǎng)頁的形式展示預(yù)測分析的結(jié)果,并提前對超濾循環(huán)泵的運行參數(shù)作出調(diào)整,從而實現(xiàn)節(jié)能降耗的目標(biāo)。
1? ?算法設(shè)計
根據(jù)歷史工況數(shù)據(jù)優(yōu)化超濾循環(huán)泵運行參數(shù),首先要獲取各種工況條件下的歷史數(shù)據(jù)。但由于現(xiàn)場很多情況下超濾循環(huán)泵都是滿頻運行,這就導(dǎo)致歷史工況數(shù)據(jù)較為單一,因此很有必要對超濾循環(huán)泵進行實驗。實驗中通過調(diào)節(jié)超濾循環(huán)泵的開度,從而獲取關(guān)聯(lián)參數(shù)(如循環(huán)流量、產(chǎn)水流量、壓力等)的變化并以此為樣本,選取相關(guān)參數(shù)包括COD、氨氮、進水流量、產(chǎn)水流量、溫度、進水壓力、濃水壓力、循環(huán)泵功率進行算法設(shè)計。如圖1所示,算法設(shè)計流程分為3個步驟:
1)將原始數(shù)據(jù)進行預(yù)處理
由于現(xiàn)場沒有安裝出水壓力測量裝置,所以只能根據(jù)原理得出超濾膜出水壓力等于進水壓力減去濃水壓力,進一步計算出超濾膜壓差等于進水壓力與出水壓力的差值。再根據(jù)理論機理公式計算得到對應(yīng)的膜污染指數(shù)。本文選取實驗過程中運行工況最好的情況作為初始狀態(tài),對應(yīng)的膜壓差和膜通量作為初始膜壓差和初始膜通量。其中膜通量計算公式[1]為:
J = V/(T × A)? ? ? (1)
def power_recommend(product,power,except_product):
if except_product > 0:
coef = 2.12552666
intercept=product - np.log(power)*coef
recommend_power=np.exp((except_product-intercept) / coef)
recommend_open=open_model.predict(np.array(np.log(recommend_power)).reshape(1,-1))
recommend_open = recommend_open[0]
if recommend_open > 100 or recommend_power > power_max:
recommend_open = 100
recommend_power = power_max
elif recommend_open<0 or recommend_power<0:
recommend_open = 0.0
recommend_power = 0.0
else:
recommend_power = 0.0
recommend_open = 0.0
intercept = 0.0
return recommend_power,recommend_open,intercept
#調(diào)用功率推薦函數(shù)獲取推薦值
recommend_power,recommend_open,intercept = power_recommend(product,power,except_product)
#轉(zhuǎn)化為Json數(shù)據(jù)格式并返回結(jié)果
arr_name=[′product′,′power′,′inlet′,′except_product′,′recommend_open′,′recommend_power′,′pollution′,′recommend_efficiency′,′excet_prodwater′,′cur_p′]
arr_val=[product,power,inlet,except_product,recommend_open,recommend_power,pollution,recommend_efficiency,excet_prodwater,df.loc[′2-UF-UFM1-CP1.C′].value]
return json.dumps(dict_arr)
最后將此Python腳本加入Linux定時任務(wù)列表每15min運行一次,并把結(jié)果寫入數(shù)據(jù)庫的alg_model_result表中,相關(guān)Linux腳本如下:
#編輯DO_Shell.sh腳本
#! /bin/bash
python3 /usr/local/algo/python_script/power_recommend.py
#Linux后臺每15min運行一次DO_Shell.sh腳本
crontab -e
*/15 * * * * /usr/local/algo/shell/DO_Shell.sh
持久層通過MyBatis框架實現(xiàn),它是與數(shù)據(jù)庫關(guān)系最緊密的一層。如圖5所示其中的Mapper接口相當(dāng)于Dao接口,不需要實現(xiàn)類,MyBatis框架會根據(jù)接口定義創(chuàng)建動態(tài)代理對象實現(xiàn)業(yè)務(wù)邏輯;Mapper.xml擴展文件中不僅有強大的映射語句,而且有操作數(shù)據(jù)庫的動態(tài)sql,是MyBatis框架的核心;Entity文件夾中存放數(shù)據(jù)表對應(yīng)的實體,通過對實體的操作可以實現(xiàn)對表記錄的增刪改查。上文提到的文件可以采用手動創(chuàng)建,可以利用MyBatis的逆向工程創(chuàng)建、也可以根據(jù)github上的可視化界面創(chuàng)建。系統(tǒng)采用github上的可視化界面mybatis_generator_gui自動創(chuàng)建。
Service層為業(yè)務(wù)處理層。如圖5所示通過注入Mapper代理對象,調(diào)用Mapper中的接口函數(shù)實現(xiàn)對數(shù)據(jù)庫的操作。例如系統(tǒng)通過注入algModelResultMapper(算法結(jié)果對象),對數(shù)據(jù)庫中的算法結(jié)果進行操作,其部分代碼實現(xiàn)如下:
@Service(“modelResultService”)
public class ModelResultService {
@Resource
private AlgModelResultMapper algModelResultMapper;
public int insertSelective(AlgModelResult record)
{return algModelResultMapper.insertSelective(record); }
public int deleteByKey(Integer algResultId){
return algModelResultMapper.deleteByPrimaryKey(algResultId);? ? }
public List
return algModelResultMapper.getModelResultByModel(modelId); }
……
}
控制層作為前后端的銜接層,不僅接收前端的用戶請求,還要響應(yīng)后端的處理結(jié)果。如圖5所示,通過注入Service對象,調(diào)用業(yè)務(wù)處理函數(shù)得到業(yè)務(wù)處理結(jié)果,最后既可以通過頁面形式返回給前端,也可以通過數(shù)據(jù)形式返回給前端。例如系統(tǒng)采用前后端分離的架構(gòu)模式,前端使用ajax異步請求后端的Restful api接口并通過Json數(shù)據(jù)格式進行交互,具體代碼如下:
//后端控制層查詢到前12小時的優(yōu)化數(shù)據(jù)后通過Json格式返回
@RestController
@RequestMapping(“optimization”)
@Slf4j
public class OptimizationCotroller {
@Autowired
private ModelResultService modelResultService;
@Autowired
private OptimizationService optimizationService;
@GetMapping(value=“/g1OptimizationData/twelveHours”)
public JSONArray getg1OptimizationData(){
List
List
JSONArray ja = new JSONArray();
IntStream.range(0,results.size()).forEach(i -> {
JSONObject jo = JSONObject.parseObject(results.get(i).getAlgResultDesc());
jo.put(“createTime”,results.get(i).getCreateTime());
jo.put(“analysisDesc”,i == 0 ? null :analysis.get(i - 1));
ja.add(jo);
});
return ja;
}
}
//前端ajax異步請求前12小時的優(yōu)化數(shù)據(jù),請求成功后在表格中顯示
$.ajax({
type:“GET”,
url:“optimization/g1OptimizationData/twelveHours”,
success:function (data) {
//請求成功后,將前12小時數(shù)據(jù)在界面上展示
}
});
表現(xiàn)層位于系統(tǒng)的最頂層,是與用戶直接接觸的一層。系統(tǒng)為了提供良好的視覺效果融合了多種主流的前端技術(shù),如圖5所示采用Jquery強大的選擇器對頁面中的元素進行操作,使html內(nèi)容和Js腳本完美的分離提高了代碼的可讀性。除此之外,Jquery完善的ajax異步交互和局部刷新技術(shù)極大地提高了用戶的體驗度;采用Highcharts作為圖形化界面展示工具,提供豐富的可視化圖表以及自由的圖表配置,使其成為大數(shù)據(jù)時代不可替代的制圖工具;采用BootStrap響應(yīng)式網(wǎng)格系統(tǒng)對前端頁面進行整體布局,使得頁面結(jié)構(gòu)清晰錯落有致。
4? ?系統(tǒng)運用
系統(tǒng)在光大環(huán)保能源(濰坊)有限公司滲濾液處理站部署以來運行效果良好。圖6給出了超濾(UF)循環(huán)泵運行優(yōu)化圖,其中圖的左半部分為超濾系統(tǒng)現(xiàn)場工藝流程圖,圖上標(biāo)出的數(shù)據(jù)均為現(xiàn)場的實時數(shù)據(jù),運行人員坐在中控室中便可了解超濾系統(tǒng)各個環(huán)節(jié)的運行情況。圖的右半部分為循環(huán)泵示意圖,圖下方標(biāo)出了循環(huán)泵的當(dāng)前功率以及每15分鐘推薦的功率和泵的開度,這樣可以指導(dǎo)現(xiàn)場工作人員及時對泵進行調(diào)整。點擊圖右下方的推薦詳情按鈕,展現(xiàn)出前12小時的推薦詳情如圖7所示,表格中列出了每小時的推薦功率、推薦開度、膜污染指數(shù)、預(yù)期單耗、預(yù)期產(chǎn)水流量以及分析結(jié)果。這樣可以為現(xiàn)場工作人員分析推薦這個功率和這個開度的原因。
根據(jù)圖7中前12小時的推薦詳情,圖8更加形象化地展示了前12小時的實際值和推薦值的對比圖,通過對比可以發(fā)現(xiàn)推薦值和實際值的曲線走勢完全一致,而且從圖中可以直觀地發(fā)現(xiàn)現(xiàn)場人員如果按給出的推薦值調(diào)控循環(huán)泵可以降低20%左右的能耗。這對于大能耗型企業(yè)來說,既節(jié)省了成本又提高了生產(chǎn)效率。
5? ?結(jié)? ?論
基于B/S模式并結(jié)合神經(jīng)網(wǎng)絡(luò)算法,采用當(dāng)前主流的前后端框架和Python智能分析語言,開發(fā)了超濾循環(huán)泵節(jié)能降耗系統(tǒng),該系統(tǒng)由表示層、業(yè)務(wù)層、數(shù)據(jù)訪問層以及算法實現(xiàn)層組成,具有可擴展性好、復(fù)用性強、易于維護等優(yōu)點。將該系統(tǒng)應(yīng)用于光大能源環(huán)保項目公司,實現(xiàn)了超濾循環(huán)泵節(jié)能降耗的目標(biāo),為現(xiàn)場工作人員調(diào)控超濾循環(huán)泵提供了直觀的推薦分析平臺,對推動全廠智能化具有極其深遠的意義。
參考文獻
[1]? ? 梁睿榮. 微濾-反滲透雙膜法深度處理造紙廢水的試驗研究[D]. 廣州:廣東工業(yè)大學(xué),2014.
[2]? ? 楊威,王麗,邵森林,等. 一種基于膜污染指數(shù)的超濾膜污染評價方法[J].? 工業(yè)用水與廢水,2014,45(2):33-36.
[3]? ? 胡紅曉,謝佳,韓冰. 缺失值處理方法比較研究[J].? 商場現(xiàn)代化,2007,(15):352-353.
[4]? ? 王鳳梅. 數(shù)據(jù)預(yù)處理中數(shù)據(jù)缺失填補算法的研究與應(yīng)用[D]. 廣州:廣東工業(yè)大學(xué),2010.
[5]? ? 劉云霞. 數(shù)據(jù)預(yù)處理[M]. 廈門大學(xué)出版社,2011.
[6]? ? 劉明吉,王秀峰. 數(shù)據(jù)挖掘中的數(shù)據(jù)預(yù)處理[J].? 計算機科學(xué),2000,27(4):54-57.
[7]? ? 趙富強,劉金蘭. 基于PLS算法的帶缺失值顧客滿意度指數(shù)的測評[J].? 統(tǒng)計與決策,2012,(12):23-25.
[8]? ? 所麗,唐巍. 基于BP神經(jīng)網(wǎng)絡(luò)的風(fēng)電場短期功率預(yù)測[J].? 農(nóng)業(yè)技術(shù)與裝備,2013,(8):4-6.
[9]? ? 陳先來,楊路明. 基于均矢量相似性的機器學(xué)習(xí)樣本集劃分[J].? 中南大學(xué)學(xué)報(自然科學(xué)版),2009,40(6):1636-1641.
[10]? 徐崢. 一種改進的自適應(yīng)遺傳算法在多序列比對中的應(yīng)用[D]. 上海師范大學(xué),2007.
[11]? 馬軍建. 基于B/S模式的智能水電廠防汛決策支持系統(tǒng)研究[J].? 水電能源科學(xué),2013,(5):170-172.
[12]? 趙多林. 基于B/S結(jié)構(gòu)的WEB SCADA系統(tǒng)架構(gòu)[D]. 南京理工大學(xué),2006.