lsdyna常见问题汇总

LYDYNA能量平衡

GLSTAT(参见*database_glstat)文件中报告的总能量是下面几种能量的和:

内能internal energy

动能kinetic energy

接触(滑移)能contact(sliding) energy

沙漏能houglass energy

系统阻尼能system damping energy

刚性墙能量rigidwall energy

GLSTAT 中报告的弹簧阻尼能”Spring and damper energy”是离散单元(discrete elements)、安全带单元

(seatbelt elements)内能及和铰链刚度相关的内能(*constrained_joint_stiffness…)之和。而内能”Internal

Energy”包含弹簧阻尼能”Spring and damper energy”和所有其它单元的内能。因此弹簧阻尼能”Spring and

damper energy”是内能”Internal energy”的子集。

由SMP 5434a 版输出到glstat 文件中的铰链内能”joint internal energy”跟

*constrained_joing_stiffness 不相

关。它似乎与*constrained_joint_revolute(_spherical,etc)的罚值刚度相关连。这是SMP 5434a 之前版本都存在的

缺失的能量项,对MPP 5434a 也一样。这种现象在用拉格朗日乘子(Lagrange Multiplier)方程时不会出现。

与*constrained_joint_stiffness 相关的能量出现在jntforc 文件中,也包含在glstat 文件中的弹簧和阻尼能和

内能中。回想弹簧阻尼能”spring and damper energy”,不管是从铰链刚度还是从离散单元而来,总是包含在内

能里面。

在MATSUM 文件中能量值是按一个part 一个part 的输出的(参见*database_matsum)。

沙漏能Hourglass energy 仅当在卡片*control_energy 中设置HGEN 项为2 时才计算和输出。同样,刚性墙

能和阻尼能仅当上面的卡片中RWEN 和RYLEN 分别设置为2 时才会计算和输出。刚性阻尼能集中到内能里

面。质量阻尼能以单独的行”system damping energy”出现。由于壳的体积粘性(bulk viscosity)而产生的能量耗散

(energy dissipated)在版本970.4748 之前是不计算的。在后续子版本中,设置TYPE=-2 来在能量平衡中包含它。

最理想的情况下能量平衡:

总能量total energy =初始总能量+外力功external work

换句话说,如果能量比率energy ratio(指的是glstat 中的total energy/initial energy,实际上是total

energy/(initial energy + external work)) 等于1.0。注意,质量缩放而增加质量可能会导致能量比率增加。

注意在LSprepost 的History>Global energies 中不包含删掉的单元(eroded elements)的能量贡献,然而

GLSTAT 文件中的能量包含了它们。注意它们的贡献可以通过ASCII>glstat 中的”Eroded Kinetic Energy”&

“Eroded Internal Energy”来绘制。侵蚀能量(Eroded energy)是与删掉的单元相关的内能和删掉的节点相关的动

能。典型来说,如果没有单元删掉”energy ratio w/o eroded energy”等于1,如果有单元被删掉则小于1。删掉

的单元与”total energy/initial energy”比率没有关系。总能量比率增加要归于其它原因,比如增加质量。重述一

下,将一个单元删掉时,文件glstat 中的内能和动能不会反映能量的丢失。取而代之的是能量的丢失记录在

glstat 文件的”eroded internal energy” & “eroded kinetic energy”中。如果用内能减去”eroded internal energy”将得

到分析中还存在的单元的内能。对动能也一样。

matsum 文件中的内能和动能只包含余下(noneroded)的单元的贡献。

注意,如果在*control_contact 卡中将ENMASS 设置为2,则与删掉的单元的相关的节点不会删掉,”eroded

kinetic energy”是0。

在LSprepost 中History>Global 只是动能和内能的简单相加,因此不包含接触能和沙漏能等的贡献。

壳的负内能:为了克服这种不真实的效应

--关掉考虑壳的减薄(ISTUPD in *control_shell)

--调用壳的体积粘性(set TYPE=-2 在*control_bulk_viscosity 卡中)

--对在matsum 文件中显示为负的内能的parts 使用*damping_part_stiffness;

先试着用一个小的值,比如0.01。如果在*control_energy 中设置RYLEN=2,因为刚性阻尼而能会计算且包含

在内能中。

正的接触能:当在接触定义中考虑了摩擦时将得到正的接触能。摩擦将导致正的接触能。如果没有设置接触

LS-DYNA 常见问题汇总2.0 yuminhust2005 2008-10-12

第12 页

