趙棟棟,丁岳峰,徐 軍,杜孝軍
(四川華能太平驛水電有限責(zé)任公司,四川 成都610000)
太平驛水電站屬岷江上游河段電站,裝機(jī)容量26萬(wàn)kW,4臺(tái)機(jī)組。電站距離成都97km,離負(fù)荷較近,因此其發(fā)電量也能得到保證。太平驛電站作為四川省內(nèi)較早投產(chǎn)的電站,其電量計(jì)算一直都是采用人工計(jì)算的方式,即人工通過(guò)電表將該時(shí)段的電量數(shù)據(jù)記錄下來(lái),然后通過(guò)計(jì)算器進(jìn)行電量的計(jì)算。
在計(jì)算每個(gè)時(shí)段的發(fā)電量時(shí),將電量分成了4個(gè)時(shí)段,即平段、早高峰、谷段、晚高峰,各個(gè)時(shí)段計(jì)算時(shí)所需要的底度不一樣,例如平段計(jì)算時(shí)需要減去昨日平段數(shù)據(jù)后乘以一個(gè)系數(shù),而早高峰計(jì)算時(shí)需要減去昨日晚高峰數(shù)據(jù)后乘以一個(gè)系數(shù),今日晚高峰電量計(jì)算則又需要減去今日早高峰數(shù)據(jù)后乘以一個(gè)系數(shù)。
同時(shí),阿壩州地方電網(wǎng)某些電站也需要通過(guò)太平驛上網(wǎng),因此還要考慮這個(gè)因素,由此給太平驛電量日?qǐng)?bào)表的計(jì)算帶來(lái)了很多不必要的工作。在計(jì)算機(jī)技術(shù)愈來(lái)愈先進(jìn)成熟的今天,采用先進(jìn)的計(jì)算機(jī)編程技術(shù),將需要計(jì)算的各個(gè)時(shí)段電量編制成公式計(jì)算,即免去了人工計(jì)算復(fù)雜的工作量,也避免了人工計(jì)算的失誤,同時(shí)將每天的電量日?qǐng)?bào)保存成Excel文檔,節(jié)約了紙質(zhì)資源,降低了水電站運(yùn)行管理成本,對(duì)于其他存在類(lèi)似情況的電站具有較大的借鑒意義。
電量計(jì)算是每個(gè)電站每天都要進(jìn)行的工作,也是一件非常重要的工作,電量計(jì)算結(jié)果的準(zhǔn)確性對(duì)于電站來(lái)說(shuō)有著非常重要的作用,甚至可能會(huì)影響到電站的經(jīng)濟(jì)效益。太平驛水電站電量計(jì)算軟件是根據(jù)太平驛水電站的電量實(shí)際計(jì)算情況,將復(fù)雜的電量計(jì)算公式化,并自動(dòng)對(duì)計(jì)算結(jié)果進(jìn)行校驗(yàn),從而節(jié)約電站運(yùn)行人員的計(jì)算時(shí)間、避免人工計(jì)算存在的失誤。按照功能,軟件可以分為以下幾個(gè)部分:
(1)讀取昨日電量底度。根據(jù)數(shù)據(jù)庫(kù)中存在的昨日電量計(jì)算情況,自動(dòng)篩選出計(jì)算今日電量需要的數(shù)據(jù)并顯示在軟件界面中。
(2)讀取今日電量。在某些情況下,操作員可能會(huì)無(wú)意間將程序關(guān)閉,而在計(jì)算電量時(shí),如晚高峰電量計(jì)算時(shí)需要本日早高峰電量底度,因此,軟件提供了讀取今日電量功能,用戶(hù)可以將已經(jīng)計(jì)算過(guò)的數(shù)據(jù)讀取進(jìn)來(lái),從而避免再次輸入帶來(lái)的不必要的時(shí)間浪費(fèi)。
(3)電量計(jì)算。根據(jù)輸入的今日電量及電量底度,自動(dòng)計(jì)算該時(shí)段的電量,并根據(jù)實(shí)際情況對(duì)電量設(shè)置了最大值,即計(jì)算結(jié)果不能超過(guò)該時(shí)段最大發(fā)電量,否則會(huì)提示數(shù)據(jù)計(jì)算有誤。在電量計(jì)算完成后,可以將計(jì)算的電量導(dǎo)出到Excel文件,在明日計(jì)算電量時(shí),程序會(huì)自動(dòng)篩選今日電量的有效信息,從而實(shí)現(xiàn)電量計(jì)算的一步操作。
(4)電量統(tǒng)計(jì)。電量統(tǒng)計(jì)是程序的核心功能,其統(tǒng)計(jì)結(jié)果的可靠性對(duì)于電站來(lái)說(shuō)具有至關(guān)重要的意義。經(jīng)過(guò)程序計(jì)算出的每日電量會(huì)以年月日的形式存放于指定的文件夾,形成一個(gè)大數(shù)據(jù)庫(kù),當(dāng)需要查看某年某月或多年的某一月或多年的某一天的電量對(duì)比,可設(shè)定相應(yīng)的查看條件,系統(tǒng)會(huì)以柱狀圖的形式將電量顯示在系統(tǒng)中,直觀地進(jìn)行對(duì)比。例如電站需要進(jìn)行機(jī)組技術(shù)改造工作,首先要確定改造的時(shí)間,由于來(lái)水原因,每個(gè)月的發(fā)電量有較大差異,此時(shí)可通過(guò)對(duì)多年每個(gè)月電量的對(duì)比,尋找出多年來(lái)發(fā)電量較低的月份,再綜合考慮其他因素,確定技術(shù)改造時(shí)間,從而為機(jī)組技術(shù)改造提供可靠的數(shù)據(jù)依據(jù),在一定程度上可以為公司節(jié)約百萬(wàn)甚至更多的成本,具有極大的經(jīng)濟(jì)效益。
太平驛電站電量計(jì)算軟件不僅僅適用于太平驛電站本身,在設(shè)計(jì)之初系統(tǒng)就已經(jīng)設(shè)置了相應(yīng)的接口,如果其他電站采用本軟件計(jì)算本站電量,可通過(guò)更改某些計(jì)算系數(shù)來(lái)實(shí)現(xiàn),對(duì)系統(tǒng)其他功能完全無(wú)影響,因此,本系統(tǒng)具有較好的推廣性,其市場(chǎng)價(jià)值潛力巨大。
2.2.1 Microsoft Visual Studio.NET2010開(kāi)發(fā)環(huán)境
Microsoft Visual Studio.NET2010是微軟公司推出的開(kāi)發(fā)環(huán)境,其在操作界面上進(jìn)行了大幅度的革新,使得操作界面更加人性化和簡(jiǎn)潔,同時(shí)其功能涵蓋了C#、C++等當(dāng)下比較流行的計(jì)算機(jī)語(yǔ)言[1]。
2.2.2 C#編程語(yǔ)言
C#(C Sharp)是 Microsoft隨 Visual Studio.NET 引入的一種新語(yǔ)言。C#融合了Visual Basic、Java、C++語(yǔ)言?xún)?yōu)勢(shì),使得開(kāi)發(fā)更加集成化[2],C#在語(yǔ)法上保持了與其他幾種語(yǔ)言的一致性,優(yōu)化了圖形用戶(hù)創(chuàng)建的事件驅(qū)動(dòng)應(yīng)用程序,使得其更加易用。C#是一種面向?qū)ο蟮恼Z(yǔ)言,它在.NET Framework框架下可以與其他語(yǔ)言完美兼容。C#用來(lái)允許程序員開(kāi)發(fā)在Windows下或者在Web瀏覽器中運(yùn)行的應(yīng)用程序,并且沒(méi)有編程通常所需要的復(fù)雜性[3]。
2.2.3 MVC3層開(kāi)發(fā)體系
MVC即Model-View-Controller,是目前軟件開(kāi)發(fā)過(guò)程中比較流行的一種開(kāi)發(fā)方式。MVC設(shè)計(jì)模式實(shí)現(xiàn)功能模塊和顯示模塊的分離,使得應(yīng)用程序更加可維護(hù)、可擴(kuò)展、可移植和可復(fù)用。對(duì)于界面設(shè)計(jì)可變性的需求,MVC把交互系統(tǒng)的組成分解成模型、視圖、控制器3種部件[4]。MVC3層模式如圖1所示。
圖1 3層架構(gòu)關(guān)系圖
2.2.4 Microsoft Office Excel二次開(kāi)發(fā)技術(shù)
本系統(tǒng)采用調(diào)用Excel組件的方式來(lái)對(duì)Excel進(jìn)行二次開(kāi)發(fā),通過(guò)在COM中添加引用的方式將Excel組件引入系統(tǒng),在數(shù)據(jù)存儲(chǔ)和數(shù)據(jù)讀取方面采用了兩種不同的方法。數(shù)據(jù)存儲(chǔ)時(shí)采用了實(shí)例化一個(gè)Excel的方法來(lái)進(jìn)行[5-6],其代碼如圖2所示。
圖2 數(shù)據(jù)存儲(chǔ)代碼
在導(dǎo)出數(shù)據(jù)時(shí),本文引入了OleDb.OleDbData Adapter來(lái)進(jìn)行數(shù)據(jù)庫(kù)的鏈接。OleDb模式針對(duì)OLEDB技術(shù)訪問(wèn)數(shù)據(jù)庫(kù),它是由微軟公司開(kāi)發(fā)的功能強(qiáng)大的以COM為基礎(chǔ)的數(shù)據(jù)處理技術(shù)。OLEDB與微軟公司開(kāi)發(fā)的別的數(shù)據(jù)庫(kù)技術(shù)的最大區(qū)別是它可以實(shí)現(xiàn)數(shù)據(jù)處理的通用性。在C#中,我們需要添加引用:System.Data.OleDb,System.Data。采用OleDb的方式鏈接數(shù)據(jù)庫(kù)時(shí),需要用到ADO.NET,ADO.NET具有良好的數(shù)據(jù)庫(kù)兼容性,能夠很好的與OLEDB兼容的數(shù)據(jù)庫(kù)相兼容,對(duì)當(dāng)前市場(chǎng)上應(yīng)用的數(shù)據(jù)庫(kù)都可以實(shí)現(xiàn)良好的兼容,并且市場(chǎng)上的數(shù)據(jù)庫(kù)預(yù)裝了OLEDB的驅(qū)動(dòng)程序,ADO.NET是以.NET為基礎(chǔ)創(chuàng)建的,它的最大優(yōu)勢(shì)在于實(shí)現(xiàn)了數(shù)據(jù)庫(kù)調(diào)用的一致性,這些數(shù)據(jù)庫(kù)一般包括XML數(shù)據(jù)、表、文本和數(shù)據(jù)倉(cāng)庫(kù)等,從而可以以較高的效率使用這些數(shù)據(jù)庫(kù)。ADO.NET與傳統(tǒng)的數(shù)據(jù)庫(kù)操作方式不同,它不是實(shí)時(shí)的連接數(shù)據(jù)源,而是將需要使用的數(shù)據(jù)保存在Dataset對(duì)象中,當(dāng)然,在使用Dataset對(duì)象之前需要對(duì)Dataset對(duì)象進(jìn)行實(shí)例化[7-9]。使用這種方式打開(kāi)數(shù)據(jù)庫(kù)時(shí)的代碼如圖3所示。
圖3 數(shù)據(jù)庫(kù)打開(kāi)代碼
本系統(tǒng)采用Excel文件的形式進(jìn)行數(shù)據(jù)的存儲(chǔ),無(wú)需專(zhuān)門(mén)建立數(shù)據(jù)庫(kù)。在計(jì)算完每日的電量后,即可將數(shù)據(jù)導(dǎo)出到指定文件夾中,文件名為特定格式,方便讀取。
基于以上基本技術(shù),將公式編入系統(tǒng)后,對(duì)系統(tǒng)進(jìn)行實(shí)現(xiàn)。并通過(guò)對(duì)一段時(shí)間的電量計(jì)算數(shù)據(jù)與人工計(jì)算的數(shù)據(jù)進(jìn)行比對(duì)來(lái)驗(yàn)證軟件計(jì)算結(jié)果的可靠性。通過(guò)對(duì)太平驛電站電量進(jìn)行一個(gè)月的校核計(jì)算,證明該軟件的計(jì)算結(jié)果與人工計(jì)算結(jié)果完全一致,計(jì)算結(jié)果具有非常高的可靠性,可以替代人工計(jì)算電量。軟件的主界面如圖4所示。
圖4 軟件主界面
為了提高軟件的數(shù)據(jù)可靠性,優(yōu)化其人機(jī)交互感,系統(tǒng)增加了解鎖按鍵功能。系統(tǒng)在設(shè)計(jì)時(shí)就嚴(yán)格限制了系統(tǒng)電量的計(jì)算時(shí)間,即低谷電量計(jì)算在早上 07:00~09:00 之間,早高峰電量計(jì)算在 11:00~12:00 之間,平段電量計(jì)算在 19:00~21:00 之間,晚高峰電量計(jì)算在23:00~24:00之間,一旦錯(cuò)過(guò)計(jì)算時(shí)間,相應(yīng)的電量計(jì)算按鈕會(huì)自動(dòng)消失,只有在相應(yīng)的時(shí)間段內(nèi)才會(huì)出現(xiàn)相應(yīng)的按鈕,電量計(jì)算表格在此時(shí)間段內(nèi)也才允許輸入數(shù)據(jù)。如果錯(cuò)過(guò)了相應(yīng)的計(jì)算時(shí)間,可以通過(guò)解鎖按鍵功能來(lái)將所有功能解鎖,但是此功能需要輸入管理員密碼。
通過(guò)設(shè)置相應(yīng)的條件查看相應(yīng)的電量數(shù)據(jù),圖5顯示了設(shè)置的一段時(shí)間內(nèi)的4個(gè)時(shí)間段的電量數(shù)據(jù)以及當(dāng)天的總電量數(shù)據(jù),通過(guò)柱狀圖的方式形成一個(gè)明顯的對(duì)比,從圖中可以很明顯地看出此段時(shí)間內(nèi)的電量情況,并對(duì)比出電量最高值和最低值,為電站電量統(tǒng)計(jì)提供了極大地便利,為其他決策提供了數(shù)據(jù)支持。
圖5 每日電量圖
太平驛水電站電量計(jì)算軟件的開(kāi)發(fā)不但解決了太平驛電站人工計(jì)算電量可能存在的人為失誤等問(wèn)題,同時(shí)也為其他電站的電量計(jì)算提供了一種可以采取的新模式,具有較高的實(shí)用價(jià)值,對(duì)于電站的電量統(tǒng)計(jì)具有很大的實(shí)際意義。在未來(lái)的研究中,可以將電量計(jì)算結(jié)果匯總后,采用大數(shù)據(jù)分析思想對(duì)電站一段時(shí)間,如1年或幾年甚至是幾十年的電量情況進(jìn)行分析,對(duì)電站的發(fā)電量進(jìn)行預(yù)估,從而為制定電站年發(fā)電量目標(biāo)提供一定的參考。