QQ登录

只需一步,快速开始

快捷登录

登录 或者 注册 请先

UG爱好者

查看: 17957|回复: 15
打印 上一主题 下一主题

[经典资料] 玩转UG运动仿真step函数

[复制链接]

六级士官

Rank: 4

1

主题

135

帖子

1798

积分
跳转到指定楼层
楼主
发表于 2015-1-12 15:14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
NX9.0运动仿真—step函数、poly涵式、shf函数(详细内容请下载附件有图有真相)
我是觉得爱好者论坛缺乏这方面资料,所以补上
         step函数
格式step(x,x0,h0,x1,h1)
x为自变量,在ug里一般定义为time
x0为自变量初始值,在ug里可以是时间段中的开始时间点
h0为自变量x0对应的函数值,可以是常数、设计变量或其他函数表达式
x1为自变量结束值,在ug里可以是时间段中结束时间点
h1为自变量x1对应的函数值,可以是常数、设计变量或其他函数表达式
函数曲线图

   数学表达式
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可以相等,相等以后,整个函数曲线即为一条直线

  多个时间段内函数值发生突变的函数表达

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函数来控制连杆在不同时间段做不同运动规律的运动。

   不同时间段,连杆做不同函数运动形式

    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
    函数编写完后,确定,返回xy函数管理器,再次确定即可,一直到返回运动副对话框,确定即可完成连杆2运动副创建

确定后,两条直线连杆创建的滑动副

标记,选择连杆2,指定连杆2下部端点为标记点

追踪,方正导航里,选择标记,确定

解算方法,设置时间段为10秒,步数为200

求解,对结算方案,进行解算

动画,勾选追踪,开始播放动画

标记点的轨迹图为下图

如果发现函数不对的话,可以再次打开连杆2的运动副,找到驱动,函数,f(x)函数表达式,选择下图中编辑按钮,进入函数表达里进行修改

仿真导航器,xy-作图,右键,选择新建,按照基准坐标系,添加标记a001,在y轴的位移

位移时间图如下,有图分析可知,连杆2运动轨迹达到要求,在5个时间段内进行了多种规律运动

精细追踪,一针一针在相应位置添加标记,可以利用编辑,来拖拽标记位置


Desktop.rar (2.12 MB, 下载次数: 867)

有奖推广贴子: 

回复

使用道具 举报

六级士官

Rank: 4

1

主题

135

帖子

1798

积分
沙发
 楼主| 发表于 2015-1-12 15:14:58 | 只看该作者
自己先沙发了   
回复 支持 反对

使用道具 举报

少尉

Rank: 5Rank: 5

2

主题

106

帖子

2084

积分
板凳
发表于 2015-1-12 17:40:08 | 只看该作者
不错,想当年我看了N多资料
回复 支持 反对

使用道具 举报

六级士官

Rank: 4

1

主题

135

帖子

1798

积分
地板
 楼主| 发表于 2015-1-14 08:24:34 | 只看该作者
irobotvs 发表于 2015-1-12 17:40
不错,想当年我看了N多资料

还缺少一些高级仿真的资料     可以分享一点不
回复 支持 反对

使用道具 举报

中尉

Rank: 5Rank: 5

0

主题

86

帖子

3254

积分
5#
发表于 2017-9-18 18:06:40 | 只看该作者
谢谢楼主分享
回复 支持 反对

使用道具 举报

中尉

Rank: 5Rank: 5

0

主题

474

帖子

4640

积分
7#
发表于 2017-11-30 21:46:27 | 只看该作者
谢谢楼主分享
回复 支持 反对

使用道具 举报

六级士官

Rank: 4

1

主题

72

帖子

1388

积分
9#
发表于 2017-12-3 11:26:19 | 只看该作者
感谢楼主辛苦了
回复 支持 反对

使用道具 举报

二级士官

Rank: 2

0

主题

50

帖子

396

积分
10#
发表于 2018-3-5 10:06:23 | 只看该作者
谢谢,不错的资料
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

 
 
QQ:1359218528
工作时间:
9:00-17:00
 
微信公众号
手机APP
机械社区
微信小程序

手机版|UG爱好者论坛 ( 京ICP备10217105号-2 )    论坛管理员QQ:1359218528

本站信息均由会员发表,不代表本网站立场,如侵犯了您的权利请联系管理员,邮箱:1359218528@qq.com  

Powered by UG爱好者 X3.2  © 2001-2014 Comsenz Inc. GMT+8, 2024-4-23 14:53

返回顶部