阻尼和接触摩擦系数,你将会看到净接触能为零或者一个很小的值(净接触能=从边和主边能量和)。所说的

小是根据判断-在没有接触摩擦系数时,接触能为峰值内能的10%内可以被认为是可接受的。

负的接触能:突然增加的负接触能可能是由于未检测到的初始穿透造成的。在定义初始几何时考虑壳的厚度

偏置通常是最有效的减小负接触能的步骤。查阅LS-DYNA 理论手册的23.8.3&23.8.4 节可得到更多接触能的

信息。

负接触能有时候因为parts 之间的相对滑动而产生。这跟摩擦没有关系,这里说的负接触能从法向接触力

和法向穿透产生。当一个穿透的节点从它原来的主面滑动到临近的没有连接的主面时,如果穿透突然检测到,

则产生负的接触能。

如果内能为负接触能的镜像,例如glstat 文件中内能曲线梯度与负接触能曲线梯度值相等,问题可能是非

常局部化的,对整体求解正确性冲击较小。你可以在LS-prepost 中分离出有问题的区域,通绘制壳单元部件

内能云图(Fcomp > Misc > Internal energy)。实际上,显示的是内能密度,比如内能/体积。内能密度云图中的

热点通常表示着负的接触能集中于那里。

如果有多于一个的接触定义,sleout 文件(*database_sleout)将报告每一个接触对的接触能量,因此缩小了

研究负接触能集中处的范围。

克服负接触能的一般的建议如下:

-消除初始穿透(initial penetration)。(在message 文件中查找”warning”)

-检查和排除冗余的接触条件。不应该在相同的两个parts 之间定义多于一个的接触。

-减小时间步缩放系数

-设置接触控制参数到缺省值,SOFT=1 & IGNORE=1 除外(接触定义选项卡C)

-对带有尖的边的接触面,设置SOFT=2(仅用于segment-to-segment 接触)。而且,在版本970 中推荐设

置SBOPT(之前的EDGE)为4 对于部件之间有相对滑移的SOFT=2 的接触。为了改进

edge-to-edge SOFT=2 接

触行为,设置DEPTH=5。请注意SOFT=2 接触增加了额外的计算开消,尤其是当SBOPT 或者DEPTH 不是

缺省值时,因此应该仅在其它接触选项(SOFT=0 或者SOFT=1)不能解决问题时。模型的细节可能会指示可用

其它的一些方法。__

1、hypermesh找CAE模型的重心的方法

回答:操作窗口post-summary,点击load工具条,找到Altair目录-hw7.0-templates-summary>选择你所应用的模块,hm,dyna,abaques,.etc.-ctr_of_gravity,选择完之后点一下summary,就会弹出质量分布窗口,所有的信息都在这里了,可以显示整个模型的,也可以显示当前显示单元的。最后几行就是整个模型的重心坐标;还有一种方法,就是你把模型调试好了,计算一下,在写出的d3hsp文件中,有重心的坐标。

2、负体积问题

回答:负体积定义?

负体积是由于element本身产生大变形造成自我体积的内面跑到外面接着被判断为负体积。

关于负体积的解决办法?

负体积多是网格畸变造成的,和网格质量以及材料、载荷条件都有关系。可能的原因和解决的方法大概有几种:

(1)材料参数设置有问题,选择合适的材料模式

(2)沙漏模式的变形积累,尝试改为全积分单元

(3)太高的局部接触力(不要将force施在单一node上,最好分散到几个node上以pressure 的方式等效施加),尝试调整间隙,降低接触刚度或降低时间步。

(4)在容易出现大变形的地方将网格refine。

(5)材料换的太软,是不是也会出现负体积!

(6)另外也可以采用ALE或是euler单元算法,用流固耦合功能代替接触,控制网格质量。例如在承受压力的单元在受压方向比其他方向尺寸长.

(7)尝试减小时间步长从0.9减小到0.6或更小。

经验总结:

时间步长急剧变小,可能是因为单元产生了严重的畸变而导致的负体积现象,如果采用的是四面体单元,你可以用网格重划分的方法来解决。如果你采用的是六面体单元,那目前就没有很有效的方法,可以试一下*ELEMENT_SOLID_EFG,那对机器的要求相对就会比较高了。

3、out-of-range velocities错误

(1)、划分的网格质量差,如长宽比超过约定;

(2)、材料参数输入格式出错,如多出一个空格或一个逗号等;

(3)、输入的参数单位不协调,如在长度--mm;质量--kg;时间-s单位制下,压力的单位以Mpa 输入;

