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

上传人:b****6 文档编号:6971658 上传时间:2023-01-13 格式:DOCX 页数:10 大小:259.33KB
下载 相关 举报
matlab曲柄滑块机构的运动学仿真.docx_第1页
第1页 / 共10页
matlab曲柄滑块机构的运动学仿真.docx_第2页
第2页 / 共10页
matlab曲柄滑块机构的运动学仿真.docx_第3页
第3页 / 共10页
matlab曲柄滑块机构的运动学仿真.docx_第4页
第4页 / 共10页
matlab曲柄滑块机构的运动学仿真.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

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

《matlab曲柄滑块机构的运动学仿真.docx》由会员分享,可在线阅读,更多相关《matlab曲柄滑块机构的运动学仿真.docx(10页珍藏版)》请在冰豆网上搜索。

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

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

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

《系统仿真与matlab》综合试题

 

题目:

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

编号:

21

难度系数:

 

姓名

班级

学号

联系方式

成绩

 

一、引言

曲柄滑块机构是指用曲柄和滑块来实现转动和移动相互转换的平面连杆机构,也称曲柄连杆机构。

曲柄滑块机构广泛应用于往复活塞式发动机、压缩机、冲床等的主机构中,把往复移动转换为不整周或整周的回转运动;压缩机、冲床以曲柄为主动件,把整周转动转换为往复移动。

这里使用运动学知识,对其运动进行解析,并用MATLAB为其设计仿真模块。

二、运动学分析

1、实例题目

对图示单缸四冲程发动机中常见的曲柄滑块机构进行运动学仿真。

已知连杆长度:

,连杆的转速:

,设曲柄r2以匀速旋转,

初始条件:

仿真以

为输入,计算

,仿真时间0.5s。

2、运动分析

建立封闭矢量方程:

 

r2+r3=r1   (9)

 

将(9)式分解到x与y轴坐标上,得到:

 

r2cosθ2+r3cosθ3=r1

r2sinθ2+r3sinθ3=0                  (10) 

可得:

 

r1=r2cosθ2+r3cosθ3

θ3=-arcsin(r2/r3)                 (11) 

对(10)式对时间求导得:

 

    -r2ω2sinθ2+r3ω3sinθ3=v1

r2ω2cosθ2+r3ω3cosθ3=0(12) 

将上式用矩阵形式表示,令:

 

A=[r3sinθ31

-r3cosθ30]

X=[ω3

v1]

B=[-r2ω2sinθ2

r2ω2cosθ2]

则(12)可表示为:

AX=B。

(13)

从而可解出ω3与v1。

三、MATLAB程序编写

源代码如下:

functionvarargout=z1(varargin)

%Z1MATLABcodeforz1.fig

%Z1,byitself,createsanewZ1orraisestheexisting

%singleton*.

%

%H=Z1returnsthehandletoanewZ1orthehandleto

%theexistingsingleton*.

%

