找回密码
 注册
Simdroid-非首页
查看: 685|回复: 13

[资料共享] Adams使用常见问题及常用函数介绍

[复制链接]
发表于 2011-6-12 10:10:28 | 显示全部楼层 |阅读模式 来自 广东中山
一、常见问题
1、ADAMS中的单位的问题
开始的时候需要为模型设置单位。在所有的预置单位系统中,时间单位是秒,角度是度。可设置:
MMKS--设置长度为毫米,质量为千克,力为牛顿。
MKS—设置长度为米,质量为千克,力为牛顿。
CGS—设置长度为厘米,质量为克,力为达因。
IPS—设置长度为英寸,质量为斯勒格(slug),力为磅。

2、如何永久改变ADAMS的启动路径?
在ADAMS启动后,每次更改路径很费时,我们习惯将自己的文件存在某一文件夹下;事实上,在Adams的快捷方式上右击鼠标,选属性,再在起始位置上输入你想要得路径就可以了。

3、关于ADAMS的坐标系的问题。
    当第一次启动ADAMs/View时,在窗口的左下角显示了一个三视坐标轴。该坐标轴为模型数据库的全局坐标系。缺省情况下,ADAMS/View用笛卡儿坐标系作为全局坐标系。ADAMS/View将全局坐标系固定在地面上。
当创建零件时,ADAMS/View给每个零件分配一个坐标系,也就是局部坐标系。零件的局部坐标系随着零件一起移动。局部坐标系可以方便地定义物体的位置,ADAMS/View也可返回如零件的位置——零件局部坐标系相对于全局坐标系的位移的仿真结果。局部坐标系使得对物体上的几何体和点的描述比较方便。物体坐标系不太容易理解。你可以自己建一个part,通过移动它的位置来体会。

4、关于物体的位置和方向的修改
可以有两种途径修改物体的位置和方向,一种是修改物体的局部坐标系的位置,也就是通过MODIFY物体的position属性;令一种方法就是修改物体在局部坐标系中的位置,可以通过修改控制物体的关键点来实现。我感觉这两种方法的结果是不同的,但是对于仿真过程来说,物体的位置就是质心的位置,所以对于仿真是一样的。

5、关于ADAMS中方向的描述。
对于初学的人来说,方向的描述不太容易理解。之前我们都是用方向余弦之类的量来描述方向的。在ADAMS中,为了求解方程是计算的方便,使用欧拉角来描述方向。就是用绕坐标轴转过的角度来定义。旋转的旋转轴可以自己定义,默认使用313,也就是先绕z轴,再绕x轴,再绕z轴。

6、Marker点与Pointer点区别
  Marker:具有方向性, 大部分情況都是伴随物件自动产生的,而 Point不具有方向性, 都是用户自己建立的;Marker点可以用来定义构件的几何形状和方向,定义约束与运动的方向等,而Point点常用来作为参数化的参考点,若构件与参考点相连,当修改参考点的位置时,其所关联的物体也会一起移动或改变。

7、关于约束的问题
  约束是用来连接两个部件使他们之间具有一定相对运动关系。通过约束,使模型中各个独立的部件联系起来形成有机的整体。

在ADAMS/View中,有各种各样的约束,大体上将其分为四类:
基本约束:
点重合约束(ATPOINT)、共线约束(INLINE)、共面约束(INPLANE)、方向定位约束(ORIENTATION)、轴平行约束(PARALLEL_AXES)、轴垂直约束(PERPENDICULAR)等

常用铰约束:
球铰(SPHERICAL)、虎克铰(HOOKE)、广义铰(UNIVERSIAL)、常速度铰(CONVEL)、固定铰(FIXED)、平移副(TRANSLATIONAL)、圆柱副(CYLINDER)、旋转副(REVOLUTE)、螺旋副(SCREW)、齿轮副等

高副约束:
曲线-曲线约束(CVCV)、点-曲线约束(PTCV)。

驱动:
按驱动加在对象类型上分:有点驱动和铰驱动;按驱动特点来分有:平移驱动和旋转驱动。

8、驱动和力的区别
  驱动和力都会引起物体的运动,但两者是有本质上的区别的。
  驱动产生确定的运动,可以消除物体的自由度。
力产生的运动是不确定的,不能消除物体的自由度。

9、运动学仿真后,如何测量驱动力矩或者其他的物理量?
我们在做机器人运动规划时,往往根据规划给出各个关节的运动轨迹,进行运动学分析,如果要查看实现该运动各个关节需要加的驱动力矩,可以右键单击相应的motion,然后在下拉菜单选择measure,在出现的界面里面选择Torque,点ok就出来力矩曲线了,其他物理量类同。

