基于Matlab的槽轮机构优化设计.docx
《基于Matlab的槽轮机构优化设计.docx》由会员分享,可在线阅读,更多相关《基于Matlab的槽轮机构优化设计.docx(32页珍藏版)》请在冰豆网上搜索。
![基于Matlab的槽轮机构优化设计.docx](https://file1.bdocx.com/fileroot1/2022-12/13/50e4bcb8-d2f1-4402-9bc2-07e13adacf8f/50e4bcb8-d2f1-4402-9bc2-07e13adacf8f1.gif)
基于Matlab的槽轮机构优化设计
第1章绪论
槽轮机构由槽轮和圆柱销组成的单向间歇运动机构,又称马尔他机构。
它常被用来将主动件的连续转动转换成从动件的带有停歇的单向周期性转动。
槽轮机构有外啮合和内啮合以及球面槽轮等。
外啮合槽轮机构的槽轮和转臂转向相反,而内啮合则相同,球面槽轮可在两相交轴之间进行间歇传动。
槽轮机构结构简单,易加工,工作可靠,转角准确,机械效率高。
但是其动程不可调节,转角不能太小,槽轮在起、停时的加速度大,有冲击,并随着转速的增加或槽轮槽数的减少而加剧,故不宜用于高速。
槽轮机构有外啮合和内啮合两种形式。
外啮合槽轮机构的槽轮和转臂转向相反,而内啮合则相同。
单臂外啮合槽轮机构(如图1-1)由带圆柱销的转臂、具有4条径向槽的槽轮和机架组成。
当连续转动的转臂上的圆柱销进入径向槽时;当圆柱销转出径向槽后,槽轮停止转动。
转臂转一周,槽轮完成一次转停运动。
为了保证槽轮停歇,可在转臂上固接一缺口圆盘,其圆周边与槽轮上的凹周边相配。
这样,既不影响转臂转动,又能锁住槽轮不动。
为了使槽轮能完成周期性的转停运动,槽轮上的径向槽数不能少于3。
为了避免冲击,圆柱销应切向进、出槽轮,即径向槽与转臂在此瞬间位置要互相垂直。
在满足不同间停的要求时,可采用多臂的和非对称槽的槽轮机构。
图1-1
1.1槽轮机构的应用
槽轮机构具有结构简单、制造容易、工作可靠和机械效率较高等优点。
但是槽轮机构在工作时有冲击,随着转速的增加及槽数的减少而加剧,故不宜用于高速,其适用范围受到一定的限制。
槽轮机构一般用于转速不是很高的自动机械、轻工机械和仪器仪表中。
例如图1-2a所示的电影放映机中的送片机构。
由槽轮带动胶片,作有停歇的送进,从而形成动态画面。
此外也常与其它机构组合,在自动生产线中作为工件传送或转位机构。
如图1-2b,为蜂窝煤制机模盘转位机构。
图1-2a电影胶片抓拍机构
图1-2b蜂窝煤制机模盘转位机构
1.2槽轮机构的工作原理
槽轮机构的运动特性槽轮机构的主要参数是槽数z和拨盘圆柱销数k。
在一个运动循环内,槽轮2的运动时间
对拨盘1运动时间t之比值τ称为运动特性系数。
设一槽轮机构,槽轮上有z个槽,拨盘上均匀分布的圆柱销数为K,则运动特性系数为
因为:
图1-3外啮合槽轮机构
讨论:
1、τ=0,槽轮始终不动;τ>0,∴Z≥3。
2、槽轮的运动时间总小于静止时间。
设k为均匀分布的圆销数,
由上式可知:
当Z=3时,圆销的数目可为1~5;当Z=4或5时,圆销的数目可为1~3;而当Z≥6时,圆销的数目可为1~2。
一般情况下Z=4~8。
1.3本论文的主要工作
应用MATLAB优化工具箱求解优化问题,具有编程工作量小,初始参数输入简单,符合工程设计语言,提高设计效率等优点,对于槽轮机构的设计是一种行之有效的优化设计方法。
本课题主要进行以下内容:
槽轮机构生产研究现状;
槽轮机构的运动分析;
槽轮机构的工作原理;
槽轮的定位;
槽轮的机构运动系数;
槽轮机构优化设计的数学模型。
第二章MATLAB介绍
MATLAB自1982年由美国Mathwork公司开发的一套高性能的数值计算和可视化软件。
它集数值分析、矩阵计算、信号分析与图形显示为一体,构成的一个方便的、界面友好的用户环境。
历经二十几年的发展和竞争,现已成为(IEEEE祥述)国际公认的最优秀的科技应用软件。
Matlab最突出的特点就是简洁、它用直观的、符合人们思维习惯的代码、代替C语言和FORTRAN语言的冗长代码。
为此,Matlab获得了对应用学科(特别是边缘学科和交叉学科)的极强适应力。
在国内外高校、Matlab已成为大学生,硕士生、博士生必须掌握的基本技能。
在设计研究学位和工业部门,Matlab已经成为研究和解决各种具体工程问题的一种标准软件。
信号分析与处理是科研生产中的重要环节,也是目前国内外出现的信号处理的新研究课题。
信号分析与处理,可以研究系统的稳定性,选择系统参数,验证系统的理论和算法。
Matlab软件广泛用于数字信号分析,系统识别,时序分析与建模,神经网络、动态仿真等方面有着广泛的应用。
利用Matlab这个最优秀的科技软件,把计算机技术与信号分析紧密地结合起来,对信号进行分析处理仿真研究,经实例验证,取得了非常好的效果,具有一定的实用价值。
2.1MATLAB语言简介
MATLAB是集数值计算、符号运算及图形处理等强大功能于一体的科学计算语言。
作为强大的科学计算平台,它几乎能够满足所有的计算需求。
MATLAB为用户提供了具有条件控制、函数调用、数据输入输出及面向对象等特性的高层的、完备的编程语言。
MATLAB语言语法简单,程序调试和维护容易,其编程效率远远高于BASIC、PISCAL及C等高级语言。
新版本的MATLAB语言是基于最为流行的C语言基础上的,因此语法特征与C语言极为相似,而且更加简单,更加符合科技人员对数学表达式的书写格式。
使之更利于非计算机专业的科技人员使用。
具有可移植性好、可扩展性极强等特点,是最为普遍的计算仿真工具之一,所以我们有必要了解和掌握MATLAB这门语言工具。
2.2MATLAB的主要内容:
(1)开发环境。
开发环境是帮助用户使用MATLAB函数和文件的工具的集合,这些工具中许多都是图形用户界面。
开发环境包括MATLAB桌面及其命令窗口、命令记录、帮助浏览器、工作平台、文件和搜索路径等。
(2)MATLAB数学函数库。
该库收集了大量的从基本函数(求和、三角运算、复杂算术等)到复杂函数(矩阵求逆、求矩阵特征值、贝塞尔函数和快速傅立叶变换等)的计算算法。
(3)MATLAB语言。
MATLAB语言是一种包括流程控制语句、函数、数据结构、输入/输出和面向对象编程方式的高级矩阵/数组语言,该语言能够通过与其它MATLAB系统组成部分之间的交互来完成非常复杂的计算任务。
(4)图形句柄。
图形句柄即MATLAB的图形系统,该系统既包括二维和三维数据的可视化、图像处理、动画和图形描述等高级命令,又包括允许用户完全自定义图形,并在MATLAB应用程序中建立自己的图形界面的低级命令。
(5)MATLAB应用程序接口API是允许用户编写C、FORTIULN和MATLAB接口程序的系统库,该库中包含一些调用工具,其它应用程序能够通过动态链接、作为计算引擎、读写MAT文件三种形式来使用这些工具以调用MATLAB程序。
2.3MATLAB通用操作界面
2.3.1 命令窗口
如图2-1所示,是MATLAB的命令窗口,它是MATLAB极为重要的部分,也是用户使用最频繁的部分。
用户的数据输入和结果运算,一般都是在此窗口中进行。
图2-1
2.3.2 历史命令窗口
如图4-2所示,是MATLAB的历史命令窗口,主要是保存工作过的变量、表达式等。
必要时,用户可以直接把历史命令提取出来,放在命令窗口中使用。
图2-2历史命令窗口
2.3.3 工作命令窗口
在MATLAB主窗口的左上部分可以通过切换到“Workspace”窗口,即工作空间。
在这个窗口中,可以看到MATLAB的各个工作变量。
新打开MATLAB时,只能看到一个变量ans,这是一个由系统提供的默认的输入变量。
(如图2-3)
图2-3工作空间
2.4 图形用户界面GUI
用户界面是人,即用户与计算机或计算机程序的接触点或交互方式,是用户与计算机进行信息交流的方式。
计算机在屏幕显示图形和文本,若有扬声器还可产生声音。
用户通过输入设备,如:
键盘、鼠标、跟踪球、绘制板或麦克风,与计算机通讯。
用户界面设定了如何观看和如何感知计算机、操作系统或应用程序。
通常,多是根据悦目的结构和用户界面功能的有效性来选择计算机或程序。
图形用户界面或GUI是包含图形对象,如:
窗口、图标、菜单和文本的用户界面。
以某种方式选择或激活这些对象,通常引起动作或发生变化。
最常见的激活方法是用鼠标或其它点击设备去控制屏幕上的鼠标指针的运动。
按下鼠标按钮,标志着对象的选择或其它动作.图形用户界面的功能,它让用户定制用户与MATLAB的交互方式。
命令窗口不是唯一与MATLAB的交互方式。
2.4.1GUI设计版
GUI设计板是GUI工具的集成环境,是MATLAB6.1的新特征之一,它将MATLAB5.3版本的Guide控制板工具进行重组优化。
它使得GUI图形对象的生成和管理变得更简单直接。
图2-4就是一个GUI设计板。
图2-4GUI设计板
2.4.2 菜单
在每一个窗口系统中使用菜单让用户选择命令和选项。
通常在显示屏或窗口的顶部有一菜单条。
移动鼠标指针到菜单标志上按下鼠标按键,顶层菜单就被选中,一列菜单项就从菜单标志拉下来。
这种款式菜单就叫下拉式菜单。
按下鼠标将指针移动至菜单项并松开鼠标,则完成菜单项的选择。
一个菜单项还可用自己的菜单项列表而作为子菜单。
子菜单项在子菜单的标志右边显示小三角或箭头以表示菜单还有更多子菜单项可供选择。
如果子菜单的菜单项被选择,另一个具有更多菜单项的菜单显示在此菜单的右边的下拉菜单中。
有时这种菜单称之行走菜单。
选中其中一个菜单项也引起某些动作的产生。
子菜单可以嵌套,但层次的数目受到窗口系统及有用资源的限制。
在建立图形对象时可定义uimenu属性,或用set改变属性。
所有可设定的属性,包括标题、菜单颜色、甚至回调字符串都可以用set来改变。
这种功能十分便于迅速地定制菜单和属性。
表4-1列出了MATLAB的uimenu对象的属性及其属性值。
在括号{}内的属性值是缺省值。
表2-1uimenu对象的属性及其属性值
Uimenu对象的属性
BackgroundColor
Uimenu背景色,是一个3元素的RGB向量或MATLAB预先定义的颜色名称。
缺省的背景色是亮灰色
Callback
MATLAB回调字符串,选择菜单项时,回调串传给函数eval;初始值为空矩阵
Checked
on:
{off}:
被选项的校验标记
校验标记出现在所选项的旁边
校验标记不显示
Enable
{on}:
off:
菜单使能状态
菜单项使能。
选择菜单项能将Callback字符串传给eval菜单项不使能,菜单标志变灰。
选择菜单项不起任何作用。
ForegroundColor
Uimenu前景(文本)色,是一个三元素的RGB向量或MATLAB预先定义的颜色名称。
缺省的前景色是黑色
Label
含有菜单项标志的文本串。
在PC系统中,标记中前面有‘&‘,定义了快捷键,它由Alt字符激活
Position
Uimenu对象的相对位置。
顶层菜单从左到右编号,子菜单从上至下编号
Separator
on:
{off}:
分割符-线模式
分割线在菜单项之上
不画分割线
Visible
{on}:
off:
Uimenu对象的可视性
Uimenu对象在屏幕上可见
Uimenu对象不可见
ButtonDownFcn
当对象被选择时,MATLAB的回调串传给函数eval。
初始值为空矩阵
Children
其它Uimenu对象的句柄。
Clipping
{on}:
off:
限幅模式
对uimenu对象无效果
对uimenu对象无效果
Interrruptible
{no}:
yes:
指明ButtonDownFcn和CallBack串可否中断
回调不可中断
回调串可中断
Select
值为[on|off]
Tag
文本串
Type
只读对象辩识串,通常为uimenu
UserData
用户指定的数据。
可以是矩阵,字符串等等
Visible
{on}:
off:
uimenu对象的可视性
uimenu对象在屏幕上可见
uimenu对象不可见
2.4.3 编程及回调考虑
用户句柄图形界面的基础部分已经阐述过了,现在是应用它的时候了。
正如所见,在命令行通过输入uimenu和uicontrol来建立效率不高。
脚本或函数M文件使用更为简便。
假定想实现一个M文件,首先确定是否要编写脚本文件或函数文件。
建立GUI函数的一个有效方法是编写独立的回调函数,专门执行一个或多个回调。
函数使用的对象句柄和其它变量可以作为参量传递,必要时回调函数可返回值。
独立回调函数的缺点是:
需要很大数目的M文件以实现一个含有若干控制框和菜单项的GUI函数,所有这些M文件必须在MATLAB路径中可得,且每一个文件又必须要有一个不同的文件名。
全局变量:
全局变量可用在函数中,使某些变量对GUI函数的所有部分都可用,全局变量是在函数的公共区说明,因此整个函数以及所有对函数的递归调用都可以利用全局变量,全局变量遵循MATLAB的规定,变量名要大写。
不需要'tag'属性,且不使用它,另外因为对象句柄存在的,不需要用函数findobj去获取,故回调代码比较简单,全局变量通常使一个函数更有效。
调试GUIM文件:
回调字符串在命令窗口工作空间中计算并执行的,这个情况对编写和调试GUI函数和脚本文件有某种隐含意义。
回调字符串可以很复杂,尤其是在脚本文件中,这为句法错提供了许多机会,记录单引号、逗号、括号是令人头痛的事。
如果出现了句法错误,MATLAB给出提示;只要对象的'Callback'属性值是一个真正的文本串,MATLAB就认可了。
只有当对象被激活并将回调字符串传给eval时,才检查回调字符串内部的句法错误。
这样让用户定义回调字符串,它涉及还未曾定义过的对象句柄和变量,这使编写相互参照的程序变得更容易,但是每个回调函数必须分别测试,保证回调字符串是合法的MATLAB命令,并且回调字符中涉及的所有变量可在命令窗口工作空间中是可利用的。
将回调象函数M文件一样编程或象GUI函数本身内的开关一样编程,就可以不运行整个GUI函数而对各个回调进行改变或测试。
第三章槽轮机构的运动分析
槽轮机构是一种间歇机构运动(图3-1a),它可以将主动件拨杆2(其上安装了圆销4)的匀速转动,转化为从动件槽轮3的间歇转动。
槽轮机构的运动设计,主要是要求保证槽轮3有较高的运动精度,减少在它在运动过程中产生的刚性冲击。
如图3-1b所示,构见1为机架。
当拨杆2上的圆销4进入与退出槽轮3的啮合过程中,做匀速转动的拨杆相当于曲柄2,槽轮的径向槽相当于导杆3,假象在拨杆2上的圆销外面套上与槽轮径向槽做相对的滑块4。
当两者接触时,等价于一个摆动导杆机构,运输转动曲柄2带动导杆3做反向变速运动;当两者脱离时,曲柄2做匀速转动,导杆3则静止不动。
槽轮机构的运动分析
图3-1a
图3-1b
槽轮机构的运动和动力特性,通常是用类加速度
和类角加速度
来衡量的,
3.1槽轮机构的运动方程
1.
角位移方程(闭环矢量方程)
2.角速度方程(矩阵形式)
3.角加速度方程(矩阵形式)
式中,
,
分别是主动件曲柄2,从动件导杆3与机架1正方向的夹角
3.2槽轮的运动参数
槽轮机构中从动件(槽轮或摆动导杆)3的运动参数如下表
运动参数
外槽轮机构
内槽轮机构
角位移
角速度
角加速度
式中,
,z是槽轮槽数;
槽轮3的槽间角
;
拔杆2运动角(与槽轮3槽间角对应)
(外槽轮机构),或
(内槽轮机构);
主动件拨杆2转角的取值范围是
。
3.3槽轮机构的几何尺寸计算
如下表1
3.4数学模型的建立
3.4.1选取设计变量
槽轮机构的优化设计是相对复杂的,因为各参数对槽轮动载荷的影响不再是单一确定的关系.他们之间互相关联、共同决定最大动载荷的大小和位置。
槽轮和槽轮轴的刚度增大或减小会使曲柄人槽时刻冲击载荷增大或减小,但这影响已不是正比关系,尤其当工序盘的固有频率接近曲柄转速时,这种影响可能相反的。
本文槽轮3的槽间角
;
拔杆2运动角(与槽轮3槽间角对应)
(外槽轮机构),或
(内槽轮机构);
设计变量即为主动件拨杆2转角,其的取值范围是
。
3.4.2优化设计的目标和约束条件
文献[2]中,采用的设计目标是:
在长期使用条件下,使安全速度达到最大。
文献[3]和[4]中为了减少冲击,采用的方法是使切入角尽量接近90度,即圆销进入和脱出径向槽时径向槽中线应切于圆销中线运动的圆周上。
上述方法可以减小冲击,但并不是有效解决冲击的方法。
槽轮机构的关键区是在传动销与槽的接触处,即最大
作用处。
对于给定的设计,长寿命的最大运动速度
将受到稍低于接触面处最大剪应力
,达到许用剪应力疲劳极限
的限制。
因此槽轮机构设计目标转化为比值
达到最小。
这个目标,实际上就是求解两个最优化问题。
第一,对于给定材料许用应力水平,它使
达到最大。
第二,对于给定
,使
达到最小。
其中
(
为材料无量纲泊松比,
为弹性模量),
为
处的无量纲的二阶导数,可由参考文献[1]表2查得;
为从参考文献[1]查得的基本结构无量纲常数;
可由经验制图或由参考文献[1]表1进行选取;
为惯性载重的转动惯量;
和
分别为槽轮的齿宽和直径,其设计要根据对槽轮机构的空间约束能力来确定。
本文的基本思想是通过调节槽轮的结构参数来减少槽轮机构运动的冲击作用,采用的目标是通过改变槽轮槽数z,使运动趋于平稳,动力特性也得到改善,但是槽数过多会使槽轮的体积过大,产生较大的惯性力矩,在结构空间允许的条件下使惯性力矩达到最小,实现了最优问题。
通过计算可得外槽轮的角位移
wy=atan(lmd*sin(f2*dr)/(1-lmd*cos(f2*dr)));
外槽轮的角速度sd=lmd*(cos(f2*dr)-lmd)/(1-2*lmd*cos(f2*dr)+lmd^2);
外槽轮的角加速度jsd=-lmd*sin(f2*dr)*(1-lmd^2)/(1-2*lmd*cos(f2*dr)+lmd^2)^2;
内槽轮机构的角位移
wy=atan(lmd*sin(f2*dr)/(1+lmd*cos(f2*dr)));
内槽轮机构的角速度sd=lmd*(cos(f2*dr)+lmd)/(1+2*lmd*cos(f2*dr)+lmd^2);
内槽轮机构的角加速度jsd=lmd*sin(f2*dr)*(1-lmd^2)/(1+2*lmd*cos(f2*dr)+lmd^2)^2;
约束条件:
-f20
第四章计算实例
4.1对外槽轮机构不同的槽数进行分析
外槽轮机构的槽数z=46810时,计算从动件槽轮机构的运动参数
,并且绘制槽轮的运动线图(类角速度
和类角加速度
)。
4.1.1外槽轮机构槽数不同时编写的M文件
外槽轮机构运动分析的M文件和运行结果
>>%外槽轮机构运动分析
dr=pi/180.0;%角度与弧度的转换系数
%销轮2转角范围:
-f20forz=4:
2:
10%设定槽轮参数
f30=pi/z;%计算槽轮槽间半角
f20=pi/2-f30;%计算销轮运动半角
lmd=sin(pi/z);%计算曲柄2与机架1的长度比
bc=5;%循环步长
cz=-f20/dr;%循环初值
zz=f20/dr;%循环终值
i=1;%根据步长变化的运动参数矩阵cs行数计数器
forf2=cz:
bc:
zz%计算槽轮角位移,类角速度,类角加速度
wy=atan(lmd*sin(f2*dr)/(1-lmd*cos(f2*dr)));
sd=lmd*(cos(f2*dr)-lmd)/(1-2*lmd*cos(f2*dr)+lmd^2);
jsd=-lmd*sin(f2*dr)*(1-lmd^2)/(1-2*lmd*cos(f2*dr)+lmd^2)^2;
switchz%矩阵c(i,:
)表示第i行的各列元素
case4,c4(i,:
)=[f2wy/drsdjsd];
case6,c6(i,:
)=[f2wy/drsdjsd];
case8,c8(i,:
)=[f2wy/drsdjsd];
case10,c10(i,:
)=[f2wy/drsdjsd];
end
i=i+1;
end
end
%输出外槽轮机构运动参数
['轮槽数z=4']
['销轮转角','槽轮角位移','角速度','角加速度']
%矩阵c(:
j)表示第j列的各行元素
[c4(:
1),c4(:
2),c4(:
3),c4(:
4)]
['轮槽数z=6']
['销轮转角','槽轮角位移','角速度','角加速度']
[c6(:
1),c6(:
2),c6(:
3),c6(:
4)]
['轮槽数z=8']
['销轮转角','槽轮角位移','角速度','角加速度']
%矩阵c(:
j)表示第j列的各行元素
[c8(:
1),c8(:
2),c8(:
3),c8(:
4)]
['轮槽数z=10']
['销轮转角','槽轮角位移','角速度','角加速度']
%矩阵c(:
j)表示第j列的各行元素
[c10(:
1),c10(:
2),c10(:
3),c10(:
4)]
%
%绘制槽轮机构运动参数曲线
figure
(1);%生成槽轮运动线图窗口
subplot(2,2,1);%选择第一个子窗口
plot(c4(:
1),c4(:
3),c4(:
1),c4(:
4))%绘制z=4的线口
title('090696117齐顺河外槽轮槽数z=4')%标注子窗口的名称
axis([-pi/4/drpi/4/dr-66])%定义坐标轴范围
grid%栅格线
text(-2,4.2,'\epsilon/\omega^{2}')%标注类角加速度线图
text(20,1.6,'\omega/\omega')%标注类角速度线图
ylabel('槽轮运动线图')%定义坐标轴名称
%
subplot(2,2,2);%选择第2个子窗口
plot(c6(:
1),c6(:
3),c6(:
1),c6(:
4))%绘制z=6的线图
title('090696117齐顺河外槽轮槽数z=6')
axis([-pi/3/drpi/3/dr-1.51.5])
grid
text(10,-0.7,'\epsilon/\omega^{2}')
text(30,0.7,'\omega/\omega')
ylabel('槽轮运动线图')
%
subplot(2,2,3);%选择第3个子窗口
plot(c8(:
1),c8(:
3),c8(:
1),c8(:
4))%绘制z=8的线图
title('090696117齐顺河外槽轮槽数z=8')
axis([-3*pi/8/dr3*pi/8/dr-0.80.8])
grid
text(12,-0.3,'\epsilon/\omega^{2}')
text(40,0.4,'\omega/\omega')
ylabel('槽轮运动线图')
%
subplot(2,2,4);%选择第4个子窗口
plot(c10(:
1),c10(:
3),c10(:
1),c10(:
4))%绘制z=10的线图
title('090696117齐顺河外槽轮槽数z=10')
axis([-2*pi/5/dr2*pi/5/dr-0.50.5])
grid
text(15,-0.2,'\epsilon/\omega^{2}')
text(40