基于MATLAB曲柄滑块机构运动仿真

合集下载

基于matlab的曲柄滑块机构设计与运动分析_陈长秀

基于matlab的曲柄滑块机构设计与运动分析_陈长秀

变,从第 i+1 个功能块开始逐位交换。
(3)变异运算的改进
由于在每个功能块中,“1”的数目即是该题型试题的数目, 因此在变异过程中应保证整个种群所有功能块中“1”的数目不 变。可执行如下过程,首先,由变异概率决定某位取反;然后,检 查、修正字符串中“1”的数目,保证不发生变化。
(4)用全局最优解替换本次迭代的最差解 为保证好的字符串不至于流失,每次遗传操作前记录本次 迭代的最优解,若该解优于全局最优解则替换全局最优解,否 则全局最优解保持不变。此次遗传操作后,用全局最优解换本 代的最差解。
(上接第 29 页)
图 1 所示的偏置曲柄滑块机构。设 l1=50mm,l2=100mm, e=20mm,w1=2rad/s,设 φ1 的初始值为 0 , 则 φ1 变化时,杆 2 的角位移、角速度和角加速度以及滑块 3 的位移、速度和加速
>> plot(t,xc,t,vc,t,ac);
度的变化值可计算求得,曲柄转角 φ1 在 0- 360°之间变化时, 在 matlab 的计算窗口输入算式后,滑块 3 的位移、速度和加速
2012 年 1 月 第 1 期(总第 158 期)
轻工科技
LIGHT INDUSTRY SCIENCE AND TECHNOLOGY
机械与电气
基于 m a tla b 的曲柄滑块机构设计与运动分析
陈长秀
(陕西国防工业职业技术学院,陕西 西安 71 0302)
【摘 要】 建立了曲柄滑块机构的计算模型,并使用 matlab 对曲柄滑块机构进行了运动分析,提高了设计效率和设计精度。
图 1 偏置曲柄滑块机构 建立坐标系如图 1 所示,由曲柄滑快机构的矢量封闭图[1] 可得:
φl1 cosφ1+l2 cosφ2=xc

matlab机电系统仿真大作业

matlab机电系统仿真大作业

一曲柄滑块机构运动学仿真1、设计任务描述通过分析求解曲柄滑块机构动力学方程,编写matlab程序并建立Simulink 模型,由已知的连杆长度和曲柄输入角速度或角加速度求解滑块位移与时间的关系,滑块速度和时间的关系,连杆转角和时间的关系以及滑块位移和滑块速度与加速度之间的关系,从而实现运动学仿真目的。

2、系统结构简图与矢量模型下图所示是只有一个自由度的曲柄滑块机构,连杆r2与r3长度已知。

图2-1 曲柄滑块机构简图设每一连杆(包括固定杆件)均由一位移矢量表示,下图给出了该机构各个杆件之间的矢量关系图2-2 曲柄滑块机构的矢量环3.匀角速度输入时系统仿真3.1 系统动力学方程系统为匀角速度输入的时候,其输入为ω2=θ2,输出为ω3=θ3,θ3;v 1=r 1,r 1。

