adams工具大全

更新时间:2024-04-04 08:18:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第 章 ADAMS模型语言及仿真控制语言

本章对ADAMS的模型语言及仿真控制语言进行了简介。通过本章的学习可以掌握ADAMS/Solver模型语言adm文件、ADAMS/Solver仿真控制语言acf文件的语法、结构,对一些关键语句进行深入的说明,通过学习可以深刻理解ADAMS中几何、约束、力元等的实质,可以脱离ADAMS/View环境直接利用ADAMS/Solver进行一些高级应用,并为进一步的ADAMS二次开发打下基础。

6.1ADAMS的主要文件介绍

ADAMS中关于模型及分析主要有以下几种类型文件:ADAMS/View二进制数据库bin文件、ADAMS/View命令cmd文件、ADAMS/Solver模型语言adm文件、ADAMS/Solver仿真控制语言acf文件,以及ADAMS/Solver仿真分析结果文件:req文件、res文件、gra文件 、out文件、msg文件。

ADAMS/View二进制数据库bin文件以“ .bin”为文件名后缀,文件中记录了从ADAMS启动后到存储为bin文件时的全部信息-包含模型的完整拓扑结构信息、模型仿真信息以及后处理信息。可以包含多个模型、多个分析工况和结果。可以保存ADAMS/View的各种设置信息。文件为二进制不能阅读、编辑,只能通过ADAMS/View调阅,由于信息全面一般文件都比较大。

ADAMS/View命令cmd文件以“ .cmd”为文件名后缀,是由ADAMS/View命令编写的模型文件,可以包含模型的完整拓扑结构信息(包括所有几何信息)、模型仿真信息,为文本文件,可读性强,可以进行编程,是ADAMS的二次开发语言,不包含ADAMS/View的环境设置信息,不包含仿真结果信息,只能包含单个模型。

ADAMS/Solver模型语言(ADAMS Data Language)adm文件,以“ .adm”为文件名后缀,文件中包含模型中拓扑结构信息,但有些几何形体如 link等不能保留。ADAMS/View的环境设置不能保留。ADAMS/Solver可以读取adm文件,与ADAMS/Solver仿真控制语言acf文件配合可以直接利用ADAMS/Solver进行求解。

ADAMS/Solver仿真控制语言acf文件,以“ .acf”为文件名后缀,文件中可以包含ADAMS/Solver命令对模型进行修改和控制的命令,从而控制仿真的进行。

ADAMS/Solver将仿真分析结果中用户定义的输出变量输出到req文件,以“ .req”为文件名后缀;ADAMS/Solver将仿真分析结果中将模型的缺省输出变量输出到res文件,以“ .res”为文件名后缀;ADAMS/Solver将仿真分析结果中图形部分结果输出到gra文件,以“ .gra”为文件名后缀。ADAMS/Solver将仿真分析结果中用户定义的输出变量以列表的形式输出到out文件,以“ .out”为文件名后缀。ADAMS/Solver将仿真过程中的警告信息、错误信息输出到msg文件,以“.msg”为文件后缀。

下图为各种文件之间的关系

机械系统动力学分析及ADAMS应用

adm acf ADAMS/Solver req res gra out msg 图6-1ADAMS各文件间的关系

6.2ADAMS/Solver模型语言(ADAMS DATA Language)adm

6.2.1 ADAMS/Solver模型语言分类及其语法介绍

ADAMS/Solver模型语言可以定义系统的拓扑结构,确定系统的输出,定义仿真分析参数等。

以下列表6-1是按功能分类的ADAMS/Solver模型语言分类。

表6-1 ADAMS/Solver模型语言

模型语言类型 Dataset Delimiter Inertia and material data Geometry Constraints Forces Generic systems modeling Aggregate element Reference data Analysis parameters Output (1)模型语言格式

模型语言关键字 TITLE,END PART,FLEX_BODY,POINT_MASS GRAPHICS,MARKER COUPLER,CVCV,GEAR,JOINT,JPRIM,MOTION,PTCV, UCON ACCGRAV,BEAM,BUSHING,CONTACT,FIELD,FRICTION, GFORCE,MFORCE,NFORCE ,SFORCE,SPRINGDAMPER, VFORCE ,VTORQUE DIFF,GSE ,LSE ,TFSISO,VARIABLE TIRE ARRAY ,CURVE,MATRIX,PINPUT,POUTPUT,SPLINE,STRING DEBUG,EQUILIBRIUM,IC,INTEGRATOR KINEMATICS, SENSOR ,UINT FEMDATA ,LIST/NOLIST,MREQUEST,OUTPUT,REQUEST, RESULTS 第6章 ADAMS模型语言及仿真控制语言

??NAME/[id,]ARG1?????v1,...,vn??????c(v1,...vn)??,...ARGn???e??????????v1,...,vn??????c(v1,...vn)?? ???e???ADAMS/Solver模型语言的格式如上,一般必包括“/”、id号以及一个或多个变量表达

式。现以MARKER语句说明。

????,QP?x,y,z????????????????,REULER?a,b,c????????????QP?x,y,z????,PART?id??????????MARKER/id?ZP?x,y,z ?????????,POINT_MASS?id???????????XP?x,y,z?,USEXP??????????,FLOATING??????????????其中{}表示三项中必须选择一种参数,[ ]表示可以任选两种中一种参数,[[ ]]表示一种参

数组合。因此在ADAMS/Solver模型语言定义中可以定义如下:

MARKER/201,PART=4,QP=100,100,100,REULER=90D,0D,0D

MARKER/202,PART=4,QP=100,100,100,ZP=100,100,105,XP=100,105,100 MARKER/203,PART=4,FLOATING (2)变量表达式

其中变量表达式分为以下几类:可以根据类别不同选择不同的变量名、变量可以由一系列数值赋值、变量由一系列字符串赋值、变量由表达式赋值。

1.根据类别不同选择不同的关键词

如上面MARKER第三种定义,其中FLOATING为关键词,不需赋值。又如 SFORCE/10, I=8, J=9,TRANSLATION,FUNCTION=100 * DM(8, 9) * * (-1.3) - 200

其中TRANSLATION是可以在TRANSLATION和RORTATION两个关键词选择一个,不需赋值。

