基于改进蝙蝠算法的重力坝结构优化设计
2019-06-26梁沃宁
梁沃宁
(江门市科禹水利规划设计咨询有限公司,广东 江门 529050)
0 引言
重力坝是水利水电工程中一种常见的挡水建筑物,主要依靠自身的重力维持稳定性以满足工程建筑的需要。破坏坝体结构稳定性的因素主要可以分为两类:内因和外因。内因主要是指坝体结构设计、材料选择是否合理,外因包括施工过程是否规范、以及其他的外在因素,如超过设计的洪水、地震等。常用的重力坝稳定性计算方法为理论计算和有限元数值模拟等方法,这些方法计算量大且需要人力全程参与,严重影响重力坝结构设计的工作效率。因此,提出采用蝙蝠算法进行重力坝结构优化设计,可有效降低人工计算量,提高设计效率。
蝙蝠算法的首次提出是在2010 年,英国学者Yang[1]受蝙蝠回声定位的启发所创造的优化算法。自蝙蝠算法提出以后,在多目标全局优化中得到了较为广泛的应用,目前在变压器故障诊断[2]、房价预测[3]、边坡稳定性预测[4]、煤矿和天然气需求[5~6]、水库调度[7]等行业有较多的应用。同时也有一些学者对基本的蝙蝠算法进行改进从而满足自身的需求[8~9]。
1 蝙蝠算法基本原理
受蝙蝠捕食启发得到的蝙蝠算法属于全局搜索群优化算法。通过不断更新蝙蝠的速度从而获取蝙蝠的位置。蝙蝠算法的基本原理如下:
式中:fi表示编号为i 的蝙蝠在t 时刻所发出的超声波的频率;fmax、fmin分别表示蝙蝠群所发出的最大和最小超声波的频率;β 表示[0,1]范围内的一个随机数;L*表示在该情况下的最优解。
在蝙蝠搜索猎物的初期,距离目标较远,此时需要增加响度从而达到接近目标的目的。随着与目标距离的逐渐减小,需要减小响度提高脉冲速率,从而达到准确定位目标的目的。响度和脉冲速率的变化可以根据下式来确定:
2 改进蝙蝠算法
2.1 基本蝙蝠算法存在问题
基本蝙蝠算法有如下劣势:
1)算法随机性较强,针对性的局部搜索效果差,算法计算收敛速度慢;
2)算法速率和位置函数更新容易向局部最优靠拢,计算结果可能存在误差。
2.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 为建立的新的目标函数。
3 基于改进蝙蝠算法重力坝结构优化设计模型
3.1 工程概况
某水库总库容约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 坝体结构优化设计数学计算模型构建
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 计算模型精度评价结果
3.3 重力坝坝体结构优化设计
使用MATLAB 编写基于改进蝙蝠算法的模型,使用多次迭代计算,直至计算收敛,获取重力坝结构最优设计方案,重力坝结构设计中的变量初始值和蝙蝠算法优化后的设计变量优化值见表3。
通过使用蝙蝠算法对重力坝结构优化设计,在满足安全系数的要求下,断面面积减小率为(224-190.8)/224=14.82%。根据结构优化计算结果建立数值模拟计算模型,通过分析得到安全系数K=6.61,满足重力坝工程安全设计要求。
表3 结构设计优化前后各变量参数
4 结论
1)建立数学模型对数值模拟进行代替,通过检验,模型精度较高;结合改进蝙蝠算法对建立的模型进行计算,可以达到快速收敛的目的。
2)使用建立的方法对实际工程中的重力坝结构进行优化设计,优化后的重力坝非溢流断面面积为190.8 m2,与优化前混凝土面积减少约14.82%,使用ANSYS 对优化结构的重力坝安全系数进行模拟,安全系数为6.61,满足工程要求。