C.2 Slider-Crank (R-RRT) Mechanism: D’Alembert’s Principle 369
rB = [xB yB 0];
yC = 0; xC = xB+sqrt(BCˆ2-(yC-yB)ˆ2);
rC = [xC yC 0];
phi2 = atan((yB-yC)/(xB-xC));
n = 30/pi; % (rpm) driver link
omega1=[00pi
*
n/30 ]; alpha1 = [000];
vA=[000];aA=[000];
vB1 = vA + cross(omega1,rB); vB2 = vB1;
aB1 = aA + cross(alpha1,rB) - ...
dot(omega1,omega1)
*
rB;
aB2 = aB1;
omega2z = sym(’omega2z’,’real’);
vCx = sym(’vCx’,’real’);
omega2=[00omega2z ]; vC=[vCx00];
eqvC = vC - (vB2 + cross(omega2,rC-rB));
eqvCx = eqvC(1); eqvCy = eqvC(2);
solvC = solve(eqvCx,eqvCy);
omega2zs=eval(solvC.omega2z);
vCxs=eval(solvC.vCx); Omega2 = [0 0 omega2zs];
vCs = [vCxs 0 0];
alpha2z = sym(’alpha2z’,’real’);
aCx = sym(’aCx’,’real’);
alpha2=[00alpha2z ]; aC = [aCx00];
eqaC=aC-(aB1+cross(alpha2,rC-rB)-...
dot(Omega2,Omega2)
*
(rC-rB));
eqaCx = eqaC(1); eqaCy = eqaC(2);
solaC = solve(eqaCx,eqaCy);
alpha2zs=eval(solaC.alpha2z);
aCxs=eval(solaC.aCx);
alpha20 = [0 0 alpha2zs]; aCs = [aCxs 0 0];
alpha30 = [0 0 0];
rC1 = (rA+rB)/2;
rC2 = (rB+rC)/2;
rC3 = rC;
% Graphic of the mechanism
plot([0,xB],[0,yB],’r-o’,[xB,xC],[yB,yC],’b-o’)
xlabel(’x (m)’), ylabel(’y (m)’),...
title(’positions for \phi = 45 (deg)’),...
text(xA,yA,’ A’),text(xB,yB,’ B’),...
text(xC,yC,’ C=C3’),...
text(rC1(1),rC1(2),’ C1’),...
text(rC2(1),rC2(2),’ C2’),...
axis([-0.1,1.6,-0.1,1.6])