一种基于松鼠搜索算法的电阻率溶洞识别方法

文档序号:1390257 发布日期:2020-02-28 浏览:1次 >En<

阅读说明:本技术 一种基于松鼠搜索算法的电阻率溶洞识别方法 (Resistivity karst cave identification method based on squirrel search algorithm ) 是由 陈建华 罗盈洲 韩庆忠 邓亮 于 2019-11-07 设计创作,主要内容包括:本发明公开了一种基于松鼠搜索算法的电阻率溶洞识别方法,该方法主要步骤如下:S1.构建溶洞有限元模型,利用电阻抗法正问题相关公式求得结构测量点的电势分布数据;S2.构建溶洞结构的目标函数,即待优化的目标函数;S3.利用松鼠搜索算法不断的迭代优化目标函数,满足停止准则后,保存最优解,便可识别出溶洞位置。该方法对比传统的灵敏度或梯度矩阵方法可以准确地检测出各种溶洞的位置,无需初值和梯度信息,并且对噪声不敏感。本发明通过单个溶洞和多个溶洞两个实施例说明了该方法的有效性和鲁棒性,与粒子群算法相比,本发明即使在一定的测量噪声下也具有较好的探测精度,具有良好的工程应用能力。(The invention discloses a resistivity karst cave identification method based on a squirrel search algorithm, which mainly comprises the following steps: s1, constructing a karst cave finite element model, and solving potential distribution data of a structural measurement point by using an electric impedance method positive problem correlation formula; s2, constructing a target function of the karst cave structure, namely the target function to be optimized; and S3, continuously and iteratively optimizing the objective function by using a squirrel search algorithm, and storing the optimal solution after the stopping criterion is met so as to identify the karst cave position. Compared with the traditional sensitivity or gradient matrix method, the method can accurately detect the positions of various karst caves without initial values and gradient information and is insensitive to noise. The effectiveness and robustness of the method are illustrated through two embodiments of a single karst cave and a plurality of karst caves, and compared with a particle swarm algorithm, the method has better detection precision even under certain measurement noise and good engineering application capability.)

一种基于松鼠搜索算法的电阻率溶洞识别方法

技术领域

本发明涉及一种基于松鼠搜索算法的电阻率溶洞识别方法,属于地下溶洞探测技术领域。

背景技术

目前,在石灰岩地下溶洞发育的地区,建筑工程场地的地下溶洞,往往位于地下水位以下,建设各方为了保证建筑物基础的安全,不惜投入大量的人力、财力及时间进行石灰岩地区建设工程场地地下溶洞的勘查工作,采用传统的工程地质钻探仅为一孔之见,或采用传统的电法勘探,由于地下溶洞埋深较大或地下溶洞规模较小而导致其电阻率与围岩石灰岩电阻率差异较小而无法准确地探查出来,给建筑物留下严重的安全隐患。地下溶洞会对房屋建筑、地铁等建造产生一定危害,及时探测出地下溶洞并加以处理,对结构施工、使用等中的安全有重要意义。

电阻率法探测溶洞问题是反问题的识别研究中的优化问题,其基本思想是:确定探测区域,电极方案,溶洞的出现会引起测量的电势分布数据的改变,进而反应到土层视电阻率的改变,可以利用这些变化对溶洞位置进行定位。即通过定义一个关于溶洞结构的目标函数,然后利用各种优化方法来实现探测溶洞的位置。传统的电阻率溶洞探测方法引入了正则化方法,采用灵敏度或梯度矩阵来识别溶洞位置,具有以下缺点:对初值敏感,对噪声敏感,容易陷入局部最优解,从而识别效果较差。

发明内容

本发明为克服上述技术的缺陷,提供一种具有实用性、有效性和准确性的基于松鼠搜索算法的电阻率溶洞识别方法,该方法采用电势分布数据差构建目标函数,用松鼠搜索算法对目标函数进行优化,可以准确地检测出各种溶洞的位置,无需初值和梯度信息,并且对噪声不敏感,具有良好的工程应用能力。

为实现上述目的,本发明的技术方案如下:一种基于松鼠搜索算法的电阻率溶洞识别方法,包括以下步骤:

步骤一:建立溶洞土层有限元模型,确定电极方案,利用电阻抗法得到测量点的电势分布数据;

步骤二:构建溶洞结构的目标函数,即优化的目标函数,该目标函数如下:

Figure BDA0002264412780000021

