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求解器,你必须设置一
些必要的变量。
发布评论