当前位置:首页 » 操作系统 » 滑动模拟算法

滑动模拟算法

发布时间: 2022-11-15 12:16:11

1. abaqus中怎么模拟支座单项滑动比如我只想让某个物体沿着一个方向滑动,另一个方向位移被限制

一个正方体物体沿斜坡向下滑动,其截面如图正方形defh的边i,长为2米,坡dc^2=ce^2+de^2 又有要使dc^2=ae^2+bc^2 所以ce^2+de^2 =ae^,

2. 物理学的 H5 应用:模拟惯性滑动

在移动端 H5 中,时间选择器( date-picker )、省市区选择器( area-picker )等组件经常会使用这样的交互效果:

这个 gif 是在【微信钱包 - 账单】中录制的 ios 原生时间选择器。可见, 当用户手指在选择器上先是滑动再从屏幕上移开,内容会继续保持一段时间的滚动效果,并且滚动的速度和持续的时间是与滑动手势的强烈程度成正比。 这种交互思路源于 ios 系统原生元素的滚动回弹( momentum-based scrolling ),来看 H5 的一个普通列表在 ios 上的滚动表现:

社区上大部分的移动端组件库的选择器组件都采取了这种交互方式,看看效果:

weui 的选择器实现了惯性滑动,但滑动动画结束得有点突兀,效果一般。

vant 的选择器压根没有做惯性滑动,当手指从屏幕上移开后,选择器的滑动会立刻停止。可见这样的交互体验是比较差的。

接下来我会从设计层面剖析和模拟惯性滑动的交互效果。

不难想象,惯性滑动非常贴合现实生活中的一些场景,如汽车刹车等。除此之外,与物理力学中的滑块模型也十分相似,由此我会参考滑块模型来剖析惯性滑动的全过程。

惯性 来源于物理学中的惯性定律(即 牛顿第一定律 ):一切物体在没有受到力的作用的时候,运动状态不会发生改变,物体所拥有的这种性质就被称为惯性。我们不妨把惯性滑动模拟成滑动滑块然后释放的过程(以下讨论中用户滑动的目标皆模拟成 滑块 ),主要划分为两个阶段:

描述滑块的惯性滑动,首先需要求出滑动的距离。在上述二阶段中,滑块受摩擦力 作 匀减速直线运动 。假设滑动距离为 ,初速度为 ,末速度为 。根据位移公式

加速度公式

可以算出惯性滑动距离

由于匀减速运动的加速度为负,不妨设一个加速度常量 ,使其满足 ,那么

这里 为正数。也就是说,我们只需要求出初始速度即可。

关注第一个阶段,假设用户滑动滑块的距离为 ,滑动的持续时间是 ,那么二阶段的初速度 可以根据位移公式求得

综上,求惯性滑动的距离我们需要记录用户滑动滑块的 距离 持续时间 ,并设置一个合理的 加速度常量

注意,这里的距离和持续时间并不是用户滑动滑块的总距离和时长,而是触发惯性滑动范围内的距离和时长,详见【惯性滑动的启动条件】。

针对二阶段的匀减速直线运动,时间段 产生的位移差 ,其中 。也就是说时间越往后,同等时间间距下通过的位移越来越小,也就是动画的推进速度越来越慢。

这与 CSS3 transition-timing-function 中的 ease-out 速度曲线相吻合, ease-out (即 cubic-bezier(0, 0, .58, 1) )的贝塞尔曲线为

上图来自 在线绘制贝塞尔曲线网站 。图表中的纵坐标是指 动画推进的进程 ;横坐标是指 时间 ;原点坐标为 (0, 0) ,终点坐标为 (1, 1) ,假设动画持续时间为2秒, (1, 1) 坐标点则代表离动画开始2秒时动画执行完毕(100%)。根据图表可以得出,时间越往后动画进程的推进速度越慢,符合匀减速直线运动的特性。

然而这样的速度曲线过于线性平滑,减速效果不明显。我们基于 ios 滚动回弹的效果,调整贝塞尔曲线的参数为 cubic-bezier(.17, .89, .45, 1) 。

滑块滑动不是无边界的,我们来考虑这样的场景:当滑块向下滑动,其顶部正要接触容器上边界时速度还没有降到 ,此时如果让滑块瞬间停止运动,这样的交互效果是不理想的。

