CN116127611B - 一种水下航行器动态仿真方法 - Google Patents

一种水下航行器动态仿真方法 Download PDF

Info

Publication number
CN116127611B
CN116127611B CN202310393622.4A CN202310393622A CN116127611B CN 116127611 B CN116127611 B CN 116127611B CN 202310393622 A CN202310393622 A CN 202310393622A CN 116127611 B CN116127611 B CN 116127611B
Authority
CN
China
Prior art keywords
grid
points
time step
aircraft
flow field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202310393622.4A
Other languages
English (en)
Other versions
CN116127611A (zh
Inventor
杨灿群
李超
赵然
郭晓威
吴诚堃
番丝江
张森
刘毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202310393622.4A priority Critical patent/CN116127611B/zh
Publication of CN116127611A publication Critical patent/CN116127611A/zh
Application granted granted Critical
Publication of CN116127611B publication Critical patent/CN116127611B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/14Force analysis or force optimisation, e.g. static or dynamic forces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)

Abstract

本申请涉及一种水下航行器动态仿真方法。所述方法包括:建立航行器网格中任意坐标点的航行器运动方程,利用网格划分工具对航行器网格和背景网格进行划分,构建初始八叉树结构,在本地进程对当前时间步进行判断,根据判断结果从计算点中选取多个特征点,将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,对通信网格点和本地网格点进行投射计算,将初始对照点带入初始八叉树中进行搜索,得到贡献单元;获取网格上当前时间步的流场变量;根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行更新后和计算,得到水下航行器的阻力系数和升力系数。采用本方法能够提高水下航行仿真效率。

Description

