梁沃寧
(江門市科禹水利規劃設計咨詢有限公司,廣東 江門 529050)
重力壩是水利水電工程中一種常見的擋水建筑物,主要依靠自身的重力維持穩定性以滿足工程建筑的需要。破壞壩體結構穩定性的因素主要可以分為兩類:內因和外因。內因主要是指壩體結構設計、材料選擇是否合理,外因包括施工過程是否規范、以及其他的外在因素,如超過設計的洪水、地震等。常用的重力壩穩定性計算方法為理論計算和有限元數值模擬等方法,這些方法計算量大且需要人力全程參與,嚴重影響重力壩結構設計的工作效率。因此,提出采用蝙蝠算法進行重力壩結構優化設計,可有效降低人工計算量,提高設計效率。
蝙蝠算法的首次提出是在2010 年,英國學者Yang[1]受蝙蝠回聲定位的啟發所創造的優化算法。自蝙蝠算法提出以后,在多目標全局優化中得到了較為廣泛的應用,目前在變壓器故障診斷[2]、房價預測[3]、邊坡穩定性預測[4]、煤礦和天然氣需求[5~6]、水庫調度[7]等行業有較多的應用。同時也有一些學者對基本的蝙蝠算法進行改進從而滿足自身的需求[8~9]。
受蝙蝠捕食啟發得到的蝙蝠算法屬于全局搜索群優化算法。通過不斷更新蝙蝠的速度從而獲取蝙蝠的位置。蝙蝠算法的基本原理如下:

式中:fi表示編號為i 的蝙蝠在t 時刻所發出的超聲波的頻率;fmax、fmin分別表示蝙蝠群所發出的最大和最小超聲波的頻率;β 表示[0,1]范圍內的一個隨機數;L*表示在該情況下的最優解。
在蝙蝠搜索獵物的初期,距離目標較遠,此時需要增加響度從而達到接近目標的目的。隨著與目標距離的逐漸減小,需要減小響度提高脈沖速率,從而達到準確定位目標的目的。響度和脈沖速率的變化可以根據下式來確定:

基本蝙蝠算法有如下劣勢:
1)算法隨機性較強,針對性的局部搜索效果差,算法計算收斂速度慢;
2)算法速率和位置函數更新容易向局部最優靠攏,計算結果可能存在誤差。
針對以上劣勢提出初始種群改進和引入學習、懲罰因子。
2.2.1 初始種群改進
根據王元等[10]提出的佳點集理論生成初始種群,滿足如下公式:

式中:r 表示d 維空間中的一點;Qn(k)表示佳點集,偏差滿足φ(n)=C(r,ε)n-1+z,其中C(r,ε)為常數。
2.2.2 引入學習因子
引入學習因子λ 和慣性權值ω。
此時蝙蝠的速度為:

式中:ωt、ωmax、表示初始、最大和變化中的慣性權重;Li*表示編號為i 的蝙蝠的最優位置;Nmax、Nt分別表示最大和當前迭代次數。
2.2.3 引入懲罰因子
懲罰因子的設置在算法計算過程中更快速準確地向最優解靠攏,計算函數如下:

式中:f(a)、f(b)為懲罰函數;F 為建立的新的目標函數。
某水庫總庫容約1.59 億m3,為大(2)型水庫,工程等別為Ⅱ等,樞紐建筑物包括混凝土擋水壩段、溢流壩段、門庫壩段、引水壩段、擋水副壩以及輸水隧洞。攔河主壩為混凝土重力壩,按100 年一遇洪水設計,1000 年一遇洪水校核。水庫設計洪水位為134.89 m,校核洪水位為136.27 m。正常蓄水位134.0 m,防洪限制水位131.5 m,死水位107.0 m,興利庫容1.28 億m3。選取重力壩橫斷面作為結構優化設計分析斷面,建立該重力壩的平面模型。重力壩在正常使用工況下主要受到自身重力以及水壓力(包括上游水壓力和壩基揚壓力)。重力壩澆筑材料見表1。

表1 澆筑材料及參數屬性
3.2.1 計算變量選取
使用ANSYS 作為重力壩安全系數分析的有限元計算軟件。ANSYS 在各行各業結構計算中得到了廣泛的使用[11-12]。進行多組數值模擬獲取上游邊坡系數(Z1)、下游邊坡系數(Z2)、上游折點高度與壩高比值(Z3)、下游折點高度與壩高比值(Z4)四個變量與壩體安全系數的關系。使用MATLAB 進行關系擬合。
設計變量采用向量的形式表示:

式中:Z1表示各變量的下限,Z1=[0,0.60,0.32,0.86];Z2表示各變量的上限,Z2=[0.21,0.80,0.66,0.93];K 為計算模型中的重力壩壩體安全系數,K≥3;D 為計算模型中的壩體橫斷面最大寬度,D≥15 m。
3.2.2 計算模型樣本選取
為了建立可靠的擬合結果,需要選取可以代表整個計算區間的樣本數據。選取樣本應是隨機的,不受人為主觀因素影響的,對模型的輸入和數據結果之間的關系具有代表性的數據。目前拉丁超立方取樣法較為常用,該方法選取的樣本點具備代表性,且數據擬合快速。選取3.2.1 節中的4 個變量作為輸入數據,選取80 個樣本用作模型建立,使用20 個樣本數據進行模型精度的檢驗。
3.2.3 計算模型精度檢驗
通常使用下式來判斷擬合模型的精度:

式中:δ1表示最大誤差;δ2表示均方根誤差;N 代表精度檢測點個數;i 表示第i 個檢測點。δ1、δ2的值越小表示模型精度越高。
通過表2 的計算模型精度評價結果可以看到,所建立的模型最大誤差為4.13%,均方根誤差為0.24%,計算結果精度較高,可以滿足實際工程的設計要求。

表2 計算模型精度評價結果
使用MATLAB 編寫基于改進蝙蝠算法的模型,使用多次迭代計算,直至計算收斂,獲取重力壩結構最優設計方案,重力壩結構設計中的變量初始值和蝙蝠算法優化后的設計變量優化值見表3。
通過使用蝙蝠算法對重力壩結構優化設計,在滿足安全系數的要求下,斷面面積減小率為(224-190.8)/224=14.82%。根據結構優化計算結果建立數值模擬計算模型,通過分析得到安全系數K=6.61,滿足重力壩工程安全設計要求。

表3 結構設計優化前后各變量參數
1)建立數學模型對數值模擬進行代替,通過檢驗,模型精度較高;結合改進蝙蝠算法對建立的模型進行計算,可以達到快速收斂的目的。
2)使用建立的方法對實際工程中的重力壩結構進行優化設計,優化后的重力壩非溢流斷面面積為190.8 m2,與優化前混凝土面積減少約14.82%,使用ANSYS 對優化結構的重力壩安全系數進行模擬,安全系數為6.61,滿足工程要求。