(4)、自定义的子程序存在问题,如岩石爆破中只考虑压,不考虑拉等;

(5)、介质太软,计算网格严重变形,如在淤泥中爆炸;

(6)、接触定义上出错。

我补充一个现象,不过说不出原因。

曾经做的算例中,网格划分与单位制绝对没有问题,计算时出现out-of-range velocities错误提示。检查出错节点时,发现都分布在边界上。想不出原因,干脆删掉了无反射边条,错误消失,可以计算。但不知原因.

4、hourglass问题

A1:有限元方法一般以节点的位移作为基本变量,单元内各点的位移以及应变均采用形函数对各节点的位移进行插值计算而得,应力根据本构方程由应变计算得到,然后就可以计算单元的内能了。如果采用单点积分(积分点在等参元中心),在某些情况下节点位移不为零(即单元有形变),但插值计算得到的应变却为零(譬如一个正方形单元变形为一个等腰梯形,节点位移相等但符号相反,各形函数相同,所以插值结果为0),这样内能计算出来为零(单元没变形!)。这种情况下,一对单元叠在一起有点像沙漏,所以这种模式称之为沙漏模式或沙漏。

现在有很多控制沙漏的专门程序,如控制基于单元边界的相对转动。但这些方法不能保持完备性。:

我主要讲一下物理的稳定性,在假设应变方法的基础上,建立沙漏稳定性的过程。在这些过程中,稳定性参数基于材料的性能。这类稳定性也称为物理沙漏控制。对于不可压缩材料,即使当稳定性参数是一阶的时候,这些稳定性方法也将没有自锁。在建立物理沙漏控制中,必须做出两个假设:1.在单元内旋转是常数。2.在单元内材料响应是均匀的。

A2:沙漏(hourglass)模式是一种非物理的零能变形模式,产生零应变和应力。沙漏模式仅发生在减缩积分(单积分点)体、壳和厚壳单元上。LS-DYNA里面有多种算法用于抑制沙漏模式。缺省的算法(type 1)通常不是最有效的算法,但却是最经济的。

一种完全消除沙漏的方法是转换到全积分或者选择减缩积分(S/R)方程的单元。但这种方法是一种下策。例如,第一,类型2体单元比缺省的单点积分体单元计算开消大; 其二,在大变形应用时更不稳定(更容易出现负体积);其三,类型2体单元当单元形状比较差时在一些应用中会趋向于剪切锁死(shear-lock),因而表现得过于刚硬。

三角形壳和四面体单元没有沙漏模式,但缺点是在许多应用中被认为过于刚硬。

减小沙漏的一个好的方法是细化网格,但这当然并不总是现实的。

加载方式会影响沙漏程度。施加压力载荷优于在单点上加载,因为后者更容易激起沙漏模式。为了评估沙漏能,在*control_energy卡片中设置HGEN=2,而且用*database_glstat和*database_matsum卡分别输出系统和每一个部件的沙漏能。这一点是要确认非物理的沙漏能相对于每一个part的峰值内能要小(经验上来说<10%)。对于壳单元,可以绘制出沙漏能密度云图,但事先在*database_extent_binary卡中设置SHGE=2。然后在LS-Prepost中选择Fcomp>Misc>hourglass energy。

对于流体部件,缺省的沙漏系数通常是不合适的(太高)。因此对于流体,沙漏系数通常要缩小一到两个数量级。对流体用基于粘性的沙漏控制。缺省的沙漏方程(type 1)对流体通常是可以的。对于结构部件一般来说基于刚性的沙漏控制(type 4,5)比粘性沙漏控制更有效。通常,当使用刚性沙漏控制时,习惯于减小沙漏系数到0.03~0.05的范围,这样最小化非物理的硬化响应同时又有效抑制沙漏模式。对于高速冲击,即使对于固体结构部件,推荐采用基于粘性的沙漏控制(type 1,2,3)。

粘性沙漏控制仅仅是抑制沙漏模式的进一步发展,刚性沙漏控制将使单元朝未变形的方向变形。类型8沙漏控制仅用于单元类型16的壳。这种沙漏类型激活了16号壳的翘曲刚度,因此单元的翘曲不会使解退化。如果使用沙漏控制8,16号壳单元可以用于解被称为扭曲梁(Twisted Beam)问题。

对于单元类型1的体和减缩积分2D体(shell types 13 & 15)类型6沙漏控制调用了一种假设应变协同转动方程。使用沙漏控制类型6和系数1.0,一个弹性部件在厚度方向仅仅需要划分一层类型1的体单元就可以获得正确的弯曲刚度。在隐式计算里面,对于类型1的体单元应该总是使用类型6的沙漏控制(实际上,在V970里面这是自动设置的)。