10、ADAMS/VIEW中的输入函数的指定方法
输入函数是指从输入状态变量取值的时间函数。 只需在所建立的模型中在需要进行控制的部件施加一定的力或力矩,然后对其进行函数化:其函数的自变量为所指定的输入状态变量。这样所建立的模型就是受输入控制的系统。

11、如何将回放过程保存为AVI格式的电影文件
   点击plotting(或F8)进入postprocessor ,右键--load ANIMATION,点击"record"开始录制。点击"play"开始。

12、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”为文件后缀。

13、如何使用two body two location?
比如四杆机构,杆长已知,一个为机架,一个为曲柄,一个为摇杆,一个为连杆。关四个转动关节的位置如何确定?
——可以試著以two body two location去做拘束,再從simulation下找simulation control便可以做組合模拟。

14、如何在ADAMS下由数据生成样条曲线?
在tools->command navigator....->Data element->create->spring line 后,会出現一个输入window窗口,选择numerical将xyz数值copy到xyz各自的表格上.......

15、ADAMS中如何建模,该如何控制坐标点,才能得到精确的位置?
可以粗略建立 Point 设计点后,可以 Modify,在表格编辑器 Table Editor 里可以精确定位点的坐标,还可以用Command。

16、关于bushing
16.1、bushing一般用于模拟橡胶连接部件,主要是指线性橡胶。一般汽车底盘的轴承都有加橡胶,那就可以在轴和轴承之间用这个。输入在各个方向的刚度和阻尼就可以了。

16.2、bushing主要是考虑到了两个物体间的弹性连接,比如麦弗逊悬架的下控制臂和副车架,幅车架和车身相连的地方都是采用了bushing,在car里面就可以看到。对于运动学分析,采用一般的连接即可(比如万向节),做动力学分析,就得采用busing以模拟弹性力。

17、请问如何对零件进行复制?
可用position move,还有一个命令是position rotation。

18、关于转动问题,如何判断转动副的方向?
初学时,对转动副的运动容易糊涂,下面以图说明。
图1,构件4固定在地面上,在构件1和构件2上加了一个转动副。
1)        转动副中构件绕轴转动的方向,符合右手法则,其中First body 绕Second body 转动;
2)        图一中,构件1为first body,构件2为Second Body,则构件1相对于构件2逆时针转动,图2为转动后某时刻的图像;
3)        若修改转动副,构件2为first body,构件1为Second Body,则构件2相对于构件1逆时针转动,图3为转动后某时刻的图像,与2)恰相反;
4)        有趣的是,假设转动副加在构件1与4上,构件4为first body,构件1为Second Body,则构件4应该相对于构件1逆时针转动,但由于构件4固定在地面上,无法运动,由相对运动可知,此时运动等价于构件1相对于构件4顺时针转动,事实如此,图4为转动后某时刻的图像。
(图片看不到的话,可在版内搜索到该帖子)

19、用不同的求解器是不是不会对结果造成太大的影响?
求解器不会对仿真结果造成影响的。由于ADAMS的求解器最初是用FORTRAN编写的,而随着C的普及及功能的强大,现在越来越倾向于C了。现在是两个求解器并存,将来可能只保留C一个了。在ADAMS新的版本中,有些功能只有C求解器才有的。
20、出现exception 11 detected如何解决?
開始->程式集->MSC.Software->MSC.ADAMS 2005r2->ADAMS Settings->
在Shared->Graphics_Driver, 選擇Hoops

21、接触的那些系数是什么意思?该怎么填写啊?
http://www.simwe.com/forum/viewthread.php?tid=732823&extra=page%3D1%26filter%3Ddigest

22、碰撞力的测量?
使用postprocessor绘制出contact force curve,是比较简单的;
若要在view环境下进行显示,其流程较为复杂:
buid| measure | Function| Force object | contact force
http://www.simwe.com/forum/viewthread.php?tid=354246&highlight=%C5%F6%D7%B2%C1%A6%2B%B2%E2%C1%BF

23、如何创建齿轮副?
关键是齿轮副定义的joint和marker点需要定义在一个物体上,基本上就是这样。如定义一个简单gear,所用了两个revolution joint1和2,joint1定义了part1和ground,joint2定义了part2和ground,marker点定义在ground上,marker的Z轴方向应指向齿轮的啮合线方向,该marker位于啮合点上,才能成功的建立齿轮副。定义行星轮也是同样,建立在齿轮副中需要用到的joint和marker点都必须在同一物体上,不管这个物体是ground还是自建的part。

