iCAx开思网

标题: 【资料】Adams 函数大讨论 [打印本页]

作者: Jeriflee    时间: 2003-5-5 13:32
标题: 【资料】Adams 函数大讨论
众所周知,Adams的函数相当多,功能也很强大。
特开此贴,希望大家分析和讨论一些常用的函数。
最好有些简单的例子。
  
酌情加分哦!
作者: panda5165    时间: 2003-5-5 16:45
step可能是最常用的吧
  
step(time,0,0,1,50)+
step(time,4,0,6,-100)+
step(tme,9,0,10,50)
作者: sfszj    时间: 2003-5-5 17:22
以前用过碰撞函数,有单向和双向函数的区分,其中系统的球面等碰撞为其特例!
IMPACT (Displacement Variable, Velocity Variable, Trigger for
Displacement Variable, Stiffness Coefficient, Stiffness Force Exponent,
Damping Coefficient, Damping Ramp-up Distance)
  
BISTOP (Displacement Variable, Velocity Variable, Low Trigger for
Displacement Variable, High Trigger for Displacement Variable, Stiffness
Coefficient, Stiffness Force Exponent, Damping Coefficient, Damping
Ramp-up Distance)
作者: Jeriflee    时间: 2003-5-5 18:45
panda5165 wrote:
step可能是最常用的吧  
  
  step(time,0,0,1,50)+  
  step(time,4,0,6,-100)+  
  step(tme,9,0,10,50)

  
的确这个函数比较常用, 给大家介绍详细点,比如参数的意义,用法,最好有个例子.  
BY Jeriflee

  
请后面的同学也详细些,否则就起不到作用了
作者: chyq    时间: 2003-5-6 17:20
我就说一下if吧。
这个函数最好不要使用,他的使用会带来突变,会使运算的时候不收敛。不过应急的时候还是可以一用。
内容如下:if(time-1:1,0,if(time-2:0,-1,-1))
IF(Expression1: Expression2, Expression3, Expression4)
adams要计算Expression1的值,如果他的值小于0,则执行Expression2语句,如果Expression1的值等于0,则执行Expression3语句,如果Expression1的值大于0,则执行Expression4语句
我得if语句的意思是:如果时间小于1的时候,加速度为1,如果时间为1,加速度为0,如果时间大于1小于2,则加速度为0,如果时间大于、等于2则,加速度为-1
  
好,虽然简单,但是够详细。 加1分 BY Jeriflee
作者: Jeriflee    时间: 2003-5-9 15:32
我来说说step这个函数。
函数原型:
STEP(A,x1,h1,x2,h2)
解释:由数组A的x值,生成区间(x1,h1)至(x2,h2)之间的阶梯曲线,返回y值的数据。
  
举个常用的例子。
比如STEP(time,1,0,2,100)
time在adams中是个递增的变量,相当于一个数组。那么step的返回值就是随着time变化的值。
这个例子将表示在time从(1,2)的过程中,返回值将从0,100。
看看例子,两个小球,一个使用step函数设置了位移,另外一个是参考。
当然,这个变化过程,adams使用了缓和的图形,从其位移图中可以看出来。
作者: Jeriflee    时间: 2003-5-9 15:38
step既然是个返回值,就可以使用加减法了。
如上例,如果设置下面的小球的位移如下:
STEP(time,1,0,2,100)+step(time,2,0,3,400)+step(time,3,0,4,-200)
不用我解释,看看图
作者: homage79    时间: 2003-5-11 15:05
我得一个想法
就是利用sign函数构造
比较常用的是给机构加上一个与运动方向相反的作用力等等
可以先测量施加力对象的运动速度,然后利用速度的变化,插入measure到sign函数里面就可以获得与运动方向相反的作用力
  
-----------------------------------------------------------------------------------------------
错了就edit一下嘛!这回我帮你改了。 BY Jeriflee
作者: homage79    时间: 2003-5-11 15:17
图片怎么不显示啊,重来
作者: chyq    时间: 2003-5-11 17:24

作者: homage79    时间: 2003-5-11 19:12
做的很简单
  
Adams提供我们充分的柔性,关键在于灵活应用。
创造无止境!
虽然简单,但是有用处! 加1分鼓励 ::g::g::g   BY Jeriflee
  