我们可以把上边界想象成一条与滑块紧密贴合的固定弹簧, 当滑块到达临界点而速度还没有降到 时,滑块会继续滑动并拉动弹簧使其往下形变,同时会受到弹簧的反拉力作减速运动(动能转化为内能);当滑块速度降为 ,此时弹簧的形变量最大,由于弹性特质弹簧会恢复原状(内能转化成动能),从而拉动滑块反向运动

回弹过程也可以分为两个阶段:

根据上述分析,回弹的第一阶段作加速度越来越大的变减速直线运动,设此阶段的初速度为 ,可以与 建立以下关系

那么回弹距离为

微积分都来了,简直没法算好吧…

我们可以根据运动模型来简化 的计算,由于该阶段的加速度大于 非回弹惯性滑动 的加速度,设 非回弹惯性滑动 的总距离为 ,那么

所以可以设置一个合理的常量 ,使其满足

整个触发回弹的惯性滑动模型包括三个运动阶段:

然而把 阶段a 和 阶段b 描绘成 CSS 动画是有一定复杂度和风险的:

出于简化的考虑,可以将 阶段a、b 合并为一个运动阶段:

对于合并后的 阶段a 末段,由于反向加速度越来越大,因此滑块减速的效率会比 非回弹惯性滑动 同期更大,对应的贝塞尔曲线末段也会更陡,参数调整为 cubic-bezier(.25, .46, .45, .94) 。

在 阶段b 中,滑块先变加速后变减速,尝试 ease-in-out 的动画曲线:

可以看出,由于 阶段b 初始的 ease-in 曲线使 阶段a、b 的衔接段稍有停留,效果体验一般。所以我们选择只描绘变减速运动这一段,调整贝塞尔曲线为 cubic-bezier(.165, .84, .44, 1) 。

一次惯性滑动可能会出现两种情况:

惯性滑动的启动需要有足够的动量。我们可以简单地认为,当用户滑动的距离足够大(大于 15px )和持续时间足够短(小于 300ms )时,即可产生惯性滑动。也就是说,最后一次 touchmove 事件触发的时间和 touchend 事件触发的时间间隔小于 300ms ,且两者产生的距离差大于 15px 时认为启动惯性滑动。

当惯性滑动未结束(包括处于回弹过程),用户再次触碰滑块时会暂停滑块的运动。原理上是通过 getComputedStyle 和 getPropertyValue 方法获取当前的 transform: matrix() 矩阵值,抽离出水平 y 轴偏移量后重新调整 translate 的位置。

demo 基于 vuejs 实现,预览地址: https://codepen.io/JunreyCen/pen/arRYem

3. 运用地理信息系统新技术进行滑坡稳定性三维评价和滑动过程模拟研究

译自 Environment Geo1ogy,2003(43):503~512。

Mowen Xie1Tetsuro Esaki1Guoyun Zhou1Yasuhiro Mitani1

张晓娟2译 罗靖筠2校 朱汝烈2复校

1Environmental System Institute,Kyushu University,Hakozaki 6-10-1,Higashi Ku,Fukuoka,Japan;2中国地质调查局水文地质工程地质技术方法研究所,河北保定,071051)

【摘要】本文在传统的边坡稳定性三维分析模型的基础上,提出了一个全新的基于GIS的边坡稳定性三维栅格分析模型。在这个模型中,假定初始滑动面就是椭球底面,采用蒙特卡洛(Monte-Carlo)随机模拟方法,在求取最小安全系数法的同时,确定出最危险滑动面。运用GIS栅格模型和GIS数据模拟滑坡滑动过程时,滑坡体将沿主滑方向滑动,直到其安全系数上升到1为止。所有的计算均可通过一个称为三维边坡地理信息系统(3DSLOPGIS)的计算程序来完成,该程序主要利用GIS的空间数据处理分析功能。

【关键词】确定性模型地理信息系统(GIS)蒙特卡洛(Monte-Carlo)模拟滑动模拟三维边坡稳定性

1引言

滑坡不稳定性和风险评价不但已成为地学家和工程专家们感兴趣的主要课题,同时也成了世界各地政府部门和管理者关注的焦点。据统计世界上每年约有600人葬身于滑坡灾害中。在许多发展中国家,自然灾害所带来的经济损失,占总国民生产总值的1%~2%。

近年来,由于地理信息系统具有强大的空间数据处理功能,被广泛运用于自然灾害评价领域。GIS是由硬件和软件组成的系统,它可以实现数据采集、输入、操作、转换、可视化、组合、质疑、分析、建模和输出等过程。GIS对空间数据具有强大的分析和处理功能。同时,基于GIS的地质技术分析模型,可以简便而有效地分析滑坡稳定性。目前它已经被广泛地用于土木工程和地质工程中,进行边坡稳定性的分析。