(More on type 6 HG control from Lee Bindeman)

类型6的沙漏控制与类型4,5不在于它用了一个假设应变场和材料属性来估算出假设应力场。这个应力在单元封闭域内进行积分得到沙漏力,因此单元表现的像一个有同样假设应变场的全积分单元。这种假设应变场设计成用来阻止纯弯曲中不真实的剪切变形和近似不可压材料中的体积锁死。

类型4和5的沙漏控制基于单元体积,波速和密度像在LS-DYNA理论手册中方程3.21那样来计算沙漏刚度。

沙漏类型6主要的改进是应力场在单元域内积分。这使得当使用大的长细比或者歪斜形状的体单元时沙漏控制非常鲁棒。类型4和5的沙漏控制对大长细比和歪斜形状单元反应变不好,它趋向于对某些沙漏模式反应的过于刚硬而对其它模式反应得过弱。

沙漏控制类型6另一个理论上的优点是对在厚度方向只有一个单元的梁可以在弹性弯曲问题中得到准确的解。要做到这一点,设置沙漏刚度参数为1.0。同样,对弹性材料方形截面杆的扭曲问题,当沙漏系数设为1.0时可以用很少的单元来解。然而,对于非线性材料,用粗糙的网格得到好的结果是不可能的,因为应力场不是像沙漏类型6假设的那样线性变化的。在梁厚度方向上如果没有更多积分点的话,没有办法捕获应力场的非线性状态。

对于选择沙漏控制,下面几个问题要考虑。对于单元有大的长细比或者明显歪斜(不管是初始还是变形过程中),推荐采用类型6的沙漏控制。类型6的沙漏控制通常对软的材料更好,像泡沫或蜂窝材料在计算中会有非常明显的变形。

在材料不是特别软或者单元有合理的形状且网格不是太粗糙时,类型4,5和6沙漏控制似乎都能得到同样的结果。这种情况推荐用类型4的沙漏控制,因为它比其它的更快

A3:总能量=内能+动能+滑移界面能

能量之间是可以相互转化的,但是对于动力学问题,总能量一般是不太变的。也就是能量守恒原理。沙漏模式也就零能模式,他在理论上是一种存在的一种变形模式,但是在实际模型中是不可能存上的。零能模式就是指有变形,但是不消耗能量。显然是一种伪变形模式,若不加以控制,计算模型会变得不稳定,并且计算出来的结果也是没有多大意义的。要加抵制这种变形模式就得相应的消耗一定的能量,也就是沙漏能,如果这个比值太多,就说明模型和实际的变形有很大的差别,当然是不正确的。这也是缩减积分所付出的代价。用全积分单元可以解决这个问题,但是效率不高,有可能导致体积锁死,过刚的一些问题。

沙漏要控制的,沙漏能一般不大于总能量的10%。如果大于这个值,说明你的计算结果不可靠

A4:

>用全积分单元可以很大程度上减少沙漏。全积分在计算动力问题的时候还是有很多的缺点的,所以一般是选用单点积分的方式,因为此而引起的沙漏问题,dyna提供了多种算法可以减少到内能的5%以下,

控制沙漏:首先:您的模型如果是很多PART组成的装配体,那么您需要找出沙漏能最大的PART!
然后:才能进行一些适当的控制!第一:还得从载荷谈起,避免集中载荷;
第二:从网格谈起,尽量做到网格协调;第三:从沙漏控制谈起,采用不同的控制方法;第四:从单元算法谈起,不行就将一个PART化分为多个PART,除了单元算法不同以外,其他相同,采用全积分!>有限元方法一般以节点的位移作为基本变量,单元内各点的位移以及应变均采用形函数对各节点的位移进行插值计算而得,应力根据本构方程由应变计算得到,然后就可以计算单元的内能了。如果采用单点积分(积分点在等参元中心),在某些情况下节点位移不为零(即单元有形变),但插值计算得到的应变却为零(譬如一个正方形单元变形为一个等腰梯形,节点位移相等但符号相反,各形函数相同,所以插值结果为0),这样内能计算出来为零(单元没变形!)。显然,

