Ch 16 problems¶

In [1]:
from numpy import *
dtr = pi/180
g = 9.81     # m/s2
gfps = 32.2  # ft/s2

hand written solution

In [2]:
A,B = 5,2  # rad/s3, rad/s
t0 = 0.5   # s
r = 0.8    # m
w = A*t0**2+B
v = w*r
at = 2*A*t0*r
an = w**2*r
a = sqrt(at**2+an**2)
print('speed of A is {:.3f} m/s'.format(v))
print('acceleration of A is {:.3f} m/s2'.format(a))
speed of A is 2.600 m/s
acceleration of A is 9.349 m/s2

hand written solution

In [3]:
A = 0.8              # s^(-2)
rA,rB,rC = 50,60,40  # mm
w0 = 5               # rad/s
Q = 3*2*pi           # rad
alphaC = rA/rC*A*Q
w = sqrt(w0**2+A*Q**2)
wC = rA/rC*w
at = alphaC*rB
an = wC**2*rB
a = sqrt(at**2+an**2)
print('acceleration of B is {:.3f} m/s2'.format(a/1e3))
acceleration of B is 29.014 m/s2

In [4]:
A = 4  
t1 = 4   # s
w0 = 2   # rad/s
rS,rA = 0.3,1  # in
wA = rS/rA*( w0**(1/4) + A*t1/4 )**4
print('angular velocity of brush is {:.2f} rad/s'.format(wA))
angular velocity of brush is 217.53 rad/s

hand written solution

In [5]:
rA,rB,rP = 0.7,1.4,2.2  # in
t1 = 0.75        # s
A = 300          # rad/s^5/2
wB = 2*rA/(3*rB)*A*t1**(3/2)
alphaB = rA/(rB)*A*t1**(1/2)
v = wB*rP
at = alphaB*rP
an = wB**2*rP
a = sqrt(at**2 + an**2)
print('speed of P is {:.3f} ft/s'.format(v/12))
print('acceleration of P is {:.3f} ft/s2'.format(a/12))
speed of P is 11.908 ft/s
acceleration of P is 773.804 ft/s2

hand written solution

In [6]:
rA,rB,rC,rD,rE = 40,225,30,300,50  # mm
A,B,C = 100,4,1
t1 = 5   # s
s = rE*rC*rA/(rD*rB)*A*(B*t1+0.5*C*t1**2)
print('distance is {:.2f} m'.format(s/1e3))
distance is 2.89 m

In [7]:
w0 = 14                        # rad/s
rOA = array(( -0.3,0.2,0.6 ))  # m
uOA = rOA / sqrt(sum(rOA**2))
w = w0*uOA                     # rad/s
rOC = array(( -0.3,0.4,0 ))    # m
vC = cross( w, rOC )
print('velocity of C is ({:.3f} i {:+.3f} j {:+.3f} k) m/s'.format(*vC))
aC = cross(w,cross(w,rOC))
print('acceleration of C is ({:.3f} i {:+.3f} j {:+.3f} k) m/s2'.format(*aC))
velocity of C is (-4.800 i -3.600 j -1.200 k) m/s
acceleration of C is (38.400 i -64.800 j +40.800 k) m/s2

In [8]:
rAC = array(( -0.4, 0, 0.3  ))  # m
jhat = array(( 0,1,0 ))
w = 5*jhat
alpha = 8*jhat
v = cross(w,rAC)
v_mag = sqrt(sum(v**2))
print('speed of C is {:.3f} m/s'.format(v_mag))
a = cross(alpha,rAC) + cross(w, cross(w,rAC))
a_mag = sqrt(sum(a**2))
print('acceleration of C is {:.3f} m/s2'.format(a_mag))
speed of C is 2.500 m/s
acceleration of C is 13.124 m/s2

hand written solution

In [9]:
A,B = 4,1  # 1/s2,rad/s2
r = 8/12   # ft
p = 30*dtr # rad
Q = 6      # rad
R = r*cos(p)
w = sqrt(A*Q**2+2*B*Q)
v = w*R
alpha = A*Q+B
a = R*sqrt(alpha**2+w**4)
print('magnitude of velocity is {:.3f} ft/s'.format(v))
print('magnitude of acceleration is {:.3f} ft/s2'.format(a))
magnitude of velocity is 7.211 ft/s
magnitude of acceleration is 91.216 ft/s2

hand written solution

hand written solution

In [10]:
v = 2  # m/s
a = 3  # m/s2
Q = 50*dtr  # rad
l = 0.3 # m
w = v/(l*sin(Q))
alpha = 1/sin(Q)*(a/l - cos(Q)*w**2)
print('omega = {:.3f} rad/s'.format(w))
print('alpha = {:.3f} rad/sa'.format(alpha))
omega = 8.703 rad/s
alpha = -50.497 rad/sa