我们通常认为一个传统的模型无论是对均质滑坡还是非均质滑动都是适用的。稳定性指数是被广泛应用的、基于岩土工程模型和物理力学参数的安全系数。安全系数的计算需要几何数据、剪切强度数据及孔隙水压力数据,正确的结果取决于可靠的数据和恰当的模型。尽管输入的数据会较大程度地影响安全系数,但一个可靠的确定性模型对于取得可靠结果则更为重要。确定性计算可在GIS系统内执行,也可利用其他程序完成。若使用其他程序计算,则GIS只作为一个空间数据库用来存储、显示、更新输入数据。此方法主要优点是利用外部模型计算可以节约时间;而其缺陷是对从外部模型获得的数据进行转化时较为复杂。因为每一个程序都有其自己的数据格式和数据结构,数据转换成为一个主要的问题。有些程序的输入模块只允许人工输入数据。只有当这些程序所默认的数据格式都是 ASCII码时,数据转换才可直接进行。运用外部模型的另一个缺点是计算结果通常不是按GIS的空间分布模式来表达,而是以点或线的形式表述的。因此,改变这种计算结果的表达形式也是个主要的问题。

用来计算安全系数稳定性模型的边坡是二维或三维的。因为一个地区包括很多边坡,而且必须分别对每个边坡做分析,所以利用这些模型计算安全系数的空间分布非常花费时间。要克服数据转换的困难,可以利用GIS内部确定性计算模型来实现。然而这一方法也有缺点,那就是由于应用复杂算法、迭代过程及在常规二维 GIS中的三维体积等复杂局限性,使得只有简单的模型能较容易实现。当前,只有基于GIS的无限边坡模型能分别计算出每个像元的安全系数。研究表明,只有当越来越多的成熟的三维模型和GIS系统得到使用后,才能彻底解决这类问题。

从近来对 GIS用于边坡稳定性分析的调查中发现,大部分研究者潜心于运用统计学方法来确定边坡破坏与影响因素之间的关系。尽管GIS能对区域数据进行了准备和处理,但是只有极少量的研究者运用了GIS的集成功能和边坡稳定性的确定性模型。

即使在很短的距离范围内,边坡破坏在空间上都有其不同的几何结构。因而,运用三维模型分析边坡稳定性是合理的。从20世纪70年代中期以来,三维稳定性模型的发展和运用日益受到关注。在地质力学的着作中提到了几个三维分析方法。

上面提到的大部分方法都用到了柱状图法。这些方法将柱体之间的作用力,或者说作为三维安全系数计算的假定前提,都忽略不计。因为所有与斜坡相关的GIS数据都可转成栅格数据,所以这些基于三维模型的柱体,就可能借助于使用GIS栅格数据用来进行三维稳定性的计算。然而,长期以来大家习惯采用人尽皆知的“一维模型”——“无限斜坡”模型,来描述滑动面与地面平行的长期天然边坡的潜在危险性。这样的模型仅仅可以用于浅层斜坡失稳分析和一些存在深层滑坡的区域性研究。

由于算法复杂、步骤重复和三维数据在二维GIS中难于表达,早期的文献中并没有提及三维确定模型的应用。为了克服 GIS数据的外部转换和GIS内部算法复杂等困难,此次研究中,在GIS软件组件(a GIS component)中使用了Visual Basic程序。三维因子的计算和滑动过程的模拟由计算机内的三维边坡地理信息系统(3-DSLOPGIS)的计算程序完成。在这个系统中,GIS组件(ESRI公司生产的MapObjects2.1)可以完成所需的GIS功能,就像普通的GIS软件一样,它可以有效的管理和分析所有与滑动相关的数据。所有用来计算三维斜坡安全系数的数据都采用GIS的数据格式(例如矢量和栅格数据层),因此,没必要在GIS数据格式和其他程序的数据格式之间进行数据转换;同时,复杂算法和三维问题的交互程序也可以理想的实现。

在此次研究中,将基于GIS栅格数据和基于柱状图的三维边坡稳定性分析模型相结合(Hovland,1977),演绎了一个新的基于GIS栅格的三维确定性分析模型。

运用蒙特卡洛随机模拟方法求最小安全系数值,从而确定临界滑动条件。假定基本滑动面是一椭球体的较低部分,临界滑动则受不同地层受力情况和不连续界面状况的影响而变化。客观事物的这种变化引出最小三维安全系数。