24、请教:行星齿轮副该怎么加???
http://www.simwe.com/forum/viewthread.php?tid=371248

25、请教如何在adams里构建齿轮副?
http://www.simwe.com/forum/viewthread.php?tid=22522&highlight=%B3%DD%C2%D6%B8%B1

26、PROE中如何建立凸轮副?
26.1、在PRO/E里面做一个凸轮,和一顶杆.
26.2、沿凸轮的外边圆做一条曲线(一般是外边缘偏移出),
26.3、在顶杆顶端(以后与凸轮接触那点).做一个marker点.
26.4、新建一个装配文件,同时做一基座零件(装配凸轮和顶杆之用),将凸轮和顶杆装配好,加上必要的约束(凸轮的铰链,和顶杆的移动副)同时在铰链上增加一马达(同时设置好必要的参数).
26.5、关键一步是:在SET UP MECHANISM下选择DATA ELEMENTS,再选择CURVE,选择第2步所做的曲线,创建一条曲线(用以约束顶杆是的MARKER只用.
26.6、然后从约束里面选种POINT ON CURVE  分别NAME,CONSTRAINED LACATINON(选MARKER点),CONSTRAINED FIGID BODY(选顶杆),SELECT EXISTING CURVE(选刚创建的曲线).
26.7、创建成功后就可以看结果了

27、从pro/e导入的凸轮副如何设置?
  方法一:
A、首先分别在prt图里对凸轮以及从动件用“使用边”命令做出曲线,保存好
b、在set up----data elements----curves-create........选用from geometry等,做好2个curves
c、后面的工作都可以在mech/pro里直接设置,凸轮副curve-to-curve也一样。
方法二:
可以从两个方面来做这个:
a、用碰撞来实现导入的凸轮运动;
b、在mechpro中将运动副定义好;
c、在proe中做一个凸轮的曲线,导出igs格式,再导入到adams中。将IGS格式的曲线转化为ADAMS的spline。就可以在这个上面定义凸轮副了。
具体的实现过程可以参考MSC的KB:
http://support.mscsoftware.com/kb/results_kb.cfm?S_ID=1-KB8362

28、凸轮副如何加约束?
见帖子:
http://www.simwe.com/forum/viewthread.php?tid=465823&highlight=%CD%B9%C2%D6%B8%B1

29、用ADAMS进行蜗轮蜗杆模拟仿真示例
见帖子:
http://www.simwe.com/forum/viewthread.php?tid=751016&highlight=%CE%CF%C2%D6

30、用关联副模拟蜗轮蜗杆:
见帖子:
http://www.simwe.com/forum/viewthread.php?tid=375799&highlight=%CE%CF%C2%D6

31、【原创】Adams中的蜗轮蜗杆实现原理
见帖子:
http://www.simwe.com/forum/viewthread.php?tid=178785&page=1#pid178790

32、一种行星齿轮传动建模方法[经验分享]
http://www.simwe.com/forum/viewthread.php?tid=744971&extra=page%3D4%26filter%3Dtype%26typeid%3D56

33、数据文件如何生成spline?
用输入的方式。file-import-,打开如图所示的对话框,照图中所示的选项就可以输入数据了。将你原来产生的数据作为test data输入,这种方法比较简单实用。数据文件中存放数据有一定的格式,建议参考一下帮助文件view_ex.pdf的40到46页。


34、如何使用spline编辑器?
选中spline右键进行modify即可,如下图

35、如何添加轨迹线?
Review | create Trace Spline

36、有两种方式定义力的方向:
a、沿两点连线方向定义;
b、沿标架一个或多个轴的方向。

二、常用函数介绍
(一)、adams函数总体介绍
1、ADAMS/View™ 是MDI公司出品的动力学仿真模块,提供了强大的建模与仿真环境。用户可以应用该模块对任何一个机械系统进行建模与仿真。除此之外,还可以通过函数编辑器编写表达式、函数和子程序,以实现对力、测量和运动的定义。在仿真过程中,系统状态实时发生变化,用户能够通过编写运行过程函数实现对系统变量的实时控制。

2、ADAMS/View函数包括设计函数与运行函数两种类型,函数的建立对应有表达式模式和运行模式两种。表达式模式下在设计过程中对设计函数求值,而运行模式下会在仿真过程中对运行函数进行计算更新。ADAMS/Solver函数支持ADAMS/View运行模式下的函数,在仿真过程中采用ADAMS/Solver解算时对这些函数进行计算更新。

3、运行时函数
(1) 运行时函数在仿真运行过程中被触发载入运行的,设计时函数在程序刚开始启动的时候就被载入,并注册。运行时函数可用C或者Fortran代码编写,而设计时函数只能用C编写。
(2) ADAMS/View libraries增加已编译过的设计时函数,定义或者修改模型和后处理方式。ADAMS/Solver libraries为运动和力增加运动时函数,直接定义模型的行为,控制仿真执行的方式。这样可以使你利用已有的软件定义一些复杂的模型间关系,比如液压力、轮胎力等。很多模块,ADAMS/View, ADAMS/Car, ADAMS/Engine,和ADAMS/Rail,可以运行这两种库,因为它们有内部的ADAMS/Solver。
(3) 尽管有一点理解上的困难,但子程序比函数表达式提供了更多的一般性和灵活性。编写一些函数来适应自己的特定需要,链入子程序到ADAMS/Solver,可提高运行效率和仿真速度。子程序和函数表达式的用途是一样的:给ADAMS/Solver定义非标准的输入。函数表达式的使用比较容易,但不能描述复杂的问题,尤其是在包含大量的逻辑判断时;而子程序需要编程、编译和链接,比较复杂,但它的功能更强大,用途更广,包括定义模型元素和指定输出。

4、在进行建立表达式、产生和修改需要计算的度量及建立设计函数等操作时,会采用表达式模式。在建立表达式时,首先在接受表达式的文本框处右击,然后选择“Parameterize”再选择“Expression Euilder”,进入建立设计函数表达式对话框。在该对话框中输入表达式,然后单击“OK”完成操作。

(二)、样条函数的应用
1、样条拟合是在给定曲线或曲面上的已知点间求取中间点的一种插值方法。仿真过程中通过样条拟合函数可以形成一条逼近数据点的光滑曲线。样条函数在下述情况较为通用:
1.1. 采用试验测试数据驱动模型;
1.2. 采用试验测试数据定义驱动力;
1.3. 通过数据点绘制光滑曲线。
ADAMS/View 允许采用三种插值方法,即:三次样条曲线拟合、B样条曲线拟合、Akima拟合法,它们对应的函数分别为CUBSPL、CURVE、AKISPL,其拟合特征及优、缺点如下表所示:


2、AKISPL函数
格式:AKISPL (First Independent Variable, Second Independent Variable,Spline Name, Derivative Order)
参数说明:
First Independent Variable   —— spline中的第一个自变量
Second Independent Variable (可选) —— spline中的第二自变量
Spline Name         —— 数据单元spline的名称
Derivative Order (可选) —— 插值点的微分阶数,一般用0就可以
function = AKISPL(DX(marker_1, marker_2, marker_2), 0, spline_1)
spline_1用下表中的离散数据定义
自变量x 函数值y
-4.0 -3.6
-3.0 -2.5
-2.0 -1.2
-1.0 -0.4
0.0 0.0
1 0.4
2 1.2
3 2.5
4 3.6

3、函数CUBSPL( 1st_Indep_Var , 2nd_Indep_Var , Spline_Name , Deriv_Order)
其中1st_Indep_Var定为时间变量time,2nd_Indep_Var 设为0,Spline_Name 为所保存的力与时间的曲线图名称,Deriv_Order设为0。力与时间的曲线图可以在菜单build—>data elements—>spline建立。

(三)、step函数的应用
1、Step函数格式为:step(x,x0,h0,x1,h1) 其中各参数意义如下:
x ―自变量,可以是时间或时间的任一函数
x0 ―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量;
x1 ―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量
h0 ― STEP函数的初始值,可以是常数、设计变量或其它函数表达式
h1 ― STEP函数的最终值,可以是常数、设计变量或其它函数表达式

2、[链接汇总]step函数应用大集合!
http://www.simwe.com/forum/viewt ... hlight=%BA%AF%CA%FD

(四)、if函数的应用
1、格式:IF(表达式1: 表达式2, 表达式3, 表达式4)
参数说明:
表达式1-ADAMS的评估表达式;
表达式2-如果的Expression1值小于0,IF函数返回的Expression2值;
表达式3-如果表达式1的值等于0,IF函数返回表达式3的值;
表达式4-如果表达式1的值大于0,IF函数返回表达式4的值;
例如:函数 IF(time-2.5:0,0.5,1)
结果: 0.0 if time < 2.5
  0.5 if time = 2.5
    1.0 if time > 2.5

2、IF((time/2.4-aint(time/2.4))*2.4-1.2: 2,0,-2)
这个意思是:
time/2.4-aint(time/2.4))*2.4-1.2<0: 函数值为:2,
time/2.4-aint(time/2.4))*2.4-1.2=0; 函数值为:0,
time/2.4-aint(time/2.4))*2.4-1.2>0; 函数值为:-2