作者: homage79    时间: 2003-5-11 19:13
不好意思,还有一处笔误,应该是sign函数
作者: homage79    时间: 2003-5-12 19:54
不好意思,让斑竹见笑了,呵呵,我下一次就会用edit了
^_^
作者: lemonwj    时间: 2003-5-15 10:37
我来说说自定义函数,它是让用户丰富Adams函数库,也是来弥补它的不足。
首先要安装vc,vf,我用的是vf  
1.严格按照模板格式编译源程序*.f,这点多看帮助,细细体会,一定要保证它的正确性。  
2.再dos下用批处理文件dff.bat(内容为df /c / architectur:p6 /ob2 /z7),编译源程序*.f,生成目标文件*.obj  
3.在adams/solver模块里选择Create Custom Solver,如果你想查看运行的状况,建议在dos下操作,进入adams安装目录下的common的子目录,运行mdi.bat cr-user,先敲一个回车,然后按要求往下走(填上*.obj,别忘了还有其所在目录,如果只有一个*.obj,再按回车,接着填要生成的*dll文件,名称自定义),这样就生成了adams/solver的*.dll文件  
3.在adams/view里调用,把solver library指定为*.dll(settings----solver-----solver executable)  
4.然后可以调用了,user parameter里填要用的参数就可以啦  
5.关于多个子程序,只需写到一个子程序里,用一个调用其他的就可以啦。  
这些够详细吧,具体操作的时候,看大家了,慢慢来,一定会搞定的,要有信心!  
  
欢迎来指导大家,加1分鼓励 ::g::g::g  BY Jeriflee
作者: Jeriflee    时间: 2003-5-15 17:23
lemonwj  
   
给我们来点示例如何?
作者: lemonwj    时间: 2003-5-15 20:32
好呀,可是我不会做你们做的动画。做个文档贴上来吧,不过大家要等等,我的电脑(工作用的)出了点问题,送去修了。
作者: homage79    时间: 2003-5-16 14:57
好啊好啊,等了好久了
呵呵
作者: Jeriflee    时间: 2003-5-16 21:21
lemonwj wrote:
好呀,可是我不会做你们做的动画。做个文档贴上来吧,不过大家要等等,我的电脑(工作用的)出了点问题,送去修了。

  
好,我们耐心等着。:
作者: lemonwj    时间: 2003-5-16 21:54
这是一个师兄教我的,基本上是原文,我感觉已经很详细了,希望对大家又帮助。
作者: fondboy    时间: 2003-7-28 22:36
其实函数可以不学习
可以在MATLAB中简单实现
是不是这样呢
但是有的函数一定要的
就象碰撞中用的的函数
作者: bigfrog    时间: 2003-8-5 09:59
对于step 函数我有点疑问!
在使用impact函数的时候说到,Impact产生的力f
见下图!
作者: bigfrog    时间: 2003-8-5 10:02
而view-function的pdf的里的step函数只有5个参数!
  
STEP (x, Begin At, Initial Function Value, End At, Final Function Value)
  
不知道impact函数中的step怎么计算呢?
作者: bigfrog    时间: 2003-8-5 10:03
奥!sorry!
是我看错了!的确是5个参数!不好意思!
作者: zzw    时间: 2004-1-7 16:15
请问,step函数与step5函数之间有什么区别吗?谢谢!!
作者: WARRIOR    时间: 2004-2-13 19:42
学习ING
作者: wxd_ny    时间: 2004-3-7 13:54
运行时函数
  