如果滑坡的三维安全系数小于1,滑坡就有滑动的危险,那么评估滑坡灾害的规模和影响范围是非常重要的。因此,在此研究中,采用基于GIS三维栅格数据模型和GIS栅格数据来模拟滑坡滑动过程的目的,就是评估滑坡危险性和预测其影响范围。

2基于GIS的三维模型

利用GIS的空间分析功能,所有与三维安全系数计算有关的输入数据(如高程、倾向、坡度、地下水、地层、滑动面和力学参数等)都有其对应的栅格元,而所有与斜坡相关的数据都是栅格化的。当这些数据输入到确定的边坡稳定性模型中时,就可计算出一个安全系数值。下面在Hovland模型的基础上,详细介绍基于GIS的三维模型。在这个模型中,考虑了孔隙地下水压力,所有输入数据都能简单地转换成栅格数据。

图1是具有潜在滑动面的滑体的三维几何示意图。滑坡的稳定性与地质岩层、地貌、地质力学参数和水动力条件有关。

图1边坡坍塌三维景观

图2所示是土壤(或岩石)小柱状研究体物质的离散性。所有与滑坡相关的数据都可用如图2所示的柱状三维可视图来表示。假定每一个柱体单元的垂面均为无摩擦面(柱体单元的垂面不受其他边界影响,或其影响可忽略不计),三维安全系数可用公式(1)表示:

地质灾害调查与监测技术方法论文集

式中:F3-D为三维斜坡安全系数,W为一个柱体的重量,A为滑动面面积,c为内聚力,φ为内摩擦角,θ为滑动面的角度,而J、I为在斜坡破坏范围栅格内的行列数和柱体数。如果没有GIS,则基于柱体模型的三维安全系数的计算将是冗长且耗时的工作,数据的更新和增加也极其不便。然而,在GIS中,通过运用GIS空间数据处理与分析功能,整个研究区的边坡稳定性相关数据可用如图3所示的矢量图层来描述;而对于每一层,则可通过GIS空间数据处理与分析功能得到栅格数据,其像元大小可根据精度需要而定。

图2滑动面和三维棚格柱状图

现在,将斜坡破坏划分为基于栅格数据的柱体。参考图2,诸如地表、地层、地下水、裂缝和滑动面之类的空间数据均可从栅格数据层中得到。因为与斜坡相关的数据量非常大,所以不能高效的管理所有的栅格数据集。因此,在三维边坡地理信息系统中,有一个专门储存这些栅格数据的点数据库,其中,有一个属性表用来链接所有与滑动相关的数据。每个栅格柱状图的中心点设置点类型,其他区域则设置与滑坡相关的一些数据(例如地面高程、地层和裂缝的高程、地下水、滑动面的深度等等)。表1所示即是属性表的一个实例。

图3边坡稳定性分析GIS图层

表1点数据库的实例描述

另一方面,为了控制滑坡边界和有效管理空间数据并进行分析,滑坡的边界线被定义为多边形类型文件。

基于这种点数据库,公式1可以改成基于GIS的方程。这里所有的阻力和滑力都是沿着滑动方向的,而不必如 Hovland的模型所用的Y轴方向。在本研究中,假定斜坡区域的主要倾斜方向为可能滑动方向。根据图4,滑动表面面积可由公式(2)得到。

地质灾害调查与监测技术方法论文集

从图4推导出如下公式:

地质灾害调查与监测技术方法论文集

地质灾害调查与监测技术方法论文集

接着,x和y轴的倾角推导如下:

地质灾害调查与监测技术方法论文集

记α=cellsize/cosθxz和b=cellsize/cosθyz,则一个栅格柱状图的滑动面面积为:

地质灾害调查与监测技术方法论文集

滑坡范围主滑动方向的倾角计算公式如下:

地质灾害调查与监测技术方法论文集

至此,三维边坡水平滑动方向安全系数可以用下面的公式计算:

地质灾害调查与监测技术方法论文集

图4三维安全因子推导公式的一个栅格柱状图

这里,对于每个栅格,Zji,zji分别为地表高程和滑动面高程,uji为在滑动面上的孔隙水压力,而 γ′为单位重量。