(1) 曲柄滑块机构闭环位移矢量方程为:R 2+R 3=R 1(2) 曲柄滑块机构的位置方程{r 2cos θ2+r 3cos θ3=r 1r 2sin θ2+r 3sin θ3=0(3) 曲柄滑块机构的运动学方程通过对位置方程进行求导,可得{−r 2ω2sin θ2−r 3ω3sin θ3=r 1r 2ω2cos θ2+r 3ω3cos θ3=0由于系统的输出是ω3与v 1,为了便于建立A*x=B 形式的矩阵,使x=[ω3v 1],将运动学方程两边进行整理,得到{v 1+r 3ω3sin θ3=−r 2ω2sin θ2−r 3ω3cos θ3=r 2ω2cos θ2将上述方程的v1与w3提取出来,即可建立运动学方程的矩阵形式(r 3sin θ31−r 3cos θ30)(ω3v 1)=(−r 2ω2sin θ2r 2ω2cos θ2) 3.2 M 函数编写与Simulink 仿真模型建立3.2.1 滑块速度与时间的变化情况以及滑块位移与时间的变化情况仿真的基本思路:已知输入w2与θ2,由运动学方程求出w3和v1,再通过积分,即可求出θ3与r1。

曲柄滑块机构的MATLAB优化设计与SolidWorks运动仿真

曲柄滑块机构的MATLAB优化设计与SolidWorks运动仿真

宝鸡文理学院学报(自然科学版)第39卷,第2期,第6366页,2019年6月Journal of Baoji University of Arts and Sciences(Natural Science)•Vol.39•No.2•pp.63-66•Jun.2019DOI:10.13467/旊i.jbuns.2019.02.002hup:///kcms/detail/61.1290.N.20190612.0952.002.html曲柄滑块机构的MATLAB优化设计与SolidWorks运动仿真"许海强,唐海平灣(宝鸡文理学院机械工程学院,陕西宝鸡721016)摘要:目的得到曲柄滑块机构的最优传力性能,验证其急回特性暎方法以机构运动学参数为设计变量,针对作业任务的要求,通过几何分析导出运动学参数必须满足的约束方程,提出量化机构力学性能的指标,建立机构的优化设计数学模型,给定滑块行程和行程速比系数,用MATLAB优化工具箱求解机构运动学参数的最优尺寸,用SolidWorks建模和运动学仿真暎结果得到了机构运动学参数的最优尺寸和运动学曲线,验证了偏置曲柄滑块机构的急回特性暎结论以MATLAB和SolidWorks 为设计平台进行机构设计与运动分析,具有简单可行和直观高效等优点,可以将其推广到工程实际中暎关键词:曲柄滑块机构;优化设计;M ATL AB;SolidWorks;运动分析中图分类号:TH111文献标志码:A文章编号:1007-1261(2019)02006304 MATLAB optimization design of crank-slider mechanism and SolidWorks motion simulationXU Hai-qiang,TANG Hai-ping灣(Inslilule of Mechanical Engineering•Baoji University of Arts and Sciences•Baoji721016•Shaanxi•China)Abstract:Purposes—To obtain the optimal force transfer performance of the crank-slider mecha­nism,and to verify its quick-return characteristics.Methods—According to the requirement,of job task,the constraint equation which kinematic parameters shall meet is deduced through geometric a­nalysis with the kinematic parameters of the crank-slider mechanism as design variables,then the me­chanic performance indicators of quantitative mechanisms is put forward,and a mathematical model of optimization design is established.When the slider stroke and travel speed ratio coefficient are given, MATLAB optimization toolbox is utilized to solve the optimal size of the kinematic parameters,and SolidWorks is used for modeling and kinematics simulation.Results—The optimal size and kinematic curves of kinematic parameters of the mechanism are obtained,and the quick-return characteristics of offset crank slider mechanism is verified.Conclusions—The mechanism design and motion analysis with MATLAB and SolidWorks as the design platform is simple,feasible,intuitive and efficient,so theycanbeextendedtoengineeringpractice.Key words:crank-slider mechanism;optimization design;MATLAB;SolidWorks;motion analysis曲柄滑块机构是一种平面连杆机构,通过曲柄的回转带动滑块做水平的往复移动,已广泛应用于空气压缩机、往复活塞式发动机等机械系统中暎偏置曲柄滑块机构具有急回特性,在设计机构时,为了保证传动系统的效率,必须对各构件的尺寸参数、位置参数等进行优化设计暎文献[1—收稿日期:2019-01-17,修回日期:2019-03-05,网络出版时间:201906-1209:52:52.作者简介:许海强(1994-),男,陕西宝鸡人,硕士研究生,研究方向:机电一体化技术.Email:xhq9425@ 通讯作者:唐海平C1976-),男,陕西宝鸡人,副教授,博士,硕士生导师,研究方向:材料物理化学.64宝鸡文理学院学报(自然科学版)2019年2]在给定行程速比系数K并且已知曲柄长度a,连杆长度S偏心距e中的任意一个量的情况下,通过解析法推导出其他任意2个未知量暎文献[3—5]通过辅助圆图解法设计了曲柄滑块机构暎但随着MATLAB等计算机优化软件的出现,这2种方法已经不再适用暎作为优化设计领域应用最广的软件之一,MATLAB不仅可以使用优化工具箱中的函数,还能通过算法编程实现相应的最优化设计[]暎偏置曲柄滑块机构的运动学分析是指在不考虑力的前提下,对机构的位移、速度、加速度随时间的变化进行仿真分析暎作为三维设计软件,SolidWorks不但能对机构进行三维建模,还可以使用Motion插件执行复杂机构的运动学和动力学仿真,通过动画、图表、曲线等反映机构的运动特性[]暎本文以曲柄滑块机构在作业任务中满足滑块行程H和行程速比系数K的前提下,以最小传动角Ymin作为目标函数,曲柄长度a,连杆长度b,偏心距e为设计变量暎首先用MATLAB软件进行优化设计,得到机构的最优尺寸参数,再用Solid-Works软件建立偏置曲柄滑块机构的三维模型,最后用Motion插件进行机构运动学仿真,并对仿真结果进行分析暎1优化设计的数学模型优化设计基于数学最优化理论,并使用计算机找到最优解暎在优化实际工程问题时,首先要建立数学模型,即确定设计变量、构造目标函数、选择约束条件;其次根据数学模型选择合适的最优化算法,最后编写程序上机电算择优[]暎1.1确定设计变量优化设计中需要调整和优选的参数称为设计变量。

基于某MATLAB曲柄滑块机构运动仿真报告材料

基于某MATLAB曲柄滑块机构运动仿真报告材料

************************计算机仿真技术matlab报告************************曲柄滑块机构目录一、基于GUI的曲柄滑块机构运动仿真二、基于simulink的曲柄滑块机构运动仿真曲柄滑块机构1.题目描述题目:对如图1所示的曲柄滑块机构的运动过程进行仿真,并用动画的方式显示曲柄滑块机构的运动过程,位移曲线、速度曲线和加速度曲线。

图中,AB长R2,BC长R3mm,A点为坐标原点。

图1 曲柄滑块机构示意图2.实现方法利用GUI界面设计来对曲柄滑块机构的运动过程进行仿真,并用动画的方式显示曲柄滑块机构的运动过程。

3.界面设计1. Gui 设计1)新建GUI:菜单-新建-gui,并保存为test52)界面设计:拖拽左侧图标到绘图区,创建GUI界面拖拽左侧图标值绘图区设置如下的按钮最终的仿真界面如图所示3)代码添加:进入代码界面4.代码编程%模型求解a1=str2double(get(handles.edit1,'String'));a2=str2double(get(handles.edit2,'String'));a3=str2double(get(handles.edit3,'String'));a4=str2double(get(handles.edit4,'String'));a5=str2double(get(handles.edit5,'String'));a=a1*((1-cos(a4*a5))+0.25*(a1/a2)*(1-cos(2*a4*a5))); set(handles.edit6,'String',a);a0=(a4*a1)*(sin(a4*a5)+0.5*(a1/a2)*sin(2*a4*a5));set(handles.edit7,'String',a0);a6=(a4*a4*a1)*(cos(a4*a5)+(a1/a2)*cos(a4*a5));set(handles.edit8,'String',a6);%绘制位移、速度、加速度曲线axes(handles.axes3);r1=str2double(get(handles.edit1,'String'));r2=str2double(get(handles.edit2,'String'));omiga1=str2double(get(handles.edit4,'String'));x11=1:720;for i=1:720x1(i)=i*pi/180;%sin(x2(i)=r1/r2*sin(x1(i));x2(i)=asin(-r1/r2*sin(x1(i)));x22(i)=x2(i)*180/pi;r3(i)=r1*cos(x1(i))+r2*cos(x2(i));B=[-r1*omiga1*sin(x1(i));r1*omiga1*cos(x1(i))]; A=[r2*sin(x2(i)) 1;-r2*cos(x2(i)) 0];X=inv(A)*B;omiga2(i)=X(1,1);v3(i)=X(2,1);endplot(x11/60,0.5*r1*sin(x1));xlabel('ʱ¼äÖá t/sec')ylabel('Á¬¸ËÖÊÐÄÔÚYÖáÉϵÄλÖÃ/mm') figure(2)plot(x11/60,r3);title('Î»ÒÆÏßͼ')grid onhold off;xlabel('ʱ¼ät/sec')ylabel('»¬¿éÎ»ÒÆ r3/mm')figure(3)plot(x11/60,omiga2);title('Á¬¸Ë½ÇËÙ¶È')grid onhold off;xlabel('ʱ¼ä t/sec')ylabel('Á¬¸Ë½ÇËÙ¶È omiga2/rad/sec') figure(4)plot(x11/60,v3*pi/180);title('»¬¿éËÙ¶È')grid onhold off;xlabel('ʱ¼ä t/sec')ylabel('»¬¿éËÙ¶È v3/mm/sec')%绘制表格axes(handles.axes3);grid onaxes(handles.axes1);grid on%制作动画axes(handles.axes1);hf=figure('name','Çú±ú»¬¿é»ú¹¹');set(hf,'color','r');hold onaxis([-6,6,-4,4]);grid onaxis('off');xa0=-5;%»îÈû×ó¶¥µã×ø±êxa1=-2.5;%»îÈûÓÒ¶¥µã×ø±êxb0=-2.5;%Á¬¸Ë×ó¶¥µã×ø±êxb1=2.2;%Á¬¸ËÓÒ¶¥µã×ø±êx3=3.5;%תÂÖ×ø±êy3=0;%תÂÖ×ø±êx4=xb1;%ÉèÖÃÁ¬¸ËÍ·µÄ³õʼλÖúá×ø±êy4=0;%ÉèÖÃÁ¬¸ËÍ·µÄ³õʼλÖÃ×Ý×ø±êx5=xa1;y5=0;x6=x3;%ÉèÖÃÁ¬Öá³õʼºá×ø±êy6=0;%ÉèÖÃÁ¬Öá³õʼ×Ý×ø±êa=0.7;b=0.7c=0.7a1=line([xa0;xa1],[0;0],'color','b','linestyle','-','linewidth',40); %ÉèÖûîÈûa3=line(x3,y3,'color',[0.5 0.6 0.3],'linestyle','.','markersize',300);%ÉèÖÃתÂÖa2=line([xb0;xb1],[0;0],'color','black','linewidth',10);%ÉèÖÃÁ¬¸Ëa5=line(x5,y5,'color','black','linestyle','.','markersize',40);%ÉèÖÃÁ¬¸Ë»îÈûÁ¬½ÓÍ·a4=line(x4,y4,'color','black','linestyle','.','markersize',50);%ÉèÖÃÁ¬¸ËÁ¬½ÓÍ·a6=line([xb1;x3],[0;0],'color','black','linestyle','-','linewidth',10);a7=line(x3,0,'color','black','linestyle','.','markersize',50);%ÉèÖÃÔ˶¯ÖÐÐÄa8=line([-5.1;-0.2],[0.7;0.7],'color','y','linestyle','-','linewidth',5);%ÉèÖÃÆû¸×±Úa9=line([-5.1;-0.2],[-0.72;-0.72],'color','y','linestyle','-','linewidth',5);%ÉèÖÃÆû¸×±Úa10=line([-5.1;-5.1],[-0.8;0.75],'color','y','linestyle','-','linewidth',5);%ÉèÖÃÆû¸×±Úa11=fill([-5,-5,-5,-5],[0.61,0.61,-0.61,-0.61],[a,b,c]);%ÉèÖÃÆû¸×ÆøÌålen1=4.8;%Á¬¸Ë³¤len2=2.5;%»îÈû³¤r=1.3;%Ô˶¯°ë¾¶dt=0.015*pi;t=0;while 1t=t+dt;if t>2*pit=0;endlena1=sqrt((len1)^2-(r*sin(t))^2);%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖкáÖáÉϵÄÓÐЧ³¤¶Èrr1=r*cos(t);%°ë¾¶ÔÚÔ˶¯¹ý³ÌÖкáÖáÉϵÄÓÐЧ³¤¶È xaa1=x3-sqrt(len1^2-(sin(t)*r)^2)-(r*cos(t));%»îÈûÔÚÔ˶¯¹ý³ÌÖеÄÓÒ¶¥µã×ø±êλÖÃxaa0=xaa1-2.5;%%»îÈûÔÚÔ˶¯¹ý³ÌÖеÄ×ó¶¥µã×ø±êλÖà x55=x3-cos(t)*r;%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖкá×ø±êλÖÃy55=y3-sin(t)*r;%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖÐ×Ý×ø±êλÖÃset(a4,'xdata',x55,'ydata',y55);%ÉèÖÃÁ¬¸Ë¶¥µãÔ˶¯set(a1,'xdata',[xaa1-2.5;xaa1],'ydata',[0;0]);%ÉèÖûîÈûÔ˶¯set(a2,'xdata',[xaa1;x55],'ydata',[0;y55]);set(a5,'xdata',xaa1);%ÉèÖûîÈûÓëÁ¬¸ËÁ¬½ÓÍ·µÄÔ˶¯set(a6,'xdata',[x55;x3],'ydata',[y55;0]);set(a11,'xdata',[-5,xaa0,xaa0,-5]);%ÉèÖÃÆøÌåµÄÌî³äset(gcf,'doublebuffer','on');%Ïû³ýÕð¶¯drawnow;end5.结果(1)对它的结构参数进行设置,如下图所示点击计算按钮动画,结果如下图所示点击表格对图形进行画表格处理点击绘图,即可得到位移、速度、加速度曲线,如下图所示二、基于simulink 的曲柄滑块机构运动仿真(1)运用矢量求解法求解(2)绘制速度接线图,如下图所示:运动仿真结果如下图:(3)绘制加速度接线图,如下图所示:运行结果如图所示:。

曲柄滑块机构的优化设计及运动仿真学位论文

曲柄滑块机构的优化设计及运动仿真学位论文

曲柄滑块机构的优化设计及运动仿真学位论文曲柄滑块机构的优化设计及运动仿真目录目录...............................................................1 摘要............................................................... 第1章绪论........................................................ 选题的目的及意义............................................. 优化设计方法的概述........................................... 国内外的研究现状............................................ 主要研究内容............................................ 第2章曲柄滑块机构的受力分析......................................曲柄滑块机构的分类...........................................曲柄滑块机构的动力学特性.....................................曲柄滑块机构中运动学特性..................................... 第3章偏置式曲柄滑块机构的优化设计................................ 优化软件的介绍.............................................. MATLAB的发展历程和影响...................................MATLAB 在机构设计中的应用................................. 机构优化设计实例分析........................................ 设计目标的建立...........................................根据设计要求,确定约束条件................................利用MATLAB进行优化设计.................................... 编制优化程序.............................................. 程序运行结果及处理........................................ 对优化结果进行验证和分析................................. 第4章偏置曲柄滑块机构的运动学建模与仿真.......................... 偏置曲柄滑块机构运动特性建模................................ 仿真环境简介............................................. 机构的运动学建模........................................ 运动学仿真的实现.......................................... 函数的编制及初始参数的设定............................... 构建Simulink仿真框图.................................... 对仿真结果进行分析...................................... 总结...............................................................〔Toolboxs〕组成虽然该软件的初衷并不是为控制系统设计的,但它提供了强大的矩阵处理和绘图功能,可靠灵活且方便,非常适合现代控制理论的计算机辅助设计。

MATLAB基本杆组-运动学仿真

MATLAB基本杆组-运动学仿真

⎡ ri cos (θ i + π ) ⎤ 2 ⎡ xC ⎤ ⎡ xB ⎤ ⎡ ri cos (θ i + π 2 ) ⎤ ⎢ y ⎥ = ⎢ y ⎥ + ⎢ r sin θ + π 2 ⎥ θi + ⎢ r sin θ + π ⎥ θi ( i )⎦ ⎣ i ( i )⎦ ⎣ C⎦ ⎣ B⎦ ⎣ i
xC = xB − riθi sin (θi ) = xD − rjθ j sin (θ j ) yC = yB + riθi cos (θi ) = yD + rjθ j cos (θ j )
再次对时间t求导数,得到点C的加速度为
xC = xB − riθi sin (θi ) − riθi2 cos (θi ) = xD − rjθ j sin (θ j ) − rjθ j2 cos (θ j ) yC = yB + riθi cos (θi ) − riθi2 sin (θi ) = yD + rjθ j cos (θ j ) − riθ i2 sin (θ j )
( (
) )
§5-1 曲柄的MATLAB运动学仿真模块
xB = ri cos (θi ) + rj cos (θ j ) yB = ri sin (θi ) + rj sin (θ j )
对时间分别求两次导数
xB = − rjθ j sin (θ j ) xB = − rjθ j sin (θ j ) − rjθ j2 cos (θ j )
求导数
−riθi sin (θi ) + rjθ j sin (θ j ) = xD − xB riθi cos (θi ) − rjθ j cos (θ j ) = yD − yB

曲柄滑块机构的运动学仿真

曲柄滑块机构的运动学仿真

《系统仿真与matlab》综合试题题目:曲柄滑块机构的运动学仿真编号:24难度系数:*****姓名班级学号联系方式成绩第一部分:课题理解1、课题要求:对图示单缸四冲程发动机中常见的曲柄滑块机构进行运动学仿真。

已知连杆长度:m r 1.02=,m r 4.03=,连杆的转速:22θω =,33θω =,设曲柄r 2以匀速旋转,s r / 502=ω。

初始条件:032==θθ。

仿真以2ω为输入,计算3ω和1r,仿真时间0.5s 。

2、个人理解:本实验是对运动进行仿真,根据滑块的运动演示连杆的运动过程。

首先,建立两杆和滑块位置间的数学关系,计算出运动方程;其次,运用matlab 动画功能,对给定的2ω值进行运动仿真;最后,建立友好的界面,方便用户改变2ω,显示3ω和运行动画。

第二部分:试题建模由几何关系可得:两边求导数可得:即得2θ=w2*t; 3θ =arcsin(r2*sin(2θ )/r3);w3=r2/r3*w2*cos(2θ )./cos(3θ );第三部分:程序实现1、程序模块:2、程序流程:特色在于:随动画同时输出的w3值为动画运行到当前位置时的转动角速度。

并可以多次设定w2值,进行波形比较。

2、程序代码:w2 = str2double(get(handles.w2input,'string'));if w2~=0 %判断用户是否输入w2%如果w2被赋值,则进行变量初始化t=0;dt=0.01;r2=0.1;r3=0.4;x0=0.1;y0=0;x1=0.5;y1=0;%在图形显示框axes_d中进行固定图形的绘画axes(handles.axes_d)%画三角支架plot(0,-0.03,'color',[0.5,0.5,0.5],'linestyle','^',...'linewidth',10);hold onplot(0,0,'color',[0.4,0.4,0.4],'linestyle','.',...'markersize',40);%画r3转动轨迹圆m=[0:0.01:2*pi];plot(0.1*cos(m),0.1*sin(m),'color',[0.6,0.8,0.8],'linestyle','.',...'markersize',5);%画水平线plot([-0.2;0.6],[-0.05;-0.05],'color','b','linestyle','--',...'linewidth',1);%画支点等高线plot([-0.2;0.7],[0;0],'color','b','linestyle','--',...'linewidth',1);%设置坐标范围axis([-0.15,0.7,-0.41,0.41]);%不显示坐标轴%axis('off');%创建杆间连接点point=line(x0,y0,'color','k','linestyle','.',...'markersize',30);%创建连接点水平指示线zhishi=line([x0-0.1;x0+0.1],[y0;y0],'color','b','linestyle','--',...'linewidth',2);%创建杆r2body2=line([0;x0],[0;y0],'color',[0.2,0.25,0.25],'linestyle','-',...'linewidth',5);%创建杆r3body3=line([x0;x1],[y0;y1],'color',[0.2,0.25,0.25],'linestyle','-',...'linewidth',5);%创建活塞huosai1=line([x1+0.01;x1+0.15],[y1;y1],'color','b','linestyle','-',...'linewidth',28);%创建活塞连接点huosaidian=line(x1+0.01,y1,'color','k','linestyle','.',...'markersize',40);%创建汽缸qigang1=line([0.651;0.651],[-0.05;0.05],'color',[0.5,0.5,0.5],'linestyle','-',.. .'linewidth',5);qigang2=line([0.3;0.655],[0.056;0.056],'color',[0.5,0.5,0.5],'linestyle','-',...'linewidth',5);qigang3=line([0.3;0.655],[-0.056;-0.056],'color',[0.5,0.5,0.5],'linestyle','-', ...'linewidth',5);set(handles.axes_w3,'XMinorTick','on')%进行动画过程while t<4t=t+dt;a2=w2*t;a3=asin(r2*sin(a2)/r3);w3=r2/r3*w2*cos(a2)./cos(a3);r2=0.1;x0a=r2*cos(a2);y0a=r2*sin(a2);x1a=x0a+r3*cos(a3);y1a=0;x=x0a;y=y0a;%在图形显示框axes_d中进行图形的刷新axes(handles.axes_d)%重绘杆r2set(body2,'xdata',[0;x0a],'ydata',[0;y0a]);%重绘杆r3set(body3,'xdata',[x0a;x1a],'ydata',[y0a;y1a]);%重绘杆活塞set(huosai1,'xdata',[x1a+0.01;x1a+0.15],'ydata',[y1a;y1a]); %重绘活塞连接点set(huosaidian,'xdata',x1a+0.01,'ydata',y1a);%重绘杆连接点set(point,'xdata',x0a,'ydata',y0a);%重绘指示线set(zhishi,'xdata',[x0a-0.1;x0a+0.1],'ydata',[y0a;y0a]);set(handles.axes_d,'XMinorTick','on')%输出实时w3的值set(handles.w3_output,'string',num2str(w3));%在图形显示框axes_w3中绘制w3的实时波形axes(handles.axes_w3)%设置坐标轴axis([0,4,-w2/4-0.1,w2/4+0.1]);hold onplot(t,w3,'color','k','linestyle','.',...'markersize',5);set(handles.axes_w3,'XMinorTick','on')drawnow;endw2=0;end第四部分:GUI界面规划1、控件组成:1.面板(1个):作为背景。

基于MATLAB软件的铰链四杆机构运动分析仿真软件开发

基于MATLAB软件的铰链四杆机构运动分析仿真软件开发

文章编号: 1009-3818(2002)02-0047-03基于MATLAB 软件的铰链四杆机构运动分析仿真软件开发覃虹桥1 魏承辉2 罗佑新2(1华中科技大学材料学院 湖北武汉430074)(2常德师范学院机械工程系 湖南常德415003)摘 要: 建立了铰链四杆机构运动分析的数学模型,以MATLAB 程序设计语言为平台,将参数化设计与交互式相结合,设计了铰链四杆机构仿真软件,该软件具有方便用户的良好界面,并给出界面设计程序,从而使机构分析更加方便、快捷、直观和形象.设计者只需输入参数就可得到仿真结果,再将运行结果与设计要求相比较,对怎样修改设计做出决策.它为四杆机构设计提供了一种实用的软件与方法.关键词: 铰链四杆机构;按钮;界面;仿真中图分类号: TH 311.52;TH 113.2+2 文献标识码: A铰链四杆机构的运动学分析是机构学中典型的机构运动分析之一,如果设计铰链四杆机构时能及时图示其运动轨迹和速度分析,从而将图示结果与设计要求相比较,可以及时修改设计中的偏差.目前,MALTAB 已经不再是/矩阵实验室0,而成为国际上最流行的科学与工程计算的软件工具,以及一种具有广泛应用前景的全新的计算机高级编程语言,它在国内外高校和科研部门正扮演着越来越重要的角色,功能也越来越大,不断适应新的要求提出新的解决办法.可以预见,在科学运算与科学绘图领域,MATLAB 语言将长期保持其独一无二的地位.然而,国内至今尚未见到采用MATLAB 开发的有关机构学的软件,笔者以MATLAB 的科学运算与绘图的强大功能开发了铰链机构运动仿真软件.1 铰链四杆机构运动轨迹仿真软件1.1 程序功能与数学模型1)程序功能 本程序可以进行铰链四杆机构的运动分析及位置求解.用户在铰链四杆机构运动分收稿日期:2002-12-10基金项目:湖南省教育厅科研资助项目(00C289)第一作者:覃虹桥(1959-)男高级工程师研究方向:机械设计制造析仿真软件里输入各种参数,即可自动演示不同的铰链四杆机构(曲柄摇杆机构、双曲柄机构、双摇杆机构)的运动.2)数学模型 已知AB=a ,BC =b ,C D =c ,AD=d .AB 为主动杆,以匀角速度逆时针旋转,AD 为机架,见图1.图1 铰链四杆机构运动简图Fig.1 plame four-linkage motion diagram分析:求B C 的运动轨迹,可找B 、C 两点坐标与转动角度51的关系,然后求51+d 51及B 、C 两点的坐标,即可求出运动轨迹.由图1有矢量方程:AB +BC =AD +DC ,则其分量方程为:a c os 51+b cos 52=d +c cos 53(1)a sin 51+b sin 52=c sin 53(2)将式(1)、(2)联立消去52并整理得:a 2+c 2+d 2-b 22ac +d c os 53a -d cos 51c -cos (51-53)=0(3)再改写为:sin 51sin 53+(cos 51-da)cos 53+a 2+c 2+d 2-b 22ac -d c os 51c=0(4)令r 1=sin 51,r 2=cos 51-d a ,r 2222第14卷第2期常德师范学院学报(自然科学版)Vol.14No.22002年6月Journal of Changde Teachers University(Natural Science Edition)Jun.2002则(4)化为:r 1sin 53+r 2cos 53=r 3(5)由三角恒等式求得:53=2arctg r 1?r 21+r 22-r 23r 2+r 3(6)式(6)两个解对应于机构的两种不同装配形式./+0对应于图1的实线,而/-0对应于图1的虚线.B 点坐标:B x =A x +a cos 51,B y =A y +a sin 51C 点坐示:C x =D x +c cos 53,C y =D y +a sin 53从运动杆的转角53,对时间求导可得DC 的角速度,由式(1)、(2)解出52按速度合成可求得BC 的转动角速度[2].1.2 程序框图以曲柄摇杆机构的运动仿真程度为例,程序框图如下:图2 程序框图Fig.2 Programming frame diagram1.3 程序代码采用MATLAB 开发图形界面,程序如下:%fourlinkages.mh_main=figure(.Units .,.normalized .,.Position .,[.3,.3,.5,.5],,.MenuBar .,.none .,.Name .,.四杆机构仿真.,.Number Title .,,.off .,.Resize .,.off .);h_axis=axes(.Units .,.normalized .,.Position .,[.12,.15,.6,.6],,.Tag .,.axPlot .,.Visible .,.on .,.XLim .,[-50,80<,.YLim .,-60,80]);h_text1=uicontrol (.Style .,.Text .,.Tag .,.myText1.,.Units .,,.normalized .,.Position .,[0.78,0.55,.05,.38],.String .,,.输入已知参数.,,.HorizontalAlignment .,.right .);h_te xt2=uicontrol(.Style .,.Text .,.Tag .,.myText2.,.Units .,,.nor malized .,.Position .,[0.15,0.90,.35,0.05],.String .,,.正在仿真,,OK !.,,.HorizontalAlignment .,.right .);a =20;b =50;c =40;d =50;fai =60;four_linkages0(a,b ,c,fai );%初始化图形h_edit1=uicontrol(.Style .,.Edit .,.Tag .,.myEdit1.,.Units .,,.normalized .,.Position .,[0.86,.85,.10,.1],.String .,.20.,,.HorizontalAlignment .,.right .);h_edit2=uicontrol(.Style .,.Edit .,.Tag .,.myEdit2.,.Units .,,.normalized .,.Position .,[0.86,.75,.10,.1],.String .,.50.,,.HorizontalAlignment .,.right .);h_edit3=uicontrol(.Style .,.Edit .,.Tag .,.myEdit3.,.Units .,,.normalized .,.Position .,[0.86,.65,.10,.1],.String .,.40.,,.HorizontalAlignment .,.right .);h_edit4=uicontrol(.Style .,.Edit .,.Tag .,.myEdit4.,.Units .,,.normalized .,.Position .,[0.86,.55,.10,.1],.String .,.60.,,.HorizontalAlignment .,.right .);h_list=uic ontrol(.Style .,.ListBox .,.Tag .,.myList .,.Units .,,.normalized .,.Position .,[0.78,.35,.20,.15],.String .,.正置|反置.,,.HorizontalAlignment .,.right .,.Value .,1);k=1;h_button1=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.25,.2,.1],.String .,,.运动轨迹仿真.,.CallBack .,,.hd1=findobj(gcf,..Tag ..,..myEdit1..);.,,.a =eval(get(hd1,..String ..));.,,.hd2=findobj(gcf,..Tag ..,..myEdit2..);.,,.b =eval(get(hd2,..String ..));.,,.hd3=findobj(gcf,..Tag ..,..myEdit3..);.,,.c =eval(get(hd3,..String ..));.,,.hd4=findobj(gcf,..Tag ..,..myEdit4..);.,,.d =eval(get(hd4,..String ..));.,,48常德师范学院学报(自然科学版)2002年.kk =get(findobj(gcf,..Ta g ..,..myList ..),..Value ..);.,,.four_linkages(a,b,c,d,kk ).]);%调用回调函数轨迹仿真.h_button2=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.15,.2,.1],.String .,,.角速度分析.,.CallBack .,.four_linkages1(a,b,c,d ,kk ).);h_button3=uicontrol(.Style .,.PushButton .,.Units .,,.normalized .,.Position .,[0.78,.05,.2,.1],,.String .,.退出.,.CallBack .,.four_linkages2.);%调用回调函数退出系统在主程序中有3个回调函数和一个初始化函数,回调函数分别用轨迹仿真、运动分析和退出系统.回调函数程序按前述数学模型编程(程序略);初始化函数用程序运行时初始化界面的图形.运行程序产生以下界面(图3).图3 程序运行界面Fi g.3 Programming Interface在界面中输入已知参数,则可生成相应的图形.当输入a =20,b =50,c =40,d =60,装配形式选取正置时,如果选运动轨迹仿真,则得仿真轨迹(图4);如果装配形式选反置,进行轨迹仿真(图5).(注:图4 运动轨迹仿真(装配形式正置)Fi g.4 Moti on track simulation(positiveset)图5 运动轨迹仿真(装配形式为反置)Fig.5 Motion track simulation (in reverse positive set)在图4、5中为节省篇幅,这两个图形只选了对应图3的图形部分,界面的其它部分未剪取.).而当选取装配形式进行轨迹仿真后,可再选角速度分析,得到连杆与摇杆的角速度图形(略).2 结论1)自动演示不同的四杆机构的运动,模拟仿真运动轨迹与从动件的速度分析,有助于分析机构的速度、加速程度和机构的工作性能;2)采用MATLAB 语言开发机构仿真运动分析软件,开发界面容易,运行程序时无需编辑、连接,给使用者以极大的方便.只要输入数据,即可得到结果.将运行结果与设计要求相比较,从而引导设计者修改设计.参 考 文 献1 薛定宇.科学运算程序MATLAB5.3程序设计与应用[M ].北京:清华大学出版社,2000.2 孟宪源.现代机构手册(上)[M].北京:机械工业出版社,1994.3 王沫然.Si mulink4建模及动态仿真[M].北京:电子工业出版社,2002.THE DEVELOPMENT OF EMULATIONAL SOFTWARE FOR ANALYSIS OF MOTION IN PLANE GEMEL FOUR -LINKAGEBASED ON MATLAB SOFTWAREQING Hong -qiao 1 WEI CH eng -hui 2LU O You -xin 2(1T he material institute,Cen tral China University of Science and T echnology,Wuhan Hubei,430074)(2Department of Mechanical Engineering,Changde Teachers University,Changde Hunan 415003)Abstract A mathematical model of motion analysis was estab -lished in plane four-linkage,and emulational software was deve-loped .The software adop ted Matlab5.3.1as a desi gn language.It combined parametric design with interactive design and had good in -terface for user.Thus,i t was fas ter and more convenient to analyse linkage.The emulational result was obtained as soon as input param -eters was imported and the devisers can make decision-making of modification by the comparing emulational result with design de -mand.It provides an applied software and method for linkage.Key words Gemel Four -Linkage;button;interface;emula -tion(责任编校:谭长贵)49第2期覃虹桥 魏承辉 罗佑新 基于MATLAB 软件的铰链四杆机构运动分析仿真软件开发。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于MATLAB曲柄滑块机构运动仿真1.题目描述题目:对如图1所示的曲柄滑块机构的运动过程进行仿真,并用动画的方式显示曲柄滑块机构的运动过程,位移曲线、速度曲线和加速度曲线。

