目 录

  • Blog Links
  • 一、前言
  • 二、AQWA软件特点
  • 2.1 主要功能模块
  • 2.2 软件的运行
  • 2.3 AQWA的前后处理
  • 2.4 AQWA的局限性
  • 三、经典AQWA建模
  • 3.1 ANSYS APDL 创建 AQWA 船体模型
  • 3.2 创建 AQWA-LINE 计算模块的输入文件
  • 3.3 可编辑数据的修改
  • 3.4 定义分析选项
  • 3.5 AQWA模型的数据检查
  • 3.6 提交计算
  • 四、结果的后处理
  • 五、尾声
  • 六、参考文献






Blog Links



  • DalNur | 博客总目录
  • 水动力分析 简介
  • SESAM | GeniE 实用教程
  • SESAM | HydroD 实用教程


  • ANSYS 参数化建模 实用教程
  • Abaqus 二次开发/建模 教程
  • nCodeDL 疲劳分析 实用教程
  • Python 二次开发 SAP2000 教程
  • Python 二次开发 AutoCAD 教程
  • Python 二次开发 HyperMesh 教程
  • Python 二次开发 Office 教程
  • 水动力分析 实用教程





一、前言



  水动力学 hydrodynamics 研究水和其他液体的运动规律及其与边界相互作用的学科。又称液体动力学。液体动力学和气体动力学组成流体动力学。其基本原理主要包含:牛顿三定律、动量定理 和 动能定理。本文主要介绍采用 AQWA 进行水动力分析的基本流程及相关注意事项。



  1975 年,英国公司 WS Atkins(阿特金斯集团)为了应对日益增长的海洋工程业务需求,开发了 AQWA(Advanced Quantitative Wave Analysis)软件。2009 年,ANSYS 12.0 首次将 AQWA 作为其重要的计算模块推向市场。随着版本不断更新,AQWA 与 ANSYS Workbench 系统的整合程度不断提高,其界面、计算功能、计算效率都有了较大提升。



  ANSYS AQWA 作为 ANSYS 船舶与海洋工程行业专用仿真工具,用于计算船舶与海洋工程水动力学性能问题功能完备。可满足桅、桁、EPSOs、TLPs、半潜水系统、停泊系统、救生系统等各种海面浮动结构的水动力学设计、分析需求。涵盖一阶,二阶波浪力计算与输出,耐波性,稳性,系泊分析,下水分析,碰撞分析,气隙分析,缆索动力学分析等分析能力。



  在船舶与海洋工程领域影响广泛,世界四大船级社DNV(挪威船级社),LR(英国劳氏),CCS(中国船级社),ABS(美国船级社)都采用 AQWA 作为分析和验证的标准程序。AQWA 覆盖水动力学分析的全部范围,能够处理多达 50 个互联的结构,充分考虑结构和流体的交互作用,可以作为浮动结构和水动力学分析的理想工具。AWQA 具有外部程序接口 FORTRAN/Python,用户可以通过编程实现自定义计算。(编写dll)





python水动力 aqwa水动力分析教学_python水动力







二、AQWA软件特点



2.1 主要功能模块



  AQWA 软件包主要包括九个模块(程序),模块名称及对应功能如下表所示。



序号

模块名称

功能

1

Line

频域水动力求解模块

2

Librium

静平衡计算模块

3

Fer

频域分析模块

4

Drift

平均湿表面时域计算模块

5

Naut

瞬时湿表面时域计算模块

6

Ags

后处理模块

7

Wave

波浪载荷转换程序

8

Flow

流场数据读取程序

9

Aql

AQWA与Excel的接口程序



  对于经典界面的 AWQA,ANSYS-APDL 和 AQWA-Ags 是前处理程序;Line、Fer、Librium、Drift、Naut 是 AQWA 的核心计算模块。Wave、Flow、Ags 以及 Aql 是 AQWA 的后处理程序。




python水动力 aqwa水动力分析教学_WindFloat_02