其中,g(c)为目标函数,||(.)||表示向量的2范数,即

Figure BDA0002264412780000022

c是各单元视电阻率,Su表示测量电势点集合上的数据,

Figure BDA0002264412780000023

是第i组电极方案测量的电势分布数据,

Figure BDA0002264412780000024

是第i组电极方案识别出来的电势分布数据,

Figure BDA0002264412780000025

是s组测量数据组成的矩阵,R(c)是s组识别数据组成的矩阵;

步骤三:利用松鼠搜索算法不断优化目标函数,满足停止准则后,最终可以得到溶洞的识别位置;

上述方法的步骤三中利用松鼠搜索算法对目标函数优化的具体过程如下:

S1,随机初始化:假设有n只松鼠(FS),第i只松鼠的位置可以用向量表示,所有松鼠的位置可用以下矩阵表示:

Figure BDA0002264412780000031

其中,FSi.j表示第i只松鼠的第j维数,采用均匀分布分配森林中每只松鼠的初始位置:

FSi=FSL+U(0,1)×(FSU-FSL) (3)

其中,FSL和FSU分别为第i个松鼠在第j维的下界和上界,U(0,1)为取值范围[0,1]内的均匀分布随机数;

S2,适应度评估:将决策变量(解向量)的值放入用户定义的适应度函数中,计算每只松鼠的位置适应度,并将对应的值存储在如下数组中:

Figure BDA0002264412780000032

S3,排序、声明和随机选择:在存储每个松鼠的位置的适应度值之后,数组按升序排序;

S4,生成新位置:新位置的数学模型有如下三种情况:

Figure BDA0002264412780000033

Figure BDA0002264412780000034

Figure BDA0002264412780000041

其中dg为随机滑翔距离,R1、R2和R3为[0,1]范围内的随机数,FSnt、FSat和FSht分别为到达普通树、橡子树和山核桃树的松鼠位置,t为当前迭代次数,Gc的值为1.9,Pdp的值为0.1;

S5,季节性监测条件:在算法中引入了季节监测条件,避免了算法陷入局部最优解,其建模行为涉及以下步骤:

(i)首先利用式(13)计算季节常数Sc

Figure BDA0002264412780000042

其中t=1,2,3;

(ii)检查季节监测情况,即

Figure BDA0002264412780000043

其中Smin为季节常数的最小值,计算公式为:

Figure BDA0002264412780000044

其中t和tm分别为当前迭代值和最大迭代值;

(iii)如果季节监测条件为真,则将松鼠随机重新安置;

S6,冬季末随机搬迁;松鼠的迁移是通过下面的方程来表达:

Figure BDA0002264412780000045

其中,Lévy分布的数学方法如下:

其中μ,γ>0.γ是尺度参数,μ是转移参数,Lévy飞行模式由下式计算:

Lévy(x)=0.01×ra×σ/|rb|1/β (16)

其中ra和rb为[0,1]中的两个正态分布随机数,在本工作中考虑

β常数为1.5,σ计算为:

其中,Γ(x)=(x-1)!;

S7,停止准则:在最后两个连续结果之间定义一个允许的小阈值,最大迭代次数被认为是停止准则,保存当前最优解,判断是否满足停止准则,满足则输出最优解,否则,重复S2-S6步骤,直到算法结束为止。与现有技术相比,本发明技术方案的有益效果是:本发明通过溶洞结构测量点的电势分布数据构建目标函数,利用元启发式算法来识别溶洞位置,对初值不敏感,对噪声不敏感,且不容易陷入局部最优解,具有更好的效率和精度。

附图说明

图1为溶洞识别问题归化为优化问题的流程图;

图2为松鼠搜索算法滑动行为的近似模型示意图;

图3为松鼠搜索算法的实现流程示意图;

图4为本发明实施例1中单个溶洞的有限元模型;

图5为本发明实施例2中多个溶洞的有限元模型;

图6为本发明实施例1中采用本发明所述方法在无噪音情况下的检测结果;

图7为本发明实施例1中采用本发明所述方法在有0.1%噪音情况下的检测结果;

图8为本发明实施例1中采用粒子群算法在无噪音情况下的检测结果;

图9为本发明实施例1中采用粒子群算法在有0.1%噪音情况下的检测结果;

图10为本发明实施例1中有0.1%噪音情况下单个溶洞的算法收敛曲线对比图;

图11为本发明实施例2中采用本发明所述方法在无噪音情况下的检测结果;

