声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3087|回复: 4

[综合讨论] 死活单元

[复制链接]
发表于 2005-12-23 11:20 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
<P>死活单元就是一种手段而已,没有什么参考书。主要用在单元缺失的场合下, <BR>比方说凝固溶解过场,断裂过程等。 <BR>由于有单元缺失,所以原始几何形状和网格会遭到破坏。 <BR>而这些问题多是非线性问题,需要跌代求解。 <BR>为了免除一遍又一遍的改变网格,几何。就引入了死活单元的概念。 <BR>保持网格,几何不变,在某些时间点让部分单元失效,达到以上目的。 <BR>ansys中的实现机制是这样:当某单元需要失效时,让该单元的弹性摸量置为一个 <BR>很小的值:1e-10?你还可以自己定义这个量,这样这个单元在求解中将不起什么作用。 <BR>至于其他软件的思路吗,看对应的理论手册去 </P>

<P><BR>何为单元的生和死? <BR>如果模型中加入(或删除)材料,模型中相应的单元就“存在”(或消亡)。单元生死选项就用于在这种情况下杀死或重新激活选择的单元。(可用的单元类型在表6-1中列出。)本选项主要用于钻孔(如开矿和挖通道等),建筑物施工过程(如桥的建筑过程),顺序组装(如分层的计算机芯片组装)和另外一些用户可以根据单元位置来方便的激活和不激活它们的一些应用中。单元生死功能只适用于ANSYS/Multiphysics,ANSYS/Mechanical和ANSYS/Structural产品。 <BR>Table 6-1 Elements with birth and death capability <BR>LINK1   SURF19   SHELL41   SOLID64   PLANE83   SHELL143 <BR>PLANE2   PIPE20   PLANE42   SOLID65   SOLID87   SURF151 <BR>BEAM3   MASS21   SHELL43   PLANE67   SOLID90   SURF152 <BR>BEAM4   SURF22   BEAM44   LINK68   SOLID92   SURF153 <BR>SOLID5   BEAM23   SOLID45   SOLID69   SHELL93   SURF154 <BR>LINK8   BEAM24   PLANE53   SOLID70   SOLID95   SHELL157 <BR>LINK10   PLANE25   BEAM54   MASS71   SOLID96   TARGE169 <BR>LINK11   MATRIX27   PLANE55   SOLID72   SOLID97   TARGE170 <BR>PLANE13   LINK31   SHELL57   SOLID73   SOLID98   CONTA171 <BR>COMBIN14   LINK32   PIPE59   PLANE75   SHELL99   CONTA172 <BR>PIPE16   LINK33   PIPE60   PLANE77   PLANE121   CONTA173 <BR>PIPE17   LINK34   SOLID62   PLANE78   SOLID122   CONTA174 <BR>PIPE18   PLANE35   SHELL63   PLANE82   SOLID123    <BR>在一些情况下,单元的生死状态可以根据ANSYS的计算数值决定,如温度,应力,应变等。可以用ETABLE命令(Main Menu&gt;General Postproc&gt;Element Table&gt;Define Table)和ESEL命令(Utility Menu&gt;Select&gt;Entities)来确定选择的单元的相关数据,也可以改变单元的状态(溶和,固结,俘获等)。本过程对于由相变引起的模型效应(如焊接过程中原不生效的熔融材料变为生效的模型体的一部分),失效扩展和另外一些分析过程中的单元变化是有效的。 </P>
<P>单元生死是如何工作的? <BR>要激活“单元死”的效果,ANSYS程序并不是将“杀死”的单元从模型中删除,而是将其刚度(或传导,或其他分析特性)矩阵乘以一个很小的因子[ESTIF]。因子缺省值为1.0E-6,可以赋为其他数值(详见“施加载荷并求解”一章)。死单元的单元载荷将为0,从而不对载荷向量生效(但仍然在单元载荷的列表中出现)。同样,死单元的质量,阻尼,比热和其他类似效果也设为0值。 死单元的质量和能量将不包括在模型求解结果中。单元的应变在“杀死”的同时也将设为0。 <BR>与上面的过程相似,如果单元“出生”,并不是将其加到模型中,而是重新激活它们。用户必须在PREP7 中生成所有单元,包括后面要被激活的单元。在求解器中不能生成新的单元。要“加入”一个单元,先杀死它,然后在合适的载荷步中重新激活它。 <BR>当一个单元被重新激活时,其刚度,质量,单元载荷等将恢复其原始的数值。重新激活的单元没有应变记录(也无热量存储等)。但是,初应变以实参形式输入(如LINK1 单元)的不为单元生死选项所影响。而且,除非是打开了大变形选项[NLGEOM,ON],一些单元类型将以它们以前的几何特性恢复(大变形效果有时用来得到合理的结果)。单元在被激活后第一个求解过程中同样可以有热应变(等于a*(T-TREF)),如果其承受热量体载荷。 </P>
回复
分享到:

