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 提交计算
四、结果的后处理
五、尾声
六、参考文献
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)
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 的后处理程序。
AWQA 软件的优势是:基本能解决所有常见的水动力分析问题,AGS 后处理功能强大;劣势是:入门有一定难度,批量后处理需要单独工具,TLP 和频荷载、月池、多体分析精度有限(多体分析采用Simpack)。(可采用 Python 对其进行二次开发)
不建议通过 Workbench 使用 AWQA,建议采用经典界面使用 AQWA 软件。
AWQA 的水动力计算模型可以通过第三方软件或其他建模工具实现,如 ANSYS、Workbench DM 等。
基本流程:定义单元类型 → 点-线-面 → ANSYTOAQWA → MODIFY。
船体以长方形盒子代替,其余形状类似,其有关信息如下表所示。
序号 | 参数名称 | 参数取值 | 单位 |
---|---|---|---|
1 | 长度 | 20 | m |
2 | 宽度 | 10 | m |
3 | 高度 | 5 | m |
4 | 吃水深度 | 5 | m |
按如下方式启动 ANSYS APDL:Windows 开始 >> Mechanical APDL ,如下图所示。
! 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=206000nu = 0.3 ! 泊松比/nu=0.3MPTEMP,,,,,,,, ! Defines a temperature table MPTEMP,1,0 ! 定义温度表/SLOC=1MPDATA,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 = 0CSYS,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.
运行上述命令流将得到如下图所示的船体有限元模型。在进行水动力分析时,各面单元的法线方向必须满足特定要,即偏绿色的面接触流体。
执行 AREVERSE,ALL,0命令可调整面单元的法线方向,调整后的有限元模型如下图所示。
在进行水动力分析时,仅需要创建结构模型的外轮廓面,且可能与水接触的表面部分(水线以下),必须对水封闭,不能漏水。建议:在进行建模时,应以水线为分界面,创建水上部分模型及水下部分模型,两部分模型在水线处有几何上的分界。(原因:AQWA 不允许存在跨水线面的单元)
执行命令 ANSTOAQWA 可弹出创建 AQWA-LINE 计算模块的输入文件的菜单,如下图所示。
菜单中各默认选项保持不变,单击 OK 后将创建 AQWA-LINE 计算模块的输入文件即 .aqwa 文件,该文件以 Jobname.aqwa 为名称,存储在当前工作目录下。本文中,创建的文件名称为 AqwaShipExamp.aqwa 。
AWQA 程序能识别的输入数据格式为 .dat 文件,将上述创建的 AqwaShipExamp.aqwa 文件复制并重命名为 AqwaShipExamp.dat 文件即可。
.aqwa 和 .dat 文件均为文本文件,采用任意一文本编辑器均可将其打开,其内记录着将被计算模型的主要信息,如下图所示。其中,在有限元结点信息数据中,比较特殊的一结点标识符号为 0199999 ,此标识符号后的数据表示体系的重心坐标,用户需根据实际情况进行修改,此处,模型的重心设置为长方体的中心即点 (0,0,-2.5) 处。
在 .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 方式定义计算波浪周期据,因为,结构自振周期附近,重点关注的浪频附近,需要适当进行分析步加密计算。
采用 PERD 方式定义的计算波浪周期数据如下图所示,定义数据时必须注意没个数据结束时制位表符的位置。与此同时,将计算的波浪方向由 25 个修改为 5 个。
另外,数据类 07(Data Category 7)可补充定义 Wave Frequency Dependent Parameters and Stiffness Matrix ;数据类 08(Data Category 8)可补充定义 Drift Force Coefficients (二阶力)
至此,计算水动力所需的输入文件 .dat 已准备完毕,其中,AqwaShipExamp.aqwa 是由 ANSYS 自动导出的水动力计算输入文件,其内一些参数由程序自动创建,不一定满足用户实际计算需求,因此需要做适当修改。而 AqwaShipExamp.dat 为用户修改后,真正提交 AQWA 程序计算的输入文件,它是由 AqwaShipExamp.aqwa 文件经修改个别参数而来。
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.
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:
点击 AQWA 软件,按提示选择 .dat 文件,进行模型检查,如下图所示。
若产生如下提示,即 Terminated with Errors ,则表示模型检查未通过,说明输入文件有错误。
关闭上述报错窗口时,将自动弹出详细的报错信息,如下图所示。
按提示信息进行检查,检查的主要方向为:检查数据格式是否正确,尤其是用户修改的数据的制位表符的位置是否正确。经检查,自定义数据行的各结束数据的制位表位置有误(即数据对齐方式不对),正确的数据对齐如下图所示。
另外,根据信息提示:ELEMENTS MUST BE AT LEAST 1.000 * FACET RADIUS APART - ELEMENT 96 VIOLATES THIS CONDITION 等,可知,96号 ~ 100号单元、 196号 ~ 200号单元网格可能存在问题,主要是因为这些单元的形心距离其他单元太近,调整网格即可。这些单元均位于船体的两个宽度方向的侧面上,那么,下一步调整结构沿宽度方向的网格数目,参数 wnumber 由原来的 5 调整为 10 ,并重复上述步骤,在此不再赘述。
经过上述的数据检查和网格的重新划分,运行数据检查后,将得到如下图提示信息,则表示数据检查通过,供水动力计算的输入数据基本准确,下一步可进行提交计算。
以上报错及警告信息均存储在 .mes 文件中,.mes 文件为 ASCII 文件,任意一文本编辑器均可打开该文件。常见的报错及处理方法见:[AQWA小技巧]AQWA的报错信息及解决方案 。
数据检查通过后,打开通过模型检查的 AqwaShipExamp.dat 文件,将参数 RESTART 后的数据 2 修改为 3 后保存,如下图所示。那么此时 AqwaShipExamp.dat 便可进行提交计算。
计算过程中及计算结束时,将显示如下图所示的进度条。
AQWA 将计算结果存储在 .LIS 文件中,.LIS 文件为 ASCII 文件,其内记录着模型定义/分析参数和分析结果。上述计算完成后存储计算结果的文件为 AQWASHIPEXAMP.LIS,打开 AQWASHIPEXAMP.LIS 可看到某些自由的方向上无计算结果,若想 6 个自由度均参与计算,则按下图方式修改 .dat 文件中的参数,将 Job Type Options 由 “OPTIONS REST END” 修改为 “OPTIONS REST NQTF END”,并重新提交计算。
以上,便是 AQWA 软件进行水动力分析的简要介绍。
因篇幅有限,某些非关键功能未做详细介绍,如有疑问,欢迎邮件交流。
Email: liyang@alu.hit.edu.cn 。
谨以此文为我 AQWA 软件的学习做一个阶段性地总结。
与此同时,也希望能够为初学者/有需要的人提供多一点参考。
本文仅用于个人学习,除此之外,无其他任何用途。
因个人水平有限,文中难免有所疏漏,还请各位大神不吝批评指正。
胸藏文墨怀若谷,腹有诗书气自华,希望各位都能在知识的 pāo 子里快乐徜徉。
本文逻辑清楚,内容详实,引例丰富。
欢迎大家点赞、评论及转载,转载请注明出处!
为我打call,不如为我打款!
最后,祝各位攻城狮们,珍爱生命,保护发际线!
[1]. 船舶与海洋工程水动力分析-AQWA软件入门与提高. 高巍.
联系客服