玩具制造仿真软件:SIMULIA二次开发_(18).用户自定义材料模型.docx
PAGE1
PAGE1
用户自定义材料模型
在玩具制造仿真软件中,材料模型的准确性直接影响到仿真结果的可靠性和实用性。虽然SIMULIA软件提供了一系列标准材料模型,但在某些情况下,这些标准模型可能无法完全满足特定玩具材料的力学行为需求。因此,用户自定义材料模型成为了一个重要的功能。本节将详细介绍如何在SIMULIA中实现用户自定义材料模型,包括材料模型的基本原理、实现方法和具体代码示例。
材料模型的基本原理
材料模型描述了材料在受力条件下的变形和破坏行为。在SIMULIA中,用户自定义材料模型通常需要通过编写用户子程序(UserSubroutine)来实现。用户子程序是一种Fortran或C++代码,可以在仿真过程中动态地计算材料的响应。SIMULIA提供了多种用户子程序接口,如*USERMATERIAL、*VUMAT等,这些接口允许用户定义复杂的材料行为。
1.用户子程序的类型
SIMULIA支持多种用户子程序类型,主要包括:
*USERMATERIAL:用于定义材料的应力应变关系。
*VUMAT:用于定义材料的超弹性行为。
*USERSECTION:用于定义材料的截面属性。
*VUSECTION:用于定义材料的复合材料截面属性。
2.用户子程序的基本结构
用户子程序的基本结构通常包括以下部分:
声明部分:定义子程序的输入输出变量。
初始化部分:设置材料的初始状态。
计算部分:根据输入的应变和状态变量,计算输出的应力和状态变量。
输出部分:返回计算结果。
用户自定义材料模型的实现方法
1.编写用户子程序
用户子程序的编写需要遵循SIMULIA提供的接口规范。以下是一个简单的*USERMATERIAL子程序示例,用于定义一个线性弹性材料模型。
!用户自定义材料模型:线性弹性材料
!输入变量:
!DTAN-切线刚度矩阵
!STRESS-应力向量
!STATEV-状态变量向量
!STRAIN-应变向量
!TIME-时间向量
!NOEL-单元编号
!NPT-积分点编号
!KSTEP-当前步数
!KINC-当前增量数
!PROPS-材料属性向量
!NPROPS-材料属性数量
!COORD-积分点坐标
!JLTYP-积分点类型
!TEMP-温度
!DTEMP-温度变化
!PREDEF-预定义场
!NPREDEF-预定义场数量
!CMNAME-材料名称
!NDIRE-方向数量
!TREL-相对时间
!DVREL-相对时间变化
!JDT-Jacobian类型
!PERIOD-周期
SUBROUTINEUMAT(STRESS,STATEV,STRAN,DSTRAN,TIME,DTIME,TEMP,PREDEF,CMNAME,
NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORD,DROT,PNEWDT,
CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)
IMPLICITNONE
!输入变量
INTEGER::NDI,NSHR,NTENS,NSTATV,NPROPS,NOEL,NPT,LAYER,KSPT,KSTEP,KINC
DOUBLEPRECISION::STRESS(NTENS),STATEV(NSTATV),STRAN(NTENS),DSTRAN(NTENS),TIME(2),DTIME,
TEMP,PREDEF(1,NPREDEF),PROPS(NPROPS),COORD(3),DROT(3,3),PNEWDT,CELENT,
DFGRD0(3,3),DFGRD1(3,3)
!材料属性
DOUBLEPRECISION::E,NU
E=PROPS(1)!弹性模量
NU=PROPS(2)!泊松比
!切线刚度矩阵
DOUBLEPRECISION::DTAN(NTENS,NTENS)
!临时变量
DOUBLEPRECISION::STRAIN(NTENS),EPS,LAMBDA