step函数 格式step(x,x0,h0,x1,h1) x为自变量,在ug里一般定义为time x0为自变量初始值,在ug里可以是时间段中的开始时间点 h0为自变量x0对应的函数值,可以是常数、设计变量或其他函数表达式 x1为自变量结束值,在ug里可以是时间段中结束时间点 h1为自变量x1对应的函数值,可以是常数、设计变量或其他函数表达式 函数曲线图 6 \+ F/ e3 {0 y6 F* [! v
R! Q& y0 `: [- }* O 数学表达式 step(time,t0,h0,t1,h1)= h0(time≤t0) h0+(( time-t0)/(t1-t0))2*(h1-h2) h1(time≥t1) 解释: 在时间段t0到t1时间段内,函数以中间波浪线样子的二次函数变化,在时间t0之前的时间段内,函数是h0的恒定数值变化,在时间t1后,函数是h1的恒定数值变化,也就是函数值经过时间段后t0到t1后,函数值发生了突变,当t0与t1非常接近的时候,可以近似认为,函数变化为一条直线,但是t0和t1不能相等,从t0-t1的数学表达式就可以知道,这是一个无解,h0和h1可以相等,相等以后,整个函数曲线即为一条直线 多个时间段内函数值发生突变的函数表达 6 b% r1 S' y7 g, v9 F: @7 b; W6 k- P# H0 E( i
step(time,2,1,3,3)+step(time,4,0,5,-3) 也可以表达成step(time,2,1,3,step(time,4,0,5,-3)) 一般使用第一种加法形式较好,简洁明了,便于理解 对于时间段4-5内,时间点4位置对应数值不是3,而是0,这是一个相对概念,指此处函数值是相对于上一个时间段函数值,所以为0,如果是3的,那4对对应函数值将变成6,因此可见,相对函数值为3-3=0,5时间点对应函数值,同理为0-3= -3。 有这个例子可知,可以用step函数来控制连杆在不同时间段做不同运动规律的运动。 " P+ V% D( a. k$ C8 f9 H2 v6 _9 Z4 U! B! c7 a
不同时间段,连杆做不同函数运动形式 : x; h3 k3 b: y0 q# q! U R
' S9 f0 r+ ]* d& D t0-t1时间段内,让连杆以f(x)函数形式运动;t1-t2时间段内,让连杆以直线形式运动,在t2-t3内,让连杆以g(x)函数形式运动,以此实现连杆在不同时间段以两种或多种函数形式运动。 t0-t1时间段函数图形转换 8 d0 S. `0 ]% _0 c2 K" H2 c4 A" ] d) l4 p2 u2 |4 L
按照相同时间段将第一个函数运动图转换为第二个函数运动图,按照step函数表达可以写出: t0-t1时间段,step表达为 (step(time,t0+0.001,0,t0,1)+step(time,t1+0.001,0,t1,-1)) 由于step函数时间段起始和结束时间点不能相等,也就是不能是垂直直线形式图变,因此可以在时间点t0附近添加一个微小时间段,近似垂直直线形式突变。 如果将转换形式的step函数*f(x),那么连杆在t0-t1时间段的运动形式就可以以f(x)运动,大家也可以从函数值上来理解,就是1乘以任何数值无法改变被乘数值,即f(x)任何函数值与1相乘,数值不变,即实现连杆在t0-t1时间内以f(x)形式运动。 由此可知在t0-t1时间段内,f(x)运动形式表达为 (step(time,t0+0.001,0,t0,1)+step(time,t1+0.001,0,t1,-1))* f(x) t1-t2时间段函数图形转换
1 |1 I8 T7 G! q. [7 [9 j* `# Y" e. H% O: T 在t1-t2时间段,这个时间段为直线运动,按照矩形方波图形,step函数形式表达 step(time,t1+0.001,0,t1,1)+ step(time,t2+0.001,0,t2,-1) 依据第一个时间段详细讲解,可知,t1-t2时间段内,连杆运动形式表达为 (step(time,t1+0.001,0,t1,1)+ step(time,t2+0.001,0,t2,-1))*h1 t2-t3时间段函数图形转换 ! g. k8 M% ^; p8 ?: \+ k& ?3 B- \8 n& j4 z
t2-t3时间段,根据矩形方波,step表达为 step(time,t2+0.001,0,t2,1)+step(time,t3+0.001,0,t3,-1) 由上可知,在t2-t3时间段内,g(x)运动形式表达为 (step(time,t2+0.001,0,t2,1)+step(time,t3+0.001,0,t3,-1))*g(x) 总结 不同时间段,不同函数运动形式step表达方式,只需要将每个时间段变成0-1的矩形方波,将时间段开始和结束时间点添加一个微小时间段,对开始时间点添加微小时间增量的时间段,进行step函数书写后,再对结束时间点进行相同的step函数书写,将开始和结束时间的step函数进行加和后再乘以相应的函数,即可完成相应函数的运动形式。 第一个图中连杆的两种函数g(x)、f(x)还有直线的step函数控制为: (step(time,t0+0.001,0,t0,1)+step(time,t1+0.001,0,t1,-1))* f(x)+(step(time,t1+0.001,0,t1,1)+ step(time,t2+0.001,0,t2,-1))*h1+(step(time,t2+0.001,0,t2,1)+step(time,t3+0.001,0,t3,-1))*g(x) 多项式函数 poly(x,x0,a0,a1,a2,……,a30) =a0+a1*(x-x0)+ a1*(x-x0)2+……+a30*(x-x0)30 x是自变量。x0为初始值,a0到a30为系数,当x0=0时,取到a1系数,则多项式为一条一次曲线,y=a0+a1*x,当取到a2系数时,则多项式为一条二次曲线(抛物线),y=a0+a1*x+a2*x2 由此可知,多项式函数是控制连杆线性运动或二次曲线运动的函数,x取变量time 1 `% Y4 F) m" h$ v6 P) H' {1 f. P: L* F
余弦函数——简谐运动 shf(x,x0,a,w,phi,b) =asin(w(x-x0)-phi)+b 简谐运动既是最基本也是最简单的一种机械振动,如果一个质点的运动方程有如下形式: 3 ]" \+ g, @' H, v3 Z/ H
( v7 ^! F/ ? z7 J5 X 即,质点的位移随时间的变化是一个简谐函数,显然此质点的运动为简谐振动。w为角速度,单位为度/秒或者弧度/秒。 下图为简谐运动的图像,表示的是振动物体的位移随时间变化的规律。是一条正弦或余弦曲线。 ) r k" A2 R, y! j9 Q
0 \/ f) G7 ?1 n+ z. K2 C 由以上讲解可知,shf函数中,x为变量,一般取time,x0为初始时间点,a为振幅,w为角速度,phi为初项,也就是t等于0时,角度值,b表示截距,也就是余弦函数的位移。 |