3、【原创】来一个分段函数,大家来写写:
http://www.simwe.com/forum/viewt ... 6%B6%CE%BA%AF%CA%FD

(五)、sensor,acf的应用
1、acf应用实例:我的仿真过程是16秒,我想在0-4秒和8-12秒内约束1激活、约束2失效,在4-8秒和12-16秒内约束2激活、约束1失效,应该怎么写呢?
——应该是:deactivate/joint,id=2
simulate/dynamic,end=4,steps=100
activate/joint,id=2
deactivate/joint,id=1
simulate/dynamic,end=8,steps=100
activate/joint,id=1
deactivate/joint,id=2
simulate/dynamic,end=12,steps=100
activate/joint,id=2
deactivate/joint,id=1
simulate/dynamic,end=16,steps=100

2、怎样删除sensor?
下拉菜单edit里有delete项,在模型中任何对象不被选中的情况下单击delete,然后在数据库中选中要删除的sensor即可。同样的方法可以失效deactive一个sensor。

(六)、函数的典型应用
1、[转帖]ADAMS函数使用精华:
http://www.simwe.com/forum/viewt ... hlight=%BA%AF%CA%FD

2、【讨论】关于分段函数的添加:
http://www.simwe.com/forum/viewt ... hlight=%BA%AF%CA%FD

