基於Python的三峽發電量估算系統

0. 簡介

  • 根據以前爬取的三峽水位和流量數據,筆者開發了一套三峽發電量估算系統;
  • 該系統估算結果與實際值非常接近,誤差在-0.18% 到 3.96% 之間;
  • 本文介紹了模型的構架原理、參數計算方法和部分模型估算數據。

1. 前言

前文主要分析了三峽的防洪效益,今天這篇文章著重分析三峽的發電效益。由於發電量屬於水電集團的機密信息,三峽公司是不可能公開詳細發電量。為了模擬估算髮電量,筆者根據公開的信息,開發了一套基於Python的三峽發電量估算系統。這套系統非常簡單,算上注釋和空格也只有不到150行代碼;鑒於本系統有非常多的假設來簡化計算,本文所有結果僅供參考,筆者不為任何潛在的投資等行為負責。

2. 水力發電原理簡介

首先,讓我們簡單看一下水力發電的原理。理論上說,水力發電是將水的重力勢能轉化成了電能。在Fig. 1中,大壩前的庫前水位較高,水通過引水管道流過水輪機(流速Q),最終流到水庫下游。由於水庫上下游之間由水位差(圖中的H),即水從高處流向地處,重力勢能轉化成動能;高速水流衝擊水輪機的葉片,推動轉子轉動,從而切割磁場產生電能。因此,影響水輪機的功率的因素主要有兩個,水流流速(Q)和上下游水位差(H)。在發電機組的額定功率範圍內,流速越高,水位差越大,水輪發電機的功率越高。此外,如果水位差達不到額定水頭,水輪發電機的功率也將小於額定功率。所以,影響三峽水庫發電量的因素主要有三個:出庫流量、上下游水位差和發電機功率。

Fig. 1 水力發電原理圖 (Edited from:水能是回報率最高的能源-)

3. 發電機估算系統的參數估計

根據水輪發電機的原理,我們得知出庫流量、上下游水位差和水輪發電機的實際功率是影響發電量的三大因素,下文將一一解釋這三個因素的定量化估計。

3.1 出庫流量和水輪機開機數

由於出庫流量已知,只要計算出每個取水口的流量,我們就可以估算現有的出庫流量能夠滿足多少發電機的需求。為了簡化計算,我們做這些假設:

  • 所有的出庫流量優先滿足發電機的需求,其次用做泄洪、航運、沖沙等其他需求;
  • 三峽水庫共有32台發電機組,默認從01號機組開始開機,根據開機數依次類推。

根據三峽的調度報告[1],發電機組的泄洪量跟庫前水位是一個二次曲線關係。如果我們計算對應發電機台數下的水庫泄洪量與發電機總額定流量的比值,稱之為流量係數;這個流量係數與庫前水位是二次曲線關係。根據擬合曲線和實測庫前水位,我們可以估算流量係數;根據流量係數,我們就可以估算實測出庫流量下的開機數,公式如下所示:

GeneratorNum = int(Outflow / (FlowCoeff * RatedFlow))

if GeneratorNum > 32, GeneratorNum = 32.

其中 GeneratorNum是水輪機開機數,Outflow是實測出庫流量,FlowCoeff是上文提到的流量係數,RatedFlow是平均每台水輪機的額定流量, int() 是指取結果的整數位,例如,int(15.8) = 15。

注1:流量係數為實際流量與相應發電機總流量之間的比值。

注2:圖中只展示兩組水輪發電機台數下的對應關係,但是其他台數也有類似曲線。

Fig. 2 不同開機台數下庫前水位與流量係數擬合關係圖

3.2 上下游水位差的計算

上下游水位差的計算比較容易實現,庫前水位減去庫後水位即可(水位差有時候也簡稱水頭)。水位差的計算結果將用來估算水輪發電機的實時功率。

3.3 水輪發電機的實時功率估算

當水輪發電機的水頭為額定水頭,流速為額定流速時,發電機的額定功率是700 MW。 實際生產中,水輪發電機的水頭往往達不到額定水頭,因此發電機的功率也要小於額定功率。我們根據發電機的限制出力曲線[1],通過實時水頭來估算水輪發電機的實時功率。

Fig. 3 左岸VGS機組的出力(功率)限制曲線

3.4 時段內總發電量估算

根據水輪機開機數,實時功率和流量係數,我們可以計算某時間內的總發電量,公式如下所示:

