在前一期的文章《O型橡胶密封圈的压力渗透有限元模拟》中,笔者讲解了一个密封圈有限元模拟的操作。文章中,并未给出流体压力渗透载荷施加部位及初始渗透点设置命令流的解释。为此,本文结合ANSYS的帮助文件,对流体压力渗透载荷施加的有关设置做一期详细的介绍。本文内容主要源于ANSYS帮助文档,并结合了笔者的一些理解,如有不当还请指正~—01—流体压力渗透概述基于接触状态的压力渗透载荷(Pressure penetration loads)可以模拟计算密封结构周围的有压液体或空气渗透到接触面的影响。在ANSYS中,我们可以把流体压力渗透载荷施加到柔-柔或刚-柔接触对上。ANSYS软件中,二维和三维的CONTA172、CONTA174等面-面接触单元都支持流体压力渗透载荷。例如CONTA172单元介绍中就已对此进行了明确,如下图所示:沿法向和切向方向的流体压力可以从一个或多个位置穿透到接触界面。流体压力渗透具有路径依赖的性质,渗透路径可以发展和变化,这取决于迭代计算。在每个迭代的开始,ANSYS首先检测开始承受流体压力的起始点。然后ANSYS在这些点中根据接触状态是打开或丢失来找出流体的渗透点,此外如果计算中存在接触压力小于用户给定的压力渗透准则中的压力,则这些点也会被软件判定为压力渗透点,并受到流体压力的作用。当ANSYS发现存在渗透接触条件的点后,这个点及最靠近这个点的节点都将被考虑为承受流体压力载荷的点,如图2-1所示。流体压力渗透载荷不能施加到接触状态为张开的面上,除非该面的终点或边缘属于承受渗透压力载荷的起始点。流体压力从渗透点开始渗透到接触表面和目标表面之间的界面中。当表面之间的接触重新建立或接触压力(仅法向)大于流体穿透标准时,可以切断流体穿透。那么为了建立流体压力渗透载荷,我们需要进行哪些设置呢?根据ANSYS帮助文档,我们需要指定以下量:① 流体压力;② 流体渗透的起始点;③ 流体渗透准则;④ 流体渗透作用时间。—02—施加流体压力渗透载荷ANSYS中,必须使用 SFE 命令将流体压力施加到接触单元和目标单元。SFE命令用于定义单元上的表面载荷,例如压力、热流、对流等。命令流如下:SFE, Elem, LKEY, Lab, KVAL, VAL1, VAL2, VAL3, VAL4 Elem 指定施加载荷的单元编号或单元集 合(如 ALL 表示所有单元)。如果为ALL,则将载荷施加到所有选定的单元(通过ESEL选择,意为element select);如果Elem=P,则启用图形拾取,所有其他命令字段将被忽略(仅在GUI中有效);可以使用组件名称代替Elem。LKEY 指定载荷或渗透点施加到单元面或边的编号,下文详述。默认为1,表示法向载荷。Lab 载荷类型,例如:PRES(压力) KVAL 用于某些载荷类型的附加参数(如 RDSF 中的辐射方向) VAL1, VAL2, VAL3, VAL4 载荷的具体数值,用于定义载荷的大小和分布 根据上表,SFE命令中LKEY、Lab、KVAL各部分的填写,可在结合ANSYS中帮助文档内容填入。一、LKEY的释义LKEY参数通常代表的是一个关于流体渗透压力方向的参数,可参见CONTA174和 TARGE170 上的流体渗透压力方向和CONTA172 和 TARGE169 上的流体渗透压力方向,如下图所示。对于3D接触(接触单元CONTA174和目标单元TARGE170),可使用以下SFE命令设置流体压力荷载的方向(如上图3.41):① 设置 LKEY=1 以指定法向压力值:SFE,ELEM,1,PRES,,VAL1,VAL2,VAL3,VAL4② 设置 LKEY=3 以指定沿x方向的单元坐标系ESYS的切向压力值:SFE,ELEM,3,PRES,,VAL1,VAL2,VAL3,VAL4③ 设置 LKEY=4 以指定沿y方向的单元坐标系 ESYS 的切向压力值:SFE,ELEM,4,PRES,,VAL1,VAL2,VAL3,VAL4对于2D接触(接触元件CONTA172和目标元件TARGE169),可使用以下SFE命令设置流体压力荷载的方向(如上图3.42):① 设置 LKEY=1 以指定法向的压力值:SFE,ELEM,1,PRES,,VAL1,VAL2② 设置 LKEY=3 以指定沿切向的压力值:SFE,ELEM,3,PRES,,VAL1,VAL2二、 Lab的释义Lab是单元表面荷载的类型标签,可以在ANSYS帮助文档中进行查询,如下图CONTA172下帮助文档所示:三、KVAL的释义KVAL是某些荷载类型的附加参数。同样可以在ANSYS帮助文档中进行查询,如下图CONTA172下帮助文档所示:四、VAL1,VAL2,VAL3,VAL4释义需要注意,流体压力渗透荷载仅施加在接触单元和目标单元的角节点上,即压力施加到VALi上。对于CONTA172、CONTA174、TARGE169和TARGE170单元的中间节点,压力通过两个相邻角节点的压力进行平均。VAL3和VAL4不用于二维接触和目标单元(因为二维单元只有两个边节点)。施加到接触或目标单元节点(其中,i=1、2、3、4分别表示单元节点I、J、K、L)上的压力值VALi可以是常数也可以是表格名。① 如果它是常数,则压力的大小将根据KBC命令设置以步进或斜坡方式施加。② 如果是表格名,为了定义表格载荷,表格名要放在百分号内,例如%tabname%,使用*DIM命令定义表。只能指定一个表,且必须在VAL1位置指定。在VAL2、VAL3和VAL4位置指定的表将被忽略。SEF命令相关参数的详细解释详见ANSYS帮助文档下,S开头的命令:—03—施加流体压力渗透载荷的关键字设置与注意事项基于接触单元的接触状态和KEYOPT(14)的值,流体压力渗透载荷会自动施加到接触和目标表面的穿透点上。如下图所示:当KEYOPT(14)=0(默认)或2时,流体压力渗透载荷在迭代过程中会根据当前接触状态而变化。在某些情况下,这可能会导致不稳定的收敛模式,因为接触状态和由此产生的施加流体渗透载荷在迭代过程中不断变化。当KEYOPT(14)=1或3时,基于每个子步最后收敛时的接触状态,流体压力渗透载荷被施加到接触和目标元素上,并在该子步期间保持恒定,即使接触状态在迭代过程中不断变化。通常需要小的增量来获得准确的结果。当KEYOPT(14)等于0或1时,任何先前暴露于流体压力的接触检测点将保持“渗透”状态,除非重新建立闭合的接触条件。这是一种依赖于历史载荷的类型。渗透载荷可能在路径中间被切断。当KEYOPT(14)等于2或3时,无论“渗透”条件的历史如何,流体压力穿透载荷总是从初始起点重新施加。因此,穿透路径必须在任何起点之后是连续的。当流体压力施加到目标单元时,我们还必须为目标单元类型设置KEYOPT(10)=1。即在载荷步之间对接触状态发生改变的接触单元的接触刚度进行修正。因为流体一旦施加到目标单元,其接触状态是发生了了变化的,上述设置是为了更好模拟接触压力的变化。此外,在定义流体压力渗透载荷时,还需记住以下几点:① 对于具有对称接触对定义(包括自接触对)的柔-柔接触,只需将流体压力施加到接触元件上,且还应设置接触单元KEYOPT(8)=1(防止并忽略伪接触)。特别是在基于用户定义的压入标准的流体压力压入时,为对称接触对定义设置KEYOPT(8)=1可确保两个接触对使用相同的接触特性,并导致更准确的接触压力分布。② 对于具有非对称接触对定义的柔-柔接触,通常应在当前或将要暴露于周围流体的接触单元和目标单元上施加流体压力。如果接触对内的相关接触表面上没有施加流体渗透载荷,则程序将忽略施加到目标表面的流体渗透载荷。当流体压力施加到接触单元和目标单元时,程序必须确定接触表面和目标表面的渗透路径。确定目标表面上的渗透路径的迭代过程非常耗时,特别是对于3D接触模型。因此,建议使用对称接触对定义(KEYOPT(8)=1),因为它不需要指定目标表面上的流体穿透压力。③ 对于刚-柔接触,应仅将流体压力施加到接触元件上。程序会自动将等效力施加到刚体目标表面上,以平衡施加在接触表面上的压力。施加到刚体目标表面的流体压力将被忽略。④ 对于在相同表面上定义多个接触对的情况,接触单元可能会在这种情况下相互重叠,请小心仅在接触单元重叠的区域中应用一次流体穿透压力。⑤ 程序忽略对基于MPC的接触对施加的任何流体渗透压力。—04—流体渗透起始点当施加流体压力渗透载荷时,流体压力从定义的起始点渗透到表面,可以有单个或多个起始点。程序通过选择二维接触目标表面的自由端点或三维接触/目标表面的自由开放边缘的节点(“自由”表示单元没有被相邻单元完全包围,如下图所示)自动找到默认起始点(即默认自由开放边缘的点为默认起始点)。起始点最初暴露在流体中,并可能受到渗透压力的影响。如果接触或目标表面与闭合回路连续(如环形),则没有默认起始点。可以使用SFE命令覆盖默认起始点。我们可以使用SFE命令和STAi值指定起始点、指定渗透点,并删除默认起始点,如下所述。为了确保指定起始点STAi设置,需在SFE命令中设置LKEY=2。命令格式如下:SFE,ELEM,2,PRES,,STA1,STA2,STA3,STA4STAi = 0 (default) 程序根据接触状态确定第i个节点是否为起点。如果节点是二维自由点或位于三维自由边缘上,则第i个节点可以是默认的起点。 STAi = 1 第i个节点是最初暴露于流体的起点。如果初始接触状态为“打开”,则它可以是渗透点。在变形过程中,当接触状态发生变化时,该节点可能不再是起点。 STAi = 2 第i个节点是一个渗透点。无论接触状态如何变化,该节点始终承受流体压力。 STAi = -1 即使i节点属于2D自由点或3D自由边节点,它也不是默认的起点。 STAi = -2 第i个节点是一个非渗透点。无论接触状态如何,该节点都不会承受流体压力。 注:如果仅指定 STA1 且其他 STAi值为空白,则 STA2、STA3 和STA4 将默认为 STA1。如果我们打算定义自己的起点,需首先通过发出以下命令来抑制所有接触单元和目标单元的所有默认起点:SFE,ALL,2,PRES,,-1—05—指定压力渗透准则ANSYS软件中,可以使用接触单元实常数PPCN指定压力穿透准则,如下表。 当接触压力小于该准则的数值时,起点变为渗透点,即流体压为开始渗透。因此,较高的准则值允许流体更容易地渗透。当接触压力大于准则时,渗透点返回起点,即流体渗透被切断。默认情况下,渗透准则(PPCN)为0。在这种情况下,只有当接触断开时才会发生流体渗透,只有当接触重新建立时才会发生流体渗透的切断。 我们可以将PPCN输入为常数值或表值。表格式输入可以是初始接触检测点位置(在溶液开始时)、接触压力(PRESSURE的正指数值)、几何穿透(GAP的正指数值)时间或温度的函数。要输入表名,必须将表名用%符号(%tabname%)括起来。使用*DIM命令定义表。有关详细信息,请参阅在表格式中定义实际常数。—06— 指定流体渗透作用时间 当发生流体压力渗透时,流体压力被施加到接触/目标表面的法向和/或切向。与传统的压力加载一样,在给定的子步中,当前的流体压力取决于压力是输入为常数还是输入为表值,以及流体压力是斜坡加载还是阶跃加载。如果立即施加了总流体压力,由于接触界面附近应力的剧烈变化,可能会导致收敛困难。当流体渗透压力被瞬间移除时,例如当流体渗透被切断时,情况也是如此。为了帮助稳定流体,ANSYS提供了一个选项,可以在一个或几个子步期间线性地增加流体压力。要实现此线性加载选项,需使用接触单元实常数FPAT指定流体渗透作用时间。输入一个正数来定义加载步骤的时间增量的分数。输入一个负数来定义绝对作用时间。默认的渗透作用时间是当前负载步骤时间增量的0.01倍。如下表: 在每一个渗透点处,如果当前子步的时间增量小于流体穿透作用时间FPAT>(tn-tn-1)),则流体压力在穿透作用时间期间从上一个子步的实际施加压力线性地增加到全流量的流体压力。否则(FPAT<(tn-tn-1)),则施加全流量的流体压力,(见下图):在压力-渗透截止点处,如果当前子步的增量小于流体穿透作用时间,则流体压力在穿透作用时间期间从上一个子步的施加压力线性地减小到零。否则,流体压力会立即被移除。—07—示例命令流释义在《O型橡胶密封圈的压力渗透有限元模拟》一文中,我们在workbench中设置了流体压力施加部位(pressure)和起始渗透点(start)的命名选择,如下图: 然后,对需要施加流体压力部位的接触单元(注意是接触单元,配合对称接触,可节约计算时间,也更准确)进行了标记,如下图: 最后,在分析设置下插入命令流,选中了接触对下的接触单元,并在其上定义了流体压力渗透载荷和渗透起始点,如下图: 上图中,CMSEL命令用于选择组件和装配的子集。其基本格式为: CMSEL,TYPE,NAME,ENTITY解释如下:TYPE: 选择类型,常见的有s表示选择一个新的集 合,u表示从当前选择集中除去组件内的实体等。NAME:组件的名称,如命名选择名。ENTITY:实体类型,如elem表示单元,node表示节点等。CMSEL,s,pressure ! 表示选用命名选择pressure 线体上的节点上图中,ESLN命令的含义是选择附加到选定节点的那些元素。如命令流中,如果先选定了某些节点,然后执行ESLN命令,就可以选择与这些节点相关联的单元。ELSN,s,1!表示选择与这些节点相关联的单元上图中,ESEL命令用于选择一组单元(elements)。因为前面的选择的与节点相关联的单元包括了面体单元与接触单元此处:ESEL,r,type,,cid_1! 表示选择到指定的接触单元通过以上命令,我们选择到了需要施加流体压力渗透载荷的接触单元,然后通过SFE命令进行流体压力的施加。命令详细解释如第二节所示。来源:薛定谔的Cube