粒子群算法在求解天然河道水面线中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
粒子群算法在求解天然河道水面线中的应用
杨录峰;李春光;吕岁菊
【摘要】在天然河道水面曲线计算中,传统的试算法、迭代法和图解法等,计算过程中存在误差的累积问题.为此,可将天然河道水面曲线计算问题转化为求解全河段总的计算误差最小化问题;从而提出了用粒子群算法来处理这一仅给出隐含表达式的复杂非线性优化问题.实例计算的结果表明粒子群算法是可行的、通用的和简便的,可以有效控制全河段总的计算误差.
【期刊名称】《黑龙江大学工程学报》
【年(卷),期】2010(037)001
【总页数】4页(P1-4)
【关键词】天然河道;水面曲线;能量方程;粒子群算法
【作者】杨录峰;李春光;吕岁菊
【作者单位】北方民族大学数值计算与工程应用研究所,银川750021;北方民族大学数值计算与工程应用研究所,银川750021;北方民族大学数值计算与工程应用研究所,银川750021
【正文语种】中文
【中图分类】TV131.4
0 引言
水工建筑物下游水位流量关系和河道水面曲线的设计计算,是几乎所有涉水的水利
水电工程设计都需解决的课题,是保证工程设计安全和经济合理的重要前提。
天然
河道水面曲线的计算,是根据河道地形、纵横断面资料和河道糙率,推求河段在某一
定流量下各横断面处的水位值,从而绘出一条相应流量的水面曲线。
在河道上修建
拦河坝、水闸或桥梁等水利工程,会使上游水位抬高,可能会造成部分城市、工矿及
农村淹没,为了估计淹没范围需计算壅水水面沿河段的高度,即计算水面曲线;河道疏浚、截湾、分流等工程设计也需要进行天然河道水面曲线的计算;在沿河防洪工程
规划设计中需计算各设计流量对应的洪水水面曲线;根据河道的预报流量推求相应
的水面曲线,为堤防的防洪抗洪措施提供重要的决策支持。
由此可见,河道水面曲线
的计算不仅是河道水力学计算中的重要问题,而且具有广泛的工程应用背景。
目前,计算河道水面曲线的常用方法是试算法、迭代法和图解法[1-2],这类方法沿河道顺序逐段推求各计算河段横断面的水位值,存在各计算河段的误差累积问题[3],也不便控制全河段总的计算误差。
为此,本文提出了由能量方程演化的公式做为基本
计算式,确定河道计算河段各断面的水位值,这实质上就是全河段总的计算误差最小
化问题,利用粒子群优化算法(Particle Swarm Optimization,简称PSO)[4]来处理
这一复杂的非线性优化问题。
1 天然河道水面曲线的计算方法
水面曲线计算公式无论从能量方程出发进行演化,还是通过求解圣维南方程组得到
的差分解,都是假定计算河段流态符合渐变流条件,将河道分成水力要素一致的若干
计算河段,即假定计算河段内断面形状、底坡等沿程变化不大,从下游控制断面的已
知水位开始,逐断面进行迭代计算,递推上游断面水位[1],进而得到整个河道水面曲线情况。
对某计算河段而言,上、下游断面的能量方程为:
式中zu,zd,αu,αd,ξu,ξd,Au,Ad分别为相距Δ s的上、下游两个断面的水位、动能修正系数、局部阻力系数、过水断面面积;Q为河道流量;¯K为该河段平均流量模数。
其计算公式如下[1]:
式中n为河道糙率;R为水力半径,为湿周分别为上、下游断面的流量模数。
式(2)代入式(1),整理得:
当流量条件不变时,根据河道及其纵横剖面,可把研究的整个河段划分成(m-1)个计算河段,共有m个横断面。
由于断面水力要素 A,R都是水位z的函数,因此对于第i 个计算河段,式(3)两端分别为第i-1断面和第i断面关于水位z的函数,即:
目前推求河道水面曲线的常用方法是试算法、图解法与迭代法[4],试算法收敛速度慢,计算量较大;迭代法的实现思想是:已知计算河段某个断面的水位(zi),利用上下游断面的总能量相等得到如下公式:
由已知水位,计算第 i个断面的总能量Ei (zi),式(6)转化为一个关于zi-1的方程,通过简单迭代法计算得到容许误差ε范围内的第i-1断面的水位,将本河段求出的水位zi-1做为计算下一河段的已知断面的zi值,依次逐段计算i=m,m-1,…,2,从而得到相应于该流量值的全河段各计算断面的水位值。
在试算法和迭代法计算过程中,每一计算河段均存在一定的计算误差(容许误差),计算过程是逐段进行的,前一计算河段的误差必将传递影响到后面河段的计算结果,即存在误差积累问题。
因而对于长距离天然河道,由于其水力要素变化较大,使得计算水面曲线时必然要划分为多个计算河段,由于误差的累积,可能会导致估计上游断面的水面曲线时,出现较大误差,因此需要寻找新的可以有效控制全河段总的计算误差的方法。
由式(3)可知,全河段总的计算误差为:
因此全河段的水面曲线的计算问题就可以转化为计算最优值的问题:
其中为第i断面水位的变化范围,假定全河段最后河段水位已知,此问题是关于水位{zi|i= 1,2,…,m-1|}为变量的优化问题,可以选用实现简单的粒子群算法计算求解。
2 粒子群优化算法
粒子群优化算法是由Kennedy和Eberhart于1995年提出的一种新型的进化算法[3],该算法具有群体智能、内在并行性、迭代格式简单等优点,是一种基于迭代的优化算法。
系统随机初始化一组n维粒子群(其中包括初始位置与初始速度),第i个粒子的速度与位置分别设为xi=(xi1,xi2,…,xim),vi =(vi1,vi2,…,vim),在每次迭代过程中,粒子通过跟踪粒子本身所找到的最优解(个体极值pbesti)与整个粒子群的最优解(全局极值gbest)来更新自己。
找到以上两极值后,依据以下公式更新该粒子的速度和位置:
其中k为迭代步数;c1,c2为学习因子;ω为惯性加权因子,调节对解空间的搜索范围,取值范围为0.1~0.9;r1,r2为(0,1)区间的随机数。
对于该粒子不在搜索空间时,采用如下方式进行处理[6]:
同遗传算法相比,PSO没有交叉与变异,只是根据自己的速度搜索最优解,实现简单并且需要调整的参数较少,是解决非线性优化问题的有效工具。
3 河道断面概化
在实际计算过程中,原则上可根据断面资料确定断面的过水面积A,湿周χ随水深H 的变化关系。
对于难以通过资料确定的断面,可将断面概化成等效的梯形断面。
某一断面,从断面资料中量算相应水深 H、过水面积A、湿周χ,对于梯形断面有:
其中b为底宽;B为河宽;m为边坡比。
对于宽浅河道,断面可以等效为矩形断面,有:
4 应用实例
例1 大渡河某地修建一拦河坝,第一期工程坝前水位为1 520.00 m,在初步设计中,要求推算计量两下水库的回水线[1]。
已知库区河段粗糙系数n为0.025,某一级流量为10 600 m3/s。
在坝前从上游至下游将研究河段分为6个计算河段,相关水力要素见表1。
流速水头和局部水头损失忽略不计。
表1 各断面水力要素Table 1 Hydraulic factors of several cross-sections断面河宽B/m 过水面积A/m2 平均水深H/m 湿周B+2H/m 水力半径R/m 断面间距Δs/m 1 339.0 12 410 36.6 412.2 30.1 9 416 2 373.5 10 890 29.2 431.8 25.2 4 150 3 264.0 6 530 24.7 313.4 20.8 9 024 4 332.5 3 650 11.0 354.5 10.3 3 358 5 213.0 2 860 13.4 239.6 11.9 1 987 6 184.0 2 170 11.8 207.6 10.5
文献[1]中用艾斯考夫图解法求解,作图过程不可避免的产生较大绘图误差,且过程繁琐。
现用PSO同时计算各断面的水位值,目标函数为式(7),群体规模为40,迭代50次,得到的结果见表(2),图解法的计算水位取自文献[1]。
例2 某河段总长为19 450 m,根据实际情况将河道分为3段,并将相应4个断面概化为等效梯形断面。
各断面水力要素见表3,各断面糙率n为0.025,动能修正系数α为1.1,断面2~断面1/断面4~断面3河段成扩散状态,根据扩散程度,其局部水头损失ξ分别取为-0.1和-0.3;河段沿程有较分散的区间入流,当下游断面1水位为6.54 m时,要求推算河道水面曲线[5]。
表2 PSO与图解法计算断面水位比较Table 2 Water level of PS O and graphical method断面 PSO水位zi/m 图解法水位zi/m 断面 PSO水位zi/m 图
解法水位zi/m 1 1 520.00 1520.00 4 1 521.36 1521.00 1 520.06 1520.06 5 1 522.30 1521.87 3 1 520.14 1520.10 6 1 523.26 1522.75 minf 0.011 2 0.5017 2
表3 各河段水力要素Table 3 Hydraulic factors in reaches断面平均底高Z0/m 底宽b/m 边坡m/m 断面流量Q/m3◦s-1 局部损失系数ξ 断面间距Δs/m 1 1.32 209.6 8 1 620 4 200 2 2 710 3 2.17 287.8 5 1 470 0 1.73 149.8 15 1 530 -0.1 2 980 4 2.34 109.5 19 1 400 -0.3
利用迭代法与PSO算法计算各断面的水位,迭代法计算53次,PSO算法的参数设置同例1,得到的计算结果见表4。
表4 PS O与迭代法计算断面水位比较Table 4 Water level of PS O and iterative method断面 1 2 3 4 minf PSO水位/m 6.54 7.064 7.305 7.478 7.1e-4迭代法水位/m6.54 7.129 7.448 7.762 0.044 7
由表2,表4可见:PSO算法计算的全河段总的计算误差(目标函数)的值明显好于图解法和迭代法,PSO算法可以有效控制全河段的累积误差。
5 结论
在天然河道水面曲线计算中,目前常用的基于逐河段计算的图解法、试算法和迭代法都存在计算误差的累积问题,不能有效控制全河段的总的计算误差,本文将计算各断面水位值的问题转化为求解全河段计算误差最小值的优化问题。
粒子群算法具有实现简单,调整参数较少,不需要目标函数导数信息,不依赖于初始点选取等优点。
本文选用粒子群算法求解这一仅给出隐含表达式的复杂非线性优化问题,实例计算结果表明,PSO算法是简便可行的,与传统算法相比,它能有效控制全河段总的计算误差,可以在一定程度上提高计算精度。
但是天然河道边界条件及水力要素复杂,断面的取位,河段的划分,河道糙率取值等都影响到水面曲线的计算,其中河道糙率系数是衡量河床及边壁形状不规则和粗糙程
度对水流阻力影响的一个综合性系数,其取值的好坏直接影响到水面线的计算。
河道糙率系数的确定是水面曲线计算中一个十分重要的问题,实际计算过程中,最好应对所选用的糙率尽可能用实测资料进行验证,使计算出的水面曲线更切合实际。
参考文献:
[1] 吴持恭.水力学:下册[M].北京:高等教育出版社,1982:269-312.
[2] 宿继成,曲少萍,胡湘.天然河道水面线计算方法的改进[J].黑龙江水利科
技,2007,35(1):24-26.
[3] 金菊良,杨晓华.计算天然河道水面线的新方法[J].水利学报,2000,(9):25-28.
[4] J Kennedy,R Eberhart.Particle Swarm Optimization[C]// In:Proc.of International Conference on Neural Networks, 1995:1 942-1 948.
[5] 潘晓春.天然河道水面曲线的迭代算法[J].电力勘测,2002, 35(3):54-58.
[6] Jin Yisu,Joshua Knowles.T he Landscape Adaptive Particle Swarm Optimizer[J].Applied Soft Computing,2008,(8): 295-304.。