2026 Exam Exercise 3#
The mechanism in the figure is used to lift objects. The driving link (O2A) rotates at a constant speed of 60 rpm counterclockwise. The following page provides the partially solved acceleration polygon. A velocity and acceleration analysis must be carried out, as well as the identification of the inertia forces, at a position given by \(\theta_2 =36.5^{\circ }\), for which you are asked to:

Determine which kinematic chain it corresponds to, the number of degrees of freedom, and whether link 2 can act as a crank, justifying your answers.
Calculate the velocity of point E.
Draw the complete velocity polygon of the mechanism.
From the acceleration polygon, determine the angular accelerations of all the bodies.
Calculate the accelerations of the links’ centers of gravity and the inertia forces they give rise to.
Calculate the distance P when the value of \(\theta_2\) becomes 90°.
Data:#
clear, clc
% Angles (deg):
theta2=36.5; phi=95.6; eta=118.6; alpha=10.6; beta=19.7; delta=252.6;
% Distances (cm):
p=121.5; h=37.7; r1=55.7; r2=26.3; r3=41.6; r4=44.5; rO4D=59; r5=44.8;
% masses (kg):
m2=2; m3=6; m4=15; m5=7.5; m6=10;
Part 1: Kinematic chain#
This is a Watt-II chain, since one of the ternary links is ground (1) and is connected to the other ternary link (4). As is known, this type of mechanism has one degree of freedom, which can be easily verified with Grübler’s criterion: N=6; P1=7; P2=0 => G=3*(6-1)-2*7-0=1. Finally, to determine whether link 2 can complete full revolutions, we apply Grashof’s law to the sub-chain 1, 2, 3, and 4. This gives us r2+r1 =26.3+55.7=82, which is less than r3+r4=41.6+44.5=86.1, which guarantees that it can indeed complete full revolutions, acting as a crank.
Part 2: Velocity calculation#
For the velocity problem we first identify a four-bar sub-chain, and set up the relative velocity equation between points A and B:
\( {\vec{v} }_B ={\vec{v} }_A +{\vec{v} }_{A/B} \)
we look at which terms are missing and work them out.
- For \({\vec{v} }_B\):
\( {\vec{v} }_B ={\vec{\omega} }_4 \times {\vec{r} }_{O4B} \)
% define the unknown w4k, the vector w4, rO4B, and finally express vB
syms w4k real
w4=[0 0 w4k];
rO4B=r4*[cosd(alpha) sind(alpha) 0];
vB=cross(w4,rO4B);
- For \({\vec{v} }_A\):
\( {\vec{v} }_A ={\vec{\omega} }_2 \times {\vec{r} }_{O2A} \)
% define the vector w2, rO2A, and finally express vA
w2=[0 0 60*2*pi/60];
rO2A=r2*[cosd(theta2) sind(theta2) 0];
vA=cross(w2,rO2A);
- For \({\vec{v} }_{B/A}\):
\( {\vec{v} }_{B/A} ={\vec{\omega} }_3 \times {\vec{r} }_{AB} \)
% define the unknown w3k, the vector w3, rAB, and finally express vB/A
syms w3k real
w3=[0 0 w3k];
rAB=r3*[cosd(95.6) sind(95.6) 0];
vB_A=cross(w3,rAB);
Now we solve the equation:
sol_v1 = solve(vB==vA+vB_A,w3k, w4k);
w3k = subs(sol_v1.w3k);
w4k = subs(sol_v1.w4k);
Now we move on to analyze link 5 and set up the relative velocity equation between points D and E:
\( {\vec{v} }_E ={\vec{v} }_D +{\vec{v} }_{E/D} \)
we look at which terms are missing and work them out.
- For \({\vec{v} }_E\):
\( {\vec{v} }_E =v_E \hat{j} \)
% define the unknown vEj, the vector vE
syms vEj real
vE=[0 vEj 0];
- For \({\vec{v} }_D\):
\( {\vec{v} }_D ={\vec{\omega} }_4 \times {\vec{r} }_{O4D} \)
% The vector w4 is already known, and rO4D is a given:
rO4D=rO4D*[cosd(alpha+beta) sind(alpha+beta) 0];
vD=cross(w4,rO4D);
- For \({\vec{v} }_{E/D}\):
\( {\vec{v} }_{E/D} ={\vec{\omega} }_5 \times {\vec{r} }_{DE} \)
% define the unknown w5k, the vector w5, rDE, and finally express vE/D
syms w5k real
w5=[0 0 w5k];
rDE=r5*[cosd(72.6) sind(72.6) 0];
vE_D=cross(w5,rDE);
Now we solve the equation:
sol_v2 = solve(vE==vD+vE_D,w5k, vEj);
w5k = subs(sol_v2.w5k);
vEj = subs(sol_v2.vEj);
Showing the results:#
fprintf('vAi=%3.2f vAj=%3.2f (m/s)\n', vA(1)/100,vA(2)/100)
vAi=-0.98 vAj=1.33 (m/s)
vB=double(subs(vB));
fprintf('vBi=%3.2f vBj=%3.2f (m/s)\n', vB(1)/100,vB(2)/100)
vBi=-0.26 vBj=1.40 (m/s)
fprintf('vEj=%3.2f (m/s)\n', vEj/100)
vEj=1.33 (m/s)
fprintf('w3k=%3.2f (rad/s)\n', double(subs(w3k)))
w3k=-1.74 (rad/s)
fprintf('w4k=%3.2f (rad/s)\n', double(subs(w4k)))
w4k=3.20 (rad/s)
fprintf('w5k=%3.2f (rad/s)\n', double(subs(w5k)))
w5k=-2.23 (rad/s)
Part 3: Velocity polygon#
We graphically solve the relative velocity equations:
\( {\vec{v} }_B ={\vec{v} }_A +{\vec{v} }_{A/B} \)
\( {\vec{v} }_{E/D} ={\vec{\omega} }_5 \times {\vec{r} }_{DE} \)
starting from the known value \(|v_A |=|\omega_2 |\cdot \bar{O_2 A}\), which is perpendicular to \(\bar{O_2 A}\) and points in the direction consistent with \({\vec{\omega} }_2\), and knowing that we can obtain \({\vec{\omega} }_4\) from \({\vec{v} }_B\) so as to proceed to calculate \({\vec{v} }_D\):

