当前位置:文档之家› 基于Matlab弧面分度凸轮的建模

基于Matlab弧面分度凸轮的建模

基于Matlab GUI的弧面分度凸轮轮廓曲面计算平台的设计
作者:曹顺辉
摘要:介绍了利用Matlab 7.0的图形用户界面(Graphical User Interface,GUI)设计弧面分度凸轮工作廓面坐标计算平台的方法和步骤。

使用户不必去了解复杂的Matlab代码及程序,直接通过该平台就可以很便捷的进行凸轮工作廓面的计算工作。

并利用最终输出的坐标文件结合三维造型软件SolidWorks完成弧面分度凸轮工作廓面的三维建模。

关键字:GUI 弧面分度凸轮 三维实体建模 图形用户界面 Matlab
1 引言
弧面分度凸轮机构(图1)用于两垂直交错轴间的间歇分度步进传动,这种机构不需要其他附属装置即可完成较精确的分度定位[1]。

和其他几种常见的间歇分度机构相比,可以在高速、重载的情况下使用,而且运行比较平稳,无较大冲击,定位精度高。

但是由于弧面分度凸轮的工作廓面为空间不可展曲面,很难用常规的机械方法绘制[1]。

通过Matlab编程语言,首先建立凸轮工作廓面坐标的数学模型,然后再结合Matlab的图形用户界面(GUI)设计功能,为用户提供一个图形界面。

通过这个界面用户可以很便捷地进行一些复杂的数据处理和运算工作,而不必去了解界面背后代码和程序的运行过程,因此具有更加广泛的应用意义。

图1
2 Matlab 图形用户界面(GUI)简介
图形用户界面(GUI)是一个整合了诸如窗口、图标、按钮、菜单和文本等图形对象的接口,用户选中或者激活这些对象通常都会导致某个动作或者变化的发生[2]。

是用户和计算机程序之间进行信息交互的一种方法,用户通过键盘、鼠标、麦克风或者绘图板等设备向计算机输入相关信息,计算机可以通过屏幕上显示图形和文本、利用喇叭发出声音来向用户提供相关信息。

因此对于一个操作系统或者应用程序来说,用户接口是一个十分关键的因素,它定义了这些系统或应用程序提供给用户的视觉感受和使用感觉,因此一个友好而高效的用户接口对于应用程序或者计算机的使用者具有极强的吸引力[2]。

Matlab7.0中的图形用户接口开发环境(Graphical User Interface Development Environment,GUIDE)提供了一系列工具用于建立GUI对象,这些工具在很大程度上简化了设计和建立GUI的过程[3]。

设计者通过运用GUIDE可以完成GUI图形界面的布局设计以及GUI编程工作,而这些也正是开发图形用户界面(GUI)的基本流程。

2 弧面分度凸轮轮廓曲面计算平台的GUI设计流程
在开始进行GUI设计前,首先需要对所面临的问题进行精确描述,即我们遇到的到底是什么问题。

然后定义输入和输出量,即我们的目的和现有的条件。

最后针对问题,设计算法,逐层分解,逐步求精,再把算法转换为Matlab语言。

在本文中我们要解决的问题是:在用户给定所需要的参数以后,经过数据处理和计算,最后输出记录有凸轮工作轮廓曲面坐标的文本文件。

这个问题的输入量为计算凸轮工作轮廓曲面坐标所需的相关参数,输出量为凸轮工作轮廓曲面的坐标。

在搞清楚上面这些问题以后,就可以开始GUI的设计工作。

3.1 图形用户界面的布局设计
3.1.1 在进行GUI设计时,根据预先定义的输入量和输出量来确定界面中所需要的控件的类型和数量。

在稿纸上对将要设计的图形用户界面的布局进行初步的构思,否则盲目性太大不利于后期的编程工作。

在表1中列出了在计算弧面分度凸轮轮廓曲面坐标时需要的相关参数。

表1 弧面分度凸轮轮廓曲面计算参数表
项目 计算公式与说明 结果
凸轮分度期转角 常用的为120°~240° =120°
转盘分度数I I表示转盘转一周中的停歇次数 I=8
中心距C 凸轮和分度盘的中心距离 C=180mm
滚子半径 =22mm
间隙e e=(0.2~0.3)b e=6mm
滚子宽度b b=(1~1.4) b=24mm
凸轮分度廓线头数H 单头H=1,双头H=2 1
旋向系数p 左旋p=+1,右旋p=-1 1
分度盘运动规律 选择需要的运动规律 改进正弦加速度
廓面选择 选择要计算的轮廓曲面 1L,2L,2R,3R
3.1.2 在构思好将要设计的界面布后,就可以开始具体的设计工作。

