- 2022-09-27 发布 |
- 37.5 KB |
- 27页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
毕业设计:在matlab环境下开发平面连杆机构运动分析系统
河南科技学院2009届本科毕业论文(设计)论文题目:在MATLAB环境下开发平面连杆机构运动分析系统THEDEVELOPMENTOFSYSTEMFORANALYSISOFMOTIONINPLANEFOURBARMECHANISMBASEDONMATLABSOFTWARE学生姓名:樊新乾所在院系:机电学院所学专业:机械设计制造及其自动化导师姓名:杜家熙卞平艳完成时间:2009年05月20日\n摘要 建立了铰链四杆机构运动分析的数学模型,以MATLAB程序设计语言为平台,将参数化设计与交互式相结合,设计了铰链四杆机构分析软件,该软件具有方便用户的良好界面,并给出界面设计程序,从而使机构分析更加方便、快捷、直观和形象.设计者只需输入参数就可得到分析结果,再将运行结果与设计要求相比较,对怎样修改设计做出决策.它为四杆机构设计提供了一种实用的软件与方法.关键词:平面四杆机构,MATLAB软件,运动分析,分析\nTHEDEVELOPMENTOFSYSTEMFORANALYSISOFMOTIONINPLANEFOURBARMECHANISMBASEDONMATLABSOFTWAREAbstractAmathematicalmodelofmotionanalysiswasestablishedinplanefour-linkage,andanalyticalsoftwarewasdeveloped.ThesoftwareadoptedMatlabasadesignlanguage.Itcombinedparametricdesignwithinteractivedesignandhadgoodinterfaceforuser.Thus,itwasfasterandmoreconvenienttoanalyselinkage.Theanalyticalresultwasobtainedassoonasinputparameterswasimportedandthedeviserscanmakedecision-makingofmodificationbythecomparinganalyticalresultwithdesigndemand.Itprovidesanappliedsoftwareandmethodforlinkage.Keywords:PlaneFourBarMechanism,MATLAB,AnalysisofMotion,Analyze\n目录1绪论12平面连杆机构的设计分析32.1平面四连杆机构的运动分析32.2机构的数学模型的建立32.2.1建立机构的闭环矢量位置方程32.2.2求解方法53基于MATLAB程序设计63.1程序流程63.2M文件编写83.3程序运行结果输出104基于MATLAB图形界面设计144.1界面设计144.2代码设计155结论21致谢21参考文献22\n1绪论连杆机构的应用十分广泛,它不仅在众多工农业机械和工程机械中得到广泛应用[1]。铰链四杆机构是由转动副将各构件的头尾联接起的封闭四杆系统,并使其中一个构件固定而组成。被固定件称为机架,与机架直接铰接的两个构件和称为连架杆,不直接与机架铰接的构件称为连杆。连架杆如果能作整圈运动就称为曲柄,否则就称为摇杆,连杆机构的最基本形式是平面四杆机构,它是其它连杆机构的基础。所以,对平面四杆机构进行研究可以概括连杆机构内在的基本原理,从而用以连杆机构的设计。机构运动学综合是按照给定的运动特性对机构进行系统的设计的过程,包括型综合和尺度综合两大主要内容,主要综合方法有解析法、作图法和实验法。作图法和实验法工作量大,设计精度低,仅适用于对机构精度要求不高的场合。近几十年来,随着工业技术的高速发展,人们对机构的复杂程度和精度要求越来越高,作图法和实验法已不能满足要求,而基于计算机辅助设计(例如MATLAB软件)的解析法得到了广泛的应用。此课题的主要内容是系统地对平面四杆机构连杆曲线进行研究,从而来获得连杆机构基本的原理和综合方法,以便在实际中得到应用;主要特色是在各个设计进度中将会大量应用计算机高级语言MATLAB[2]编程来辅助设计和仿真平面四杆机构。铰链四杆机构的运动学分析是机构学中典型的机构运动分析之一,如果设计铰链四杆机构时能及时图示其运动轨迹和速度分析,从而将图示结果与设计要求相比较,可以及时修改设计中的偏差.目前,MALTAB已经不再是“矩阵实验室”,而成为国际上最流行的科学与工程计算的软件工具,以及一种具有广泛应用前景的全新的计算机高级编程语言,它在国内外高校和科研部门正扮演着越来越重要的角色,功能也越来越大,不断适应新的要求提出新的解决办法.可以预见,在科学运算与科学绘图领域,MATLAB语言将长期保持其独一无二的地位.然而,国内至今尚未见到采用MATLAB开发的有关机构学的软件,以MATLAB的科学运算与绘图的强大功能开发了铰链机构运动仿真软件.机构的运动分析是机构设计中必不可少的工作,通常可使用图解法和解析法来进行,图解法因其作图、计算工作量大、精度差的缺点,在实际工程设计应用中有很大的局限性。解析法的计算工作量很大,但随着计算机在工程设计领域的广泛应用,优化方法和计算机辅助设计的应用已成为研究连杆机构的重要方法,一些软件平台为解决复杂的工程计算提供了强有力的武器。,并已相应地编制出大量的、适用范围广、计算机时少、使用方便的通用软件。23\nMATLAB是Mathworks公司于1982年推出的一套功能强大的工程计算软件,广泛应用于自动控制、机械设计、流体力学和数理统计等工程领域,被誉为巨人肩上的工具。它集数值分析、矩阵运算、信号处理和图形显示于一体,构成了一个方便的、界面友好的用户环境。所谓图形用户界面[3],简称为GUI(GraphicUserInterface),是指包含了各种图形控制对象,如图形窗口、菜单、对话框以及文本等内容的用户界面。利用这些用户界面,用户可以和计算机之间进行信息交流。用户可以通过某种方式来选择或者激活这些图形对象,来运行一些特性的M文件。最常见的激活方式是利用鼠标或者其它设备来点击这些对象。对于一个用户来说,图形用户界面就是他所面对的应用程序,对图形界面的操作直接影响应用程序的应用前途。对于以往专门用于科学计算的语言,如FORTRAN语言等,编写图形界面的功能较弱,因而用其开发的程序,其界面往往不够友好,用户使用起来很不方便。而目前流行的可视化语言,对科学计算的功能又相对弱一些。MATLAB提供了非常强大的编写图形用户界面的功能。用户只和前台界面下的控件发生交互,而所有运算、绘图等内部操作都封装在内部,终端用户不需要区追究这些复杂过程的代码。图形用户界面大大提高用户使用MATLAB程序的易用性。因此,学习MATLAB图形用户界面编程,即GUI程序的创建,是MATLAB编程用户应该掌握的重要一环。对于一个MATLAB的图形用户界面,它的设计过程可以分为两个部分:(1)用户界面的外观设计。在这里,主要是通过不同的对话框、按钮、文本框等许多工具的使用,设计出一个图形用户界面。同时也应搞清楚这个图形界面的功能是什么,也即在图形界面上的操作会引发什么样的结果。(2)图形界面的完成。在这里,用户将根据在外观设计阶段所确定的图形界面的功能,针对各个不同的图形对象来编写出能够实现该功能的函数代码,确保这个图形界面能够完成所预定的功能。工程人员通过使用MATLAB提供的工具箱,可以高效求解复杂的工程问题,并可以对系统进行动态仿真,用强大的图形功能对数值计算结果进行显示。笔者在MATLAB环境下开发了一个平面四杆机构运动分析系统,只要在系统图形界面的文本编辑框中交互地输入四杆机构各构件的参数和原动件的角速度,就能迅速地输出当原动件转动1周时从动件的位移、速度、加速度的变化规律曲线,具有融计算与绘图为一体,操作简便、界面友好,计算速度快,准确性高的特点。本文以曲柄摇杆机构为分析对象,借助MATLAB23\n软件进行运动分析。曲柄摇杆机构是平面四连杆机构中最基本的结构,它可以用来实现转动和摆动之间运动形式的转换或传递动力。对曲柄摇杆机构进行运动分析的主要内容是:在机构尺寸参数已知的情况下,假定曲柄做匀速转动,从运动几何关系上分析连杆和摇杆的角位移、角速度、角加速度等运动参数的变化情况。并根据机构闭环矢量方程计算从动件的位移偏差。本课题的主要内容是平面四杆机构的连杆曲线及轨迹综合分析系统的开发,其意义在于:一、深入研究计算机在设计和仿真连杆机构曲线方面的应用,从而指导实践;二、总结出四杆机构轨迹综合的理论基础,从而指导多杆或复杂的低副平面机构的综合。三、综合运用MATLAB软件强大的计算功能与图形界面开发系统,设计出可以方便快捷实现机构分析的应用系统2平面连杆机构的设计分析2.1平面四连杆机构的运动分析[4]在平面四杆机构中,其具有曲柄的条件为:a.各杆的长度应满足杆长条件,即:最短杆长度+最长杆长度≤其余两杆长度之和。b.组成该周转副的两杆中必有一杆为最短杆,且其最短杆为连架杆或机架(当最短杆为连架杆时,四杆机构为曲柄摇杆机构;当最短杆为机架时,则为双曲柄机构)。在如下图1所示的曲柄摇杆机构中,构件AB为曲柄,则B点应能通过曲柄与连杆两次共线的位置。2.2机构的数学模型的建立[6]2.2.1建立机构的闭环矢量位置方程图1四杆机构简图[8]23\n在用矢量法建立机构的位置方程时,需将构件用矢量来表示,并作出机构的封闭矢量多边形。如图1所示,先建立一直角坐标系。设各构件的长度分别为、、、,其方位角为、、、。以各杆矢量组成一个封闭矢量多边形,即ABCDA。其个矢量之和必等于零。即:式1式1为图1所示四杆机构的封闭矢量位置方程式。对于一个特定的四杆机构,其各构件的长度和原动件2的运动规律,即为已知,而=0,故由此矢量方程可求得未知方位角、。角位移方程的分量形式为:式2闭环矢量方程分量形式对时间求解一阶导数,就能够得到角速度方程,如下所示:式3其矩阵形式为:式4联立式3两公式可求得:式5式6闭环矢量方程分量形式对时间求解二阶导数,得到角加速度方程矩阵形式[11]为:式7由式7可求得加速度:式823\n式9注:式1--式9中,(i=1,2,3,4)分别表示机架1、曲柄2、连杆3、摇杆4的长度;(i=1,2,3,4)是各杆与x轴的正向夹角,逆时针为正,顺时针为负,单位为;是各杆的角速度,,单位为;为各杆的角加速度,,单位为。2.2.2求解方法应用数学方法对以上各式进行求解,方法如下:(1)求导中应用了下列公式:式10(2)在角位移方程分量形式(式2)中,由于假定机架为参考系,矢量1与x轴重合,=0,则有非线性方程组:式11可以借助MATLAB自带的fsolve函数求出连杆3的角位移和摇杆4的角位移。(3)求解具有n个未知量(i=1,2,…,n)的线性方程组:式12上式可以表示为系列矩阵,是一个阶方阵,可表示如下,并运用逆矩阵知识:23\n式13的逆矩阵为;常数项b是一个n维矢量:式14因此,线性方程组解的矢量为:式15式11是求解连杆3和摇杆4角速度和角加速度的依据。以上各式既为求解平面连杆机构运动规律的数学模型。3基于MATLAB程序设计[12]程序设计是编程者实现算法,用编程语言表达数学模型的过程,或者说是现实问题求解的思维活动代码化的过程。也就是解决如何组织MATLAB的结构.根据以上数学模型,选择优化算法,创建程序流程图,运用MATLAB语言,编写MATLAB程序,并在MATLAB6.5中调试运行,将这个实际问题转化为编程语言。3.1程序流程按照现代程序设计的观点,算法(Algorithm)是一系列解决问题的清晰指令.算法是一个程序的灵魂,一个准确无误的算法是程序设计成功的关键。任何算法功能都能够通过三种基本结构:顺序结构,选择结构,循环结构的组合来实现。为了更加方便清楚准确的编写程序,我们首先把算法用流程图的方式来表示出来。程序流程图是人们对解决问题的方法、思路或算法的一种描述。采用简单规范的符号,画法简单,结构清晰,逻辑性强,便于描述,容易理解综合运用三种逻辑结构,并且仔细推算,以保证算法精确,节省空间和时间,以及达到高效率。程序流程图如图2所示。23\n新步长输入给定已知参数:L1,L2,L3,L4,W2设置th2的范围及步长调用fsolve函数求解th3,th4求解连杆3两端点坐标值绘制从动件角位移线图绘制连杆3的几个位置点利用矩阵公式求W3,W4输出一个周期内角位移,角速度,角加速度数据绘制从动件角加速度线图利用矩阵公式求a3,a4绘制从动件角速度线图程序开始程序结束重新设置步长图2程序流程图23\n3.2M文件编写[16]首先创建函数aa,函数fsolve通过他确定。functiont=aa(th1,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))];主程序如下:disp'******平面四杆机构的运动分析******'L1=input('输入机架长度L1=');L2=input('输入曲柄长度(主动件)L2=');L3=input('输入连杆长度L3=');L4=input('输入输入从动杆长度L4=');rs=[L1L2L3L4];minimum=min(rs);maximum=max(rs);if(minimum+maximum)>(sum(rs)-minimum-maximum)disp'此机构不满足杆长条件,程序终止',break;endifL1<=L2&L1<=L3&L1<=L4disp'此机构为双曲柄机构'elseifL2<=L1&L2<=L3&L2<=L4disp'此机构为曲柄摇杆机构'elsedisp'此机构为双摇杆机构,本例不予考虑',break;endw2=input('输入主动件角速度w2=');th2=[0:1/6:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');form=1:length(th2)th34(m,:)=fsolve('aa',[11],options,th2(m),L2,L3,L4,L1);endy=L2*sin(th2)+L3*sin(th34(:,1)');x=L2*cos(th2)+L3*cos(th34(:,1)');xx=[L2*cos(th2)];yy=[L2*sin(th2)];figure(1)plot([x;xx],[y;yy],'k',[0L1],[00],'k--^',x,y,'ko',xx,yy,'ks')title('连杆3的几个位置点')xlabel('水平方向')ylabel('垂直方向')axisequalth2=[0:2/72:2]*pi;form=1:length(th2)th34(m,:)=fsolve('aa',[11],options,th2(m),L2,L3,L4,L1);23\nendfigure(2)plot(th2*180/pi,th34(:,1),th2*180/pi,th34(:,2))plot(th2*180/pi,th34(:,1)*180/pi,th2*180/pi,th34(:,2)*180/pi)gridxlabel('主动件转角\theta_2(度)')ylabel('从动件角位移(度)')title('角位移线图')w3=(L2*w2*sin(th34(:,2)-th2'))./(L3*sin(th34(:,1)-th34(:,2)));w4=(L2*w2*sin(th2'-th34(:,1)))./(L4*sin(th34(:,2)-th34(:,1)));figure(3)plot(th2*180/pi,w3,th2*180/pi,w4);gridxlabel('主动件转角\theta_2(度)')ylabel('从动件角速度(rad\cdots^{-1})')title('角速度线图')s32=th34(:,1)-th2';s43=th34(:,2)-th34(:,1);s24=th2'-th34(:,2);a3=(L2*w2^2*cos(s24)+L3*w3.^2.*cos(s43)-L4*w4.^2)./(L4*sin(s43));a4=(L2*w2^2*cos(s32)-L4*w4.^2.*cos(s43)+L3*w3.^2)./(L4*sin(s43));figure(4)plot(th2*180/pi,a3,th2*180/pi,a4);gridxlabel('从动件角加速度')ylabel('从动件角加速度(rad\cdots^{-2})')title('角加速度线图')disp'曲柄转角连杆转角-从动杆4转角-连杆角速度-从动杆4角速度-连杆加速度-从动杆4加速度'ydcs=[th2'*180/pi,th34(:,1)*180/pi,th34(:,2)*180/pi,w3,w4,a3,a4];disp(ydcs)ex=L2*cos(th2')+L3*cos(th34(:,1))-L4*cos(th34(:,2))-L1;ey=L2*sin(th2')+L3*sin(th34(:,1))-L4*sin(th34(:,2));ee=norm([exey]);disp'曲柄转角X向偏差Y向偏差'wc=[th2'*180/pi,ex,ey]disp(wc)fprintf(1,'偏差矢量矩阵的模ee=%3.4f\n',ee)figure(5)plot(th2*180/pi,ex,th2*180/pi,ey)gridtitle('均方根偏差曲线')xlabel('主动件转角\theta_2(度)')ylabel('均方根偏差')23\n3.3程序运行结果输出******平面四杆机构的运动分析******输入机架长度L1=90输入曲柄长度(主动件)L2=30输入连杆长度L3=60输入输入从动杆长度L4=70此机构为曲柄摇杆机构输入主动件角速度w2=20曲柄转角连杆转角-从动杆4转角-连杆角速度-从动杆4角速度-连杆加速度-从动杆4加速度Columns1through6071.3707125.6853-10.0000-10.0000-184.67615.000068.7629123.2500-10.8220-9.4453-137.647010.000065.9802120.9809-11.3983-8.6728-88.780515.000063.0843118.9297-11.7289-7.7076-41.660820.000060.1349117.1400-11.8305-6.58750.747125.000057.1857115.6451-11.7326-5.357136.481330.000054.2822114.4668-11.4719-4.062664.672635.000051.4601113.6156-11.0869-2.746785.391540.000048.7460113.0922-10.6140-1.445899.367145.000046.1578112.8890-10.0848-0.1885107.687750.000043.7061112.9925-9.52521.0046111.554755.000041.3961113.3848-8.95472.1200112.116860.000039.2285114.0454-8.38763.1497110.378765.000037.2012114.9523-7.83344.0906107.167370.000035.3102116.0832-7.29794.9422103.133975.000033.5504117.4161-6.78395.706698.775280.000031.9164118.9295-6.29226.386994.462485.000030.4026120.6028-5.82176.986690.469890.000029.0040122.4164-5.37027.509887.001895.000027.7161124.3516-4.93477.959984.2148100.000026.5356126.3905-4.51148.340082.2350105.000025.4598128.5160-4.09598.652781.1722110.000024.4874130.7114-3.68338.899681.1294115.000023.6183132.9604-3.26809.081582.2090120.000022.8540135.2467-2.84429.198584.5143125.000022.1975137.5541-2.40539.249488.1462130.000021.6532139.8658-1.94449.232693.1925135.000021.2277142.1645-1.45419.145299.7082140.000020.9293144.4323-0.92688.9843107.6830145.000020.7680146.6503-0.35548.7464116.9971150.000020.7557148.79890.26628.4289127.3655155.000020.9056150.85800.94228.0304138.2825160.000021.2315152.80741.67377.5520148.987423\n165.000021.7468154.62772.45706.9983158.4813170.000022.4636156.30103.28326.3785165.6267175.000023.3908157.81254.13745.7064169.3344180.000024.5330159.15135.00005.0000168.8014185.000025.8896160.31135.84834.2793163.7155190.000027.4540161.29156.65953.5642154.3353195.000029.2145162.09547.41352.8723141.4095200.000031.1547162.73078.09492.2166125.9711205.000033.2551163.20748.69361.6054109.0995210.000035.4943163.53749.20481.042191.7321215.000037.8502163.73249.62790.526074.5640220.000040.3011163.80419.96510.054058.0308225.000042.8259163.762710.2202-0.379142.3417230.000045.4047163.617310.3977-0.779327.5346235.000048.0186163.375310.5019-1.152913.5312240.000050.6498163.042510.5365-1.50620.1811245.000053.2813162.623410.5045-1.8451-12.7055250.000055.8967162.120710.4076-2.1752-25.3371255.000058.4798161.536010.2466-2.5020-37.9287260.000061.0146160.869610.0212-2.8303-50.6938265.000063.4849160.12049.7299-3.1647-63.8408270.000065.8738159.28639.3702-3.5098-77.5696275.000068.1640158.36438.9388-3.8695-92.0672280.000070.3369157.35008.4313-4.2478-107.5012285.000072.3729156.23857.8425-4.6481-124.0090290.000074.2509155.02397.1668-5.0734-141.6810295.000075.9485153.69966.3980-5.5260-160.5356300.000077.4417152.25865.5305-6.0069-180.4846305.000078.7051150.69384.5590-6.5156-201.2871310.000079.7123148.99873.4804-7.0494-222.4931315.000080.4363147.16762.2943-7.6020-243.3816320.000080.8508145.19691.0048-8.1633-262.9044325.000080.9310143.0864-0.3776-8.7178-279.6556330.000080.6557140.8404-1.8347-9.2440-291.8984335.000080.0097138.4691-3.3385-9.7140-297.6852340.000078.9857135.9908-4.8512-10.0942-295.0989345.000077.5872133.4326-6.3261-10.3473-282.6143350.000075.8302130.8308-7.7105-10.4360-259.5197355.000073.7440128.2310-8.9510-10.3277-226.2782360.000071.3707125.6853-10.0000-10.0000-184.676123\n程序运行图形输出:图3运行界面图4连杆3的几个位置点23\n图5角位移线图图6角速度线图23\n图7角加速度线图4基于MATLAB图形界面设计4.1界面设计图8新建GUI文件首先我们新建一个GUI文件,如上图所示,选择BlankGUI(Default):23\n进入GUI开发环境以后添加5个编辑文本框,9个静态文本框,和1个下拉菜单。利用菜单编辑器,创建Open、Print、Close三个菜单。创建好GUI界面需要的各交互控件并调整好位置后,设置这些控件的属性。最后的界面如图示:图9界面效果4.2代码设计(1)打开M文件编辑器(M-fileEdit),点击向下的三角图标,可以看到各个对象的回调函数(Callback),某些对象的创建函数或打开函数等。通过选中相应项就可以跳动对应函数位置进行程序编辑。选中’edit_callback’选项,光标跳到’functionedit1_Callback(hObject,eventdata,handles)’下面空白处,添加以下代码:user_entry=str2double(get(hObject,'String'));ifisnan(user_entry)errordlg('请输入数值!','BadInput')end该语句严格限制编辑框内必须输入数值,否则出现错误对话框(如下图所示)。同理在其他四个编辑框的回调函数下输入相同的代码。图10错误对话框23\n(2)打开M文件编辑器(M-fileEdit),点击向下的三角图标,设置下拉菜单返回函数,光标跳到’functionpopupmenu1_Callback(hObject,eventdata,handles)’下面空白处。由于下拉菜单是本界面设计关键控件,与本设计相关的程序都放在这个返回函数下。添加代码如下:L1=str2double(get(handles.edit1,'String'));L2=str2double(get(handles.edit2,'String'));L3=str2double(get(handles.edit3,'String'));L4=str2double(get(handles.edit4,'String'));w2=str2double(get(handles.edit5,'String'));th2=[0:2/72:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');form=1:length(th2)th34(m,:)=fsolve('aa',[11],options,th2(m),L2,L3,L4,L1);endw2=250;fori=1:length(th2)A=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];B=[w2*L2*sin(th2(i));-w2*L2*cos(th2(i))];w=inv(A)*B;w3(i)=w(1);w4(i)=w(2);endfori=1:length(th2)C=[-L3*sin(th34(i,1))L4*sin(th34(i,2));L3*cos(th34(i,1))-L4*cos(th34(i,2))];D=[w2^2*L2*cos(th2(i))+w3(i)^2*L3*cos(th34(i,1))-w4(i)^2*L4*cos(th34(i,2));...w2^2*L2*sin(th2(i))+w3(i)^2*L3*sin(th34(i,1))-w4(i)^2*L4*sin(th34(i,2))];a=inv(C)*D;a3(i)=a(1);a4(i)=a(2);endval=get(hObject,'Value');str=get(hObject,'String');switchstr{val}case'连杆3的几个位置点'th2=[0:1/6:2]*pi;th34=zeros(length(th2),2);options=optimset('display','off');form=1:length(th2)23\nth34(m,:)=fsolve('aa',[1、1],options,th2(m),L2,L3,L4,L1);endy=L2*sin(th2)+L3*sin(th34(:,1)');x=L2*cos(th2)+L3*cos(th34(:,1)');xx=[L2*cos(th2)];yy=[L2*sin(th2)];plot([x;xx],[y;yy],'k',[0L1],[00],'k--^',x,y,'ko',xx,yy,'ks')title('连杆3的几个位置点')xlabel('水平方向')ylabel('垂直方向')axisequalgridoncase'角位移线图'plot(th2*180/pi,th34(:,1)*180/pi,th2*180/pi,th34(:,2)*180/pi)axis([03600170])gridonxlabel('主动件转角\theta_2(度)')ylabel('从动件角位移(度)')title('角位移线图')text(120,120,'摇杆4角位移')text(150,40,'连杆3角位移')case'角速度线图'plot(th2*180/pi,w3,th2*180/pi,w4);axis([0360-175200])text(50,160,'摇杆4角速度(\omega_4)')text(220,130,'连杆3角速度(\omega_3)')gridonxlabel('主动件转角\theta_2(度)')ylabel('从动件角速度(rad\cdots^{-1})')title('角速度线图')case'角加速度线图'plot(th2*180/pi,a3,th2*180/pi,a4);axis([0360-5000065000])text(50,50000,'摇杆4角加速度(\alpha_4)')text(220,12000,'连杆3角加速度(\alpha_3)')gridonxlabel('主动件转角\theta_2(度)')ylabel('从动件角加速度(rad\cdots^{-2})')title('角加速度线图')endguidata(hObject,handles)23\n%其中,guidata(hObject,handles)命令用于更新句柄,当输入不同参数是,程序能够做出相应的相应。(3)打开M文件编辑器(M-fileEdit),点击向下的三角图标,在Open菜单回调函数下添加以下代码:file=uigetfile('*.fig');if~isequal(file,0)open(file);end此菜单用以打开fig文件。其相应界面如图11所示:图11运行界面(4)打开M文件编辑器(M-fileEdit),点击向下的三角图标,在Print菜单回调函数下添加以下代码:printdlg(handles.figure1)%用于图形输出。(5)打开M文件编辑器(M-fileEdit),点击向下的三角图标,在Close菜单回调函数下添加以下代码:selection=questdlg(['Close'get(handles.figure1,'Name')'?'],...['Close'get(handles.figure1,'Name')'...'],'Yes','No','Yes');ifstrcmp(selection,'No')return;enddelete(handles.figure1)此菜单用于关闭界面,其响应界面如图12所示:23\n图12(6)完成M文件编写后,运行程序进行检验,单击图标或M文件工具栏的图标,在编辑栏输入个构件参数,单击右侧下拉框,运行结果如以下图所示:图13连杆几个位置点23\n图14角加速度线图图15角速度线图23\n图16角位移图5结论在本次基于MATLAB平面四杆机构机构的运动分析毕业论文设计中,不仅用到了MATLAB的m语言编程,还有GUI图形用户界面设计。对于课程的设计来说,m语言本身来说,功能相当强大,但是由于其复杂的编程方法,让大多数初学者望而却步;而GUI图形界面则正好弥补了它的不足,它采用的是所见即所得的编程方式,用它来做软件的界面就如图制作网页一样简单明了,用它制作出来的软件不需要太多的编程知识都可以轻松搞定;在此次毕业论文设计中,本人尽量扬长避短,把这些工具的优点结合到一起,发挥其最大的作用。本文的程序在MATLAB6.5版中调试通过。通过此次设计,不仅使我们对使我们对四杆机构有了进一步认识,并且使我们认识到计算机技术对工程应用的重要性。本论文的主要成果有(1)本系统可以自动演示不同的四杆机构的运动,模拟仿真运动轨迹与从动件的速度分析,有助于分析机构的速度、加速程度和机构的工作性能;23\n(2)采用MATLAB语言开发机构仿真运动分析软件,开发界面容易,运行程序时无需编辑、连接,给使用者以极大的方便.只要输入数据,即可得到结果.将运行结果与设计要求相比较,从而引导设计者修改设计.本次论文设计使我认识到了机械设计领域,尤其在解析法求解分析机构运动规律中,计算机编程对工作的巨大支持,提高了对计算机知识尤其是计算机编程的兴趣,培养了严谨务实的工作作风,以及对查阅资料、总结归纳能力的重要性的认识,对我以后的工作学习有了很大的帮助与启迪。本次设计业凸显了一些自己在计算机编程方面的弱势,计算机运用能力有待提高,本系统达到了基本的运算分析功能,但是在人机更高水平的互动上尚有待提高和完善。致谢本论文的完成,得益于河南科技学院老师传授的知识,使本人有了完成论文需要的知识积累,更得益于指导老师从选题的确定、论文资料的收集、论文框架的确定到论文的完成所付出的心血,在此对老师表示感谢!在论文完成过程中,同学们也给了我无私的帮助,在此一并致谢!通过本次毕业设计,培养了我正确的设计思想和思维方法,并使我查阅文献资料、阅读外文资料及的能力、计算机辅助绘图及设计和文字表达能力也得到了进一步的提高。值此毕业论文完成之际,特向不辞辛苦教导我的老师和在这次毕业设计中帮助我的同学们在此表示感谢感谢答辩老师的审阅与批评指正!参考文献[1]孙桓,陈作模.机械原理[M].7版.北京:高等教育出版社,2006[2]MATLAB教程/罗建军主编.北京:电子工业出版社,2005.7[3]MATLAB原理与工程应用[M].1版.北京:电子工业出版社,2002[4]平面四连杆机构的计算设计/梁崇高主编.北京:高等教育出版社,1993.8[5]连杆机构设计与应用创新/华大年,华志宏编著.北京:机械工业出版社,2008.1[6]线性代数/陈付贵,张万琴主编.北京:北京大学出版社,2006.1[7]符炜.机构设计学.[M].1版.长沙:中南工业大学出版社,1995[8]现代连杆机构设计/熊滨生主编.北京:化学工业出版社,2005.12[9]MATLAB宝典/陈杰编著.北京:电子工业出版社,2007.1[10]MATLAB7.0从入门到精通/求是科技编著.北京:人民邮电出版社,2006.3[11]曹飞,徐征峰.用MATLAB求解机构运动系统[J].机械设计与制造,2001(6):37-38[12]杨春辉.基于MATLAB的平面连杆机构运动分析[J].重庆科技学院学报,2008(3):55-57[13]陈杰平,姚智华..基于MATLAB的曲柄滑块机构仿真研究[J].安徽技术师范学院学报,2005(4):31-34[14]王华杰.基于MATLAB的四杆机构运动分析与动画模拟[J].机械设计与制造,2005(5):139-14023\n[15]王文娟.基于MATLAB优化工具箱的平面连杆机构的设计[J].轻工机械,2006(12):76-79[16]崔利杰,龚小平.基于MATLAB运动仿真的平面多连杆机构优化设计[J].机械设计与制造,2007(2):40-42[17]覃虹桥,魏承辉,罗佑新,等.基于MATLAB软件的铰链四杆机构运动分析仿真软件开发[J].常德师范学院学报,2002(2):47-49[18]徐梓斌.六杆机构运动学仿真的MATLAB实现[J].煤矿机械,2006(4):617-618[19]申文清,郝爱云,朱志辉,等基于MATLAB的装载机连杆机构优化设计[J].煤矿机械,2005(4):544-546[20]王静文,刘舜尧,莫江涛,等基于MATLAB实现平面四杆机构运动仿真[J].现代机械,2005{4}:50-52[21]http://www.ilovematlab.cn[22]http://www.matlabforums.cn/23查看更多