hand written solution

In [11]:
v = 10    # m/s
a =-16    # m/s2
l = 0.3   # m
Q = 60*dtr # rad
w = -v/(2*l*sin(Q))
alpha = (-a/2/l - cos(Q)*w**2)/sin(Q)
print('omega = {:.3f} rad/s'.format(w))
print('alpha = {:.3f} rad/s2'.format(alpha))
omega = -19.245 rad/s
alpha = -183.041 rad/s2

hand written solution

In [12]:
L,l = 0.6,0.3  # m
Q0 = 30*dtr    # rad
pdot = 4       # rad/s
A,B,C = 1, -2*L*cos(Q0), L**2-l**2
x0p,x0m = (-B+sqrt(B**2-4*A*C))/(2*A), (-B-sqrt(B**2-4*A*C))/(2*A)
print('intermediate results:')
print('\troots are x0 = {:.3f}(+), {:.3f} (-) m'.format(x0p,x0m))
x0 = x0p
p0 = arccos( (L**2+l**2-x0**2)/(2*L*l) )
print('\tphi0 is {:.3f} deg'.format(p0/dtr))
v0 = 1/x0*L*l*sin(p0)*pdot
Qdot = (v0*cos(Q0) - l*sin(p0)*pdot)/(x0*sin(Q0))
print('theta-dot is {:.3f} rad/s'.format(Qdot))
intermediate results:
	roots are x0 = 0.520(+), 0.520 (-) m
	phi0 is 60.000 deg
theta-dot is -0.000 rad/s

Could also use Law of Sines:

In [13]:
Qdot = (l*cos(p0)*pdot - v0*sin(Q0))/ (x0*cos(Q0))
print('theta-dot is {:.3f} rad/s'.format(Qdot))
theta-dot is -0.000 rad/s

hand written solution

In [14]:
L,l = 3,2     # ft
Q0 = 45*dtr   # rad
p0 = 30*dtr   # rad
wAB = 3       # rad/s
wBC = wAB*l*cos(p0)/(L*cos(Q0))
vC = -L*wBC*sin(Q0) + l*wAB*sin(p0)
print('x-velocity of C is {:.3f} ft/s'.format(vC))
x-velocity of C is -2.196 ft/s

hand written solution

In [15]:
wAB = 8      # rad/s
l,L = .3,.7  # m
Q0 = 60*dtr  # rad
p0 = Q0
wCD = -wAB*sin(Q0)/sin(p0)
wBP = (wCD*cos(p0) - wAB*cos(Q0))/2
alpha = arctan(l/L)
z = sqrt(l**2+L**2)
vPA = array(( z*wBP*cos(alpha)-l*wAB*sin(Q0),
              z*wBP*sin(alpha)+l*wAB*cos(Q0) ))
print('velocity of P is ({:.3f} i {:+.3f} j) m/s'.format(*vPA))
print('angular velocity of P is {:.3f} rad/s'.format(wBP))
velocity of P is (-4.878 i -0.000 j) m/s
angular velocity of P is -4.000 rad/s

hand written solution

In [16]:
Q = 30*dtr  # rad
p = arctan(3/4)
vA = 4      # m/s
lBD,lAD = .25,.3  # m
lCD,lDE = .4,.3   # m
lAB = lBD+lAD
lCE = lCD+lDE
wAB = vA/(lAB*cos(p))
wCD = (vA-lAD*wAB*cos(p))/(-lCD*cos(Q))
vC = lCD*wCD*sin(Q) + lAD*wAB*sin(p)
vE = array(( vC-lCE*wCD*sin(Q) , lCE*wCD*cos(Q) ))
print('velocity of E is ({:.3f} i {:+.3f} j) m/s'.format(*vE))
print('              magnitude {:.3f} m/s, direction {:.3f} deg'.format(sqrt(sum(vE**2)),arctan2(vE[1],vE[0])/dtr))
velocity of E is (2.424 i -3.182 j) m/s
              magnitude 4.000 m/s, direction -52.703 deg

hand written solution

In [17]:
R,rA,rB,rC = 0.6,0.2,0.3,0.1  # m
wD = 18   # rad/s
wB = (R-rC)/rC*wD
wA = (rB*wB + (R-rC)*wD)/rA
print('angular velocity of B (planet) is {:.3f} rad/s'.format(wB))
print('angular velocity of A (sun) is {:.3f} rad/s'.format(wA))
angular velocity of B (planet) is 90.000 rad/s
angular velocity of A (sun) is 180.000 rad/s

hand written solution

In [18]:
wA = 3  # rad/s
lAB,lBC,lCD = 6,8,4  # in
Q,p = 30*dtr,45*dtr  # rad
alpha = (lCD*sin(p))/(lBC*cos(Q))
wD = -lAB*wA/(lCD*cos(p)+alpha*lBC*sin(Q))
print('angular velocity of CD is {:.3f} rad/s'.format(-wD))
angular velocity of CD is 4.035 rad/s

hand written solution

In [19]:
vC = 4       # ft/s
r = 1        # ft
w = 6        # rad/s
v_belt = 12  # ft/s
vB = -vC-r*w
vA = -vC+r*w
print('A velocity = {:.3f} ft/s'.format(vA))
print('B velocity = {:.3f} ft/s'.format(vB))
A velocity = 2.000 ft/s
B velocity = -10.000 ft/s

hand written solution

In [20]:
ri,ro = 2,5  # in
w = 2.3        # rad/s
vB = (ri+ro)*w
vA_mag = sqrt(ri**2+ro**2)*w
Q = arctan(ri/(ro))
vA = vA_mag * array(( cos(Q), -sin(Q) ))
print('vA = ( {:.3f} i {:+.3f} j ) in/s'.format(*vA))
print('      magnitude {:.3f} in/s, direction {:.3f} deg'.format(vA_mag,Q/dtr))
print('vB = -{:.3f} j in/s'.format(vB))
vA = ( 11.500 i -4.600 j ) in/s
      magnitude 12.386 in/s, direction 21.801 deg
vB = -16.100 j in/s

hand written solution

In [21]:
wBC = 4         # rad/s
print('angular velocity of ring is {:.3f} rad/s'.format(wBC))
angular velocity of ring is 4.000 rad/s

In [22]:
l = 16      # ft
Q = 30*dtr  # rad
vB = 4      # ft/s
aB = 2      # ft/s2
w = vB/(l*cos(Q))
alpha = ( aB - w**2*l*sin(Q) )/( l*cos(Q) )
print('ang acc =  {:.4f} rad/s2 (positive means CW)'.format(alpha))
aA = alpha*l*sin(Q) - w**2*l*cos(Q)
print('acc of A =  {:.3f} ft/s2 (negative to the right)'.format(aA))
ang acc =  0.0962 rad/s2 (positive means CW)
acc of A =  -0.385 ft/s2 (negative to the right)

hand written solution

In [23]:
wDE = 4  # rad/s
aDE = 20 # rad/s2
lDE,lBD = 100,75  # mm
lAB = 150         # mm
rG,rF = 100,50    # mm
Q = 30*dtr        # rad
wG = lDE/lBD*wDE
wF = rG/rF*wG
aA = -(wG**2*lBD + wDE**2*lDE)/(lAB*cos(Q))
print('angular velocity of gear F is {:.3f} rad/s'.format(wF))
print('angular velocity of crank AC is 0 rad/s')
print('angular velocity of crank AC is {:.3f} rad/s2'.format(aA))
angular velocity of gear F is 10.667 rad/s
angular velocity of crank AC is 0 rad/s
angular velocity of crank AC is -28.739 rad/s2

hand written solution

In [24]:
rB,rC = 0.3,0.2  # m
wA = 3           # rad/s
alphaA = 8       # rad/s2
lBC = 0.5        # m
Q = 60*dtr       # rad
wBC = -rB*wA/(lBC*cos(Q))
wD = lBC/rC*wBC*sin(Q)
vC = rC*wD
print('vC =  {:.3f} i {:+.3f} j m/s'.format(vC,0))
alphaBC = (wBC**2*lBC*sin(Q)+wD**2*rC-alphaA*rB)/(lBC*cos(Q))
alphaD  = (wBC**2*lBC*cos(Q)+alphaBC*lBC*sin(Q)-wA**2*rB)/rC
aC = array(( alphaD*rC, -wD**2*rC ))
print('aC =  {:.3f} i {:+.3f} j m/s2'.format(*aC))
aC_mag = sqrt(sum(aC**2))
aC_dir = arctan2(aC[1],aC[0])
print('      magnitude {:.3f} in/s, direction {:.3f} deg'.format(aC_mag,aC_dir/dtr))
vC =  -1.559 i +0.000 j m/s
aC =  27.147 i -12.150 j m/s2
      magnitude 29.742 in/s, direction -24.111 deg

In [25]:
l = 2       # ft
rA = 1.5    # ft
Q = 30*dtr  # rad
vB = 5      # ft/s
aB = 3      # ft/s2
w = vB/(l*sin(Q))
vA = w*l*cos(Q)
alpha = ( aB + w**2*l*cos(Q) - vA**2/rA )/( l*sin(Q) )
a = array((aB,0)) + alpha*l*array((-sin(Q),-cos(Q))) + w**2*l*array((cos(Q),-sin(Q)))
print('ang acc =  {:.3f} rad/s2 (negative means CW)'.format(alpha))
print('a =  {:.3f} i {:+.3f} j ft/s2'.format(*a))
a_mag = sqrt(sum(a**2))
a_dir = arctan2(a[1],a[0])
print('      magnitude {:.3f} ft/s, direction {:.3f} deg'.format(a_mag,a_dir/dtr))
ang acc =  -3.699 rad/s2 (negative means CW)
a =  50.000 i -18.594 j ft/s2
      magnitude 53.345 ft/s, direction -20.399 deg

hand written solution

In [26]:
L,r = 10,2              # ft
w,wp = 2,0.5            # rad/s
alpha,alphap = 1,0.6    # rad/s2  (see hand written solution for direction)
Q = 30*dtr              # rad
vC = array(( -L*w*sin(Q)+w*r-r*wp, L*w*cos(Q) ))
print('vC =  ({:.3f} i {:+.3f} j) ft/s'.format(*vC))
aB = (( -L*alpha*sin(Q)- w**2*L*cos(Q),  L*alpha*cos(Q)- w**2*L*sin(Q) ))
print('\taB =  ({:.3f} i {:+.3f} j) ft/s2'.format(*aB))
ihat,jhat = array((1,0)),array((0,1))
aC = aB + alpha*r*ihat + w**2*r*jhat - 2*r*w*wp*jhat \
     - r*alphap*ihat + wp**2*r*jhat
print('aC =  ({:.3f} i {:+.3f} j) ft/s2'.format(*aC))
vC =  (-7.000 i +17.321 j) ft/s
	aB =  (-39.641 i -11.340 j) ft/s2
aC =  (-38.841 i -6.840 j) ft/s2

Alternatively, solve this with the methods of section 16.7, treating AB and BC as two linked rigid bodies. The only concern is that you need to use the absolute (not "relative to the arm") spin and angular acc.: $ \vec{\omega}_{BC} = \omega_{AB} \hat{k} - \omega' \hat{k} $ and $ \vec{\alpha}_{BC} = \alpha_{AB} \hat{k} - \alpha' \hat{k} $.

hand written solution

This is essentially what's done in Hibbeler's solutions.

In [27]:
w2 = w - wp
alpha2 = alpha - alphap
vB =     w*L*array(( -sin(Q), cos(Q) ))
aB = alpha*L*array(( -sin(Q), cos(Q) )) + w**2*L*array(( -cos(Q), -sin(Q) ))
vC = vB + w2*r*ihat
aC = aB + alpha2*r*ihat + w2**2*r*jhat
print('vC =  ({:.3f} i {:+.3f} j) ft/s'.format(*vC))
print('aC =  ({:.3f} i {:+.3f} j) ft/s2'.format(*aC))
vC =  (-7.000 i +17.321 j) ft/s
aC =  (-38.841 i -6.840 j) ft/s2

hand written solution

In [28]:
w0 = 2      # rad/s
alpha0 = 8  # rad/s2
L,l = 1.5,1 # m
w = w0*L/l
alpha = alpha0*L/l
print('angular velocity is {:.1f} rad/s'.format(w))
print('angular acceleration is {:.1f} rad/s2'.format(alpha))
angular velocity is 3.0 rad/s
angular acceleration is 12.0 rad/s2

hand written solution

In [29]:
L,r = 180,60   # mm
Q,p = 60*dtr,30*dtr  # rad
w = 4          # rad/s
beta = Q-p
wp = r*w*sin(beta)/L
vp = r*w*cos(beta)
ap = (-r*w**2*cos(beta) + 2*wp*vp)/L
print('angular velocity is {:.3f} rad/s'.format(wp))
print('angular acceleration is {:.3f} rad/s2'.format(ap))
angular velocity is 0.667 rad/s
angular acceleration is -3.079 rad/s2

Alternative short-cut (doesn't work for reasons I don't get): find $\vec{v}_C$ and $\vec{a}_C$, then find their component in the direction perpendicular to $\vec{r}_{AB}$.

In [30]:
vC =   r*w * array(( -cos(p), -sin(p) ))
aC = w**2*r* array((  sin(p), -cos(p) ))
uAB = array(( cos(Q), sin(Q) ))
uAB_perp = array(( -sin(Q), cos(Q) ))
wp = dot(vC,uAB_perp) / L
ap = dot(aC,uAB_perp) / L
print('angular velocity is {:.3f} rad/s'.format(wp))
print('angular acceleration is {:.3f} rad/s2'.format(ap))
angular velocity is 0.667 rad/s
angular acceleration is -4.619 rad/s2