图12为本发明实施例2中采用本发明所述方法在有0.1%噪音情况下的检测结果;

图13为本发明实施例2中采用粒子群算法在无噪音情况下的检测结果;

图14为本发明实施例2中采用粒子群算法在有0.1%噪音情况下的检测结果;

图15为本发明实施例2中有0.1%噪音情况下多个溶洞的算法收敛曲线对比图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。

参见图1及图2,本发明的一种基于松鼠搜索算法的电阻率溶洞识别方法,具体过程分为两步:

(1)目标函数

溶洞模型简化为矩形探测区域。电流点与电势点不一致,但数目相等。使用有限元进行正问题求解,有如下方程

Figure BDA0002264412780000071

其中,u=[u1;u2;…;un]包含了所有测量节点电势,f=[f1;f2;…;fn]则表征电流向量,不同的电极方案,f不同。K为刚度阵,与各单元的视电阻率c=[c1;c2;…;cm]线性相关其中,Kj为单位电阻率时的单元刚度矩阵。

当土层中没有溶洞时,所有单元的视电阻率取c0=10,当出现溶洞时,所在单元的视电阻率会随之降低,本发明中出现溶洞的单元视电阻率取3,即cj=3(j=1,2,3,...,m)即代表第j单元出现溶洞。通过上述有限元的公式,c与u存在函数关系,我们可以通过识别出c推出计算的电势分布数据

Figure BDA0002264412780000072

基于电势分布数据构建的目标函数如下:

Figure BDA0002264412780000081

其中,c是各单元视电阻率,Su表示测量电势点集合上的数据,是第i组电极方案测量的电势分布数据,

Figure BDA0002264412780000083

是第i组电极方案识别出来的电势分布数据,

Figure BDA0002264412780000084

是s组测量数据组成的矩阵,R(c)是s组计算数据组成的矩阵。当测量的电势分布数据与识别的电势分布数据完全吻合时,数值最小,溶洞识别问题等价为优化问题,松鼠的某个个***置即为一种视电阻率分布情况,当目标函数达到极小值时,通过识别出来的视电阻率c,即最优解,便能反映出溶洞的位置。

(2)利用松鼠搜索算法对目标函数进行优化,得到识别结果。

参见图3,松鼠搜索算法可以分为以下7个阶段:

阶段1:随机初始化

参数设置包括算法初始种群数量n、最大迭代次数t和松鼠所有维度的上下界。第i只松鼠的位置可以用向量表示。所有松鼠的位置可用以下矩阵表示:

Figure BDA0002264412780000085

其中FSi.j表示第i只松鼠的第j维数。采用均匀分布(式(2))分配森林中每只松鼠的初始位置。

FSi=FSL+U(0,1)×(FSU-FSL) (4)

其中,FSL和FSU分别为第i个松鼠在第j维的下界和上界,U(0,1)为取值范围[0,1]内的均匀分布随机数。

阶段2:适应度评估,

将决策变量(解向量)的值放入用户定义的适应度函数中,计算每只松鼠的位置适应度,并将对应的值存储在如下数组中:

Figure BDA0002264412780000091

每个松鼠的位置的适应度值描述了它所搜索的食物来源的质量,即最优食物来源(山核桃树)、正常食物来源(橡子树)和没有食物来源(松鼠在正常树上),因此也描述了它们的生存概率。

阶段3:排序、声明和随机选择

在存储每个松鼠的位置的适应度值之后,数组按升序排序。最小适应度值的松鼠被认为在胡桃树上。接下来的三只最好的松鼠被认为是在橡子树上,它们被认为是朝着山核桃树移动的。剩下的松鼠应该在正常的树上。进一步的随机选择,一些松鼠被认为是走向山核桃树,假设他们已经满足了他们的日常能量需求。剩下的松鼠会去橡子坚果树(以满足它们的日常能量需求)。松鼠的这种觅食行为总是受到捕食者的影响。利用捕食者存在概率(Pdp)的位置更新机制对这种自然行为进行了建模。

阶段4:生成新位置

如前所述,在松鼠动态觅食过程中可能会出现三种情况。在每一种情况下,都假定在没有捕食者的情况下,松鼠会滑翔并有效地在整个森林中寻找它最喜欢的食物,而捕食者的出现使它变得谨慎,并被迫使用小的随机漫步来搜索附近的隐藏地点。动态觅食行为的数学模型如下:

1)在橡子坚果树上的松鼠可能会向胡桃树移动。在这种情况下,可以得到松鼠的新位置如下:

Figure BDA0002264412780000101

其中dg为随机滑翔距离,R1为[0,1]范围内的随机数,FSht为到达山核桃树的松鼠位置,t为当前迭代次数。在数学模型中,利用滑动常量Gc实现了勘探与开发的平衡。其值对所提算法的性能有显著影响。在目前的工作中,Gc的值被认为是1.9,经过严格的分析得到。

2)正常树上的松鼠FSnt可能会向橡子坚果树移动,以满足它们的日常能量需求。在这种情况下,可以得到松鼠的新位置如下:

Figure BDA0002264412780000102

其中,R2是为[0,1]范围内的随机数。

3)一些松鼠在正常的树上,已经吃过橡子坚果,它们可能会飞向胡桃树,以储存在食物匮乏时可以食用的胡桃。在这种情况下,可以得到松鼠的新位置如下:

Figure BDA0002264412780000103

其中R3是[0,1]范围内的随机数。在目前的工作中,捕食者存在的概率Pdp在所有情况下被认为是0.1。

4)松鼠的滑翔机理是通过平衡滑翔来描述的,其中升力(L)和阻力(D)之和产生的合力(R)大小与松鼠体重(Mg)方向相等且相反。本发明在优化算法的设计中,采用了滑动行为的近似模型(图1)。松鼠滑翔速度稳定总是降临在一个角度水平和升阻比或滑移率,定义如下:

Figure BDA0002264412780000111

松鼠可以增加他们的滑行着陆长度通过小滑移角(φ),从而提升阻力比例增加。在这里,升力是由于空气通过机翼时向下偏转而产生的,定义为:

其中,ρ(=1.204kgm-3)是空气密度,CL是升力系数,V(=5.25ms-1)是速度,S(=154cm2)是肢体表面积,摩擦阻力定义为:

其中CD为摩擦阻力系数。在低速时,这个阻力系数非常高,而在高速时它会变小。稳态滑翔角为:

Figure BDA0002264412780000114

近似滑翔距离dg按下式计算:

Figure BDA0002264412780000115

其中hg(=8m)为滑翔后高度损失。计算dg所需的所有参数值,包括CL和CD,都是从实际数据中考虑的。因此,松鼠可以根据着陆位置简单地改变升阻比来改变滑翔路径长度或dg。模拟过程中加入了CL在0.675≤CL≤1.5范围内的随机变化,认为CD固定在0.60。

松鼠通常一次滑翔的水平滑翔距离为5~25m。模型滑行距离为9~20m,dg值较大时,可能会在产生新位置时引入较大的扰动,导致算法性能不理想。将dg的值按比例缩小,以达到算法可接受的性能。dg除以一个合适的非零值,称为尺度因子(sf),它是通过对基准函数的严格实验得到的。在目前的工作中,sf=18提供了足够的dg扰动范围,有助于在探索和开发阶段之间实现所需的平衡。

阶段5:季节性监测条件

季节变化显著影响松鼠的觅食活动。它们在低温下会遭受大量的热量损失,因为它们的体温很高,体型较小,这使得觅食成本很高,而且由于有活跃的捕食者存在,风险也很大。与秋季相比,气候条件迫使它们在冬季较不活跃。因此,松鼠的运动受到天气变化的影响,包含这种行为可能为优化提供一种更现实的方法。因此,在算法中引入了季节监测条件,避免了算法陷入局部最优解。建模行为涉及以下步骤:

(i)首先计算季节常数Sc

Figure BDA0002264412780000121

其中t=1,2,3。

(ii)检查季节监测情况,即

Figure BDA0002264412780000122

其中Smin为季节常数的最小值,计算公式为:

Figure BDA0002264412780000131

其中t和tm分别为当前迭代值和最大迭代值。Smin影响了该方法的勘探和开发能力。Smin越大,算法的勘探能力越高;Smin越小,算法的开发能力越强。对于任何有效的元启发式,这两个阶段之间必须有一个适当的平衡。虽然通过滑动常数Gc来保持这种平衡,但是在迭代过程中通过自适应地改变Smin的值可以得到改善。

(iii)如果季节监测条件为真,则将无法在森林中寻找最佳冬季食物来源的松鼠随机重新安置。

阶段6:冬季末随机搬迁