一种水下航行器动态仿真方法
技术领域
本申请涉及航行器仿真技术领域,特别是涉及一种水下航行器动态仿真方法。
背景技术
为了更好地开发海洋资源、促进我国海洋经济的发展、增强我国的海洋科技创新能力、更好的维护我国的海洋安全和权益,越来越多的研究者们开始注重水下航行器(Underwater Vehicle,简称UV)的研究。UV可以在能见度极差、水下压力极大、暗流涌动的深海完成普通机械臂和人类无法完成的数据探测、物品打捞等工作。当前,UV在外形设计、机动性能等方面还存在着巨大的技术挑战,而通过物理实验的误差校对与设计已无法满足产品对快速迭代与技术更新的要求。随着高性能计算的快速发展,基于高性能计算系统的数值模拟成为了更高效的选择。但受限于计算资源与算法性能,目前绝大多数的UV模拟以静态仿真为主,这种方式虽然可以等效获得一定条件下的计算结果,但无法适应更多复杂的运动场景。水下航行器的动态仿真是一种典型的运动边界问题,即在流场模拟过程中,物理边界会随着时间步的推进动态发生变化。边界的运动可以分为刚体运动和柔性变形,而UV的航行过程可以看作是一种刚体运动,即将物理边界看作一个整体,在不论运动的具体过程下,都可以将最终的运动结果拆解为以速度进行位移或以角速度进行旋转(或位移旋转相组合)的运动方式,且边界内部没有相对运动。
目前的UV动态仿真处理边界运动最常用的方法是动网格方法和边界浸入法。动网格方法可以实现贴体的边界层网格,通过将网格运动通量添加到动量方程中而实现流场计算的守恒,计算精度较高。当边界发生运动后,通过偏微分方程或者插值算法计算内部网格的位移,从而实现网格的运动。虽然动网格方法能够实现一定范围的边界运动,但边界运动过大时网格容易发生畸变,不支持UV水下航行这种大范围运动。边界浸入法支持任意程度的位移和旋转,但该方法由于没有贴体网格,不支持复杂几何模型,且在边界处的计算精度太低。虽然通过自适应网格增加网格密度可以提高精度,但又会大幅增加计算量,影响计算效率。重叠网格方法结合了以上两种方法的优势,该方法将计算域划分为多个相对简单的子网格,各子网格独立求解,子网格之间的重叠区域通过插值进行耦合计算。在重叠网格中,因为通过插值计算可以维持各子域之间的流场关系,所以各子网格之间可以发生任意相对运动。因此,将运动边界独立生成子网格后,边界即可跟随子网格进行任意程度的位移与旋转。如图2所示为水下航行器重叠网格示意,该案例包含两套网格相互重叠,分别是包含航行器的运动子网格和正交状的背景子网格,航行器边界可进行任意运动,不影响网格的拓扑结构。在利用重叠网格方法进行水下航行器仿真过程中,子网格之间的流场数据需要通过插值计算相耦合,将参与插值计算的网格单元称为贡献单元。如何快速确定每个网格对应的贡献单元是重叠网格方法需要重点解决的问题。当前,基于树结构的贡献单元搜索是最常用、最高效的一种算法。该算法通过构建每套网格的坐标树,将网格单元的位置信息存储于二叉树或八叉树结构中,可快速实现不同子网格之间的空间定位,从而确定贡献单元的位置。对于静态的重叠网格案例,由于只需构建一次坐标树,相比于传统的网格遍历方法,基于树结构的方法可大幅提高贡献单元的搜索效率。然而,对于UV水下航行这种非定常问题,当边界发生运动后网格的空间坐标将会更改,如果每个时间步都重新构建树,那依然会产生大量的网格遍历时间。并且,随着子网格规模的增长,重构的耗时也会迅速增长,严重影响整个重叠网格的计算效率,进而影响水下航行器的仿真效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够实现水下航行器大范围运动、提高水下航行动态仿真效率的水下航行器动态仿真方法。
一种水下航行器动态仿真方法,所述方法包括:
获取水下航行器;水下航行器包括航行器运动边界;
对水下航行器进行建模,得到背景网格和包含水下航行器边界的航行器网格;
建立航行器网格中任意坐标点的航行器运动方程,利用网格划分工具对航行器网格和背景网格进行划分,得到多个子网格;
将子网格发放到预先创建的相对应的进程,每个进程都包括一套子网格数据;
定义初始时间步,从初始时间步开始根据航行器运动方程移动包含航行器网格部分的子网格,得到移动后的子网格;在每个进程中根据笛卡尔辅助网格方法对各自的移动后的子网格中背景网格部分进行挖洞,得到计算点;计算点表示参与流场计算的点;
构建初始八叉树结构,在本地进程对当前时间步进行判断,根据判断结果从计算点中选取多个特征点,计算特征点到初始八叉树根节点包围面的距离,得到移动后的根节点包围面的各面表达式;
将移动后根节点包围面的各面表达式发送到其他进程,并接收其他进程的根节点包围面表达式;将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对通信网格点和本地网格点进行投射计算,得到初始对照点;
将初始对照点带入初始八叉树中进行搜索,得到通信网格点和本地网格点的贡献单元;将通信网格点的贡献单元发送给对应进程,并接收其他进程所发来的部分本地网格点贡献单元;
获取网格上的当前时间步的不可压连续性方程和动量方程,对不可压连续性方程和动量方程进行求解,得到网格上当前时间步的流场变量;
根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量;对更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数。
在其中一个实施例中,建立航行器网格中任意坐标点的航行器运动方程,包括:
建立航行器网格和背景网格中任意坐标点的航行器运动方程为
Figure SMS_1
其中,
Figure SMS_2
为当前时间节点的上一时间步网格点的坐标;/>
Figure SMS_3
为旋转矩阵,/>
Figure SMS_4
为当前时间步的速度。
在其中一个实施例中,对当前时间步进行判断,根据判断结果从计算点中选取多个特征点,计算多个特征点到八叉树根节点包围面的距离,得到移动后的根节点包围面的各面表达式,包括:
若当前时间步为初始时间步
Figure SMS_6
,则从计算点中任意选取三点不共线,并且四点不共面的四个点/>
Figure SMS_9
、/>
Figure SMS_12
、/>
Figure SMS_7
和/>
Figure SMS_10
,读取八叉树根节点包围面的坐标极值/>
Figure SMS_13
、/>
Figure SMS_15
Figure SMS_5
、/>
Figure SMS_8
、/>
Figure SMS_11
和/>
Figure SMS_14
计算四个点到八叉树根节点六个包围面的距离为
Figure SMS_16
其中,
Figure SMS_17
在其中一个实施例中,若当前时间步不为初始时间步
Figure SMS_18
,根据航行器运动方程获取当前时间步/>
Figure SMS_19
特征点的位置坐标/>
Figure SMS_20
、/>
Figure SMS_21
、/>
Figure SMS_22
以及/>
Figure SMS_23
构建t时刻的根节点包围面各面表达式为
Figure SMS_24
其中,
Figure SMS_25
、/>
Figure SMS_26
、/>
Figure SMS_27
和/>
Figure SMS_28
均为平面/>
Figure SMS_29
表达式的多项式系数,/>
Figure SMS_30
为各包围面的标号;
建立当前时间步
Figure SMS_31
特征点/>
Figure SMS_32
、/>
Figure SMS_33
、/>
Figure SMS_34
以及/>
Figure SMS_35
到t时刻根节点包围面的距离方程组为
Figure SMS_36
解方程组得到
Figure SMS_37
、/>
Figure SMS_38
、/>
Figure SMS_39
和/>
Figure SMS_40
在其中一个实施例中,将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对通信网格点和本地网格点进行投射计算,得到初始对照点,包括:
本地进程接收到其他进程所发来的通信网格点后,对通信网格点和本地网格点进行投射计算,得到网格点
Figure SMS_41
到t时刻根节点包围面的距离为
Figure SMS_42
计算得到网格点在初始八叉树根节点包围面的对照点为
Figure SMS_43
其中,
Figure SMS_44
、/>
Figure SMS_45
以及/>
Figure SMS_46
为初始八叉树根节点包围面的坐标极小值。
在其中一个实施例中,根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量,包括:
根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量为
Figure SMS_47
其中,
Figure SMS_50
为网格点/>
Figure SMS_53
的更新后的流场变量,/>
Figure SMS_55
为点/>
Figure SMS_49
相对应的贡献单元/>
Figure SMS_52
的流场值,/>
Figure SMS_54
为点/>
Figure SMS_56
相对应的贡献单元数量,/>
Figure SMS_48
为贡献单元中心到点
Figure SMS_51
的距离。
在其中一个实施例中,更新后的流场变量包括压力场和速度场;对更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数,包括:
对压力场进行计算,得到阻力值和升力值;
对阻力值和升力值进行无量纲化,得到水下航行器的阻力系数和升力系数。
在其中一个实施例中,对压力场进行计算,得到阻力值和升力值,包括:
Figure SMS_57
,/>
Figure SMS_58
其中,
Figure SMS_59
为压力场,/>
Figure SMS_60
为航行器边界面积矢量。
在其中一个实施例中,对阻力值和升力值进行无量纲化,得到水下航行器的阻力系数和升力系数,包括:
Figure SMS_61
,/>
Figure SMS_62
其中,
Figure SMS_63
和/>
Figure SMS_64
分别为阻力值和升力值,/>
Figure SMS_65
为航行器垂直于阻力方向的投影面积,/>
Figure SMS_66
为航行器垂直于升力方向的投影面积,/>
Figure SMS_67
是流体密度,/>
Figure SMS_68
为速度值。
上述一种水下航行器动态仿真方法,首先对水下航行器进行建模,得到背景网格和包含水下航行器边界的航行器网格;建立航行器网格中任意坐标点的航行器运动方程,利用网格划分工具对航行器网格和背景网格进行划分,得到多个子网格,将计算域划分为多个相对简单的子网格,各子网格独立求解,子网格之间的重叠区域通过插值计算可以维持各子域之间的流场关系,各子网格之间可以发生任意相对运动,实现动态仿真,同时通过调节航行器运动方程中的运动参数以及流场初始参数,可以生成不同的航行器仿真案例,将子网格发放到预先创建的相对应的进程,每个进程都包括一套子网格数据,定义初始时间步,从初始时间步开始根据航行器运动方程移动包含航行器网格部分的子网格,得到移动后的子网格,在多个进程中对子网格进行并行处理,可以大大提高子网格的处理效率,再根据笛卡尔辅助网格方法对各自的移动后的子网格进行初始挖洞,将能够参与流场计算的点筛选出来,避免了后续进行不必要的点计算,大大提高了后续得到移动后的初始包围面的各面表达式的过程,进而提高了整体水下航行器动态仿真效率,构建初始八叉树结构,在本地进程对当前时间步进行判断,根据判断结果从所述计算点中选取多个特征点,计算特征点到初始八叉树根节点包围面的距离,得到移动后的初始包围面的各面表达式,将所述移动后初始包围面的各面表达式共享到其他进程并将处于包围面内的所有点发送给相对应的进程,将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对通信网格点和本地网格点进行投射计算,得到初始对照点;将初始对照点带入初始八叉树中进行搜索,得到通信网格点和本地网格点的贡献单元;将通信网格点的贡献单元发送给对应进程,并接收其他进程所发来的部分本地网格点贡献单元,获取网格上的当前时间步的不可压连续性方程和动量方程,对不可压连续性方程和动量方程进行求解,得到网格上当前时间步的流场变量;根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量;对更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数,至此,整个仿真过程结束,通过对网格点进行投射计算后将初始对照点代入初始八叉树进行搜索,可以很快的找到在初始八叉树中通信网格点和本地网格点的贡献单元,大大的提高了得到贡献单元的速度,进而提高了后续得到流场变量的效率,从而提高了航行器动态仿真效率。本申请通过对水下航行器的运动过程进行数值离散计算,与传统的固定位置模拟方式相比,大大提高了水下航行器动态仿真效率,同时本方法支持航行器边界的大范围运动。
附图说明
图1为一个实施例中一种水下航行器动态仿真方法的流程示意图;
图2为一个实施例中水下航行器运动边界的示意图;
图3为一个实施例中航行器网格的示意图;
图4为一个实施例中线性点面距离原理示意图;
图5为另一个实施例中点与包围面距离标号示意图;
图6为一个实施例中八叉树构建示意图;
图7为一个实施例中八叉树搜索示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种水下航行器动态仿真方法,包括以下步骤:
步骤102,获取水下航行器;水下航行器包括航行器运动边界;对水下航行器进行建模,得到背景网格和包含水下航行器边界的航行器网格;建立航行器网格中任意坐标点的航行器运动方程,利用网格划分工具对航行器网格和背景网格进行划分,得到多个子网格。
航行器运动边界如图2所示,对水下航行器进行建模,得到水下航行器的航行器网格和背景网格,航行器网格如图3所示,上述过程属于现有技术,在本申请中不做过多的赘述。建立航行器运动方程,对于刚体运动下的航行器,其网格上任意坐标点
Figure SMS_69
满足运动方程:
Figure SMS_70
其中,
Figure SMS_71
为上一时间步网格点的坐标;/>
Figure SMS_72
为旋转矩阵,由当前时刻的旋转轴和角速度/>
Figure SMS_73
决定;/>
Figure SMS_74
为当前时间步的速度。通过调节这些运动参数以及流场初始参数,可以生成不同的航行器仿真案例。
步骤104,将子网格发放到预先创建的相对应的进程,每个进程都包括一套子网格数据;定义初始时间步,从初始时间步开始根据航行器运动方程移动包含航行器网格部分的子网格,得到移动后的子网格;在每个进程中根据笛卡尔辅助网格方法对各自的移动后的子网格中背景网格部分进行挖洞,得到计算点;计算点表示参与流场计算的点。
将子网格发放到预先创建的相对应的进程,每个进程都包括至少一套子网格的一部分,在多个进程中对子网格进行并行处理,可以大大提高子网格的处理效率,再根据笛卡尔辅助网格方法对各自的移动后的子网格进行初始挖洞,将能够参与流场计算的点筛选出来,避免了后续进行不必要的点计算,大大提高了后续得到移动后的初始包围面的各面表达式的过程,进而提高了整体水下航行器仿真效率。
步骤106,构建初始八叉树结构,在本地进程对当前时间步进行判断,根据判断结果从计算点中选取多个特征点,计算特征点到初始八叉树根节点包围面的距离,得到移动后的根节点包围面的各面表达式。
步骤108,将移动后根节点包围面的各面表达式发送到其他进程,并接收其他进程的根节点包围面表达式;将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对通信网格点和本地网格点进行投射计算,得到初始对照点。
步骤110,将初始对照点带入初始八叉树中进行搜索,得到通信网格点和本地网格点的贡献单元;将通信网格点的贡献单元发送给对应进程,并接收其他进程所发来的部分本地网格点贡献单元;获取网格上的当前时间步的不可压连续性方程和动量方程,对不可压连续性方程和动量方程进行求解,得到网格上当前时间步的流场变量。
在各进程中构建初始八叉树结构时,首先,根据所在网格的坐标极值,构建一个能够最小包含网格区域的轴向包围面。以此包围面作为八叉树的根节点,并将所在网格所有网格单元信息存入根节点。其次,将根节点包围面,沿轴向棱中点平分为八个子包围面,作为根节点的八个子节点。同时,将根节点的网格单元信息,根据空间包含关系,存入相应的子节点中。接下来访问各子节点,按照根节点的划分方式,将上一层的每个子节点作为父节点,同样平分为八个下一层的子节点;并根据父节点所存储的网格单元与下一层子包围面之间的包含关系,将这些网格单元存入相应子节点。以此循环类推,当构建的八叉树达到前处理阶段设置的八叉树层数,便结束树构建步骤。
在本地进程对当前时间步进行判断,若当前时间步为初始时间步,直接在在航行器运动边界上选取四个点,读取八叉树根节点包围面的坐标极值,如图5所示,然后计算四点到根节点包围面六个面的距离表达式,若当前时间步不为初始时间步,则获取当前时间步的四个位置坐标,然后构建移动后的初始包围面的面方程,如图4所示,为线性点面距离原理示意图,根据点面距离公式的性质计算四个位置坐标到移动后的初始包围面的面方程的距离表达式,本地进程可以对进程中得到的本地网格点进行投射,得到初始对照点,并将表达式共享给其余进程。本地进程接收到包围面各面表达式后,将处于包围面内的所有点发送给相对应的进程。本地进程接收到其他进程所发来的通信网格点然后计算得到初始对照点,各进程将本地进程的初始对照点以及其他进程发来的通信网格点的初始对照点代入初始八叉树进行搜索,得到通信网格点和本地网格点的贡献单元,子网格之间的流场数据需要通过插值计算相耦合,将参与插值计算的网格单元称为贡献单元,通过对网格点进行投射计算后将初始对照点代入初始八叉树进行搜索,可以很快的找到在初始八叉树中通信网格点和本地网格点的贡献单元,大大的提高了得到贡献单元的速度,进而提高了后续得到流场变量的效率,从而提高了航行器动态仿真效率。八叉树构建过程如图6所示,八叉树搜索示意图如图7所示。
步骤112,根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量;对更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数。
根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量,流场变量包括压力场和速度场,对压力场进行计算,得到阻力值和升力值;对阻力值和升力值进行无量纲化,得到水下航行器的阻力系数和升力系数,至此,整个仿真过程结束,若仿真结果与预期不符,则重新设置运动参数以及流场初始参数建立新的航行器运动方程来生成不同的航行器仿真案例进行仿真。
上述一种水下航行器动态仿真方法中,首先对水下航行器进行建模,得到背景网格和包含水下航行器边界的航行器网格;建立航行器网格中任意坐标点的航行器运动方程,利用网格划分工具对航行器网格和背景网格进行划分,得到多个子网格,将计算域划分为多个相对简单的子网格,各子网格独立求解,子网格之间的重叠区域通过插值计算可以维持各子域之间的流场关系,各子网格之间可以发生任意相对运动,实现动态仿真,同时通过调节航行器运动方程中的运动参数以及流场初始参数,可以生成不同的航行器仿真案例,将子网格发放到预先创建的相对应的进程,每个进程都包括一套子网格数据,定义初始时间步,从初始时间步开始根据航行器运动方程移动包含航行器网格部分的子网格,得到移动后的子网格,在多个进程中对子网格进行并行处理,可以大大提高子网格的处理效率,再根据笛卡尔辅助网格方法对各自的移动后的子网格进行初始挖洞,将能够参与流场计算的点筛选出来,避免了后续进行不必要的点计算,大大提高了后续得到移动后的初始包围面的各面表达式的过程,进而提高了整体水下航行器动态仿真效率,构建初始八叉树结构,在本地进程对当前时间步进行判断,根据判断结果从所述计算点中选取多个特征点,计算特征点到初始八叉树根节点包围面的距离,得到移动后的初始包围面的各面表达式,将所述移动后初始包围面的各面表达式共享到其他进程并将处于包围面内的所有点发送给相对应的进程,将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对通信网格点和本地网格点进行投射计算,得到初始对照点;将初始对照点带入初始八叉树中进行搜索,得到通信网格点和本地网格点的贡献单元;将通信网格点的贡献单元发送给对应进程,并接收其他进程所发来的部分本地网格点贡献单元,获取网格上的当前时间步的不可压连续性方程和动量方程,对不可压连续性方程和动量方程进行求解,得到网格上当前时间步的流场变量;根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量;对更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数,至此,整个仿真过程结束,通过对网格点进行投射计算后将初始对照点代入初始八叉树进行搜索,可以很快的找到在初始八叉树中通信网格点和本地网格点的贡献单元,大大的提高了得到贡献单元的速度,进而提高了后续得到流场变量的效率,从而提高了航行器动态仿真效率。本申请通过对水下航行器的运动过程进行数值离散计算,与传统的固定位置模拟方式相比,大大提高了水下航行器动态仿真效率,同时本方法支持航行器边界的大范围运动。
在其中一个实施例中,建立航行器网格中任意坐标点的航行器运动方程,包括:
建立航行器网格和背景网格中任意坐标点的航行器运动方程为
Figure SMS_75
其中,
Figure SMS_76
为当前时间节点的上一时间步网格点的坐标;/>
Figure SMS_77
为旋转矩阵,/>
Figure SMS_78
为当前时间步的速度。
在其中一个实施例中,对当前时间步进行判断,根据判断结果从计算点中选取多个特征点,计算多个特征点到八叉树根节点包围面的距离,得到移动后的根节点包围面的各面表达式,包括:
若当前时间步为初始时间步
Figure SMS_80
,则从计算点中任意选取三点不共线,并且四点不共面的四个点/>
Figure SMS_84
、/>
Figure SMS_87
、/>
Figure SMS_81
和/>
Figure SMS_83
,读取八叉树根节点包围面的坐标极值/>
Figure SMS_86
、/>
Figure SMS_89
Figure SMS_79
、/>
Figure SMS_82
、/>
Figure SMS_85
和/>
Figure SMS_88
计算四个点到八叉树根节点六个包围面的距离为
Figure SMS_90
其中,
Figure SMS_91
在其中一个实施例中,若当前时间步不为初始时间步
Figure SMS_92
,根据航行器运动方程获取当前时间步/>
Figure SMS_93
特征点的位置坐标/>
Figure SMS_94
、/>
Figure SMS_95
、/>
Figure SMS_96
以及/>
Figure SMS_97
构建t时刻的根节点包围面各面表达式为
Figure SMS_98
其中,
Figure SMS_99
、/>
Figure SMS_100
、/>
Figure SMS_101
和/>
Figure SMS_102
均为平面/>
Figure SMS_103
表达式的多项式系数,/>
Figure SMS_104
为各包围面的标号;
建立当前时间步
Figure SMS_105
特征点/>
Figure SMS_106
、/>
Figure SMS_107
、/>
Figure SMS_108
以及/>
Figure SMS_109
到t时刻根节点包围面的距离方程组为
Figure SMS_110
解方程组得到
Figure SMS_111
、/>
Figure SMS_112
、/>
Figure SMS_113
和/>
Figure SMS_114
在其中一个实施例中,将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对通信网格点和本地网格点进行投射计算,得到初始对照点,包括:
本地进程接收到其他进程所发来的通信网格点后,对通信网格点和本地网格点进行投射计算,得到网格点
Figure SMS_115
到t时刻根节点包围面的距离为
Figure SMS_116
计算得到网格点在初始八叉树根节点包围面的对照点为
Figure SMS_117
其中,
Figure SMS_118
、/>
Figure SMS_119
以及/>
Figure SMS_120
为初始八叉树根节点包围面的坐标极小值。
在其中一个实施例中,根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量,包括:
根据反距离加权方法和贡献单元对网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量为
Figure SMS_121
其中,
Figure SMS_124
为网格点/>
Figure SMS_125
的更新后的流场变量,/>
Figure SMS_128
为点/>
Figure SMS_123
相对应的贡献单元/>
Figure SMS_127
的流场值,/>
Figure SMS_129
为点/>
Figure SMS_130
相对应的贡献单元数量,/>
Figure SMS_122
为贡献单元中心到点
Figure SMS_126
的距离。
在其中一个实施例中,更新后的流场变量包括压力场和速度场;对更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数,包括:
对压力场进行计算,得到阻力值和升力值;
对阻力值和升力值进行无量纲化,得到水下航行器的阻力系数和升力系数。
在其中一个实施例中,对压力场进行计算,得到阻力值和升力值,包括:
Figure SMS_131
,/>
Figure SMS_132
其中,
Figure SMS_133
为压力场,/>
Figure SMS_134
为航行器边界面积矢量。
在其中一个实施例中,对阻力值和升力值进行无量纲化,得到水下航行器的阻力系数和升力系数,包括:
Figure SMS_135
,/>
Figure SMS_136
其中,
Figure SMS_137
和/>
Figure SMS_138
分别为阻力值和升力值,/>
Figure SMS_139
为航行器垂直于阻力方向的投影面积,/>
Figure SMS_140
为航行器垂直于升力方向的投影面积,/>
Figure SMS_141
是流体密度,/>
Figure SMS_142
为速度值。
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (9)