为了检验基于栅格的GIS三维稳定分析模型,我们运用这个模型做了一个实例计算。实例问题为一个均质的粘土滑坡,具有球形滑动面,其他各种参数如图5所示。在图5中,c为内聚力,φ为摩擦角,R为瞬时摩擦力,γ为土的单位重量。运用封闭式(closed-form)算法得出三维安全系数为1.402。运用CLARA模型算得安全系数为1.422。同样的问题运用三维边坡模型算得三维安全系数范围为1.386到1.472,它取决于用于被分离的边坡柱体的数量。

图5实例问题验证

运用基于GIS栅格的三维稳定分析模型(图5),并将格网尺寸定为0.5m时,算得三维安全系数为1.386;而当格网尺寸为0.6m时,算得安全系数为1.388。很明显,与封闭式算法相比,基于栅格模型的GIS可有效的用于三维边坡稳定性评估。

3确定临界滑动表面和蒙特卡洛模拟

滑动面只能通过岩土工程调查来确定,由于地质调查的费用比较昂贵,因此滑动面通常是很难确定的。因此,边坡稳定性评价对临界滑动面的确定是非常重要的。

为了判定三维临界滑动情况,利用蒙特卡洛随机模拟方法来计算三维安全系数最小值。假定最初的滑动面是一个椭球体的较低部分,边坡表面则根据不同地层受力情况和不连续界面条件而改变。最终得到危险滑动面,同时可得到相关三维安全系数的最小值。

4椭圆坐标转换

假定最初的滑动面是一椭球体的较低部分,椭球体的倾斜方向设置为与研究区主要的倾斜方向一致;将椭圆的倾角基本上设定得与研究区起伏变化的倾角接近。其主倾向为α,主倾角为β,它们是由边坡破坏区域主要栅格像元的值确定的。假定倾向和倾角属正常分布,则将主倾向α和倾角β代入分布模型中:

地质灾害调查与监测技术方法论文集

运用公式(10)和(11)完成坐标转换。图6显示了坐标转换过程。

图6坐标转换过程

地质灾害调查与监测技术方法论文集

地质灾害调查与监测技术方法论文集

式中:x、y、z为全球大地坐标,

为当地坐标,x0、y0、z0为椭球体中心点坐标。

5 Z值的确定和滑动面的倾斜度

滑动面上“B”点的Z值是根据直线 AB和椭圆,由公式(12)计算的结果确定的(见图7)。

地质灾害调查与监测技术方法论文集

对于每个栅格像元,滑动面的倾向和倾角可通过下面的公式计算得出,像元(j,i)的倾角可以通过图8中点1~4的Z值来确定。点1~4的值由公式(13)(14)(15)算出,滑动面的倾向和倾角由公式(16)算出。

图7确定滑动面上的Z值

图8滑动倾角的计算

地质灾害调查与监测技术方法论文集

地质灾害调查与监测技术方法论文集

地质灾害调查与监测技术方法论文集

地质灾害调查与监测技术方法论文集

这里,Z(j,i)为像元(j,i)的Z值,θ为倾角,β0是相对于X轴的倾向。在GIS中,倾向是与 Y轴之间的夹角。因此,当最高点是点3时,倾向是90-β0;当最高点是点4时,倾向是90+β0;当最高点是点2时,倾向是270-β0;当最高点是点1时,倾向是270+β0。

6随机模拟

为了确定临界滑动面,蒙特卡洛模拟通常用于为三维边坡稳定性分析选择变量。这些变量是椭球体的中心点、几何参数和倾角。椭球体的中心点作为研究区的中心点需要首先确定,然后在一个确定的范围内随机选择。

椭球体的几何参数a、b、c是由用户在一定范围内随机设定的,确定范围如公式(17):

地质灾害调查与监测技术方法论文集

假定a,b,c都均匀分布,则蒙特卡洛模拟的随机变量由公式(18)和(19)来算出。

在[0,1]范围内平均分布的随机变量可通过全等乘积方法得出:

地质灾害调查与监测技术方法论文集

地质灾害调查与监测技术方法论文集

式中:ri为在[0,1]范围内平均分布的随机变量。在[a,b]范围内平均分布的随机变量可由公式(19)计算得出。

地质灾害调查与监测技术方法论文集

式中:xi为在[a,b]范围内平均分布的随机变量。

椭球体的倾角设定为平均分布的一个随机变量。平均分布范围为主倾角及其在一个确定的波动范围之内变化的变量。

7 计算三维安全系数最小值的过程

