Matlab模拟曲柄滑块机构运动(开源)

使用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',11,...
    'FontName','Times New Roman');
xlabel(...
    ['\fontname{宋体}时间','\fontname{Times New Roman} /','(s)'],...
    'FontUnits','points',...
    'FontSize',11,...
    'FontName','Times New Roman');
ylabel(...
    ['\fontname{宋体}速度','\fontname{Times New Roman} /','(mm/s)'],...
    'FontUnits','points',...
    'FontSize',11,...
    'FontName','Times New Roman'...
    );

说明:l1--曲柄长度;l2--连杆长度;做整转,一个周期的模拟。

 机构动图

 

 滑块速度图


版权声明:本文为cnmlgb00100原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。