第章模型语言及仿真控制语言本章对ADAMS的模型语言及仿真控制语言进行了简介通过本章的学习可以掌握ADAMSSolver模型语言adm文件ADAMSSolver仿真控制语言acf文件的语法结构对一些关键语句进行深入的说明通过学习可以深刻理解ADAMS中几何约束力元等的实质可以脱离ADAMSView环境直接利用ADAMSSolver进行一些高级应用并为进一步的ADAMS二次开发打下基础的主要文件介绍ADAMS中关于模型及分析主要有以下几种类型文件ADAMSView二进制数据库bin文件ADAMSView命令cmd文件ADAMSSolver模型语言adm文件ADAMSSolver仿真控制语言acf文件以及ADAMSSolver仿真分析结果文件req文件res文件gra文件out文件msg文件ADAMSView二进制数据库bin文件以bin为文件名后缀文件中记录了从ADAMS启动后到存储为bin文件时的全部信息包含模型的完整拓扑结构信息模型仿真信息以及后处理信息可以包含多个模型多个分析工况和结果可以保存ADAMSView的各种设置信息文件为二进制不能阅读编辑只能通过ADAMSView调阅由于信息全面一般文件都比较大ADAMSView命令cmd文件以cmd为文件名后缀是由ADAMSView命令编写的模型文件可以包含模型的完整拓扑结构信息包括所有几何信息模型仿真信息为文本文件可读性强可以进行编程是ADAMS的二次开发语言不包含ADAMSView的环境设置信息不包含仿真结果信息只能包含单个模型ADAMSSolver模型语言ADAMSDataLanguageadm文件以adm为文件名后缀文件中包含模型中拓扑结构信息但有些几何形体如link等不能保留ADAMSView的环境设置不能保留ADAMSSolver可以读取adm文件与ADAMSSolver仿真控制语言acf文件配合可以直接利用ADAMSSolver进行求解ADAMSSolver仿真控制语言acf文件以acf为文件名后缀文件中可以包含ADAMSSolver命令对模型进行修改和控制的命令从而控制仿真的进行ADAMSSolver将仿真分析结果中用户定义的输出变量输出到req文件以req为文件名后缀ADAMSSolver将仿真分析结果中将模型的缺省输出变量输出到res文件以res为文件名后缀ADAMSSolver将仿真分析结果中图形部分结果输出到gra文件以gra为文件名后缀ADAMSSolver将仿真分析结果中用户定义的输出变量以列表的形式输出到out文件以out为文件名后缀ADAMSSolver将仿真过程中的警告信息错误信息输出到msg文件以msg为文件后缀下图为各种文件之间的关系机械系统动力学分析及ADAMS应用图61ADAMS各文件间的关系模型语言模型语言分类及其语法介绍ADAMSSolver模型语言可以定义系统的拓扑结构确定系统的输出定义仿真分析参数等以下列表61是按功能分类的ADAMSSolver模型语言分类表61ADAMSSolver模型语言模型语言类型模型语言关键字1模型语言格式ADAMSSolveradmacfreqresgraoutmsg第6章ADAMS模型语言及仿真控制语言ADAMSSolver模型语言的格式如上一般包括id号以及一个或多个变量表达式现以MARKER语句说明其中表示三项中必须选择一种参数表示可以任选两种中一种参数表示一种参数组合因此在ADAMSSolver模型语言定义中可以定义如下MARKER201PART4QP100100100REULER90D0D0DMARKER202PART4QP100100100ZP100100105XP100105100MARKER203PART4FLOATING2变量表达式其中变量表达式分为以下几类可以根据类别不同选择不同的变量名变量可以由一系列数值赋值变量由一系列字符串赋值变量由表达式赋值1根据类别不同选择不同的关键词如上面MARKER第三种定义其中FLOATING为关键词不需赋值又如SFORCE10I8J9TRANSLATIONFUNCTION100DM8913200其中TRANSLATION是可以在TRANSLATION和RORTATION两个关键词选择一个不需赋值2变量可以由一系列数值赋值如上面MARKER中QP1001001003变量由一系列字符串赋值如积分算法说明定义INTEGRATORGSTIFFPATTERNTFFFTFFFTTHMIN10E005KMAX3INTERPOLATEONCORRECTORMODIFIED其中PATTERNTFFFTFFFTT由一系列字符串赋值4变量由表达式赋值如MOTION1JOINT1FUNCTIONPOLYTIME00360DMOTION2JOINT2FUNCTIONUSER00628机械系统动力学分析及ADAMS应用其中FUNCTIONPOLYTIME00360D为函数表达式FUNCTIONUSER00628为用户子程序表达式3模型语言中的特殊约定1关于角度模型语言中角度缺省单位为弧度如需度则需在数字后加D如RELUER90D0D90D在out文件中角度缺省单位为弧度可以通过OUTPUT语句中设置DSCALE变为度2关于变量可以任意颠倒变量的先后次序变量名可以利用缩写变量可以大写也可以小写如果没有提供变量并赋值ADAMSSolver认为变量被赋缺省值不要将实型赋给整型变量3空格与制表符一个变量中连续出现5个空格或更多的空格ADAMSSolver认为空格后无效但TITLE和函数表达式除外4说明语句感叹号后为说明说明语句可以在任何位置5续行第一例为表示该行为续行或行尾为amp表示下行为续行如下所示6隔符同一语句中变量间的分隔符使用其中表示可以在一行写两个语句7id号用于同一系统存在多个相同拓扑结构类型定义如MARKER201PART4QP100100100REULER90D0D0DMARKER202PART4QP100100100ZP100100105XP100105100其中201202为id号以区分同一语句MARKER8语句一个语句必须在前5例开始否则ADAMSSolver认为该行为注释行语句必须在180例之间可以续行模型文件的开头与结尾1TITLE位于adm模型文件的第一行为一串字符如ThisisTheTruckSimulationModel2003102END位于adm模型文件的最后一行TITLE与END之间的语句构成ADAMSSlover的主题语句顺序可以变化惯性单元惯性单元包含三种惯性单元PARTFLEXBODYPOINTMASS这里仅对PART简要介绍FLEXBODYPOINTMASS可以有关参考手册PARTPART语句确定刚体的质量惯量信息质心位置初始位置方位初始速度PART语句有两种PARTidGROUND表明该PART被定义为地面第6章ADAMS模型语言及仿真控制语言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平面上任一点VXVYVZ为PART质心处初始速度在VM坐标系的三个投影分量WXWYWZ为PART初始角速度在WM坐标系的三个投影分量VM为定义初始速度的坐标系缺省为地面坐标系WM为定义初角始速度的坐标系缺省为CM坐标系EXACT为PART的质心坐标系相对于局部坐标系的六个坐标中的精确输入值在初始装配中保持不变关键字为XYZPSITHETAPHI其顺序可以任意举例如下PART2QG0010REULER90D30D45DMASS140CM3IP1452137161138022VX10VY10VZ0WX0DWY0DWZ10DEXACTXYPSI上面语句表明该PARTid号为2该PART局部坐标系圆点在地面坐标系中的位置为0010PART局部坐标系相对于地面坐标的欧拉角为90D30D45D质量为140质心坐标系标号为3相对于质心坐标系的惯量为1452137161138022000质心处初始速度在地面坐标系分解为10100初始角速度为在质心坐标系分解为0Dsec0Dsec10Dsec其中质心坐标xy及在PART局部坐标系中的第一个欧拉角在初始装配中保持不变或优先保持不变机械系统动力学分析及ADAMS应用几何单元几何单元包含GRAPHICSMARKER两种几何单元这里分别对GRAPHICSMARKER语句进行介绍GRAPHICSGRAPHICS语句用于确定接触碰撞或表达图形可以分两类分别定义接触的定义几何图形的这里介绍用于定义接触的GRAPHICS语句用于接触的GRAPHICS语句如下ARC创建一个圆弧由三个参数表达圆弧CM为圆弧的圆心坐标系的id号RADIUS为圆弧的半径值RANGLE为圆弧的角度要注意CM坐标系的x轴为圆弧的始点举例如下MARKER2PART3QP450500REULER1565051177D0D0DGRAPHICS2ARCCM2RANGLE170DRADIUS1580表明在MARKERid2处作一个半径为1580的圆弧范围为170DBOX创建一个矩形体由4个参数表达长方体CORNER为该长方体一个角处的坐标系的id号XY和Z是长方体沿着上面坐标系xy和z轴三个方向的长度CIRCLE创建一个圆由2个参数表达圆CM为圆心处坐标系的id号RADIUS为圆的半径CURVE创建基于数据单元CURVE语句的曲线图形CID为所需创建CURVE的id号CRM为定义曲线的参考坐标系的id号CONTACT和CVCV语句需要的曲线为平面曲线且该平面必须为包含RM标记点的xy轴的平面CYLINDER创建一个顶面和底面都垂直于中心轴线的圆柱体由4个参数表达CM为圆柱底面处圆心坐标系的id号CM坐标系的z轴方向为圆柱体的中心线RADIUS为圆柱体半径RANGLE为圆柱体圆弧的角度且总是以CM坐标系的x轴为起始点LENGTH为圆柱体的高度第6章ADAMS模型语言及仿真控制语言举例如下GRAPHICS6CYLINDERCM5RANGLE160DLENGTH200RADIUS500ELLIPSOID创建一个椭圆由4个参数表达CM为椭圆的圆心坐标系的id号XSCALEYSCALE和ZSCALE为沿着CM坐标系的xy和z轴的直径如果三个值都相等那就会创建一个球FRUSTRUM创建一个顶面和底面都垂直于中心轴线的锥体由4个参数表达CM为锥体底面的圆心坐标系id号CM坐标系的z轴为锥体的中心轴线TOP和BOTTOM分别为锥体的上下圆平面半径RANGLE为锥体的旋转角度且总是以CM坐标系x轴为起始点LENGTH为锥体的高度举例如下GRAPHICS10FRUSTUMCM5RANGLE260DLENGTH400SIDES20TOP500BOTTOM1000PLANE创建一个有限平面由5个参数表达RM为该平面的参考坐标系id号该平面位于RM坐标系的xy平面内也就是说RM坐标系的z轴垂直于该平面XMINXMAXYMIN和YMAX为该平面在RM坐标系的xy平面内的范围平面为二维的可以定义与其他单元点圆弧圆和曲线以及球接触碰撞EXTERNAL创建ADAMSSolver可以识别的Parasolid图形用于接触碰撞例如GRAPHICS19EXTERNALRM100FILEtestxmttxtELEMENTpart1该GRAPHICS语句创建一个三维实体该实体的数据包含在Parasolid的文件testlXmttxt中该文件中包含了几个几何实体其中一个名为Part1该实体以坐标系100为参考坐标系MARKER该语句在空间定义了一个几何点和以该点引伸出的三个相互垂直的坐标轴它的描叙形式如下所示MARKER必须从属于PARTPOINTMASSFLEXBODY三种惯性单元之一特性上存与惯性单元固定或浮动MARKER作为坐标系需要一个点定义其圆点关于其方向机械系统动力学分析及ADAMS应用有三种定义方法举例说明MARKER6PART4QP010REULER90D45D100DMARKER7PART4QP010ZP0110XP01010MARKER8PART4QP010ZP0110XP01010USEXPMARKER9PART4FLOTING以上4个坐标系中678为与PART4固定的坐标系9为属于PART4但为浮动坐标系浮动坐标系在ADAMSSolver中的中需要坐标系6利用欧拉角定义该坐标系相对于PART4的物体局部坐标系坐标系7利用ZP表达坐标系的z轴QP指向ZPXP为坐标系XOZ平面上一点但不能与QPZP共线ADAMSSolver自动确定其x轴坐标系8利用XP表达坐标系的x轴QP指向XPZP为坐标系XOZ平面上一点但不能与QPXP共线ADAMSSolver自动确定z轴这种用法必须使用USEXP关键字又如柔体上坐标系MARKER12FLEXBODY5NODEID40REULER90D30D45DMARKER13FLEXBODY5QP1001000REULER90D30D45D坐标系12位于FLEXBODY5上节点40处利用欧拉角定义该坐标系相对于FLEXBODY5的物体局部坐标系坐标系13位于FLEXBODY5上相对于FLEXBODY5的物体局部坐标系的位置为1001000利用欧拉角定义该坐标系相对于FLEXBODY5的物体局部坐标系ADAMSSolver自动确定并调整其到相近节点处约束单元约束单元包括COUPLERJOINT单元这里分别对COUPLERJOINT语句进行介绍其它单元参考手册COUPLER语句COUPLER语句将两个或者三个移动副或者转动副关联其描叙如下其中存在关系式r1q1r2q2r3q30q2q3r2r3举例说明如下JOINT1CYLINDRICALI3J4JOINT2REVOLUTEI7J8JOINT3TRANSLATIONALI10J11COUPLER1JOINTS321TYPETRTSCALES90D290D第6章ADAMS模型语言及仿真控制语言该COUPLER语句将Joint3的平动连接到Joint2的转动上Joint1的平动上铰链间位移关系为90D180314q12q290D180314q30同时满足q2q3290D180314关系式中角度变量需换算为弧度JOINT语句JOINT语句确定物体刚体和柔性体间的运动学约束JOINT的类型有等速铰constantvelocity圆柱铰cylindrical固定铰fixed虎克铰Hooke平面铰planar齿轮齿条铰rackandpinion转动铰revolute螺纹铰screw球铰spherical移动铰translational和广义万向节铰universaljoints其格式如下J利用MARKER来定义运动学铰链约束下面对各种运动学约束的要求作介绍CONVEL该铰链定义两个PART具有相同转动速度IJMARKER的坐标必须相同且IJMARKER的Z轴是两个PART的转动轴IMARKERZ轴方向背离JMARKERJMARKERZ轴方向背离IMARKER同时IMARKERX轴方向需与JMARKERX轴方向平行产生4个约束方程CYLINDRICAL该铰链定义两个PART可以沿着IJMARKER的Z轴平动和转动定义要求IJMARKER的坐标必须相同其Z轴需同向并重合产生4个约束方程FIXED该铰链定义两个PART固接要求I和JMARKER坐标圆点重合产生个6约束方程HOOKE该铰链定义两个PART可以分别沿自己的IMARKER的x轴JMARKER的y轴转动定义要求IMARKER的X轴垂直于JMARKER的Y轴从而形成十字叉IMARKER的Z轴JMARKER的Z轴分别为其转轴方向I和JMARKER的原点重合在十字的中心HOOKE与UNIVERSAL的功能相同但两者之间MARKER的定义方式不同产生4个约束方程机械系统动力学分析及ADAMS应用PLANAR该铰链定义一个PART的一个平面可以相对于第二个PART的一个平面相对滑动定义要求IMARKER和JMARKER的Z轴平行XOY平面重合产生3个约束方程RACKPIN该铰链定义一个PART的的一个转动自由度与另一个PART的移动自由度相关定义要求IMARKER的Z轴为其转动轴向JMARKER的Z轴为其移动轴向PD应为IMARKER的Z轴到JMARKER的Z轴距离的两倍产生一个约束方程完全可以由COUPLER代替REVOLUTE该铰链定义一个PART可以相对于第二个PART以一确定轴线转动定义要求IMARKER和JMARKER的坐标圆点以及Z轴重合Z轴为其相对转动轴产生5个约束方程SCREW该铰链定义一个PART可以相对于第二个PART以一确定轴线转动并同时沿着该轴线移动只不过转动与移动存在一定的关系即每转一圈产生一个螺距PITCH的移动定义要求IMARKER和JMARKER的Z轴共线产生一个约束方程SPHERICAL该铰链定义一个PART可以相对于第二个PART自由转动定义要求IMARKER和JMARKER的坐标圆点重合产生3个约束方程TRANSLATIONAL该铰链定义一个PART可以相对于第二个PART沿着一轴线移动不能转动定义要求IMARKER和JMARKER的Z轴共线产生5个约束方程UNIVERSAL该铰链定义两个PART可以分别沿自己的IMARKER的Z轴JMARKER的Z轴转动定义要求IMARKER的Z轴垂直于JMARKER的Z轴从而形成十字叉I和JMARKER的原点重合在十字的中心UNIVERSAL与HOOKE的功能相同但两者之间MARKER的定义方式不同产生4个约束方程力元力元包括RAVBEAMBUSHINGCONTACTFIELDFRICTIONGFORCEMFORCENFORCESFORCESPRINGDAMPERVFORCEVTORQUE单元这里分别对BEAMFIELD语句进行介绍其它单元参考手册BEAMADAMS中可以使用无质量的等截面梁来定义两个之间的作用力ADAMSSolver根据输入梁的物理特性按照铁木辛柯梁理论求解梁中的各种力其语句格式如下利用IMARKERJMARKER定义一个无质量梁其中JMARKER的X轴为梁的轴第6章ADAMS模型语言及仿真控制语言向IMARKER在梁无变形时应在JMARKER的X轴上并且IMARKERJMARKER的坐标系平行其它参数如下LENGTH为梁沿着JMARKER的X轴的非变形长度IXX为沿JMARKER的X轴极惯性矩IYYIZZ分别为沿着梁的横截面的中心轴yy和zz的惯性矩AREA为梁的横截面积梁的中性轴一定垂直通过该横截面ASY为铁木辛柯梁的y方向的剪切修正因子ASZ为铁木辛柯梁的z方向的剪切修正因子EMODULUS为铁木辛柯梁的弹性杨氏模量GMODULUS为铁木辛柯梁的弹性剪切模量CMATRIXr1r21为梁的结构阻尼矩阵元素矩阵是对称的只需要指明一半的数据输入矩阵的值如下式CRATIO为铁木辛柯梁结构阻尼矩阵与刚度矩阵的比率缺省为零在梁的两个端点之间作用有线性的拉伸弯曲和扭转力矩梁中各种力的计算公式如下式式中分别为力和力矩分别表示MARKER之间的相对位移转角速度角速度机械系统动力学分析及ADAMS应用分别表示刚度系数和阻尼系数为梁MARKER之间的距离梁的长度举例如下BEAM2I10J20LENGTH100IXX1000IYY500IZZ500AREA250ASY111ASZ111EMOD28E6GMOD106E6CRATIO00001FIELD该语句定义MARKER之间的平动和转动的作用力和反作用力语句格式如下CRATIO为CMATRIX相对于KMATRIX的比率如果输入CRATIOADAMSSolver通过CRATIO乘KMATRIX获得CMATRIX缺省值为零CMATRIX为一个66的阻尼系数其格式如下式KMATRIX为一个66的刚度系数矩阵其格式如下第6章ADAMS模型语言及仿真控制语言FORCE为对应于MARKER之间3个移动和3个转动的预载荷LENGTH为MARKER之间6个自由状态下的初始位移FUNCTION为利用用户子程序FIESUB来定义一个非线性力场FIELD的力与力矩关系如下式FIELD的计算公式同BUSHING的计算公式相似不同之处是FIELD计算公式中刚度和阻尼系数和不为零同时考虑初始位移和转角FIELD提供了定义最一般的力的方法因此也可以利用FIELD来定义一般情况下的梁例如可以定义变截面的梁或者是使用非线性材料的梁举例如下FIELD1I100J57KMATRIX0198E0400126E0100147E0400000000126E0100208E0300933E0200000000147E0400933E0200763E070000000LENGTH01500000系统模型单元系统单元包括DIFFGSELSETFSISOVARIABLE这里分别对DIFFVARIABLE机械系统动力学分析及ADAMS应用语句进行介绍DIFFDIFF语句用于创建一个用户自定义的状态变量利用一阶微分方程来表达该变量其格式如下IC当输入表达式为变量的显式时为定义变量的初始值如果输入表达式是一个隐函数表达式为定义变量的初始值及导数的近似值如果提供的是一个显函数就不用提供变量的导数的初值因为ADAMSSolver可以从方程中直接计算出变量的导数STATICHOLD指在静态分析和准静态分析中变量的值不允许改变IMPLICIT指函数表达式或者DIFSUB子程序定义为隐式微分方程如果没有指明为IMPLICIT的情况下ADAMSSolver就会假定表达式或者DIFSUB为显式方程为微分方程表达式用户可以自定义表达式来定义微分方程其格式中USER为字符串r1r30为数值表传递系统变量到用户定义子程序DIFSUB中在函数表达式中DIFi为DIFFi语句中定义的变量值DIF1i为DIFFi语句定义的变量的导数举例如下DIFF1IC2FUNCTION50DIF180COSTIMEDIFF1定义了变量的显式形式为y02DIFF2IC2IMPLICITFUNCTIONDIF1250DIF280COSTIMEDIFF2定义公式的隐式形式为y02VARIABLEVARIABLE语句以代数表达式的形式定义变量其格式如下IC为VARIABLE的初始值为VARIABLE的表达式子程序中定义的变量如果显通过表达式来定义变量FUNCTION后面需要有等号和表达式如果用用户子程序来定义变量FUNCTION后面需要有等号字符串USER以及ADAMSSolver将要传递给用第6章ADAMS模型语言及仿真控制语言户子程序VARSUB的值r1r30举例如下VARIABLE4FUNCTIONIMPACTDZ1090VZ109013E512105该VARIABLE语句利用碰撞函数定义了一个变量轮胎单元TIRETIRE语句定义轮胎单元该语句可以模拟车辆与地面之间的相互作用力以及轮胎的旋转作用须提供轮胎的属性文件tpf和路面数据文件rdf轮胎属性文件包含一些参数如ADAMSSolver用来计算轮胎力的corneringstiffness侧偏刚度而且轮胎模型类型不同轮胎属性文件中的须提供的参数也不相同路面数据文件rdf定义了轮胎碾过的路面数据TIRE的其格式如下轮胎是一个综合单元它代表了由一些更基本的语句组成的复杂实体这些语句包括PARTMARKERGRAPHICS和GFORCE当每次创建一个TIRE时ADAMSSolver会自动地创建这些语句这些组成部分的作用如下PART用来表达轮胎的惯性力GFORCE以一组三维力和力矩来表达车辆与路面的相互作用MARKERS指定连接点处的坐标JOINT将轮胎连接到车辆上GRAPHICS显示轮胎和路面状况机械系统动力学分析及ADAMS应用语句中的各部分参数意义如下ALPHA0r指明old的初始值用来计算轮胎侧偏角的一阶滞后影响CMOFFSETxyz定义从IMARKER点到轮胎质心处的位移xy和z为IMARKER的坐标值轮胎质心MARKER与IMARKER的坐标方向相同IMARKIDid为TIRE创建的IMARKER的id号IMARKER为轮胎连接到车辆上的位置和方向如果没有指明IMERKID时ADAMSSolver会在内部创建IMARKER当使用了JOINTNONE选项时必需要指明IMARKERIPxxyyzzxyxzyz指明轮胎的6个惯性矩积惯性矩积相对于轮胎的质心坐标CMJid为轮胎被连接到车辆上的MARKER的id号JMARKER的z轴必须平行于轮胎的旋转轴使用右手法则如果车辆的四个轮子都向前旋转则四个轮胎的JMARKER的z轴都要指向左边JOINTid指明TIRE语句中创建的连接点转动铰链的id号JOINT缺省时为ADAMSTire自动创建的id值JOINTNONE允许创建轮胎但不直接连到车辆上需要使用JOINT或者BUSHING进一步语句才能将轮胎安装到车辆上MASSr指明轮胎部分的质量该值包括轮胎轮辋和所有刚性连接的旋转子部件如刹车片等等RDFc指明路面数据文件RDF的路径和文件名该路面数据文件包含了一个三维路谱和路面的摩擦属性的信息RGRA定义一个flag值0或11使ADAMSSolver自动生成路面图形该图形是由TIRE命令中指明的路面数据文件中的数据生成的RLENGTH为考虑轮胎侧偏角一阶滞后影响的松弛长度relaxationlengthSEGS为圆柱和锥体的两个平行的圆之间的绘制的直线段的数量近似的代表圆的圆周TPFc为轮胎属性文件的路径和文件名轮胎属性文件包含了DAMSSolver用来计算在给定的系统条件下的轮胎力和力矩的所有的输入数据UPARAMETERSr1r30定义了至多三十个实数用来传递给TIRSUB函数USTRINGSid1id30定义了至多三十个字符串标志符它们的相应的字符串被传递给TIRSUBVXrVYrVZr指明了轮胎质心处沿着全局坐标系的xyz轴的初始速度WIDTHr为轮胎的宽度WZr轮胎相对于IMARKER的z轴的初始的旋转速度举例如下TIRE1J303MASS10IP250E4250E4330E4TPFTIRETPF第6章ADAMS模型语言及仿真控制语言该例子中缺省文件为Fiala模型缺省的路面为平直路面另外所有需要的单元被自动创建下面的一个例子涉及到了一些初始转速和路面图形TIRE2J305MASS10IP2509E42509E43356E4TPFTIRETPFWZ225SEGS5RGRA数据单元数据单元包括ARRAYCURVEMATRIXPINPUTPOUTPUTSPLINESTRING这里分别对ARRAYCURVE语句进行介绍ARRAYARRAY语句定义一组数组其中可包括输入变量U状态变量X和输出变量Y或者与系统单元GSELSE和TFSISO相关的的初始条件其语句形式如下IC创建一维数组可以在用户自定义子程序中引用也可以为LSE或者GSE来分配初始状态数组NUMBERSr1r1200当使用IC数组时允许输入一维的实数组SIZEI定义数组的大小范围为1到1200VARIABLESid1id1200将全部VARIABLE的id集合X对于系统单元LSEGSE或者TFSISO将ARRAY命令指定为状态变量数组U将集合了VARIABLES创建为数组Y对于系统单元LSEGSE或者TFSISO将ARRAY命令指定为输出数组举例如下ARRAY1XARRAY2UVARIABLES2ARRAY3ICNUMBERS0000CURVE该语句定义三维参数曲线其表达式如下所示机械系统动力学分析及ADAMS应用CLOSED曲线是闭环曲线OPEN曲线为开环曲线FUNCTIONUSERr1r30定义并传递参数给用户子程序CURSUB以计算曲线坐标和偏导MAXPARr用户子程序定义曲线参数的最大值缺省值为10MINPARr为用户子程序定义曲线参数的最小值缺省值为10MATRIXid为包含曲线数据的MATRIX的id号CONTROLPOINTS基于控制点的三次多项式的B样条曲线CURVEPOINTS曲线通过数据点TENSIONr为B样条曲线运算使用中的收敛因子缺省值为005其范围为0到无穷大举例如下CURVE5OPENCURVEPOINTSMATRIX2该语句以MARTRIX2中的曲线点坐标创建了一条开环曲线ADAMSSolver以B样条曲线来对该点进行插值分析参数单元分析参数单元包括DEBUGEQUILIBRIUMICINTEGRATORKINEMATICSSENSORUINT这里分别对DEBUGEQUILIBRIUM语句进行介绍DEBUG该语句用于输出数据的定义以方便系统调试其语句形式如下DOF将自由度信息以表格文件的形式打印出缺省为OffDUMP将系统的方程按ADAMSSolver内部表示法文件的形式打印出缺省为OffEPRINT打印出每一步长下的信息可以根据输出的信息确定误差的来源缺省为OffJMDUMP在每次迭代时雅可比矩阵运算信息缺省为OffREQDUMP在每次迭代时对REQUEST和MREQUEST进行输出缺省为OffRHSDUMP在每次迭代时对YY数组状态向量RHS数组误差信息和DELTA数组状态向量的增量进行输出缺省为Off第6章ADAMS模型语言及仿真控制语言TOPOLOGYmsg文件中打印出系统拓扑结构数据缺省为OffVERBOSE将附加的信息打印到屏幕如子程序名等缺省为Off举例如下DEBUGEPRINT该DEBUG语句将打印出每一步长下的信息EQUILIBRIUM该EQUILIBRIUM语句指明了在静平衡分析和准静态分析中的误差和其它参数其语句形式如下ACCELERATIONERRORr利用动力学仿真进行静力学仿真时允许的最大加速度误差缺省值为10E02取值范围大于零ALIMITr在进行静态仿真时允许的最大角度增加量缺省值为01745310D取值范围大于零DYNAMICADAMSSolver利用动力学进行静力学仿真ERRORr在静力学仿真时允许的最大相对位移误差缺省值为10E04取值范围大于零GLOBALDAMPINGr指明动力学仿真时施加在所有物体上的阻尼系数缺省值为0取值范围大于等于零IMBALANCEr在静态仿真时允许的最大不平衡力缺省值为10E04取值范围大于零KINETICENERGYERRORr指明在静态仿真时最大动能误差缺省值为10E02取值范围大于零MAXITI在静态仿真时最大迭代数缺省值为25取值范围大于零PATTERNc1c10在静力学仿真中NewtonRaphson迭代的雅可比矩阵是否进行更新运算SETTLINGTIMEr在利用动力学分析进行静力学仿真时允许的最长时间缺省值为100取值范围大于零STABILITYr将质量阵和阻尼阵按此比例增加到刚度阵将增加收敛速度而不影响精度STATICrADAMSSolver使用静态分析进行静力学仿真缺省为STATIC机械系统动力学分析及ADAMS应用TLIMITr指明在静态仿真时最大平移增量缺省值为20取值范围大于零举例如下EQUILIBRIUMSTABILITY001TLIMIT10IMBALANCE10E05输出单元输出单元包括FEMDATALISTNOLISTMREQUESTOUTPUTREQUESTRESULTS这里分别对FEMDATAMREQUEST语句进行介绍FEMDATA该语句输出构件载荷变形应力和应变的数据文件以作为有限元分析金或疲劳寿命分析的输入如果使用OUTPUT命令就必需要指明FEMDATA产生文件的类型只有在OUTPUT命令中指明了格式FEMDATA才会输出文件其语句格式如下LOADS输出所有施加在指定物体上的外部力以及惯性力以时间为函数的RMid输出载荷的参考坐标系FLEXBODYid指明FENDATA输出数据的柔性体的ID值PEAKSLICEFXFYFZFMAGGMAG在载荷的峰值处输出FEM载荷数据MODALDEFORMATION输出指定柔性体上模态变形以时间为函数的NODALDEFORMATION输出指定柔性体上节点变形以时间为函数的DATUMnodeid指明节点的IDADAMSSolver根据节点的ID来计算节点的位移NODEid1idn指明将要输出数据的节点集合STRAIN输出在指定物体上的应变信息STRESS输出在指定物体上的应力信息FILEname对FEM数据指明输出文件名STARTt1指明输出数据的开始时间缺省情况下为仿真开始时间ENDt2指明时间t2在该时间点终止数据输出第6章ADAMS模型语言及仿真控制语言SKIPn当输出数据时指明要跳过的输出步数缺省情况下n0就是每一步都要输出举例如下FEMDATA1LOADSRM201PEAKSLICEGMAGFILEpeak201nasOUTPUTLOADSNASTRANMREQUEST该MREQUEST语句定义多个输出数据该数据可以被ADAMSSolver写进表格输出文件和请求文件中其格式如下所示DISPLACEMENT输出质心处铰链点或者施加力处MARKER的位移VELOCITY输出质心处铰链点或者施加力处MARKER的速度ACCELERATION输出质心处铰链点或者施加力处MARKER的加速度FORCE输出质心处铰链点或者施加力处MARKER的力Jid要测量的质心处位移速度或加速度的MARKER的id号RMid要测量的质心处位移速度加速度或力的参考坐标系MARKERid号COMMENTc在MREQUEST命令输出的每条信息顶部添加标题举例如下MREQUEST01DISPLACEMENTPARTS123该MREQUEST输出Part12和3处的位移MREQUEST04FORCEJOINTSALL该MREQUEST输出所有铰链的力的数据命令及仿真控制文件命令结构及分类在ADAMSSolver中可用命令来控制仿真命令可以修改语句中的定义调用和控制机械系统动力学分析及ADAMS应用仿真显示仿真输出和状态信息以下列表是按功能分类的ADAMSSolver命令同时列出部分命令的使用说明表62ADAMSSolver命令命令类型命令名称部分命令的定义信息如下PARTPART命令列出创建部件对象的有关信息在PART命令中可以重新定义质心标记点惯量标记点部件的方位和初始位置也能定义部件的质量以及绕局部坐标系xyz方向的惯性张量值格式PARTidMASSrIPxxyyzzLIST其中IPxxyyzz为指定的相对于局部坐标系XYZ方向的惯性张量MASSr为部件的质量举例PART2MASS10定义部件2的质量为10单位PART5IP036LIST定义部件5的参考系XYZ方向的转动惯量MARKERMARKER命令可用来移动和重新定义已存在的标记点也可以列出标记点位置的有关信息格式第6章ADAMS模型语言及仿真控制语言参数定义QPxyz定义该标记点相对于其依附的部件的位置坐标该坐标为局部坐标REULERabc定义该标记点相对于局部坐标系的body313欧拉方向角即局部坐标系先绕其Z轴旋转a度再绕X轴旋转b度最后绕Z轴旋转c度后得到的方向举例MARKER10REULER15D00该MARKER命令改变了标记点10的方位角MARKER10QP2150该MARKER命令改变了标记点10的位置坐标MARKER10QP2150ZP3150该MARKER命令既改变标记点10的位置坐标又改变其方向角JOINTJOINT命令创建约束副格式举例创建约束副10并列出其所有数据GFORCEGFORCE定义作用力并列出相关的数据它由三个正交的平动力分量和三个正交的力矩分量组成格式参数定义FUNCTIONUSERr1r30为用户指定30个参数来计算用户自定义子程序GFOSUBFXeFYeFZe为GFORCE平动力的三个正交分量它们相对于参考坐标而言Iid为固定在受力物体上的标记点JFLOATid为一浮动标记点它与I标记点分属不同的部件并与I标记点叠加随部件移动利用J浮动标记点可以计算反力及反力矩TXeTYeTZe为GFORCE转动力矩的三个正交分量它们相对于参考坐标而言力矩的正方向为绕坐标轴的逆时针方向机械系统动力学分析及ADAMS应用举例GFORCE1I8JFLOAT6RM7LISTampFY0ampFZ0ampTY0ampTZ0该GFORCE命令重新定义并列举标记点I和标记点J之间广义力的六个分量其中FYFZTY和TZ设置为0标记点I和标记点J叠加反力力矩FX和TX的值可通过J标记点得到VARIABLEVARIABLE命令通过一系列参数的标量代数运算来定义变量这些变量能在PINPUTPOUPUT和ARRAY等命令中被使用格式参数定义通过一个表达式的运算指明变量的值或通过一系列参数输入到变量子程序VARSUB中以求解变量的值ICr为变量指定一个初始值ADAMSView在计算中会对其进行调整SENSORSENSOR命令列出有关SENSOR声明的数据并可通过表达式或子程序来重新定义SENSOR声明格式用来指定或定义并传递一系列参数给用户子程序或者用计算表达式的值来定义SENSOR举例该命令将定义到的函数表达式改为REQUESTREQUEST用来定义或修改需求的表达式命令格式第6章ADAMS模型语言及仿真控制语言分别定义的第一个到第八个分量如果被使用则要么该分量为最后一个参数要么后面紧跟符号将这些表达式的值写进相应的输出表列而不是写入文件举例该命令修改了的第个和第个表达式其它的表达式不变SIMULATESIMULATE命令指明需要ADAMSSolver进行仿真的类型同时指明运行时间以及输出步长格式或者为或者为参数定义指明机构需要执行的位移速度和加速度分析而这些分析最初没有被执行DTOUT指明分析步长以模型仿真时间为单位DURATION指明模型仿真分析的时间END指明动力学运动学和准静态平衡分析的结束时间机械系统动力学分析及ADAMS应用DYNAMICS指定ADAMSSolver去积分动力学方程如果一个具有0自由度的系统需要进行动力学分析则ADAMSSolver提供一个警告信息并把方程积分而不会使用运动学分析运动学分析比动力学分析快KINEMATICS指明ADAMSSolver运行运动学仿真分析如果一个具有一个或多个自由度的系统需要进行运动学分析则ADAMSSolver提交错误信息而不去执行整个命令STATICS指明ADAMSSolver执行一个静态平衡分析或一个准静态平衡分析TRANSIENT指明ADAMSSolver当系统具有0自由度的时候运行运动学分析当系统具有一个或多个自由度的时候进行动力学分析举例该仿真命令指定从开始起的秒内以步输出步长来执行运动学仿真如果在数据库中该进程是第一次仿真分析则时间从开始而且仅在系统具有自由度时才执行该命令该仿真命令指定实现运动学仿真时间为秒每一步长为秒SHOW命令列出如下数据时间图形选项状态和当前时间格式参数定义CPUTIME列出当前执行过程中占用的CPU时间GROPTIONS列出控制图形显示的选项列出每个GRAPHICS声明的数据每个REQUEST声明的数据每次仿真的数据或者所有的数据缺省为SIMULATIONTIME列出当前的时间和日期PLOTPLOT命令将当前仿真数据集中的REQUEST和MEQUEST的声明以图表的形式输出格式第6章ADAMS模型语言及仿真控制语言参数定义DEGREES图表中使用旋转度数值POINTSI指明图表数据中的增量值比如POINTS2以每两个点画出图线RADIANS图表中使用弧度值弧度为缺省参数值TMINrTMAXr指明ADAMSSolver从REQUEST中获取分析数据时最小和最大的时间值最小时间值必须大于等于初始输出时间最大时间值必须小于等于当前仿真时间XMINrXMAXr指明ADAMSSolver从REQUEST中获取分析数据时的最小和最大的x轴值如果两个参数都被运用则XMIN必须小于XMAX如果只有一个参数被使用则另一个应取图表中表示的x轴的极大值或极小值YMINrYMAXr指明ADAMSSolver从REQUEST中获取分析数据时的最小和最大的y轴值如果两个参数都被运用则YMIN必须小于YMAX如果只有一个参数被使用则另一个应取图表中表示的y轴的极大值或极小值指明REQUEST和MREQUEST声明中需要用图表列出的信息X轴和y轴各能输出三种图表信息这些参数可以是ADAMSSolver将以图表方式列出y轴和x轴数据信息一一对应的仿真曲线举例该命令图表列出对应于输出时间步长的的大小信息以及对应于机械系统动力学分析及ADAMS应用的分量的的角度信息该命令以每三个输出点列表并以度数输出角度值创建仿真控制文件1创建命令文件利用文本编辑器键入需要使用的命令来控制仿真第一行必须包含数据集文件的名字第二行是创建的指定给输出文件的前缀名其后各行包含需要在仿真中执行的所有命令最后一行是命令文件必须以扩展名的形式保存下面是命令文件的例子上例中数据集文件名为而由创建的指定给所有输出文件的基名为等等下四行命令打开仿真中的各种输出文件执行仿真驱动运动定义为失效然后执行另一个仿真分析最后以命令中止仿真2命令文件语法特例命令的语法规则特例是通常假设其命令文件中所有的角度数据均以弧度表示因此如果想用度作为输入数据的单位必须在每个数值之前加上如果发现命令参数中有下列语法错误则代码发布错误信息并取消执行整段命令参数的无效数值参数缩写混淆不清无效的参数类型值如参数需要的是数值值而输入的是字符值或参数需要整型值而输入的是带小数的实数值忽略了参数或代入参数的值如果输入了一个不符合参数值类型的值给该参数则发布错误信息忽略该参数但仍然执行余下的命令第6章ADAMS模型语言及仿真控制语言允许命令行最多有个字符长要输入超过一行长度的命令必须在该行的末尾字符之后加上连字符如果以交互方式输入命令会要求你输入到下一行而行数不受限制3复杂ADAMSSolver仿真控制文件举例以下为一个较为复杂的仿真控制文件运行时执行如下命令