在abaqus中使用dload子程序写一段荷载按照速度为20时在板上移动,并且当它移动到0.
时间: 2023-09-06 15:01:17 浏览: 188
在Abaqus中,可以使用DLOAD子程序来实现在板上以速度20移动的荷载,并且当其移动到0时终止。
首先,我们需要定义一个DLOAD子程序,在荷载子程序中编写用于计算移动荷载的代码。然后,在Abaqus中,我们需要创建一个荷载步,在这个步中调用DLOAD子程序,并定义荷载的移动速度。最后,我们需要定义一个节点移动的监控,一旦节点达到目标位置,就停止时间步。
下面是一个简化的荷载子程序的示例:
```fortran
SUBROUTINE DLOAD(SUBNAME,LOADID,TIME,NPTS,N,COORDS,VALUES,LCID)
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION COORDS(NPTS, 3), VALUES(NPTS)
DO I = 1, NPTS
IF (COORDS(I, 1) <= 0) THEN
VALUES(I) = 0
ELSE
VALUES(I) = 20
END IF
END DO
RETURN
END SUBROUTINE DLOAD
```
在Abaqus中,首先需要在输入文件中引用该荷载子程序,并定义加载步长:
```
**引用荷载子程序
*USER SUBROUTINE, DLOAD, DLOAD
```
然后,在荷载步中使用DLOAD子程序来定义荷载和移动速度:
```
**加载步
*Step
*Static
**定义时间步大小
*Time incrementation, name = time_inc, fixed
**定义荷载
*Dload, Dload
**定义目标节点坐标和速度
*Nset, node_set
**定义子程序参数
*Elset, el_set
*Kinematic Hardening, User-defined1, Constants, el_set
**监控节点的移动情况
*Node output, U, Nset
**应用荷载步
**定义步数
1000
**施加荷载
*Amplitude, name = amp1, time = tabular
0, 0
1, 20
**调用荷载子程序
*Dload, amplitude = amp1, subroutine = DLOAD
**控制节点移动的终止时间步
**节点坐标小于等于0时停止
5500, , , , , , , 0
```
这段代码定义了一个带有加速度加载的加载步,当节点坐标达到0时,时间步终止。
以上就是在Abaqus中使用DLOAD子程序实现荷载在板上以20的速度移动,并且当其移动到0时终止的方法。请注意,以上代码仅为示例,并未考虑具体的模型和边界条件,实际使用时需要根据具体情况进行修改。
阅读全文