1.一种水下航行器动态仿真方法,其特征在于,所述方法包括:
获取水下航行器;所述水下航行器包括航行器运动边界;
对所述水下航行器进行建模,得到背景网格和包含水下航行器边界的航行器网格;
建立所述航行器网格中任意坐标点的航行器运动方程,利用网格划分工具对所述航行器网格和背景网格进行划分,得到多个子网格;
将所述子网格发放到预先创建的相对应的进程,每个进程都包括一套子网格数据;
定义初始时间步,从初始时间步开始根据所述航行器运动方程移动包含航行器网格部分的子网格,得到移动后的子网格;在每个进程中根据笛卡尔辅助网格方法对各自的移动后的子网格中背景网格部分进行挖洞,得到计算点;所述计算点表示参与流场计算的点;
构建初始八叉树结构,在本地进程对当前时间步进行判断,根据判断结果从所述计算点中选取多个特征点,计算所述特征点到初始八叉树根节点包围面的距离,得到移动后的根节点包围面的各面表达式;
将所述移动后根节点包围面的各面表达式发送到其他进程,并接收其他进程的根节点包围面表达式;将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对所述通信网格点和本地网格点进行投射计算,得到初始对照点;
将所述初始对照点带入所述初始八叉树中进行搜索,得到通信网格点和本地网格点的贡献单元;将通信网格点的贡献单元发送给对应进程,并接收其他进程所发来的部分本地网格点贡献单元;
获取网格上的当前时间步的不可压连续性方程和动量方程,对所述不可压连续性方程和动量方程进行求解,得到网格上当前时间步的流场变量;
根据反距离加权方法和所述贡献单元对所述网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量;对所述更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数。
2.根据权利要求1所述的方法,其特征在于,建立所述航行器网格中任意坐标点的航行器运动方程,包括:
建立所述航行器网格中任意坐标点的航行器运动方程为
Figure QLYQS_1
其中,
Figure QLYQS_2
为当前时间节点的上一时间步网格点的坐标;/>
Figure QLYQS_3
为旋转矩阵,/>
Figure QLYQS_4
为当前时间步的速度。
3.根据权利要求1所述的方法,其特征在于,对当前时间步进行判断,根据判断结果从所述计算点中选取多个特征点,计算所述多个特征点到八叉树根节点包围面的距离,得到移动后的根节点包围面的各面表达式,包括:
若当前时间步为初始时间步
Figure QLYQS_7
,则从所述计算点中任意选取三点不共线,并且四点不共面的四个点/>
Figure QLYQS_10
、/>
Figure QLYQS_13
、/>
Figure QLYQS_6
和/>
Figure QLYQS_9
,读取八叉树根节点包围面的坐标极值/>
Figure QLYQS_12
、/>
Figure QLYQS_15
、/>
Figure QLYQS_5
Figure QLYQS_8
、/>
Figure QLYQS_11
和/>
Figure QLYQS_14
计算所述四个点到八叉树根节点六个包围面的距离为
Figure QLYQS_16
其中,
Figure QLYQS_17
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若当前时间步不为初始时间步
Figure QLYQS_18
,根据航行器运动方程获取当前时间步/>
Figure QLYQS_19
特征点的位置坐标/>
Figure QLYQS_20
、/>
Figure QLYQS_21
、/>
Figure QLYQS_22
以及/>
Figure QLYQS_23
构建t时刻的根节点包围面各面表达式为
Figure QLYQS_24
其中,
Figure QLYQS_25
、/>
Figure QLYQS_26
、/>
Figure QLYQS_27
和/>
Figure QLYQS_28
均为平面/>
Figure QLYQS_29
表达式的多项式系数,/>
Figure QLYQS_30
为各包围面的标号;
建立当前时间步
Figure QLYQS_31
特征点/>
Figure QLYQS_32
、/>
Figure QLYQS_33
、/>
Figure QLYQS_34
以及/>
Figure QLYQS_35
到t时刻根节点包围面的距离方程组为
Figure QLYQS_36
解方程组得到
Figure QLYQS_37
、/>
Figure QLYQS_38
、/>
Figure QLYQS_39
和/>
Figure QLYQS_40
5.根据权利要求4所述的方法,其特征在于,将处于其他进程根节点包围面内的本地网格点发送给相对应的进程,并接收其他进程所发来的通信网格点;对所述通信网格点和本地网格点进行投射计算,得到初始对照点,包括:
本地进程接收到其他进程所发来的通信网格点后,对所述通信网格点和本地网格点进行投射计算,得到所述网格点
Figure QLYQS_41
到t时刻根节点包围面的距离为
Figure QLYQS_42
计算得到所述网格点在初始八叉树根节点包围面的对照点为
Figure QLYQS_43
其中,
Figure QLYQS_44
、/>
Figure QLYQS_45
以及/>
Figure QLYQS_46
为初始八叉树根节点包围面的坐标极小值。
6.根据权利要求4所述的方法,其特征在于,根据反距离加权方法和所述贡献单元对所述网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量,包括:
根据反距离加权方法和所述贡献单元对所述网格上当前时间步的流场变量进行插值计算,得到更新后的流场变量为
Figure QLYQS_47
其中,
Figure QLYQS_50
为网格点/>
Figure QLYQS_51
的更新后的流场变量,/>
Figure QLYQS_54
为点/>
Figure QLYQS_49
相对应的贡献单元
Figure QLYQS_53
的流场值,/>
Figure QLYQS_55
为点/>
Figure QLYQS_56
相对应的贡献单元数量,/>
Figure QLYQS_48
为贡献单元中心到点/>
Figure QLYQS_52
的距离。
7.根据权利要求6所述的方法,其特征在于,所述更新后的流场变量包括压力场和速度场;对所述更新后的流场变量进行计算,得到水下航行器的阻力系数和升力系数,包括:
对所述压力场进行计算,得到阻力值和升力值;
对所述阻力值和升力值进行无量纲化,得到水下航行器的阻力系数和升力系数。
8.根据权利要求7所述的方法,其特征在于,对所述压力场进行计算,得到阻力值和升力值,包括:
Figure QLYQS_57
,/>
Figure QLYQS_58
其中,
Figure QLYQS_59
为压力场,/>
Figure QLYQS_60
为航行器边界面积矢量,/>
Figure QLYQS_61
和/>
Figure QLYQS_62
分别为阻力值和升力值,/>
Figure QLYQS_63
为航行器垂直于升力方向的投影面积。
9.根据权利要求8所述的方法,其特征在于,对所述阻力值和升力值进行无量纲化,得到水下航行器的阻力系数和升力系数,包括:
Figure QLYQS_64
,/>
Figure QLYQS_65
其中,
Figure QLYQS_67
表示阻力系数,/>
Figure QLYQS_70
表示升力系数,/>
Figure QLYQS_72
和/>
Figure QLYQS_68
分别为阻力值和升力值,/>
Figure QLYQS_69
为航行器垂直于阻力方向的投影面积,/>
Figure QLYQS_71
为航行器垂直于升力方向的投影面积,/>
Figure QLYQS_73
是流体密度,/>
Figure QLYQS_66
为速度值。
CN202310393622.4A 2023-04-13 2023-04-13 一种水下航行器动态仿真方法 Active CN116127611B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310393622.4A CN116127611B (zh) 2023-04-13 2023-04-13 一种水下航行器动态仿真方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310393622.4A CN116127611B (zh) 2023-04-13 2023-04-13 一种水下航行器动态仿真方法