打开Matlab软件,在命令窗口(Command Window)中输入guide,确认后打开GUIDE快速启动窗口,选择新建一个空白样板(Black GUI),如图2所示。

图2
如上图示,GUI编辑界面主要包括GUI对象选择区、GUI工具栏、GUI布局区3个部分[3]。

在空白的GUI样板的编辑区不会有任何figure子对象存在,必须由用户按照预先的设计进
行添加。

根据表1中罗列的参数和GUI界面布局的初步构思,确定该界面需要的控件为触控按钮(Push Button)3个,静态文本标签(Static Text)12个,可编辑文本(Edit Text)8个,弹出式菜单(Pop-up Menu)2件。

在GUI编辑界面左边的GUI对象选择区选择需要的控件在GUI布局区中,按照图3所示进行布局,并对控件的属性进行设置,完成图形用户界面的布局设计工作,最后保存文件。

图3
3.2 编写回调函数(Callback)代码
在保存GUI程序时,Matlab会自动生成.fig和.m文件,其中的.m文件包含了界面上所有组件的回调函数(Call Back)。

所谓回调,是指当与某一特定的的属性相关联的用户动作发生时,需要执行的代码。

在大多数情况下,回调都是函数调用,通常通用的就是定义回调的那个函数。

用户可以对回调进行设置,以便让Matlab执行特定的任务。

[2]这也是GUI 编程的核心工作。

而在弧面分度凸轮轮廓曲面坐标计算程序的GUI中,回调函数的代码编写工作主要包含两部分内容:
3.2.1 对于界面上的可编辑文本(Edit Text)控件,在用户输入相应的参数值时,要求只能输入数字类字符,否则予以弹窗提示。

可以在对应控件的回调函数内增加下面的代码实现这个功能。

str=get(handles.edit1,’string’);%读取输入的字符串
if isempty(str2num(str)) %判断字符串是否为纯数字
msgbox(‘Input error’,’Error’);%如果不是纯数字,弹窗提示
return;
end
3.2.2编写触控按钮“计算”和“退出”的回调函数代码。

界面中“计算”的回调函数是曲面坐标计算程序算法的具体体现,“计算”按钮的回调函数部分代码如下:
str1=get(handles.popupmenu2,’string’);%读取下拉菜单的取值,即运动规律的选择值
str2=get(handles.popupmenu3,’string’);%读取下拉菜单的取值,即曲面的选择值
if (str2num(str1)==2& str2num(str2)==1) %如果选择改进正弦加速度且选择要计算的曲面为1L面
… … %1L曲面坐标计算程序
else if (str2num(str1)==2&str2num(str2)==2) %如果选择改进正弦加速度且选择要计算的曲面为2L面
… … %2L曲面坐标计算程序
else … …
… …
end
4 实例计算
完成编写回调函数代码的工作,确保代码可以顺利运行。

弧面分度凸轮轮廓曲面计算平台的构建已经基本完成,在界面里输入相应的参数的数值(参照表1),如图4所示,计算后得出记录有曲面(3L)坐标的文件(图5)。

图4 图5
同理,计算出曲面1L、2L、2R以及定位环面的坐标并保存为txt文本格式。

完成曲面坐标的计算后,将坐标值导入SolidWorks中(图6),完成弧面分度凸轮的三维造型(图7)。

图6 图7
5总结
运用Matlab结合三维软件进行弧面分度凸轮工作廓面实体造型的流程一般是首先编写计算凸轮工作廓面坐标的M文件(脚本),然后再将计算结果导入三维软件中进行实体建模。

如果当要计算的凸轮的参数发生改变时,就需要对M文件中相应的参数进行更改,然后才能运行程序,计算坐标。

在此文中介绍的应用Matlab GUI开发设计的弧面分度凸轮工作廓面坐标计算平台,用户不用直接面对程序代码,使用更加便捷,具有更加广泛的应用意义。

参考文献:
[1]机械设计手册(第五版):单行本.机构/成大先主编.-北京:化学工业出版社,2010.1
[2]精通Matlab7/(美)亨塞尔曼(Hanselman.D.),(美)利特菲尔德(Littlefield,B.)著:朱仁峰译.-北京:清华大学出版社,2006.5
[3]MATLAB GUI设计学习手册/罗华飞编著.—2版.-北京:北京航空航天大学出版社,2011.2。

相关主题