AQWA主要模块关系




  AWQA 软件的优势是:基本能解决所有常见的水动力分析问题,AGS 后处理功能强大;劣势是:入门有一定难度,批量后处理需要单独工具,TLP 和频荷载、月池、多体分析精度有限(多体分析采用Simpack)。(可采用 Python 对其进行二次开发)





2.2 软件的运行



  不建议通过 Workbench 使用 AWQA,建议采用经典界面使用 AQWA 软件。



python水动力 aqwa水动力分析教学_WindFloat_03





2.3 AQWA的前后处理



  AWQA 的水动力计算模型可以通过第三方软件或其他建模工具实现,如 ANSYS、Workbench DM 等。



python水动力 aqwa水动力分析教学_Hydrodynamics_04





2.4 AQWA的局限性



python水动力 aqwa水动力分析教学_ANSYS_05






三、经典AQWA建模



  基本流程:定义单元类型 → 点-线-面 → ANSYTOAQWA → MODIFY。




3.1 ANSYS APDL 创建 AQWA 船体模型



  船体以长方形盒子代替,其余形状类似,其有关信息如下表所示。



船体几何参数


序号

参数名称

参数取值

单位

1

长度

20

m

2

宽度

10

m

3

高度

5

m

4

吃水深度

5

m



  按如下方式启动 ANSYS APDL:Windows 开始 >> Mechanical APDL ,如下图所示。



python水动力 aqwa水动力分析教学_AQWA_06




! ANSYS Mechanical APDL Command.
! Generated by Python language.
! Author: DalNur.
! Email: liyang@alu.hit.edu.cn.
! Creation Time: 2021-08-21 11:10:00.
! Jobname: AqwaShipExamp.
! Current Units: N-m-kg.


! *********************************
! -->> Title-01.       模型初始化  *
! *********************************

FINISH                           ! 退出当前处理器
/CLEAR,ALL                       ! 清除所有即新建
FINISH                           ! Exits normally from a processor.
/FILNAME,AqwaShipExamp,0         ! 作业名称<AqwaShipExamp>/结果文件名称<AqwaShipExamp.rst>
FINISH                           ! Exits normally from a processor.
/PREP7                           ! 访问前处理器
*AFUN,DEG                        ! 角度单位设为度


! *********************************
! -->> Title-02.     定义材料属性  *
! *********************************

/PREP7                           ! 访问前处理器/事实上无需定义材料属性
MPDELE,ALL,ALL                   ! 删除所有线性材料属性
TBDELE,ALL,ALL                   ! 删除所有已定义的材料数据表
ALLSEL,ALL                       ! 全选/Select Everything

! ***  Material Properties - 01
! ***  Material Num: 01.
! ***  Material Name: S355J2.
*GET,matmax,MAT,,NUM,MAX         ! 当前最大材料号<matmax>
rho = 7.85e-09                   ! 质量密度/rho=7.85e-09
e = 206000                       ! 弹性模量/E=206000
nu = 0.3                         ! 泊松比/nu=0.3
MPTEMP,,,,,,,,                   ! Defines a temperature table
MPTEMP,1,0                       ! 定义温度表/SLOC=1
MPDATA,DENS,matmax+1,,rho        ! 设置<matmax+1>材料的质量密度
MPDATA,EX,matmax+1,,e            ! 设置<matmax+1>材料的弹性模量
MPDATA,PRXY,matmax+1,,nu         ! 设置<matmax+1>材料的泊松比
MAT,matmax+1                     ! 激活材料编号<matmax+1>.


! *********************************
! -->> Title-03.     定义单元类型  *
! *********************************

ALLSEL,ALL                       ! 全选/Select Everything
*GET,etmax,ETYP,,NUM,MAX         ! 当前最大单元类型号<etmax>
ET,etmax+1,SHELL181              ! 定义单元/SHELL181/单元编号<etmax+1>.
TYPE,etmax+1                     ! 激活单元类型号<etmax+1>


! *********************************
! -->> Title-04.     创建船体几何  *
! *********************************

length = 20                      ! 船体长度
width = 10                       ! 船体宽度
height = 5                       ! 船体吃水深度