Part 4: Acceleration calculation#
This part can be solved easily in a graphical way, correctly applying the given scale. Furthermore, the results are verified to match those obtained by applying the following equations.
Accelerations of points A, B, C, and D#
For the acceleration problem we proceed in the same way, first between points A and B:
\( {\vec{a} }_B ={\vec{a} }_A +{\vec{a} }_{A/B} \)
which, decomposing, gives us:
\( {\vec{a} }_B^n +{\vec{a} }_B^t ={\vec{a} }_A +{\vec{a} }_{A/B}^n +{\vec{a} }_{A/B}^t \)
we look at which terms are missing and work them out.
- For \({\vec{a} }_B^n\):
\( {\vec{a} }_B^n ={\vec{\omega} }_4 \times ({\vec{\omega} }_4 \times {\vec{r} }_{O4B} ) \)
% Express aBn
aBn=cross(w4,cross(w4,rO4B));
- For \({\vec{a} }_B^t\):
\( {\vec{a} }_B^t ={\vec{\alpha} }_4 \times {\vec{r} }_{O4B} \)
% define the unknown af4k, the vector af4, express aBt
syms af4k real
af4=[0 0 af4k];
aBt=cross(af4,rO4B);
- For \({\vec{a} }_A\):
\( {\vec{a} }_A ={\vec{a} }_A^n ={\vec{\omega} }_2 \times ({\vec{\omega} }_2 \times {\vec{r} }_{O2A} ) \)
% Express aA
aA=cross(w2,cross(w2,rO2A));
- For \({\vec{a} }_{B/A}^n\):
\( {\vec{a} }_{B/A}^n ={\vec{\omega} }_3 \times ({\vec{\omega} }_3 \times {\vec{r} }_{AB} ) \)
% Express aB_An
aB_An=cross(w3,cross(w3,rAB));
- For \({\vec{a} }_{B/A}^t\):
\( {\vec{a} }_{B/A}^t ={\vec{\alpha} }_3 \times {\vec{r} }_{AB} \)
% define the unknown af3k, the vector af3, express aB_At
syms af3k real
af3=[0 0 af3k];
aB_At=cross(af3,rAB);
Now we solve the equation:
sol_ac1 = solve(aBn+aBt==aA+aB_An+aB_At,af3k, af4k);
% Display the solutions:
af3k = subs(sol_ac1.af3k);
af4k = subs(sol_ac1.af4k);
Now we move on to analyze link 5 and set up the relative acceleration equation between points D and E:
\( {\vec{a} }_E ={\vec{a} }_D +{\vec{a} }_{E/D} \)
decomposing:
\( {\vec{a} }_E ={\vec{a} }_D^n +{\vec{a} }_D^t +{\vec{a} }_{E/D}^n +{\vec{a} }_{E/D}^t \)
we look at which terms are missing and work them out.
- For \({\vec{a} }_E\):
\( {\vec{a} }_E =a_E \hat{j} \)
syms aEj real
aE=[0 aEj 0];
- For \({\vec{a} }_D^n\):
\( {\vec{a} }_D^n ={\vec{\omega} }_4 \times ({\vec{\omega} }_4 \times {\vec{r} }_{O4D} ) \)
aDn=cross(w4,cross(w4,rO4D));
- For \({\vec{a} }_D^t\):
\( {\vec{a} }_D^t ={\vec{\alpha} }_4 \times {\vec{r} }_{O4D} \)
aDt=cross(af4,rO4D);
- For \({\vec{a} }_{E/D}^n\):
\( {\vec{a} }_{E/D}^n ={\vec{\omega} }_5 \times ({\vec{\omega} }_5 \times {\vec{r} }_{DE} ) \)
aE_Dn=cross(w5,cross(w5,rDE));
- For \({\vec{a} }_{E/D}^t\):
\( {\vec{a} }_{E/D}^t ={\vec{\alpha} }_5 \times {\vec{r} }_{DE} \)
syms af5k real
af5=[0 0 af5k];
aE_Dt=cross(af5,rDE);
Now we solve the equation:
sol_ac2 = solve(aE==aDn+aDt+aE_Dn+aE_Dt,aEj, af5k);
aEj = subs(sol_ac2.aEj);
af5k = subs(sol_ac2.af5k);
Solutions:#
fprintf('aEj=%3.2f (m/s2)\n', aEj/100)
aEj=-12.82 (m/s2)

