粒子群算法在求解天然河道水面线中的应用
2010-03-19杨录峰李春光吕岁菊
杨录峰,李春光,吕岁菊
(北方民族大学 数值计算与工程应用研究所,银川 750021)
0 引 言
水工建筑物下游水位流量关系和河道水面曲线的设计计算,是几乎所有涉水的水利水电工程设计都需解决的课题,是保证工程设计安全和经济合理的重要前提。天然河道水面曲线的计算,是根据河道地形、纵横断面资料和河道糙率,推求河段在某一定流量下各横断面处的水位值,从而绘出一条相应流量的水面曲线。在河道上修建拦河坝、水闸或桥梁等水利工程,会使上游水位抬高,可能会造成部分城市、工矿及农村淹没,为了估计淹没范围需计算壅水水面沿河段的高度,即计算水面曲线;河道疏浚、截湾、分流等工程设计也需要进行天然河道水面曲线的计算;在沿河防洪工程规划设计中需计算各设计流量对应的洪水水面曲线;根据河道的预报流量推求相应的水面曲线,为堤防的防洪抗洪措施提供重要的决策支持。由此可见,河道水面曲线的计算不仅是河道水力学计算中的重要问题,而且具有广泛的工程应用背景。
目前,计算河道水面曲线的常用方法是试算法、迭代法和图解法[1-2],这类方法沿河道顺序逐段推求各计算河段横断面的水位值,存在各计算河段的误差累积问题[3],也不便控制全河段总的计算误差。为此,本文提出了由能量方程演化的公式做为基本计算式,确定河道计算河段各断面的水位值,这实质上就是全河段总的计算误差最小化问题,利用粒子群优化算法(Particle Swarm Optimization,简称PSO)[4]来处理这一复杂的非线性优化问题。
1 天然河道水面曲线的计算方法
水面曲线计算公式无论从能量方程出发进行演化,还是通过求解圣维南方程组得到的差分解,都是假定计算河段流态符合渐变流条件,将河道分成水力要素一致的若干计算河段,即假定计算河段内断面形状、底坡等沿程变化不大,从下游控制断面的已知水位开始,逐断面进行迭代计算,递推上游断面水位[1],进而得到整个河道水面曲线情况。对某计算河段而言,上、下游断面的能量方程为:
式中zu,zd,αu,αd,ξu,ξd,Au,Ad分别为相距Δ s的上、下游两个断面的水位、动能修正系数、局部阻力系数、过水断面面积;Q为河道流量;¯K为该河段平均流量模数。其计算公式如下[1]:
式(2)代入式(1),整理得:
当流量条件不变时,根据河道及其纵横剖面,可把研究的整个河段划分成(m-1)个计算河段,共有m个横断面。由于断面水力要素 A,R都是水位z的函数,因此对于第i个计算河段,式(3)两端分别为第i-1断面和第i断面关于水位z的函数,即:
目前推求河道水面曲线的常用方法是试算法、图解法与迭代法[4],试算法收敛速度慢,计算量较大;迭代法的实现思想是:已知计算河段某个断面的水位(zi),利用上下游断面的总能量相等得到如下公式:
在试算法和迭代法计算过程中,每一计算河段均存在一定的计算误差(容许误差),计算过程是逐段进行的,前一计算河段的误差必将传递影响到后面河段的计算结果,即存在误差积累问题。因而对于长距离天然河道,由于其水力要素变化较大,使得计算水面曲线时必然要划分为多个计算河段,由于误差的累积,可能会导致估计上游断面的水面曲线时,出现较大误差,因此需要寻找新的可以有效控制全河段总的计算误差的方法。
由式(3)可知,全河段总的计算误差为:
因此全河段的水面曲线的计算问题就可以转化为计算最优值的问题:
Research on Indoor Design of DC Switch Yard for 1 100 kV Converter Substation YUE Yunfeng,JIAN Xianghao,KONG Zhida,GUO Jinchuan,TAN Wei(92)
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
文献[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
表3 各河段水力要素Table 3 Hydraulic factors in reaches
利用迭代法与PSO算法计算各断面的水位,迭代法计算53次,PSO算法的参数设置同例1,得到的计算结果见表4。
表4 PS O与迭代法计算断面水位比较Table 4 Water level of PS O and iterative method
由表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.