麻烦来了。所以必须避免这种情况的出现。判别出现0能模式的方法最简单的是察看单元变形情况,如果单元变成交替出现的梯形形状(两的在一起有点像沙漏,windows里面那个动画光标),就得小心了。另外就是察看hourglass energy,最好不要超过总能量的5%.

)对PART进行沙漏控制,使用use *hourglass card 和*PART card。感觉与*CONTROL_HOURGLASS card的功能相同,前者控制具体part,后者控制整个模型

)书上说,通过使用好的模型方式可以减少沙漏的产生,如网格的细化、避免施加单点载荷、在易产生沙漏模式的部件中分散一些全积分的“种子”单元,从而减少沙漏。我的理解是在那些地方放一些全积分的单元。其他的都用单点积分单元。我的理解是增加积分点

关于沙漏问题,建议看看abaqus的帮助文档,感觉讲的非常好,由浅入深,把深奥的东西讲的很容易理解。

沙漏的产生是一种数值问题,单元自身存在的一种数值问题,举个例子,对于单积分点线性单元,单元受力变形没有产生应变能--也叫0能量模式,在这种情况下,单元没有刚度,所以不能抵抗变形,不合理,所以必须避免这种情况的出现,需要加以控制,既然没有刚度,就要施加虚拟的刚度以限制沙漏模式的扩展---人为加的沙漏刚度就是这么来的。

关于沙漏现象的判别,也就是出现0能模式的方法最简单的是察看单元变形情况,就像刚才所说的单点积分单元,如果如果单元变成交替出现的梯形形状,如果多个这样的单元叠加起来,是不是象我们windows中的沙漏图标呢?

)畸变:应该可以用自适应网格划分,要注意的是:*CONTROL_ADAPTIVE 和*PART中的相应的设置

)164单元不能自动分裂单元。

大变形时确实存在网格畸形的问题,一般可以如下解决:

1、当畸形单元少,位置不重要时,删除畸形单元,继续计算;

2、适当调整参数,减少畸形的出现,或者使畸形单元破坏(ADD_EROSION)。

3、使用ALE。

版主所说的第一种解决办法,是通过重启动来实现的么?使用ALE。

23)今天突然注意到dyna关键字中的*section_shell_ale中的第八项setype中有3个选项,1-lagrange;2-euler,3-ale,而在*control_ale中的第一项dct有4项,1-lagrange;2-euler,3-ale,4-ale ambient。

请高手指教:这两个关键字中的选项是不是要对应,那一个优先级更高?还有,如果都选1,就是lagrange单元,那还定义ale干什么?我一直困惑,希望给出详细的解释,谢谢。

根据经验判断,*section_shell_ale的定义应该更高一些,因为在dyna中,普通的关键字总是小于特定part的关键字定义的。

在dyna中,默认Lagrange单元、结构动力学分析、显示。因此在设置ALE(*control_ale)、结构热力学分析(*CONTROL_SOLUTION)、隐式(*CONTROL_IMPLICIT_GENERAL)的时候,都会发现系统默认的都是前者的现象,这是DYNA的风格,也是为了避免出现意外。

)完全重启动是一个全新的分析,只不过需要考虑前面分析的相关的part的变形和应力情况,这个传递需要由关键字*STRESS_INITIALIZATION_OPTION来实现。

在dos命令下输入:

LS-DYNA I=restartinput.k R=D3DUMPnn

与小型重启动不同的是restartinput.k文件种具有完整的关键字输入,节点、单元、增加的PART 等,对于需要初始化的part,在该输入文件种的节点、单元数及排列与拓扑关系都应该与上次求解的输入文件中的一样,但part号可以不同。《动力显示算法指南》

我刚才看了一下dyna的范例手册,也是用part来定义,简单方便。我是用hypermesh来作为前处理的,很方便。具体和大家说一下,在hypermesh中 BCs->entity sets-〉选择comps,然后输入要定义的set的名称,选择要包括的component,最后再选择create就行了。 hypermesh 作为dyna的前处理非常好,推荐使用!

Q1:我以前做过一个类似轧钢的问题,使用的单位制为国际单位制,当采用实际的密度(7800kg/m3)时,网格畸变得特别厉害,和你所说的沙漏变形有点象。可是无意间将物质的密度修改大(7.8e7)以后,网格就没有畸变那么厉害了,并且计算速度大幅度提高。不知这里面有什么说道,请明白人给指点一下,谢谢!

Q2:我做了一个爆炸分析的流固耦合,但是流体和固体没作用上?

流固耦合关键字里面有一个mcoup选项,你选的是1,表示只与密度最大的多物质材料耦合,这样的话就只和炸药耦合了,空气对他的作用就没有了

相关文档
最新文档