keybox 发表于 2007-8-29 15:54:30

关于step & if 函数

关于这两个函数的使用,已经有过许多讨论,见
http://www.simwe.com/forum/search.php?searchid=189&orderby=lastpost&ascdesc=desc&searchsubmit=yes

(1)IF( expr1 :expr2 , expr3 , expr4 )
运行时,程序计算expr1,大于0进行expr2,等于0进行expr3,大于0进行expr4

(2)STEP (x, x0, h0, x1, h1)
说明:这里的x不仅可以是time,还可以是其他状态变量如长度、力等等;只需Bulid->System element->state variable中定义,便可使用。
假定已按上述方式定义了一状态变量StateVariable_Disp,则可通过VARVAL :STEP( VARVAL(StateVariable_Disp) , -25 , 0, -20 , 1)


$$$$$$$$$$$
值得说明的是,对于不同过程工况的仿真,我们不一定非要通过step&if嵌套使用!

这里以升降装置模型为例,欲实现如下工况:
活塞piston的位移:
case1 : 前10s静止不动,
case2 : 1到2.6s下降撑地,                               下降250mm                                 
case3 :2.6到5撑起车体,活塞不动,油缸被撑起      
case4 :5到10s,静止不动
case5 : 10到20s油缸收起,后面2物体都禁止不动          收起490mm
一种方法是将motion定义为if(time-1:0,100*(time-1),if(time-2.6:100*(time-1),250,if(time-10:250,250,if(time-20:250-49*(time-10),-240,-240))))
推荐使用另一种方法:script语言。

inndoor 发表于 2009-4-5 01:06:57

不错,感谢楼主分享。

xixi2517 发表于 2009-4-5 08:45:51

太好了,学习了:handshake

fengrui1 发表于 2009-4-11 11:23:11

感谢楼主!:handshake

f93111053 发表于 2010-1-20 09:09:21

謝謝樓主大大的講解

cpcm_716 发表于 2010-3-21 00:02:19

谢谢,学习学习学习!

YANXQ 发表于 2010-3-26 15:29:42

谢谢:victory:

kaiking 发表于 2010-6-2 15:04:46

谢谢 学习了谢谢楼主

gm2020 发表于 2010-6-2 23:32:12

if在处理多个情况动作的时候确实让人很头疼,因为adams自带的if功能不如平时用c中的强大

f93111053 发表于 2010-7-9 06:05:57

謝謝大大分享 受教了

sososwim 发表于 2010-7-10 00:15:53

每次来看都有收获。。。

liuleilei77 发表于 2010-7-17 09:38:13

好东西,收了

dongxuxy 发表于 2012-5-4 11:37:46

这个太好了!谢谢LZ:handshake

yzh621 发表于 2013-3-10 09:54:59

感谢~~~~~~~~~~~~~~~~
页: [1]
查看完整版本: 关于step & if 函数