%Z1('CALLBACK',hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinZ1.Mwiththegiveninputarguments.

%

%Z1('Property','Value',...)createsanewZ1orraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforez1_OpeningFcngetscalled.An

%unrecognizedpropertynameorinvalidvaluemakespropertyapplication

%stop.Allinputsarepassedtoz1_OpeningFcnviavarargin.

%

%*SeeGUIOptionsonGUIDE'sToolsmenu.Choose"GUIallowsonlyone

%instancetorun(singleton)".

%

%Seealso:

GUIDE,GUIDATA,GUIHANDLES

%Edittheabovetexttomodifytheresponsetohelpz1

%LastModifiedbyGUIDEv2.529-Dec-201622:

57:

13

%Begininitializationcode-DONOTEDIT

gui_Singleton=1;

gui_State=struct('gui_Name',mfilename,...

'gui_Singleton',gui_Singleton,...

'gui_OpeningFcn',@z1_OpeningFcn,...

'gui_OutputFcn',@z1_OutputFcn,...

'gui_LayoutFcn',[],...

'gui_Callback',[]);

ifnargin&&ischar(varargin{1})

gui_State.gui_Callback=str2func(varargin{1});

end

ifnargout

[varargout{1:

nargout}]=gui_mainfcn(gui_State,varargin{:

});

else

gui_mainfcn(gui_State,varargin{:

});

end

%Endinitializationcode-DONOTEDIT

 

%---Executesjustbeforez1ismadevisible.

functionz1_OpeningFcn(hObject,eventdata,handles,varargin)

%Thisfunctionhasnooutputargs,seeOutputFcn.

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%varargincommandlineargumentstoz1(seeVARARGIN)

%Choosedefaultcommandlineoutputforz1

handles.output=hObject;

%Updatehandlesstructure

guidata(hObject,handles);

axes(handles.axes3)

map1=imread('1.bmp');

imshow(map1)

%UIWAITmakesz1waitforuserresponse(seeUIRESUME)

%uiwait(handles.figure1);

 

%---Outputsfromthisfunctionarereturnedtothecommandline.

functionvarargout=z1_OutputFcn(hObject,eventdata,handles)

%varargoutcellarrayforreturningoutputargs(seeVARARGOUT);

%hObjecthandletofigure

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%Getdefaultcommandlineoutputfromhandlesstructure

varargout{1}=handles.output;

 

%---ExecutesonbuttonpressinpushbuttonRun.

functionpushbuttonRun_Callback(hObject,eventdata,handles)

%主要计算程序

r2=0.1;%单位m

r3=0.4;%单位m

omiga2=str2double(get(handles.edit1,'String'));;%单位rad/s

x11=1:

500%单位ms

fori=1:

500

theta2(i)=i*omiga2/1000;

theta3(i)=asin(-r2/r3*sin(theta2(i)));

B=[-r2*omiga2*sin(theta2(i));r2*omiga2*cos(theta2(i))];

A=[r3*sin(theta3(i))1;-r3*cos(theta3(i))0];

X=inv(A)*B;

omiga3(i)=X(1,1);

v3(i)=X(2,1);

end

axes(handles.axes1)%制表1

plot(x11/1000,omiga3);

xlabel('时间(t/s)')

ylabel('连杆角速度ω3(rad/s)')

axes(handles.axes2)%制表2

plot(x11/1000,v3);

xlabel('时间(t/s)')

ylabel('滑块速度v1(m/s)')

%hObjecthandletopushbuttonRun(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

 

functionedit1_Callback(hObject,eventdata,handles)

%hObjecthandletoedit1(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%Hints:

get(hObject,'String')returnscontentsofedit1astext

%str2double(get(hObject,'String'))returnscontentsofedit1asadouble

 

%---Executesduringobjectcreation,aftersettingallproperties.

functionedit1_CreateFcn(hObject,eventdata,handles)

%hObjecthandletoedit1(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesempty-handlesnotcreateduntilafterallCreateFcnscalled

%Hint:

editcontrolsusuallyhaveawhitebackgroundonWindows.

%SeeISPCandCOMPUTER.

ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))

set(hObject,'BackgroundColor','white');

end

 

%---ExecutesonbuttonpressinpushbuttonExit.

functionpushbuttonExit_Callback(hObject,eventdata,handles)

ss=questdlg('确认退出?

','退出信息窗口!

','继续仿真!

','退出仿真!

','退出仿真!

');

switchss

case'退出仿真!

'

delete(handles.figure1);

end

%hObjecthandletopushbuttonExit(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

 

四、使用指南和实例仿真

进入MATLAB软件,打开并运行程序。

初始界面:

对ω2的值进行修改,修改为实例中的50*2*pi=314.16,点击开始仿真按钮,得到仿真结果:

点击退出仿真按钮,进入退出界面:

点击继续仿真按钮,则回到程序界面;点击退出仿真按钮,则退出程序。

五、结语

由四,通过MATLAB仿真得到的结果与实际情况符合。

通过该次作业,我了解并初步掌握了MATLAB的语言编写和guide界面的使用,巩固并加深了对课上知识的理解,受益良多。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1