使用Matlab模拟曲柄滑块机构运动。
代码如下:
clc
clear
close all;
%%%%%%%%%%%%%%主程序
l1 = 10;
l2 = 20;
O = [0;0];
AFir = [0;l1];
Angle = 0:1:360;
A = zeros(2,size(Angle,2));
for i=1:1:size(Angle,2)
A(:,i) = [cosd(Angle(i)),sind(Angle(i)); -sind(Angle(i)) cosd(Angle(i))]...
*((AFir - 0)*1) + O;
end
B(1,:) = (l2^2-abs(A(2,:)).^2).^0.5 + A(1,:); %滑块X坐标
BVec = diff(B)/1; %滑块速度
%%%%%%%%%%%%%%动图与速度图
for i = 1:10:size(A,2)
cla;
plot([0,A(1,i)],[0,A(2,i)],'k');
hold on;
plot([B(1,i),A(1,i)],[0,A(2,i)],'r');
plot(B(1,i),0,'ko');
plot(0,0,'ko');
plot(A(1,i),A(2,i),'ko');
plot([-1.1*l1,l1+l2],[0,0],'k--');
axis([-1.1*l1,l1+l2,-1.1*l1,l1+l2]);
pause(0.1);
end
figure(2);
plot(0:0.1:35.9,BVec);
title(...
['\fontname{宋体}滑块速度图',''],...
'FontUnits','points',...
'FontSize&#