数学建模社区-数学中国

标题: matlab实现曲柄滑块机构的动画 [打印本页]

作者: 595894385    时间: 2012-11-13 12:38
标题: matlab实现曲柄滑块机构的动画

曲柄滑块机构的数学模型
O点表示原点,A表示曲柄的另一端点(连杆的起点),B连杆的另一端点(与滑块相连点)
R为曲柄的长度,L为连杆的长度,th为曲柄与X轴的夹角,H为偏心距。

对于A点:
XA=R*cos(th)
YA=R*sin(th)

对于B点:
XB=?
YB=H
B点满足条件:L^2=(XA-XB)^2+(YA-YB)^2
XB=XA+sqrt(L^2-(YA-H)^2)

clear
clc
R=1;
L=2;
H=0.5;
th=linspace(0,10*pi,1001);
XA=R*cos(th);
YA=R*sin(th);
XB=XA+sqrt(L^2-(YA-H).^2);
for k=1:length(th)    %动画
   thk=th(k);     %取角度中的第k个值
   XAk=R*cos(thk);
   YAk=R*sin(thk);
   YBk=H;
   XBk=XAk+sqrt(L^2-(YAk-H)^2);
   XOk=0;     %定义原点
   YOk=0;
   plot(XOk,YOk,'ko');
   hold on
   plot(XAk,YAk,'ko');
   plot(XBk,YBk,'ko');
   plot([XOk,XAk,XBk],[YOk,YAk,YBk],'r');  %各点连线
   plot(XBk+[-1,1,1,-1,-1]*R/4,YBk+[1,1,-1,-1,1]*R/4,'b'); %画出滑块
   plot([0.5,3.5],(H-R/4)*[1,1]);%地面
   axis([-2,2,-2,2])
   axis off
   axis equal
   hold off
   pause(0.001);  %控制画面的延迟时间
end
AM=max(XB)-min(XB)    %行程

untitled.fig

3.34 KB, 下载次数: 6, 下载积分: 体力 -2 点






欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5