?

基于B/S架構的超濾循環泵節能降耗系統設計與實現

2020-01-05 05:37錢晨
計算技術與自動化 2020年4期
關鍵詞:能耗節能降耗算法

錢晨

摘? ?要:針對超濾循環泵在垃圾滲濾液處理中的能耗問題,設計了一套降低超濾循環泵能耗的方法及系統。該系統采用B/S架構并結合神經網絡訓練出的最優算法模型,提前對超濾循環泵的運行參數作出調整,從而起到節能降耗的作用。前端展示部分采用Jquery+Bootstrap+Highcharts+ACE框架,后端服務部分采用Spring+SpringBoot+MyBatis框架,前后端通過Json數據格式進行交互。系統經過在線測試和現場試運行階段后,已正式投入使用,并取得良好的效果。

關鍵詞:超濾循環泵;能耗;B/S架構;神經網絡;前端;后端;Json

中圖分類號:TP39? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼: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

目前國內垃圾滲濾液處理工藝中的能耗設備主要有曝氣風機、超濾循環泵、納濾循環泵、換熱泵、射流泵、污泥脫水機以及一些膜清理裝置,其中超濾循環泵是垃圾滲濾液處理中的能耗大戶。在實際運行中,大多數情況下都沒有對它進行優化,只是為了使得循環流量達到設計參數的要求,直接將循環泵開到滿頻,這不僅會縮短設備壽命,還會導致不必要的能源浪費,因此如何讓超濾循環泵在滿足設計要求的情況下節能降耗已成為亟需解決的問題。在此背景下,提供了一套降低超濾循環泵能耗的方法及系統,該系統基于B/S模式并結合神經網絡算法以及當前主流的前后端框架,以網頁的形式展示預測分析的結果,并提前對超濾循環泵的運行參數作出調整,從而實現節能降耗的目標。

1? ?算法設計

根據歷史工況數據優化超濾循環泵運行參數,首先要獲取各種工況條件下的歷史數據。但由于現場很多情況下超濾循環泵都是滿頻運行,這就導致歷史工況數據較為單一,因此很有必要對超濾循環泵進行實驗。實驗中通過調節超濾循環泵的開度,從而獲取關聯參數(如循環流量、產水流量、壓力等)的變化并以此為樣本,選取相關參數包括COD、氨氮、進水流量、產水流量、溫度、進水壓力、濃水壓力、循環泵功率進行算法設計。如圖1所示,算法設計流程分為3個步驟:

1)將原始數據進行預處理

由于現場沒有安裝出水壓力測量裝置,所以只能根據原理得出超濾膜出水壓力等于進水壓力減去濃水壓力,進一步計算出超濾膜壓差等于進水壓力與出水壓力的差值。再根據理論機理公式計算得到對應的膜污染指數。本文選取實驗過程中運行工況最好的情況作為初始狀態,對應的膜壓差和膜通量作為初始膜壓差和初始膜通量。其中膜通量計算公式[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

#調用功率推薦函數獲取推薦值

recommend_power,recommend_open,intercept = power_recommend(product,power,except_product)

#轉化為Json數據格式并返回結果

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定時任務列表每15min運行一次,并把結果寫入數據庫的alg_model_result表中,相關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框架實現,它是與數據庫關系最緊密的一層。如圖5所示其中的Mapper接口相當于Dao接口,不需要實現類,MyBatis框架會根據接口定義創建動態代理對象實現業務邏輯;Mapper.xml擴展文件中不僅有強大的映射語句,而且有操作數據庫的動態sql,是MyBatis框架的核心;Entity文件夾中存放數據表對應的實體,通過對實體的操作可以實現對表記錄的增刪改查。上文提到的文件可以采用手動創建,可以利用MyBatis的逆向工程創建、也可以根據github上的可視化界面創建。系統采用github上的可視化界面mybatis_generator_gui自動創建。

Service層為業務處理層。如圖5所示通過注入Mapper代理對象,調用Mapper中的接口函數實現對數據庫的操作。例如系統通過注入algModelResultMapper(算法結果對象),對數據庫中的算法結果進行操作,其部分代碼實現如下:

@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 getModelResultByModel(Integer modelId){

return algModelResultMapper.getModelResultByModel(modelId); }

……

}

控制層作為前后端的銜接層,不僅接收前端的用戶請求,還要響應后端的處理結果。如圖5所示,通過注入Service對象,調用業務處理函數得到業務處理結果,最后既可以通過頁面形式返回給前端,也可以通過數據形式返回給前端。例如系統采用前后端分離的架構模式,前端使用ajax異步請求后端的Restful api接口并通過Json數據格式進行交互,具體代碼如下:

//后端控制層查詢到前12小時的優化數據后通過Json格式返回

@RestController

@RequestMapping(“optimization”)

@Slf4j

