技术新讯 > 控制调节装置的制造及其应用技术 > 基于运动轨迹划分的水下航行器动态仿真方法  >  正文

基于运动轨迹划分的水下航行器动态仿真方法

  • 国知局
  • 2024-08-05 12:18:27

本技术涉及仿真,特别是涉及一种基于运动轨迹划分的水下航行器动态仿真方法。

背景技术:

1、越来越多的研究者们开始注重水下航行器(underwater vehicle,简称uv)的研究。uv可以在能见度极差、水下压力极大、暗流涌动的深海完成普通机械臂和人类无法完成的数据探测、物品打捞等工作。当前,uv在外形设计、机动性能等方面还存在着巨大的技术挑战,而通过物理实验的误差校对与设计已无法满足产品对快速迭代与技术更新的要求。随着高性能计算的快速发展,基于高性能计算系统的数值模拟成为了更高效的选择。但受限于计算资源与算法性能,目前绝大多数的uv模拟以静态仿真为主,这种方式虽然可以等效获得一定条件下的计算结果,但无法适应更多复杂的运动场景。水下航行器的动态仿真是一种典型的运动边界问题,即在流场模拟过程中,物理边界会随着时间步的推进动态发生变化。边界的运动可以分为刚体运动和柔性变形,而uv的航行过程可以看作是一种刚体运动,即将物理边界看作一个整体,在不论运动的具体过程下,都可以将最终的运动结果拆解为以速度进行位移或以角速度进行旋转(或位移旋转相组合)的运动方式,且边界内部没有相对运动。

2、目前的uv动态仿真处理边界运动最常用的方法是动网格方法和边界浸入法。动网格方法可以实现贴体的边界层网格,通过将网格运动通量添加到动量方程中而实现流场计算的守恒,计算精度较高。当边界发生运动后,通过偏微分方程或者插值算法计算内部网格的位移,从而实现网格的运动。虽然动网格方法能够实现一定范围的边界运动,但边界运动过大时网格容易发生畸变,不支持uv水下航行这种大范围运动。边界浸入法支持任意程度的位移和旋转,但该方法由于没有贴体网格,不支持复杂几何模型,且在边界处的计算精度太低。虽然通过自适应网格增加网格密度可以提高精度,但又会大幅增加计算量,影响计算效率。重叠网格方法结合了以上两种方法的优势,该方法将计算域划分为多个相对简单的子网格,各子网格独立求解,子网格之间的重叠区域通过插值进行耦合计算。在重叠网格中,因为通过插值计算可以维持各子域之间的流场关系,所以各子网格之间可以发生任意相对运动。因此,将运动边界独立生成子网格后,边界即可跟随子网格进行任意程度的位移与旋转。如图2所示为水下航行器重叠网格示意,该案例包含两套网格相互重叠,分别是包含航行器的运动子网格和正交状的背景子网格,航行器边界可进行任意运动,不影响网格的拓扑结构。在利用重叠网格方法进行水下航行器仿真过程中,子网格之间的流场数据需要通过插值计算相耦合,将参与插值计算的网格单元称为贡献单元。如何快速确定每个网格对应的贡献单元是重叠网格方法需要重点解决的问题。在重叠网格装配过程中,通信需求来自于两个过程:一是挖洞过程,二是贡献单元搜索过程。挖洞过程的通信内容,主要是由挖洞方法本身决定,一般为子网格的边界位置信息等。以辅助网格挖洞算法为例,在本地处理器上完成辅助网格挖洞工作后,本地处理器会将辅助网格的子块类型打包为一个列表,然后通过处理器间通信,将此列表发送到其他所有的处理器上,以供其他处理器上的其他子网格针对当前本地处理器上的子网格边界信息进行相应挖洞操作。通常情况下,由于边界信息的数据量,也就是上述传送列表的存储占比较小,所以挖洞过程中的通信占比也相对较小,在许多案例条件下的占比不足3%,甚至可以忽略。因此,相比之下,贡献单元搜索中的通信需求,则能够占到总装配时间30%以上[80,94];并且,随着网格规模的提升以及并行度增加,这个占比可以达到50%以上。

3、然后利用重叠网格方法在配置和划分子网格域时通常采用先合并子网格再进行并行划分的策略。也就是说,在这种方案下,子网格首先被合并成一个整体网格,然后再使用相关的并行划分工具对整体网格进行划分。尽管这种策略一直被广泛采用,但在处理运动边界问题时,重叠网格装配中的大量通信开销一直在影响着贡献单元搜索的计算效率,即水下航行器的阻力系数和升力系数的计算效率,进而影响水下航行器的仿真效率。