整个研究区(或边坡破坏范围)可以被均分为若干小矩形栅网,如同基于栅格的GIS一样。关于基于栅格的三维边坡稳定性分析的数值计算,所有的计算过程都可以通过前面提到的Visual Basic(利用GIS组件)来完成。这个软件叫三维边坡地理信息系统,是运用 Visual Basic 6.0和ESRI公司生产的MapObjects 2.1开发的。MapObjects作为GIS的一个组件,用来对GIS数据进行组织和空间分析。计算三维安全系数的过程如图9所示。

图9三维安全因子最小值计算过程

在这个过程中,数据模块的功能用来获得所有与边坡相关的地质、地貌、水动力学数据和地质力学参数;随机变量参数模块用来随机选择蒙特卡洛模拟的实验滑动面;三维边坡稳定性模块可用于计算三维安全系数;而危险滑动面及其安全系数可以通过一些实验计算得出。在图9中可以看到,关于GIS空间分析功能的所有模块可以通过GIS组件来实现。因为一个GIS组件是在三维边坡地理信息系统系统中完成的,所以可以有效地计算三维安全系数;同时利用与边坡相关的GIS数据,所有的相关数据和结果可以在三维边坡地理信息系统系统中实现可视化。

实例剖面如图10所示。在这个实例中考虑的因素有:4个地层、地下水和破坏面;其物理和力学参数如表2所示。

表2研究实例的物理和地质力学参数

图10断层面研究实例

图11计算次数与最小三维安全因子实验

为确定临界滑动面,对蒙特卡洛随机计算次数进行了实验,总共计算次数达到了1000次。每次实验计算的三维安全系数最小值的结果如图11所示。图中明确显示在实验计算了300次后,得到的安全系数最小值。这300次实验的结果见图12,这些计算结果差别不太大,其最小值为1.34,最大值是1.68。这个临界滑动的研究程序是建立在最小安全系数的计算基础之上的。而最小安全系数的计算结果取决于参数的随机选择。有关这一临界滑动实例的三维可视图见图13。通过三维模型与二维模型结果的比较,用Janbu法确定临界滑动面时,使用的是图10所示的二维模型和表2所列的参数,通过这种二维模型计算出的安全系数为1.18,这要比用三维模型计算出结果的极小值(1.346)略小一点。

图12三维安全因子分布曲线

8滑坡滑动过程模拟

基于GIS栅格三维边坡稳定性分析模型和GIS栅格数据,对滑坡滑动过程进行了模拟,直到三维安全系数大于1为止。滑动方向按滑动面的主滑方向确定。图14中展示了由滑动面确定的八个滑动方向。例如,若滑面方向的倾角在22.5°~67.5°之间,则滑坡将要滑动的方向恰在该图的右上方(即“5”方向)。

图13临界滑动面三维展视图

图14滑动面的滑动主倾向

图15滑坡滑动过程模拟流程方框图

滑坡滑动过程的模拟流程见图15。首先,要计算滑坡初始状态时的三维安全系数,以确定其滑动的可能性。若其安全系数小于1,则接着进行下一步滑动过程模拟。先沿着由滑面主倾向确定的滑动方向移动滑坡多边形;接着,在新的滑坡多边形范围内,分步(每一步等于一个栅格大小)计算每一个栅格的DEM和滑动的变化,并再次计算下一步滑动的新滑动方向。并在新的DEM数据和滑动多边形范围的基础上,计算出新的三维安全系数。如果三维安全系数仍然小于1,则进行以下的新滑动步骤模拟。

在这种滑动模拟模型中,假定滑动面内摩擦角不改变,但除了在初始三维边坡安全系数的计算过程之外,假定滑动面没有内聚力(即内聚力为零)。

仍然用同样的实例(如图5所示),用不同的两种动力学参数进行滑坡滑动过程模拟:

情况1:c=4kN/m2,φ=110,y=23kN/m3

情况2∶c=6kN/m2,φ=10.5°,γ=23kN/m3

第一种情况下,初始边坡安全系数为0.82,在进行7步滑动之后,滑坡体开始趋于稳定,其安全系数是1.04。部分滑动步骤剖面及三维视图变化如图16所示。在此图中,DEM的改变及滑坡体移动过程一目了然。运用三维边坡地理信息系统,也可将可视滑动过程表现为GIS地图和剖面图的形式。滑坡体沿水平方向的最终滑动距离为3.0m。

图16不同滑动阶段的地表和剖面三维视图

第二种情况下,滑坡体将一直向下滑动到平坦地区,水平方向滑动距离为14m。滑坡体最后停止滑动位置的三维展视图如图17所示。

图17滑坡体最后停止位置

9讨论和结论