2.变量可以由一系列数值赋值

如上面MARKER中QP=100,100,100 3.变量由一系列字符串赋值 如积分算法说明定义:

INTEGRATOR/GSTIFF, PATTERN = T:F:F:F:T:F:F:F:T:T, HMIN = 1.0E-005, KMAX = 3, INTERPOLATE = ON, CORRECTOR = MODIFIED

其中PATTERN = T:F:F:F:T:F:F:F:T:T 由一系列字符串赋值 4.变量由表达式赋值

如MOTION/1, JOINT=1, FUNCTION=POLY(TIME,0,0,360D) MOTION/2, JOINT=2, FUNCTION=USER(0, 0, 6.28)

机械系统动力学分析及ADAMS应用

其中FUNCTION=POLY(TIME,0,0,360D) 为函数表达式,FUNCTION=USER(0, 0, 6.28)为用户子程序表达式。

(3)模型语言中的特殊约定

1.关于角度:模型语言中角度缺省单位为弧度,如需度则需在数字后加D。

如:RELUER=90D,0D,90D,在out文件中角度缺省单位为弧度,可以通过OUTPUT语句中设置DSCALE变为度。

2.关于变量:可以任意颠倒变量的先后次序;变量名可以利用缩写;变量可以大写,也可以小写;如果没有提供变量并赋值,ADAMS/Solver认为变量被赋缺省值。不要将实型赋给整型变量。

3.空格与制表符:一个变量中连续出现5个空格或更多的空格,ADAMS/Solver认为空格后无效,但TITLE和函数表达式除外。

4.说明语句:感叹号后为说明,说明语句可以在任何位置。 5.续行:第一例为“,”表示该行为续行,或行尾为“&”表示下行为续行。如下所示:

PART/2, MASS = 2.3,CM = 5, IP = 183.005,&17310.260, 17418.946

6.隔符:同一语句中变量间的分隔符使用“/”,“=”,“,”,“\\”,“;”,其中“;”表示可以在一行写两个语句。

7.id号:用于同一系统存在多个相同拓扑结构类型定义,如: MARKER/201,PART=4,QP=100,100,100,REULER=90D,0D,0D

MARKER/202,PART=4,QP=100,100,100,ZP=100,100,105,XP=100,105,100 其中201、202为id号,以区分同一语句MARKER。

8.语句:一个语句必须在前5例开始,否则ADAMS/Solver认为该行为注释行;语句必须在1-80例之间,可以续行。

6.2.2模型文件的开头与结尾

(1)TITLE

位于adm模型文件的第一行,为一串字符,如: This is The Truck Simulation Model 2003/10 (2)END

位于adm模型文件的最后一行。

TITLE 与END之间的语句构成ADAMS/Slover的主题,语句顺序可以变化。

6.2.3惯性单元

惯性单元包含三种惯性单元PART,FLEX_BODY,POINT_MASS,这里仅对PART简要介绍,FLEX_BODY,POINT_MASS可以有关ADAMS参考手册。

PART:PART语句确定刚体的质量、惯量信息、质心位置、初始位置、方位、初始速度。 PART语句有两种:

PART/id,GROUND。表明该PART被定义为地面。

第6章 ADAMS模型语言及仿真控制语言

PART/id,[,MASS?r] [,CM?r] [,IM?r] [,IP?xx,yy,zz [,xy,xz,yz]][,MATERIAL?mat_name]??,VX??,VY????,VZ????,WX??,WY????,WZ???x?????y???z??

???a???b?????c????,

????????QG?x,y,z,REULER?a,b,c?????????QG?x,y,z,ZG?x,y,z,XG?x,y,z????????????[,VM?id][,WM?id][,EXACT?c1:c2:c3:c4:c5:c6]MASS为PART的质量; CM为质心坐标系id号; IM为惯量坐标系id号;

IP为PART的相对于IM惯量坐标系的惯量,没有IM时为相对于CM质心坐标系的惯量;

? MATERIAL为PART的材料特性;

? QG为PART局部坐标系圆点;REULER为PART局部坐标系相对于地面坐标系的三个欧拉角;

? QG为PART局部坐标系圆点;ZG为PART局部坐标系的Z轴方向上一点,XG为PART局部坐标系的XOZ平面上任一点;

? VX、VY、VZ、为PART质心处初始速度在VM坐标系的三个投影分量; ? WX、WY、WZ为PART初始角速度在WM坐标系的三个投影分量; ? VM为定义初始速度的坐标系,缺省为地面坐标系; ? WM为定义初角始速度的坐标系,缺省为CM坐标系;

? EXACT为PART的质心坐标系相对于局部坐标系的六个坐标中的精确输入值,在初始装配中保持不变,关键字为X,Y,Z,PSI,THETA,PHI,其顺序可以任意。 举例如下:

PART/2, QG = 0, 0, 10, REULER=90D,30D,45D

, MASS = 1.40, CM = 3, IP = 145.2, 13716.1, 13802.2, VX = 10

, VY = 10, VZ = 0, WX = 0D, WY = 0D, WZ = 10D, EXACT = X:Y:PSI 上面语句表明,该PART id号为2,该PART局部坐标系圆点在地面坐标系中的位置为0,0,10;PART局部坐标系相对于地面坐标的欧拉角为90D,30D,45D;质量为1.40;质心坐标系标号为3;相对于质心坐标系的惯量为145.2, 13716.1, 13802.2,0,0,0;质心处初始速度(在地面坐标系分解)为10,10,0;初始角速度为在质心坐标系分解为0D/sec, 0D/sec, 10D/sec,其中质心坐标x,y及在PART局部坐标系中的第一个欧拉角在初始装配中保持不变(或优先保持不变)。

?

? ? ?

机械系统动力学分析及ADAMS应用

6.2.4几何单元

几何单元包含GRAPHICS,MARKER两种几何单元,这里分别对GRAPHICS,MARKER语句进行介绍。

GRAPHICS:GRAPHICS语句用于确定接触碰撞或表达图形,可以分两类分别定义接触的、定义几何图形的。这里介绍用于定义接触的GRAPHICS语句。 用于接触的GRAPHICS语句如下:

