基于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%