一种通用的机构部件运动函数求解方法
2023-02-18冀邯磊高建罡
冀邯磊,高建罡
(邯郸市永年区海翔机械厂,河北邯郸 057150)
0 引言
在机械结构的设计之初,有时需要知道某个部件的运动规律作为设计的参考。对于运动比较规律的部件,可以通过计算得到其运动规律,比如多个齿轮传动,可以通过计算齿数比,得到其中任意一个齿轮的转速;也有很多运动不规律的部件,无法通过计算直接得到这个部件的运动函数,或者计算过程十分复杂。下面以一个简单的升降机构为案例,讲解一种通用的机构部件运动函数的求法。
1 方法概述
如图1中展示的是一种液压杆驱动的升降机构,液压杆伸缩带动连杆机构收缩,进而驱动平台升降运动,由于平台的升降是连杆经过一系列的连锁反应实现的,所以平台位置移动函数很难直接通过计算得到,即使可以计算得出,也需要大量的计算,过程十分的缓慢。
UG NX三维软件可以对机构进行运动仿真[1],UG NX运动仿真是在已经建模装配好的机构模型上进行的。通过定义机构中的各个连杆,然后创建连接,最后添加驱动使机构可以持续地进行运转。这样便可以模拟机构的实际运动过程。从而分析机构的运动规律,研究机构静止或运动时的状态。最后根据得到的数据对模型进行进一步的优化改进。UG NX运动仿真模块提供了非常强大的分析功能,不仅可以跟踪机构中某个部件的运动过程,做出运动轨迹,还可以做出某部件的运动曲线图,导出运动数据,这就为我们得到某个部件的运动函数提供了便利,但是UG NX软件无法导出函数,而Matlab软件有强大的数据处理能力,可以把海量的数据拟合成函数,Matlab是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便地实现用户所需的各种计算功能。另外Matlab还包括拥有数百个内部函数的主包和三十几种工具包,方便使用者处理数据。
本方法就是结合两个软件的优势来求得部件的运动函数。求平台位移运动函数的过程可以分为两步。第一步:通过UG NX建模,并对模型进行运动仿真,然后导出部件运动过程参数的Excel表格。第二步:通过Matlab的Cftool工具对数据进行运算,得到这个部件的运动函数。
2 机构运动方针构建和运动数据的导出
UG NX运动模块是一个集成的CAE工具,提供了全面的机构建模和分析功能,可以模拟和评估机械运动系统,通过运动仿真过程中分析板块下的作图指令得到需要的函数数据。
1)首先我们需要模拟机构实际的运动状态和尺寸建立模型[2]。因为我们要求得平台在液压杆儿推动情况下位置的变化。因为液压杆的伸缩距离相对时间是固定的,整个机构各个链接的位移都是稳定的,没有冗余设计,所以平台其他位置的变化也是固定的。因此对所建模的材质和密度就不需要做要求,只要保证相对位置正确、配合的类型正确、控制好间隙就可以了。另外在装配部件时,各个部件之间的装配关系一定要根据实际情况装配。否则在进入到运动仿真环境后,将约束转化为运动副时会产生错误的运动副,而使运动仿真过程无法进行。
2)接着进入到运动仿真环境新建仿真[3],将仿真文件保存到模型文件夹;分析类型为动力学,组件选项为基于组件的仿真,由于模型文件已经添加好装配关系,所以要选择上“新建仿真时启动运动副向导”,这样会自动生成运动副,节省创建连杆和运动副的时间,虽然有时约束转化成的运动副不是我们想要的效果,我们可以单独对这个运动副进行修改,依然会节省不少时间。我们选择“新建仿真时启动运动副向导”后,会有弹窗提示各个约束所转化成的运动副,直接确认就可以了。另外也可以直接进入到运动仿真环境,然后在运动仿真环境下建立各种运动副。在这个案例的模型中,主要用到了滑动副、柱面副和旋转副。
3)定义连杆。如果是启动了运动副向导,会直接自动生成连杆。需要检查一下各个部件是否有对应的连杆,如果没有则需要点击工具栏中的连杆命令新建连杆。质量属性选项和质量与力矩选项选择默认,可以使用系统默认的名称或者自己对连杆命名。这里的连杆并不是指字面意义上机构中的连杆。而是只能够满足运动需要使运动副连接在一起的机构元件,各个连杆相互连接使整个机构的运动可以顺利进行。所以所有参与到机构运动仿真中的部件都要定义为连杆。这里需要注意的是,除了底座是固定连杆,其他的连杆都需要将连杆对话框中的设置选项中“固定连杆”前面的对号去掉。为了提高运动仿真的效率,在定义连杆时,一起运动的部件,并且彼此间没有相对运动的部件,可以定义为成一个连杆。比如机构中所有不动的部件都可以设定为一个固定连杆。这样和一个个去设定成为固定连杆,对运动仿真的过程是没有影响的,效果是一样的,但是设定为一个连杆就会减少连杆命名数量,节省不少时间。
4)定义运动副。连杆定义完成以后,为了使整个机构能够运行起来,需要使每个相邻的连杆以一定的方式连接起来。并且这种连接必须是可动连接,不能是固定的。这种两个连杆接触,而又保证某些相对运动的可动连接被称为运动副。
在运动导航器中有一个运动副的选项。下拉列表中展示了由约束转化过来的运动副或者自己创建的运动副。在创建运动副的时候需要注意的有3点:a.底座和连杆之间,连杆和连杆之间,还有平台和部分连杆使用的都是旋转副配合。这样可以防止连杆之间有横向的窜动,只有相对的旋转运动;b.平台和两个连杆儿通过滑块采用的是滑动副,这样可以保证滑块相对平台有一个相对滑动的运动。c.最后是液压杆设定,液压杆两端分别是旋转副,本身的两个部件之间是柱面副,柱面副可以实现模拟液压杆伸缩的过程。最后要注意的是,很多运动副都需要设置啮合连杆,一定要注意主次关系,如果把要运动的部件设定为啮合连杆,而固定的部件设定为操作连杆,则机构在运动仿真时就不会运动。
5)添加驱动。在定义完运动之后,需要给机构添加驱动来模拟机构的实际运行情况。这个驱动是机构运动的。UG NX运动仿真模块提供了丰富的驱动类型。可以是固定数值,也可以是指定的函数。以模拟机构真实的运动状态。本次使用的模型,整个机构的运行都是靠液压杆提供的动力,所以我们只需要给液压杆添加一个驱动就可以了。液压杆本身有一个滑动副,所以我们需要给这个滑动副添加一个驱动。平台的升降过程是:液压杆伸长启动→加速→减速→速度降为0(升到最高点)→液压杆收缩启动→加速→减速→速度降为0(降到最低点)。根据整个平台升降的流程,最好使用函数进行驱动,能最大程度地接近实际的使用情况,这里选择的是正弦函数,基本上可以模拟平台升降的流程。在这个滑动副的对话框有一个驱动选项,然后在数据类型里面选择速度,使用的是函数驱动,接着在函数模拟器里面选择正弦函数,然后对正弦函数进行编辑。用途选项选择“运动”,函数类型选择“时间”,我们编辑完的正弦函数是y=50sin X,X 表 示时 间,y 表示液压杆的位移,模拟液压杆伸出和收缩的过程(如图2)。
图2 函数管理器
6)创建解算方案及仿真动画[4]。仿真模型定义完成后,必须定义运动分析的解算方案,并通过解算器求解,才能获得各个部件的运动参数,选择主页中的解算方案,分析类型为“运动学/动力学”;注意解算方案选项中步数数值的设置,步数相对应的是数据的采集量,步数太少则生成的数据就少,不利于函数的创建,可以根据运动的复杂程度设置相应的步数,这里设定的时间为10 s,步数为300。重力方向可以根据实际情况设定(如图3)。由于本次模型所有的部件都进行了约束,并且是纯理论的模型,没有考虑摩擦等情况,所以重力方向的设置没有影响。最后勾选“通过按确定进行解算”。求解后,选择播放动画,可以看到这个动画的运动过程。
图3 解算方案
7)导出运动参数。在导出运动参数这一项目上,由这各个版本的操作流程是不一样的。作者使用的UG NX版本是UG NX12。流程是以UG NX12版本来进行操作。首先选择标记命令,在平板上的任意一点标记A001,在移动导航器结果类目下右键点击“作图”命令。在移动导航器下方会出现XY结果视图。接着在标记选项下方选择刚才的标记A001。然后返回到XY结果视图中,点击位移选项下方Y方向。因为这个平台在建模中是沿Y方向进行移动的。选择Y方向可以准确地显示出平台升降位移的变化。在Y方向选项上点击右键,选择“创建图对象”。这时在运动导航器的作图选项下方会出现一个新的选项。在出现新的选项上,点击右键,选择“绘图至电子表格”。这个时候桌面上会弹出一个Excel电子表格。这个表格共有两个页面。一个是图4所示的表图。一个是XY的数据电子表格。然后将Excel表格另存为DATA.xlsx。
图4 数据表图
3 运动函数的建立
得到Excel表格数据后,对Excel表格进行简单的编辑,由于平台的升降是每次升到具体的位置,不需要连续地往复运动,所以抽取一个升降周期的数据就可以满足实际的使用要求,删除无用的数据,这样对于部件运动函数准确性的提高也有一定的帮助,将时间数据放到第一列,位移数据放到第二列,Excel编辑完成后将它保存到Matlab程序的存储位置,这样的话Matlab可以直接调用Excel表格,数据在其他位置时Matlab无法选择。然后打开Matlab软件[5],输入程序(如图5):
图5 程序界面
输入完程序后,会直接调用Excel表格中的时间为横坐标,位移为纵坐标,自动打开Cftool工具箱[6],工具箱内有多个函数类型可以选择,经过对比,最后选择多项式函数(Polynominal),次方数值选择6,得到拟合函数:
可以看到图片中拟合曲线和数据点相吻合,多重测定系数(R-square)为1,表明方程的变量对y的解释能力最强,所以这个拟合函数有一定的实用意义(如图6)。
图6 Cftool工具箱
因为这次模拟部件的运动过程是一个不规则的运动过程,所以只能用拟合函数的方法去得到一个十分接近的函数。如果模仿的机构是非常规律的函数运动。那么用这种方法得到的函数会更加准确无误。
4 结语
本案例主要是利用UG NX输出部件的运动参数,再通过Matlab生成位移拟合函数,充分利用了这两个软件的优势。由于运动过程参数不符合已有的函数类型,所以采用了拟合函数,拟合效果足以满足使用要求,有一定的参考价值。此方法有一定的通用意义,求解过程简单高效,为机械结构运动函数的创建提供了新思路,可用于机构的辅助设计。