吉辛望 ,佟德軍
(1.海河水利委員會引灤工程管理局,河北 遷西 064309;2.河北省唐秦水文局,河北 唐山 063000)
潘家口水庫位于河北省遷西縣境內(nèi)灤河干流中游,控制流域面積 33700 km2。水庫大壩為混凝土低寬縫重力壩,中間部分設(shè)有 18 孔溢洪道,用 15 m ×15 m 弧形閘門控制。31#和 32#壩段為底孔壩段,共設(shè) 4 個底孔(其中1#底孔后改建為防汛自備電站進水口),用 4 m×6 m 弧形閘門控制。壩后建有混合式電站 1 座,由 1 臺 150 MW 常規(guī)機組(1#機)和 3 臺 90 MW 抽水蓄能機組(2?!?#機)組成。水庫大壩下游 6 km 處,另建有 1 座混凝土攔河壩,形成一個與電站尾水連成一體的抽水蓄能機組反調(diào)節(jié)池(下池)。
下池蓄水及抽水蓄能機組運行后,原壩下測流斷面即行廢止,水庫(上池)出庫流量改由發(fā)電洞、溢洪道、泄洪洞工作(泄流)曲線(即水力學(xué)法)進行計算。這種多類型、多孔洞出流的水情處理過程,涉及 10 多類原始數(shù)據(jù),需翻閱、查算 6 種關(guān)系查算表,參加計算的數(shù)據(jù)多達(dá) 50 余組。水情信息傳輸?shù)臅r效性和原始數(shù)據(jù)的正點采集,要求水情計算及拍報必須在盡可能短的時間內(nèi)完成。采用傳統(tǒng)手工方法計算,工作量大且易出錯,遲報、錯報現(xiàn)象難以徹底消除。為此,開發(fā)了基于 Windows 平臺的潘家口水庫水情信息處理系統(tǒng),以實現(xiàn)數(shù)據(jù)處理及水、雨情信息傳輸?shù)淖詣踊?/p>
潘家口水庫水情信息處理系統(tǒng),不僅需要處理逐日的水情信息并產(chǎn)生水情日報表,還需將逐日和瞬時采集到的水文信息及計算成果存入數(shù)據(jù)庫,用來在下月初和第二年年初生成并打印月、年成果表。因此,它實質(zhì)上是一個數(shù)據(jù)庫應(yīng)用軟件。鑒于 Object Pascal 具有代碼效率高、使用方便及速度快等特點,故將其作為開發(fā)平臺,并以 Delphi 7.0 為編程工具,Access 為數(shù)據(jù)庫,ADO 為數(shù)據(jù)庫引擎。最終開發(fā)出的軟件,經(jīng)安裝生成一個擴展名為“.exe”的 Windows 應(yīng)用程序。系統(tǒng)運行后的主數(shù)據(jù)表界面如圖1 所示。
圖1 系統(tǒng)主數(shù)據(jù)表畫面
(1)依據(jù) 1?!?#機組發(fā)電運行后的表底讀數(shù)計算日發(fā)電量,進而求得發(fā)電用水量(流量);依據(jù) 2?!?#機組抽水運行后的表底讀數(shù)計算抽水耗電量,求得抽水水量(流量),并以負(fù)值表示。以發(fā)電用水量(流量)與抽水水量(流量)的代數(shù)和作為發(fā)電洞日平均出庫流量。
(2)依據(jù)上、下池水位人工觀測值,按各自庫容曲線分別插值計算上、下池庫容。
(3)實時計算多個不同工況的溢流閘的泄流量,對全日多個泄流時段的泄流量進行統(tǒng)計,求得溢流閘日平均泄流量。
(4)實時計算多個不同工況的泄洪洞的泄流量,對全日多個泄流時段的泄流量進行統(tǒng)計,求得泄洪洞日平均泄流量。
(5)依據(jù)有功功率及運行小時數(shù),按給定公式計算自備電站日平均出流量。
(6)將以上各計算結(jié)果相加,得到日平均總出庫流量。
(7)依據(jù)日平均總出庫流量和水庫(上池)蓄水變量,計算日平均入庫流量。
(8)將上述計算結(jié)果按本次計算所在記錄位置追加至數(shù)據(jù)庫;在下個旬初、月初、年初開始時刻,分別計算旬、月、年統(tǒng)計值。
(1)水情計算完畢后,同時編制水情日報表;
(2)每月 1 日,生成上月水情月報表(含月統(tǒng)計值);
(3)年初按各水情因子分別生成上一年的年報表。
系統(tǒng)提供了對主數(shù)據(jù)表等各類表的維護功能,主要用于特殊情況下對數(shù)據(jù)表記錄的批量修改或添加,包括追加、修改、插入、刪除等。在進行數(shù)據(jù)維護操作時,鼠標(biāo)停留在相關(guān)按鈕上,即顯示對其功能的提示信息,以方便用戶操作。其中,對于“刪除”操作,系統(tǒng)會要求用戶進行確認(rèn),以避免誤操作。數(shù)據(jù)庫維護界面如圖2 所示。
在報文區(qū),提供了剪貼板編輯功能,藉此功能,即使是采用不同水情信息編碼標(biāo)準(zhǔn)編寫的報文,也都能順利實現(xiàn)二次編輯。報文編輯區(qū)界面如圖3 所示。
圖2 數(shù)據(jù)庫維護界面
圖3 報文編輯區(qū)界面
Microsoft Access 數(shù)據(jù)庫是庫表結(jié)構(gòu)。根據(jù)任務(wù)需要,在數(shù)據(jù)庫里建立了以下 3 類數(shù)據(jù)表:
(1)程序系統(tǒng)表
主要包括主數(shù)據(jù)表和溢洪閘、泄流洞、發(fā)電洞瞬時數(shù)據(jù)的結(jié)構(gòu)空表。當(dāng)程序運行中判斷需要創(chuàng)建新表時,即自行復(fù)制為相應(yīng)表的數(shù)據(jù)結(jié)構(gòu)。此外,系統(tǒng)表還包括程序運行所需的一些初始信息。
(2)各種曲線表
主要存放上庫容和下庫容曲線、泄流洞和溢流閘泄流量查算表、發(fā)電機組效率曲線等關(guān)系表的數(shù)據(jù)(節(jié)點),供程序運行時調(diào)用。
(3)用戶數(shù)據(jù)表
主要包括存放有各水文要素實測值的主數(shù)據(jù)表,及存放溢流閘、泄流洞和發(fā)電洞運行參數(shù)的其他數(shù)據(jù)表。主數(shù)據(jù)表每日生成 1 條記錄。為提高檢索速度和保證數(shù)據(jù)安全,以系統(tǒng)日期為準(zhǔn),每月生成 1 張主數(shù)據(jù)表。溢流閘、泄流洞和發(fā)電洞數(shù)據(jù)表中數(shù)據(jù)量較少,故每年只分別產(chǎn)生 1 張相應(yīng)數(shù)據(jù)表。
2.2.1 上、下池庫容曲線插值函數(shù)
函數(shù)定義:function kr1 ( h:variant):variant; //上庫容插值函數(shù)function kr2 ( h:variant):variant; //下庫容插值函數(shù)按照上、下池庫容曲線的趨勢,在能控制曲線走向的前提下,選取一定數(shù)量的節(jié)點,存放在數(shù)據(jù)庫中的相應(yīng)數(shù)據(jù)表內(nèi)。根據(jù)曲線的線性,分別用直線內(nèi)插和一元三點插值公式進行插值,經(jīng)驗證滿足精度要求。
直線內(nèi)插公式:
一元三點插值公式:
式中:X, Xi, Xi+1, Xi+2分別為庫容曲線上的水位節(jié)點;Y, Yi, Yi+1, Yi+2分別為庫容曲線上的蓄水量節(jié)點;H 為插值點的水位;V 為插值點的相應(yīng)蓄水量。
2.2.2 溢流閘泄流量計算函數(shù)
函數(shù)定義:
function fff ( a:real ): real; //查表求 ? 值
function mmm ( h:real ): real; //查表求 m 值
function jisuan ( h:real;e:real ): real; //計算溢流閘流量
function ylzcb ( h:real;e:real ): real; //單孔溢流量查算
function xlz ( riqi:integer ): real; //遍歷泄流數(shù)據(jù)庫
為方便用戶使用,程序提供了 2 種溢流閘流量計算方式,即公式法和查表法,可任選其一,默認(rèn)方式為查表方式。
溢流閘泄流量公式:Q = ?(H, e),
式中:Q 為溢流閘瞬時泄流量;H 為水頭(壩前水位減堰頂高程);e 為閘門開度。
(1)查表法
查表法,是使用原有的 H-e-Q 關(guān)系表直接查讀流量。將 H-e-Q 關(guān)系表存放在數(shù)據(jù)庫中的曲線表中,程序根據(jù)壩上水位和閘門開度可查出相應(yīng)的泄流量。 H-e-Q 關(guān)系表是個三維表,而 Microsoft Access的數(shù)據(jù)表是二維表,故存放時需增加 1 字段,以實現(xiàn)三維查詢。對于關(guān)系表中的空缺處,則采用在數(shù)據(jù)庫相應(yīng)數(shù)據(jù)欄填入特殊標(biāo)記字符串的方式,程序讀取后自行判定并提示采用公式法計算。
(2)公式法[1][2]
式中:M 為堰流流量系數(shù),由 WES 標(biāo)準(zhǔn)剖面堰 M =? ( m, H ) 關(guān)系查得;m 為孔流流量系數(shù),m = 0.8 e/H + (0.25 - 0.357 e/H ) cos α;s 為溢流閘開啟孔數(shù)(開度須相同);B 為單孔溢流閘門寬度;α 為弧形閘門下弦線與水平線夾角,α = arc cos ((c - e)/r ),c 為閘門軸至堰頂垂直距離,r 為弧形閘門半徑;? 為垂直收縮系數(shù);F 為橫向收縮系數(shù),F(xiàn) = 0.9 -{0.2[ξk+ ( s -1)ξe]H }/s B,ξk= 0.05,ξe= 0.45;g 為重力加速度。
當(dāng) e / H ≤ 0.75 時為孔流,否則為堰流。
溢流閘日平均泄流量計算:溢流閘日泄流量為各單次泄流量折合日平均流量之和。
式中:Q泄為泄流閘日平均泄流量;Qi1為第 i 次泄流開始時刻瞬時流量;Qi2為第 i 次泄流終了時刻瞬時流量;△ti為第 i 次泄流歷時。
2.2.3 泄洪洞泄流量計算函數(shù)
函數(shù)定義:
function chaxian ( h:real ): real; //泄洪洞泄流曲線插值函數(shù)
function fsd ( riqi:integer ): real; //遍歷泄洪洞數(shù)據(jù)庫
泄洪洞泄流量 Q = ? (H),采用查表法計算,即:將現(xiàn)有壩前水位與泄洪洞泄流量關(guān)系曲線節(jié)點存入數(shù)據(jù)庫相應(yīng)數(shù)據(jù)表中,由程序讀取水位級節(jié)點,按直線內(nèi)插求得相應(yīng)泄流量。
泄洪洞日平均泄流量計算方法與泄流閘相似,為各單次泄流量折合日平均流量之和。
2.2.4 發(fā)電洞出流量計算函數(shù)
函數(shù)定義:
procedure TForm 7.Button 2 Click (Sender: TObject );//事件
function aq ( ah:real;var ah1,ah 2,ah 3:real ): real;//效率曲線插值函數(shù)
function fdd ( riqi:integer ): real; //遍歷發(fā)電洞數(shù)據(jù)庫發(fā)電洞出流量,按機組發(fā)電量,用下式[3]計算:
式中:Q電為發(fā)電洞日平均出流量;P為電功率,以1日的電功值除以24得之;J為效率,J= ? (H)。效率曲線保存在數(shù)據(jù)庫相應(yīng)數(shù)據(jù)表中,由程序根據(jù)當(dāng)前壩前水位插值求得;H為水頭,由壩前水位減去發(fā)電機尾水位(即下池平均運用水位,采用139.00m)求得。
2.2.5 日平均出庫流量計算函數(shù)
日平均出庫流量為上述各單項出庫流量之和。
2.2.6 數(shù)字組格式化函數(shù)
函數(shù)定義:
function ws ( q:real ): real; //流量有效位數(shù)函數(shù)
function gsh ( h1,h:string ): string; //格式化水位字串,相同整數(shù)位省略
function gsjs ( t:real ): string; //格式化降水量字串
function ny(t:integer): string; //天數(shù)轉(zhuǎn)換成X月X日
格式函數(shù)的設(shè)置,主要是為控制計算結(jié)果的有效位數(shù),使其滿足規(guī)范要求。水位、降水量格式函數(shù)主要用于轉(zhuǎn)換輸出界面的顯示格式和報表的數(shù)據(jù)格式。
本軟件使用的控件主要包括以下幾類:
(1)數(shù)據(jù)訪問及數(shù)據(jù)感應(yīng)控件;
(2)人機交互和界面控制控件;
(3)報表和其他用途控件。
潘家口水庫水情信息處理系統(tǒng),具有以下主要特點:
(1)人性化處理方式
軟件能自動處理各類偶然事件,如:可根據(jù)系統(tǒng)日期,自行判斷報表所屬類型;對閏年、閏月等的出現(xiàn),也可自動判斷并進行相應(yīng)處理。
鑒于水情信息處理的實時性,在數(shù)據(jù)讀取和記錄指針定位時,直接讀取電腦系統(tǒng)時鐘,避免用戶指針定位錯誤。
(2)人機交互能力強
軟件對各主要參(系)數(shù)給出默認(rèn)值,同時提供相應(yīng)修改功能。用戶根據(jù)需要,可選擇使用手工輸入或使用加法器對這些參(系)數(shù)進行修改,以適應(yīng)水情處理計算需求。
(3)界面直觀,操作簡便
軟件界面友好,提供單表和雙表2 種顯示模式,用戶可根據(jù)個人習(xí)慣任選其一;提供有多個快捷按鈕,除輸入數(shù)據(jù)時需用鍵盤外,其它操作均可通過點擊鼠標(biāo)完成,使用起來方便、快捷。
(4)安全性高
軟件考慮了數(shù)據(jù)庫存放數(shù)據(jù)的安全性要求,提供了對數(shù)據(jù)記錄進行刪除操作的提示、確認(rèn)功能;用戶界面只顯示當(dāng)前操作對應(yīng)的表格及選項,其它無關(guān)表格或選項不顯示,可有效防止誤操作。軟件核心系統(tǒng)表部分,在用戶界面不可見。
潘家口水庫水情信息處理系統(tǒng)軟件開發(fā)完成后,進行了測試。軟件的測試,主要針對涉及各種曲線的計算模塊進行。重點對發(fā)電洞出流量計算進行了對比測試。按 1#機發(fā)電、蓄能機發(fā)電、蓄能機抽水 3 種工況分別進行測試,有效樣本分別為 31、44 和 39 個。通過測試,確定 1#機發(fā)電、蓄能機發(fā)電、蓄能機抽水 3 者流量修正系數(shù)依次為 1.00、0.88 和 0.62。同時對月報表的產(chǎn)生和輸出功能進行了測試。測試結(jié)果表明,月報表能正常生成及打印,月統(tǒng)計值準(zhǔn)確無誤。
通過 2005 年汛期以來的運行,證明軟件性能可靠,功能較為完善。由于考慮了各種復(fù)雜條件下的出流情況,使得計算過程更加合理,計算結(jié)果能夠滿足潘家口水庫與其下游大黑汀水庫及區(qū)間支流潵河 3 者間達(dá)成水量平衡的要求。水情處理所需時間大幅縮短,滿足了水情傳遞的時效性要求。
2006 年,新的《水情信息編碼標(biāo)準(zhǔn)》開始實施。利用軟件提供的剪貼板編輯功能及輸出的水情報表,可方便地實現(xiàn)與新的水情收、發(fā)報系統(tǒng)的整合,使水情處理及傳輸效率提高到一個全新的水平。
[1]華東水利學(xué)院. 水工設(shè)計手冊[M]. 北京:水利電力出版社,1987,12.
[2]莫斯特柯夫. 水力學(xué)手冊[M]. 北京:水利出版社,1956,11.
[3]湖北省水利學(xué)校. 水文資料整編[M]. 北京:水利電力出版社,1979,11.