Publications (2)

Publication Number Publication Date
CN116127611A CN116127611A (zh) 2023-05-16
CN116127611B true CN116127611B (zh) 2023-06-20

Family

ID=86304870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310393622.4A Active CN116127611B (zh) 2023-04-13 2023-04-13 一种水下航行器动态仿真方法

Country Status (1)

Country Link
CN (1) CN116127611B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101290083B1 (ko) * 2012-05-14 2013-07-26 삼성탈레스 주식회사 무인잠수정 hils 시스템과 이를 이용한 동적 제어 특성 검증 방법
CN114201823A (zh) * 2021-12-17 2022-03-18 西安前沿动力软件开发有限责任公司 一种显式嵌套网格装配方法、装置及存储介质
CN115329458A (zh) * 2022-08-17 2022-11-11 哈尔滨工程大学 基于Fluent的海空多栖航行器空中飞行智能控制仿真方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2345995T3 (es) * 2006-09-15 2010-10-07 Saab Ab Dispositivo de simulacion y procedimiento de simulacion de a bordo.
CN102490909B (zh) * 2011-11-25 2014-05-14 中国航天空气动力技术研究院 一种飞行器多体分离模拟方法
US20150094904A1 (en) * 2012-02-22 2015-04-02 The Government Of The United States, As Represented By The Secretary Of Navy System and method for underwater vehicle simulation
US10664560B2 (en) * 2013-12-19 2020-05-26 University Of Louisville Research Foundation, Inc. Multi-scale mesh modeling software products and controllers
US10183732B2 (en) * 2015-04-09 2019-01-22 University of New Hamphire Pose detection and control of unmanned underwater vehicles (UUVs) utilizing an optical detector array
JP6761216B2 (ja) * 2015-12-09 2020-09-23 国立研究開発法人 海上・港湾・航空技術研究所 水中航走体の経路設定方法、それを用いた水中航走体の最適制御方法及び水中航走体並びに移動体の経路設定方法
WO2018119104A1 (en) * 2016-12-21 2018-06-28 Northwestern University Systems and methods for computational simulation of self-propelling vehicles for aerodynamic design
CN108694290B (zh) * 2018-06-05 2021-12-07 东北大学 一种基于八叉树网格的有限元模型的软组织变形方法
CN109241568A (zh) * 2018-08-03 2019-01-18 北京航空航天大学 一种基于数据拟合的流场受力分析方法
CN109343081A (zh) * 2018-10-10 2019-02-15 中国人民解放军国防科技大学 一种gps信号动态接收环境仿真方法及系统
CN109470249B (zh) * 2018-11-07 2021-07-27 河海大学 一种水下航行器的最优路径规划与避障设计方法
CN109885699B (zh) * 2019-02-15 2020-12-25 中国人民解放军国防科技大学 基于知识图谱的云仿真模型资源描述信息存储方法及装置
CN109948301B (zh) * 2019-04-16 2020-09-15 北京理工大学 基于网格控制的近水面滑行跳跃流固耦合数值预测方法
CN110287535B (zh) * 2019-05-24 2023-01-10 中国人民解放军海军工程大学 高海况下水下拖曳系统运动响应的仿真计算方法
CN110321639B (zh) * 2019-07-05 2022-09-16 大连海事大学 实现水下机器人四自由度垂直面自航下潜预报的类物理数值方法
CN110262526B (zh) * 2019-07-05 2022-02-15 大连海事大学 一种水下机器人空间6自由度自航操纵预报的类物理数值方法
CN110298134B (zh) * 2019-07-05 2022-10-11 大连海事大学 提高水下机器人自航对接瞬态运动预报的数值方法
CN110717285B (zh) * 2019-09-11 2023-05-30 哈尔滨工程大学 一种大幅六自由度运动的流固耦合模拟方法
CN111241662B (zh) * 2020-01-02 2022-04-22 西安交通大学 一种仿生波动鳍的推进性能数值计算方法
CN112632870B (zh) * 2020-12-28 2021-09-24 中国人民解放军国防科技大学 一种基于rbf动网格的仿生机器鱼驱动优化方法
CN113128096B (zh) * 2021-04-28 2022-09-27 青岛澎湃海洋探索技术有限公司 一种获取水下航行器直航附加质量方法
CN113254238B (zh) * 2021-06-21 2021-09-07 中国人民解放军国防科技大学 一种基于事件驱动的流-固耦合模块集成方法和装置
CN114088098B (zh) * 2021-11-16 2024-06-28 哈尔滨工程大学 一种用于极区水下航行器数据库辅助导航路径规划方法
CN114186508A (zh) * 2021-11-24 2022-03-15 浙江大学 一种基于cfd软件的水下航行器水动力系数测算方法
CN114662209B (zh) * 2021-11-24 2024-07-26 浙江大学 一种碟形水下直升机外形的cfd仿真优化及验证方法
CN114611423B (zh) * 2022-03-04 2024-07-16 海仿(上海)科技有限公司 一种三维多相可压缩流固耦合的快速计算方法
CN114492252A (zh) * 2022-04-18 2022-05-13 中国人民解放军国防科技大学 一种面向重叠网格贡献单元搜索的坐标树空间映射方法
CN115758569A (zh) * 2022-11-01 2023-03-07 华南理工大学 一种航行器高速入水砰击与空化现象的流固耦合模拟方法
CN115630526A (zh) * 2022-11-09 2023-01-20 西安交通大学 航空发动机风扇仿生波浪前缘叶型降噪分析方法
CN115828426A (zh) * 2022-11-29 2023-03-21 中国船舶科学研究中心 水下航行体大机动工况流体动力载荷的数值计算方法
CN115630446B (zh) * 2022-12-23 2023-04-07 中国人民解放军海军工程大学 用于潜航器结构低频辐射噪声实时仿真的快速推演方法
CN115798654B (zh) * 2023-02-03 2023-06-27 国家超级计算天津中心 一种模型材料处理方法、装置、设备及介质
CN116108566A (zh) * 2023-02-20 2023-05-12 中国航空发动机研究院 一种航空发动机轴承腔两相流仿真方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101290083B1 (ko) * 2012-05-14 2013-07-26 삼성탈레스 주식회사 무인잠수정 hils 시스템과 이를 이용한 동적 제어 특성 검증 방법
CN114201823A (zh) * 2021-12-17 2022-03-18 西安前沿动力软件开发有限责任公司 一种显式嵌套网格装配方法、装置及存储介质
CN115329458A (zh) * 2022-08-17 2022-11-11 哈尔滨工程大学 基于Fluent的海空多栖航行器空中飞行智能控制仿真方法

