LS-DYNA中的操作及设置(四)(内能,总能量)
本文翻译自官方文档,原文链接:
https://www.dynasupport.com/howtos/general
一、内能(Internal Energy)
在LS-DYNA中,内能由每一个单元的应力和应变的六个张量分量计算而来:
(IE)new = (IE)old + sum over all six directions of (stress * incremental strain * volume)
所有单元的内能总和即为整个系统的内能。
此外,如果*CONTROL_ENERGY中的RYLEN=1,那么在内能计算中还会考虑由于刚度阻尼(*DAMPING_PART_STIFFNESS)所产生的内能耗散。
若在壳单元中出现负的内能,可以通过以下几个方面进行调整:
1.在*CONTROL_SHELL中通过ISTUPD禁止壳单元厚度变薄;
2.调用 TYPE =-2 ( *CONTROL_BULK_VISCOSITY),使程序考虑壳单元的体积粘性。
3.对于出现了负内能的部件,对其使用关键字*DAMPING_PART_STIFFNESS,最开始尝试的时候可以先试用一个较小得值,例如0.01。若RYLEN=2,那么由于刚度阻尼而产生的内能会计算到整体内能中去。(此句与上文矛盾,存疑)
二、总能量(Total energy)
LS-DYNA可以输出GLSTAT文件(*DATABASE_GLSTAT),其中记录了系统的能量变化情况。在其中,总能量是以下几种能量的总和:
内能 internal energy
动能 kinetic energy
接触面滑移能 contact (sliding) energy
沙漏能 hourglass energy
系统阻尼能 system damping energy
刚性墙能rigidwall energy
GLSTAT文件中的弹簧能和阻尼能是离散单元,安全带单元内能和铰接刚度相关能量的总和;内能则包括其他所有单元中的内能,弹簧能和阻尼能。所以,弹簧能和阻尼能(Spring and damper energy )是内能(Internal energy)的一个子集。
铰接内能(joint internal energy )由SMP 5453a 输出到GLSTAT文件中,与*CONSTRAINED_JOINT_STIFFNESS无关,与*CONSTRAINED_JOINT_REVOLUTE中的罚函数刚度有关。在SMP 5453a版本之前,程序不会计算这一能量。
与 *CONSTRAINED_JOINT_STIFFNESS有关的能量输出到了JNTFORC文件中,并被包含在了GLSTAT文件的弹簧能和阻尼能(spring and damper energy)以及内能(internal energy)中。如前文所述,无论弹簧能和阻尼能是来自于铰接刚度还是来自于离散元,他们都包含在了内能中。
利用关键字*DATABASE_MATSUM可以将每一个部件的能量单独写入MATSUM文件中。
当关键字*CONTROL_ENERGY中的HGEN选项设为2时,程序会计算并输出沙漏能(Hourglass energy)。同样的,当其中的RWEN和RYLEN选项分别设置为2时,程序会计算并输出刚性墙能( rigidwall energy)和系统阻尼能(system damping energy)。
刚度阻尼能已经包含在了内能之中;而质量阻尼能(Mass damping energy )则是系统阻尼能中的单独一行。
在970.4748版本之前,壳单元的体积粘性导致的能量耗散并未被程序计算,随后官方会选择将这种能量计算在能量平衡之中。
当total energy = initial total energy + external work时,或者说,能量比值为1(total energy / (initial energy + external work))时可以认为系统有完美的能量平衡。
被侵蚀单元的相关能量不会被包含在History > Global energies选项,但是会输出到GLSTAT文件中,用户还可以通过ASCII > GLSTAT中的Eroded Kinetic Energy 和 Eroded Internal Energy选项来绘制其曲线。
侵蚀能是与被删除单元(内能)和被删除节点(动能)有关的能量。一般情况下,在没有考虑侵蚀能时,没有单元删除所对应的的能量比值为1;有单元删除时则比值小于1。(注:因此在考虑了侵蚀能之后,单元删除时能量比值才会等于1。)而被删除的单元与能量比值为多少是无关的,因此只能是其他因素导致了此比值的增加,例如考虑了被删除节点的质量。(此段存疑)
当关键字*CONTROL_CONTACT中的选项 ENMASS设为2时,被删除单元上的节点不会被删除,那么此时侵蚀动能eroded kinetic energy就是0。
History > Global中的总能量只是动能和内能的简单相加,并不体现接触能和沙漏能的作用。
若壳单元出现负的内能:
见上文
若接触能( contact energy)为正:
如果接触模型中考虑到了摩擦的作用,那么此时接触能的确应该是正值。如果接触模型中没有考虑摩擦作用,那么接触能应该为一个较小的值(具体位置从面侧和主面侧能量之和),“较小”意味着接触能为内能峰值的10%以内。
若接触能为负:
突然增长的负值接触能可能来源于未检测到的初始穿透,解决办法通常是仔细检查几何模型,并考虑适当使用壳单元厚度偏置。更多有关接触能的信息参见LS-DYNA理论手册 23.8.3节和 23.8.4节。
当两个部件相对滑动时,可能会出现负的接触能,这和摩擦作用无关,而仅仅是由法向接触力和法向穿透而导致的。当一个处于穿透状态的节点从其对应的主面段移动到邻近的不相连主面段时,程序就会检测到突然的穿透行为,从而导致负的接触能。
假如GLSTAT文件中的内能和负接触能以x轴相对称,这说明问题可能不严重。只是很局部的问题,对数值模型有效性的影响不会太大。用户可以通过查看部件的内能云图来寻找问题所在,一般出现畸高内能之处就是出问题的地方。
如果模型中定义了多个接触,那么*DATABASE_SLEOUT可以单独输出每一个接触处的能量变化,这样就可以定位出现问题的接触所在。
消除负接触能的一些方法:
可以在message文件中查看相关警告信息,以消除初始接触;
删除冗余接触设置,同一个接触对之间只能定义一个接触;
减小时间步长系数;
在接触控制选项中设置SOFT=1 和 IGNORE=1,并将其他参数设为默认值;
当接触为segment-to-segment contact 时,对于具有尖锐边的面,设置SOFT=2。此外在970版本中,当接触对之间有相对滑动时,还可以设置SBOPT=4。对于边到边且SOFT=2的接触,设置DEPTH = 5。注意,SOFT=2这一选项(尤其额外设置了SBOPT和DEPTH时)会提高计算成本,所以谨慎使用。
不同模型的具体情况决定了可能还需要一些其他额外的设置。