1、 基于matlab的连杆机构设计 1.1 机构运动分析的任务、目的和方法曲柄摇杆机构是平面连杆机构中最基本的由转动副组成的四杆机构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。对四杆机构进行运动分析的意义是:在机构尺寸参数已知的情况下,假定主动件(曲柄)做匀速转动,撇开力的作用,仅从运动几何关系上分析从动件(连杆、摇杆)的角位移、角速度、角加速度等运动参数的变化情况。还可以根据机构闭环矢量方程计算从动件的位移偏差。上述这些内容,无论是设计新的机械,还是为了了解现有机械的运动性能,都是十分必要的,而且它还是研究机械运动性能和动力性能提供必要的依据。机构运动分析的方法很多,主要有图解法和
2、解析法。当需要简捷直观地了解机构的某个或某几个位置的运动特性时,采用图解法比较方便,而且精度也能满足实际问题的要求。而当需要精确地知道或要了解机构在整个运动循环过程中的运动特性时,采用解析法并借助计算机,不仅可获得很高的计算精度及一系列位置的分析结果,并能绘制机构相应的运动线图,同时还可以把机构分析和机构综合问题联系起来,以便于机构的优化设计。1.2 机构的工作原理 在平面四杆机构中,其具有曲柄的条件为:a.各杆的长度应满足杆长条件,即:最短杆长度+最长杆长度其余两杆长度之和。 b.组成该周转副的两杆中必有一杆为最短杆,且其最短杆为连架杆或机架(当最短杆为连架杆时,四杆机构为曲柄摇杆机构;当最
3、短杆为机架时,则为双曲柄机构)。在如下图1所示的曲柄摇杆机构中,构件AB为曲柄,则B点应能通过曲柄与连杆两次共线的位置。 1.3 机构的数学模型的建立1.3.1建立机构的闭环矢量位置方程 在用矢量法建立机构的位置方程时,需将构件用矢量来表示,并作出机构的封闭矢量多边形。如图1所示,先建立一直角坐标系。设各构件的长度分别为L1 、L2 、L3 、L4 ,其方位角为 、 、 、 。以各杆矢量组成一个封闭矢量多边形,即ABCDA。其个矢量之和必等于零。即:式1式1为图1所示四杆机构的封闭矢量位置方程式。对于一个特定的四杆机构,其各构件的长度和原动件2的运动规律,即 为已知,而 =0,故由此矢量方程可
4、求得未知方位角 、 。角位移方程的分量形式略1.3.2求解方法(1)求导中应用了下列公式: 式10(2)在角位移方程分量形式(式2)中,由于假定机架为参考系,矢量1与x轴重合, =0,则有非线性超越方程组:式11可以借助牛顿-辛普森数值解法或Matlab自带的fsolve函数求出连杆3的角位移和摇杆4的角位移。(3)求解具有n个未知量 (i=1,2,n)的线性方程组: 式12式中,系列矩阵 是一个 阶方阵: 式13的逆矩阵为 ;常数项b是一个n维矢量: 式14因此,线性方程组解的矢量为: 式15式11是求解连杆3和摇杆4角速度和角加速度的依据。 基于MATLAB程序设计MATLAB 是Math
5、works 公司推出的交互式计算分析软件,具有强大的运算分析功能,具有集科学计算、程序设计和可视化于一体的高度集成化软件环境,是目前国际上公认的最优秀的计算分析软件之一,被广泛应用于自动控制、信号处理、机械设计、流体力学和数理统计等工程领域。通过运算分析,MATLAB 可以从众多的设计方案中寻找最佳途径,获取最优结果,大大提高了设计水平和质量。四连杆机构的解析法同样可以用MATLAB 的计算工具来求值,并结合MATLAB 的可视化手段,把各点的计算值拟合成曲线,得到四连杆机构的运动仿真轨迹。2.1 程序流程图 2.2 M文件编写首先创建函数FoutBarPosition,函数fsolve通过他
6、确定 。function t=fourbarposition(th,th2,L2,L3,L4,L1)t=L2*cos(th2)+L3*cos(th(1)-L4*cos(th(2)-L1;L2*sin(th2)+L3*sin(th(1)-L4*sin(th(2);主程序略 2.3 程序运行结果输出 图形输出: 图2 连杆3的几个位置点 图3 角位移线图 图4 角加速度线图 图5 角加速度线图3 基于MATLAB图形界面设计所谓图形用户界面, 简称为GU I (Graphic User Interface) , 是指包含了各种图形控制对象, 如图形窗口、菜单、对话框以及文本等内容的用户界面。利用这
7、些用户界面, 用户可以和计算机之间进行信息交流。用户可以通过某种方式来选择或者激活这些图形对象, 来运行一些特性的M 文件。最常见的激活方式是利用鼠标或者其它设备来点击这些对象。对于一个用户来说, 图形用户界面就是他所面对的应用程序, 对图形界面的操作直接影响应用程序的应用前途。对于以往专门用于科学计算的语言, 如FORTRAN 语言等, 编写图形界面的功能较弱, 因而用其开发的程序, 其界面往往不够友好, 用户使用起来很不方便。而目前流行的可视化语言, 对科学计算的功能又相对弱一些。MATLAB提供了非常强大的编写图形用户界面的功能。用户只和前台界面下的控件发生交互,而所有运算、绘图等内部操
8、作都封装在内部,终端用户不需要区追究这些复杂过程的代码。图形用户界面大大提高用户使用MATLAB程序的易用性。因此,学习MATLAB图形用户界面编程,即GUI程序的创建,是MATLAB编程用户应该掌握的重要一环。对于一个MATLAB 中的图形用户界面, 它的设计过程一般可以分为两个部分:用户界面的外观设计。在这里, 主要是通过不同的对话框、按钮、文本框等许多工具的使用, 设计出一个图形用户界面。同时也应搞清楚这个图形界面的功能是什么, 也即在图形界面上的操作会引发什么样的结果。图形界面的完成。在这里, 用户将根据在外观设计阶段所确定的图形界面的功能, 针对各个不同的图形对象来编写出能够实现该功
9、能的函数代码, 确保这个图形界面能够完成所预定的功能。3.1 界面设计首先我们新建一个GUI文件,如下图所示: 图6 新建GUI文件选择Blank GUI(Default)。进入GUI开发环境以后添加5个编辑文本框,8个静态文本框,和1个下拉菜单。利用菜单编辑器,创建Open、Print、Close三个菜单。创建好GUI界面需要的各交互控件并调整好大概的位置后,设置这些控件的属性。最后的界面效果如下图示 图7 界面效果3.2 代码设计(1)打开M文件编辑器(M-file Edit),点击 向下的三角图标,可以看到各个对象的回调函数(Callback),某些对象的创建函数或打开函数等。通过选中相
10、应项就可以跳动对应函数位置进行程序编辑。 选中edit_callback选项,光标跳到 function edit1_Callback(hObject, eventdata, handles)下面空白处,添加以下代码:user_entry=str2double(get(hObject,String);if isnan(user_entry) errordlg(请输入数值!,Bad Input)end (2)打开M文件编辑器(M-file Edit),点击 向下的三角图标,设置下拉菜单返回函数,光标跳到 function popupmenu1_Callback(hObject, eventdat
11、a, handles)下面空白处。由于下拉菜单是本界面设计关键控件,与本设计相关的程序都放在这个返回函数下。添加代码略。(3)打开M文件编辑器(M-file Edit),点击 向下的三角图标,在Open菜单回调函数下添加以下代码:file = uigetfile(*.fig);if isequal(file, 0) open(file);end此菜单用以打开fig文件。其相应界面如图9所示: 图9(4)打开M文件编辑器(M-file Edit),点击 向下的三角图标,在Print菜单回调函数下添加以下代码:printdlg(handles.figure1) %用于图形输出。(5)打开M文件编辑
12、器(M-file Edit),点击 向下的三角图标,在Close菜单回调函数下添加以下代码:selection = questdlg(Close get(handles.figure1,Name) ?,. Close get(handles.figure1,Name) .,Yes,No,Yes);if strcmp(selection,No) return;enddelete(handles.figure1) (6)完成M文件编写后,运行程序进行检验,单击 图标或M文件工具栏的 图标,在编辑栏输入个构件参数,运行结果如图11: 图11 界面运行效果图 分别点击下拉菜单 下各选项,则在绘图区域分
13、别显示图2图5。4 小结在本次基于MATLAB平面四杆机构机构的运动分析课程设计中,不仅用到了MATLAB的m语言编程,还有GUI图形用户界面设计。对于课程的设计来说,m语言本身来说,功能相当强大,但是由于其复杂的编程方法,让大多数初学者望而却步;而GUI图形界面则正好弥补了它的不足,它采用的是所见即所得的编程方式,用它来做软件的界面就如图制作网页一样简单明了,用它制作出来的软件不需要太多的编程知识都可以轻松搞定;在此次课程设计中,本人尽量扬长避短,把这些工具的优点结合到一起,发挥其最大的作用。通过此次课程设计,不仅使我们对使我们对四杆机构有了进一步认识,并且使我们认识到计算机技术对工程应用的重要性。本此设计凝结了团队合作的结晶,是我们利用三周的时间努力学习、设计的成果,同时,在设计过成中得到了郑XX老师的悉心指导,在此表示衷心的感谢! - 12 -