matlab曲柄滑块仿真程序代码
- 格式:docx
- 大小:38.35 KB
- 文档页数:6
一曲柄滑块机构运动学仿真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曲柄滑块机构运动仿真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)对它的结构参数进行设置,如下图所示。
************************计算机仿真技术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)绘制加速度接线图,如下图所示:运行结果如图所示:。
MATLAB动画演示效果一%曲柄滑块机构hf=figure('name','曲柄滑块机构');set(hf,'color','g');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;end文献出处:/blog/static/13485835420091124584320/MATLAB动画效果演示二MATLAB 2009-12-24 17:15:48 阅读135 评论0 字号:大中小订阅%理想弹簧阵子简谐运动%Clearrectangle('position',[12,8.5,2,0.3],'FaceColor',[0.5,0.3,0.4]);axis([0,15,-1,10]);%画顶板hold onplot([13,13],[7,8.5],'r','linewidth',2);%画直线y=2:.2:7;M=length(y);x=12+mod(1:M,2)*2;x(1)=13;x(end-3:end)=13;D=plot(x,y);%弹簧C=0:.1:2*pi;r=0.35;t1=r*sin(C);F1=fill(13+r*cos(C),2+t1,'r');% 球set(gca,'ytick',[0:2:9]);set(gca,'yticklabels',num2str([-1:3]'));plot([0,15],[3.3,3.3],'black');H1=plot([0,13],[3.3,3.3],'y');% 句柄[黄线]Q=plot(0,3.8,'color','r');% 运动曲线;td=[];yd=[];T=0;text(2,9,'理想中的弹簧振子简谐振动','fontsize',16);set(gcf,'doublebuffer','on');while T<12;pause(0.2);Dy=(3/2-1/2*sin(pi*T))*1/2;Y=-(y-2)*Dy+7;Yf=Y(end)+t1;td=[td,T];yd=[yd,Y(end)];set(D,'ydata',Y);set(F1,'ydata',Yf,'facecolor',rand(1,3));set(H1,'xdata',[T,13],'ydata',[Y(end),Y(end)]);set(Q,'xdata',td,'ydata',yd) ;T=T+0.1;end文献出处:/blog/static/1348583542009112451548632/%台球完全碰撞模拟示例axis([-1.6,12.6,-1.6,10.7])%确定坐标轴参数范围hold on %保持当前图形及轴系的所有特性fill([-2,13,13,-2],[-2,-2,11,11],[0,1,0]);%填充底座背景fill([-1,12,12,-1],[-1,-1,10,10],[0,0.5,0]);%填充底座背景ball1=line(0,5,'color','r','marker','.','erasemode','xor','markersize',60);%设置小球颜色,大小,线条的擦拭方式ball2=line(8,9,'color','g','marker','.','erasemode','xor','markersize',60);%设置小球颜色,大小,线条的擦拭方式ball3=line(-1,-1,'color','g','marker','.','erasemode','xor','markersize',80);%设置左下角圆的颜色,大小,线条的擦拭方式ball4=line(12,-1,'color','g','marker','.','erasemode','xor','markersize',80);%设置右下角圆的颜色,大小,线条的擦拭方式ball3=line(-1,10,'color','g','marker','.','erasemode','xor','markersize',80);%设置左上角圆的颜色,大小,线条的擦拭方式ball4=line(12,10,'color','g','marker','.','erasemode','xor','markersize',80);%设置右上角圆的颜色,大小,线条的擦拭方式title('完全非弹碰在模拟台球比赛的应用', 'color','r','fontsize',15);%图形标题pause(1)%设定暂停时间的长度t=0;dt=0.005;%设制初始数值while t<7.2%设定横轴范围t=t+dt;%设制横轴计算公式y=1/2*t+5;%设制纵轴计算公式set(ball1,'xdata',t,'ydata',y)%设制球的运动drawnow;%刷新屏幕end %结束while t<8.8%设定横轴范围t=t+dt;%设制横轴计算公式y=1/2*t+5;%设制纵轴计算公式set(ball2,'xdata',t,'ydata',y)%设制球的运动drawnow;%刷新屏幕end %结束while t<11.5%设定横轴范围t=t+dt;%设制横轴计算公式y=-1/2*t+14.3;%设制纵轴计算公式set(ball2,'xdata',t,'ydata',y)%设制球的运动drawnow;%刷新屏幕end%结束while t>-0.5%设制横轴范围t=t-dt;%设制横轴计算公式y=1/2*t+2.90;%设制纵轴计算公式set(ball2,'xdata',t,'ydata',y)%设制球的运动drawnow;%刷新屏幕end%结束while t<6%设制横轴范围t=t+dt;%设制横轴计算公式y=-1/2*t+2.40;%设制纵轴计算公式set(ball2,'xdata',t,'ydata',y)%设制球的运动drawnow;%刷新屏幕end%结束while t<11.5%设制横轴范围t=t+dt;%设制横轴计算公式y=1/2*t-3.0;%设制纵轴计算公式set(ball2,'xdata',t,'ydata',y)%设制球的运动drawnow;%刷新屏幕end%结束while t>-2%设制横轴范围t=t-dt;%设制横轴计算公式y=-t*7.65/12.9+9.57;%设制纵轴计算公式set(ball2,'xdata',t,'ydata',y)%设制球的运动drawnow;%刷新屏幕end%结束text(2,5,'好!进球了啊!!!恭喜!','fontsize',16,'color','r'); %显示字幕的颜色和大小文献出处:/blog/static/134858354200911245185379/MATLAB动画效果演示四MATLAB 2009-12-24 17:22:18 阅读50 评论2 字号:大中小订阅%能量守恒验证示例fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充hold on; %保持当前图形及轴系的所有特性fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充hold on;% 保持当前图形及轴系的所有特性t1=0:pi/60:pi;plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形grid;%添加网格线axis([0,9,0,9]);%定义坐标轴的比例%axis('off');%关闭所有轴标注,标记,背景fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充hold on;% 保持当前图形及轴系的所有特性title('31608118');%定义图题x0=6;y0=5;head1=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',30);head2=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',50); %设置小球颜色,大小,线条的擦拭方式t=0;%设置小球的初始值dt=0.001;%设置运动周期t1=0;%设置大球的初始值dt1=0.001;while 1%条件表达式t=t+dt;x1=9-1*t;y1=5;x3=6;y3=5;if t>0x2=6;y2=5;%设置小球的运动轨迹endif t>2.8t=t+dt;a=sin(t-3);x1=6.1;y1=5.1;x3=4-2*sin(1.5*a);y3=5-2*cos(1.5*a);%设置大球的运动轨迹endset(head1,'xdata',x1,'ydata',y1);%设置球的运动set(head2,'xdata',x3,'ydata',y3);drawnow;end文献出处:/blog/static/1348583542009112452218157/。
基于MATLAB 的曲柄滑块机构运动的仿真摘要:本文在曲柄滑块机构运动简图的基础上,对其数学运动模型进行分析,用解析法计算曲柄的转角和角速度,及滑块的位移和速度,并用MATLAB软件进行仿真。
1引言在机械传动系统中,曲柄滑块机构是一种常用的机械机构,它将曲柄的转动转化为滑块在直线上的往复运动,是压气机、冲床、活塞式水泵等机械的主机构。
这里用解析法,并用MATLAB对其进行仿真。
2曲柄滑块机构的解析法求解曲柄滑块机构的运动简图如图1所示,在图1中,L i、L2和e分别为曲柄滑块的曲柄、连杆和偏差,‘、2分别为曲柄和连杆的转角,「:、「:分别为曲柄和连杆的角速度,S为滑块的位移。
(1)块的位移S 和速度S2.1位移分析按图1中四边形ABCD 的矢量方向有:AB =CD将上式转化成幅值乘以角度的形式,得到如下等式:L :e 闻十=S + ie分别取上式的虚部和实部,并在 e 前面乘N , N 取值1或—1,用以表示滑 块在x 轴的上方或者下方,得到下面两式:,以及滑L cos 1 L 2cos 2 = S (2) L sin 1 L 2sin 2 = Nb(3)整理上面两个公式得到S 和:2的计算公式:S 二 L i cos 1 L 2 cos 22.2速度分析将(1)式两边对时间求导得(6)式L i -'i ie i 1- L 2 \ ie i 2= S(6)取(6)式的实部和虚部,整理得 S 和:2的计算公式:■L 1 ;*1cos12 ■L 2 COS ®2根据(7)式和(8)式即可得到滑块的速度及连杆的角速度。
2.3实例分析及其MATLAB 仿真 2.3.1实例分析下面对图2所示的曲柄滑块机构做具体分析。
图2曲柄滑块机构简图*二 arcs inNe - L 1 sin 打L2(5)S 「:L i sin (—2)cos :2yx例中:几=36mm,r2=140mm,^60d /sec,求'2,2,S 和S。
《系统仿真与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个):作为背景。
《计算机仿真技术》课程设计报告姓名:叶 / 浦合昀学号: 4/ 7专业班级:机械卓越141 指导教师:孝保2015年 6月目录1.仿真问题描述.........................................................................2.仿真问题数学模型.....................................................................3.Matlab实现方法 ......................................................................4.Matlab代码 ..........................................................................5.仿真结论.............................................................................6.遇到的问题和解决的方式...............................................................7.课程学习意见与建议...................................................................1.仿真问题描述已知机架AD 长为L1,曲柄AB 长为L2,连杆BC 长L3,另一机架长CD 长为L4,与AB 杆相连的是一滑块E 。
BE 杆长为L5,设计一个四杆加滑块的机构,其中L1-L5杆长可变。
并且可以通过输入的杆长,来判别,该机构到底可不可行。
L3L4 L2 L5L12.仿真问题数学模型(1)四杆机构的设计:在用矢量法建立机构的位置方程时,需将构件用矢量来表示,并作出机构的封闭矢量多边形。
子函数%子函数slider_crank文件function[theta2,s3,omega2,v3,alpha2,a3]=slider_crank(theta1,omega 1,alpha1,l1,l2,e)%计算连杆2的角位移和滑块3的线位移theta2=asin((e-l1*sin(theta1))/l2);s3=l1*cos(theta1)+l2*cos(theta2);%计算连杆2的角为速度和滑块的线速度A=[-l1*sin(theta1),1;-2*cos(theta2),0];B=[-l1*sin(theta1);l1*cos(theta1)];omega=A\(omega1*B);omega2=omega(1);v3=omega(2);%计算连杆2的角加速度和滑块3的线加速度At=[omega2*l2*cos(theta2),0;omega2*l2*sin(theta2),0];Bt=[-omega1*l1*cos(theta1);-omega1*l1*sin(theta1)];alpha=A\(-At*omega+alpha1*B+omega1*Bt);alpha2=alpha(1);a3=alpha(2);主函数%住程序slider_crank_main文件%输入已经知道的数据clear;l1=100;l2=300;e=0;hd=pi/180;du=180/pi;omega1=10;alpha1=0;%调用子函数slider_ank计算曲柄滑块机构位移,速度,加速度for n1=1:720theta1(n1)=(n1-1)*hd;[theta2(n1),s3(n1),omega2(n1),v3(n1),alpha2(n1),a3(n1)]=slider_cr ank...(theta1(n1),omega1,alpha1,l1,l2,e);end%位移,速度,加速度和曲柄滑块机构图形输出figure(l1);n1=1:720;subplot(2,2,1); %绘制位移图[AX,H1,H2]=plotyy(theta1*du,theta2*du,theta1*du,s3);set(get(AX(1),'ylabel'),'String','连杆角位移/\circ')set(get(AX(2),'ylabel'),'String','滑块位移/mm')title('位移线图');xlabel('曲柄转角\theta_1/\circ')grid on;subplot(2,2,2); %绘制速度图[AX,H1,H2]=plotyy(theta1*du,omega2,theta1*du,v3);set(get(AX(2),'ylabel'),'String','滑块速度/mm\cdots^{-1}') title('速度线图');xlabel('曲柄转角\theta_1/\circ')ylabel('连杆角速度/rad\cdots^{-1}')grid on;subplot(2,2,3); %绘制加速度图[AX,H1,H2]=plotyy(theta1*du,alpha2,theta1*du,a3);set(get(AX(2),'ylabel'),'String','滑块加速度/mm\cdots^{-2}') title('加速度线图');xlabel('曲柄转角\theta_1/\circ')ylabel('连杆加速度/rad\cdots^{-2}')grid on;subplot(2,2,4);%绘曲柄滑块机构图x(1)=0;y(1)=0;x(2)=l1*cos(70*hd);y(2)=l1*sin(70*hd);x(3)=s3(70);y(3)=e;x(4)=s3(70);y(4)=0;x(5)=0;y(5)=0;x(6)=x(3)-40;y(6)=y(3)+10;x(7)=x(3)+40;y(7)=y(3)+10;x(8)=x(3)+40;y(8)=y(3)-10;x(9)=x(3)-40;y(9)=y(3)-10;x(10)=x(3)-40;y(10)=y(3)+10;i=1:5;plot(x(i),y(i));grid on;hold on;i=6:10;plot(x(i),y(i));title('曲柄滑块机构');grid on;hold on;xlabel('mm');ylabel('mm')axis([-50 400 -20 130]); plot(x(1),y(1),'o');plot(x(2),y(2),'o');plot(x(3),y(3),'o');%曲柄滑块的仿真运动figure(2)m=moviein(20);j=0;for n1=1:5:360j=j+1;clf;%x(1)=0;y(1)=0;x(2)=l1*cos(n1*hd); y(2)=l1*sin(n1*hd); x(3)=s3(n1);y(3)=e;x(4)=(l1+l2+50);y(4)=0;x(5)=0;y(5)=0;x(6)=x(3)-40;y(6)=y(3)+10;x(7)=x(3)+40;y(7)=y(3)+10;x(8)=x(3)+40;y(8)=y(3)-10;x(9)=x(3)-40;y(9)=y(3)-10;x(10)=x(3)-40;y(10)=y(3)+10;%i=1:3;plot(x(i),y(i));grid on;hold on;i=4:5;plot(x(i),y(i));i=6:10;plot(x(i),y(i));plot(x(1),y(1),'o');plot(x(2),y(2),'o');plot(x(3),y(3),'o');xlabel('mm');ylabel('mm')axis([-50 450 -150 150]); m(j)=getframe;endmovie(m)。
成绩 ________实验日期________________ 教师签字________________ 同组者________________ 审批日期________________ 班级________________ 姓名________________实验名称:曲柄滑块机构运动的Simulink仿真一、实验目的1.运用解析法建立曲柄滑块机构的运动学模型,增强运动学问题解析分析能力;2.掌握MA TLAB软件中Simulink模块的使用方法,以及机构运动学仿真的建模流程;3.通过仿真结果分析曲柄滑块机构的速度和加速度随时间的变化关系;二、实验原理简述(运动学建模)图1 曲柄滑块机构模式图图2 曲柄滑块机构向量模型曲柄滑块机构的模式图和向量模型图如图1, 2所示.显然, 机构的矢量方程为:r = r1 + r2 , 在x, y轴上的投影式如下:⎩⎨⎧=+=+sinsincoscos22112211θθθθrrrrr上式两边对时间t求导, 得到速度间的关系:⎪⎩⎪⎨⎧=+=--•••••coscossinsin222111222111θθθθθθθθrrrrr该系统为单自由度(θ1)系统, 选取θ1为独立变量, 机构的输入运动量为θ1, 1•θ,输出变量为θ2, 2•θ, r, •r. 以矩阵的形式描述如下:⎝⎛2222cos sin θθr r ⎪⎪⎭⎫01•••⎪⎪⎭⎫ ⎝⎛--=⎪⎪⎪⎭⎫⎝⎛111112cos sin θθθθr r r进一步整理可得:⎝⎛=⎪⎪⎪⎭⎫⎝⎛••22222cos sin θθθr r r •-⎪⎪⎭⎫ ⎝⎛--⎪⎪⎭⎫111111cos sin 01θθθr r 对速度关系进一步关于时间t 求导, 得到加速度之间关系:⎪⎩⎪⎨⎧=+-++-=+-+-••••••••••••••0)cos sin ()cos sin ()sin cos ()sin cos (222222111211222222111211θθθθθθθθθθθθθθθθr r rr r 机构的输入运动参数为θ1, ,1•θ 1••θ,输出变量为θ2, 2•θ, 2••θ , r , •r , ••r ,以矩阵形式表达:⎝⎛=⎪⎪⎪⎭⎫⎝⎛••••22222cos sin θθθr r r ⎪⎪⎪⎭⎫ ⎝⎛-+---⎪⎪⎭⎫••••••••-11122221211111222212111cos sin sin sin cos cos 01θθθθθθθθθθθθr r r r r r 因此可以根据两个矩阵方程的输入变量和输出变量在Simulink 中设计逻辑框图, 并在MATLAB 命令窗口中编写方程的源代码, 最终可在虚拟示波器中导出加速度、速度和位移的时间历程曲线.三、加速度求解过程1.Simulink 建模框图图3 匀角加速度(α = 10 rad/s2)下求解加速度和速度以及位移的时间历程曲线的Simulink建模框图2.匀角加速度(α = 10 rad/s2)下求解时间历程曲线的源代码function y = fcn(u)%u(1)=alpha1;u(2)=omega1;u(3)=theta1;u(4)=omega2;u(5)=theta2;%y(1)=alpha2;y(2)=a;y = [0;0];r1 = 15; r2 = 55;A = [r2*sin(u(5)) 1;r2*cos(u(5)) 0];B = [-r1*(u(2)^2)*cos(u(3))-r2*(u(4)^2)*cos(u(5))-r1*u(1)*sin(u(3)); r1*(u(2)^2)*sin(u(3))+r2*(u(4)^2)*sin(u(5))-r1*u(1)*cos(u(3))];y = inv(A)*B;3.运行结果初始条件设置:匀角加速度(α = 10 rad/s2)、仿真时间为5 s下的加速度、速度和位移的时间历程曲线图4 匀角加速度下滑块的加速度时间历程曲线图5 匀角加速度下滑块的速度时间历程曲线图6 匀角加速度下滑块的位移时间历程曲线在匀角加速度(α = 10 rad/s2)条件下, 曲柄滑块的加速度、速度和位移随着时间的增加,并且三个物理量的变化周期越来越小, 此外加速度和速度的振幅也随时间的增加而增大,位移振幅不随时间的增加而增大的,始终保持不变.四、实验结果分析与讨论1.结果分析在初始条件下,曲柄静止不动,滑块没有受到外力作用,因此滑块的加速度为 0,这符合理论预期。
************************计算机仿真技术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)绘制加速度接线图,如下图所示:运行结果如图所示:。
代码实例[anim_zzy1.m]function f=anim_zzy1(K,ki)% anim_zzy1.m 演示红色小球沿一条封闭螺线运动的实时动画% 仅演示实时动画的调用格式为anim_zzy1(K) % 既演示实时动画又拍摄照片的调用格式为f=anim_zzy1(K,ki)% K 红球运动的循环数(不小于1 )% ki指定拍摄照片的瞬间,取1 到1034 间的任意整数。
% f 存储拍摄的照片数据,可用image(f.cdata) 观察照片。
% 产生封闭的运动轨线t1=(0:1000)/1000*10*pi;x1=cos(t1);y1=sin(t1);z1=-t1;t2=(0:10)/10;x2=x1(end)*(1-t2);y2=y1(end)*(1-t2);z2=z1(end)*ones(size(x2));t3=t2;z3=(1-t3)*z1(end);x3=zeros(size(z3));y3=x3;t4=t2;x4=t4;y4=zeros(size(x4));z4=y4;x=[x1 x2 x3 x4];y=[y1 y2 y3 y4];z=[z1 z2 z3 z4];plot3(x,y,z, 'b' ), axis off % 绘制曲线% 定义" 线" 色、" 点" 型(点)、点的大小(40 )、擦除方式(xor) h=line( 'Color' ,[1 0 0], 'Marker' , '.' , 'MarkerSize' ,40, 'EraseMode' , 'xor' );% 使小球运动n=length(x);i=1;j=1;while 1 % 无穷循环set(h, 'xdata' ,x(i), 'ydata' ,y(i), 'zdata' ,z(i)); % 小球位置drawnow; % 刷新屏幕<21>pause(0.0005) % 控制球速<22>i=i+1;ifnargin==2 &nargout==1 % 仅当输入宗量为2 、输出宗量为1 时,才拍摄照片if (i==ki&j==1);f=getframe(gcf); end % 拍摄i=ki时的照片<25>endif i>ni=1;j=j+1;if j>K; break ; endendend(2)在指令窗中运行以下指令,就可看到实时动画图形。
基于MATLAB的曲柄滑块机构动力分析张敬东;郑彬;陈俊男;李冶金【摘要】以某曲柄滑块机构为研究对象,当曲柄滑块机构在运行过程中,其运动质量所产生的往复、旋转惯性力和反转矩等,都会随着曲柄滑块机构的曲轴转角的变化而产生相应的变化.本文基于MATLAB软件平台,首先对曲柄滑块机构进行受力分析,并建立曲柄滑块机构的数学模型,在MATLAB中设置曲柄滑块机构各项参数进行动力学仿真,分析各杆件的运动状态,为曲柄滑块机构的运动分析提供一种新思路.【期刊名称】《攀枝花学院学报》【年(卷),期】2019(036)005【总页数】5页(P48-52)【关键词】曲柄滑块机构;MATLAB;数学模型;动力学仿真【作者】张敬东;郑彬;陈俊男;李冶金【作者单位】攀枝花学院交通与汽车工程学院,四川攀枝花617000;攀枝花学院交通与汽车工程学院,四川攀枝花617000;攀枝花学院交通与汽车工程学院,四川攀枝花617000;攀枝花学院交通与汽车工程学院,四川攀枝花617000【正文语种】中文【中图分类】TH1120 引言曲柄滑块机构在发动机运动过程中,既是传力件,又是运动件,所以它的工作可靠性是发动机工作可靠性的基础。
在以往的设计过程中,常常需要进行大量的数值计算以达到设计的需要,另一方面,也为了满足产品的使用性能,必须进行刚度、强度、可靠性及稳定性等方面的设计校核计算,为了满足校核计算,要对曲柄滑块机构进行动力学分析。
文献[1]以MATLAB为平台对曲柄连杆机构进行动力分析;文献[2]采用MATLAB对某凸轮机构进行可靠性设计;文献[3,4]为降低多缸发动机曲柄连杆机构的振动,根据多刚体动力学理论,建立了参数化的曲柄连杆机构动态仿真模型。
本文基于MATLAB软件,对曲柄滑块机构进行运动学和动力学分析,以便于直观清楚地了解曲柄滑块机构在运动过程中的受力变化,从而进行精确的计算,并绘制受力分析曲线图,对曲柄滑块机构的设计提供一种新思路。
Matlab曲柄滑块仿真程序代码
随着科学技术的不断发展,计算机仿真在工程设计和研究中扮演着越
来越重要的角色。
Matlab作为一种强大的科学计算软件,被广泛应用于工程仿真领域。
曲柄滑块机构是机械工程中常见的一种机构,其运
动特性对于设计和分析而言至关重要。
编写Matlab曲柄滑块仿真程
序代码,对于工程师和研究人员来说具有重要意义。
本文将对Matlab曲柄滑块仿真程序代码进行详细介绍,包括代码设
计思路和程序实现细节等方面。
一、代码设计思路
1. 确定曲柄滑块机构的运动方程
曲柄滑块机构是由连杆、曲柄和滑块组成的一种机械结构,其运动特
性可以通过连杆的运动方程来描述。
通过建立曲柄滑块机构的运动模型,可以确定滑块的位移、速度和加速度等运动特性。
2. 构建Matlab仿真模型
基于曲柄滑块机构的运动方程,可以使用Matlab软件进行仿真模拟。
在Matlab中,可以通过编写相应的程序代码,构建曲柄滑块机构的
仿真模型,并对其运动特性进行分析和可视化展示。
二、程序实现细节
以下是一个简单的Matlab曲柄滑块仿真程序代码示例,代码中包括了曲柄滑块机构的运动方程和仿真模型的构建过程。
```matlab
曲柄滑块仿真程序代码示例
定义曲柄滑块机构的参数
L = 1; 连杆长度
r = 0.2; 曲柄半径
theta = linspace(0,2*pi,100); 曲柄角度范围
omega = 2; 曲柄角速度
计算滑块的运动轨迹
for i = 1:length(theta)
x(i) = r*cos(theta(i)) + sqrt(L^2 - r^2*sin(theta(i))^2);
y(i) = r*sin(theta(i)) - sqrt(L^2 - r^2*sin(theta(i))^2);
end
绘制曲柄滑块机构的运动轨迹
figure
plot(x,y)
xlabel('x')
ylabel('y')
title('曲柄滑块机构的运动轨迹')
计算滑块的速度和加速度
vx = diff(x);
vy = diff(y);
v = sqrt(vx.^2 + vy.^2);
a = diff(v);
绘制滑块的速度和加速度曲线
figure
subplot(2,1,1)
plot(v)
xlabel('时间')
ylabel('速度')
title('滑块的速度')
subplot(2,1,2)
plot(a)
xlabel('时间')
ylabel('加速度')
title('滑块的加速度')
```
以上代码示例中,首先定义了曲柄滑块机构的参数,包括连杆长度、
曲柄半径、曲柄角度范围和曲柄角速度等。
然后利用这些参数计算了滑块的运动轨迹,并对其速度和加速度进行了分析和可视化展示。
三、总结
通过编写Matlab曲柄滑块仿真程序代码,可以方便地对曲柄滑块机构的运动特性进行分析和可视化展示。
工程师和研究人员可以根据实际需求,对仿真模型进行进一步的调整和优化,从而更加准确地评估曲柄滑块机构的运动性能。
在工程设计和研究中,Matlab曲柄滑块仿真程序代码的应用将极大地提高工作效率,为工程实践和科学研究提供有力支持。
希望本文对于读者能够有所帮助,谢谢阅读!尊敬的读者,接下来我们将继续讨论Matlab曲柄滑块仿真程序代码的更多细节和应用场景。
四、代码实现细节解析
1. 定义曲柄滑块机构的参数
在代码示例中,我们首先定义了曲柄滑块机构的参数,包括连杆长度(L)、曲柄半径(r)、曲柄角度范围(theta)和曲柄角速度(omega)。
这些参数是描述曲柄滑块机构运动特性的关键因素,通过调整这些参数的数值,可以模拟不同工况下的曲柄滑块运动状态。
2. 计算滑块的运动轨迹
根据曲柄滑块机构的几何关系,我们利用给定的参数计算了滑块的运
动轨迹。
通过迭代计算曲柄角度范围内每个点的坐标,得到了滑块在空间中的运动轨迹。
这一步是对机构运动特性进行定量分析的基础。
3. 可视化展示
在这一部分,我们利用Matlab绘图功能将滑块的运动轨迹进行了可视化展示。
通过绘制滑块的轨迹图,可以直观地了解曲柄滑块机构的运动状态,有助于工程师和研究人员对机构性能进行初步评估。
4. 计算滑块的速度和加速度
在代码示例的后续部分,我们计算并分析了滑块的速度和加速度。
这是对机构运动特性的定性分析,有助于进一步了解滑块在运动过程中的动力学特性。
对速度和加速度的分析可以提供对曲柄滑块机构性能更全面的认识。
五、Matlab曲柄滑块仿真程序代码的应用场景
1. 工程设计优化
曲柄滑块机构在机械传动中有着重要的应用,例如发动机的活塞与连杆机构就是典型的曲柄滑块机构。
而Matlab曲柄滑块仿真程序代码可以帮助工程师对这类机构的设计进行优化。
通过调整参数、改进结构,工程师可以更好地评估各种设计方案,从而提高机械装置的效率和稳定性。
2. 教学与科研
对于机械工程领域的教学和科研工作来说,Matlab曲柄滑块仿真程序代码也具有重要意义。
教师可以利用这一工具,生动形象地展示曲柄
滑块机构的运动原理和特性,有助于学生更好地理解和掌握相关知识。
在科研领域,研究人员可以利用仿真程序代码对新型曲柄滑块机构进
行模拟分析,为创新设计和技术突破提供有力支持。
3. 自动化控制系统
曲柄滑块机构的运动特性对于自动化控制系统的设计至关重要。
通过Matlab仿真程序代码的使用,工程师可以对控制系统中的曲柄滑块机构进行动态模拟,评估控制策略的有效性和稳定性。
这对于提高自动
化控制系统的性能和可靠性具有重要意义。
六、结语
本文介绍了Matlab曲柄滑块仿真程序代码的设计思路、实现细节和
应用场景。
通过编写代码实现曲柄滑块机构的仿真分析,可以帮助工
程师和研究人员更好地理解和利用这一重要的机械结构。
本文也展示
了Matlab在工程仿真领域的强大功能和广泛应用前景。
希望本文能够为广大工程师、研究人员和学生提供有益的参考和启发,激发大家对Matlab曲柄滑块仿真程序代码的学习和应用兴趣。
感谢
您的阅读!如果您对Matlab曲柄滑块仿真程序代码有任何疑问或建议,欢迎留言讨论。
祝您工作顺利,学习进步!。