x1 = -0.5*length
x2 = 0.5*length
y1 = -0.5*width
y2 = 0.5*width
z1 = -height
z2 = 0

CSYS,0                           ! 激活全局直角坐标系
K,1,x2,y2,z2                     ! 关键的编号<1>/坐标<x2,y2,z2>
K,2,x1,y2,z2                     ! 关键的编号<2>/坐标<x1,y2,z2>
K,3,x1,y1,z2                     ! 关键的编号<3>/坐标<x1,y1,z2>
K,4,x2,y1,z2                     ! 关键的编号<4>/坐标<x2,y1,z2>
K,5,x2,y2,z1                     ! 关键的编号<5>/坐标<x2,y2,z1>
K,6,x1,y2,z1                     ! 关键的编号<6>/坐标<x1,y2,z1>
K,7,x1,y1,z1                     ! 关键的编号<7>/坐标<x1,y1,z1>
K,8,x2,y1,z1                     ! 关键的编号<8>/坐标<x2,y1,z1>

L,1,2                            ! 由关键点<1>、<2>创建一条线
*REPEAT,3,1,1                    ! 上一条命令重复执行3次,始末关键点编号增量为1。
L,4,1                            ! 由关键点<4>、<1>创建一条线
L,5,6                            ! 由关键点<5>、<6>创建一条线
*REPEAT,3,1,1                    ! 上一条命令重复执行3次,始末关键点编号增量为1。
L,8,5                            ! 由关键点<8>、<5>创建一条线
L,1,5                            ! 由关键点<1>、<5>创建一条线
*REPEAT,4,1,1                    ! 上一条命令重复执行4次,始末关键点编号增量为1。

ALLSEL,ALL                       ! 全选/Select Everything
AL,1,10,5,9                      ! 由线<1>、<10>、<5>和<9>创建面
AL,2,11,6,10                     ! 由线<2>、<11>、<6>和<10>创建面
AL,3,12,7,11                     ! 由线<3>、<12>、<7>和<11>创建面
AL,4,9,8,12                      ! 由线<4>、<9>、<8>和<12>创建面
AL,5,6,7,8                       ! 由线<5>、<6>、<7>和<8>创建面
AGLUE,1,2,3,4,5                  ! 几何合并面<1>、<2>、<3>、<4>和<5>/Merge


! *********************************
! -->> Title-05.         划分网格  *
! *********************************

lnumber = 20                     ! 长度方向的网格数目
wnumber = 5                      ! 宽度方向的网格数目
hnumber = 4                      ! 高度方向的网格数目
LSEL,S,LINE, ,1                  ! 新建选择集,选择编号为<1>的线。
LSEL,A,LINE, ,3                  ! 额外选择编号为<3>的线
LSEL,A,LINE, ,5                  ! 额外选择编号为<5>的线
LSEL,A,LINE, ,7                  ! 额外选择编号为<7>的线
LESIZE,ALL, , ,lnumber, , , , ,0 ! 布种子/分lnumber段
LSEL,S,LINE, ,2                  ! 新建选择集,选择编号为<2>的线。
LSEL,A,LINE, ,4                  ! 额外选择编号为<4>的线
LSEL,A,LINE, ,6                  ! 额外选择编号为<6>的线
LSEL,A,LINE, ,8                  ! 额外选择编号为<8>的线
LESIZE,ALL, , ,wnumber, , , , ,0 ! 布种子/分wnumber段
LSEL,S,LINE, ,9                  ! 新建选择集,选择编号为<9>的线。
LSEL,A,LINE, ,10                 ! 额外选择编号为<10>的线
LSEL,A,LINE, ,11                 ! 额外选择编号为<11>的线
LSEL,A,LINE, ,12                 ! 额外选择编号为<12>的线
LESIZE,ALL, , ,hnumber, , , , ,0 ! 布种子/分hnumber段
MSHAPE,0,2D                      ! 指定划分单元的形状,生成四边形单元。
MSHKEY,1                         ! 采用映射网格划分方式划分网格
AMESH,ALL                        ! 将所有面划分网格
ALLSEL,ALL                       ! 全选/Select Everything
NUMMRG,ALL                       ! Merges coincident or equivalently defined items.




  运行上述命令流将得到如下图所示的船体有限元模型。在进行水动力分析时,各面单元的法线方向必须满足特定要,即偏绿色的面接触流体。




