定义Component时,首先要选择Component中想要包含的部分,然后使用GUI中的下列菜单路径来定义Component(CM):Utility Menu>Select>Comp/Assembly>Create Component
关于Component的详细信息,参见《ANSYS Analysis Guide》中的Selecting and Components。对于刚性体,载荷一般都施加到PART号上,而不是Component上。这是因为当使用命令 EDMP ,RIGID,MAT定义刚性体时已经包含有一系列节点和单元。
4.1.2 数组参数
值得注意的是,显式动态分析中,载荷在一些特定时间间隔内施加到结构上,这样就可以观察在特定时间段里施加载荷后模型的瞬态行为。因此,不仅需要定义施加载荷的类型(FX,FY,FZ,ROTX,ROTY,ROTZ等),同时也需要定义载荷施加到结构上的时间间隔值。
时间间隔值和其相对应的载荷值组合在一起定义为数组参数。这些参数必须定义为两部分,第一部分为时间间隔值,第二部分为载荷值,载荷应与时间间隔相对应。在GUI中,采用菜单路径来定义一个数组参数:Utility Menu>Parameters>Array Parameters>Define /Edit.
有关如何定义数组参数的详细信息,参看《ANSYS APDL Programmer’s Guide》中的Array Parameters。
注意 --可以通过线性插值得到中间时间点的载荷值。指定时间范围外的载荷值不能由程序插入。因此,必须保证载荷时间范围至少等于求解时间。否则,由于过早的去除载荷求解结束时的结果将会变为无效值。
一旦定义了能代表载荷的数组参数,这些载荷与时间有关,就可以直接用 EDLOAD 命令输入参数定义载荷。或者,可以用 EDCURVE 命令输入参数来定义载荷曲线。相对应的载荷曲线ID可用 EDLOAD 命令输入。
为说明数组参数的应用,考虑前面提过的棒球例子。想要考察从击球瞬间到击球一秒钟后球的变形。假定位移是时间的已知函数,球刚碰撞时的初始速度为1600in/sec(91MPH)。
首先需要定义一些节点组元,用它们来定义载荷和接触面。建立一个Component,它包括球上的所有节点,取名为ball。对这个Component施加一个1600in/sec的初始速度( EDVEL ),(本章后面再讨论)。然后再创建第二个组元,它仅包括球表面上的所有节点,取名为ballsurf.这个Component以后将用于接触定义。还需定义第三个Component,它包括球棒表面上的节点,取名为batsurf,接触算法将在第六章接触表面中讨论。
nsel,s,node,? !选择组成球的所有节点
cm,ball,node !定义Component为ball nsel,s,node,? !选择组成球表面的所有节点 cm,ballsurf,node !定义Component为ballsurf nsel,s,node,? !选择球棒表面的所有节点 cm,batsurf,node !定义Component为batsurf nsel,all
现在选择球棒基座上的节点(bathand),对它施加一个位移时间载荷曲线。 定义一名字为time的数组来存储时间值。使用时间值要与模型的所有载荷、维数以及材料性质相协调。其次,定义一个数组,包括Component bathand相应的X位移值,命名为Xdisp.同样定义数组Ydisp和Zdisp,以包含球棒相应的Y位移和Z位移值。
nsel,s,node,? !选择球棒基座上的节点 cm,bathand,node !定义Component为bathand nsel,all
*dim,time,,4 !定义数组参数为time的维数 *dim,xdisp,,4 !定义数组参数为xdisp的维数 *dim,ydisp,,4 !定义数组参数为ydisp的维数 *dim,zdisp,,4 !定义数组参数为zdisp的维数 time(1)=0,0.25,0.5,0.75,1 !给定位移的时间值 xdisp(1)=0,-1,-2,-1,3 !球棒的X位移 ydisp(1)=0,1,2,3,4 !球棒的Y位移 zdisp(1)=0,3,6,8,9 !球棒的Z位移
给出的例子实际是一个比较复杂的现象的简化模型。更加精确地模拟,应该定义额外的位移位置(和相应的载荷曲线)以更好的模拟球的真实运动。另外,球棒上各节点的初始速度是不同的。最后,球是一些不同材料和材料模型的复合体。
4.1.3 施加载荷
一旦定义好Component和数组参数,就可以给建立的模型加载( EDLOAD 命令)。在GUI中,可以选择下列菜单路径:Main Menu>Solution>Loading Options>Specify Loads.
可以选择增加载荷(EDLOAD中ADD标号),如力、力矩、节点加速度、表面压力等,所有的载荷都用 EDLOAD 命令施加到整体笛卡尔坐标系上,此为其缺省值。
GUI的对话框将列出所有有效载荷,以及先定义好的Component和数组参数。只需简单地选择所需的载荷标号,以及Component(刚体的PART号)和数组参数集合(预先定义的载荷曲线号)。值得注意的是,如下表所示的那样,并不是所有的载荷标记都适用于所有Component或PART号。
以下的载荷标记只适用于节点Component: 力:FX,FY,FZ 力矩:MX,MY,MZ 位移:UX,UY,UZ 转角:ROTX,ROTY,ROTZ 速度:VX,VY,VZ 节点加速度:AX,AY,AZ 体加速度:ACLX,ACLY,ACLZ 角速度:OMGX,OMGY,OMGZ 温度:TEMP
注 --虽然V(X,Y,Z)和A(X,Y,Z)作为DOFs出现,它们实际上不是物理DOFs。然而,这些量是被计算作为DOF求解和存储以用于后处理。
以下的标记只适用于刚性体(部件号)
力:RBFX,RBFY,RBFZ 力矩:RBMX,RBMY,RBMZ 位移:RBUX,RBUY,RBUZ 转角:RBRX,RBRY,RBRZ 速度:RBVX,RBVY,RBVZ 角速度:RBOX,RBOY,RBOZ 以下标记只适用于单元Component: 压力:PRESS
回到前面的棒球例子,需由time和x/y/z disp数组参数用 EDLOAD 命令自动生成位移与时间的载荷曲线。
edload,add,ux,,bathand,time,xdisp !球棒的x位移 edload,add,uy,,bathand,time,ydisp !球棒的y位移 edload,add,uz,,bathand,time,zdisp !球棒的z位移
另一种方法,很刚硬的棒球可以模拟为刚体,以简化所需输入数据和减少CPU时间。对于这种情况,对应刚体载荷可以施加有效的PART号(不是节点Component).
edload,add,rbux,,2,time,xdisp !x位移(如果球棒的PART号为2) edload,add,rbuy,,2,time,xdisp !y 位移(如果球棒的PART号为2) edload,add,rbuz,,2,time,xdisp !z位移(如果球棒的PART号为2)
如果已知球棒对球碰撞的压力是时间的函数,则可以不定义任何接触表面就能实现加载。取而代之用带“PRESS”标号的 EDLOAD 命令对包含球表面单元的组元Component加载。
edload,add,press,1,cover,battime,batload
在这种情况下,在面号1上对单元组元cover加载(在KEY域输入面号),其载荷曲线是由battime和batload数组参数产生的。