MATLAB的曲柄滑块和四杆机构的综合设计..docx

MATLAB的曲柄滑块和四杆机构的综合设计..docx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB的曲柄滑块和四杆机构的综合设计.

《计算机仿真技术》课程设计报告姓 名: 冯叶 / 浦合昀 学 号: 201410302544/ 201410302547专业班级: 机械卓越141 指导教师: 刘孝保 2015年 6月目 录1.仿真问题描述2.仿真问题数学模型3.Matlab实现方法4.Matlab代码5.仿真结论6.遇到的问题和解决的方式7.课程学习意见与建议1.仿真问题描述C已知机架AD长为L1,曲柄AB长为L2,连杆BC长L3,另一机架长CD长为L4,与AB杆相连的是一滑块E。BE杆长为L5,设计一个四杆加滑块的机构,其中L1-L5杆长可变。并且可以通过输入的杆长,来判别,该机构到底可不可行。B L3 L4 L2 L5A L1DE2.仿真问题数学模型(1)四杆机构的设计:在用矢量法建立机构的位置方程时,需将构件用矢量来表示,并作出机构的封闭矢量多边形。如图1所示,先建立一直角坐标系。设各构件的长度分别为、、、,其方位角为、、、 。以各杆矢量组成一个封闭矢量多边形,即ABCDA。其个矢量之和必等于零。易知:角位移方程的分量形式为: 要求th3,那么 在角位移方程分量形式中,由于假定机架为参考系,矢量1与x轴重合,=0,则有非线性超越方程组: 可以借助牛顿-辛普森数值解法或Matlab自带的fsolve函数求出连杆3的角位移和摇杆4的角位移。求解具有n个未知量(i=1,2,…,n)的线性方程组: 式中,系列矩阵是一个阶方阵: 的逆矩阵为;常数项b是一个n维矢量: 因此,线性方程组解的矢量为: 非线性超越方程组是求解连杆3和摇杆4角速度和角加速度的依据。(2)曲柄滑块的设计: 由图可知,C滑块的位移总是与AB,BC和他们之间的角度存在着一定的关系,关系如下:LAC= 通过以上这个式子,我们就可以来求C点的位移,速度,加速度。3.Matlab实现方法(1)怎么设计四杆机构:创建函数FoutBarPosition,函数fsolve通过他确定,然后知道后,来求取各个点的坐标,通过plot命令在指定的区域内连线,取点,画图。(2)怎么设计曲柄滑块机构:通过解方程的方法,用solve来求取C滑块的坐标,用diff函数求取C滑块的速度,加速度曲线,通过plot命令在指定的区域内连线,取点,画图。4.Matlab代码(1)建新的函数在点m文件中:function t=fourbarposition(th,th2,L2,L3,L4,L1)t=[L2*cos(th2)+L3*cos(th(1))-L4*cos(th(2))-L1;…L2*sin(th2)+L3*sin(th(1))-L4*sin(th(2))]; (2)主程序如下:%获取杆长l1=str2double(get(handles.edit1,string));l2=str2double(get(handles.edit2,string));l3=str2double(get(handles.edit3,string));l4=str2double(get(handles.edit4,string));l5=str2double(get(handles.edit8,string));%滑块和四杆机构的设计syms t s; %定义变量f=l5^2-l2^2-s^2+2*l2*s*cos(t);ff=solve(f,s);vv=diff(ff,1);aa=diff(ff,2);th2=0:pi/15:6*pi;times=length(th2);for i=1:91wyy(1,i)=eval(subs(ff(1),t,th2(i)));wyy(2,i)=eval(subs(ff(2),t,th2(i)));vyy(1,i)=eval(subs(vv(1),t,th2(i)));vyy(2,i)=eval(subs(vv(2),t,th2(i)));ayy(1,i)=eval(subs(aa(1),t,th2(i)));ayy(2,i)=eval(subs(aa(2),t,th2(i)));endfor i=1:times if wyy(1,i)0 wy(i)=wyy(1,i); else wy(i)=wyy(2,i); end if vyy(1,i)0 vy(i)=vyy(1,i); else vy(i)=vyy(2,i); end if ayy(1,i)0 ay(i)=ayy(1,i); else ay(i)=ayy(2,i); endend th34=zeros(length(th2),2); %%建立一个N行2列的零矩阵options=optimset(display,off);for m=1:length(th2) %用fsove函数求解

文档评论(0)

kaiss + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档