2024年4月3日发(作者:)

用户自定义力

这一节的目的是利用一个弹簧力模型来演示用户自定义力的使用,让使用者明白怎么使

用用户自定义程序,以及开发自己所需的力菜单。这里使用命令行的方法进行菜单的开发,

而不使用图形交互界面,图形交互界面对于初学者来说很方便,但很费时。

模型如下所示。

一、菜单设置

1、 创建一个menu. LMSMotionUDF文件

使用文本编辑器编辑如下内容

LMSDynElementType udf;

LMSDynAttribute "Body 1" ELEMENT

{

{ LIST , "BODY" },

{ NODEFAULT , "" }

};

LMSDynAttribute "Body 2" ELEMENT

{

{ LIST , "BODY" },

{ NODEFAULT , "" }

};

LMSDynAttribute "DUMMY_TSDA" ELEMENT

{

{ LIST , "TSDA" },

{ NODEFAULT , "" }

};

LMSDynAttribute "FREE LENGTH" REAL

{

{ MINIMUM , "0.0" },

{ DEFAULT , "0.0" }

};

LMSDynAttribute "SPRING CONSTANT" REAL

{

{ MINIMUM , "0.0" },

{ DEFAULT , "0.0" }

};

LMSDynAttribute "PERCENT DAMPING" REAL

{

{ MINIMUM , "0.0" },

{ DEFAULT , "0.0" }

};

LMSDynAttribute "TEST FLAG" LOGICAL

{

{ DEFAULT , "FALSE" }

};

将以上文本保存为user_ionUDF。

2、 打开文件user_lysis,选择Tools → Import UDF Element-Descriptor找

到刚才编辑的文件user_ionUDF并打开,则刚刚编辑的文件与分析模型

将会建立一个连接。

二、创建一个用户自定义力单元

1、 创建一个名为‘dummy’的弹簧力TSDA

以前的motion版本中我们不可能使用坐标系统的方式来创建用户自定义力,但现在可

以了。这里创建的这个弹簧力,一端连接着质量块将要接触的名为‘base’的三合板,一端

连接着一个质量块。刚度和阻尼都被设为0,对于模型的运动没有任何影响。然后使用用户

自定义的方式来定义弹簧力。

点击TSDA图标,name设为dummy_tsda,Body1项选择体base上坐标系b_t2,Body2

选择体Mass2上的坐标系m2_b_t1,其他所有参数都设为0,点击ok关闭弹簧力定义对话

框。

2、创建用户自定义力单元

从主菜单中选择Insert → Force → User-Defined Force,弹出用户自定义力对话框,对话

框的设置如下所示。

Body 1.1 = base

Body 2.1 = mass_2

DUMMY_TSDA.1

FREE LENGTH

= dummy_tsda

= 4

100 SPRING CONSTANT =

PERCENT DAMPING = 0.02

TEST FLAG = FALSE

这里的阻尼值0.02相当于弹簧力中2 kg/s,TEST FLAG的设置对这个模型也没影响。点击

ok关闭对话框。

模型的更改已经完成,保存模型。

三、导出一个Solver Input文件

如下所示,点击Export Solver Input Data图标,将会写出一个与分析文件名相应的文

件vl_ionSolverInput,并在连接管理器中自动建立连接。

四、编辑一个新的求解命令

1、 编辑文件makefile

打开文本编辑器编辑一个如下所示文件

OBJS =

$(LIBDIR)"

"."

".udf_"

将编辑的内容保存为makefile.文件。其中在编辑过程中出现的文件udf_in.f和udf.f都

是模型文件夹中已有的。

2、 编辑新的求解命令

打开Fortran(前提是你计算机必须已装上Fortran),在弹出的Fortran命令窗口中,

指向你保存模型的文件夹,并敲入nmake,一切设置好后出现如下的DOS命令窗口。

运行完后你的工作目录中应该已经出现了几个新的文件,包含几个Fortran命令文件以及一

个求解命令文件

userdef.*。

五、用命令行的方式运行求解

在Dos窗口设置Vl环境变量

为方便调试,最好在Dos窗口运行Motion求解器,因为如果从图形用户界面(GUI)

运行,你无法看到源代码状态。要想利用Dos窗口成功运行Motion求解器,你必须设置一

些必要的变量。