UGNX运动仿真STEPSHFPOLY函数详解与综合应用.docx
《UGNX运动仿真STEPSHFPOLY函数详解与综合应用.docx》由会员分享,可在线阅读,更多相关《UGNX运动仿真STEPSHFPOLY函数详解与综合应用.docx(18页珍藏版)》请在冰豆网上搜索。
UGNX运动仿真STEPSHFPOLY函数详解与综合应用
STEP函数详解
使用UG运动仿真模块的伙伴们都该知道编写运动仿真的函数式是个难点,也是重点,其中又以STEP函数式使用最多,也是比较容易理解的一种运动函数。
今天在这里给大家简单分析讲解一下。
那么首先要了解STEP函数的格式:
STEP(x,x0,h0,x1,h1)
其上五个变量中,
第一个(x)是横坐标定义;
第二个(x0)是时间起点(就是说,你要他什么时候开始递加递减;);
第四个(x1)是时间终点(你要他什么时候结束递加递减);
第三个(h0)为递加递减数值的起点;
第五个(h1)为相对于0点的递加递减数值,这个是你可以自行修改的。
下面举个例子:
STEP(x,3,0,6,100),意义:
第一秒到第三秒,位移为0,即物体静止;第三秒到第六秒,物体位移100。
复杂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(x,12,0,16,STEP(X,16,260,20,STEP(X,24,0,28,STEP(X,28,260,32,STEP(X,34,0,37,STEP(X,37,260,40,0))))))
意义:
0-12秒,物体静止;12-16秒,物体位移260;16-20秒,物体回到初始0位置,也就是相对上一个位置做了-260位移;20-24秒,物体静止;24-28秒,位移260;28-32秒,物体回到初始0位置,也就是相对上一个位置又做了-260位移;32-34秒,物体静止;34-37秒,物体位移260;37-40秒,物体回到初始0位置。
(绝对模式)
STEP(x,0,0,3,STEP(x,3,200,9,STEP(x,9,-200,12,STEP(x,21.5,0,24,STEP(x,32,150,34,STEP(x,40,259.8,42,0))))))
意义:
0-3秒,物体位移200;3-9秒,物体位移-200,即期间物体移动了400;9-12秒,物体回到初始0位置,即移动了200;12-21.5秒,物体静止;21.5-24秒,物体位移150;24-32秒,物体静止;32-34秒,物体位移259.8;34-40秒,物体静止;40-42秒,物体回归初始0位置。
(绝对模式)
增量式的复杂函数式
STEP(x,0,0,12,0)+STEP(x,12,0,16,260)+STEP(X,16,0,20,-260)+STEP(x,20,0,24,0)+STEP(X,24,0,28,260)+STEP(X,28,0,32,-260)+STEP(x,32,0,34,0)+STEP(X,34,0,37,260)+STEP(X,37,0,40,-260)
等同于:
STEP(x,12,0,16,260)+STEP(X,16,0,20,-260)+STEP(X,24,0,28,260)+STEP(X,28,0,32,-260)+STEP(X,34,0,37,260)+STEP(X,37,0,40,-260)
亦等同于:
STEP(x,12,0,16,STEP(X,16,260,20,STEP(X,24,0,28,STEP(X,28,260,32,STEP(X,34,0,37,STEP(X,37,260,40,0))))))
意义:
0-12秒,物体静止,原地不动;12-16秒,物体相对上一位置位移260;16-20秒,物体相对上一位置移动-260;20-24秒,物体静止;24-28秒,相对上一位置位移260;28-32秒,物体相对上一位置移动-260;32-34秒,物体静止;34-37秒,相对上一位置位移260;37-40秒,物体相对上一位置移动-260。
(相对模式)
举个例子
STEP(x,1,0,2,20)+STEP(x,6,0,12,-40)
意义:
1秒到2秒:
从0度转到20度;
2秒到6秒:
电机保持在20度位置上不动;
6秒到12秒:
由20度反转40度,结果为停留在-20度。
所以,增量式有两个特性必须记住:
1,除非输入新的STEP,否则,上一个STEP的渐变结果将在接下来的时间里,一直保持。
2,每个STEP只能从0开始渐变,所以,每一次的STEP都是相对于上一次操作结果的累加计算。
特点:
有运动就写,无运动就不写。
所定义的时间是绝对的,移动的值却是相对的(所以H0都为0)。
重点提示:
在旋转驱动中,如果选择
,则在STEP函数中转360度就不需要加“d”,例如:
STEP(time,0,0,2,360),表示在2秒内转360度一周。
如果选择
,则要事先在表达式中建表达式如K=2*pi(),类型为恒定,再在XY函数管理器里的STEP函数中调用表达式K。
例如:
STEP(x,0,-2*K,2,2*K)+STEP(x,3,0,5,-4*K),表示进行仿真前先反转2周做为初始(0秒时),2秒内正转4周,停1秒,第3秒到第5秒的2秒内反转4周。
(因为在NX8.5中,STEP函数不支持直接调用pi(),deg(),rad()等函数。
)
举例对比增量式与嵌入式的区别
上图可以写成增量式:
STEP(x,2,1,3,3)+STEP(x,3,0,4,0)+STEP(x,4,0,5,-3)或STEP(x,2,1,3,3)+STEP(x,4,0,5,-3);
也可以写成嵌入式:
STEP(x,2,1,3,STEP(x,4,3,5,0))
如图验证:
备注:
网上很多教材都把这个给搞错了!
不同时间段,连杆做不同函数运动形式
t0-t1时间段内,让连杆以f(x)函数形式运动;t1-t2时间段内,让连杆以直线形式运动,在t2-t3内,让连杆以g(x)函数形式运动,以此实现连杆在不同时间段以两种或多种函数形式运动。
※t0-t1时间段函数图形转换:
按照相同时间段将第一个函数运动图转换为第二个函数运动图,按照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时间段函数图形转换:
在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时间段函数图形转换:
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
余弦函数——简谐运动
shf(x,x0,a,w,phi,b)=asin(w(x-x0)-phi)+b
简谐运动既是最基本也是最简单的一种机械振动,如果一个质点的运动方程有如下形式:
即,质点的位移随时间的变化是一个简谐函数,显然此质点的运动为简谐振动。
w为角速度,单位为度/秒或者弧度/秒。
下图为简谐运动的图像,表示的是振动物体的位移随时间变化的规律。
是一条正弦或余弦曲线。
由以上讲解可知,shf函数中,x为变量,一般取time,x0为初始时间点,a为振幅,w为角速度,phi为初项,也就是t等于0时,角度值,b表示截距,也就是余弦函数的位移。
综合应用实例
连杆运动规律图如下
建模空间,曲线工具,直线命令,在xy平面内绘制两条垂直直线:
进入运动仿真,新建运动仿真,默认设置确定,新建连杆,由于直线不是实体,因此需要设置质心和质量等参数,任意设置即可,另一条直线连杆设置相同。
仿真导航器里,两个直线连杆:
第一个滑动副,选择连杆1,由于是直线,所以“选择连杆”、“指定原点”、“指定矢量”三个直接被选中,如果方向不对可以利用反向进行调整
驱动,设置恒定速度10mm/s,根据规律图2-3秒时间段可知,2秒时位移为20,3秒时位移为30,因此驱动速度为10。
第二个滑动副,选择连杆2,选择方法和上一个相同,基本里选择连杆1,即连杆2相对于连杆1运动
驱动,选择函数
点击函数向下箭头,调出函数对话框,默认设置,选择新建函数按钮
切换到运动函数,拉到最后,里面有step函数,poly函数和shf函数,按照图片所示,利用这三个函数对连杆进行驱动
双击任何一个函数后,函数自动被添加上来,依次来修改参数
依据运动曲线时间段被分解成0-2,2-3,3-4,4-8,8-10等5个时间段,根据之前的讲解,将每个时间段转换成矩形方波,进行step函数表达,结果分别为:
时间段0-2秒,y=20的直线运动:
(STEP(time,0.0001,0,0,1)+STEP(time,2.0001,0,2,-1))*20
时间段2-3秒,y=10t的一次线性运动,由于连杆1的运动速度为10mm/s,因此,这个时间段内运动函数即为y=10t,转换为多项式函数表达,a0即为截距0,a1系数为10,x0初项为0:
(STEP(time,2.0001,0,2,1)+STEP(time,3.0001,0,3,-1))*POLY(time,0,0,10)
时间段3-4秒,y=30的直线运动:
(STEP(time,3.0001,0,3,1)+STEP(time,4.0001,0,4,-1))*30
时间段4-8秒,y=20*sin(360/4*t)+30的正弦函数,振幅为20;w角速度,时间段内为4s,想让连杆2在4秒内运动一个完整波形,也就是360度,因此角速度计算为360/4=90度/秒;截距为30;初项为0,因为是标准的正弦函数,从0度开始;注意shf函数中,w位置90d表示90度/s,如果不加d的话,则表示的弧度单位:
(STEP(time,4.0001,0,4,1)+STEP(time,8.0001,0,8,-1))*SHF(time,0,20,90d,0,30)
时间段8-10秒,直线y=30运动:
(STEP(time,8.0001,0,8,1)+STEP(time,10-0.0001,0,10,-1))*30
将这5段相加起来,函数就算编写完了,按确定,返回xy函数管理器,再次确定即可,一直到返回运动副对话框,确定即可完成连杆2运动副创建。
确定后,两条直线连杆创建的滑动副完成。
创建标记,选择连杆2,指定连杆2下部端点为标记点
建立追踪,方正导航里,选择上面创建的标记,确定。
新建解算方案,设置时间段为10秒,步数为200。
求解,对结算方案,进行解算
动画,勾选追踪,开始播放动画
标记点的轨迹图为下图
如果发现函数不对的话,可以再次打开连杆2的运动副,找到驱动,函数,f(x)函数表达式,选择下图中编辑按钮,进入函数表达里进行修改。
仿真导航器,xy-作图,右键,选择新建,按照基准坐标系,添加标记a001,在y轴的位移
位移时间图如下,有图分析可知,连杆2运动轨迹达到要求,在5个时间段内进行了多种规律运动
精细追踪,一针一针在相应位置添加标记,可以利用编辑,来拖拽标记位置
BY:
Sxhuhaibin
◆◆◆◆完◆◆◆◆
挺复杂的吧,一步步看下来就不难了。
BY:
Sxhuhaibin
◆◆◆◆完◆◆◆◆