使用道具 举报

 楼主| 发表于 2005-12-23 11:21 | 显示全部楼层

回复:(panwang)死活单元

<P>如何使用单元生死特性 <BR>可以在大多数静态和非线性瞬态分析中使用单元生死,其基本过程与相应的分析过程是一致的。对于其他分析来说,这一过程主要包括以下三步: <BR>?  建模 <BR>?  施加载荷并求解 <BR>?  查看结果 <BR>修改基本分析步骤如下以包括单元生死特征: </P>
<P>建模: <BR>在PREP7 中,生成所有单元,包括那些只有在以后载荷步中才激活的单元。在PREP7外不能生成新的单元。 </P>
<P>施加载荷并求解: <BR>在SOLUTION中完成以下操作: <BR>?  定义第一个载荷步: <BR>在第一个载荷步中,用户必须选择分析类型和所有的分析选项。用下列方法指定分析类型: <BR>Command: ANTYPE <BR>GUI: Main Menu&gt;Solution&gt;-Analysis Type-New Analysis <BR>在结构分析中,大变形效果应打开。用下列命令设置该选项: <BR>Command: NLGEOM,ON <BR>GUI: Main Menu&gt;Solution&gt;Analysis Options <BR>对于所有单元生死应用,在第一个载荷步中应设置牛顿-拉夫森选项,因为程序不能预知EKILL命令出现在后面的载荷步中。用下列命令完成该操作: <BR>Command: NROPT <BR>GUI: Main Menu&gt;Solution&gt;Analysis Options <BR>杀死[EKILL] 所有要加入到后续载荷步中的单元,用下列命令: <BR>Command: EKILL <BR>GUI: Main Menu&gt;Solution&gt;-Load Step Opts-Other&gt;Kill Elements <BR>单元在载荷步的第一个子步被杀死(或激活),然后在整个载荷步中保持该状态。要注意保证使用缺省的矩阵缩减因子不会引起一些问题。有些情况下要考虑用严格的缩减因子。用下列方法指定缩减因子数值: <BR>Command: ESTIF <BR>GUI: Main Menu&gt;Solution&gt;Other&gt;StiffnessMult <BR>不与任何激活的单元相连的结点将“漂移”,或具有浮动的自由度数值。在一些情况下,用户可能想约束不被激活的自由度[D,CP等]以减少要求解的方程的数目,并防止出现位置错误。约束非激活自由度,在重新激活的单元要有特定的(或温度等)时很有影响,因为在重新激活单元时要删除这些人为的约束。同时要删除非激活自由度的结点载荷(也就是不与任意激活的单元相连的结点)。同样,用户必须在重新激活在自由度上施加新的结点载荷。 <BR>下面是第一个载荷步中命令输入示例: <BR>!第一个载荷步 <BR>TIME,... !设定时间值(静力分析选项) <BR>NLGEOM,ON !打开大位移效果 <BR>NROPT,FULL !设定牛顿-拉夫森选项 <BR>ESTIF,... !设定非缺省缩减因子(可选) <BR>ESEL,... !选择在本载荷步中将不激活的单元 <BR>EKILL,... !不激活选择的单元 <BR>ESEL,S,LIVE !选择所有活动单元 <BR>NSLE,S !选择所有活动结点 <BR>NSEL,INVE !选择所有非活动结点(不与活动单 <BR>                                 元相连的结点) <BR>D,ALL,ALL,0 !约束所有不活动的结点自由度(可 <BR>                                 选) <BR>NSEL,ALL !选择所有结点 <BR>ESEL,ALL !选择所有单元 <BR>D,... !施加合适的约束 <BR>F,... !施加合适的活动结点自由度载荷 <BR>SF,... !施加合适的单元载荷 <BR>BF,... !施加合适的体载荷 <BR>SAVE <BR>SOLVE <BR>请参阅TIME,NLGEOM,NROPT,ESTIF,ESEL,EKILL,NSLE,NSEL,D,F,SF和BF命令得到更详细的解释。 <BR>?  后继载荷步 <BR>在后继载荷步中,用户可以随意杀死或重新激活单元。象上面提到的,要正确的施加和删除约束和结点载荷。 <BR>用下列命令杀死单元: <BR>Command:EKILL <BR>GUI: Main Menu&gt;Solution&gt;-Load Step Opts-Other&gt;Kill Elements <BR>用下列命令重新激活单元: <BR>Command: EALIVE <BR>GUI: Main Menu&gt;Solution&gt;-Load Step Opts-Other&gt;Activate Elem <BR>!第二个(或后继)载荷步: <BR>TIME,... <BR>ESEL,... <BR>EKILL,... !杀死选择的单元 <BR>ESEL,... <BR>EALIVE,... !重新激活选择的单元 <BR>... <BR>FDELE,... !删除不活动自由度的结点载荷 <BR>D,... !约束不活动自由度 <BR>... <BR>F,... !在活动自由度上施加合适的结点载荷 <BR>DDELE,... !删除重新激活的自由度上的约束 <BR>SAVE <BR>SOLVE <BR>请参阅TIME,ESEL,EKILL,EALIVE,FDELE,D,F和DDELE命令得到更详细的解释。 </P>
<P>查看结果 <BR>对于大多数部分来说,用户在对包含不激活或重新激活的单元操作时应按照标准的过程来做。但是必须清楚的是,“杀死”的单元仍在模型中,尽管对刚度(传导)矩阵的贡献可以忽略。因此,它们将包括在单元显示,输出列表等操作中。例如,不激活的单元在结点结果平均(PLNSOL命令或Main Menu&gt;General Postproc&gt;Plot Results&gt;Nodal Solu)时将“污染”结果。整个不激活单元的输出应当被忽略,因为很多项带来的效果都很小。建议在单元显示和其他后处理操作前用选择功能将不激活的单元选出选择集。 </P>
<P>使用ANSYS结果控制单元生死 <BR>在许多时候,用户并不清楚的知道杀死和重新激活单元的确切位置。例如,用户要在热分析中“杀死”熔融的单元(在模型中移去溶化的材料),事先不会知道这些单元的位置;用户必须根据ANSYS计算出的温度确定这些单元。当决定杀死或重新激活单元依靠ANSYS计算结果时(如温度,应力,应变等),用户可以使用命令识别并选择关键单元。 <BR>用下列方法识别关键单元: <BR>Command: ETABLE <BR>GUI: Main Menu&gt;General Postproc&gt;Element Table&gt;Define Table <BR>用下列方法选择关键单元: <BR>Command:ESEL <BR>GUI: Utility Menu&gt;Select&gt;Entities <BR>然后用户可以杀死或重新激活选择的单元。(也可以用ANSYS APDL语言编写宏以完成这些操作。) <BR>用下列方法杀死选择的单元: <BR>Command:EKILL,ALL <BR>GUI: Main Menu&gt;Solution&gt;-Load Step Opts-Other&gt;Kill Elements <BR>用下列方法重新激活选择的单元: <BR>Command:EALIVE,ALL <BR>GUI: Main Menu&gt;Solution&gt;-Load Step Opts-Other&gt;Activate Elem <BR>下面的例子是杀死总应变超过许用值的单元: <BR>/SOLU !进入求解器 <BR>... <BR>... !标准的求解过程 <BR>SOLVE <BR>FINISH <BR>! <BR>/POST1 !进入POST1 <BR>SET,... <BR>ETABLE,STRAIN,EPTO,EQV !将总应变存入ETABLE <BR>ESEL,S,ETAB,STRAIN,0.20 !选择所有总应变大于或等于0.20的单元 <BR>FINISH <BR>! <BR>/SOLU !重新进入求解器 <BR>ANTYPE,,REST <BR>EKILL,ALL !杀死选择(超过允许值)的单元 <BR>ESEL,ALL !读入所有单元 <BR>... <BR>... !继续求解 <BR>请参阅ETABLE,ESEL,ANTYPE和EKILL命令得到更详细的解释。 </P>
<P>进一步的说明 <BR>不活动的自由度上不能施加约束方程[CE,CEINTF等]。(不活动的自由度当结点不与活动的单元相连时出现)。 <BR>可以通过先杀死然后重新激活单元的方法做应力松弛(如退火)操作。 <BR>在非线性分析中,注意不要因为杀死或重新激活单元引起奇异性(如结构分析中的尖角)或刚度突变。这将使得收敛困难。 <BR>在有单元生死的分析中打开FULL 牛顿-拉夫森方法的适应下降选项将得到好的结果。用下列方法: <BR>Command: NROPT,FULL,,ON <BR>GUI: Main Menu&gt;Solution&gt;Analysis Options <BR>可以通过一个参数值来指示单元生死状态[*GET,Par,ELEM,n,ATTR,LIVE] <BR>(Utility Menu&gt;Parameters&gt;Get Scalar Data)。该参数可以用于APDL逻辑分支(*IF等),或其他要控制单元生死的应用场合中。 <BR>用户可能想通过改变材料特性来杀死或重新激活单元[MPCHG](Main Menu&gt;Preprocessor&gt;Material Props&gt;Change Mat Num)。但是,在这个过程中要特别小心。软件保护系统和限制使得“杀死”的单元在求解器中改变材料特性时将不生效。(单元集中载荷不能自动删除;应变,质量,比热等也不能删除。)不当的使用MPCHG命令将带来许多问题。例如,如果将单元的刚度缩减到近于0,而保留其质量,在有加速度和惯性载荷的问题中将产生奇异性。 <BR>一个MPCHG的应用是在建立模型时涉及“出生”单元的应变历程的情况下。使用MPCHG可以得到单元在变形的结点构造中的初始应变。 <BR>在单元生死中不能用多载荷步求解[LSWRITE],因为不激活或重新激活的单元状态将不写入载荷步文件中。有多个载荷步的生死单元分析应该用一系列的SOLVE命令(Main Menu&gt;Solution&gt;Current LS)来做。 </P>
<P>单元生死应用实例(命令行格式) </P>
<P>问题描述 <BR>    等截面杆两端固定,承受均匀的温度载荷时将其中间1/3段移去。过程是将其应变自由化并移去均匀温度。分析其热应力和应变情况。材料特性和几何模型参数见下图。 </P>
<P>  /PREP7 <BR>  /TITLE, ELEMENT BIRTH/DEATH IN A FIXED BAR WITH THERMAL LOADING <BR>  ET,1,LINK1 !二维杆单元 <BR>  MP,EX,1,30E6 !材料特性 <BR>  MP,ALPX,1,.00005 <BR>  MP,EX,2,30E6 <BR>  MP,ALPX,2,.00005 !重新‘出生’单元的特性 <BR>  MP,REFT,2,100 !单元出生的参考温度 <BR>  R,1,1.0 <BR>  N,1 <BR>  N,4,10 <BR>  FILL <BR>  E,1,2 <BR>  EGEN,3,1,-1 !生成三个单元 <BR>  FINISH <BR>   <BR>  /SOLU <BR>  ANTYPE,STATIC <BR>  D,1,ALL,,,4,3 !固定杆的两端 <BR>  TREF,0 !参考温度0度 <BR>  TUNIF,100 !均匀温度载荷 <BR>  NROPT,FULL <BR>  OUTPR,BASIC,ALL <BR>  SOLVE <BR>  EKILL,2 !‘杀死’中间的单元 <BR>  SOLVE <BR>  EALIVE,2 !重新激活中间单元 <BR>  MPCHG,2,2 !将材料特性改为2以生成自由应变单元 <BR>  SOLVE <BR>  TUNIF,0 !删除温度载荷 <BR>  SOLVE </P>
发表于 2009-1-9 11:12 | 显示全部楼层

