ANSYS命令流教程.docx
《ANSYS命令流教程.docx》由会员分享,可在线阅读,更多相关《ANSYS命令流教程.docx(9页珍藏版)》请在冰豆网上搜索。
ANSYS命令流教程
引用ANSYS入门教程(26)-网格划分高级技术(b)
四、单元有效性检查
不良的单元形状会导致不准确的结果,然而并没有判别单元形状好坏的通用标准,也就是说一种单元形状对一个分析可能导致不准确的结果,但可能对另一种分析的结果又是可接受的。
在计算过程中,ANSYS可能不出现单元形状警告信息,也可能会出现很多个单元形状警告信息,这都不能说明单元形状就一定会导致准确或不准确的结果,因此单元形状的好坏和结果的准确性完全依赖用户的判断和分析。
1.单元形状参数限值设置
命令:
SHPP,Lab,VALUE1,VALUE2
ANSYS单元形状检查是缺省的,但控制单元形状检查的参数可以修改。
⑴Lab=ON:
激活单元形状检查。
VALUE1可取:
ANGD:
SHELL28单元角度检查。
ASPECT:
单元纵横比检查。
如四边形单元警告限值为20,错误限值为1E6;
PARAL:
对边平行度检查。
如无中间节点的四边形该项的警告限值为70°,如超过150°则给出错误信息。
MAXANG:
最大角度检查。
无中间节点的四边形单元该项警告限值为155°,而其错误限值为179.9°;
JACRAT:
雅可比率检查。
简单地说,雅可比率表达了“单元”模拟“实际”的计算可靠性,比率越高越不可靠。
如h单元的警告限值
为30,超过30单元形状就很不理想(与母单元形状相差甚远)。
WARP:
歪曲率检查。
对于四边形面单元、壳单元或体单元的面等,当其严重歪曲时造成不好的单元形状,此值越高表示单元歪曲越严
重。
也可用ALL关闭或激活所有选项。
⑵Lab=WARN:
仅激活警告模式,对超过错误限制的单元只给出警告信息而不致网格划分失败。
而Lab=ON则一旦超过错误限制时将导致网格划分失败。
⑶Lab=OFF:
完全关闭单元形状检查,可通过设置VALUE1的值而关闭个别形状检查。
如VALUE1可取ANGD、ASPECT、PARAL、
MAXANG、JACRAT、WARP及ALL等。
⑷Lab=STATUS:
列表输出当前形状检查限制参数及检查结果情况。
⑸Lab=SUMMARY:
列表输出所选择单元的形状检查结果。
⑹Lab=DEFAULT:
恢复单元形状检查限值的缺省值。
⑺Lab=OBJECT:
是否将单元形状检查结果保存于内存中的控制参数;如VALUE1=1、YES 或ON(缺省)则保存在内存中;如
VALUE1=0、NO 或OFF则不保存在内存中。
⑻Lab=LSTET:
检查雅可比率时选择在积分点还是角点取样控制;如VALUE=1、YES或ON则选择积分点;如VALUE1=0、NO或
OFF(缺省)则选择角点取样。
⑼Lab=MODIFY:
重新设置一个形状参数检查限值,此时VALUE1为修改的形状参数限值的数据位置,而VALUE2则为修改的新限值。
如拟修改纵横比率检查的警告限值,通过SHPP,STATUS列表可以看出,该数据的位置为1,缺省设置为20.0。
可用
SHPP,MODIFY,1,1000将此限值修改为1000。
如拟修改h单元的雅可比率警告限值,通过SHPP,STATUS列表查得该数据的位置为31,其缺省设置为30.0。
可用
SHPP,MODIFY,31,100将此限值修改为100。
使用shpp,defa将恢复系统的缺省限值设置。
⑽Lab=FLAT:
确定显示非零或非常数Z坐标单元的警告和错误限值。
2. 网格检查命令
⑴ 逐个单元数据完整性检查
命令:
CHECK, Sele, Levl
Sele-拟检查的单元。
如Sele为空,检查所有单元数据;
Levl-仅当Sele=ESEL时,其值可取WARN(选择生成警告和错误信息的单元)和ERR(仅检查生成错误信息的单元,这是
缺省选项)。
该命令对每个单元的数据完整性和单元形状进行检查,也是在求解之前自动进行的检查。
如单元材料、实常数、约束及单元形状等,然后在输出窗口列出结果。
⑵ 网格连通性检查
命令:
MCHECK,Lab
其中Lab=ESEL,该选项可不选泽正确的单元,仅选择有问题的单元。
CHECK命令对单个单元进行检查,而MCHECK则根据单元的连接方式检查网格潜在的问题,如单元的交叠等。
其检查内容主要有:
①方向:
当两个面单元共线时,检查每个单元的节点顺序是否与其法线方向一致;
②体:
当两个体单元共面时,检查每个单元的完整体符号是否一致;
③封闭面:
检查形成封闭面的单元外表面,以防网格中出现“裂缝”;
④网格空洞:
当环绕内部空腔的单元面数量很少时,有可能出现遗漏的单元从而形成空洞。
五、网格修改
如果对生成的网格不满意,可用下列方法改变网格:
①重新设置单元尺寸,并划分网格(只有GUI才可);
②清除网格,重新设置单元尺寸,并划分网格;
③细化局部网格;
④改进网格(仅实用于四面体网格)。
1. 清除网格
关键点网格清除命令:
KCLEAR,NP1,NP2,NINC
线网格清除命令:
LCLEAR,NL1,NL2,NINC
面网格清除命令:
ACLEAR,NA1,NA2,NINC
体网格清除命令:
VCLEAR,NV1,NV2,NINC
NX1,NX2,NINC-为图素范围和编号增量,NX1可取ALL或组件名。
该系列命令用于清除既有网格,并可重新对线设置单元网格划分数目或尺寸,然后再重新对几何模型进行网格划分。
2.细化局部网格
节点附近细化命令:
NREFINE,NN1,NN2,NINC,LEVEL,DEPTH,POST,RETAIN
单元附近细化命令:
EREFINE,NE1,NE2,NINC,LEVEL,DEPTH,POST,RETAIN
关键点附近细化命令:
KREFINE,NP1,NP2,NINC,LEVEL,DEPTH,POST,RETAIN
线附近细化命令:
LREFINE,NL1, NL2,NINC,LEVEL,DEPTH,POST,RETAIN
面附近细化命令:
AREFINE,NA1, NA2,NINC,LEVEL,DEPTH,POST,RETAIN
Nx1,Nx2,NINC-图素编号范围与编号增量。
LEVEL-细化等级,其取值范围1(缺省)~5,值越高网格越密。
当LEVEL=1时,则采用单元边长的1/2 进行细化生成新的单元。
DEPTH-从所选图素向外根据单元数设置网格细化的深度,缺省为1。
POST-单元细化时质量处理控制参数。
如POST=SMOOTH,进行光滑处理,且可能会改变节点位置;
如POST=CLEAN(缺省),进行光滑处理,可能会删除存在的单元而重新细分,且节点位置也会改变;
如POST=OFF则不进行任何处理,即节点位置不变也不删除重分。
RETAIN-所有单元都是四边形网格,在细化时,如RETAIN=ON(缺省)则细化网格也为四边形网格,而不管单元质量如何;
如RETAIN=OFF则允许用三角形网格,以保证网格质量。
但对于下列情况则不能细化:
①含有初始条件的节点、耦合节点、约束方程的节点等;
②含有边界条件、荷载的节点或单元;
③六面体单元、楔形单元和金字塔单元不能细化。
3.4 网格划分实例-基本模型的网格划分
1. 圆
圆面的网格划分一般可将圆切分为四等份或八等份,实现映射网格划分。
!
EX3.12 圆的网格划分
finish $/clear $/prep7
et,1,plane82 $r0=10 !
定义单元类型和圆半径参数
cyl4,,,r0 $cyl4,3*r0,,,,r0 !
创建两个圆面A和B,拟分别进行不同的网格划分
wprota,,90 $asbw,all !
将圆面水平切分
wprota,,,90 $asbw,all !
将圆面A竖向切分
wpoff,,,3*r0 $asbw,all !
移动工作平面,将圆面B竖向切分
wpcsys,-1 !
工作平面复位但不改变视图方向
asel,s,loc,x,-r0,r0 !
选择圆面A的所有面
lsla,s !
选择与圆面A相关的所有线
lesize,all,,,8 !
对上述线设置网格划分个数为8(三条边时相等且为偶数)
mshape,0,2d $mshkey,1 !
设置四边形单元、映射网格划分
amesh,all !
圆面A划分网格
asel,s,loc,x,2*r0,4*r0 !
选择圆面B的所有面
lsla,s !
选择与圆面B相关的所有线
lesize,all,,,8 !
对上述线设置网格划分个数为8
lsel,r,length,,r0 !
选择上述线中长度为半径的线
lesize,all,,,8,0.1,1 !
设置这些线的网格划分数和间隔比
amesh,all $allsel !
圆面B划分网格
2. 圆环
圆环面的网格划分与圆面类似,但因由4条边组成,可更加方便地对网格进行控制。
下面取1/4圆环面进行单元划分。
!
EX3.13 圆环的网格划分
finish $/clear $/prep7
et,1,plane82 $r0=10 !
定义单元类型和圆半径参数
cyl4,,,r0/3,,r0,90 $cyl4,2*r0,,r0/10,,r0,90 !
创建两个1/4环面
asel,s,loc,x,-r0,r0 !
选择环面A
lsla,s$lesize,all,,,8 !
选择环面A的所有线,定义网分数
lsel,r,length,,r0*2/3 $lesize,all,,,3,,1 !
选择径向线,网分数修改为3
mshape,0,2d $mshkey,1 $amesh,all !
定义单元形状、划分类型、划分单元
ALLSEL $asel,s,loc,x,2*r0,4*r0 !
选择环面B
lesize,5,,,12 $lesize,7,,,6 !
定义外周线和内周线网分数分别为12和6
lsel,s,length,,r0*9/10 $lesize,all,,,7 !
选择径向线,网分数为7
amesh,all !
划分环面B的单元网格
3. 圆柱
柱体的网格划分方法与圆面类似,空心柱体的网格划分方法同环面类似,而柱面则可直接划分网格。
例如:
!
EX3.14 圆柱面和圆柱体的网格划分
!
圆柱面的网格划分
finish $/clear $/prep7
r0=10 $h0=50 $et,1,shell63 !
定义参数和单元类型
cyl4,,,r0 $adele,1 $cm,l1cm,line !
创建面,删除面保留线,定义组件Licm
k,50 $k,51,,,h0 $l,50,51 $adrag,l1cm,,,,,,5 !
创建拖拉路径并拖拉线创建柱面(L1cm- 组件名)
lsel,s,loc,z,0 $lesize,all,,,6 !
每条圆周线网格划分数为6
lsel,s,length,,h0 $lesize,all,,,8 !
每条柱面侧线网格划分数为8
mshape,0,2d $mshkey,1 $amesh,all !
定义单元形状、网格划分类型、划分网格
!
圆柱体
finish $/clear $/prep7
r0=10 $h0=50 $et,1,solid95 !
定义参数和单元类型
cyl4,,,r0,,,,h0 !
创建圆柱体
wprota,,90 $vsbw,all !
切分圆柱体
wprota,,,90 $vsbw,all !
再切分圆柱体
mshape,0,3d $mshkey,1 !
定义单元形状、网格划分类型
lsel,s,loc,z,0 $lesize,all,,,6 !
每条圆周线网格划分数为6
lsel,s,length,,h0 $lesize,all,,,8 !
每条柱面侧线网格划分数为8
vmesh,all
4. 圆锥和圆台
圆锥体的网格划分应以1/4圆锥进行,然后利用对称命令创建其余体和网格。
示例:
!
EX3.15 圆锥的网格划分
!
扫掠网格划分
finish $/clear $/prep7
cone,10,,,15,,90 !
创建1/4锥体。
如为整锥切分有困难。
et,1,200,7 $et,2,95 !
定义MESH200和SOLID95单元类型
lsel,s,,,5,6 $lesize,all,,,12,0.5 !
定义网格划分数
lsel,all$lesize,3,,,6 !
定义扫掠路径网格数
mshape,0,2d $mshkey,1$amesh,3 !
划分源面网格
vsweep,1,3,4 !
扫掠体1,属于0半径扫掠
vsymm,x,all $vsymm,y,all !
对称创建其余部分体和网格
vglue,all
!
六面体映射网格划分
finish $/clear $/prep7
cone,10,,,15,,90 $et,2,95 !
创建1/4锥体,定义单元类型
lesize,all,,,8 !
定义网格划分数
mshape,0,3d $mshkey,1 !
定义单元形状、网格划分类型
vmesh,all !
划分网格
vsymm,x,all $vsymm,y,all !
对称创建其余部分体和网格
vglue,all
5. 多边形面和棱柱体
多边形面和棱柱体的网格划分与底面或顶面的边数相关,当不满足映射网格划分的条件时可连接面或切分面或体,一般可根据快捷或习惯做法确定使用何种方法。
多边形面的网格划分可按偶数边和奇数边分别考虑,当为偶数边时可将整个面按两边对应一个扇面切分,而当为奇数边时可切分为三边的扇面。
当然也可采用其它切分方法,只要满足网格划分条件即可。
示例:
!
EX3.16正多边形面的通用网格划分
finish $/clear $/prep7
ns=10 !
多边形边数参数,可输入大于4的任意整数
et,1,plane82 $rpr4,ns,,,10 !
定义单元类型,创建正多边形
kp0=100+ns $k,kp0 !
在正多边形中心创建一关键点kp0
*if,mod(ns,2),eq,0,then !
如果为偶数边时
*do,i,1,ns/2 $l,kp0,2*i-1 $*enddo !
连接kp0和每两条边的一个关键点
*else !
如果为奇数边时
*do,i,1,ns $l,kp0,i $*enddo !
连接kp0和每条边的一个关键点
*endif !
结束IF语句
lsel,s,,,ns+1,2*ns !
选择上述连线
cm,l1cm,line $allsel !
定义为组件l1cm
asbl,1,l1cm