3、关于orient函数:
http://www.simwe.com/forum/viewt ... hlight=%BA%AF%CA%FD
4、【讨论】子函数参数含义:
http://www.simwe.com/forum/viewt ... hlight=%BA%AF%CA%FD

5、如何确定一个从动运动的motion函数:
http://www.simwe.com/forum/viewt ... hlight=%BA%AF%CA%FD

6、【原创】如何把MEA(或spline)加入到motion中!!
http://www.simwe.com/forum/viewt ... ht=spline%2Bandyxin

7、[链接汇总]spline运用:
http://www.simwe.com/forum/viewt ... mp;highlight=spline
发表于 2011-6-13 22:12:14 | 显示全部楼层 来自 北京
Simdroid开发平台
不是斑竹了,没法加分,帮你顶一下吧
回复 不支持

使用道具 举报

发表于 2011-7-7 11:08:14 | 显示全部楼层 来自 辽宁大连
搂住不错啊,辛苦啦!
回复 不支持

使用道具 举报

发表于 2011-7-10 13:39:57 | 显示全部楼层 来自 哈尔滨工业大学
顶一下,多谢了
回复 不支持

使用道具 举报

发表于 2011-7-11 06:58:37 | 显示全部楼层 来自 天津
楼主棒棒啊
回复 不支持

使用道具 举报

发表于 2011-9-1 11:41:57 | 显示全部楼层 来自 广东广州
总结的很好啊
回复 不支持

使用道具 举报

发表于 2011-9-1 14:19:10 | 显示全部楼层 来自 江苏南京
敢不敢再详细点……
回复 不支持

使用道具 举报

发表于 2011-9-1 16:25:16 | 显示全部楼层 来自 四川成都
楼主总结的这些问题,困扰了好久啊!太感谢楼主了
回复 不支持

使用道具 举报

发表于 2012-5-6 11:18:03 | 显示全部楼层 来自 北京
谢谢楼主!在非线性这块希望能有所帮助。
回复 不支持

使用道具 举报

发表于 2012-5-6 15:07:09 | 显示全部楼层 来自 福建福州
谢谢,非常受用!!
回复 不支持

使用道具 举报

发表于 2012-5-6 19:56:07 | 显示全部楼层 来自 江苏常州
好贴啊,支持楼主你
回复 不支持

使用道具 举报

发表于 2014-11-11 11:27:58 | 显示全部楼层 来自 河南新乡
好多连接都不能用了
回复 不支持

使用道具 举报

发表于 2022-4-1 09:59:38 | 显示全部楼层 来自 河南郑州
楼主辛苦  不过有些连接已经不能用了
回复 不支持

使用道具 举报

发表于 2022-4-2 14:02:08 | 显示全部楼层 来自 广东深圳
好贴啊:):)
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-4-27 21:02 , Processed in 0.046524 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表