赵栋栋,丁岳峰,徐 军,杜孝军
(四川华能太平驿水电有限责任公司,四川 成都610000)
太平驿水电站属岷江上游河段电站,装机容量26万kW,4台机组。电站距离成都97km,离负荷较近,因此其发电量也能得到保证。太平驿电站作为四川省内较早投产的电站,其电量计算一直都是采用人工计算的方式,即人工通过电表将该时段的电量数据记录下来,然后通过计算器进行电量的计算。
在计算每个时段的发电量时,将电量分成了4个时段,即平段、早高峰、谷段、晚高峰,各个时段计算时所需要的底度不一样,例如平段计算时需要减去昨日平段数据后乘以一个系数,而早高峰计算时需要减去昨日晚高峰数据后乘以一个系数,今日晚高峰电量计算则又需要减去今日早高峰数据后乘以一个系数。
同时,阿坝州地方电网某些电站也需要通过太平驿上网,因此还要考虑这个因素,由此给太平驿电量日报表的计算带来了很多不必要的工作。在计算机技术愈来愈先进成熟的今天,采用先进的计算机编程技术,将需要计算的各个时段电量编制成公式计算,即免去了人工计算复杂的工作量,也避免了人工计算的失误,同时将每天的电量日报保存成Excel文档,节约了纸质资源,降低了水电站运行管理成本,对于其他存在类似情况的电站具有较大的借鉴意义。
电量计算是每个电站每天都要进行的工作,也是一件非常重要的工作,电量计算结果的准确性对于电站来说有着非常重要的作用,甚至可能会影响到电站的经济效益。太平驿水电站电量计算软件是根据太平驿水电站的电量实际计算情况,将复杂的电量计算公式化,并自动对计算结果进行校验,从而节约电站运行人员的计算时间、避免人工计算存在的失误。按照功能,软件可以分为以下几个部分:
(1)读取昨日电量底度。根据数据库中存在的昨日电量计算情况,自动筛选出计算今日电量需要的数据并显示在软件界面中。
(2)读取今日电量。在某些情况下,操作员可能会无意间将程序关闭,而在计算电量时,如晚高峰电量计算时需要本日早高峰电量底度,因此,软件提供了读取今日电量功能,用户可以将已经计算过的数据读取进来,从而避免再次输入带来的不必要的时间浪费。
(3)电量计算。根据输入的今日电量及电量底度,自动计算该时段的电量,并根据实际情况对电量设置了最大值,即计算结果不能超过该时段最大发电量,否则会提示数据计算有误。在电量计算完成后,可以将计算的电量导出到Excel文件,在明日计算电量时,程序会自动筛选今日电量的有效信息,从而实现电量计算的一步操作。
(4)电量统计。电量统计是程序的核心功能,其统计结果的可靠性对于电站来说具有至关重要的意义。经过程序计算出的每日电量会以年月日的形式存放于指定的文件夹,形成一个大数据库,当需要查看某年某月或多年的某一月或多年的某一天的电量对比,可设定相应的查看条件,系统会以柱状图的形式将电量显示在系统中,直观地进行对比。例如电站需要进行机组技术改造工作,首先要确定改造的时间,由于来水原因,每个月的发电量有较大差异,此时可通过对多年每个月电量的对比,寻找出多年来发电量较低的月份,再综合考虑其他因素,确定技术改造时间,从而为机组技术改造提供可靠的数据依据,在一定程度上可以为公司节约百万甚至更多的成本,具有极大的经济效益。
太平驿电站电量计算软件不仅仅适用于太平驿电站本身,在设计之初系统就已经设置了相应的接口,如果其他电站采用本软件计算本站电量,可通过更改某些计算系数来实现,对系统其他功能完全无影响,因此,本系统具有较好的推广性,其市场价值潜力巨大。
2.2.1 Microsoft Visual Studio.NET2010开发环境
Microsoft Visual Studio.NET2010是微软公司推出的开发环境,其在操作界面上进行了大幅度的革新,使得操作界面更加人性化和简洁,同时其功能涵盖了C#、C++等当下比较流行的计算机语言[1]。
2.2.2 C#编程语言
C#(C Sharp)是 Microsoft随 Visual Studio.NET 引入的一种新语言。C#融合了Visual Basic、Java、C++语言优势,使得开发更加集成化[2],C#在语法上保持了与其他几种语言的一致性,优化了图形用户创建的事件驱动应用程序,使得其更加易用。C#是一种面向对象的语言,它在.NET Framework框架下可以与其他语言完美兼容。C#用来允许程序员开发在Windows下或者在Web浏览器中运行的应用程序,并且没有编程通常所需要的复杂性[3]。
2.2.3 MVC3层开发体系
MVC即Model-View-Controller,是目前软件开发过程中比较流行的一种开发方式。MVC设计模式实现功能模块和显示模块的分离,使得应用程序更加可维护、可扩展、可移植和可复用。对于界面设计可变性的需求,MVC把交互系统的组成分解成模型、视图、控制器3种部件[4]。MVC3层模式如图1所示。
图1 3层架构关系图
2.2.4 Microsoft Office Excel二次开发技术
本系统采用调用Excel组件的方式来对Excel进行二次开发,通过在COM中添加引用的方式将Excel组件引入系统,在数据存储和数据读取方面采用了两种不同的方法。数据存储时采用了实例化一个Excel的方法来进行[5-6],其代码如图2所示。
图2 数据存储代码
在导出数据时,本文引入了OleDb.OleDbData Adapter来进行数据库的链接。OleDb模式针对OLEDB技术访问数据库,它是由微软公司开发的功能强大的以COM为基础的数据处理技术。OLEDB与微软公司开发的别的数据库技术的最大区别是它可以实现数据处理的通用性。在C#中,我们需要添加引用:System.Data.OleDb,System.Data。采用OleDb的方式链接数据库时,需要用到ADO.NET,ADO.NET具有良好的数据库兼容性,能够很好的与OLEDB兼容的数据库相兼容,对当前市场上应用的数据库都可以实现良好的兼容,并且市场上的数据库预装了OLEDB的驱动程序,ADO.NET是以.NET为基础创建的,它的最大优势在于实现了数据库调用的一致性,这些数据库一般包括XML数据、表、文本和数据仓库等,从而可以以较高的效率使用这些数据库。ADO.NET与传统的数据库操作方式不同,它不是实时的连接数据源,而是将需要使用的数据保存在Dataset对象中,当然,在使用Dataset对象之前需要对Dataset对象进行实例化[7-9]。使用这种方式打开数据库时的代码如图3所示。
图3 数据库打开代码
本系统采用Excel文件的形式进行数据的存储,无需专门建立数据库。在计算完每日的电量后,即可将数据导出到指定文件夹中,文件名为特定格式,方便读取。
基于以上基本技术,将公式编入系统后,对系统进行实现。并通过对一段时间的电量计算数据与人工计算的数据进行比对来验证软件计算结果的可靠性。通过对太平驿电站电量进行一个月的校核计算,证明该软件的计算结果与人工计算结果完全一致,计算结果具有非常高的可靠性,可以替代人工计算电量。软件的主界面如图4所示。
图4 软件主界面
为了提高软件的数据可靠性,优化其人机交互感,系统增加了解锁按键功能。系统在设计时就严格限制了系统电量的计算时间,即低谷电量计算在早上 07:00~09:00 之间,早高峰电量计算在 11:00~12:00 之间,平段电量计算在 19:00~21:00 之间,晚高峰电量计算在23:00~24:00之间,一旦错过计算时间,相应的电量计算按钮会自动消失,只有在相应的时间段内才会出现相应的按钮,电量计算表格在此时间段内也才允许输入数据。如果错过了相应的计算时间,可以通过解锁按键功能来将所有功能解锁,但是此功能需要输入管理员密码。
通过设置相应的条件查看相应的电量数据,图5显示了设置的一段时间内的4个时间段的电量数据以及当天的总电量数据,通过柱状图的方式形成一个明显的对比,从图中可以很明显地看出此段时间内的电量情况,并对比出电量最高值和最低值,为电站电量统计提供了极大地便利,为其他决策提供了数据支持。
图5 每日电量图
太平驿水电站电量计算软件的开发不但解决了太平驿电站人工计算电量可能存在的人为失误等问题,同时也为其他电站的电量计算提供了一种可以采取的新模式,具有较高的实用价值,对于电站的电量统计具有很大的实际意义。在未来的研究中,可以将电量计算结果汇总后,采用大数据分析思想对电站一段时间,如1年或几年甚至是几十年的电量情况进行分析,对电站的发电量进行预估,从而为制定电站年发电量目标提供一定的参考。