如前所述,由于觅食成本较低,冬季的结束使松鼠变得活跃。冬季不能在森林中寻找最佳食物来源而存活下来的松鼠可能会向新的方向觅食。将这一行为纳入模型中,可以提高的算法的勘探能力。据推测,只有那些无法寻找山核桃食物来源而幸存下来的松鼠才会向不同的方向移动,以寻找更好的食物来源。这种松鼠的迁移是通过下面的方程来说明:

Figure BDA0002264412780000132

Lévy分布鼓励更好和更有效的搜索空间探索。Lévy飞行模式是研究人员用来提高各种元启发式算法的全局搜索能力的一个强大的数学工具。Lévy飞行模式有助于寻找新的候选解决方案,远离目前的最佳解决方案。它是一种随机漫步,其中步长是由Lévy分布得出的。这分布表达的往往是一个幂律公式L(s)~|s|-1-β,其中0<β<2是一个指标。Lévy分布的数学方法如下:

其中μ,γ>0.γ是尺度参数,μ是转移参数。Lévy飞行模式由下式计算:

Lévy(x)=0.01×ra×σ/|rb|1/β (16)

其中ra和rb为[0,1]中的两个正态分布随机数,在本工作中考虑β常数为1.5,σ计算为:

Figure BDA0002264412780000142

其中,Γ(x)=(x-1)!。

阶段7:停止准则

函数容差是一种常用的收敛准则,在此准则中,在最后两个连续结果之间定义一个允许的小阈值。有时也使用最大执行时间作为停止条件。在本研究中,最大迭代次数被认为是停止准则。

由于松鼠搜索算法属于一种群体智能算法,它可以用于求解非线性问题,电阻率法探测溶洞问题便是典型的非线性问题。在结合松鼠搜索算法时,我们先根据探测区域建立电阻率法识别溶洞的有限元模型,以单元的视电阻率标定对应溶洞位置,设置的输入和输出电流(电极方案),根据正问题的公式求解出探测区域的电势分布,在实际工程中,我们只能得到电势分布的情况,而要由电势分布来求视电阻率分布是非线性问题,因此我们结合松鼠搜索算法来求解探测区域的视电阻率分布情况,从而得知溶洞的位置(由正问题得到的电势分布情况建立目标函数,松鼠的某个***置即为一种视电阻率分布情况,设置松鼠初始位置和个体数量等参数,然后通过算法的不断迭代,满足停止准则后,最终得到的最佳松鼠位置便是识别出的视电阻率分布情况)。

实施例1:单个溶洞模型位置识别

如图4所示建立单个溶洞有限元模型,将矩形探测区域划分为64个单元,采用64个单元的地下溶洞模型进行检测。矩形探测区域的长宽均为4m*4m,每边均匀划分为8个单元;并采用电阻抗成像法探测地下溶洞。假设28号单元视电阻率等效为3,算法中的参数设置:迭代最大次数Itermax、种群大小数Np、决策变量数n分别为200,250和64。其噪声水平分别为0%和0.1%。

从图6~9所示可以看出,松鼠搜索算法可以检测到溶洞的位置,而粒子群算法给出了很多错误的识别。溶洞位置可由松鼠搜索算法准确识别,实际数据与识别数据的相对误差极小。即使在人工噪声的影响下,相对误差也在1.3%以内,由图10算法的收敛曲线可看出,松鼠搜索算法的收敛速度要明显快于粒子群算法,而且最终收敛的值也要小很多,结果表明,该方法对溶洞位置检测有效、准确,对噪声不敏感。

实施例2:多个溶洞模型位置识别

如图5所示,本实施例对多单元溶洞探测,采用电阻抗成像法探测地下溶洞。假定28、36和37号单元在视电阻率等效为3,算法中的参数设置:迭代最大次数Itermax、种群大小数Np、决策变量数n分别为200,250和64。其噪声水平分别为0%和0.1%。

由图11~14可知,无噪声下,松鼠搜索算法能够准确识别溶洞位置。相反,粒子群算法不能有效地进行检测。由图15算法的收敛曲线可看出,松鼠搜索算法的收敛速度要明显快于粒子群算法,而且最终收敛的值也要小很多,虽然识别单元的数量更多,但松鼠搜索算法在溶洞检测方面仍然是可行的、准确的,对噪声不敏感。

显然,本发明上述实施例只是为了清楚说明本发明所作的举例,对于所属领域的技术人员来说,可在上述说明的基础上不同的形式的变动,如扩大探测范围、改变溶洞位置等,这里不予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种触碰检测方法、设备、装置和计算机可读存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!