?, ARC, CM ? id, RADIUS ? r, RANGLE ? r???, BOX, CORNER ? id, X ? x, Y ? y, Z ? z???, CIRCLE, CM ? id, RADIUS ? r???, CURVE, CID ? id, CRM ? id???, CYLINDER, CM ? id, RADIUS ? r, LENGTH ? r,???RANGLE ? r????GRAPHICS/id, FRUSTUM, CM ? id, RADIUS ? r, LENGTH ? r, TOP ? r,??BOTTOM ? r, [RANGLE ? r]????, POINT, RM?id???, PLANE, RM ? id, XMIN ? r, XMAX ? r, YMIN ? r, YMAX ? r???, ELLIPSOID, CM ? id, XSCALE ? r, YSCALE ? r, ZSCALE ? r???, EXTERNAL, RM ? id, {File ? file_name,?????? [ELEMENT ? geometry_name]}?

? ARC:创建一个圆弧,由三个参数表达圆弧: CM为圆弧的圆心坐标系的id号;RADIUS为圆弧的半径值;RANGLE为圆弧的角度,要注意,CM坐标系的x轴为圆弧的始点。

举例如下:

MARKER/2, PART = 3, QP = -450, -50, 0, REULER = 1.565051177D, 0D, 0D GRAPHICS/2, ARC, CM = 2, RANGLE = 170D, RADIUS = 158.0

表明在MARKER(id=2)处作一个半径为158.0的圆弧,范围为170D。 ? BOX:创建一个矩形体,由4个参数表达长方体:

CORNER为该长方体一个角处的坐标系的id号;X,Y和Z是长方体沿着上面坐标系x,y和z轴三个方向的长度。

? CIRCLE:创建一个圆,由2个参数表达圆: CM为圆心处坐标系的id号;RADIUS为圆的半径。

? CURVE:创建基于数据单元CURVE语句的曲线图形。 CID为所需创建CURVE的id号;CRM为定义曲线的参考坐标系的id号。CONTACT。

和CVCV语句需要的曲线为平面曲线,且该平面必须为包含RM标记点的x,y轴的平面。 ? CYLINDER:创建一个顶面和底面都垂直于中心轴线的圆柱体,由4个参数表达。 CM为圆柱底面处圆心坐标系的id号,CM坐标系的z轴方向为圆柱体的中心线;RADIUS为圆柱体半径;RANGLE为圆柱体圆弧的角度,且总是以CM坐标系的x轴为起始点;LENGTH为圆柱体的高度。

第6章 ADAMS模型语言及仿真控制语言

举例如下:

GRAPHICS/6, CYLINDER, CM = 5, RANGLE = 160D, LENGTH = -200, RADIUS = 500 ? ELLIPSOID:创建一个椭圆,由4个参数表达。

CM为椭圆的圆心坐标系的id号。XSCALE,YSCALE和ZSCALE 为沿着CM坐标系的x,y和z轴的直径,如果三个值都相等,那就会创建一个球。

? FRUSTRUM:创建一个顶面和底面都垂直于中心轴线的锥体,由4个参数表达。 CM为锥体底面的圆心坐标系id号,CM坐标系的z轴为锥体的中心轴线;TOP和BOTTOM分别为锥体的上、下圆平面半径;RANGLE为锥体的旋转角度,且总是以CM坐标系x轴为起始点;LENGTH为锥体的高度。 举例如下:

GRAPHICS/10, FRUSTUM, CM = 5, RANGLE = 260D, LENGTH = 400 , SIDES = 20, TOP = 500, BOTTOM = 1000