(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定义非标准的输入。函数表达式的使用比较容易,但不能描述复杂的问题,尤其是在包含大量的逻辑判断时;而子程序需要编程、编译和链接,比较复杂,但它的功能更强大,用途更广,包括定义模型元素和指定输出。
作者: hx_jerry    时间: 2004-3-29 22:39
大哥,怎么调用函数呀??
作者: wxd_ny    时间: 2004-4-8 19:07
老大,不加分,让我怎么往下面写。
  
————————————————————————————
资料整理中>>>>>>
作者: S05090988    时间: 2005-11-11 22:08
SPDP函数怎么用呀? 哪位高手帮帮忙?
作者: beihuayiye    时间: 2005-11-12 17:02
标题: step函数的使用方法
格式:STEP (x, x0, h0, x1, h1)
参数说明:
   x ―自变量,可以是时间或时间的任一函数
   x0 ―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量;
   x1 ―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量
   h0 ― STEP函数的初始值,可以是常数、设计变量或其它函数表达式
   h1 ― STEP函数的最终值,可以是常数、设计变量或其它函数表达式

分两种写法:一种是嵌入式,一种连加。
STEP (x, x0, h0, x1,
一、
STEP (x, x0, h0, x1,
(STEP (x, x1, h1, x2,
(STEP (x, x2, h2, x3, h2) ))))  (当然你可以嵌套更多的)
二、
step(time,3,0,5,5)+
step(time,5,0,8,0)+
step(time,8,0,10,-5)
作者: beihuayiye    时间: 2005-11-15 19:56
step与step5使用时有什么时间?
作者: 梁子    时间: 2005-11-17 09:29
我也想知道step与step5的区别
作者: xiaonibaqq    时间: 2005-11-25 19:46
标题: 请教,连续的折线用什么函数表示呢?
请教各位大虾,在adams中,如何表示连续的折线问题呢?比如位移曲线是连续的折线,就是说物体运动是分段的匀速运动,而每段的速度又不一样,这个时候用什么函数表示位移呢??谢谢赐教!
作者: yangdx    时间: 2005-12-4 19:46
标题: 关于step与step5 的区别
我来说说step与step5的区别,不精辟,与大家一起讨论。
STEP (x, Begin At, Initial Function Value, End At, Final Function Value)
STEP5 (x, Begin At, Initial Function Value, End At, Final Function Value)
这两个函数的参数的定义是一样的,含义也是一样的,区别在于:
1、step函数以三次方程逼近函数曲线,而step5是以一个五次方程逼近函数曲线的。
2、对step而言,有连续的一阶导数,而二阶导数在Begin At与End At两点就不连续了。而对step5,有连续的一阶与二阶倒数,三阶导数在Begin At与End At两点不连续了。由此我们就知道,用step5函数时,有更高的连续性与可微性,也就是说逼近程度一般会更高更好,曲线也更光滑。
不过本人觉得,在一般的应用中,我们经常采用三次逼近,就象在一般的应用中,nurbs曲线也采用三次曲线,采用逼近次数越高,求导次数也越多,会很大程度上影响逼近的速度,所以你必须权衡逼近程度与速度间的利弊。

以上是我的一点看法,供参考,也希望能有一分呦嘿嘿!!!
作者: 宇航燕子    时间: 2006-6-18 18:04
各位好!能否用if函数根据时间对速度进行控制?谢谢各位!!
我的email:h_xiufeng@yahoo.com.cn
作者: camel_777    时间: 2008-1-24 20:38
有哪位知道测量函数的构造语法吗?比如:DX( , , ),DY( , , ),DZ( , , ),DM( , , ),……
三个参数具体怎样设定?谢谢!
作者: huxibing    时间: 2009-1-5 13:33
标题: ADAMS函数运用出了问题
麻烦了

分段加载力函数

if(.MPRO_model.MEA_ANGLE_123-2*int(.MPRO_model.MEA_ANGLE_123/(2*pi))*pi:0,1,if(.MPRO_model.MEA_ANGLE_123-(2*int(.MPRO_model.MEA_ANGLE_123/(2*pi))pi+1.46):1,2,if(.MPRO_model.MEA_ANGLE_123-(2*pi*(int(.MPRO_model.MEA_ANGLE_123/(2*pi))+1)-1.46):2,1,if(.MPRO_model.MEA_ANGLE_123-2*pi(1+int(.MPRO_model.MEA_ANGLE_123/(2*pi))):1,1,0))))

不知道错哪里了

麻烦大家改下,

.MPRO_model.MEA_ANGLE_123 为建立的测量角度
作者: huxibing    时间: 2009-1-5 13:34
标题: ADAMS函数运用出了问题
ADAMS函数运用出了问题麻烦了

分段加载力函数

if(.MPRO_model.MEA_ANGLE_123-2*int(.MPRO_model.MEA_ANGLE_123/(2*pi))*pi:0,1,if(.MPRO_model.MEA_ANGLE_123-(2*int(.MPRO_model.MEA_ANGLE_123/(2*pi))pi+1.46):1,2,if(.MPRO_model.MEA_ANGLE_123-(2*pi*(int(.MPRO_model.MEA_ANGLE_123/(2*pi))+1)-1.46):2,1,if(.MPRO_model.MEA_ANGLE_123-2*pi(1+int(.MPRO_model.MEA_ANGLE_123/(2*pi))):1,1,0))))

不知道错哪里了

麻烦大家改下,

.MPRO_model.MEA_ANGLE_123 为建立的测量角度            我的QQ 670125995
作者: sikongroy    时间: 2009-5-6 14:15
哪位大侠知道TIME函数怎么用啊?
作者: liushui336    时间: 2010-1-1 22:31
能对impact函数有一个例子说明吗?谢谢  希望这个帖子顶起来
作者: liushui336    时间: 2010-2-26 21:17
有没有impact函数的例子呢?期待学习中  斑竹




欢迎光临 iCAx开思网 (https://www.icax.net/) Powered by Discuz! X3.3