馬 俊褚俊杰朱文娟(.江蘇省江都水利工程管理處 揚(yáng)州 500 .金壇市城市防洪工程管理處 金壇 300)
科技論壇
利用計(jì)算機(jī)編程計(jì)算水閘收縮斷面水深初析
馬 俊1褚俊杰2朱文娟2
(1.江蘇省江都水利工程管理處 揚(yáng)州 225200 2.金壇市城市防洪工程管理處 金壇 213200)
概要闡述了“始流時(shí)閘下安全水位~流量關(guān)系曲線”中關(guān)于收縮斷面水深hc的人工試算過程,以及通過計(jì)算機(jī)編程解決的計(jì)算收縮斷面水深hc的方法,重點(diǎn)對(duì)人工試算和計(jì)算機(jī)運(yùn)算在精度、效率、成本三個(gè)方面進(jìn)行了分析比較,得出計(jì)算機(jī)運(yùn)算比人工試算更有優(yōu)勢(shì)的結(jié)論。
收縮斷面水深 人工試算 計(jì)算機(jī)編程
根據(jù)《江蘇省節(jié)制閘技術(shù)管理辦法》的要求,閘門操作運(yùn)用的基本要求是:過閘流量應(yīng)與下游水位相適應(yīng),使水躍發(fā)生在消力池內(nèi);當(dāng)初始開閘或較大幅度增加流量時(shí),應(yīng)采取分次開啟辦法,每次泄放的流量應(yīng)根據(jù)“始流時(shí)閘下安全水位~流量關(guān)系曲線”確定,并根據(jù)“閘門開高~水位~流量關(guān)系曲線”確定閘門開高;每次開啟后需等下游水位穩(wěn)定后才能再次增加開啟高度。因此在金壇城市防洪工程管理處創(chuàng)建“省一級(jí)”的過程中,根據(jù)需要對(duì)所管轄的節(jié)制閘工程設(shè)計(jì)了相應(yīng)的兩種“流量關(guān)系曲線”。
石橋水利樞紐工程采用閘站結(jié)合形式布置,其節(jié)制閘工程為一座6m凈寬的節(jié)制閘及交通橋,采用6m升臥式平面鋼閘門,由繩股式卷?yè)P(yáng)啟閉機(jī)控制。根據(jù)金壇市城市防洪工程管理處石橋水利樞紐節(jié)制閘工程的具體情況,以其“始流時(shí)閘下安全水位~流量關(guān)系曲線”為例,該曲線設(shè)計(jì)的目的是保證每次開閘時(shí)所產(chǎn)生的水躍都發(fā)生在消力池內(nèi),以達(dá)到安全開閘的目的。其中計(jì)算共軛水深hc″和水躍長(zhǎng)度Lj需要知道弗勞德數(shù)Frc及收縮斷面水深hc,而弗勞德數(shù)Frc也是通過收縮斷面水深hc計(jì)算得出的,因此“始流時(shí)閘下安全水位~流量關(guān)系曲線”繪制的重點(diǎn)在于收縮斷面水深hc的試算,通過對(duì)人工試算收縮斷面水深hc過程進(jìn)行研究,發(fā)現(xiàn)試算過程中存在的問題,以計(jì)算機(jī)編程的方式進(jìn)行解決,以達(dá)到提供工作效率為目的。試算所使用數(shù)據(jù)為工程正向運(yùn)用時(shí)的數(shù)據(jù)。
2.1 一般情況下收縮斷面水深的計(jì)算
以金壇市城市防洪工程管理處石橋樞紐的節(jié)制閘工程為例,其應(yīng)屬于平板閘門下底孔出流,根據(jù)其閘前斷面0-0及收縮面c-c的能量方程:
式中:ξ—0-0斷面至c-c斷面間的水頭損失系數(shù);
E0—以收縮斷面底部為基準(zhǔn)面的壩前水流總比能;
αc—c-c斷面的動(dòng)能修正系數(shù);
vc—c-c斷面的平均流速;
hc—收縮斷面水深;
g—重力加速度。
以vc=代入上式得:
式中:g—重力加速度;
Ac—矩形斷面。
對(duì)于矩形斷面,Ac=bhc。取q為單寬流量計(jì)算,則:
圖1 石橋樞紐安全始流水位流量關(guān)系曲線
表1 收縮斷面水深試算表
在不考慮行近水頭損失的情況下:
E0=H0≈H+d
式中:H—上游水位;
H0—上游總水頭;
d—坎高。
由公式進(jìn)行轉(zhuǎn)變,E0-H-d=0,則:
2ghc32-q2-2ghc3(2H+d)=0
設(shè)參數(shù)Z,使得
式中:Z—計(jì)算式設(shè)定參數(shù)。
將收縮斷面水深hc取值帶入(4)式中進(jìn)行計(jì)算,因?yàn)橛?jì)算式為三次方程式,一般情況下需要就行試算法求解,通過Excel列表,以便于檢查錯(cuò)誤及逐次逼近。
2.2 人工試算收縮斷面水深hc發(fā)現(xiàn)的問題
2.2.1 大多數(shù)情況下,不能找到滿足參數(shù)Z正好為零的收縮斷面水深hc,這是三次方程的特性決定的,因此在選擇收縮斷面水深hc的解時(shí),需要比較參數(shù)Z時(shí)正負(fù)兩組解的絕對(duì)值的大小,以取得最優(yōu)解。
2.2.2 某些情況會(huì)出現(xiàn)一個(gè)使參數(shù)Z無(wú)限接近某個(gè)有理數(shù)的解。
2.3 利用計(jì)算機(jī)編程計(jì)算收縮斷面水深hc
2.3.1 程序設(shè)計(jì)的思路和過程
因?yàn)檐S前水深計(jì)算式為三次方程式,人工一般情況下需要就行試算法求解,一般試算的方法為二分查找法,如果按人工試算的思路設(shè)計(jì)算法,算法的復(fù)雜度會(huì)比較大,代碼的可讀性也比較差。在不考慮計(jì)算效率的情況下,利用計(jì)算機(jī)強(qiáng)大的運(yùn)算能力,可利用窮舉法進(jìn)行計(jì)算,同時(shí)在算法設(shè)計(jì)的過程中,必須合理地將人工試算的過程中發(fā)現(xiàn)的三個(gè)方面的問題進(jìn)行解決。
表2 計(jì)算收縮斷面水深hc運(yùn)算表
在程序設(shè)計(jì)的過程中設(shè)計(jì)了3個(gè)主要的函數(shù)進(jìn)行運(yùn)算,importNum()函數(shù)用作數(shù)據(jù)輸入,trial()函數(shù)用作數(shù)據(jù)運(yùn)算,OperationNum()函數(shù)用作數(shù)據(jù)比較。importNum()函數(shù)在編寫的時(shí)候需要注意指針傳遞。trial()函數(shù)在編寫時(shí)需要利用其返回值。三個(gè)函數(shù)的具體實(shí)現(xiàn)過程本篇文章不做詳述。
部分代碼如下:
#include
#include
void importNum(float*q,float*h,float*tc)//數(shù)據(jù)輸入函數(shù)定義
float trial(float a,float s,float c,float q,float h)//數(shù)據(jù)運(yùn)算函數(shù)定義
void OperationNum(float a,float b,float s,float c,float q,float h,float tc,float ya,float yc)
//數(shù)據(jù)比較函數(shù)定義
int main()
{
float a=0,b=0,s=0.98,c=0,ya=0,yc=0;//s為流速系數(shù),a,b,c,ya,yc為零時(shí)變量
float q=0,h=0,tc=0.1;//q為單寬流量,h為上游總水頭,tc為預(yù)設(shè)精度
importNum(&q,&h,&tc);//數(shù)據(jù)輸入函數(shù)
a=Trial(a,s,c,q,h);//數(shù)據(jù)首次進(jìn)行運(yùn)算
OperationNum(a,b,s,c,q,h,tc,ya,yc);//輸入?yún)?shù)進(jìn)行比較直至輸出結(jié)果
return 0;
}
程序編寫完成后進(jìn)行數(shù)據(jù)計(jì)算,計(jì)算的過程通過輸入單寬流量和上游總水頭,自動(dòng)運(yùn)算出相適應(yīng)的收縮斷面水深hc。然后將計(jì)算的結(jié)果輸入Excel中,以便于生成“始流時(shí)閘下安全水位~流量關(guān)系曲線”。
2.3.2 計(jì)算機(jī)運(yùn)算的結(jié)果
計(jì)算機(jī)運(yùn)算的收縮斷面水深hc數(shù)值是根據(jù)程序中設(shè)置的精度來(lái)的,此次計(jì)算的精度精確到10-6;求解(4)式值Z時(shí)與試算過程的解接近。說明計(jì)算機(jī)編程運(yùn)算的結(jié)果為正確的。
3.1 兩種計(jì)算方式的精度的比較
本文列舉的人工試算和計(jì)算機(jī)運(yùn)算的結(jié)果都在參數(shù)Z精度10-2條件下得出的,因此具有相同的準(zhǔn)確度,通過比較表1和表2可以看出,人工試算的精度為10-3,而計(jì)算機(jī)運(yùn)算的精度為10-6,計(jì)算機(jī)運(yùn)算比人工試算精確到高1000倍。同時(shí)參數(shù)Z的精度決定了收縮斷面水深hc的值,在參數(shù)Z的精度要求逐漸變高后,收縮斷面水深hc的人工試算也變得更加費(fèi)時(shí),而對(duì)計(jì)算機(jī)運(yùn)算的影響卻很小,因此在某些對(duì)精度有特殊要求的場(chǎng)合中運(yùn)用時(shí),計(jì)算機(jī)運(yùn)算的結(jié)果比人工試算更有優(yōu)勢(shì)。
3.2 兩種計(jì)算方式的效率的比較
以石橋樞紐節(jié)制閘工程需要的數(shù)據(jù)精度為例,現(xiàn)編制一張“安全始流水位~流量關(guān)系曲線”需要50組數(shù)據(jù),人工試算需要不停計(jì)算,逐次逼近,由于經(jīng)驗(yàn)及運(yùn)算技巧的不同,花費(fèi)時(shí)間也是因人而異,根據(jù)比較表1和表2可以看出,試算一組數(shù)據(jù)需要的平均時(shí)間66s,50組數(shù)據(jù)共計(jì)需要55min。計(jì)算機(jī)運(yùn)算一組數(shù)據(jù)的耗時(shí)為由人工輸入時(shí)間,計(jì)算機(jī)運(yùn)算的平均時(shí)間為8.26s,50組數(shù)據(jù)共計(jì)6'53"。單從時(shí)間上看,通過計(jì)算機(jī)運(yùn)算大大節(jié)約了時(shí)間,提高了效率。
3.3 兩種計(jì)算方式成本的比較
針對(duì)不同的工程,因工程的獨(dú)特性,其繪制的“始流時(shí)閘下安全水位~流量關(guān)系曲線”圖均不一樣,但原理相同。人工試算每次都要進(jìn)行計(jì)算,唯一可以提高效率的方式是通過多人分段試算,當(dāng)然也會(huì)增加人力資源成本,已經(jīng)逐漸不符合當(dāng)今水利發(fā)展的要求;通過計(jì)算機(jī)完成針對(duì)此次水利工程運(yùn)用的代碼編寫后,可以移植到其他水利工程繼續(xù)使用,節(jié)約了時(shí)間成本,同時(shí)可以對(duì)程序進(jìn)一步開發(fā)、完善,以達(dá)到輸入數(shù)據(jù)后可以自動(dòng)進(jìn)行計(jì)算并生成“始流時(shí)閘下安全水位~流量關(guān)系曲線”圖,相比人工試算,將極大地節(jié)約時(shí)間、人力等各項(xiàng)成本。
目前水利工程運(yùn)行管理與計(jì)算機(jī)和信息化技術(shù)緊密結(jié)合,通過計(jì)算機(jī)對(duì)水利工程運(yùn)行管理中產(chǎn)生的數(shù)據(jù)進(jìn)行分析只是其中一種應(yīng)用,本文列舉了利用計(jì)算機(jī)編程計(jì)算節(jié)制閘閘門開啟時(shí)產(chǎn)生水躍的收縮斷面水深hc的一種方式,可以更加快捷高效地繪制“始流時(shí)閘下安全水位~流量關(guān)系曲線”圖。目前“始流時(shí)閘下安全水位~流量關(guān)系曲線”運(yùn)用還比較局限,一般工程是將其繪制成圖表上墻,由節(jié)制閘操作人員根據(jù)上墻的曲線圖反映的具體數(shù)值進(jìn)行閘門的開度控制。但若該工程已經(jīng)建設(shè)了自動(dòng)化控制系統(tǒng),可以在控制軟件中編制“始流時(shí)閘下安全水位~流量關(guān)系曲線”程序,根據(jù)實(shí)時(shí)采集的上下游水位,自動(dòng)計(jì)算閘門始流時(shí)最大開啟高度,操作人員根據(jù)提示進(jìn)行閘門開啟控制,確保工程安全運(yùn)行,提高節(jié)制閘工程的管理的先進(jìn)性