python水动力 aqwa水动力分析教学_Hydrodynamics_07



船体ANSYS模型




  执行 AREVERSE,ALL,0 命令可调整面单元的法线方向,调整后的有限元模型如下图所示。




python水动力 aqwa水动力分析教学_python水动力_08



面法向的翻转




  在进行水动力分析时,仅需要创建结构模型的外轮廓面,且可能与水接触的表面部分(水线以下),必须对水封闭,不能漏水。建议:在进行建模时,应以水线为分界面,创建水上部分模型及水下部分模型,两部分模型在水线处有几何上的分界。(原因:AQWA 不允许存在跨水线面的单元)





3.2 创建 AQWA-LINE 计算模块的输入文件



ANSTOAQWA



python水动力 aqwa水动力分析教学_WindFloat_09



ANSTOAQWA命令及其说明




python水动力 aqwa水动力分析教学_python水动力_10


ANSYS to AQWA Translator





Jobname.aqwa




python水动力 aqwa水动力分析教学_ANSYS_11





  AWQA 程序能识别的输入数据格式为 .dat 文件,将上述创建的 AqwaShipExamp.aqwa 文件复制并重命名为 AqwaShipExamp.dat 文件即可。





3.3 可编辑数据的修改



0199999




python水动力 aqwa水动力分析教学_WindFloat_12





  在 .aqwa 文件中,可能需要进行修改的数据,如下表所示。



序号

标题行

标识符号

标识符号后数据含义

1

-

0199999

结构重心坐标,共三个数据

2

03  MATE * Material properties (may need editing)

03       1

水线以下结构的排开水的质量

3

04  GEOM * Geometric properties (may need editing)

04PMAS       1

结构对各坐标轴的转动惯量,共六个数据

4

05  GLOB * Global analysis parameters (may need editing)

05DPTH

水体深度即水平至其下岩体的深度

5

05  GLOB * Global analysis parameters (may need editing)

05DENS

水体密度

6

05  GLOB * Global analysis parameters (may need editing)

END05ACCG

重力加速度

7

06  FDR1 * Frequencies and directions (may need editing)

06FREQ

定义参与计算的波浪频率数据,共3个数据

8

06  FDR1 * Frequencies and directions (may need editing)

END06DIRN

定义参与计算的波浪方向数据,共3个数据




  06FREQ 其后共三个数据,其中,第二个数据含义为计算频率(rad/s)的下限,第三个数据为计算频率(rad/s)的上限,但通常不超过 2.0 rad/s,第一个数据表示总计算的频率数目,END06DIRN 后关于波浪方向的三个数据含义亦与此类似。



  通常,不采用 FREQ 定义计算浪频数据,而采用 PERD 方式定义计算波浪周期据,因为,结构自振周期附近,重点关注的浪频附近,需要适当进行分析步加密计算。



python水动力 aqwa水动力分析教学_Hydrodynamics_13





  采用 PERD 方式定义的计算波浪周期数据如下图所示,定义数据时必须注意没个数据结束时制位表符的位置。与此同时,将计算的波浪方向由 25 个修改为 5 个。



python水动力 aqwa水动力分析教学_python水动力_14





  另外,数据类 07(Data Category 7)可补充定义 Wave Frequency Dependent Parameters and Stiffness Matrix ;数据类 08(Data Category 8)可补充定义 Drift Force Coefficients (二阶力)



python水动力 aqwa水动力分析教学_Hydrodynamics_15