? PLANE:创建一个有限平面,由5个参数表达。 RM为该平面的参考坐标系id号,该平面位于RM坐标系的x-y平面内(也就是说RM坐标系的z轴垂直于该平面;XMIN,XMAX,YMIN和YMAX为该平面在RM坐标系的x-y平面内的范围。平面为二维的,可以定义与其他单元(点,圆弧,圆和曲线以及球)接触碰撞。

? EXTERNAL:创建ADAMS/Solver可以识别的Parasolid图形,用于接触碰撞。 例如:

GRAPHICS/19, EXTERNAL, RM=100, FILE = test.xmt_txt,ELEMENT = part1

该GRAPHICS语句创建一个三维实体。该实体的数据包含在Parasolid的文件testl.Xmt_txt中。该文件中包含了几个几何实体,其中一个名为Part1。该实体以坐标系100为参考坐标系。

MARKER:该语句在空间定义了一个几何点和以该点引伸出的三个相互垂直的坐标轴。它的描叙形式如下所示:

??????,QP?x,y,z??????????,REULER?a,b,c?????????????,QP?x,y,z??????? ,PART?id??????????MARKER/id?,ZP? x,y,z?????????,POINT_MASS?id???????,XP? x,y,z [,USEXP]?????????????,FLOATING????????????????,qp?x,y,z??MARKER/id [,FLEX_BODY?id],NODE_ID?fem_node_id????

??,REULER?a,b,c??MARKER 必须从属于PART、POINT_MASS、FLEX_BODY三种惯性单元之一。特性上存与惯性单元固定或浮动。MARKER作为坐标系需要一个点定义其圆点,关于其方向

机械系统动力学分析及ADAMS应用

有三种定义方法。 举例说明:

MARKER/6, PART=4,QP=0,1,0, REULER=90D,45D,100D MARKER/7, PART=4,QP=0,1,0, ZP=0,1,10,XP=0,10,10

MARKER/8, PART=4,QP=0,1,0, ZP=0,1,10,XP=0,10,10,USEXP MARKER/9, PART=4,FLOTING

以上4个坐标系中6、7、8为与PART 4固定的坐标系,9为属于PART 4但为浮动坐标系,浮动坐标系在ADAMS/Solver中的VTORQUE,VFORCE, GFORCE, CVCV, and PTCV中需要。

坐标系6利用欧拉角定义该坐标系相对于PART 4的物体局部坐标系; 坐标系7利用ZP表达坐标系的z轴(QP指向ZP),XP为坐标系XOZ平面上一点,但不能与QP、ZP共线;ADAMS/Solver自动确定其x轴。

坐标系8利用XP表达坐标系的x轴(QP指向XP),ZP为坐标系XOZ平面上一点,但不能与QP、XP共线,ADAMS/Solver自动确定z轴,这种用法必须使用USEXP关键字。 又如柔体上坐标系:

MARKER/12, FLEX_BODY=5,NODE_ID=40,REULER=90D,30D,45D MARKER/13, FLEX_BODY=5,QP=100,100,0,REULER=90D,30D,45D

坐标系12位于FLEX_BODY 5上节点40处,利用欧拉角定义该坐标系相对于FLEX_BODY 5的物体局部坐标系;

坐标系13位于FLEX_BODY 5上,相对于FLEX_BODY 5的物体局部坐标系的位置为100,100,0,利用欧拉角定义该坐标系相对于FLEX_BODY 5的物体局部坐标系;ADAMS/Solver自动确定并调整其到相近节点处。

6.2.5约束单元

约束单元包括COUPLER,CVCV,GEAR,JOINT,JPRIM,MOTION,PTCV, UCON单元,这里分别对COUPLER,JOINT语句进行介绍,其它单元参考手册。

COUPLER语句:COUPLER语句将两个或者三个移动副或者转动副关联。其描叙如下:

COUPLER/id, JOINTS?id1, id2[,id3]??T???T???,TYPE? ?? ?:?????R????R??????T????,SCALES?[r1,]r2[,r3]??:??????,FUNCTION?USER(r1,...,r30)????R??????

其中存在关系式:

r1*q1+r2*q2+r3*q3=0 q2/q3=r2/r3

举例说明如下:

JOINT/1, CYLINDRICAL, I = 3, J = 4 JOINT/2, REVOLUTE, I = 7, J = 8

JOINT/3, TRANSLATIONAL, I = 10, J = 11

COUPLER/1, JOINTS = 3, 2, 1, TYPE = T:R:T, SCALES = 90D, 2, -90D

第6章 ADAMS模型语言及仿真控制语言

该COUPLER语句将Joint 3的平动连接到Joint 2的转动上、Joint 1的平动上。铰链间位移关系为:(90D/180*3.14)*q1 +2*q2+(-90D/180*3.14)*q3 = 0。 同时满足q2/q3=2/(-90D/180*3.14)。 关系式中角度变量需换算为弧度。

JOINT语句:JOINT语句确定物体(刚体和柔性体)间的运动学约束。JOINT的类型有:等速铰(constant-velocity), 圆柱铰(cylindrical),固定铰(fixed),虎克铰 (Hooke), 平面铰

(planar),齿轮齿条铰 (rack-and-pinion),转动铰 (revolute), 螺纹铰(screw), 球铰 (spherical),移动铰(translational), 和广义万向节铰(universal joints). 其格式如下:

?CONVEL???CYLINDRICAL???????,ICTRAN?r1,r2????FIXED ????,ICROT? r1,r2?????????HOOKE???PLANAR?JOINT/id, I?id, J?id,???RACKPIN,PD?r??REVOLUTE [,IC?r1,r2]????SCREW,PITCH?r??SPHERICAL????TRANSLATIONAL,[IC?r1,r2]??????UNIVERSAL?

J?????利用?、 J MARKER来定义运动学铰链约束。下面对各种运动学约束的要求作

介绍。

? CONVEL

该铰链定义两个 PART 具有相同转动速度, I、J MARKER的坐标必须相同且I、J MARKER的Z轴是两个 PART的转动轴,I MARKER Z轴方向背离J MARKER,J MARKER Z轴方向背离I MARKER,同时,I MARKER X轴方向需与J MARKER X轴方向平行。产生4个约束方程。

? CYLINDRICAL

该铰链定义两个 PART 可以沿着I、J MARKER的Z轴平动和转动。定义要求I、J MARKER的坐标必须相同,其Z轴需同向并重合。产生4个约束方程。

? FIXED

该铰链定义两个 PART固接,要求I 和J MARKER坐标圆点重合。产生个6约束方程。 ? HOOKE

该铰链定义两个PART可以分别沿自己的I MARKER的x轴、JMARKER的y轴转动。定义要求I MARKER的X轴垂直于J MARKER的Y轴,从而形成十字叉,I MARKER的Z 轴、J MARKER的Z轴分别为其转轴方向,I 和J MARKER的原点重合,在十字的中心。HOOKE与UNIVERSAL的功能相同,但两者之间MARKER的定义方式不同。产生4个约束方程。

机械系统动力学分析及ADAMS应用

? PLANAR

该铰链定义一个PART的一个平面可以相对于第二个PART的一个平面相对滑动。定义要求I MARKER 和J MARKER的Z轴平行,XOY平面重合。产生3个约束方程。 ? RACKPIN

该铰链定义一个PART的的一个转动自由度与另一个PART的移动自由度相关。定义要求I MARKER的Z轴为其转动轴向,J MARKER的Z轴为其移动轴向,PD应为I MARKER的Z轴到J MARKER的Z轴距离的两倍,产生一个约束方程,完全可以由COUPLER代替。 ? REVOLUTE

该铰链定义一个PART可以相对于第二个PART以一确定轴线转动。定义要求I MARKER 和J MARKER的坐标圆点以及Z轴重合,Z轴为其相对转动轴。产生5个约束方程。 ? SCREW

该铰链定义一个PART可以相对于第二个PART以一确定轴线转动并同时沿着该轴线移动,只不过转动与移动存在一定的关系,即每转一圈产生一个螺距(PITCH)的移动。定义要求I MARKER 和J MARKER的Z轴共线。产生一个约束方程。 ? SPHERICAL

该铰链定义一个PART可以相对于第二个PART自由转动。定义要求I MARKER 和J MARKER的坐标圆点重合,产生3个约束方程。 ? TRANSLATIONAL

该铰链定义一个PART可以相对于第二个PART沿着一轴线移动,不能转动。定义要求I MARKER 和J MARKER的Z轴共线。产生5个约束方程。 ? UNIVERSAL

该铰链定义两个PART可以分别沿自己的I MARKER的Z轴、JMARKER的Z轴转动。定义要求I MARKER的Z轴垂直于J MARKER的Z轴,从而形成十字叉, I 和J MARKER的原点重合,在十字的中心。UNIVERSAL与HOOKE的功能相同,但两者之间MARKER的定义方式不同。产生4个约束方程。

6.2.6力元

力元包括ACCGRAV,BEAM,BUSHING,CONTACT,FIELD,FRICTION,GFORCE,MFORCE,NFORCE ,SFORCE,SPRINGDAMPER,VFORCE ,VTORQUE单元,这里分别对BEAM,FIELD语句进行介绍,其它单元参考手册。

BEAM:ADAMS中可以使用无质量的等截面梁来定义两个PART之间的作用力。ADAMS/Solver根据输入梁的物理特性,按照铁木辛柯梁理论求解梁中的各种力。

其语句格式如下:

BEAM/id, I?id, J?id, LENGTH?r, IXX?r, IYY?r, IZZ?r,AREA?r [,ASY?r] [,ASZ?r], EMODULUS?r, GMODULUS?r??CMATRIX?r1,...,r21???,???CRATIO?r??????

利用I MARKER、J MARKER定义一个无质量梁,其中 J MARKER的 X轴为梁的轴

第6章 ADAMS模型语言及仿真控制语言

向。I MARKER在梁无变形时应在J MARKER的 X轴上,并且I MARKER、J MARKER的坐标系平行。其它参数如下:

? LENGTH为梁沿着J MARKER的 X轴的非变形长度。 ? IXX为沿J MARKER的 X轴极惯性矩。

? IYY、IZZ分别为沿着梁的横截面的中心轴(y-y和z-z)的惯性矩。 ? AREA为梁的横截面积。梁的中性轴一定垂直通过该横截面。 ? ASY为铁木辛柯梁的y方向的剪切修正因子。 ? ASZ为铁木辛柯梁的z方向的剪切修正因子。 ? EMODULUS为铁木辛柯梁的弹性杨氏模量。 ? GMODULUS为铁木辛柯梁的弹性剪切模量。

? CMATRIX=r1,...,r21,为梁的结构阻尼矩阵元素,矩阵是对称的,只需要指明一半

的数据。输入矩阵的值如下式:

?r01?r02??r03?r04??r05??r06?? r07? r08 r12?

? r09 r13 r16?? r10 r14 r17 r19? r11 r15 r18 r20 r21?

? CRATIO为铁木辛柯梁结构阻尼矩阵与刚度矩阵的比率,缺省为零。

在梁的两个端点之间,作用有线性的拉伸、弯曲和扭转力矩,梁中各种力的计算公式如下式:

?Fx??K11???Fy0????F??0z??????Tx??0???0T?y???T??0??z?0K22000K6200K330K530000K440000K350K5500??x?L??C11????K26yC????21??C310??z?????0??a??C41??C0??b51????K66??c????C61??C21C22C32C42C52C62C31C32C33C43C53C63C41C42C43C44C54C64C51C52C53C54C55C65C61??Vx????C62?Vy??C63??Vz???? C64???x?C65???y????C66??????z? 式中,F,T分别为力和力矩;

X,Y,Z,a,b,c,Vx,Vy,Vz,?x,?y,?Z分别表示I,JMARKER之间的相对位移、转角、

速度、角速度;

机械系统动力学分析及ADAMS应用

K,C分别表示刚度系数和阻尼系数;

L为梁I,JMARKER之间的距离(梁的长度);

举例如下:

BEAM/2, I=10, J=20, LENGTH=100

, IXX=1000, IYY=500, IZZ=500, AREA=25.0

, ASY=1.11, ASZ=1.11, EMOD=28E6, GMOD=10.6E6, , CRATIO=0.0001

FIELD :该语句定义I,JMARKER之间的平动和转动的作用力和反作用力。语句格式如下:

?????????i,d ?J?i????????????,CRATI???X???,CMATRI???,KMATRI?X????,FORCE ??? ???,LENGTHd,?????? ???FUNC?TION U(S E1[R,...r,? 30r])[\\LENGTH ? r1,...,r6]?????????O ??????? 1r,...,r6?3???? 1r,...,r36?? r1,...,r6???? 1r,...,r?6? r

FIELD/i,d ?I? CRATIO为CMATRIX相对于KMATRIX的比率。如果输入CRATIO,ADAMS/Solver

通过CRATIO乘KMATRIX获得CMATRIX。缺省值为零。 ? CMATRIX为一个6*6的阻尼系数。其格式如下式:

? r1 r7 r13 r19 r25 r31?r2 r8 r14 r20 r26 r32??r3 r9 r15 r21 r27 r33??r4 r10 r16 r22 r28 r34?r5 r11 r17 r23 r29 r35???r6 r12 r18 r24 r30 r36??????????

? KMATRIX为一个6*6的刚度系数矩阵。其格式如下:

第6章 ADAMS模型语言及仿真控制语言

? r1 r7 r13 r19 r25 r31?r2 r8 r14 r20 r26 r32??r3 r9 r15 r21 r27 r33??r4 r10 r16 r22 r28 r34?r5 r11 r17 r23 r29 r35???r6 r12 r18 r24 r30 r36??????????

? FORCE为对应于I,JMARKER 之间3个移动和3个转动的预载荷。 ? LENGTH为I,JMARKER 之间6个自由状态下的初始位移。 ? FUNCTION为利用用户子程序FIESUB来定义一个非线性力场。

? FIELD的力与力矩关系如下式:

?Fx??K11???FK?y??21?F??K31z??????Tx??K41???KTy51????T???K61?z?K12K22K32K42K52K62K13K23K33K43K53K63K14K24K34K44K54K64K15K25K35K45K55K65K16??x?x0????K26y?y0???K36??z?z0?????K46??a?a0?K56??b?b0????K66??c?c0?????C11?C?21?C31??C41?C51???C61C21C22C32C42C52C62C31C32C33C43C53C63C41C42C43C44C54C64C51C52C53C54C55C65C61??Vx????C62?Vy??C63??Vz?????C64???x?C65???y????C66??????z??F1???F?2??F3??? ?T1??T?2???T3???

FIELD的计算公式同BUSHING的计算公式相似,不同之处是FIELD计算公式中刚度和阻尼系数

Kij和

Ciji?j(

)不为零。同时,考虑初始位移X,Y,Z和转角a,b,c。FIELD

提供了定义最一般的力的方法,因此也可以利用FIELD来定义一般情况下的梁,例如可以定义变截面的梁或者是使用非线性材料的梁。

举例如下:

FIELD/1, I=100, J=57, KMATRIX=0.198E+04 , 0, 0.126E-01, 0, -0.147E+04, 0, , 0, 0, 0, 0, 0, 0,

, 0.126E-01, 0, 0.208E+03, 0, -0.933E-02, 0, , 0, 0, 0, 0, 0, 0,

,-0.147E+04, 0, -0.933E-02, 0, 0.763E+07, 0, , 0, 0, 0, 0, 0, 0

, LENGTH=0, 150, 0, 0, 0, 0

6.2.7系统模型单元

系统单元包括DIFF,GSE ,LSE ,TFSISO,VARIABLE,这里分别对DIFF,VARIABLE

机械系统动力学分析及ADAMS应用

语句进行介绍。

DIFF :DIFF语句用于创建一个用户自定义的状态变量,利用一阶微分方程来表达该变量。其格式如下:

?e?DIFF/id IC?r1 [,r2][,STATIC_HOLD], FUNCTION???[\\IMPLICIT]?USER(r1[,...,r30])?

? IC当输入表达式为变量的显式时,为定义变量的初始值;如果输入表达式是一个隐

函数表达式,为定义变量的初始值及导数的近似值。如果提供的是一个显函数,就不用提供变量的导数的初值,因为ADAMS/Solver可以从方程中直接计算出变量的导数。

? STATIC_HOLD指在静态分析和准静态分析中变量的值不允许改变。 ? IMPLICIT指函数表达式或者DIFSUB子程序定义为隐式微分方程。如果没有指明为

IMPLICIT的情况下,ADAMS/Solver就会假定表达式或者DIFSUB为显式方程。 ?

为微分方程表达式,用户可以自定义表达式来定义微分方

程。其格式中,USER为字符串,r1[,…,r30]为数值表,传递系统变量到用户定义子程序DIFSUB中。在函数表达式中,DIF(i)为DIFF/i语句中定义的变量值。DIF1(i)为DIFF/i语句定义的变量的导数。 举例如下: DIFF/1, IC=2

,FUNCTION = -5.0*DIF(1) + 8.0 + COS(TIME) DIFF/1定义了变量的显式形式为:

y??5y?8?cos?t???e?FUNCTION????USER(r1[,...,r30])?,y(0) = 2

DIFF/2, IC=2, IMPLICIT

, FUNCTION = DIF1(2) + 5.0*DIF(2) - 8.0 - COS(TIME) DIFF/2定义公式的隐式形式为:

y?5y?8?cos?t??0? y(0) = 2

VARIABLE:VARIABLE语句以代数表达式的形式定义变量。其格式如下:

?e?VARIABLE/id, [IC?r] FUNCTION????USER(r1[,...,r30])?

IC为VARIABLE的初始值。

FUNCTIONe??

????USER(r1[,...,r30])?为VARIABLE的表达式子程序中定义的变量。如

果显通过表达式来定义变量,FUNCTION后面需要有等号和表达式。如果用用户子程序来

定义变量,FUNCTION后面需要有等号,字符串USER,以及ADAMS/Solver将要传递给用

第6章 ADAMS模型语言及仿真控制语言

户子程序VARSUB的值(r1[,…r30])

举例如下:

VARIABLE/4, FUNCTION = IMPACT(DZ(10,90), , VZ(10,90), 1, 3E5, 1.2, 1,.05)

该VARIABLE语句利用碰撞函数定义了一个变量。

6.2.8轮胎单元

TIRE:TIRE语句定义轮胎单元。该语句可以模拟车辆与地面之间的相互作用力以及轮胎的旋转作用,须提供轮胎的属性文件(.tpf)和路面数据文件(.rdf)。轮胎属性文件包含一些参数,如ADAMS/Solver用来计算轮胎力的cornering stiffness(侧偏刚度)。而且轮胎模型类型不同,轮胎属性文件中的须提供的参数也不相同。路面数据文件(.rdf)定义了轮胎碾过的路面数据。

TIRE的其格式如下:

TIRE/id, IP?xx, yy, zz[,xy, xz, yz], J?id, MASS?????????????r]??????????????????????S?r1[,...,r30]?????????id[,...,id30]?????r, TPF?c?id??,IMARKID??,CMOFFSET?x, y, z????,RDF?c??,RGRA????,RLENGTH?r[,ALPHA0???r]??,SEGS?i[,WIDTH??,WZ?r???????,MODEL??????,JOINT?????DELFT?FIALA??SMITHERS???UATIRE??,UPARAMETER?USER???,USTRINGS????NONE[,

VX?r][,VY?r][,VZ?r]????,JOINT?id??轮胎是一个综合单元,它代表了由一些更基本的ADAMS/Solver语句组成的复杂实

体,这些语句包括PART,MARKER,GRAPHICS,和GFORCE。当每次创建一个TIRE时,ADAMS/Solver会自动地创建这些语句。这些组成部分的作用如下: ? PART:用来表达轮胎的惯性力。

? GFORCE:以一组三维力和力矩来表达车辆与路面的相互作用。 ? MARKERS:指定连接点处的坐标。 ? JOINT:将轮胎连接到车辆上。

? GRAPHICS:显示轮胎和路面状况。

机械系统动力学分析及ADAMS应用

语句中的各部分参数意义如下:

? ALPHA0=r :指明αold 的初始值,用来计算轮胎侧偏角的一阶滞后影响。 ? CMOFFSET=x,y,z:定义从I MARKER点到轮胎质心处的位移。x,y和z为I MARKER

的坐标值。轮胎质心MARKER与I MARKER的坐标方向相同。

? IMARKID=id:为TIRE创建的I MARKER的id号。I MARKER为轮胎连接到车辆上

的位置和方向。如果没有指明I MERKID时,ADAMS/Solver会在内部创建I MARKER。当使用了JOINT=NONE选项时,必需要指明I MARKER。 ? IP=xx,yy,zz[,xy,xz,yz]:指明轮胎的6个惯性矩(积)。惯性矩(积)相对于轮胎的质

心坐标CM。

? J=id:为轮胎被连接到车辆上的MARKER的id号。J MARKER的z 轴必须平行于轮

胎的旋转轴(使用右手法则)。如果车辆的四个轮子都向前旋转,则四个轮胎的J MARKER的z 轴都要指向左边。

? JOINT=id:指明TIRE语句中创建的连接点转动铰链的id号。JOINT缺省时为

ADAMS/Tire自动创建的id值。

? JOINT=NONE:允许创建轮胎,但不直接连到车辆上。需要使用JOINT或者

BUSHING进一步语句才能将轮胎安装到车辆上。

? MASS=r:指明轮胎部分的质量。该值包括轮胎,轮辋和所有刚性连接的旋转子部

件(如刹车片等等)。

? RDF=c:指明路面数据文件(RDF)的路径和文件名。该路面数据文件包含了一个

三维路谱和路面的摩擦属性的信息。 ? RGRA:定义一个flag值(0或1),1使ADAMS/Solver自动生成路面图形。该图形是

由TIRE命令中指明的路面数据文件中的数据生成的。

? RLENGTH为考虑轮胎侧偏角一阶滞后影响的松弛长度(relaxation length)。

? SEGS为圆柱和锥体的两个平行的圆之间的绘制的直线段的数量,近似的代表圆的

圆周。

? TPF=c:为轮胎属性文件的路径和文件名。轮胎属性文件包含了DAMS/Solver用来

计算在给定的系统条件下的轮胎力和力矩的所有的输入数据。

? UPARAMETERS=r1[,...,r30]:定义了至多三十个实数用来传递给TIRSUB函数。 ? USTRINGS=id1[,...,id30]:定义了至多三十个字符串标志符,它们的相应的字符串

被传递给TIRSUB。

? VX=r, VY=r, VZ=r:指明了轮胎质心处沿着全局坐标系的x ,y,z轴的初始速

度。

? WIDTH=r:为轮胎的宽度。

? WZ=r:轮胎相对于I MARKER的z 轴的初始的旋转速度。 举例如下: TIRE/1, J=303 , MASS=10,

, IP=25.0E4,25.0E4,33.0E4 , TPF=TIRE.TPF

第6章 ADAMS模型语言及仿真控制语言

该例子中,缺省文件为Fiala模型。缺省的路面为平直路面。另外,所有需要的单元被自动创建。下面的一个例子涉及到了一些初始转速和路面图形:

TIRE/2, J=305 , MASS=10,

, IP=25.09E4,25.09E4,33.56E4 , TPF=TIRE.TPF , WZ=22.5 , SEGS=5 , RGRA

6.2.9数据单元

数据单元包括ARRAY ,CURVE,MATRIX,PINPUT,POUTPUT,SPLINE,STRING,这里分别对ARRAY,CURVE语句进行介绍。

ARRAY:ARRAY语句定义一组数组,其中可包括输入变量(U),状态变量(X),和输出变量(Y),或者与系统单元GSE,LSE和TFSISO相关的的初始条件。 其语句形式如下:

?,X [,SIZE???,U [,SIZE???,Y [,SIZE??[,IC] [,SIZE?i]i], VARIABLESi]?i], NUMBERS?r1[,...,r1200]?id1[,...,id1200]???????ARRAY/id

? IC创建一维数组,可以在用户自定义子程序中引用。也可以为LSE或者GSE来分配

初始状态数组。

? NUMBERS=r1[,...,r1200]:当使用IC数组时,允许输入一维的实数组。 ? SIZE=I:定义数组的大小。范围为1到1200。

? VARIABLES=id1[,...,id1200]:将全部VARIABLE 的id集合。

? X:对于系统单元LSE,GSE或者TFSISO,将 ARRAY命令指定为状态变量数组。 ? U:将集合了VARIABLES创建为数组。

? Y:对于系统单元LSE,GSE或者TFSISO,将 ARRAY命令指定为输出数组。 举例如下: ARRAY/1, X

ARRAY/2, U, VARIABLES=2

ARRAY/3, IC, NUMBERS= 0.0, 0.0

CURVE::该语句定义三维参数曲线,其表达式如下所示:

机械系统动力学分析及ADAMS应用

?OPENCURVE/id??,CLOSED?? ?

???MINPAR?r????,FUNCTION?USER (r1[,...,r30])\\ ????????MAXPAR?r??????,CONTROL_POINTS???MATRIX?id?????CURVE_POINTS [,TENSION?r]???? CLOSED :曲线是闭环曲线。

? OPEN:曲线为开环曲线。

? FUNCTION=USER (r1[,...,r30])\\:定义并传递参数给用户子程序CURSUB以计算曲

线坐标和偏导。

? MAXPAR=r:用户子程序定义曲线参数的最大值。缺省值为1.0。 ? MINPAR=r:为用户子程序定义曲线参数的最小值。缺省值为-1.0。 ? MATRIX=id:为包含曲线数据的MATRIX的id号。

? CONTROL_POINTS: 基于控制点的三次多项式的B样条曲线。 ? CURVE_POINTS:曲线通过数据点。

? TENSION=r:为B样条曲线运算使用中的收敛因子。缺省值为0.05。其范围为0到无

穷大。 举例如下:

CURVE/5, OPEN, CURVE_POINTS, MATRIX=2

该语句以MARTRIX/2中的曲线点坐标创建了一条开环曲线。ADAMS/Solver以B样条曲线来对该点进行插值。

6.2.10分析参数单元

分析参数单元包括DEBUG,EQUILIBRIUM,IC,INTEGRATOR,KINEMATICS, SENSOR ,UINT。这里分别对DEBUG, EQUILIBRIUM语句进行介绍。

DEBUG :该语句用于输出数据的定义以方便系统调试。其语句形式如下:

??DUMP????EPRINT??????,VEBOSE????,REQDUMP?,JMDUMP???????,RHSDUMP????,DOF????????,TOPOLOGY????????????DEBUG/

? DOF:将自由度信息以表格文件的形式打印出。缺省为Off。 ? DUMP:将系统的方程按ADAMS/Solver内部表示法文件的形式打印出。缺省为Off。 ? EPRINT:打印出每一步长下的信息,可以根据输出的信息确定误差的来源。缺省

为Off。

? JMDUMP:在每次迭代时雅可比矩阵运算信息。缺省为Off。

? REQDUMP:在每次迭代时,对REQUEST和MREQUEST进行输出。缺省为Off。 ? RHSDUMP:在每次迭代时,对YY数组(状态向量),RHS数组(误差信息),和

DELTA数组(状态向量的增量)进行输出。缺省为Off。

第6章 ADAMS模型语言及仿真控制语言

? TOPOLOGY:msg文件中打印出系统拓扑结构数据。缺省为Off。 ? VERBOSE:将附加的信息打印到屏幕,如子程序名等。缺省为Off。 举例如下:

DEBUG/EPRINT

该DEBUG语句将打印出每一步长下的信息。

EQUILIBRIUM:该EQUILIBRIUM语句指明了在静平衡分析和准静态分析中的误差和其它参数。其语句形式如下:

????ALIMIT ? r????????,ERROR ? r??????????,IMBALANCE ? r????????STATIC,??,MAXIT ? r????????,PATTERN ? c1 [ : . . . : c10]??????????,STABILITY ? rEQUILIBRIUM/????????,TLIMIT ? r?????????????ACCELERATION_ERROR ? r?????????,GLOBAL_DAMPING ? r????DYNAMIC,?????,KINETIC_ENERGY_ERROR ? r?????????,SETTLING_TIME ? r??????????

? ACCELERATION_ERROR=r:利用动力学仿真进行静力学仿真时允许的最大加速

度误差。缺省值为1.0E-02,取值范围大于零。

? ALIMIT=r:在进行静态仿真时允许的最大角度增加量。缺省值为0.17453(10D),

取值范围大于零。

? DYNAMIC: ADAMS/Solver利用动力学进行静力学仿真。

? ERROR=r:在静力学仿真时允许的最大相对位移误差。缺省值为1.0E-04,取值范

围大于零。

? GLOBAL_DAMPING=r:指明动力学仿真时施加在所有物体上的阻尼系数。缺省值

为0,取值范围大于等于零。

? IMBALANCE=r:在静态仿真时允许的最大不平衡力。缺省值为1.0E-04,取值范围

大于零。

? KINETIC_ENERGY_ERROR=r:指明在静态仿真时最大动能误差。缺省值为

1.0E-02,取值范围大于零。

? MAXIT=I:在静态仿真时最大迭代数。缺省值为25,取值范围大于零。

? PATTERN=c1[:...:c10]:在静力学仿真中Newton-Raphson迭代的雅可比矩阵是否进

行更新运算。

? SETTLING_TIME=r:在利用动力学分析进行静力学仿真时允许的最长时间。缺省

值为100,取值范围大于零。

? STABILITY=r:将质量阵和阻尼阵按此比例增加到刚度阵,将增加收敛速度而不影

响精度。

? STATIC=r:ADAMS/Solver使用静态分析进行静力学仿真。缺省为STATIC。

机械系统动力学分析及ADAMS应用

? TLIMIT=r:指明在静态仿真时最大平移增量。缺省值为20,取值范围大于零。 举例如下:

EQUILIBRIUM/ STABILITY=0.01, TLIMIT=10 , IMBALANCE=1.0E-05

6.2.11输出单元

输出单元包括FEMDATA ,LIST/NOLIST,MREQUEST,OUTPUT,REQUEST,RESULTS。这里分别对FEMDATA, MREQUEST语句进行介绍。

FEMDATA:该语句输出构件载荷,变形,应力和应变的数据文件,以作为有限元分析金或疲劳寿命分析的输入。如果使用OUTPUT命令就必需要指明FEMDATA产生文件的类型。只有在OUTPUT命令中指明了格式FEMDATA才会输出文件。其语句格式如下:

FEMDATA/id,??RM ? id????LOADS,,PEAK_SLICE ? FX:FY:FZ:FMAG:GMAG????FLEX_BODY ? id????RMATION, FLEX_BODY ? id?MODAL_DEFO???NODAL_DEFORMATION,FLEX_BODY ? id,DATUM ? node_id ,?NODE ? id1 [,?idn]????STRAIN, FLEX_BODY? ? id,?NODE ? id1 [,?idn]?????STRESS,, FLEX_BODY ? id,NODE ? id1 [,?idn]? ??,FILE ? name??START ? t1??,END ? t2??,SKIP ? n?

? ? ? ? ? ? ? ? ? ? ? ? ? LOADS:输出所有施加在指定物体上的外部力以及惯性力,以时间为函数的。 RM = id:输出载荷的参考坐标系。

FLEX_BODY = id: 指明FENDATA输出数据的柔性体的ID值。

PEAK_SLICE = FX:FY:FZ:FMAG:GMAG:在载荷的峰值处输出FEM载荷数据。 MODAL_DEFORMATION:输出指定柔性体上模态变形,以时间为函数的。 NODAL_DEFORMATION:输出指定柔性体上节点变形,以时间为函数的。

DATUM = node_id:指明节点的ID。ADAMS/Solver根据节点的ID来计算节点的位移。

NODE = id1 [,?,idn]:指明将要输出数据的节点集合。 STRAIN:输出在指定物体上的应变信息。 STRESS:输出在指定物体上的应力信息。 FILE = name:对FEM数据指明输出文件名。

START = t1:指明输出数据的开始时间。缺省情况下为仿真开始时间。 END = t2:指明时间t2,在该时间点终止数据输出。

第6章 ADAMS模型语言及仿真控制语言

? SKIP = n:当输出数据时,指明要跳过的输出步数。缺省情况下n=0(就是每一步都

要输出)。 举例如下:

FEMDATA/1, LOADS, RM=201 , PEAK_SLICE = GMAG , FILE = peak201.nas

OUTPUT/LOADS = NASTRAN

MREQUEST :该MREQUEST语句定义多个输出数据,该数据可以被ADAMS/Solver写进表格输出文件和请求文件中。其格式如下所示:

?DISPLACEMENT?VELOCITY?MREQUEST/id??ACCELERATION?FORCE?????????[J?id,] PARTS

本文来源:https://www.bwwdw.com/article/p6vr.html

Top