step

更新时间:2022-12-28 00:43:09 阅读: 评论:0


2022年12月28日发(作者:toothpaste)

1

Step函数

step(x,x0,h0,x1,h1)

x是自变量,x0表示step函数起点,x1表示step函数终点。h0是函数在起

点的值,h1是函数终点的值。在起点和终点间返回的是按公式h0+(h1-h0)*a*a*

(3-2a)计算的值。其中a=(x-x0)/(x1-x0).

step5变量的意义是一样的,只是在计算其中返回的值的计算公式不同。计算公式的

不同使得起点和终点函数曲线的连续性不同。返回的值也有差异。具体在adams自

带的帮助里面都可以查到的。

Step的两种表示方法

相信大家对step的用法已经是相当的熟练了,在这里我只是想把自己对step的理

解总结一下,希望能对大家有所帮助。

首先简要介绍下step的形式及其各个参数的物理含义:

格式:STEP(x,x0,h0,x1,h1)

参数说明:

x―自变量,可以是时间或时间的任一函数

x0―自变量的STEP函数开始值,可以是常数或函数表达式或设计变量;

x1―自变量的STEP函数结束值,可以是常数、函数表达式或设计变量

h0―STEP函数的初始值,可以是常数、设计变量或其它函数表达式

h1―STEP函数的最终值,可以是常数、设计变量或其它函数表达式

而在实际的运用过程中,它有两种表示方法,一种是嵌入式:

STEP(x,x0,h0,x1,

(STEP(x,x1,h1,x2,

(STEP(x,x2,h2,x3,h2)))))(当然你可以嵌套更多的)

2

另一种就是增量式:

STEP(x,x0,h0,x1,h1)+

STEP(x,x1,h2,x2,h3)+

STEP(x,x2,h4,x3,h5)+

……

我常用的是后者,下面就举例(附件请参考文件)说明下他们的区别。其

实他们都可以表示同一种你所需要的曲线,如下所示曲线:

用嵌入式可表示为:

step(time,0,0d,3,

(step(time,3,0d,5,

(step(time,5,5d,8,

(step(time,8,5d,10,

(step(time,10,0d,12,0d)))))))))

用增量式表示为:

step(time,3,0,5,5)+

step(time,5,0,8,0)+

step(time,8,0,10,-5)

在使用后者的过程中很多人会误表示为:

step(time,0,0d,3,0d)+

step(time,3,0d,5,5d)+

step(time,5,5d,8,5d)+

step(time,8,5d,10,0d)+

step(time,10,0d,12,0d)

3

还有一种是错误的:

step(time,3,0d,5,5d)+

step(time,8,5d,10,0d)

这两种都是错误的表示的方法,不信你自己可以试试的☺

总结:从上面的例子中大家可以清楚的看出,增量式明显比嵌入式要简洁的多,

但是嵌入式却比增量式思路要清晰、严谨的多,他们各有自己的优点,所以大家可以针

对性的使用他们,习惯用什么方式就用什么方式,当然他们还有其他的不同点我还没想

到的,也欢迎你多多提出意见。

多个step函数表达式的应用

问:时间是0时,值为0;

时间为2时,值为10;

时间为3时,值为10;

时间为4时,值为0。

用step(time,0,0,2,10)+step(time,3,10,4,0)不能达到预期的效果。那么应该

怎样表达?

答:应为:step(time,0,0,2,10)+step(time,3,0,4,-10)应该清楚step函数的表达

意义,step(time,0,0,2,10)+step(time,3,0,4,-10)这是一个整体式,不能只看第二

个。

第二个step是以第一个的step完成后的位置为初始位置的,是相对的,不是绝对

的,像上面的例子step(time,0,0,2,10)+step(time,3,10,4,0),如果是这样的话,

达到的实际效果是:

时间是0时,值为0;

时间为2时,值为10;

时间为3时,值为20;

时间为4时,值为20。

step(time,3,10,4,0),是以第一个step后的位置开始算的。

问:step(x,x0,h0,x1,h1),其中x大多数都是时间,请问x可以是别的吗?

4

譬如,我做的180度的旋转运动,我想在0—30时加速,30-150匀速,150—180

减速,我想把x定义为degree,但是好象出错,不知道可以不?

答:step中的x可以是任意变量或测量值,但运动只能是时间的函数!

问:step(time,0,0,0.7,time*75d)我设计总时间为1秒,为什么它能转动

75度,如果step(time,0,0,0.7,time*75d)+step(time,0,0,1,0d)还是转动

75度?他转到53度应该停吧,

这不是我需要的。

答:step(time,0,0,0.7,time*75d)你的总时间为1秒,所以time*75d就

为1x75d=75d了,这是它在仿真1秒后的最后的状态。time*75d是个时间变量的,

但它在时间为0.7秒的时候,转过的角度为0.7x75d=52.5d。

另外step(time,0,0,0.7,time*75d)+step(time,0,0,1,0d),你不觉得它

有点问题吗,后面的step(time,0,0,1,0d)0秒时为0,1秒时还为0d,所以它

的增量最后还是0,就相当于没有。

本文发布于:2022-12-28 00:43:09,感谢您对本站的认可!

本文链接:http://www.wtabcd.cn/fanwen/fan/90/43670.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:3602
下一篇:attentionplease
标签:step
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图