在三维边坡稳定性柱状分析模型的基础上,开发了一个全新的基于GIS栅格的三维确定性模型,并且通过一个问题实例证实了其正确性。在三维边坡稳定性分析模型中,假定其初始滑面为一椭球面;其三维临界滑面,是利用蒙特卡洛随机模拟求取最小三维安全系数而确定的。基于GIS的栅格三维模型,滑坡滑动过程模拟用于判断滑坡灾害和预测滑动距离。已开发了作为计算程序软件的三维边坡地理信息系统,它足以完成一切有关三维边坡问题的计算,其中的GIS组件用于实现GIS的空间分析功能和有效数据的管理。因其具有空间分析、数据管理和与边坡相关的综合数据的GIS可视化等优点,所以三维边坡稳定性问题已经比较易于研究。自打全新的基于GIS栅格三维边坡稳定性分析模型问世,就为惯于使用传统数学方法研究边坡稳定性的工作者拓展了一个新的研究领域和数据库方法。

4. ANSYS如何模拟两节点沿连线方向的滑动

使用NSOL命令,直接输出指定节点的位移即可。
在使用ansys进行分析后,需要批量提取某些节点的位移数据,可以将这些节点写到txt文件中,然后通过编写循环来提取某时间段内的位移数据。当结构上承受一系列载荷作用时,ANSYS提供的惯性释放的功能可计算结构与所承受载荷平衡所需要的加速度,此时结构上的位移约束只能约束刚体运动,且计算的约束点上的反力应为零。因为加速度是根据单元质量矩阵和所施加载荷计算的,包括平移和旋转加速度,所以输入数据中一定要有材料密度。

5. appium滑动操作总结

经常有人说appium的滑动实现是门艺术,实现不好就会出现事与愿违的操作,比如本来想要向上滑动,却出现了下拉的动作,这样使得我们在调试中就要花费大量时间去调试滑动操作。

以下是我在滑动操作中总结的一点经验,希望可以对遇到这方面问题的读者有一点帮助;

总结:

1、滑动时中间要加等待时间,不加等待时间容易出错,而且加等待时间的长短也要掌握好,一般在200-1000毫秒之间应该差不多,自己调试几次感觉一下哪个时间比较稳,每个程序可能会有所差异,还要注意的是ios和Android的等待时间也会有差异,ios等待1000毫秒可能出现长安的效果;

TouchAction tAction = new TouchAction(driver);

 tAction.press(x,y).waitAction(200).moveTo(x,y).release().perform();

2、滑动的坐标点,滑动的坐标点要掌握好,如果坐标点掌握不好也会导致错误出现,比如Android和ios就有很大区别,以下示例分别是ios和Android实现上滑动作;

Android实现上滑:

int width=driver.manage().window().getSize().width;

int height=driver.manage().window().getSize().height;

int y1 = height*3/4; //上滑的开始点,从y1开始也就是屏幕的四分之三处

int y2 = height*1/4; //上滑的结束点,到y2结束也就是屏幕的四分之一处

TouchAction tAction = new TouchAction(driver);

 tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();

ios实现上滑:

 tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2-y1).release().perform();

解释:

比如总高度是1600,那么y1就是1200,y2是400,高度从1200移动到400的位置,这个大家应该都能理解,而ios的结束点的高度坐标是y2-y1,这样得出的是一个负数,这样感觉不太容易理解,这个可能是他们的算法有差异;我理解ios滑动算法是,y2-y1=-800,然后y1是1200,y1移动到y2,就是y1+y2=400,就是说移动到400的位置,这样理解感觉也能说的通,当然只是我自己的理解,如有更好见解欢迎讨论。

6. 滑动窗口技术工作原理

滑动窗口针对图像的算法的一般描述是:在规模为 W×H 的图像中,按一定规律移动 w×h 的窗口(W>>w, H>>h),对窗口内像素点的像素值进行一系列运算,运算结束后窗口向右或向下移动一步,直到完成对整幅图像的处理。

如果问的是滑动窗口协议的话,网络随便搜索下,N多回答。

7. pyppeteer 模拟人工滑动验证(一)

pyppeteer 有提供鼠标滑动的方法,但是单独调用 pyppeteer 滑动方法是无法通过验证的,必须使滑动轨迹更加接近人工的方式才行。

这里我们先了解一下pyppeteer是如何实现滑动的

根据以上的4个方法组合就可以实现滑动。

如果滑块已经页面page中,则直接调用 page.hover(slide_id), 无需这么复杂

