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) )))) (当然你可以嵌套更多的)
另一种就是增量式:
STEP (x, x0, h0, x1, h1)+
STEP (x, x1, h2, x2, h3)+
STEP (x, x2, h4, x3, h5)+
……
我常用的是后者,下面就举例(附件请参考step.cmd文件)说明下他们的区别。其实他们都可以表示同一种你所需要的曲线,如下所示曲线:
用嵌入式可表示为:
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)
还有一种是错误的:
step(time,3,0d,5,5d)+
step(time,8,5d,10,0d)
这两种都是错误的表示的方法,不信你自己可以试试的
总结:从上面的例子中大家可以清楚的看出,增量式明显比嵌入式要简洁的多,但是嵌入式却比增量式思路要清晰、严谨的多,他们各有自己的优点,所以大家可以针对性的使用他们,习惯用什么方式就用什么方式,当然他们还有其他的不同点我还没想到的,也欢迎你多多提出意见。 |