FLUENT中被动型动网格问题求解方案6DOFdoc.docx
《FLUENT中被动型动网格问题求解方案6DOFdoc.docx》由会员分享,可在线阅读,更多相关《FLUENT中被动型动网格问题求解方案6DOFdoc.docx(13页珍藏版)》请在冰豆网上搜索。
![FLUENT中被动型动网格问题求解方案6DOFdoc.docx](https://file1.bdocx.com/fileroot1/2023-1/9/310bcb1a-1ef8-4656-aff1-dd6a4b6048f2/310bcb1a-1ef8-4656-aff1-dd6a4b6048f21.gif)
FLUENT中被动型动网格问题求解方案6DOFdoc
精品
CAE联盟论坛精品讲座系列
FLUENT中被动型动网格问题求解方案:
6DOF
主讲人:
流沙CAE联盟论坛—总版主
利用CFD软件解决动网格问题,通常可分为以下两类:
(1)主动型动网格
主动型动网格问题通常指的是边界运动规律及运动状态已知,通常可由软件使用者通过函数
或程序进行描述。
在程序计算过程中,求解器调用边界运动轨迹描述程序实现边界运动。
这
类动网格例子很多,如各类泵、风扇等。
(2)被动型动网格
还有一类动网格问题,其边界运动规律往往是未知的,常常需要通过计算边界上的力或力矩,
以此来求取边界的运动。
在这类动网格计算设置中,网格变化规律难以预料,导致网格参数
经常需要进行多次调整才能达到目的。
这类例子在现实中其实也很多,比如风力发电机的叶
轮、水轮机等。
解决主动型动网格问题比较容易,利用CFD软件提供的动网格模拟能力很容易解决。
需要
关注的地方是边界运动后,网格节点如何重新布置和生成。
如在FLUENT软件中,其动网
格主要包括三种网格功能:
弹簧光顺、动态层及网格重构。
利用网格重构功能几乎可以解决
所有主动型动网格问题。
-可编辑-
精品
那被动型动网格问题怎么处理呢?
一般来说,这类边界的运动都是由于内部流体对其压力所
造成的,那么就涉及到力和力矩计算的问题。
对于这类问题,在FLUENT软件中可以采用
6DOF模型进行计算。
需要注意的是,以上所有类型动网格计算均建立在边界为刚性的情况下。
即不会计算由于流
动产生的力的作用导致的边界变形。
若要计算边界变形,则需要采用流固耦合方法,利用固
体求解器计算。
被动型动网格中的力和力矩均是压力对面的积分计算而来。
1、6DOFUDF宏
在FLUENT中利用6DOF是需要定义UDF宏的。
该宏的定义形式如下:
DEFINE_SDOF_PROPERTIES(name,properties,dt,time,dtime)
函数中:
Name:
宏名称
Real*properties:
存储6DOF属性的数组
Dynamic_Thread*dt:
存储制定的动网格属性
Realtime:
当前时间
Realdtime:
时间步长
该UDF宏没有返回值。
用户需要定义的变变量为name、properties、dt、dtime。
在利用该UDF宏的过程中,需要注意的是properties数组,其包含多种属性:
-可编辑-
精品
SDOF_MASS//质量,定义方式如properties[SDOF_MASS]=7.0定义质量7kg
SDOF_IXX,SDOF_IYY,SOF_IZZ,//X、Y、Z方向惯性矩
SDOF_IXY,SDOF_IXZ,SDOF_IYZ,//惯性积
SDOF_LOAD_LOCAL,//布尔值,FALSE为全局坐标系,TRUE为体坐标系(局部坐标系),
默认为FALSE
SDOF_LOAD_F_X,SDOF_LOAD_F_Y,SDOF_LOAD_F_Z,//X,Y,Z方向外力
SDOF_LOAD_M_X,SDOF_LOAD_M_Y,SDOF_LOAD_M_Z,//分别为X,Y,Z方向外
力矩
SDOF_ZERO_TRANS_X,SDOF_ZERO_TRANS_Y,SDOF_ZERO_TRANS_Z,//布尔值,
TRUE表示该方向位移为0,默认为FALSE
SDOF_ZERO_ROT_X,SDOF_ZERO_ROT_Y,SDOF_ZERO_ROT_Z,//布尔值,TRUE表
示该方向旋转自由度为0,默认值为FALSE
SDOF_SYMMETRY_X,SDOF_SYMMETRY_Y,SDOF_SYMMETRY_Z,//指定半模型的对
称轴法向向量。
在半模型运动时使用。
上面的变换变量可以应付绝大多数问题,然而在FLUENT中,用户还可以自定义变换变量,
这也是通过6DOF属性变量实现,这些变量包括:
SDOF_CUSTOM_TRANS,//布尔值,TRUE表示使用自定义变换变量,FALUSE表示不使
用
-可编辑-
精品
SDOF_CTRANS_11,SDOF_CTRANS_12,SDOF_CTRANS_13,SDOF_CTRANS_21,
SDOF_CTRANS_22,SDOF_CTRANS_23,SDOF_CTRANS_31,SDOF_CTRANS_32,
SDOF_CTRANS_33,//坐标旋转变量
SDOF_DTRANS_11
,SDOF_DTRANS_12
,SDOF_DTRANS_13
,SDOF_DTRANS_21
,
SDOF_DTRANS_22
,SDOF_DTRANS_23
,SDOF_DTRANS_31
,SDOF_DTRANS_32
,
SDOF_DTRANS_33
,//衍生旋转矩阵
这些旋转矩阵在实际使用中应用较少。
下面是一个简单的SDOF实例:
#include“udf.h”
DEFINE_SDOF_PROPERTIES(stage,prop,time,dtime)
{
prop[SDOF_MASS]=800.0;
prop[SDOF_IXX]=200;
Prop[SDOF_IYY]=100;
-可编辑-
精品
Prop[SDOF_IZZ]=100;
}
上面的UDF定义了一个名为stage的SDOF宏,且质量800kg,X方向转动惯量为
200,
Y方向转动惯量100,Z方向转动惯量100
2、刚体参数的获取
应用6DOF无可避免的会碰到刚体属性值的获取问题。
对于简单的几何体,应用力学公式
可以很方便的计算出诸如质量、转动惯量等。
但是对于复杂的几何模型,要想通过数学公式
计算出这些物理量几乎是不可能的。
其实,几乎所有的CAD建模软件中均具有这些物理量的计算能力,不过要注意区分计算的
是全局坐标系还是局部坐标系。
下面将以实例来描述如何应用6DOF模型求解被动型动网格问题。
6DOF实例:
设置过程
对于被动型动网格计算问题,可以采用6DOF动网格模型解决。
利用该模型时,需要确定
计算模型中运动部件的质量、三方向转动惯量及惯性矩、重心坐标。
因此在几何模型创建过
程中,尽量使这些值容易获取(比如将重心位置放置在坐标原点),当然这不是必须的,在
CAD建模软件中都包含了这些物理量的查询。
-可编辑-
精品
如图1所示的几何体,在受到图中流动方向的流体作用下,若轴向旋转自由度未被约束,
则会产生旋转位移。
本次实例几何如图1所示。
在建立流体计算域之前,需要利用CAD软件获取几何的特征物理量,我们这里使用
Solidworks实现此功能。
1、获取几何属性
利用solidworks载入几何体,进入【评估】>【质量属性】,选择几何体进行计算,如图
2所示。
-可编辑-
精品
图2质量属性
在计算几何质量属性对话框中,可以点击【选项】按钮,设置材料参数,如图3所示。
-可编辑-
精品
从图2可以看出,该几何体的重心(0,0,25.19),Z方向惯性矩IZZ=324047.793g*mm^2,
由于我们的几何体约束了X,Y,Z三方向移动自由度,X,Y方向的旋转自由度,因此只需要
Z方向的惯性矩。
需要注意的是,这里的单位是mm,而UDF中必须全部为国际单位制,
需要做单位转换。
2、计算域模型
在workbench中的DM中创建计算域模型。
主要是利用DM中方便的布尔运算功能。
建
立的计算域如图4所示。
-可编辑-
精品
为计算域边界命名,分别命名内部区域面、入口面、出口面、圆柱面边界为:
WallRotation、
VelocityInlet、Outlet、wallCylinder。
计算域建立完毕后即进行网格的划分,这里不详细描述。
3、UDF宏的编写
利用文本编辑器编写UDF宏文件。
如下:
#include"udf.h"
DEFINE_SDOF_PROPERTIES(rotate,prop,dt,time,dtime)
{
prop[SDOF_MASS]=845.154E-3;/*质量*/
prop[SDOF_IXX]=336179E-9;/*x方向惯性矩*/
prop[SDOF_IYY]=336179E-9;/*y方向惯性矩*/
-可编辑-
精品
prop[SDOF_IZZ]=324047.793E-9;/*z方向惯性矩*/
prop[SDOF_ZERO_TRANS_X]=TRUE;/*限制x方向位移*/
prop[SDOF_ZERO_TRANS_Y]=TRUE;/*限制y方向位移*/
prop[SDOF_ZERO_TRANS_Z]=TRUE;/*限制z方向位移*/
prop[SDOF_ZERO_ROT_X]=TRUE;/*限制x方向旋转*/
prop[SDOF_ZERO_ROT_Y]=TRUE;/*限制y方向旋转*/
printf("\nstage:
updated6dofproperties");
}
4、进入FLUENT中设置
在FLUENT中主要包括动网格参数的设置。
-可编辑-
精品
其他设置:
瞬态计算、标准K-E湍流模型、标准壁面函数、工作介质为water、入口5m/s,
出口静压为0。
动网格设置:
(1)、激活sixDOF
如图5所示,进入DynamicMesh面板,激活DynamicMesh,勾选Remeshing选项及
SixDOF项。
(2)、动网格参数设置
进入meshmethods下的settings按钮,进入动网格参数设置。
图6、图7分别为
smoothing与Remeshing的设置。
-可编辑-
精品
-可编辑-
精品
6DOF中的settings设置对话框如图8所示,这里我们不考虑重力影响,设置三方向重力
加速度为0。
同时勾选writemotionhistory项,记录保存运动中几何姿态。
-可编辑-
精品
(3)、编译加载UDF宏
利用菜单【Define】>【userdefined】>【function】>【Complied】编译宏。
-可编辑-
精品
(4)、设置动网格区域
动网格设置面板中,点击【Create/Edit】按钮定义动网格区域。
需要设置的区域10如图
所示的红色框选部分。
图10运动区域设置
同时注意设置meshingOptions标签页下的网格高度。
5、需要注意的问题
-可编辑-
精品
3D动网格问题,首先要注意的是负体积问题。
前面说过,由于运动状态由受力状态控制,
在计算之前是未知的,所有调整动网格参数比较困难。
不过仔细耐心的修正还是可以解决的。
其次,关于这类被动运动问题,一些模型较为简单的几何体,实际上是可以化被动为主动,
只是计算壁面受力,运动状态通过受力状态用UDF确定。
比如此例,我们可以在计算过程
中通过宏计算出每次迭代加载在重心上的力和力矩,然后通过力学公式确定几何体的运动状
态。
这样被动运动问题就变为人为定义运动状态的主动动网格问题。
这次几何有点复杂,计算时间比较长,不过主要用于演示6DOF模型的定义。
-可编辑-