matlab曲柄滑块机构的运动学仿真.docx
- 文档编号:1177192
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:10
- 大小:247.33KB
matlab曲柄滑块机构的运动学仿真.docx
《matlab曲柄滑块机构的运动学仿真.docx》由会员分享,可在线阅读,更多相关《matlab曲柄滑块机构的运动学仿真.docx(10页珍藏版)》请在冰点文库上搜索。
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界面的使用,巩固并加深了对课上知识的理解,受益良多。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 曲柄 机构 运动学 仿真