MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx

上传人:b****2 文档编号:15060228 上传时间:2022-10-27 格式:DOCX 页数:11 大小:179.27KB
下载 相关 举报
MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx_第1页
第1页 / 共11页
MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx_第2页
第2页 / 共11页
MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx_第3页
第3页 / 共11页
MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx_第4页
第4页 / 共11页
MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx

《MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx》由会员分享,可在线阅读,更多相关《MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

MATLAB的曲柄滑块和四杆机构的综合设计说明Word格式.docx

BE杆长为L5,设计一个四杆加滑块的机构,其中L1-L5杆长可变。

并且可以通过输入的杆长,来判别,该机构到底可不可行。

L3

L4

L2L5

L1

2.仿真问题数学模型

(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文件中:

functiont=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,'

l3=str2double(get(handles.edit3,'

l4=str2double(get(handles.edit4,'

l5=str2double(get(handles.edit8,'

%滑块和四杆机构的设计

symsts;

%定义变量

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);

fori=1:

91

wyy(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)));

end

times

ifwyy(1,i)>

wy(i)=wyy(1,i);

else

wy(i)=wyy(2,i);

end

ifvyy(1,i)>

vy(i)=vyy(1,i);

else

vy(i)=vyy(2,i);

ifayy(1,i)>

ay(i)=ayy(1,i);

ay(i)=ayy(2,i);

th34=zeros(length(th2),2);

%%建立一个N行2列的零矩阵

options=optimset('

display'

'

off'

);

form=1:

length(th2)%用fsove函数求解关于th3,th4的非线性超越方程,结果保存在th34中

th34(m,:

)=fsolve('

fourbarposition'

[11],...

options,th2(m),l2,l3,l4,l1);

%求各个的坐标

Ex=wy;

Ey=zeros(size(th2));

Cy=l2*sin(th2)+l3*sin(th34(:

1)'

Cx=l2*cos(th2)+l3*cos(th34(:

Bx=[l2*cos(th2)];

By=[l2*sin(th2)];

Ax=zeros(size(th2));

Ay=zeros(size(th2));

Dx=l1+zeros(size(th2));

Dy=zeros(size(th2));

Ev=vy;

Ew=zeros(size(th2));

Ea=ay;

En=zeros(size(th2));

%求位移,速度,加速度的围:

g=[AxBxCxDxEx];

m=[AyByCyDyEy];

maxX=max(g);

minX=min(g);

maxY=max(m);

minY=min(m);

maxwy=max(Ex);

minwy=min(Ex);

maxvy=max(Ev);

minvy=min(Ev);

maxay=max(Ea+50);

minay=min(Ea-50);

%画动画图

fori=1:

times

axes(handles.axes1);

plot([Ax(i),Bx(i)],[Ay(i),By(i)],'

lineWidth'

3);

holdon

plot([Bx(i),Cx(i)],[By(i),Cy(i)],'

plot([Ax(i),Dx(i)],[Ay(i),Dy(i)],'

plot([Cx(i),Dx(i)],[Cy(i),Dy(i)],'

plot([Bx(i),Ex(i)],[By(i),Ey(i)],'

plot([-10000,Ax(i)],[0,Ay(i)],'

plot([10000,Ax(i)],[0,Ay(i)],'

plot([Ex(i)+10,Ex(i)-10],[Ey(i)+10,Ey(i)+10]);

plot([Ex(i)+10,Ex(i)-10],[Ey(i)-10,Ey(i)-10]);

plot([Ex(i)-10,Ex(i)-10],[Ey(i)+10,Ey(i)-10]);

plot([Ex(i)+10,Ex(i)+10],[Ey(i)+10,Ey(i)-10]);

plot(0,0,'

or'

3)

plot(Bx(i),By(i),'

plot(Cx(i),Cy(i),'

plot(Dx(i),Dy(i),'

plot(Ex(i),Ey(i),'

axisequal;

axis([minX,maxX,minY,maxY]);

axisoff;

holdoff;

pause(0.1)

%画滑块位移图

axes(handles.axes3);

plot(th2(1:

i),wy(1:

i),'

axis([0,2*pi,minwy,maxwy])

pause(0.1)

%画滑块速度图

axes(handles.axes4);

i),vy(1:

axis([0,2*pi,minvy,maxvy])

%画滑块加速度图

axes(handles.axes5);

i),ay(1:

axis([0,2*pi,minay,maxay])

pause(0.1)

%判断杆长的代码:

lall=l1+l2+l3+l4;

lmax=max([l1l2l3l4]);

lmin=min([l1l2l3l4]);

if(lmax+lmin)>

(lall-lmax-lmin)

set(handles.edit5,'

不符合杆长条件,请重新输入'

set(handles.edit6,'

'

set(handles.edit7,'

else

ifl2>

l4

不符合A点的周转条件,请重新输入'

·

符合条件,可以运动'

%关闭代码:

close

5.仿真结论

(1)如图所示为界面。

(2)当杆长关系不合理时:

(3)当满足杆长条件,但是且不满足A点的周转条件时:

(4)下图为正常运行时的界面:

6.遇到的问题和解决的方式

我们首先遇到的最大的问题是设计一个什么机构,当时我们想了很久,然后决定弄一个滑块和四杆机构的综合。

接下来是怎么设计四杆机构,我们通过查书籍和网上的资料,了解到用矢

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

当前位置:首页 > 外语学习 > 英语考试

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

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