图中,AB长R2,BC长R3mm,A点为坐标原点。

图1 曲柄滑块机构示意图2.实现方法利用GUI界面设计来对曲柄滑块机构的运动过程进行仿真,并用动画的方式显示曲柄滑块机构的运动过程。

3.界面设计1. Gui 设计1)新建GUI:菜单-新建-gui,并保存为test52)界面设计:拖拽左侧图标到绘图区,创建GUI界面拖拽左侧图标值绘图区设置如下的按钮最终的仿真界面如图所示3)代码添加:进入代码界面4.代码编程%模型求解a1=str2double(get(handles.edit1,'String'));a2=str2double(get(handles.edit2,'String'));a3=str2double(get(handles.edit3,'String'));a4=str2double(get(handles.edit4,'String'));a5=str2double(get(handles.edit5,'String'));a=a1*((1-cos(a4*a5))+0.25*(a1/a2)*(1-cos(2*a4*a5))); set(handles.edit6,'String',a);a0=(a4*a1)*(sin(a4*a5)+0.5*(a1/a2)*sin(2*a4*a5));set(handles.edit7,'String',a0);a6=(a4*a4*a1)*(cos(a4*a5)+(a1/a2)*cos(a4*a5));set(handles.edit8,'String',a6);%绘制位移、速度、加速度曲线axes(handles.axes3);r1=str2double(get(handles.edit1,'String'));r2=str2double(get(handles.edit2,'String'));omiga1=str2double(get(handles.edit4,'String'));x11=1:720;for i=1:720x1(i)=i*pi/180;%sin(x2(i)=r1/r2*sin(x1(i));x2(i)=asin(-r1/r2*sin(x1(i)));x22(i)=x2(i)*180/pi;r3(i)=r1*cos(x1(i))+r2*cos(x2(i));B=[-r1*omiga1*sin(x1(i));r1*omiga1*cos(x1(i))];A=[r2*sin(x2(i)) 1;-r2*cos(x2(i)) 0];X=inv(A)*B;omiga2(i)=X(1,1);v3(i)=X(2,1);endplot(x11/60,0.5*r1*sin(x1));xlabel('ʱ¼äÖá t/sec')ylabel('Á¬¸ËÖÊÐÄÔÚYÖáÉϵÄλÖÃ/mm')figure(2)plot(x11/60,r3);title('Î»ÒÆÏßͼ')grid onhold off;xlabel('ʱ¼ät/sec')ylabel('»¬¿éÎ»ÒÆ r3/mm')figure(3)plot(x11/60,omiga2);title('Á¬¸Ë½ÇËÙ¶È')grid onhold off;xlabel('ʱ¼ä t/sec')ylabel('Á¬¸Ë½ÇËÙ¶È omiga2/rad/sec') figure(4)plot(x11/60,v3*pi/180);title('»¬¿éËÙ¶È')grid onhold off;xlabel('ʱ¼ä t/sec')ylabel('»¬¿éËÙ¶È v3/mm/sec')%绘制表格axes(handles.axes3);grid onaxes(handles.axes1);grid on%制作动画axes(handles.axes1);hf=figure('name','Çú±ú»¬¿é»ú¹¹'); set(hf,'color','r');hold onaxis([-6,6,-4,4]);grid onaxis('off');xa0=-5;%»îÈû×ó¶¥µã×ø±êxa1=-2.5;%»îÈûÓÒ¶¥µã×ø±êxb0=-2.5;%Á¬¸Ë×ó¶¥µã×ø±êxb1=2.2;%Á¬¸ËÓÒ¶¥µã×ø±êx3=3.5;%תÂÖ×ø±êy3=0;%תÂÖ×ø±êx4=xb1;%ÉèÖÃÁ¬¸ËÍ·µÄ³õʼλÖúá×ø±êy4=0;%ÉèÖÃÁ¬¸ËÍ·µÄ³õʼλÖÃ×Ý×ø±êx5=xa1;y5=0;x6=x3;%ÉèÖÃÁ¬Öá³õʼºá×ø±êy6=0;%ÉèÖÃÁ¬Öá³õʼ×Ý×ø±êa=0.7;b=0.7c=0.7a1=line([xa0;xa1],[0;0],'color','b','linestyle','-','linewidth',40); %ÉèÖûîÈûa3=line(x3,y3,'color',[0.5 0.60.3],'linestyle','.','markersize',300);%ÉèÖÃתÂÖa2=line([xb0;xb1],[0;0],'color','black','linewidth',10);%ÉèÖÃÁ¬¸Ëa5=line(x5,y5,'color','black','linestyle','.','markersize',40);%ÉèÖÃÁ¬¸Ë»îÈûÁ¬½ÓÍ·a4=line(x4,y4,'color','black','linestyle','.','markersize',50);%ÉèÖÃÁ¬¸ËÁ¬½ÓÍ·a6=line([xb1;x3],[0;0],'color','black','linestyle','-','linewidth',10 );a7=line(x3,0,'color','black','linestyle','.','markersize',50);%ÉèÖÃÔ˶¯ÖÐÐÄa8=line([-5.1;-0.2],[0.7;0.7],'color','y','linestyle','-','linewidth' ,5);%ÉèÖÃÆû¸×±Úa9=line([-5.1;-0.2],[-0.72;-0.72],'color','y','linestyle','-','linewi dth',5);%ÉèÖÃÆû¸×±Úa10=line([-5.1;-5.1],[-0.8;0.75],'color','y','linestyle','-','linewid th',5);%ÉèÖÃÆû¸×±Úa11=fill([-5,-5,-5,-5],[0.61,0.61,-0.61,-0.61],[a,b,c]);%ÉèÖÃÆû¸×ÆøÌålen1=4.8;%Á¬¸Ë³¤len2=2.5;%»îÈû³¤r=1.3;%Ô˶¯°ë¾¶dt=0.015*pi;t=0;while 1t=t+dt;if t>2*pit=0;endlena1=sqrt((len1)^2-(r*sin(t))^2);%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖкáÖáÉϵÄÓÐЧ³¤¶Èrr1=r*cos(t);%°ë¾¶ÔÚÔ˶¯¹ý³ÌÖкáÖáÉϵÄÓÐЧ³¤¶Èxaa1=x3-sqrt(len1^2-(sin(t)*r)^2)-(r*cos(t));%»îÈûÔÚÔ˶¯¹ý³ÌÖеÄÓÒ¶¥µã×ø±êλÖÃxaa0=xaa1-2.5;%%»îÈûÔÚÔ˶¯¹ý³ÌÖеÄ×ó¶¥µã×ø±êλÖÃx55=x3-cos(t)*r;%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖкá×ø±êλÖÃy55=y3-sin(t)*r;%Á¬¸ËÔÚÔ˶¯¹ý³ÌÖÐ×Ý×ø±êλÖÃset(a4,'xdata',x55,'ydata',y55);%ÉèÖÃÁ¬¸Ë¶¥µãÔ˶¯set(a1,'xdata',[xaa1-2.5;xaa1],'ydata',[0;0]);%ÉèÖûîÈûÔ˶¯set(a2,'xdata',[xaa1;x55],'ydata',[0;y55]);set(a5,'xdata',xaa1);%ÉèÖûîÈûÓëÁ¬¸ËÁ¬½ÓÍ·µÄÔ˶¯set(a6,'xdata',[x55;x3],'ydata',[y55;0]);set(a11,'xdata',[-5,xaa0,xaa0,-5]);%ÉèÖÃÆøÌåµÄÌî³äset(gcf,'doublebuffer','on');%Ïû³ýÕð¶¯drawnow;end5.结果(1)对它的结构参数进行设置,如下图所示。

相关文档
最新文档