1.13 能量守恒的含义
可参阅http://www.dynasupport.com/tutorial/ls-dyna-users-guide/energy-data/。
在glstat(见*database_glstat)中输出的总能量是下列的总和:
● 内能(包括“侵彻内能”);
● 动能(包括“侵彻动能”);
● 滑动界面能(也称为接触能);
● 沙漏能(从83861修订版开始,包括“侵彻沙漏能”);
● 系统阻尼能;
● 墙能(俗称刚性墙能)。
在glstat文件中输出的“spring and damper energy”是离散单元、安全带单元和与运动幅刚度(*constrained_joint_stiffness...)相关的能量之和。
“internal energy”包括“spring and damper energy”以及所有其他单元类型的内能。
因此,“spring and damper energy”只是“internal energy”的一部分。
在971 r3的jntforc上有两个能量项。
第一个“energy”是在R3中新增的,对应于glstat中的“joint internal energy”。
它与“constrained”自由度中基于罚函数的力有关。
当使用拉格朗日乘子算法时不会出现。
截至2008年1月,LS-PrePost似乎无法绘制出在jntforc中的第一个能量项“energy”。binout文件的jntforc数据中可能不包含这第一个能量项。
第二个能量项“joint energy”与*constrained_joint_stiffness有关,它包含在glstat文件的“spring and damper energy”和“internal energy”内。
无论是来自运动幅刚度还是来自离散单元的“spring and damper energy”,总是包含在“internal energy”中。
matsum(见*database_matsum)中输出每个零件的能量值。
只有当*control_energy的HGEN被设置为2时,沙漏能才会被计算和输出。同样地,只有当RWEN和RYLEN分别被设置为2时,才能计算和输出刚性墙和阻尼的能量。
刚度阻尼能在内能中。
质量阻尼能则是“system damping energy”的一个单独项。
由于壳体的黏度而耗散的能量在970的4748修订版之前没有计算。在随后的修订中,设置TYPE=-2可在能量守恒中包含这种能量。
如果总能量=初始总能量+外部功,或者换句话说,如果能量比[在glstat中为“total energy/initial energy”,尽管它实际上是total energy/(initial energy+external work)]等于1.0,那么能量是守恒的。
如果分母(初始总能量+外部功)小于1.e-08,则用重置能量比为1.0。
注意,增加的质量可能导致能量比增加(可见 http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/taylor.mat3.noerode.mscale.k)。
History→Global energies不包括侵彻的单元,而glstat能量则包括这些单元。
请注意,这些侵彻的单元可以通过ASCII→glstat绘制为“eroded kinetic energy”和“eroded internal energy”进行查看。
侵彻能是与被删除的单元(内能)和被删除的节点(动能)相关的能量。通常,如果没有删除任何单元,则“energy ratio w/o eroded energy”等于1;如果单元被删除,则小于1。
删除的单元不应影响“total energy/initial energy”的比值。
能量比的增长可归因于其他一些因素,如增加的质量。
当单元侵彻时,glstat 中的内能和动能不反映能量损失。相反,损失的能量在 glstat中被记录为“eroded internal energy”和“eroded kinetic energy”。
如果从“internal energy”中减去“eroded internal energy”,就可以得到在模拟中仍然存在的单元的内能。动能也一样。
matsum文件的内能和动能只包括剩余(非侵彻)单元。
glstat包括了来自运动刚性墙的KE,matsum则不包括。
附件是一个示例。请注意,如果将*control_contact中的ENMASS设置为2,则与已删除单元相关联的节点不会被删除,则“eroded kinetic energy”为零(可见http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/m3ball2plate.15.k)。
通过History→Global查看的总能量只是动能和内能的和,因此不包括接触能或沙漏能。
(1)壳的负内能。
为了消除这种虚假效应,需要
● 关闭壳的减薄(ISTUPD);
● 打开壳的体积粘度(设置*control_bulk_viscosity的TYPE=-2);
● 对这些matsum中为负值的零件施加*damping_part_stiffness。
首先尝试一个小值,例如0.01。
如果*control_energy的RYLEN=2,则计算由刚度阻尼引起的能量,并将其包含在内能中(示例研究可见negative_internal_energy_in_shells)。
(2)正的接触能。
当接触定义中包含摩擦时,正的接触能由于摩擦耗散能而累积。即使零件脱离接触,这种摩擦能也不可恢复。
在没有接触阻尼和接触摩擦的情况下,当零件脱离接触时,人们希望看到零(或非常小的)净接触能(净接触能=从侧能量和主侧能量的总和)。
在这种意义上,正的接触能是压缩接触“弹簧”中储存的能量,只要有接触力施加,就会有非零的接触能。
http://ftp.lstc.com/anonymous/outgoing/support/FAQ_kw/sphere_to_plate.examine_contact_damping_energy.k表明,接触阻尼(VDC=0,30,90)也产生了正的滑动(或接触)能量。
(3)负的接触能。
如果(总接触能-摩擦接触能)是负的,那就是我们所说的负接触能,理想情况下是没有负接触能的。
下面的说明中列出的建议是为了帮助减少负接触能的发生。
负接触能的突然增加可能是由未发现的初始穿透引起的。定义初始几何时需要谨慎,以便适当地考虑壳的偏移,通常是减少负接触能的最有效方法。有关负接触能的更多信息,请参阅LS-DYNA理论手册(1998年5月)第23.8.3节和23.8.4节。
当零件产生相对滑动时,有时会产生负的接触能。这与摩擦力无关—我们指的是法向接触力和法向穿透产生的负能量。
当穿透节点从其原始主段滑行到相邻但未连接的主段并立即检测到穿透时,结果会产生负的接触能。
如果内能能反映负的接触能,即 glstat 的内能曲线的斜率与负接触能曲线的斜率相等或相反,则该问题很可能是局部化的,对解的整体有效性影响很小。我们可以识别局部问题的区域,方法是将壳零件的内能通过云图显示(在 LS-PrePost 中使用指令Fcomp→Misc→internal energy)。实际上,显示的是内能密度,即内能/体积。内能密度的极值处通常表示负接触能集中的位置。
如果*database_extent_binary的HYDRO=1,则实体单元的每个参考体积的内能被写入第2至最后的额外历史变量中。
如果定义了多个接触,那么 sleout 文件(*database_sleout)将输出每个接触的接触能,因此可以缩小负接触能的调查范围。
由于难以理解负接触能来自何处,并对其进行校正,所以存在开发的增强要求,Bug 3317通过intfor数据库的云图显示滑动界面能。
更新:此增强现在可用于MORTAR,但不适用于其他接触。
消除负接触能的一般建议如下:
● 消除初始穿透(寻找消息文件中的“Warning”)。
● 检查和消除多余的接触定义。两个相同零件或表面之间不应该有超过一个的接触定义。
● 减小时间步长系数。
● 将接触控制卡片设置为“默认”,但打开SOFT=1和IGNORE=2(可选卡C)。
● 对于带尖锐边的面的接触,在可选卡A上设置SOFT=2。SOFT=2也称为基于段的接触,因此不适用于任何node_to_surface类型的接触。
SOFT=2的两个重要变量是SBOPT和DEPTH。
SBOPT:面之间的滑动不普遍时设置SBOPT=3,当滑动普遍时设置SBOPT=5。
DEPTH:推荐DEPTH=13或23,除非必须考虑壳的边到边的接触,在这种情况下,设置DEPTH=25或35。
请注意,与SOFT=0或1相比,SOFT=2需要额外的计算资源,特别是使用SBOPT或DEPTH的非默认值。
(4)接触能量(基于罚函数和基于约束)。
对于基于罚函数的接触,力的计算比较容易(罚刚度×位移,或多或少),能量(功)则是按节点计算的。
对于约束类型的接触,方法是一样的。区别在于,在基于约束的接触中,不直接计算力:调整主从节点的加速度(考虑到主从节点上的所有外力及其质量),使节点保持在一起。就接触计算而言,不需要计算主节点和从节点的实际接触力。但是,为了计算界面能,我们计算了它们上的净力。在接触之前,存储每个从节点和主节点的当前加速度,并在接触后计算每个节点的净力。
然后,这些接触力被用来计算能量,就像基于罚函数的接触一样。