clear all R = 50; L = 200; a = 0:pi/20:4*pi; ap = 850*2*pi/60; % velocidade do girabrequim em rad/s app = 0; % aceleração do girabrequim em rad/s2 %--- Eq. de Posição do Mecanismo --- %--- Usando o Looping --- for i=1:length(a), %--- análise de posição --- b(i) = acos(R*cos(a(i))/L); yC(i) = R*sin(a(i)) + L*sin(b(i)); %--- análise de velocidade --- bp(i) = R*ap*sin(a(i))/(L*sin(b(i))); yCp(i) = R*ap*cos(a(i)) + L*bp(i)*cos(b(i)); %--- análise de aceleração --- bpp(i) = (R*app*sin(a(i))+R*(ap^2)*cos(a(i))-L*(bp(i)^2)*cos(b(i)))/(L*sin(b(i))); yCpp(i) = R*app*cos(a(i))-R*(ap^2)*sin(a(i))+L*bpp(i)*cos(b(i))-L*(bp(i)^2)*sin(b(i)); end %--- Fazendo direto --- b = acos(R*cos(a)/L); yC = R*sin(a) + L*sin(b); figure(1) subplot(2,1,1) plot(a*180/pi,yC,'b-') xlabel('Ângulo \alpha (graus)') ylabel('Deslocamento do Pistão (mm)') axis([0 360 0 300]) grid on subplot(2,1,2) plot(a*180/pi,b*180/pi,'r-') hold on plot([0 360],[90 90],'k--') hold off xlabel('Ângulo \alpha (graus)') ylabel('Ângulo \beta (graus)') axis([0 360 0 180]) grid on figure(2) subplot(2,1,1) plot(a*180/pi,yCp,'b-') xlabel('Ângulo \alpha (graus)') ylabel('Velocidade do Pistão (mm/s)') axis([0 360 -1.1e4 1.1e4]) grid on subplot(2,1,2) plot(a*180/pi,bp,'r-') xlabel('Ângulo \alpha (graus)') ylabel('Velocidade \beta_P (rad/s)') axis([0 360 -50 50]) grid on figure(3) subplot(2,1,1) plot(a*180/pi,yCpp,'b-') xlabel('Ângulo \alpha (graus)') ylabel('Aceleração do Pistão (mm/s^2)') axis([0 360 -2e6 1e6]) grid on subplot(2,1,2) plot(a*180/pi,bpp,'r-') xlabel('Ângulo \alpha (graus)') ylabel('Aceleração \beta_PP (rad/s^2)') axis([0 360 -5000 5000]) grid on %--- ANIMAÇÃO --- figure(4) for i=1:length(a), b(i) = acos(R*cos(a(i))/L); yC(i) = R*sin(a(i)) + L*sin(b(i)); xB = R*cos(a(i)); yB = R*sin(a(i)); plot([0 xB],[0 yB],'r-','linewidth',3) hold on plot(0,yC(i),'ks','markersize',30,'markerfacecolor',[0.6 0.6 0.6]) plot([xB 0],[yB yC(i)],'b-','linewidth',2) plot(0,0,'ko','markersize',10,'markerfacecolor','w') plot(xB,yB,'ko','markersize',10,'markerfacecolor','w') plot(0,yC(i),'ko','markersize',10,'markerfacecolor','w') plot([-2 -2],[yC(i) yC(i)+yCp(i)/1e2],'g-','linewidth',3) plot([2 2],[yC(i) yC(i)+yCpp(i)/1e4],'r-','linewidth',3) hold off axis([-200 200 -100 300]) text(0,20,'A') text(xB+20,yB,'B') text(20,yC(i),'C') axis square grid on pause(0.1) end