1.找出 iframe 的css选择器 :iframe#sufei-dialog-content (你应该根据实际情况填写)

2.在page中找到此 WebElement元素节点: iframe_element = await page.J('iframe#sufei-dialog-content')

此时还 无法在 iframe_element 上调用hover() 函数,因为iframe_element此时是 ElementHandle Class,而我们需要的是Frame Class

3.将ElementHandle Class强转成Frame Class :iframe =await iframe_element.contentFrame()
完整的方法应该是:

其中x,y 是指移动到绝对横向,纵向坐标,options是一个字典,只有一个键steps,用来控制速度。
例如你想要鼠标向右移动500像素,则 x为当前横坐标 + 500,y为当前纵坐标不变。
当前的横坐标、纵坐标获取有些麻烦,网上也有人这样来滑动:
await page.mouse(10000,0) ,这样是指把鼠标横行移动到10000,纵向移动到零,滑动无法纵向移动,所以只能看到横行的移动效果。没有添加第三个参数,则默认一步完成 {'steps':1}
注意:这里的坐标和像素值是一致的,左上角为起点(0,0)
steps 是指分成几步来完成,steps越大,滑动速度越慢。(在源码中,steps是指移动到指定x,y 分段滑动的次数,但是每次启动滑动都会花费一定时间,可以认为steps是滑动的速度)

到现在,我们已经完成了滑动验证的功能,当然它还不够完善,但基本的功能已经齐全了,在下一节,介绍一下控制滑动轨迹,模拟人工滑动。

注意1:这里pyppeteer涉及到 page 与 iframe,peppeteer的功能是以frame为基础单位来实现的,page 的功能 iframe 都有,page 在执行函数时,会先调用 frame = self.mainFrame,然后在frame上执行功能。mainFrame就是最外面的那个Frame

注意2: mouse对象是page/mainFrame对象所独有的,在子frame中,也就是iframe 中不能调用mouse对象。

后续: pyppeteer 模拟人工滑动验证(二)

8. 滑动平均滤波算法

value_buf可以理解为循环队列,里面的数据不断由AD采样值来更新。每读到一个新AD值,value_buf先更新再求平均。程序中有两个小错误,但思想是对的。
if(i==N) i=0;
sum +=value_buf[count];

9. 面试难点!常用算法技巧之“滑动窗口”

滑动窗口,顾名思义,就是有一个大小可变的窗口,左右两端方向一致的向前滑动(右端固定,左端滑动;左端固定,右端滑动)。

可以想象成队列,一端在push元素,另一端在pop元素,如下所示:

假设有数组[a b c d e f g h]
一个大小为3的滑动窗口在其上滑动,则有:

1、单层循环

2、双层循环

模板只是一个解题思路,具体的题目可能需要具体分析,但是大体框架是不变的。
记住: 多刷题,多总结,是王道

1、最长不含重复字符的子字符串

2、绝对差不超过限制的最长连续子数组

3、无重复字符的最长子串

4、替换后的最长重复字符

滑动窗口算法就是用以解决数组/字符串的子元素问题
滑动窗口算法可以将嵌套的for循环问题,转换为单循环问题,降低时间复杂度

生命不止坚毅鱼奋斗,有梦想才是有意义的追求
给大家推荐一个免费的学习交流群:
最后,祝大家早日学有所成,拿到满意offer,快速升职加薪,走上人生巅峰。
Java开发交流君样:756584822

10. 按键精灵的一个模拟人工滑动的代码

按键精灵只要把你操作的步骤录制成功,
然后就可以一直重复使用,
这个看不懂没关系的。

热点内容
电信光纤上传限制 发布:2024-05-18 16:08:05 浏览:909
sql中的limit 发布:2024-05-18 16:05:57 浏览:895
启动ug时服务器无响应是怎么回事 发布:2024-05-18 15:48:24 浏览:372
小数除法的计算法则 发布:2024-05-18 15:36:52 浏览:530
安卓网卡免驱动如何实现 发布:2024-05-18 15:25:15 浏览:860
8加6算法 发布:2024-05-18 15:04:25 浏览:738
名图16款尊享什么配置 发布:2024-05-18 14:55:37 浏览:585
我的世界怎样刷出32k服务器 发布:2024-05-18 14:32:32 浏览:565
c语言程序设计江宝钏 发布:2024-05-18 14:32:22 浏览:780
右击文件夹总是转圈圈 发布:2024-05-18 14:31:10 浏览:696