丁麗澤,歐陽明,章晴雯
(1.嘉興職業(yè)技術學院,浙江嘉興 314036;2.浙江工業(yè)大學建筑工程學院,浙江杭州 310014)
利用Excel實現明渠特征水深計算
丁麗澤1,歐陽明2,章晴雯1
(1.嘉興職業(yè)技術學院,浙江嘉興 314036;2.浙江工業(yè)大學建筑工程學院,浙江杭州 310014)
針對正常水深、臨界水深、收縮水深和共軛水深這四種明渠特征水深,通過Excel軟件的填充柄、單變量求解功能、循環(huán)引用迭代計算和規(guī)劃求解功能四種方法進行求解計算。通過實例計算以及與文獻計算結果對比分析,表明Excel求解與一般的人工手算或計算機編程計算相比,能更快速、準確、方便地求得各種斷面形式的水深,計算過程方便易懂、計算結果精確可靠,為教學和設計等提供了很好的方法和思路。
明渠;特征水深;Excel;高次方程
在明渠水力學中,正常水深、臨界水深、收縮水深和共軛水深被稱為渠道的特征水深,在近些年來已有許多學者進行了研究并提出了諸多的計算方法。蘆琴[1]比較系統(tǒng)地介紹了多種斷面明渠特征水深的直接計算方法,給出了較為常見的明渠特征水深直接計算公式的比較和誤差分析與評價;而李蕊[2]系統(tǒng)地分析了梯形明渠特征水深的直接計算方法并在此基礎上進行了一定的改進從而提出了四套相應水深的計算公式。正如文獻[1]和[2]中提到的,明渠特征水深的求解實質上是求解含多個未知參數的單變量或多變量的超越方程或高次方程;而這些方程在理論上多是沒有解析解的,因此在實際的應用中常采用試算法、迭代法、圖解法和近似解法等。隨著研究的不斷深入,迭代算法和直接計算公式成了研究的主流方向[1-11],特別是直接計算公式的推求在近些年來已成為研究熱點[6-11]。在目前的文獻報道中,特征水深計算算法的實現除了常規(guī)的迭代求解和最小二乘法計算外,還包括牛頓算法[11]、遺傳算法[12]、模式搜索算法[13]、粒子群算法[14-15]、蟻群算法[16]、群競爭算法[17]等。然而這些方法的實現通常均需借助計算機實現,除了直接應用編程軟件進行程序編寫實現[18],近年來更傾向于利用數值計算軟件來求解,特別是MATLAB的使用[19-20]。然而無論是進行編程還是利用MATLAB實現,對于一般的工作人員和使用者而言均不易掌握,需要進行比較專業(yè)性的學習,且在實際的運用中往往需要進行一定的調試,特別是利用編程實現則更需要書寫繁復的程序代碼和集成開發(fā),這就更增加了推廣應用的難度。在日常生活和工作中,Excel軟件作為最常用的基本辦公應用軟件之一,其在數值計算上也具備很好的功能,用Excel求解明渠特征水深在理論上是可行的,而且這樣也可以避免必須安裝相關的專業(yè)軟件。
正常水深即為明渠恒定均勻流水深[2],通過聯立恒定流的連續(xù)方程和謝才公式可以得到明渠均勻流的流量公式,再將曼寧公式代入可以很方便地得到明渠均勻流的基本方程:
式中:n為渠道粗糙系數;Q為流量;i為渠道比降;A為渠道過水斷面面積;χ為濕周。
由于過水斷面面積A和濕周χ在進行計算時均包含正常水深h0,而不同形式的過水斷面具體計算公式有所不同。若將相應的面積和濕周這些水力要素代入可以得到包含正常水深h0的隱式方程計算式,該方程是一個高次方程,不能直接求得正常水深h0的解析解。
與正常水深有所不同的是臨界水深、收縮水深和共軛水深都屬于明渠恒定非均勻流水深[2],而臨界水深相應于斷面單位能量最小值的水深,以hk表示[21]。通過計算斷面比能Es并對水深求導使其等于零可以求得臨界水深滿足:
式中:α為動能修正系數,通常取作1.0;Q為明渠流量;g為重力加速度,通常取為9.81 m/s2;AK為相應于臨界水深時的過水面積;BK為相應于臨界水深時的水面寬度。
同求解式(1)一樣,式(2)含有AK和BK,這都與臨界水深hk有關,將具體斷面的水力要素代入也會得到一個高次方程,該方程除了某些簡單的斷面形式(如矩形斷面),一般也沒有解析解。
一般地,收縮水深在工程中最常見于泄水建筑物下游收縮斷面,該處流速最大,水深最小,以hc0表示,收縮水深hc0要小于臨界水深hk[21],因此水流流態(tài)為急流。利用能量守恒原理,分別取上游斷面和收縮斷面列出能量方程式,可以得到:
式中:E0為上游斷面總水頭;hc0為收縮水深;Q為過水流量;g為重力加速度,通常取為9.81 m/s2;φ為流速系數;Ac0為收縮斷面面積。
顯然由于某個具體的斷面形式的斷面面積Ac0包含有收縮水深hc0,具體的水力要素代入能得到高次方程需要求解,這在理論上同樣不存在解析解。
當明渠中水流由急流狀態(tài)過渡為緩流狀態(tài),產生水面突然躍起的局部水力現象,也即在較短的渠段中水深從小于臨界水深急劇地躍升至大于臨界水深[21],這便是水躍,而共軛水深就發(fā)生在水躍過程中。由于水躍的上部會有表面旋滾的現象,故將表面旋滾起點的過水斷面稱作躍前斷面,而表面旋滾末端的過水斷面稱作躍后斷面,兩個斷面的水深分別叫作躍前水深(或第一共軛水深)和躍后水深(或第二共軛水深),我們將這兩個水深統(tǒng)稱為共軛水深。根據水躍前后斷面的動量方程和連續(xù)性方程可以整理得棱柱體水平明渠的水躍方程:
式中:Q為流量;g為重力加速度,通常取為9.81 m/s2;A1和A2分別表示躍前和躍后過水斷面的面積;hc1和hc2分別表示躍前和躍后過水斷面形心點的水深。
只要將水力要素代入,當渠道斷面形狀、尺寸和過水流量一定,則水躍方程(4)兩端僅為水深的函數,將之稱為水躍函數:
式中:A是躍前或者躍后過水斷面面積;hc是躍前或者躍后過水斷面形心點的水深,其它符號含義同前述。
對于共軛水深,它不同于其它3種水深,因為它共包含兩個水深,它們具有相同的水躍函數值,因此將其稱作共軛水深,一般是由已知的一個共軛水深h1(或h2)計算另一個未知的共軛水深h2(或h1)。除了某些簡單的斷面形式(如矩形斷面),一般共軛水深的計算并不存在解析解。
由于明渠特征水深的求解實質上是求解含多個未知參數的單變量或多變量的超越方程或高次方程,因此結合Excel本身具有的數值計算功能,在明渠特征水深的Excel求解實現上一般可以用填充柄、單變量求解功能、循環(huán)引用迭代計算和規(guī)劃求解功能等來完成。
拖動填充柄在Excel是非常常見的操作,一般而言,在這過程中往往需要先定義相對引用和絕對引用,這是由于在拖動填充的過程中,相對引用的單元格會隨行與列變化而變化,而絕對引用就不會變化了[22],某些常數參量(如重力加速度g和計算時明確數值的流量Q等)就必須用絕對引用,否則就會發(fā)生錯誤,絕對引用需要在確定的行號或者列號前加“$”符號以示區(qū)別。利用拖動填充柄進行計算的本質就是試算,通過改變需要求解的特征水深的數值得到一系列的結果再與需要求得的結果進行比較,然后縮小搜索范圍直到求解出足夠精度的解答。由于事先不確定待求特征水深準確的范圍,只能根據經驗和基本的水力學知識進行預判,這在一定程度上會增加計算量,但從另一方面來看,這種方法可以直接應用特征水深的基本方程以及公式,往往比較直觀和明確,很早以前利用Excel求解非線性方程往往應用該方法。
明渠特征水深一般就只有一個,或者說未知水深只有一個,因此利用單變量求解是可行的。“單變量求解”,顧名思義,即單個變量的求解計算,可以在Excel的“工具”下拉菜單中找到,如圖1所示,它適用已知公式結果但不知結果所需的輸入值的情況,單變量求解是Excel通過不斷改變單元格中數值直到從屬于該單元格的公式返回預期結果[23]。
圖1 單變量求解輸入框
由于單變量求解功能的簡便性,單變量求解功能在水力計算中也應用得越來越廣泛,文獻[24]就利用Excel的單變量求解功能進行明渠均勻流水力計算作了初步的探討,其中就有涉及求解正常水深的環(huán)節(jié),文獻[25]也談及利用Excel的單變量求解功能求解梯形斷面渠道正常水深,但利用該功能求解其它特征水深還未有多見。雖然單變量求解方便,但它是用牛頓法以一定步長啟動迭代計算,有時甚至修改迭代幾千次或多次修改估計根仍然不能得到有意義的根[23]。
規(guī)劃求解功能與單變量求解功能相比較,其功能更為強大。當然同單變量求解一樣,操作的單元格需要與工作表的公式相關聯?!耙?guī)劃求解”可以在Excel的“工具”下拉菜單中找到,如果沒有找到該選項可以在“工具”下拉菜單中“加載宏”先進行安裝,再打開規(guī)劃求解功能框,如圖2所示。
圖2 規(guī)劃求解輸入框
一般地,單變量求解能夠完成的利用規(guī)劃求解功能均能實現,而且它也適用于需要同時改變多個單元格中的數值和同時滿足某些指定約束條件以獲得目標單元格中的指定值的情況[23]。同單變量求解的缺陷有所類似,在求解結果時若單個未知量有多個根,在利用規(guī)劃求解功能計算時只能得到一個解答,這個解答與初始值有關,但是比單變量求解好在其能夠在約束中限定約束條件以更好地得到需要的結果,這樣可以避免初始值選取時可能造成的差錯。文獻[26]簡要介紹了利用Excel規(guī)劃求解工具求解水躍中的共軛水深和圓形斷面渠道臨界水深等水力計算問題,指出規(guī)劃求解工具求解的優(yōu)越性。
除了上述利用填充柄以及單變量求解和規(guī)劃求解工具,利用Excel本身可以完成自動循環(huán)引用迭代,這樣可以避免利用上述3種求解方法在計算新的案例需要重新計算的麻煩,只要更改實際中的相關量值,計算結果可以相應直接求得。當然,隱式計算式一般難以實現上述的直接計算,需要先通過等式變換成顯式迭代公式,然后利用Excel重復計算功能計算所得??梢栽凇肮ぞ摺毕吕藛沃羞x擇“選項”,在“重新計算”中選擇“自動重算”,選擇“迭代計算”,其中可以設置“最多迭代次數”及“最大誤差”,如圖3所示。
圖3 重新計算設置框
Excel中的循環(huán)引用只是把被循環(huán)引用單元格的初始值作為0處理,因此Excel中的循環(huán)引用只能直接處理初始近似為0的迭代計算[27],特別是在共軛水深的計算中往往會受到限制,當然在單變量求解和規(guī)劃求解也會遇到,只是它們可以利用初始值及約束得到解決。在應用循環(huán)引用迭代時需要引用本身的單元格,這樣定義的迭代計算與理論上的迭代計算是完全符合的。當然,除了簡單迭代法外,還可以使用加速迭代方法[23],常用的有Newton-Raphson法、Aitken法、連續(xù)代換法、Wegstein法等。
有一梯形渠道,已知流量Q=3 m3/s,底坡i=0.0049,粗糙系數n=0.0225,邊坡系數m=1.0,渠底寬度b=1 m,求正常水深h0[10]。
根據題意可以利用循環(huán)引用迭代進行計算,先將梯形斷面正常水深等式變換成顯式的迭代計算公式,可參照相關的經典水力學教材[21],由梯形斷面水力要素和式(1)得簡單迭代式:
先在Excel工作表中設置計算精度,可以在如圖3 中進行選擇 。在A1、A2、A3、A4、A5、A6、A7、A8、A9分別輸入相關的說明和注釋以方便閱讀,在B3、B4、B5、B6、B7 分別輸入已知參數,如圖 4 所示?,F在需要計算正常水深h0,在B9中輸入“=(B3*B5/SQRT(B4))^(3/5)*(B7+2*B9*SQRT(1+B6^2))^(2/5)/(B7+B6*B9)”,由于B9單元格中的計算公式引用了自身單元格,所以可以進行迭代計算,實現自動運算從而求得所需要的結果,最后通過該方法計算所得的正常水深h0=0.8613 m,如下圖4,與文獻[10]計算結果相一致,完全符合精確解答,如果需要調整計算結果的顯示精度,只需在單元格格式的“數字”中設置數值的小數位數。
圖4 梯形渠道正常水深循環(huán)引用迭代計算
該方法的優(yōu)點是更改相關的計算參數,結果可以自動計算所得,不需要再進行重復的操作,如果更改過水流量為5 m3/s,10 m3/s,15 m3/s,20 m3/s,可以很方便地直接得到相應的正常水深為1.1117 m,1.5495 m,1.8688 m,2.1285 m,其它的參數變化也能夠方便地獲得。
某工程引水隧洞的設計直徑分別為15 m和3 m,對應的設計過水流量分別為500 m3/s和8 m3/s,試計算洞內的臨界水深值[8]。
與循環(huán)引用迭代計算正常水深一樣,先輸入相關的說明和已知參數,如圖5所示。
圖5 圓形斷面臨界水深單變量求解
已知壩(閘)前斷面總水頭E0=12 m,通過流量Q=200 m3/s,圓形斷面直徑d=15 m,流速系數 φ=0.95,求壩(閘)后斷面收縮水深[9]。
圖6 圓形斷面收縮水深規(guī)劃求解
已知梯形渠道底寬b=2 m,邊坡系數m=1.5,流量Q=10 m3/s,第一共軛水深h1=0.25 m,求第二共軛水深h2[7]。
利用拖動填充柄是最先被采用的方法,相應的參數和說明見圖7,由于hc1和hc2表示躍前和躍后過水斷面形心點的水深,并不等于第一共軛水深h1和第二共軛水深h2,因此先將其進行水深間的轉換,可以得到梯形渠道的水躍函數[7]:
圖7 梯形渠道共軛水深拖動填充柄計算
在D5中輸入“=$B$3^2/$D$4*(1/($B$4+$D$3*B5)*B5)+$B$4/2*B5^2+$D$3/3*B5^3”,在共軛水深求解中以J(h2)-J(h1)作為判定條件,因此在D7中輸入“=$B$3^2/$D$4*(1/(($B$4+$D$3*B7)*B7)-1/(($B$4+$D$3*$B$5)*$B$5))+$B$4/2*(B7^2-$B$5^2)+$D$3/3*(B7^3-$B$5^3)”,利用填充柄拖動單元格B7和D7往下拉,可以利用判定條件判定解答的范圍,然后逐步縮減直至最后得到相應精度的解,可以得到第二共軛水深為2.667 m,與文獻[7]一致。當然這種方法如果逐步縮減范圍工作量比較大,可以小精度拖動,只是所需單元格數比較多??傮w上來說,這種方法比較容易理解,其實質就是人工的試算法,但由于手動操作比較多,本文并不推薦該方法,共軛水深也完全也可以利用其它的方法進行計算,結果依然一致。
從上述的4個算例中可以看出本文介紹的4種Excel計算方法完全可以很好地應用在明渠特征水深的求解中,其精度完全符合工程需求,比起利用編程語言編寫求解程序和利用數值計算軟件求解計算來說更為方便和簡單。除了上述的求解方法,Excel還可以實現圖解法等進行計算,這在水力學計算中也可以得到很好的應用。Excel求解明渠特征水深能簡化求解計算的過程,減少了工作量,對水力相關參數的修改便捷,大大降低了設計人員的勞動強度,提高計算速度和工作效率。
[1]蘆 琴.明渠特征水深直接計算方法的研究[D].楊凌:西北農林科技大學,2005.
[2]李 蕊.梯形明渠特征水深直接計算方法研究[D].楊凌:西北農林科技大學,2008.
[3]葛節(jié)忠,王成現.幾個常用斷面明渠均勻流水深和臨界水深的迭代算法[J].華北水利水電學院學報,2006,27(4):33-36.
[4]張寬地,呂宏興,趙延風.明流條件下圓形隧洞正常水深與臨界水深的直接計算[J].農業(yè)工程學報,2009,25(3):1-5.
[5]呂宏興,把多鐸,宋松柏.無壓流圓形斷面水力計算的迭代法[J].長江科學院院報,2003,20(5):15-17.
[6]劉計良,王正中,蘇德慧,等.典型斷面渠道臨界水深計算[J].排灌機械工程學報,2012,30(2):181-187.
[7]趙延風,王正中,蘆 琴,等.梯形明渠水躍共軛水深的直接計算方法[J].山東大學學報(工學版),2009,39(2):131-136,150.
[8]劉 剛,滕 凱.圓形斷面臨界水深簡化近似計算方法[J].水利與建筑工程學報,2011,9(6):81-83.
[9]趙延風,王正中,孟秦倩.無壓流圓形斷面收縮水深的近似計算公式[J].三峽大學學報(自然科學版),2009,31(1):6-8.
[10]趙延風,祝晗英,王正中,等.梯形明渠正常水深的直接計算方法[J].西北農林科技大學學報(自然科學版),2009,37(4):220-224.
[11]許延生,于鋒學,陳 瑛.基于牛頓法的梯形明渠臨界水深直接算法[J].水動力學研究與進展(A輯),2003,18(4):455-458.
[12]金菊良,丁 晶,楊曉華,等.計算溢流壩下游收縮斷面水深的方法[J].水利水電技術,2001,32(3):19-21.
[13]張寬地,呂宏興,王正中,等.用模式搜索算法求解梯形明渠正常水深[J].長江科學院院報,2009,26(9):25-28,34.
[14]張寬地,王光謙,呂宏興,等.基于改進粒子群算法求解馬蹄形斷面正常水深[J].排灌機械工程學報,2011,29(1):54-60.
[15]陳應華,袁曉輝,袁艷斌.粒子群優(yōu)化在臨界水深計算中的應用[J].水電能源科學,2006,24(1):55-57.
[16]李榮東,楊 娜.蟻群算法在泄水建筑物下游收縮斷面水深計算中的應用[J].黑龍江水利科技,2008,36(2):47-48.
[17]蔡德所,陶俊波,邱 飛,等.臨界水深非線性優(yōu)化計算的新算法[J].廣西大學學報(自然科學版),2007,32(3):238-242.
[18]寧少宇,門寶輝,付 強.計算機算法在求解復雜水力學公式中的應用[J].水利科技與經濟,2001,7(4):148-149.
[19]趙延風,王正中,許景輝,等.Matlab語言在梯形明渠水力計算中的應用[J].節(jié)水灌溉,2008,(4):38-40,47.
[20]楊茂松,汪 清,馬子普.基于MATLAB的常見斷面收縮水深的計算方法[J].黑龍江水利科技,2012,(1):54-56.
[21]吳持恭.水力學(第四版)[M].北京:高等教育出版社,2007.
[22]田 靜.Excel軟件在高職渠道水力參數教學中的應用[J].黃河水利職業(yè)技術學院學報,2011,23(2):65-68.
[23]鄭立輝,范國枝,韋一良,等.用 Excel求解迭代問題[J].計算機與應用化學,2008,25(11):1429-1431.
[24]雷豐澤,史香玲.用Microsoft Excel單變量求解進行明渠均勻流水力計算初探[J].水利科技與經濟,2011,17(11):100-101.
[25]楊 艷.Excel在《水力學》教學過程中的應用[J].長江工程職業(yè)技術學院院報,2011,28(3):69-71.
[26]徐文秀.Excel規(guī)劃求解工具在水力計算中的應用[J].南昌工程學院學報,2008,27(1):30-32,53.
[27]楊明波,盧建立,楊 敏.利用Excel的循環(huán)引用自動完成迭代計算[J].計算機應用與軟件,2008,25(12):103-105.
Realization for Calculation on Characteristical Depth of Open Channel by Excel
DING Li-ze1,OUYANG Ming2,ZHANG Qing-wen1
(1.Jiaxing Vocational and Technical College,Jiaxing,Zhejiang314036,China;2.College of Architectural Engineering,Zhejiang Polytechnical University,Hangzhou,Zhejiang310014,China)
The four kinds of characteristical depths of open channel,i.e.,normal water depth,critical water depth,contracted water depth and conjugate water depth,can be calculated by the four methods with Microsoft Excel such as filling handle,single goal seeking function,and iteration solving by circulating citation and programming solving function.Through the application examples and comparing with the reference results,it is shown that the depths in various kinds of sections can be obtained by Excel more quickly,precisely and conveniently compared with the general methods,such as manual calculation or computer programming.The process of calculation is simple and can be understood easily,the result of calculation is exact and reliable,and the good methods and new ways of thinking can be provided for teaching and design.
open channel;characteristical depth;Excel;high-exponent formula
TV133
A
1672—1144(2013)02—0176—06
2012-09-11
2012-10-27
丁麗澤(1987—),女,浙江嘉興人,碩士,主要從事建筑設計及巖土工程的教學和研究。