Matlab 曲柄滑块机构,曲柄滑块机构是指用曲柄和滑块来实现转动和移动相互转换的平面连杆机构。
代码
hf=figure('name','曲柄滑块机构');
set(hf,'color','g');
hold on
axis([-6,6,-4,4]);
grid on
axis('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.7
c=0.7
a1=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.015pi;
t=0;
while 1
t=t+dt;
if t2pi
t=0;
end
lena1=sqrt((len1)^2-(rsin(t))^2);%连杆在运动过程中横轴上的有效长度
rr1=rcos(t);%半径在运动过程中横轴上的有效长度
xaa1=x3-sqrt(len1^2-(sin(t)r)^2)-(rcos(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
效果