AQWQ中模型单位制的转换




  至此,计算水动力所需的输入文件 .dat 已准备完毕,其中,AqwaShipExamp.aqwa 是由 ANSYS 自动导出的水动力计算输入文件,其内一些参数由程序自动创建,不一定满足用户实际计算需求,因此需要做适当修改。而 AqwaShipExamp.dat 为用户修改后,真正提交 AQWA 程序计算的输入文件,它是由 AqwaShipExamp.aqwa 文件经修改个别参数而来。





3.4 定义分析选项



  Each program has more than one type of possible analysis. These options are used on the JOB data record to indicate which type is required. If no option is input then the default analysis type will be used.



python水动力 aqwa水动力分析教学_ANSYS_16

分析选项的定义





As all of the programs have two distinct types of analysis, the user may state which type of analysis is required for each run. If this field is left blank, then the default analysis type will be used. These defaults and the optional analysis types are as follows:




python水动力 aqwa水动力分析教学_WindFloat_17






3.5 AQWA模型的数据检查



  点击 AQWA 软件,按提示选择 .dat 文件,进行模型检查,如下图所示。



python水动力 aqwa水动力分析教学_Hydrodynamics_18





  若产生如下提示,即 Terminated with Errors ,则表示模型检查未通过,说明输入文件有错误。



python水动力 aqwa水动力分析教学_WindFloat_19





  关闭上述报错窗口时,将自动弹出详细的报错信息,如下图所示。



python水动力 aqwa水动力分析教学_WindFloat_20





  按提示信息进行检查,检查的主要方向为:检查数据格式是否正确,尤其是用户修改的数据的制位表符的位置是否正确。经检查,自定义数据行的各结束数据的制位表位置有误(即数据对齐方式不对),正确的数据对齐如下图所示。



python水动力 aqwa水动力分析教学_WindFloat_21





  另外,根据信息提示:ELEMENTS MUST BE AT LEAST 1.000 * FACET RADIUS APART - ELEMENT 96 VIOLATES THIS CONDITION 等,可知,96号 ~ 100号单元、 196号 ~ 200号单元网格可能存在问题,主要是因为这些单元的形心距离其他单元太近,调整网格即可。这些单元均位于船体的两个宽度方向的侧面上,那么,下一步调整结构沿宽度方向的网格数目,参数 wnumber 由原来的 5 调整为 10 ,并重复上述步骤,在此不再赘述。



python水动力 aqwa水动力分析教学_WindFloat_22



重新划分网格后的船体ANSYS模型




  经过上述的数据检查和网格的重新划分,运行数据检查后,将得到如下图提示信息,则表示数据检查通过,供水动力计算的输入数据基本准确,下一步可进行提交计算。



python水动力 aqwa水动力分析教学_python水动力_23





  以上报错及警告信息均存储在 .mes 文件中,.mes 文件为 ASCII 文件,任意一文本编辑器均可打开该文件。常见的报错及处理方法见:[AQWA小技巧]AQWA的报错信息及解决方案





3.6 提交计算



  数据检查通过后,打开通过模型检查的 AqwaShipExamp.dat 文件,将参数 RESTART 后的数据 2 修改为 3 后保存,如下图所示。那么此时 AqwaShipExamp.dat 便可进行提交计算。



python水动力 aqwa水动力分析教学_AQWA_24




  计算过程中及计算结束时,将显示如下图所示的进度条。

python水动力 aqwa水动力分析教学_AQWA_25






四、结果的后处理



  AQWA 将计算结果存储在 .LIS 文件中,.LIS 文件为 ASCII 文件,其内记录着模型定义/分析参数和分析结果。上述计算完成后存储计算结果的文件为 AQWASHIPEXAMP.LIS,打开 AQWASHIPEXAMP.LIS 可看到某些自由的方向上无计算结果,若想 6 个自由度均参与计算,则按下图方式修改 .dat 文件中的参数,将 Job Type Options 由 “OPTIONS REST END” 修改为 “OPTIONS REST NQTF END”,并重新提交计算。



python水动力 aqwa水动力分析教学_AQWA_26



分析选项的设置




python水动力 aqwa水动力分析教学_ANSYS_27



不同分析选项对用的分析结果 左侧:默认设置;右侧:NQTF