public class OptimizationCotroller {

@Autowired

private ModelResultService modelResultService;

@Autowired

private OptimizationService optimizationService;

@GetMapping(value=“/g1OptimizationData/twelveHours”)

public JSONArray getg1OptimizationData(){

List results = modelResultService.selectByModelIdandName(5,“ufpump01”,TimeUtil.parseLocalDate(LocalDateTime.now().plusHours(-12),TimeUtil.TimeFormat.LONG_DATE_PATTERN_LINE),TimeUtil.parseLocalDate(LocalDateTime.now(),TimeUtil.TimeFormat.LONG_DATE_PATTERN_LINE));

List analysis = optimizationService.analysisMogroup(results);

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小時的優化數據,請求成功后在表格中顯示

$.ajax({

type:“GET”,

url:“optimization/g1OptimizationData/twelveHours”,

success:function (data) {

//請求成功后,將前12小時數據在界面上展示

}

});

表現層位于系統的最頂層,是與用戶直接接觸的一層。系統為了提供良好的視覺效果融合了多種主流的前端技術,如圖5所示采用Jquery強大的選擇器對頁面中的元素進行操作,使html內容和Js腳本完美的分離提高了代碼的可讀性。除此之外,Jquery完善的ajax異步交互和局部刷新技術極大地提高了用戶的體驗度;采用Highcharts作為圖形化界面展示工具,提供豐富的可視化圖表以及自由的圖表配置,使其成為大數據時代不可替代的制圖工具;采用BootStrap響應式網格系統對前端頁面進行整體布局,使得頁面結構清晰錯落有致。

4? ?系統運用

系統在光大環保能源(濰坊)有限公司滲濾液處理站部署以來運行效果良好。圖6給出了超濾(UF)循環泵運行優化圖,其中圖的左半部分為超濾系統現場工藝流程圖,圖上標出的數據均為現場的實時數據,運行人員坐在中控室中便可了解超濾系統各個環節的運行情況。圖的右半部分為循環泵示意圖,圖下方標出了循環泵的當前功率以及每15分鐘推薦的功率和泵的開度,這樣可以指導現場工作人員及時對泵進行調整。點擊圖右下方的推薦詳情按鈕,展現出前12小時的推薦詳情如圖7所示,表格中列出了每小時的推薦功率、推薦開度、膜污染指數、預期單耗、預期產水流量以及分析結果。這樣可以為現場工作人員分析推薦這個功率和這個開度的原因。

根據圖7中前12小時的推薦詳情,圖8更加形象化地展示了前12小時的實際值和推薦值的對比圖,通過對比可以發現推薦值和實際值的曲線走勢完全一致,而且從圖中可以直觀地發現現場人員如果按給出的推薦值調控循環泵可以降低20%左右的能耗。這對于大能耗型企業來說,既節省了成本又提高了生產效率。

5? ?結? ?論

基于B/S模式并結合神經網絡算法,采用當前主流的前后端框架和Python智能分析語言,開發了超濾循環泵節能降耗系統,該系統由表示層、業務層、數據訪問層以及算法實現層組成,具有可擴展性好、復用性強、易于維護等優點。將該系統應用于光大能源環保項目公司,實現了超濾循環泵節能降耗的目標,為現場工作人員調控超濾循環泵提供了直觀的推薦分析平臺,對推動全廠智能化具有極其深遠的意義。

參考文獻

[1]? ? 梁睿榮. 微濾-反滲透雙膜法深度處理造紙廢水的試驗研究[D]. 廣州:廣東工業大學,2014.

[2]? ? 楊威,王麗,邵森林,等. 一種基于膜污染指數的超濾膜污染評價方法[J].? 工業用水與廢水,2014,45(2):33-36.

[3]? ? 胡紅曉,謝佳,韓冰. 缺失值處理方法比較研究[J].? 商場現代化,2007,(15):352-353.

[4]? ? 王鳳梅. 數據預處理中數據缺失填補算法的研究與應用[D]. 廣州:廣東工業大學,2010.

[5]? ? 劉云霞. 數據預處理[M]. 廈門大學出版社,2011.

[6]? ? 劉明吉,王秀峰. 數據挖掘中的數據預處理[J].? 計算機科學,2000,27(4):54-57.

[7]? ? 趙富強,劉金蘭. 基于PLS算法的帶缺失值顧客滿意度指數的測評[J].? 統計與決策,2012,(12):23-25.

[8]? ? 所麗,唐巍. 基于BP神經網絡的風電場短期功率預測[J].? 農業技術與裝備,2013,(8):4-6.

[9]? ? 陳先來,楊路明. 基于均矢量相似性的機器學習樣本集劃分[J].? 中南大學學報(自然科學版),2009,40(6):1636-1641.

[10]? 徐崢. 一種改進的自適應遺傳算法在多序列比對中的應用[D]. 上海師范大學,2007.

[11]? 馬軍建. 基于B/S模式的智能水電廠防汛決策支持系統研究[J].? 水電能源科學,2013,(5):170-172.

[12]? 趙多林. 基于B/S結構的WEB SCADA系統架構[D]. 南京理工大學,2006.

猜你喜歡
能耗節能降耗算法
Travellng thg World Full—time for Rree
水下飛起滑翔機
氣象參數對成都地區辦公建筑能耗的影響及預測
學習算法的“三種境界”
算法框圖的補全
算法初步知識盤點
論建筑企業節能降耗的科學途徑
對現代工業企業能源計量的規范化管理探討
煤炭企業全面加強節能降耗的策略措施
上半年單位GDP能耗同比降4.2%
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合