为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > matlab四连杆带代码

matlab四连杆带代码

2023-03-08 7页 doc 11KB 5阅读

用户头像 个人认证

is_401170

暂无简介

举报
matlab四连杆带代码用Matlab对四连杆运动模拟引言四连杆机构因其结构灵活、能够传递动力并有效地实现预定动作,在很多领域得到了广泛应用。进行连杆机构运动分析,传统方法主要是图解法或分析法,无论设计精度还是设计效率都相对低下,无法满足现代机械高速高精度的要求。随着计算机技术的飞速发展,特别是以MATLAB为代表的数值计算软件的出现,为进行机构分析提供了有力的工具。1、四连杆介绍1.1、四连杆介绍与分类所有运动副均为转动副的四杆机构称为铰链四杆机构,它是平面四杆机构的基本形式,其他四杆机构都可以看成是在它的基础上演化而来的。选定其中一个构件作为机架...
matlab四连杆带代码
用Matlab对四连杆运动模拟引言四连杆机构因其结构灵活、能够传递动力并有效地实现预定动作,在很多领域得到了广泛应用。进行连杆机构运动分析,传统方法主要是图解法或分析法,无论设计精度还是设计效率都相对低下,无法满足现代机械高速高精度的要求。随着计算机技术的飞速发展,特别是以MATLAB为代的数值计算软件的出现,为进行机构分析提供了有力的工具。1、四连杆介绍1.1、四连杆介绍与分类所有运动副均为转动副的四杆机构称为铰链四杆机构,它是平面四杆机构的基本形式,其他四杆机构都可以看成是在它的基础上演化而来的。选定其中一个构件作为机架之后,直接与机架链接的构件称为连架杆,不直接与机架连接的构件称为连杆,能够做整周回转的构件被称作曲柄,只能在某一角度范围内往复摆动的构件称为摇杆。如果以转动副连接的两个构件可以做整周相对转动,则称之为整转副,反之称之为摆转副。铰链四杆机构中,按照连架杆是否可以做整圆周转动,可以将其分为三种基本形式,即曲柄摇杆机构,双曲柄机构和双摇杆机构。曲柄摇杆机构,两连架杆中一个为曲柄一个为摇杆的铰链四杆机构。双曲柄机构,具有两个曲柄的铰链四杆机构称为双曲柄机构。其特点是当主动曲柄连续等速转动时,从动曲柄一般做不等速转动。在双曲柄机构中,如果两对边构件长度相等且平行,则成为平行四边形机构。这种机构的传动特点是主动曲柄和从动曲柄均以相同的角速度转动,而连杆做平动。双摇杆机构。双摇杆机构是两连架杆均为摇杆的铰链四杆机构。1.2、格拉霍夫定理杆长之和条件:平面四杆机构的最短杆和最长杆的长度之和小于或者等于其余两杆长度之和。在铰链四杆机构中,如果某个转动副能够成为整转副,则它所连接的两个构件中,必有一个为最短杆,并且四个构件的长度关系满足杆长之和条件。在有整装副存在的铰链四杆机构中,最短杆两端的转动副均为整转副。此时,如果取最短杆为机架,则得到双曲柄机构;若取最短杆的任何一个相连构件为机架,则得到曲柄摇杆机构;如果取最短杆对面构件为机架,则得到双摇杆机构。如果四杆机构不满足杆长之和条件,则不论选取哪个构件为机架,所得到机构均为双摇杆机构。上述系列结论称为格拉霍夫定理。运用条件分析:1.Lmax+Lmin〉其余两杆之和,此铰链四杆机构为双摇杆机构;2.Lmax+LminW其余两杆之和,要具体分析:(l)Lmin为机架为双曲柄机构⑵Lmin为连架杆为曲柄摇杆机构(Lmin为曲柄)(3)Lmin为连杆为双摇杆机构1.3、理论分析对图1的四连杆机构列出方程组。其中Ll、L2、L3、L4为四根杆,L4为机架。LIxcosfl1+L2xcos^2=L3xcos01+L4LIxsin]+L2xsin%=L3si顿JLEQ由此两个方程消去四,便可得到一个关于阮151的函数F(0@)222_(L3x+L4-LIXcosO^+(L3XslnO^-LIX-L2~然后用隐函数求出。3=哄1)另解出角速度:=wlxtw2=d(03)/d(t)2、Matlab的实现(一)数据分析给出了3组数据:L1=8;L2=25;L3=20;L4=20;L1=7;L2=9;L3=11;L4=4;c)Ll=7;L2=6.2;L3=10;L4=6;用格拉霍夫定理进行分析得到:a为曲柄摇杆机构;b为双曲柄机构;c双摇杆机构;(二)Matlab求解并进行动画模拟a)Ll=8;L2=25;L3=20;L4=20;(曲柄摇杆机构)=图像实时动画模拟(部分截屏)W2的图像说明:其中w2(1)为先符号求导再赋值计算,w2(2)为直接数值求导。(下同)b)L1=7;L2=9;L3=11;L4=4;(双曲柄机构)。3=湖)|图像实时动画模拟(部分截屏)W2的图像c)L1=7;L2=6.2;L3=10;L4=6;(双摇杆机构)%=图像实时动画模拟(部分截屏)W2的图像3、结果分析对巴的角速度w2的求值得两种方法中,分析图像知:符号求导再代入数值更容易出现大的偏差(w2的图像中的红线)。直接用数值求导得到的解更平稳。4、程序1、函数文件dd.mfunctionF=dd(y)globalLIL2L3L4px=p;F=((L3*cos(y)+L4-L1*cos(x))A2)+((L3*sin(y)-L1*sin(x))A2)-(L2A2);2、计算囚的文件y_figure.mglobalL1L2L3L4p%传递参数%L1=8;L2=25;L3=20;L4=20;%曲柄摇杆机构%L1=7;L2=9;L3=11;L4=4;%双曲柄机构L1=7;L2=6.2;L3=10;L4=6;%双摇杆机构%L1=9;L2=5;L3=10;L4=7;%双摇杆机构Ltotal=L1+L2+L3+L4;Lmax=max([L1L2L3L4]);[Lmin,I]=min([L1L2L3L4]);m=100;b=0;while(Lmax+Lmin)>=(Ltotal/2)str='双摇杆机构';b=1;breakendwhile(Lmax+Lmin)<(Ltotal/2)ifI==4str='双曲柄机构';elseifI==1||I==3str='曲柄摇杆机构';elseifI==2str='双摇杆机构';b=1;endendendbreakendswitchbcase0m=100;x=linspace(0,2*pi,m);%确定隐函数自变量的范围y0=0.7341;%第一个方程的初值case1a=0.58;m=80;x=linspace(a,(2*pi-a),m);y0=1.2465;endy=[];f=[];fork=1:mp=x(k);[y1,fval,exitflag,output]=fzero('dd',y0);y0=y1;y=[y,y1];f=[f,fval];endfigureplot(x(1:m),y(1:m),'r.-'),%绘制隐函数图形gridon3、计算w2的文件w_figure.mglobalL1L2L3L4w1w1=100;symsxxyy%xx为输入杆转角,yy为输出角转角F=L1*cos(xx)+L2*(1-((L3*sin(yy)-L1*sin(xx))/(L2))A2)A(1/2)-L3*cos(yy)-L4;w=(-1)*(diff(F,xx)/diff(F,yy))*w1;w21=subs(w,{xx,yy},{x,y});%用隐函数求导t=x/w1;w22=diff(y)./diff(t);%直接数值求导plot(w21,'r')holdonplot(w22,'k')4、实时动画文件siliangan.mpic=figure('name',str);set(pic,'color','white');axisequalgridonaxis([-10,30,-10,20]);axisonglobalL1L3L4xa=0;ya=0;%A点坐标xd=L4;yd=0;%D点坐标xb=L1*cos(x(1));yb=L1*sin(x(1));%B点坐标xc=L3*cos(y(1))+L4;yc=L3*sin(y(1));%C点坐标stick_1=line([xa;xb],[ya;yb],'color','red','linewidth',5,'linestyle','-');stick_2=line([xb;xc],[yb;yc],'color','g','linewidth',5,'linestyle','-');stick_3=line([xc;xd],[yc;yd],'color','b','linewidth',5,'linestyle','-');stick_0=line([xd;xa],[yd;ya],'color','y','linewidth',5,'linestyle','-');dot_a=line(xa,ya,'color','r','linestyle','.','markersize',30);dot_b=line(xb,yb,'color','black','linestyle','.','markersize',30);dot_c=line(xc,yc,'color','r','color',[0.10.70.3],'linestyle','.','markersize',30);dot_d=line(xd,yd,'color','r','linestyle','.','markersize',30);dt=2*pi/m;k=1;while1ifk>m;k=1;endxb=L1*cos(x(k))+xa;yb=L1*sin(x(k))+ya;xc=L3*cos(y(k))+L4;yc=L3*sin(y(k));set(stick_1,'xdata',[xa;xb],'ydata',[ya;yb]);set(stick_2,'xdata',[xc;xb],'ydata',[yc;yb]);set(stick_3,'xdata',[xd;xc],'ydata',[yd;yc]);set(dot_b,'xdata',xb,'ydata',yb);set(dot_c,'xdata',xc,'ydata',yc);set(gcf,'doublebuffer','on');drawnow;pausek=k+1;end
/
本文档为【matlab四连杆带代码】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索