技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够提高水下航行器的仿真效率的基于运动轨迹划分的水下航行器动态仿真方法。

2、一种基于运动轨迹划分的水下航行器动态仿真方法,所述方法包括:

3、获取水下航行器的运动轨迹和水下航行器运动边界;对水下航行器进行建模,得到背景网格和包含水下航行器边界的航行器网格;

4、利用网格划分工具对航行器网格和背景网格进行划分,得到多个子网格;根据子网格单元数和所需处理器数确定每个方向上的分区数再对子网格进行层次分区,得到多个分区和子网格单元格与分区之间的对应关系列表;

5、建立运动轨迹的运动轨迹函数,基于运动轨迹函数和位移标记法或旋转标记法对分区进行标记,将不同子网格中拥有相同标记的分区进行合并,再将合并后的整体分配到相对应的处理器中,得到分区与处理器之间的对应关系列表;将子网格单元格与分区之间的对应关系列表以及分区与处理器之间的对应关系列表进行合并对应,得到网格单元与处理器之间的对应关系列表;

6、根据网格单元与处理器之间的对应关系列表对水下航行器的初始边界状态进行配置。

7、在其中一个实施例中,若运动轨迹为直线运动时,基于运动轨迹函数和位移标记法对分区进行标记,包括:

8、步骤1:根据运动轨迹函数获取子网格内任意定点的位置信息(x0(t0),y0(t0)),在子网格的定点中任意选择一个定点作为标记点,从标记点的位置开始标记为m,表示将分区分配给处理器m;

9、步骤2:将标记点所处的分区按照预先设置的时间增量δt,以获得新的标记点位置,记为(x0(t+δt),y0(t+δt));如果t+δt不小于结束时间,则终止标记步骤;否则,跳转到步骤3;

10、步骤3:检查新的标记点位置是否落在上一时刻标记分区的相邻分区内,如果是,则进入步骤4,如果不是,则相应地调整时间增量δt并返回到步骤2;

11、步骤4:标记新标记点所在的分区为n,并返回到步骤2。

12、在其中一个实施例中,处理器上的记录网格单元数量的变量的更新方式为其中,表示处理器m上的网格单元数,表示背景子网格分区11中的网格单元数。

13、在其中一个实施例中,处理器m上的网格单元数近似相等于ncell/np,其中,ncell表示合并后的总网格单元数量,np表示处理器数量。

14、在其中一个实施例中,若运动轨迹为旋转运动时,基于运动轨迹函数和旋转标记法对分区进行标记,包括:

15、获取旋转中心;根据运动轨迹函数获取子网格内任意定点的位置信息(x0(t0),y0(t0)),在子网格的定点中任意选择一个定点作为标记点,从标记点的位置开始依次计算出每个分区中心与旋转中心的轴心距,根据轴心距对分区进行标记,将相同轴心距的网格单元设置为同一标记。

16、上述基于运动轨迹划分的水下航行器动态仿真方法,首先根据子网格单元数和所需处理器数确定每个方向上的分区数再对子网格进行层次分区,得到多个分区和子网格单元格与分区之间的对应关系列表,建立运动轨迹的运动轨迹函数,基于运动轨迹函数和位移标记法或旋转标记法对分区进行标记,将不同子网格中拥有相同标记的分区进行合并,再将合并后的整体分配到相对应的处理器中,得到分区与处理器之间的对应关系列表;将子网格单元格与分区之间的对应关系列表以及分区与处理器之间的对应关系列表进行合并对应,得到网格单元与处理器之间的对应关系列表,根据网格单元与处理器之间的对应关系列表对水下航行器的初始边界状态进行配置,本技术通过分区标记使得处理器的计算域与水下航行器运动轨迹是贴合的,子网格的重叠区域始终位于处理器中,处理器之间不需要进行任何交互,没有通信需求,处理器之间不需要进行任何交互,极大降低了通信成本,进而提高了重叠网格装配中贡献单元搜索的计算效率,即水下航行器的阻力系数和升力系数的计算效率,进而提高了水下航行器的仿真效率。

本文地址:https://www.jishuxx.com/zhuanli/20240802/262069.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。