Also Published As

Publication number Publication date
CN116127611A (zh) 2023-05-16

Similar Documents

Publication Publication Date Title
Secco et al. Efficient mesh generation and deformation for aerodynamic shape optimization
CN111062166B (zh) 基于变密度法的三周期极小曲面多孔结构拓扑优化方法
CN102306396A (zh) 一种三维实体模型表面有限元网格自动生成方法
CN112862972A (zh) 一种表面结构网格生成方法
JPH077426B2 (ja) 形状設計方法又は形状予測方法
CN113538689A (zh) 一种基于神经网络的特征融合的三维模型网格简化方法
CN111695281B (zh) 一种四面体网格划分有限元粒子模拟的粒子快速定位方法
CN115758938A (zh) 面向粘性边界流场数值模拟的附面层网格生成方法
Keyser et al. Efficient and accurate B-rep generation of low degree sculptured solids using exact arithmetic: I—representations
CN114510775A (zh) 一种复杂模型三维空间曲网格划分方法
CN116127611B (zh) 一种水下航行器动态仿真方法
Zhang et al. MeshLink: a surface structured mesh generation framework to facilitate automated data linkage
Shen et al. A framework from point clouds to workpieces
Liu et al. Review of subdivision schemes and their applications
CN104036552B (zh) 基于最远点优化的蓝噪声网格生成方法
Rai Three-dimensional aerodynamic design using artificial neural networks
CN115222870A (zh) 非结构网格隐式lusgs均衡着色方法、设备及介质
CN114818309A (zh) 一种基于离散点表示的二维标量场插值方法、装置及计算机设备
Khamayseh et al. Use of the spatial kD-tree in computational physics applications
Rossignac Corner-operated tran-similar (cots) maps, patterns, and lattices
CN113111553A (zh) 一种基于插值变形网格的大变形运动数值模拟方法
Duan Application of greedy algorithm and multi scale optimization algorithm in dynamic grid computing
Takahashi et al. A general purpose automatic mesh generation using shape recognition technique
Zint et al. Feature‐Preserving Offset Mesh Generation from Topology‐Adapted Octrees
Zhu et al. Fast NURBS Skinning Algorithm and Ship Hull Section Refinement Model

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant