You are on page 1of 51

Solutions to Chapter 7 Exercise Problems

Problem 7.1
A coupler curve has the approximate straight-line section shown in the figure below. Design a
four-bar linkage that will generate the portion of the curve shown. Describe the linkage in
sufficient detail that it can be manufactured.
Y

xB

xA

yB

Ay
A

xA = 6
yA = 3
xB = 18
yB = 12

Solution:
To solve the problem, we need to find a coupler curve with an approximate straight-line section.
We can use any of the mechanisms identified in section 7.1.2. We will use the Watt straight-line
mechanism shown in Fig. 7.1. Assuming the crank is the driver, the coupler curve is shown in
Fig. 7.1.1 for the coupler length equal to 5/3 times the crank length. This drawing is based on
the results from the program fourbar_analysis.m included on the disk with this book. The
linkage is a Grashof, Type 2 double rocker.
The straight line part of the coupler curve is given by segment SU, and this distance is
approximately equal to the length of the cranks. The line SU is also bisected by the line of
centers PQ, and vice versa. Also, line SU is inclined at an angle of approximately -50.2 to the
line PQ. The length of the line of centers can be computed using the Pythagorean theorem when
the coupler and cranks are at right angles to each other as shown in Fig. 7.1.2. Using a crank
length of 3 and a coupler length of 5, the center distance is found to be 2(3.9051) = 7.8102.

V
U
50.2
P

Q
T
S
R

Fig. 7.1.1: Coupler curve for Watt's mechanism when the coupler length is 5/3 times the length of the cranks.

- 277 -

V
3

2.5
50.2

3.9051

T
2.5

R
Fig. 7.1.2: Determination of the distance between centers.

To use this linkage for the given problem, it is necessary to map point S to point A and point U
to point B. The length of the line AB is given by
L = (xB  xA)2 + (y B  yA)2 = (18  6)2 + (12  3)2 = 15
and the angle of inclination of the line AB is given by

[ yx  yx ] = tan [1812  63] = tan [129 ] = 53.13

 = tan1

1

1

Therefore, to use the Watt's linkage to generate the curve, we need only scale the linkage so that
the length of SU is 15 and rotate the linkage so that the line SU is at and angle of 53.13 to the
horizontal. The rotation required is 53.13 - 50.20 or 2.93.
The length of line SU in Fig. 7.1.1 is 3. Therefore, the scaling factor for the linkage is (15/3) or
7. The final link lengths then are:
r1 = 5 7.8102 = 39.051
r2 = 5  3 = 15.000
r3 = 5 5 = 25.000
r4 = 5  3 = 15.000
The coupler point T which generates the coupler curve is located midway between the two ends
of the coupler. In the position corresponding to Fig. 7.1.2, the point T has the following x and y
coordinates:
xT = (xB + xA) / 2 = (18 + 6) / 2 = 12
yT = (yB + y A) / 2 = (12 + 3) / 2 = 7.5
The coordinates of point P are given by:
xP = x T  PT cos = 12  (39.051/ 2)cos(2.93) = 12  19.5255cos(2.93) = 7.500
yP = y T  PT sin = 7.5 (39.051 / 2)sin(2.93) = 7.5 19.5255sin(2.93) = 6.502
And the coordinates of point Q are given by:

- 278 -

xQ = xT + TQcos = 12 + (39.051 / 2)cos(2.93) = 12 + 19.5255cos(2.93) = 31.500


yQ = yT + TQsin = 7.5+ (39.051 / 2)sin(2.93) = 7.5+ 19.5255sin(2.93) = 8.498
The final solution linkage is shown in Fig. 7.1.3.

V
15.000 in
U
(31.500, 8.498)
(-7.500, 6.502)

19.5255 in

50.2
2.93

15.000 in
R

Fig. 7.1.3: Final solution linkage.

Problem 7.2
Resolve Problem 7.1 if xA = 3, yA = 3 , xB = 20, and yB = 15 .
Solution:
To solve the problem, we need to find a coupler curve with an approximate straight-line section.
We can use any of the mechanisms identified in section 7.1.2. We will use the Watt straight-line
mechanism shown in Fig. 7.1. Assuming the crank is the driver, the coupler curve is shown in
Fig. 7.2.1 for the coupler length equal to 5/3 times the crank length. This drawing is based on
the results from the program fourbar_analysis.m included on the disk with this book. The
linkage is a Grashof, Type 2 double rocker.
The straight line part of the coupler curve is given by segment SU, and this distance is
approximately equal to the length of the cranks. The line SU is also bisected by the line of
centers PQ, and vice versa. Also, line SU is inclined at an angle of approximately -50.2 to the
line PQ. The length of the line of centers can be computed using the Pythagorean theorem when
the coupler and cranks are at right angles to each other as shown in Fig. 7.2.2. Using a crank
length of 3 and a coupler length of 5, the center distance is found to be 2(3.9051) = 7.8102.
To use this linkage for the given problem, it is necessary to map point S to point A and point U
to point B. The length of the line AB is given by
L = (xB  xA)2 + (y B  yA)2 = (20  3)2 + (15  3)2 = 20.809

- 279 -

V
U
50.2
P

Q
T
S
R

Fig. 7.2.1: Coupler curve for Watt's mechanism when the coupler length is 5/3 times the length of the cranks.
V
3

2.5
50.2

3.9051

T
2.5

R
Fig. 7.2.2: Determination of the distance between centers.

and the angle of inclination of the line AB is given by

[ yx  yx ] = tan [2015  33] = tan [1712 ] = 54.78

 = tan1

1

1

Therefore, to use the Watt's linkage to generate the curve, we need only scale the linkage so that
the length of SU is 15 and rotate the linkage so that the line SU is at and angle of 53.13 to the
horizontal. The rotation required is 54.78 - 50.20 or 4.58.
The length of line SU in Fig. 7.2.1 is 3. Therefore, the scaling factor for the linkage is (20.809/3)
or 6.936. The final link lengths then are:
r1 = 6.936  7.8102 = 54.1715
r2 = 6.936  3 = 20.808
r3 = 6.936  5 = 34.680
r4 = 6.936  3 = 20.808

- 280 -

The coupler point T which generates the coupler curve is located midway between the two ends
of the coupler. In the position corresponding to Fig. 7.2.2, the point T has the following x and y
coordinates:
xT = (xB + xA) / 2 = (20 + 3) / 2 = 11.500
yT = (yB + y A) / 2 = (15 + 3) / 2 = 9.000
The coordinates of point P are given by:
xP = x T  PT cos = 11.500  (54.1715 / 2)cos(4.58) = 11.500  27.086cos(4.58) = 15.499
yP = y T  PT sin = 9.000  (54.1715 / 2)sin(4.58) = 9.000  27.086sin(4.58) = 6.837
And the coordinates of point Q are given by:
xQ = xT + TQcos = 11.500 + (54.1715/ 2)cos(4.58) = 11.500 + 27.086cos(4.58) = 38.500
yQ = yT + TQsin = 9.000 + (54.1715/ 2)sin(4.58) = 9.000 + 27.086sin(4.58) = 11.163
The final solution linkage is shown in Fig. 7.2.3.

V
20.808
U
(38.500, 11.163)
50.2
(-15.499, 6.837)

27.087

P
S
20.808
R
Fig. 7.2.3: Final solution linkage.

- 281 -

Q
4.58

Problem 7.3
Determine the cognate linkages that will trace the same coupler curve as that traced by point C in
the figure below.
C

E
30
1.0 in

AB = 1.5 in
BC = 1.25 in
BD = 2.0 in
BC = 3.0 in
DE = 1.25 in

A
3.25 in

Solution
Use Roberts' linkage in Fig. 7.12 as a guide to construct the cognates. First locate pivot O by
recognising that triangle MQO is similar to ABC. Then complete the parallagrams indicated in
Fig. 7.12. Also, refer to Fig. 4.59.
The cognates are shown in the following figure.

A
D
A

This figure can be checked using the program cognates.m. The coupler curve and cognates are
given in the following. Note that this linkage is a type 2, double rocker.

- 282 -

Problem 7.4
Determine the cognate linkages that will trace the same coupler curve as that traced by point C in
the figure below.
A

DE = 1.125 in
BD = 2.25 in
BC = 1.0 in

1.75 in
2.375 in

B
30 D

C
90

Solution
Use Roberts' linkage in Fig. 7.12 as a guide to construct the cognates. First locate pivot O by
recognising that "triangle" EAO is similar to DBC. Then complete the parallagrams indicated in
Fig. 7.12. Also, refer to Fig. 4.59.
The cognates are shown in the following figure.

- 283 -

B
C

This figure can be checked using the program cognates.m. The coupler curve and cognates are
given in the following. Note that this linkage is a type 2, double rocker.

- 284 -

Problem 7.5
A spherical four-bar linkage is shown in the figure below. If the angular velocity of link 2 is 100
rad/s (constant), find the angular velocity and angular acceleration of link 4 as a function of the
rotation of link 2. Plot the angular velocity and angular acceleration of link 4 for a full rotation
of link 2. Make the calculations for the assembly mode shown in the figure.
R4

R2
1 4

R1
1 2

3
1

3
2

1 = 110
2 = 90
3 = 90
4 = 90

R3

Solution
We must solve the problem for 1 from 0 to 360. For each value of 1 , we must solve for P, Q,
and R in Eq. (7.3).
P = - cos1cos 1sin 2sin 4 + sin1sin 2cos 4
Q = sin1sin 2sin 4
R = cos1sin 1cos 2sin 4 + cos1cos2cos 4 - cos 3

(7.3)

Hence referring to Table 3.1, we can obtain values for 2 given 1 from:
Q +  P2 + Q2  R2
R P
where  = 1 is a sign variable, and
2 = 2 tan-1(t).
t=

(7.4)
(7.5)

The two solutions correspond to the two solutions obtained in the solution of the position
problem of a planar four-bar, and have the same source in the reflection of the driven-crank and
coupler about the plane of the moving joint axis of the driving-crank and the fixed joint axis of
the driven-crank. By checking both solutions for 2 = 90 , we can determine that the solution
corresponding to the figure in the problem statement is for  = -1.
We can also develop relationships between the angular velocities about joints 1 and 2 by
differentiation of Eq. (7.1). Differentiation of Eq. (7.1) with respect to time gives, after
rearrangement:
sin 4(cos1 sin 2 sin  2 + sin 1 cos2 cos 1sin  2  sin 1 sin1 cos 2)
2 = 1
sin 2(sin1 cos2 sin 4 + cos1 sin 2 cos 1 sin 4  sin 2 sin1 cos 4 )

- 285 -

(7.6)

We can simplify this expression using


cos 2 = cos 3 = cos 4 = 0
and
sin 2 = sin 3 = sin 4 = 1
However, it is relatively easy to write a general MATLAB program to solve Eq. (7.6) directly, so
the simplification is not necessary.
An expression for the acceleration is given by Eqs. (7.7) and (7.8). These are


2 = 1 2 + B 12 + C 12 + D 22
A
A
A
1

(7.7)

where
A = sin2(sin1cos2sin 4 + cos1sin2cos 1sin 4 - sin2sin 1cos 4)
B = 2sin2sin 4(sin1sin2cos 1 - cos1cos2)
C = sin4(sin1sin2sin 2 -cos1cos2cos 1sin 2 + cos1sin 1cos 2)
D = sin 2(sin1sin2sin 4 - cos1cos2cos 1sin 4 + cos2sin 1cos 4)

(7.8)

These equations can also be easily programmed using MATLAB. Once the values are
computed, they can be plotted as a function of the rotation of link 2. The resulting program is
given in the following:
% MATLAB program for problem 7.5
%Program
clf;
clear all;
ans='y';
disp('
')
disp('

Universal Joint Analysis Program')

%Input the linkage variables


alpha1=110
alpha2=90
alpha3=90
alpha4=90
phi1dot=100
phi1ddot=0
fact=pi/180;
al1=alpha1*fact;
al2=alpha2*fact;
al3=alpha3*fact;
al4=alpha4*fact;
phi1i=0;
phi1f=360;
phii=phi1i*fact;

- 286 -

phif=phi1f*fact;
dphi=(phif-phii)/360;
i=0
for phi=phii:dphi:phif
i=i+1;
% Position calculations
P=-cos(phi)*cos(al1)*sin(al2)*sin(al4)+sin(al1)*sin(al2)*cos(al4);
Q=sin(phi)*sin(al2)*sin(al4);
R=cos(phi)*sin(al1)*cos(al2)*sin(al4)+cos(al1)*cos(al2)*cos(al4)cos(al3);
arg=P*P+Q*Q-R*R;
p1=0;
p2=0;
if arg>=0
den=R-P;
if den==0; den=0.1*10^-16; end
t2=(-Q-sqrt(arg))/(den);
p2=2*atan(t2);
end
ph1(i)=phi/fact;
temp=p2/fact;
if temp<0; temp=temp+360; end
ph2(i)=temp;
% Velocity calculations
num2=sin(al4)*(cos(phi)*sin(p2)*sin(al2)+...
sin(phi)*cos(p2)*cos(al1)*sin(al2)-sin(phi)*sin(al1)*cos(al2));
den2=sin(al2)*(sin(phi)*cos(p2)*sin(al4)+...
cos(phi)*sin(p2)*cos(al1)*sin(al4)-sin(p2)*sin(al1)*cos(al4));
phi2dot2=-phi1dot*(num2/den2);
phi2d(i)=phi2dot2;
% Acceleration calculations
A2=sin(al2)*(sin(phi)*cos(p2)*sin(al4)+...
cos(phi)*sin(p2)*cos(al1)*sin(al4)-sin(p2)*sin(al1)*cos(al4));
B2=2*sin(al2)*sin(al4)*(sin(phi)*sin(p2)*cos(al1)-cos(phi)*cos(p1));
C2=sin(al4)*(sin(phi)*sin(p2)*sin(al2)-...
cos(phi)*cos(p2)*cos(al1)*sin(al2)+cos(phi)*sin(al1)*cos(al2));
D2=sin(al2)*(sin(phi)*sin(p2)*sin(al4)-...
cos(phi)*cos(p2)*cos(al1)*sin(al4)+cos(p2)*sin(al1)*cos(al4));
phi2ddot2=(phi1ddot*phi2dot2)/phi1dot+(B2/A2)*phi1dot*phi2dot2+...
(C2/A2)*phi1dot^2+(D2/A2)*phi2dot2^2;
phi2dd(i)=phi2ddot2;
end
% plot the results.

Start with the velocity curve

clf;
height=0.5;

- 287 -

width=0.5;
xmin=0;
xmax=360;
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',10);
xlabel('Link 2 rotation, deg','color', 'k', 'fontname',...
'times', 'fontsize', 10);
ylabel('Link 4 Angular Velocity, rad/s','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
yminv=min(phi2d);
ymaxv=max(phi2d);
axis([xmin xmax yminv ymaxv]);
% Set up the vectors needed to draw the velocity
curve1=line('xdata', [], 'ydata', [],...
'linewidth', 1.5, 'erasemode', 'xor', 'color', 'r');
set(curve1,'xdata', ph1, 'ydata' ,phi2d);
pause
clf
% Draw the acceleraton curve
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',10);
xlabel('Link 2 rotation, deg','color', 'k', 'fontname',...
'times', 'fontsize', 10);
ylabel('Link 4 Angular Acceleration, rad/s^2','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
ymina=min(phi2dd);
ymaxa=max(phi2dd);
axis([xmin xmax ymina ymaxa]);
% Set up the vectors needed to draw the acceleraton
curve1=line('xdata', [], 'ydata', [],...
'linewidth', 1.5, 'erasemode', 'xor', 'color', 'r');
set(curve1,'xdata', ph1, 'ydata' ,phi2dd);

The velocity and acceleration plots areshown in Figs. 7.5.1 and 7.5.2.

- 288 -

Fig. 7.5.1: Velocity plot for problem 7.5.

Fig. 7.5.2: Acceleration plot for problem 7.5.

Problem 7.6
Resolve Problem 7.4 if 1 = 150 but all other data remain the same.

- 289 -

Solution
We must solve the problem for 1 from 0 to 360. For each value of 1 , we must solve for P, Q,
and R in Eq. (7.3).
P = - cos1cos 1sin 2sin 4 + sin1sin 2cos 4
Q = sin1sin 2sin 4
R = cos1sin 1cos 2sin 4 + cos1cos2cos 4 - cos 3

(7.3)

Hence referring to Table 3.1, we can obtain values for 2 given 1 from:
Q +  P2 + Q2  R2
R P
where  = 1 is a sign variable, and
2 = 2 tan-1(t).
t=

(7.4)
(7.5)

The two solutions correspond to the two solutions obtained in the solution of the position
problem of a planar four-bar, and have the same source in the reflection of the driven-crank and
coupler about the plane of the moving joint axis of the driving-crank and the fixed joint axis of
the driven-crank. By checking both solutions for 2 = 90 , we can determine that the solution
corresponding to the figure in the problem statement is for  = -1.
We can also develop relationships between the angular velocities about joints 1 and 2 by
differentiation of Eq. (7.1). Differentiation of Eq. (7.1) with respect to time gives, after
rearrangement:
sin 4(cos1 sin 2 sin  2 + sin 1 cos2 cos 1sin  2  sin 1 sin1 cos 2)
2 = 1
sin 2(sin1 cos2 sin 4 + cos1 sin 2 cos 1 sin 4  sin 2 sin1 cos 4 )

(7.6)

We can simplify this expression using


cos 2 = cos 3 = cos 4 = 0
and
sin 2 = sin 3 = sin 4 = 1
However, it is relatively easy to write a general MATLAB program to solve Eq. (7.6) directly, so
the simplification is not necessary.
An expression for the acceleration is given by Eqs. (7.7) and (7.8). These are


2 = 1 2 + B 12 + C 12 + D 22
A
A
A
1

(7.7)

where
A = sin2(sin1cos2sin 4 + cos1sin2cos 1sin 4 - sin2sin 1cos 4)
B = 2sin2sin 4(sin1sin2cos 1 - cos1cos2)
C = sin4(sin1sin2sin 2 -cos1cos2cos 1sin 2 + cos1sin 1cos 2)
D = sin 2(sin1sin2sin 4 - cos1cos2cos 1sin 4 + cos2sin 1cos 4)

- 290 -

(7.8)

These equations can also be easily programmed using MATLAB. Once the values are
computed, they can be plotted as a function of the rotation of link 2. The resulting program is
given in the following:
% MATLAB program for problem 7.6
%Program
clf;
clear all;
ans='y';
disp('
')
disp('

Universal Joint Analysis Program')

%Input the linkage variables


alpha1=150
alpha2=90
alpha3=90
alpha4=90
phi1dot=100
phi1ddot=0
fact=pi/180;
al1=alpha1*fact;
al2=alpha2*fact;
al3=alpha3*fact;
al4=alpha4*fact;
phi1i=0;
phi1f=360;
phii=phi1i*fact;
phif=phi1f*fact;
dphi=(phif-phii)/360;
i=0
for phi=phii:dphi:phif
i=i+1;
% Position calculations
P=-cos(phi)*cos(al1)*sin(al2)*sin(al4)+sin(al1)*sin(al2)*cos(al4);
Q=sin(phi)*sin(al2)*sin(al4);
R=cos(phi)*sin(al1)*cos(al2)*sin(al4)+cos(al1)*cos(al2)*cos(al4)cos(al3);
arg=P*P+Q*Q-R*R;
p1=0;
p2=0;
if arg>=0
den=R-P;
if den==0; den=0.1*10^-16; end
t2=(-Q-sqrt(arg))/(den);
p2=2*atan(t2);
end
ph1(i)=phi/fact;
temp=p2/fact;
if temp<0; temp=temp+360; end
ph2(i)=temp;

- 291 -

% Velocity calculations
num2=sin(al4)*(cos(phi)*sin(p2)*sin(al2)+...
sin(phi)*cos(p2)*cos(al1)*sin(al2)-sin(phi)*sin(al1)*cos(al2));
den2=sin(al2)*(sin(phi)*cos(p2)*sin(al4)+...
cos(phi)*sin(p2)*cos(al1)*sin(al4)-sin(p2)*sin(al1)*cos(al4));
phi2dot2=-phi1dot*(num2/den2);
phi2d(i)=phi2dot2;
% Acceleration calculations
A2=sin(al2)*(sin(phi)*cos(p2)*sin(al4)+...
cos(phi)*sin(p2)*cos(al1)*sin(al4)-sin(p2)*sin(al1)*cos(al4));
B2=2*sin(al2)*sin(al4)*(sin(phi)*sin(p2)*cos(al1)-cos(phi)*cos(p1));
C2=sin(al4)*(sin(phi)*sin(p2)*sin(al2)-...
cos(phi)*cos(p2)*cos(al1)*sin(al2)+cos(phi)*sin(al1)*cos(al2));
D2=sin(al2)*(sin(phi)*sin(p2)*sin(al4)-...
cos(phi)*cos(p2)*cos(al1)*sin(al4)+cos(p2)*sin(al1)*cos(al4));
phi2ddot2=(phi1ddot*phi2dot2)/phi1dot+(B2/A2)*phi1dot*phi2dot2+...
(C2/A2)*phi1dot^2+(D2/A2)*phi2dot2^2;
phi2dd(i)=phi2ddot2;
end
% plot the results.

Start with the velocity curve

clf;
height=0.5;
width=0.5;
xmin=0;
xmax=360;
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',10);
xlabel('Link 2 rotation, deg','color', 'k', 'fontname',...
'times', 'fontsize', 10);
ylabel('Link 4 Angular Velocity, rad/s','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
yminv=min(phi2d);
ymaxv=max(phi2d);
axis([xmin xmax yminv ymaxv]);
% Set up the vectors needed to draw the velocity
curve1=line('xdata', [], 'ydata', [],...
'linewidth', 1.5, 'erasemode', 'xor', 'color', 'r');
set(curve1,'xdata', ph1, 'ydata' ,phi2d);
pause
clf

- 292 -

% Draw the acceleraton curve


axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',10);
xlabel('Link 2 rotation, deg','color', 'k', 'fontname',...
'times', 'fontsize', 10);
ylabel('Link 4 Angular Acceleration, rad/s^2','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
ymina=min(phi2dd);
ymaxa=max(phi2dd);
axis([xmin xmax ymina ymaxa]);
% Set up the vectors needed to draw the acceleraton
curve1=line('xdata', [], 'ydata', [],...
'linewidth', 1.5, 'erasemode', 'xor', 'color', 'r');
set(curve1,'xdata', ph1, 'ydata' ,phi2dd);

The velocity and acceleration plots areshown in Figs. 7.6.1 and 7.6.2.

Fig. 7.6.1: Velocity plot for problem 7.6.

- 293 -

Fig. 7.5.2: Acceleration plot for problem 7.5.

Problem 7.7
The mechanism shown is used for a steering linkage for an automobile. The wheel base is 110
in, and link OFF is driven by the steering column. The toe-in angle ( ) is 9. If the link
dimensions are given as shown, determine the y error in the Ackermann steering condition (see
Figs. 7.23 and 7.26) for a 10 CCW rotation of O FF. Recall that the linkage OEEFOF is a
parallelogram.

OA

OB
D
B

F
OF

C
E A
OE

11 in

O BOA = 50 in
OBB = O AA = 3 in
OF F = O EE = 3 in
BD = AC = 12 in
DC = 26 in
OF OE = 28 in
h = 8 in

Solution
The linkage can be analyzed by first considering the parallelogram linkage OFFEOE and then
analyzing the two dyads acting in parallel. Because loop O FFEOE is a parallelogram, we can
calculate the positions of points D and C as shown in Fig. 7.7.1. Let,
r1 = OFOE = FE = 28 in
r2 = OFF = OE E = 5 in
r3 = FD = EC = 1 in

- 294 -

OB

OA
30 in
28 in

1 in
B

A
F

E
C

8 in

OF

OE

11 in

Fig. 7.7.1: Dimensions for linkage

When the wheels are in the neutral position,  = 90. Therefore, when OFF rotates 10 CCW,
 = 100. Then,
xD = r2 cos + r3 = 5cos(100) + 1= 0.1317 in
yD = r2 sin = 5sin(100) = 4.9240 in
and

xC = r1 + r2 cos  r3 = 30 + 5cos(100)  1= 28.1317 in


yC = r2 sin = 5sin(100) = 4.9240 in

The coordinates of OB and OA are


xOB = 11
yOB = 8
and
xOA = 11+ 50 = 39
yOA = 8
We can now analyze the dyads. Let the left hand dyad be as shown in Fig. 7.7.2. Then,
rOB/D = d1 + d2
or
xOB  x D = d1 cos 1 + d2 cos 2 =  x = 11 0.1317 = 11.1317 in
yOB  yD = d1sin 1 + d2 sin 2 = y = 8  4.9240 = 3.0760 in
To solve for 1 , isolate the terms involving  2 on one side of the equation. Then,

- 295 -

3
OB

d2
2
B

d1

1
D

Fig. 7.7.2: Left hand dyad

d2 cos  2 = x  d1 cos 1
d2 sin  2 = y  d1 sin 1

(1)

Now square both sides of both equations and add. The result, after simplifying, is
0 = 2x + 2y + d12  d22  2 x d1 cos 1  2y d1sin 1
Collecting terms and using Eqs. (3.33) and (3.34),
a = 2x d1 = 2(11.1317)(12) = 267.1622
b = 2yd1 = 2(3.0760)(12) = 73.8231
c = 2x + 2y + d12  d22 = (11.1317)2 + (3.0760)2 + (12)2  (3)2 = 268.3776
2
2
2
t = b b2  c2 + a2 = 73.8231+ (73.8231)  (268.3776) + (267.1622) = 117.7391
c a
268.3776  267.1622
In the expression for t, we use the plus sign on the square root. This corresponds to to
configuration shown in Fig. 7.7.2. The corresponding value for 1 is

1 = 2tan1 t = 2tan1(117.7391) = 179.0268


From Eq. (1),
tan  2 =

y  d1 sin 1
= 3.0760 12sin(179.0268) = 2.8722 = 3.3147
x  d1 cos 1 11.1317 12cos(179.0268) 0.8665

The angle  2 is in the first quadrant. Therefore,  2 is given by

 2 = tan1(3.3147) = 73.212
- 296 -

The wheel stub shaft angle  3 shown in Fig. 7.7.2 is given by

 3 = 2 + 2701 = 73.212+2709= 334.212


Then, the equation for the centerline of the wheel is given by
y = yOB + (x  xOB )tan 3

(2)

The right-hand dyad is shown in Fig. 7.7.3. From that figure,


rOA /C = d3 + d4
or
xOA  xC = d3 cos 4 + d4 cos 5 =  x = 39  26.1318 = 12.8682
yOA  yC = d3 sin 4 + d4 sin 5 = y = yOA  yC = 8  4.9240 = 3.076
To solve for  4 , isolate the terms involving  5 on one side of the equation. Then,

OA

d4
5
A
d3
C

2
4
Fig. 7.7.3: Right-hand dyad

d4 cos  5 =  x  d3 cos  4
d4 sin  5 =  y  d3 sin  4

(1)

Now square both sides of both equations and add. The result, after simplifying, is
0 =  x2 +  2y + d32  d42  2x d3 cos 4  2 y d3 sin  4
Collecting terms and using Eqs. (3.33) and (3.34),
e = 2 x d3 = 2(12.8682)(12) = 308.8378
f = 2 yd3 = 2(3.076)(12) = 73.8231
g =  x2 +  y2 + d32  d24 = (12.8682)2 + (3.076)2 + (12)2  (3)2 = 310.0532
2
2
2
2
2
2
t =  f  f  g + e = 73.8231+ (73.8231)  (310.0532) + (308.8378) = 0.0085
ge
310.0532 + 308.8378

- 297 -

In the expression for t, we use the plus sign on the square root. This corresponds to to
configuration shown in Fig. 7.7.3. The corresponding value for  4 is

 4 = 2tan1 t = 2tan1(0.0085) = 0.9783


Then from Eq. (1),
tan  5 =

 y  d3 sin  4
= 3.076  12sin0.9783 = 2.8711 = 3.3003
 x  d3 cos  4 12.8682  12cos0.9783 0.8699

The angle  5 is in the first quadrant. Therefore,  5 is given by

 5 = tan1(3.3003) = 73.143
The angle for the wheel stub shaft is given by

 6 = 5 + 270+ 2 = 73.143+270+9= 352.143


Then, the equation for the centerline of the wheel is given by
y = yOA + (x  xOA)tan 6

(2)

The intersection of the two axes can be found by solving Eqs. (1) and (2) simulaneously. Then,
yOA + (x  xOA)tan 6 = yOB + (x  xOB )tan  3
Solving for x,
x=

yOB  yOA + xOA tan  6  xOB tan 3 8  8 + 39tan(352.143) + 11tan(334.212)


=
= 30.9923
tan(352.143)  tan(334.212)
tan 6  tan 3

Backsubstituting into Eq. (2) will give the corresponding value for y. Then,
y = yOA + (x  xOA)tan 6 = 8 + (30.9923  39)tan(352.143) = 17.659 in
In the ideal case, the value for y will be given by
yi = wheel base + 8 = 110 + 8 = 102 in
Therefore, the error in the linkage is given by

 y = yi  y = 102  17.659 = 119.659 in


Problem 7.8
Write a computer program to analyze the steering linkage shown in Problem 7.7. If only h can
change, determine the optimum value for h that will give the least error in y for the Ackermann
steering condition for a 15 rotation of OFF.

- 298 -

Solution
The linkage geometry is shown in Fig. 7.8.1. Assume that the wheel base is the same (110 in) as
that given in Problem 7.7.

OA

OB
D
B

C
E A
OE

F
OF

O BOA = 50 in
OBB = O AA = 3 in
BD = AC = 12 in
DC =26 in
OBO A = 30 in

Fig. 7.8.1: Basic linkage for Problem 7.8.

The independent variables which must be determined are:


 (toe-in angle), DC, and h.
We will first generate the analysis equations and then conduct the optimization. First let
r1 = OFOE = FE
r2 = OFF = OE E
r3 = FD = CE = (FE  DC) / 2
w = (OAOB  OFOE ) / 2
The linkage can be analyzed by first considering the parallelogram linkage OFFEOE and then
analyzing the two dyads acting in parallel. Because loop O FFEOE is a parallelogram, we can
develop equations for the positions of points D and C as shown in Fig. 7.8.2.
When the wheels are in the neutral position,  = 90. Therefore, when O FF rotates 15, then,
75   105. The points on the parallogram can be computed from,
xD = r2 cos + r3
yD = r2 sin
and
xC = r1 + r2 cos  r3
yC = r2 sin

- 299 -

OB

OA

A
F

OF

OE

Fig. 7.8.2: Dimensions for linkage

The coordinates of OB and OA are


xOB = w = (OBOA  FE) / 2
yOB = h
and
xOA = OAOB  w
yOA = h
We can now analyze the dyads. Let the left hand dyad be as shown in Fig. 7.8.3. Then,
rOB/D = d1 + d2
or
xOB  x D = d1 cos 1 + d2 cos 2 =  x
yOB  yD = d1sin 1 + d2 sin 2 = y
To solve for 1 , isolate the terms involving  2 on one side of the equation. Then,
d2 cos  2 = x  d1 cos 1
d2 sin  2 = y  d1 sin 1

(1)

Now square both sides of both equations and add. The result, after simplifying, is
0 = 2x + 2y + d12  d22  2 x d1 cos 1  2y d1sin 1

- 300 -

3
OB

d2
2
B

d1

1
D

Fig. 7.8.3: Left hand dyad

Collecting terms and using Eqs. (3.33) and (3.34),


a = 2x d1
b = 2yd1
c = 2x + 2y + d12  d22
2
2
2
t = b + b  c + a
c a
In the expression for t, we use the plus sign on the square root. This corresponds to to
configuration shown in Fig. 7.8.3. The corresponding value for 1 is

1 = 2tan1 t
From Eq. (1),
tan  2 =

y  d1 sin 1
x  d1 cos 1

The angle  2 is in the first quadrant. Therefore,  2 is given by


 y  d1sin 1 
 2 = tan1
 x  d1 cos 1 
The wheel stub shaft angle  3 shown in Fig. 7.8.3 is given by

 3 = 2 + 270
Then, the equation for the centerline of the wheel is given by
- 301 -

y = yOB + (x  xOB )tan 3

(2)

The right-hand dyad is shown in Fig. 7.8.4. From that figure,


rOA /C = d3 + d4
or
xOA  xC = d3 cos 4 + d4 cos 5 =  x
yOA  yC = d3 sin 4 + d4 sin 5 = y
To solve for  4 , isolate the terms involving  5 on one side of the equation. Then,

OA

d4
5
A
d3
C

2
4
Fig. 7.8.4: Right-hand dyad

d4 cos  5 =  x  d3 cos  4
d4 sin  5 =  y  d3 sin  4

(3)

Now square both sides of both equations and add. The result, after simplifying, is
0 =  x2 +  2y + d32  d42  2x d3 cos 4  2 y d3 sin  4
Collecting terms and using Eqs. (3.33) and (3.34),
e = 2 x d3
f = 2 yd3
g =  x2 +  y2 + d32  d24
2
2
2
t = f  f g + e
ge
In the expression for t, we use the plus sign on the square root. This corresponds to to
configuration shown in Fig. 7.8.4. The corresponding value for  4 is

 4 = 2tan1 t
Then from Eq. (3),

- 302 -

tan  5 =

 y  d3 sin  4
 x  d3 cos  4

The angle for the wheel stub shaft is given by

 6 = 5 + 270+
Then, the equation for the centerline of the wheel is given by
y = yOA + (x  xOA)tan 6

(4)

The intersection of the two axes can be found by solving Eqs. (3) and (4) simulaneously. Then,
yOA + (x  xOA)tan 6 = yOB + (x  xOB )tan  3
Solving for x,
x=

yOB  yOA + xOA tan  6  xOB tan 3


tan 6  tan 3

Backsubstituting into Eq. (2) will give the corresponding value for y. Then,
y = yOA + (x  xOA)tan 6
In the ideal case, the value for y will be given by
yi = wheel base + h
Therefore, the error in the linkage is given by

 y = yi  y
To optimize the system, we need to determine the value for h that will minimize  y We will do
this using MATLAB and a simple grid search. For this we will vary h between reasonable
limits using equal increments. Once the optimum location is determined approximately, we can
refine the grid and redo the grid search with smaller bounds for each of the design variables if
desired. For the search, we will use the limits 5< h <10 and 1000 equal increments within this
range.
For each interation of h, we will increment  between 75 and 105 and identify the maximum
error in the range. The objective will be to minimize the maximum error for all values of  and
h. The equations which must be solved for each iteration are summarized in the following.
r1 = OFOE = FE
r2 = OFF = OE E
r3 = FD = CE = (FE  DC) / 2
w = (OAOB  OFOE ) / 2
xD = r2 cos + r3
yD = r2 sin

- 303 -

xC = r1 + r2 cos  r3
yC = r2 sin
xOB = w = (OBOA  FE) / 2
yOB = h
xOA = OAOB  w
yOA = h
a = 2x d1
b = 2yd1
c = 2x + 2y + d12  d22
2
2
2
t = b + b  c + a
c a

1 = 2tan1 t
tan  2 =

y  d1 sin 1
x  d1 cos 1

 y  d1sin 1 
 2 = tan1
 x  d1 cos 1 

 3 = 2 + 270
e = 2 x d3
f = 2 yd3
g =  x2 +  y2 + d32  d24
2
2
2
t = f  f g + e
ge

 4 = 2tan1 t
tan  5 =
x=

 y  d3 sin  4
 x  d3 cos  4

yOB  yOA + xOA tan  6  xOB tan 3


tan 6  tan 3

y = yOA + (x  xOA)tan 6
yi = wheel base + h

 y = yi  y
The MATLAB program for conducting the simple optimization is summarized in the following.

- 304 -

% MATLAB program for problem 7.8


%Program
clf;
clear all;
ans='y';
disp('
')
disp('

Akermann Steering Linkage Analysis Program')

%Input the linkage variables


DC=28;
FE=28
r3=(FE-DC)/2;
OBOA=50
w=(OBOA-FE)/2
OBB=3
OFF=8
DB=12
WB=110
emax=0
alphas=0
emin=10^10
h1=5
h2=10
dh=(h2-h1)/1000
hs=0;
r1=FE;
r2=5;
d1=12;
d2=3;
d3=12;
d4=3;
xOB=-w;
xOA=OBOA-w;
r3=(FE-DC)/2;
alp=9;
for h=h1:dh:h2
i=0;
emax=0;
flag1=0;
for theta=75:5:105
i=i+1;
alpha=alp;
fact=pi/180;
td=theta*fact;
ad1=alpha*fact;
xd=r2*cos(td)+r3;
yd=r2*sin(td);
xc=r1+r2*cos(td)-r3;
yc=yd;

- 305 -

yOB=h;
yOA=h;
% Analyze the first dyad.
deltax=xOB-xd;
deltay=yOB-yd;
a=-2*deltax*d1;
b=-2*deltay*d1;
c=deltax^2+deltay^2+d1^2-d2^2;
arg1=b*b-c*c+a*a;
if arg1<0; flag1=1; end
if c==a; c=1.0000000001*a; end
t=(-b+sqrt(arg1))/(c-a);
beta1=2*atan(t);
beta1d=beta1/fact;
beta2=atan2(deltay-d1*sin(beta1), deltax-d1*cos(beta1));
beta2d=beta2/fact;
beta3=beta2+(3*pi)/2-ad1;
beta3d=beta3/fact;
% Analyze the second dyad
deltax=xOA-xc;
deltay=yOA-yc;
a=-2*deltax*d3;
b=-2*deltay*d3;
c=deltax^2+deltay^2+d3^2-d4^2;
arg1=b*b-c*c+a*a;
if arg1<0; flag1=1; end
if c==a; c=1.0000000001*a; end
t=(-b-sqrt(arg1))/(c-a);
beta4=2*atan(t);
betad4=beta4/fact;
beta5=atan2(deltay-d3*sin(beta4), deltax-d3*cos(beta4));
betad5=beta5/fact;
beta6=beta5+(3*pi)/2+ad1;
if beta6>2*pi; beta6=beta6-2*pi; end
betad6=beta6/fact;
if beta6==beta3; beta6=1.0000000001*beta3; end
x=(yOB-yOA+xOA*tan(beta6)-xOB*tan(beta3))/(tan(beta6)-tan(beta3));
y=yOA+(x-xOA)*tan(beta6);
yi=-WB+h;
% Find the maximum error for the range of theta
error=yi-y;
if abs(error)>emax & flag1==0
emax=abs(error);
end
end
% Determine if the maximum error is less than emin.
if abs(emax)<emin & flag1==0

- 306 -

emin=abs(emax);
hsave=h;
end
end
emin
h=hsave
% plot the results.

Start with the velocity curve

i=0;
for theta=75:1:105
i=i+1;
alpha=alp;
fact=pi/180;
td=theta*fact;
ad1=alpha*fact;
xd=r2*cos(td)+r3;
yd=r2*sin(td);
xc=r1+r2*cos(td)-r3;
yc=yd;
xOB=-11;
yOB=8;
xOA=39;
yOA=8;
% Analyze the first dyad.
deltax=xOB-xd;
deltay=yOB-yd;
a=-2*deltax*d1;
b=-2*deltay*d1;
c=deltax^2+deltay^2+d1^2-d2^2;
arg1=b*b-c*c+a*a;
t=(-b+sqrt(arg1))/(c-a);
beta1=2*atan(t);
beta1d=beta1/fact;
beta2=atan2(deltay-d1*sin(beta1), deltax-d1*cos(beta1));
beta2d=beta2/fact;
beta3=beta2+(3*pi)/2-ad1;
beta3d=beta3/fact;
% Analyze the second dyad
deltax=xOA-xc;
deltay=yOA-yc;
a=-2*deltax*d3;
b=-2*deltay*d3;
c=deltax^2+deltay^2+d3^2-d4^2;
arg1=b*b-c*c+a*a;
t=(-b-sqrt(arg1))/(c-a);
beta4=2*atan(t);

- 307 -

betad4=beta4/fact;
beta5=atan2(deltay-d3*sin(beta4), deltax-d3*cos(beta4));
betad5=beta5/fact;
beta6=beta5+(3*pi)/2+ad1;
if beta6>2*pi; beta6=beta6-2*pi; end
betad6=beta6/fact;
if beta6==beta3; beta6=1.0000000001*beta3; end
x=(yOB-yOA+xOA*tan(beta6)-xOB*tan(beta3))/(tan(beta6)-tan(beta3));
y=yOA+(x-xOA)*tan(beta6);
yi=-WB+h;
error=yi-y;
% Store position information in matrices.
xx(i)=x;
yy(i)=y;
thet(i)=theta;
err(i)=error;
end
% plot the results
height=0.3;
width=0.35;
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',8);
xlabel('theta (deg)','color', 'k', 'fontname',...
'times', 'fontsize', 8);
ylabel('x, y, err (in)','color', 'k', 'fontname',...
'times', 'fontsize', 8);
set(gcf,'color', 'w')
xmin=75;
xmax=105;
ymin=min([xx, yy, err]);
ymax=max([xx, yy, err]);
axis([xmin xmax ymin ymax]);
% Set up the vectors needed to draw the linkage
curvex = line('xdata', thet, 'ydata', xx,...
'linewidth', 1, 'erasemode', 'xor', 'color', 'b', 'linestyle', '');
hold on;
curvey = line('xdata', thet, 'ydata', yy,...
'linewidth', 1, 'erasemode', 'xor', 'color', 'r', 'linestyle', '.');
hold on;
curvez = line('xdata', thet, 'ydata', err,...
'linewidth', 1, 'erasemode', 'xor', 'color', 'k', 'linestyle', '.');
legend([curvex, curvey, curvez],'x','y', 'err');

The result from the interation is that the optimum h = 7.81 in. A plot of x, y, and the error is
given in Fig. 7.8.5.

- 308 -

Fig. 7.8.5: Plot of x, y, and error for optimum linkage

Problem 7.9
In the rack and pinion mechanism shown in Fig. 7.25, the wheel base is 125 in. If the link
dimensions are as given below, plot the y error in the Ackermann steering condition as a function
of the displacement u (see Fig. 7.23) for a 1.5-in displacement of u.
p = 55 in
a = 3.5 in
 = 10

b = 12 in
r = 11in
s = 6.0 in

Solution
For the solution, we can follow the procedure given in Example 7.5. We will plot the x and y
coordinates of the intersection of the front wheel axes for small increments of the rack
displacement, u, in the range -1.5 < u  1.5 in, where the reference frame has its origin at the
middle of the rear axle, as shown. The x coordinate can be interpreted as the radius of curvature
of the path followed by the vehicle, and the y coordinate is the error from perfect Ackermann
geometry. The linkage can be analyzed as two slider crank linkages acting in parallel with a
common input, u, applied to the sliders.
Figure 7.25 is redrawn as Fig. 7.9.1 below. For the right hand linkage, we can resolve the vector
components in the x and y directions, respectively.
a cos  + b cos = r + u
a sin  + b sin = s

(7.13)
(7.14)

where is the tie rod angle as shown in Fig. 7.9.1.


Similarly, for the left side
a cos  + b cos  = r - u

(7.15)

- 309 -

y
p

a
b

r
i

x
O

Fig. 7.9.1: The rack-and-pinion steering linkage geometry analyzed in Problem 7.9

a sin  + b sin  = s

(7.16)

may be eliminated from Eqs. (7.13) and (7.14) by segregating the terms on one side of each
equation, squaring both sides of both equations, and adding to give
b2 = (r + u - a cos )2 + (s - a sin )2
or
b2 = r 2 + s2 + a2 + u2 + 2 r u - 2 a u cos  - 2 a r cos  - 2 a s sin 

(7.17)

This equation has the form


P cos  + Q sin  + R = 0

(7.18)

where
P = 2 a (u + r)
Q=2as
R = b2 - a2 - r2 - s2 - u2 - 2 r u

(7.19)

Hence the standard solution of Table 3.1 may be applied to obtain values of  corresponding to
given values of u. Two values of  are obtained for each value of u, one positive and one
negative. Only the negative value is consistent with the configuration shown in Fig. 7.9.1, so
the positive values are discarded.

- 310 -

Similarly, elimination of  from Eqs. (7.15) and (7.16) gives


b2 = (r - u - a cos )2 + (s - a sin )2
or
b2 = r 2 + s2 + a2 + u2 - 2 r u + 2 a u cos  - 2 a r cos  - 2 a s sin 
This equation has the form
P' cos  + Q' sin  + R' = 0
where

(7.20)
(7.21)

P' = 2 a (r - u)
Q=2as
R = b2 - a2 - r2 - s2 - u2 + 2 r u

(7.22)

for which the solution is also given by Table 3.1. Values of  for incremental values of u
throughout the specified range can be calculated. As was the case for  , two values of  are
obtained for each value of u, one positive and one negative. Only the negative solution is
consistent with the configuration drawn in Fig. 7.9.1, so the positive solutions are discarded.
Now  =  / 2     , and  =  +    / 2, where  and  are the steering angles of the inner
and outer front wheels, as shown in Fig. 7.9.1, and values of  and  may now be calculated.
The resulting values of  and  throughout the range of values of u are listed in Table 7.9.1.
Also,  and  determine the location of the intersection, i, of the axes of the wheels:
tan  =

qy
qy
, tan =
xp2
x+ p 2

(7.23)

Hence,
(x - p/2) tan  = (x + p/2) tan 
which, when solved for x, gives
x=

p  tan  + tan 
2  tan   tan 

(7.24)

Substitution for x into either of Eqs. (7.23) allows solution for y to give
 tan tan 
y = q  p
 tan  tan 
The analysis equations for this problem can be easily solved using MATLAB. A program for
doing this is given in the following.
% MATLAB program for Problem 7.9
clf;
clear all;
q=125;
p=55;

- 311 -

a=3.5;
alpha=10;
alphar=alpha*pi/180;
b=12;
r=11;
s=6;
% Loop to analyze the joint
du=0.1;
i=0;
for u = -1.5:du:1.5;
i=i+1;
ut=u;
P=2*a*(u+r);
Q=2*a*s;
R=b*b-a*a-r*r-s*s-u*u-2*r*u;
theta=2*atan((-Q-sqrt(Q*Q-R*R+P*P))/(R-P))

A=2*a*(r-u);
B=2*a*s;
C=b*b-a*a-r*r-s*s-u*u+2*r*u;
phi=2*atan((-B-sqrt(B*B-C*C+A*A))/(C-A));
gamma=pi/2-theta-alphar;
delta=phi+alphar-pi/2;
tg=tan(gamma);
td=tan(delta);
x=(p/2)*(tg+td)/(tg-td);
y=q-p*tg*td/(tg-td);
% Store position information in matrices.
xx(i)=x;
yy(i)=y;
uu(i)=u;
fprintf('%10.3f %10.3f %10.3f %10.3f %10.3f\n',u, delta, gamma, x,y)
end
% plot the results
clf;
height=0.4;
width=0.5;
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',10);
xlabel('u (in)','color', 'k', 'fontname',...
'times', 'fontsize', 10);
ylabel('x, y (in)','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
xmin=-1.75;
xmax=1.75;
ymin=min([xx,yy]);
ymax=max([xx,yy]);
axis([xmin xmax ymin ymax]);
% Set up the vectors needed to draw the linkage

- 312 -

curvex = line('xdata', uu, 'ydata', xx,...


linewidth',
'
1, 'erasemode', 'xor', 'color', 'b', 'linestyle', '');
hold on;
curvey = line('xdata', uu, 'ydata', yy,...
'linewidth', 1, 'erasemode', 'xor', 'color', 'r', 'linestyle', '.');
legend([curvex, curvey],'x','y');

The results are plotted in Fig. 7.9.2 for the given values of the design parameters (increment for u
is 0.1). A comparison of these results with those in Example 7.5 will indicate that the y error for
the dimensions in this problem are quite large. It is therefore important to choose the dimensions
for the Ackermann drive carefully.
Table 7.9.1: Numerical values obtained by solution of Problem 7.9
u
-1.500
-1.400
-1.300
-1.200
-1.100
-1.000
-0.900
-0.800
-0.700
-0.600
-0.500
-0.400
-0.300
-0.200
-0.100
0.000
0.100
0.200
0.300
0.400
0.500
0.600
0.700
0.800
0.900
1.000
1.100
1.200
1.300
1.400
1.500

gamma

delta

-0.051
-0.020
0.010
0.040
0.069
0.099
0.128
0.156
0.185
0.213
0.242
0.270
0.298
0.326
0.354
0.382
0.410
0.438
0.466
0.494
0.522
0.550
0.578
0.606
0.634
0.663
0.692
0.720
0.749
0.778
0.808

-0.808
-0.778
-0.749
-0.720
-0.692
-0.663
-0.634
-0.606
-0.578
-0.550
-0.522
-0.494
-0.466
-0.438
-0.410
-0.382
-0.354
-0.326
-0.298
-0.270
-0.242
-0.213
-0.185
-0.156
-0.128
-0.099
-0.069
-0.040
-0.010
0.020
0.051

30.319
28.656
26.919
25.112
23.242
21.314
19.333
17.304
15.234
13.126
10.987
8.821
6.634
4.431
2.218
-0.000
-2.218
-4.431
-6.634
-8.821
-10.987
-13.126
-15.234
-17.304
-19.333
-21.314
-23.242
-25.112
-26.919
-28.656
-30.319

127.949
126.140
124.459
122.904
121.475
120.171
118.990
117.934
117.003
116.195
115.511
114.952
114.516
114.205
114.019
113.957
114.019
114.205
114.516
114.952
115.511
116.195
117.003
117.934
118.990
120.171
121.475
122.904
124.459
126.140
127.949

- 313 -

Fig. 7.9.2: The coordinates of the intersection of the front wheel axes, i, plotted against the rack
displacement, u. x approximates the radius of curvature of the vehicle's path, and y is the error
in location of the intersection relative to the rear axle axis. That is, y is the deviation from the
Ackermann condition. Note the size of the error compared to that shown in Fig. 7.26 in the text.

Problem 7.10
A new subcompact automobile is being designed for rack and pinion steering. Assume that the
wheel base is 90 in. Determine the other dimensions such that the error in the Ackermann
steering condition is as small as possible for a 1.5-in displacement of the rack.
Solution
For the solution, we can follow the procedure given in Example 7.5 to derive the analysis
equations. We will determine the values for the x and y coordinates of the intersection of the
front wheel axes for small increments of the rack displacement, u, in the range -1.5 < u  1.5 in,
where the reference frame has its origin at the middle of the rear axle, as shown. The x
coordinate can be interpreted as the radius of curvature of the path followed by the vehicle, and
the y coordinate is the error from perfect Ackermann geometry. The linkage can be analyzed as
two slider crank linkages acting in parallel with a common input, u, applied to the sliders.
Figure 7.25 is redrawn as Fig. 7.10.1 below. For the right hand linkage, we can resolve the
vector components in the x and y directions, respectively.
a cos  + b cos = r + u
a sin  + b sin = s

(7.13)
(7.14)

where is the tie rod angle as shown in Fig. 7.9.1.


Similarly, for the left side
a cos  + b cos  = r - u

(7.15)

- 314 -

y
p

a
b

r
i

x
O

Fig. 7.10.1: The rack-and-pinion steering linkage geometry analyzed in Problem 7.9

a sin  + b sin  = s

(7.16)

may be eliminated from Eqs. (7.13) and (7.14) by segregating the terms on one side of each
equation, squaring both sides of both equations, and adding to give
b2 = (r + u - a cos )2 + (s - a sin )2
or
b2 = r 2 + s2 + a2 + u2 + 2 r u - 2 a u cos  - 2 a r cos  - 2 a s sin 

(7.17)

This equation has the form


P cos  + Q sin  + R = 0

(7.18)

where
P = 2 a (u + r)
Q=2as
R = b2 - a2 - r2 - s2 - u2 - 2 r u

(7.19)

Hence the standard solution of Table 3.1 may be applied to obtain values of  corresponding to
given values of u. Two values of  are obtained for each value of u, one positive and one
negative. Only the negative value is consistent with the configuration shown in Fig. 7.9.1, so
the positive values are discarded.

- 315 -

Similarly, elimination of  from Eqs. (7.15) and (7.16) gives


b2 = (r - u - a cos )2 + (s - a sin )2
or
b2 = r 2 + s2 + a2 + u2 - 2 r u + 2 a u cos  - 2 a r cos  - 2 a s sin 
This equation has the form
P' cos  + Q' sin  + R' = 0
where

(7.20)
(7.21)

P' = 2 a (r - u)
Q=2as
R = b2 - a2 - r2 - s2 - u2 + 2 r u

(7.22)

for which the solution is also given by Table 3.1. Values of  for incremental values of u
throughout the specified range can be calculated. As was the case for  , two values of  are
obtained for each value of u, one positive and one negative. Only the negative solution is
consistent with the configuration drawn in Fig. 7.9.1, so the positive solutions are discarded.
Now  =  / 2     , and  =  +    / 2, where  and  are the steering angles of the inner
and outer front wheels, as shown in Fig. 7.9.1, and values of  and  may now be calculated.
Also,  and  determine the location of the intersection, i, of the axes of the wheels:
tan  =

qy
qy
, tan =
xp2
x+ p 2

(7.23)

Hence,
(x - p/2) tan  = (x + p/2) tan 
which, when solved for x, gives
x=

p  tan  + tan 
2  tan   tan 

(7.24)

Substitution for x into either of Eqs. (7.23) allows solution for y to give
 tan tan 
y = q  p
 tan  tan 
We now have the equations necessary to analyze the error for any choice of values for p, b, a, r,
, and s. The design procedure will be to increment the design variables between reasonable
limits and to compute the error in y for -1.5 < u  1.5 in for each choice of the values for the
design variables.
For each interation, we will increment u between -1.5 and 1.5 and identify the maximum error in
the range. The objective will be to minimize the maximum error for all values of the design
varialbes..
This is tedius to do by hand, but relatively easy to do using MATLAB. For the analysis, we can
start with some relatively large limits for the individual design variables and then reduce the

- 316 -

limits as the solution location is identified. To begin the iterations, assume that limits for the
design variables are
45 < p  50

8 < b  12

5 < r  12

0 <   12

2.5 < a  3.5


3<s8

A MATLAB program for making the calculations is given in the following. In this program, the
limits have been reduced to the following in order to refine the calculations.
45 < p  49

8 < b  12

10 < r  12

6 <   10

2.5 < a  3.0


6<s8

% MATLAB program for Problem 7.10


clf;
clear all;
q=90;
% set the limits for the design variables
p1=46;
p2=49;
dp=(p2-p1)/5;
a1=2.5;
a2=3.0;
da=(a2-a1)/5;
alpha1=6;
alpha2=10;
dalpha=(alpha2-alpha1)/5;
b1=10;
b2=12;
db=(b2-b1)/3;
r1=6;
r2=10;
dr=(r2-r1)/3;
s1=6;
s2=8;
ds=(s2-s1)/3;
error=10^10;
for p=p1:dp:p2
for a=a1:da:a2
for alpha=alpha1:dalpha:alpha2
alphar=alpha*pi/180;
for b=b1:db:b2
for r=r1:dr:r2
for s=s1:ds:s2
% Loop to analyze the motion

- 317 -

du=(3)/10;
i=0;
err=0;
for u = -1.5:du:1.5;
i=i+1;
ut=u;
P=2*a*(u+r);
Q=2*a*s;
R=b*b-a*a-r*r-s*s-u*u-2*r*u;
theta=2*atan((-Q-sqrt(Q*Q-R*R+P*P))/(R-P))

A=2*a*(r-u);
B=2*a*s;
C=b*b-a*a-r*r-s*s-u*u+2*r*u;
phi=2*atan((-B-sqrt(B*B-C*C+A*A))/(C-A));
gamma=pi/2-theta-alphar;
delta=phi+alphar-pi/2;
tg=tan(gamma);
td=tan(delta);
x=(p/2)*(tg+td)/(tg-td);
y=q-p*tg*td/(tg-td);
% Store position information in matrices.
xx(i)=x;
yy(i)=y;
uu(i)=u;
% Compute the maximum error for the given iteration
if abs(y)>err; err=abs(y); end
end
% If the maximum error is less than the current value, store the maximum error
if abs(err)<error;
error=abs(err);
psave=p;
ssave=s;
alphasave=alpha;
rsave=r;
bsave=b;
asave=a;
end
end
end
end
end
end
end
fprintf('%10.3f %10.3f %10.3f %10.3f %10.3f %10.3f %10.3f %10.3f\n',...
error, psave, ssave, alphasave, rsave, bsave, asave)
% Analyze the linkage for the optimum values

- 318 -

p=psave;
s=ssave;
alpha=alphasave;
r=rsave;
b=bsave;
a=asave;
du=0.1;
i=0;
for u = -1.5:du:1.5;
i=i+1;
ut=u;
P=2*a*(u+r);
Q=2*a*s;
R=b*b-a*a-r*r-s*s-u*u-2*r*u;
theta=2*atan((-Q-sqrt(Q*Q-R*R+P*P))/(R-P))

A=2*a*(r-u);
B=2*a*s;
C=b*b-a*a-r*r-s*s-u*u+2*r*u;
phi=2*atan((-B-sqrt(B*B-C*C+A*A))/(C-A));
gamma=pi/2-theta-alphar;
delta=phi+alphar-pi/2;
tg=tan(gamma);
td=tan(delta);
x=(p/2)*(tg+td)/(tg-td);
y=q-p*tg*td/(tg-td);
% Store position information in matrices.
xx(i)=x;
yy(i)=y;
uu(i)=u;
end
% plot the results
clf;
height=0.4;
width=0.5;
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',10);
xlabel('u (in)','color', 'k', 'fontname',...
'times', 'fontsize', 10);
ylabel('x, y (in)','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
xmin=-1.75;
xmax=1.75;
ymin=min([xx,yy]);
ymax=max([xx,yy]);
axis([xmin xmax ymin ymax]);
% Set up the vectors needed to draw the linkage
curvex = line('xdata', uu, 'ydata', xx,...

- 319 -

linewidth',
'
1, 'erasemode', 'xor', 'color', 'b', 'linestyle', '');
hold on;
curvey = line('xdata', uu, 'ydata', yy,...
'linewidth', 1, 'erasemode', 'xor', 'color', 'r', 'linestyle', '.');
legend([curvex, curvey],'x','y');

The results from the analysis are:


p = 47.8 in

b = 11.33 in

a = 2.8 in

r = 7.33 in

 = 9.2

s = 6.67 in

The error in y is plotted in Fig. 7.10.2 for the given values of the design variables. A comparison
of these results with those in Example 7.5 will indicate that the y error is quite small for all
values of u.

Fig. 7.10.2: The coordinates of the intersection of the front wheel axes, i, plotted against the rack
displacement, u. x approximates the radius of curvature of the vehicle's path, and y is the error
in location of the intersection relative to the rear axle axis. That is, y is the deviation from the
Ackermann condition.

- 320 -

Problem 7.11
The center distance between the driver and follower of a Geneva mechanism is to be 3 in. The
driver is to rotate five revolutions for each rotation of the follower. The driving pin is to enter the
slot tangentially so that there will be no impact load. Do the following:
1) Design the Geneva mechanism and draw it.
2) Determine the angular velocity and acceleration of the Geneva wheel for one fifth of a
revolution if the angular velocity of the driver is 100 rpm CCW. Plot the results.
Solution
The mechanism must have five stations (N=5). The angle  in Fig. 7.31 is given by

 = 360/2N = 360/(2  5) = 36
The radius to the center of the pin is given by
r = Csin = 3sin36= 1.763 in
where C is the center distance between the driver and the follower of the Geneva mechanism.
Also from Fig. 7.31, the radius of the pin at the lowest point on the slot is given by
L = C(1  sin ) = 3(1 sin36) = 1.237 in
The resulting system is shown in Fig. 7.11.1.
The position, velocity, and acceleration of the Geneva mechanism are given by Eqs. (7.30),
(7.31), and (7.32). The equations are

(1sinsinsincos  )
cos  sin
 =  sin  (
1+ sin   2sin cos )
 = tan1

(7.30)
(7.31)

 =  2

sin  cos2  sin 


(1+ sin2   2sin  cos )2

(7.32)

In this problem,  = 100 rpm = 100(2 ) / 60 = 10.47 rad / s . The calculations can be done using
MATLAB. A program for making the calculations is given in the following. The results are
plotted in Fig. 7.11.2. In Fig. 7.11.2, the velocity and acceleration curves are normalized by
dividing the velocity and acceleration values by the maximum velocity and maximum
acceleration, respectively.
% MATLAB program for Problem 7.11
clf;
clear all;

- 321 -

% Loop to analyze the joint


i=0;
alpha=36;
alpr=alpha*pi/180;
thdot=100*2*pi/60;
Lxt=-30;
Lyt2=-0.5;
Lyt3=-0.7;
for theta = -36:1:36;
i=i+1;
th=theta*pi/180;
phi=atan(sin(alpr)*sin(th))/(1-sin(alpr)*cos(th));
dphi=thdot*sin(alpr)*(cos(th)-sin(alpr))/(1+(sin(alpr))^2-...
2*sin(alpr)*cos(th));
ddphi=-thdot^2*(sin(alpr)*cos(alpr)^2*sin(th))/((1+(sin(alpr))^2-...
2*sin(alpr)*cos(th))^2);
% Store position information in matrices.
x(i) = theta;
angle(i)=phi*180/pi;
velocity(i)=dphi;
acceleration(i)=ddphi;
zro(i)=0;
end
maxv=max(velocity);
minv=min(velocity);
normv=max([abs(maxv), abs(minv)]);
maxa=max(acceleration);
mina=min(acceleration);
norma=max([abs(maxa), abs(mina)]);
vel=velocity/normv;
acc=acceleration/norma;
% plot the results
clf;
height=0.4;
width=0.6;
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',9);
ylabel('Normalized Wheel Velocity, Acceleration','color', 'k', 'fontname',...
'times', 'fontsize', 10);
xlabel('Driver Angle (deg)','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
xmin=-36;
xmax=36;
ymin=min([vel, acc]);
ymax=max([vel, acc]);
axis([xmin xmax ymin ymax]);
% Set up the vectors needed to draw the linkage
zeroline = line('xdata', x, 'ydata',zro, 'linewidth', .5, 'erasemode', ...
'xor', 'color', 'k', 'linestyle', '-');

- 322 -

hold on;
vel = line('xdata', x, 'ydata', vel, 'linewidth', 1, 'erasemode',...
'xor', 'color', 'r', 'linestyle', '--');
hold on;
acc = line('xdata', x, 'ydata',acc, 'linewidth', 1, 'erasemode',...
'xor', 'color', 'b', 'linestyle', '-.');
hold on;
legend([vel, acc], 'Velocity','Acceleration');
text(Lxt,Lyt2,['Max vel. value is: ', num2str(normv)],'color', 'r');
text(Lxt,Lyt3,['Max acc. value is: ', num2str(norma)], 'color', 'b');

1.763in
3.00 in
2.427 in

1.237 in

Fig. 7.11.1:

Geneva mechanism for Problem 7.11

- 323 -

Fig. 7.11.2:

Plot of normalized velocity, and acceleration for Problem 7.11

Problem 7.12
Resolve Problem 7.11 if the input link rotates three revolutions for each rotation of the follower.
Conduct the velocity and acceleration analysis for one third of a rotation.
Solution
The mechanism must have three stations (N=3). The angle  in Fig. 7.31 is given by

 = 360/2N = 360/(2  3) = 60
The radius to the center of the pin is given by
r = Csin = 3sin60= 2.598 in
where C is the center distance between the driver and the follower of the Geneva mechanism.
Also from Fig. 7.31, the radius of the pin at the lowest point on the slot is given by
L = C(1  sin ) = 3(1 sin60) = 0.402 in
The resulting system is shown in Fig. 7.12.1.
The position, velocity, and acceleration of the Geneva mechanism are given by Eqs. (7.30),
(7.31), and (7.32). The equations are

(1sinsinsincos  )

 = tan1

(7.30)

- 324 -

 =  sin 
 =  2

sin
(1+ sincos2sin
 cos )

(7.31)

sin  cos2  sin 


(1+ sin2   2sin  cos )2

(7.32)

In this problem,  = 100 rpm = 100(2 ) / 60 = 10.47 rad / s . The calculations can be done using
MATLAB. A program for making the calculations is given in the following. The results are
plotted in Fig. 7.12.2. In Fig. 7.12.2, the velocity and acceleration curves are normalized by
dividing the velocity and acceleration values by the maximum velocity and maximum
acceleration, respectively.
% MATLAB program for Problem 7.12
clf;
clear all;
% Loop to analyze the joint
i=0;
alpha=60;
alpr=alpha*pi/180;
thdot=100*2*pi/60;
Lxt=-55;
Lyt2=-0.5;
Lyt3=-0.7;
for theta = -60:1:60;
i=i+1;
th=theta*pi/180;
phi=atan(sin(alpr)*sin(th))/(1-sin(alpr)*cos(th));
dphi=thdot*sin(alpr)*(cos(th)-sin(alpr))/(1+(sin(alpr))^2-...
2*sin(alpr)*cos(th));
ddphi=-thdot^2*(sin(alpr)*cos(alpr)^2*sin(th))/((1+(sin(alpr))^2-...
2*sin(alpr)*cos(th))^2);
% Store position information in matrices.
x(i) = theta;
angle(i)=phi*180/pi;
velocity(i)=dphi;
acceleration(i)=ddphi;
zro(i)=0;
end
maxv=max(velocity);
minv=min(velocity);
normv=max([abs(maxv), abs(minv)]);
maxa=max(acceleration);
mina=min(acceleration);
norma=max([abs(maxa), abs(mina)]);
vel=velocity/normv;
acc=acceleration/norma;
% plot the results
clf;

- 325 -

height=0.4;
width=0.6;
axes('position',[.2 .2 width height],'box','on','xcolor','k','ycolor','k',...
'fontname', 'times', 'fontsize',9);
ylabel('Normalized Wheel Velocity, Acceleration','color', 'k', 'fontname',...
'times', 'fontsize', 10);
xlabel('Driver Angle (deg)','color', 'k', 'fontname',...
'times', 'fontsize', 10);
set(gcf,'color', 'w')
xmin=-60;
xmax=60;
ymin=min([vel, acc]);
ymax=max([vel, acc]);
axis([xmin xmax ymin ymax]);
% Set up the vectors needed to draw the linkage
zeroline = line('xdata', x, 'ydata',zro,...
'linewidth', .5, 'erasemode', 'xor', 'color', 'k', 'linestyle', '');
hold on;
vel = line('xdata', x, 'ydata', vel, 'linewidth', 1, 'erasemode',...
'xor', 'color', 'r', 'linestyle', '--');
hold on;
acc = line('xdata', x, 'ydata',acc, 'linewidth', 1, 'erasemode',...
'xor', 'color', 'b', 'linestyle', '-.');
hold on;
legend([vel, acc], 'Velocity','Acceleration');
text(Lxt,Lyt2,['Max vel. value is: ', num2str(normv)],'color', 'r');
text(Lxt,Lyt3,['Max acc. value is: ', num2str(norma)], 'color', 'b');

- 326 -

2.598 in

3.00 in

1.5 in
0.402 in

Fig. 7.12.1:

Fig. 7.12.2:

Geneva mechanism for Problem 7.11

Plot of normalized velocity, and acceleration for Problem 7.11

- 327 -

You might also like