Wt = sum_{i}^{GeneratorNum}{(Power_{i} * FlowCoeff* TimeStamp)}

其中 Wt是該時段內總發電量,GeneratorNum是水輪機開機數,Poweri 是第i組發電機組的實時功率,FlowCoeff是流量係數,TimeStamp是時間間隔,本文中是6小時。

註:這裡假定6小時內總發電量的相對變化可以忽略不計。

4. 模型實現流程圖簡介

三峽發電量估算系統的主要思路如Fig. 4 所示。模型的輸入項包括庫前後水位和出庫流量,計算過程包括了前文提到的三個參數和總發電量,輸出的結構包括發電量、實時功率等。

』Fig. 5 模型流程示意圖

5. 模型結果驗證和討論

這套估算系統的運算區間為 2012年7月8日至2016年7月31日,計算了每隔六小時的發電量,所有發電機總實際功率、棄水量和發電機開機數。為了驗證估算系統的性能,筆者計算了2012年第三季度至2016年第三季度的各季度發電量,比較了模型計算值與實際發電量,結果見Fig. 6. Fig. 6 可以看出估算系統的結果與實際發電量非常接近,平均誤差-1.70%,最大誤差-4.22%。 鑒於筆者沒有更精確的數據來驗證模型,暫且認為該估算系統能夠有效地估算三峽水庫的發電量。

註:2012年Q3從7月8日開始計算,所以估計值比實際值少了七天的發電量。

Fig. 6 三峽發電量估算系統與各季度實際發電量的對比圖(Data source: 長江電力 via 雪球網)

根據發電量估算系統的計算結果,我們可以計算出每月發電量,見Fig. 7. 由圖可見,三峽水庫發電量的高峰在7月至9月,也是長江流域的汛期;到了枯水期,即11月至來年3月,每月的發電量較少。這個趨勢說明估算系統的運算結果與實際的來水情況相符合。

Fig. 7 三峽水庫每月估算髮電量

雖然估計值與實測值較為接近,該系統仍有可以改進的地方。例如:

  • 模型中沒有考慮水輪發電機故障、維修與保養的情況;

  • 模型中的一些假設與實際情況可能有所出入;
  • 模型中採用出庫流量,而不是入庫流量,是一種相對取巧的做法,etc。

由於筆者的數據量不足,暫時無法深入驗證和改進模型;如果有了足夠的數據,筆者希望能夠在估算系統中增加調控、預測和梯級調度等components,也可以利用State-of-art的方法,例如Deep Learning等,來進一步等完善估算系統,同時也能夠指導三峽水庫的生產過程。

7 總結(Take-home points)

  • 基於Python的三峽發電量估算系統的結果與實際值非常接近,系統性能較好;
  • Python的特性能夠為初學者和非計算機專業人士提供很大的便利;
  • 該系統還有很多可以改進的地方,由於數據有限,暫且認為能夠有效地估算三峽發電量;
  • 基於這套系統,筆者將會做更多的數據分析和數據挖掘工作,敬請期待~~

The end, thanks for reading.

-------------------分割線---------------------

References: 見評論。

PS:此文是「三峽數據分析系列」的第二篇, 前文可見:

三峽水庫數據分析--1 - 每周學點土壤知識 - 知乎專欄

就今年這個降雨量,三峽大壩在防洪上做了多大貢獻?

---------------版權聲明-----------------

1. 筆者對所有的回答和專欄均擁有所有版權,引用內容除外。

2. 筆者允許從此網站的「分享」鏈接分享至微博或者朋友圈等個人分享行為

3. 除知乎及相關產品外,筆者不允許,除個人分享外,任何轉載或者分享,包括但不限於微博和微信的營銷賬號、各種非營利組織、各種大學的微信和微博的官方賬號等組織轉載和分享。

4. 如果某組織未經許可分享筆者的內容,那麼該組織也默認接受了「千字千元」的計酬標準,其中原創圖片折算成百字。無論是營利或者非營利組織,均需支付稿費。

5. 任何轉載均不得刪除此版權聲明。
推薦閱讀:

造成長江客船傾覆事件的會不會有三峽大壩破壞生態環境的因素在裡面?
奉節經歷三峽工程後現在發展的怎麼樣?
[18]可能是中國最後一部膠片電影,你會來看么?
德藝雙馨的政治家,端午節男神的故鄉

TAG:Python | 三峡 | 数据挖掘 |