ADAMS的step函数
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、
STEP函数是一个阶跃性的过渡函数,用来描述如驱动、载荷的上升或下降、打开或关闭。
常用来描述一个值或一个表达数需要从一个常数变成两个常数的情形。
可以在函数编辑器直接输入即可。
其语法规则是:
STEP(q,q1,f1,q2,f2).其中q是变量,表示q在q1的范围时取值f1,q在q2的范围时取值f2.
二、
求助:关于step函数论坛上已有不少帖子进行讨论了,
STEP(time,x ,x ,h ,h )函数为一连续阶梯函数,其中x ,x 是关于时间的自变量,h ,h 分别为函数的初始值和最终值。
我是新手,简单的能看明白,可是一些复杂的就不明白了,比如
V el0(time)=STEP(time,0,0,2,-500)-STEP(time,8,0,10,-500)-STEP(time,30,0,32,-500)+STEP(time,33,0,35,-500)。
该如何理解啊?
还有,如果我想让一个运动副速度0-5s为0,6-10s为20m/s,11-12s为0,13-16s为10m/s,到20s速度又变为0,该如何写step函数?谢谢大虾指导!~
see it!
/forum/post/view?bid=23&id=318421&sty=1&tpg=1&age=100
step是不能加匀速度的,它加的是瞬时速度。
比如step(time,0,0,1,1)+step(time,2,0,3,2)+step(time,4,0,5,3)
是0为0,1为1,2不变,3加2,4不变,5加3
hehe ,step函数的意思好像和qjj8171说的有点区别呢,如果以qjj8171的说法,以函数
(step(time,0,0,1,1)+step(time,2,0,3,3))*time
来定义一个物体的运动,也就是说0-1时间内的速度为0了,实际不是这样的。
step函数是一个插值计算。
如step(time,2,0,3,1)那么在2-3内的计算的值是是((1-0)/(3-2))*(time-2)。
我编写了一个函数你看看怎么样?
STEP( time , 5 , 0 , 6 , 20 ) - step( time, 10, 0, 11, 20) + STEP( time , 12 , 0 , 13 , 10 ) - STEP( time , 16 , 0 , 20 , 10 )
三
用step函数可以实现你要的效果
比如,设置作用力函数为step(time,0,0,2,100)+step(time,2,0,4,-100)+step(time,4,0,6,-100)+step(time,6,0,8,100)+step(time, 8,0,10,-100)+step(time,10,0,12,100)+step(time,12,0,14,100)+step(time,14,0,16,-100)
其中,前4项可以实现8s时物体的速度为零,但一直是向前运动,后4项则反向运动到原点,16s之后,物体固定在初始位置,如图所示。
要满足时间、位置或速度的条件,可以通过计算得到具体的表达式。
当然,如果用if函数也可以实现类似的效果,但if函数存在突变现象,容易造成积分困难,不建议使用。
关于step函数和if函数的详细内容,你可以看范成建的《虚拟样机软件MSC.ADAMS应用与提高》一书
另外,还有其他adams书中都有涉及,电子书免费下载地址:
/projects/808720057
四、
在使用adams的过程中,由于函数比较多,大概有11种之多,如1、Displacement Function 2、V elocity Functions 3、Acceleration Functions 4、Contact Functions 5、Spline Functions 6、Force in Object Functions 7、Resultant Force Functions 8、Math Functions 9、Data Element Access 10、User-Written Subroutine Invocation 11、Constants & V ariables。
在adams中也有帮助文档,但是对于初学者来说还是有一定的难度的,基于这种情况我总结了一下几种常用的函数,希望能够起到抛砖引玉的作用!
1、STEP函数
格式:STEP (x, x0, h0, x1, h1)
参数说明:
x―自变量,可以是时间或时间的任一函数
x0 ―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量;
x1 ―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量
h0 ― STEP函数的初始值,可以是常数、设计变量或其它函数表达式
h1 ― STEP函数的最终值,可以是常数、设计变量或其它函数表达式
2、IF函数
格式: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
3、AKISPL函数
格式:AKISPL (First Independent V ariable, Second Independent V ariable,Spline Name,
Derivative Order)
参数说明:
First Independent V ariable——spline中的第一个自变量
Second Independent V ariable (可选) ——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
4、碰撞函数impact
其实质是:用只抗压缩的非线性的弹簧阻尼方法近似计算出单边碰撞力。
格式:IMPACT (Displacement V ariable, V elocity V ariable, Trigger for Displacement V ariable, Stiffness Coefficient, Stiffness Force Exponent, Damping Coefficient, Damping Ramp-up
Distance)
参数说明:
Displacement V ariable
实时位移变量值,通过DX、DY、DZ、DM等函数实时测量。
V elocity V ariable
实时速度变量值,通过VX、VY、VZ、VM等函数实时测量。
Trigger for Displacement V ariable
激发碰撞力的位移测量值。
Stiffness Coefficient or K
刚度系统。
Stiffness Force Exponent
非线性弹簧力指数。
Damping Coefficient or C
阻尼系数。
Damping Ramp-up Distance
当碰撞力被激发阻尼逐渐增大的位移值。
5、bistop函数
它的格式是BISTOP( x, dx, x1, x2, k, e, cmax, d)这里它由八个参数定义。
它与函数IMPACT类似。
可以这么说:BISTOP是双侧碰撞函数,而IMPACT是单侧碰撞函数。
BISTOP的触发是由两个边界条件确定的,即x1和x2,当x值大于或等于x1且小于或等于x2时,函数值为0,当x值大于x2或小于x1时,它的值是不同的。
当x小于x1时,返回值是:k(x1-x)^e-cmax*dx*step(x,x1-d,1,x1,0),当x大于x2时,返回值是:
k(x-x2)^e-cmax*dx*step(x,x2,1,x2+d,0)。
各种参数表示意义可以从IMPACT里推出来,它只是多了一个x2。
返回值
我来说说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使用了缓和的图形,从其位移图中可以看出来。