回复 沙发 panwang 的帖子

楼主讲的很详细啊!感谢分享 呵呵:lol
另外想请教楼主个关于ekill命令的问题:
我在运用ekill命令时出的错,但是不知道错在哪里?
命令流如下:
time,1
nlgeom,on
nropt,full
nsel,s,loc,x,1
nsel,r,loc,y,6,9        !选择和需要杀死单元相邻的节点
esln,s              !选择与当前激活节点相邻单元(待杀死的单元)
ekill,s               !杀死选中的单元
执行时,系统提示warning:Element 0 is not defined or seleceted.The ekill command is ignored.
单元杀死操作没有进行(根据计算结果推断出来此处的单元杀死操作没有进行)
请问,这是什么原因。ansys中单元编号都默认的是从1开始的,怎么可能存在个0号单元。而且从理论上来说ekill命令也没必要非要从0号单元开始杀死,应该是选中哪些单元就杀死哪些单元呀!
另外:单元杀死操作后,杀死的单元并不从模型上消失。那么我们怎么样才知道这部分单元到底成功杀死了没?怎么查看单元的生死状态?
发表于 2012-5-30 14:35 | 显示全部楼层
看不懂,真心的看不懂。
发表于 2012-6-9 16:40 | 显示全部楼层
这是什么啊。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-15 11:51 , Processed in 0.052838 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表