For the graphical method:
% Print results:
fprintf('aA=%3.4f\n', norm(aA)/100)
aA=10.3828
fprintf('aBAn=%3.4f\n', norm(double(subs(aB_An)))/100)
aBAn=1.2620
fprintf('aBAn=%3.4f\n', norm(double(subs(aB_An)))/100)
aBAn=1.2620
fprintf('aBn=%3.4f\n', norm(double(subs(aBn)))/100)
aBn=4.5526
fprintf('aDn=%3.4f\n', norm(double(subs(aDn)))/100)
aDn=6.0361
fprintf('aDt=%3.4f\n', norm(double(subs(aDt)))/100)
aDt=8.2479
fprintf('aBt=%3.4f\n', norm(double(subs(aBt)))/100)
aBt=6.2209
fprintf('aEDn=%3.4f\n', norm(double(subs(aE_Dn)))/100)
aEDn=2.2222
fprintf('aEDt=%3.4f\n', norm(double(subs(aE_Dt)))/100)
aEDt=1.7970
fprintf('a3=%3.4f\n', double(af3k))
a3=-11.8173
fprintf('a4=%3.4f\n', double(af4k))
a4=-13.9795
fprintf('a5=%3.4f\n', double(af5k))
a5=-4.0111
Part 5: Inertia forces calculation#
From D’Alembert’s principle, we can calculate the inertia forces as \({\vec{F} }_{in} =m\cdot (-{\vec{a} }_G )\) . So, first of all, we need to calculate the accelerations of the centers of gravity, which we can do either graphically from the acceleration polygon in the previous part, or using the following expressions:
Accelerations of the centers of gravity#
- For \({\vec{a} }_{G2} ={\vec{a} }_{G2}^n\) we need \({\vec{r} }_{O2G2}\):
rO2G2=rO2A/2;
aG2=cross(w2,cross(w2,rO2G2))/100;
- For \({\vec{a} }_{G3} ={\vec{a} }_A +{\vec{a} }_{G3/A}^n +{\vec{a} }_{G3/A}^t\) we need \({\vec{r} }_{AG3}\):
rAG3=rAB/2;
aG3=double(subs(aA+cross(w3,cross(w3,rAG3))+cross(af3,rAG3)))/100;
- For \({\vec{a} }_{G4} ={\vec{a} }_{G4}^n +{\vec{a} }_{G4}^t\) we need \({\vec{r} }_{O4G4}\):
rO4G4=[31.58 12.67 0]; % Graphically (cm)
aG4=double(subs(cross(w4,cross(w4,rO4G4))+cross(af4,rO4G4)))/100;
- For \({\vec{a} }_{G5} ={\vec{a} }_C^n +{\vec{a} }_C^t +{\vec{a} }_{G5/C}^n +{\vec{a} }_{G5/C}^t\) we need \({\vec{r} }_{CG5}\):
rCG5=rDE/2;
aG5=double(subs(aDn+aDt+cross(w5,cross(w5,rCG5))+cross(af5,rCG5)))/100;
- For \({\vec{a} }_{G6} ={\vec{a} }_E\) it is enough to evaluate \({\vec{a} }_E\):
aG6=double(subs(aE))/100;
Inertia forces:#
We apply the previous equation to each body:
Fin2=-aG2*m2;
Fin3=-aG3*m3;
Fin4=-aG4*m4;
Fin5=-aG5*m5;
Fin6=-aG6*m6;
And we show the results:
fprintf('Fin2i=%3.2f Fin2j=%3.2f (N)\n', Fin2(1), Fin2(2))
Fin2i=8.35 Fin2j=6.18 (N)
fprintf('Fin3i=%3.2f Fin3j=%3.2f (N)\n', Fin3(1), Fin3(2))
Fin3i=35.03 Fin3j=39.38 (N)
fprintf('Fin4i=%3.2f Fin4j=%3.2f (N)\n', Fin4(1), Fin4(2))
Fin4i=21.89 Fin4j=85.66 (N)
fprintf('Fin5i=%3.2f Fin5j=%3.2f (N)\n', Fin5(1), Fin5(2))
Fin5i=3.94 Fin5j=86.22 (N)
fprintf('Fin6i=%3.2f Fin6j=%3.2f (N)\n', Fin6(1), Fin6(2))
Fin6i=-0.00 Fin6j=128.24 (N)
Part 6: New position of the mechanism#
This part is easily solved graphically:
