Examples 2 -- Vectors

In [1]:
from numpy import *
dtr = pi/180  # factor for degree-to-radian conversion
from matplotlib.pyplot import *
%matplotlib inline

A. vector sum

In [2]:
Q = 64*dtr
R_mag = 260.  # N
Fa = R_mag * cos(Q)
Fb = R_mag * sin(Q)
print ('Fa={} N and Fb={} N'.format(Fa,Fb))
Fa=113.97649816516014 N and Fb=233.68645203778343 N

B. find force vector

In [3]:
Q1 = 67*dtr
Q2 = -47*dtr
R_mag = 280.  # N

$F_{net,x} = F_{a,x} = F_a \cos \theta_2$

$F_{net,y} = F_{a,y} + F_b = F_a \sin \theta_2 + F_b$

In [4]:
Fnet_x = R_mag * cos(Q1)
Fnet_y = R_mag * sin(Q1)
Fa = Fnet_x / cos(Q2)
Fb = Fnet_y - Fa*sin(Q2)
print ('Fa magnitude=',Fa,'N')
print ('Fa direction=',Q2/dtr,'deg')
print ('Fb magnitude=',Fb,'N')
print ('Fb direction=',90.,'deg')
Fa magnitude= 160.4178578478851 N
Fa direction= -47.0 deg
Fb magnitude= 375.063553109552 N
Fb direction= 90.0 deg

Alternatively, you could use the law of sines as follows:

In [5]:
phi1,phi2,phi3 = pi/2-abs(Q1), pi/2-abs(Q2), abs(Q1)+abs(Q2)
Fa = R_mag*sin(phi1)/sin(phi2)
Fb = R_mag*sin(phi3)/sin(phi2)
print ('angles are',phi1/dtr,phi2/dtr,phi3/dtr)
print ('Fa magnitude=',Fa,'N')
print ('Fb magnitude=',Fb,'N')
angles are 22.999999999999993 42.99999999999999 114.0
Fa magnitude= 160.41785784788507 N
Fb magnitude= 375.06355310955195 N

C. find parallel and perpendicular components

In [6]:
F = 48.0   # lb
Q = 27.*dtr
F_perp = F*sin(Q)
F_para = F*cos(Q)
print ('F_perp={} lb and F_para={} lb'.format(F_perp,F_para))
F_perp=21.791543987498244 lb and F_para=42.76831316104166 lb

D. find minimum force required

In [7]:
F1_mag, F2_mag = 3.7, 2.0  # kN
Q1, Q2 = (180+60)*dtr, (180-30)*dtr

Sum of $y$ forces equals zero. $F_{1y} +F_{2y} +F_{y} = 0$.

In [8]:
F1_y = F1_mag*sin(Q1)
F2_y = F2_mag*sin(Q2)
print ('Fy=',-F1_y-F2_y,'kN')
print ('Fx must be zero for smallest F magnitude')
Fy= 2.2042939940024224 kN
Fx must be zero for smallest F magnitude

E. find minimum force required

$\vec R = \vec F_1 + \vec F_2 + \vec F$

$R^2 = (F_{1x} + F \cos \alpha)^2 + (F_{2y} + F \sin \alpha)^2$

In [9]:
alpha = 45*dtr
F1x = -11.0  #kN
F2y =  -8.0  #kN
In [10]:
F = arange(0.,20.,0.1)
R2 = (F1x+F*cos(alpha))**2 + (F2y+F*sin(alpha))**2
plot(F,R2)
Out[10]:
[<matplotlib.lines.Line2D at 0x18b15f9b5c0>]

$\frac{d}{dF}R^2 = 2(F_{1x} + F \cos \alpha)\cos \alpha + 2(F_{2y} + F \sin \alpha)\sin \alpha =0$

$F_0 = - F_{1x} \cos \alpha - F_{2y} \sin \alpha$

In [11]:
F = -F1x*cos(alpha) - F2y*sin(alpha)
print ('min F=',F,'kN')
min F= 13.435028842544405 kN

F. find n-t force components

In [12]:
W = 219.  # N
F = 82.   # N
Q = 30*dtr
In [13]:
R = array((F,-W))
t = array((cos(Q),sin(Q)))
n = array((-sin(Q),cos(Q)))
Rt = dot(R,t)
Rn = dot(R,n)
print ('Rx=',R[0])
print ('Ry=',R[1])
print ('Rt=',Rt)
print ('Rn=',Rn)
Rx= 82.0
Ry= -219.0
Rt= -38.485916889676005
Rn= -230.65956342879207

G. 3D vector sum

In [14]:
Qmag, Pmag, Fmag =  6., 5., 3.       # kN
Q = Qmag* array((-2.,2.,1)) / sqrt(4+4+1)
Pz = Pmag*cos(51*dtr)
Pxy = sqrt( Pmag**2 - Pz**2 )        # component of P in the xy plane
Px,Py = -Pxy*cos(30*dtr), Pxy*sin(30*dtr)
P = array((Px,Py,Pz))
F = Fmag* array(( cos(45*dtr), cos(60*dtr), cos(60*dtr) ))
In [15]:
R = Q+P+F
print ('Q=',Q,'kN')
print ('P=',P,'kN')
print ('F=',F,'kN')
print ('R=',R,'kN')
Q= [-4.  4.  2.] kN
P= [-3.36514073  1.9428649   3.14660196] kN
F= [2.12132034 1.5        1.5       ] kN
R= [-5.24382038  7.4428649   6.64660196] kN

H. vector from direction cosines

In [16]:
rOA = 2.*array(( 0.768, -0.384,  0.514 ))   # km
rOB = 5.*array(( 0.744,  0.559, -0.380 ))   # km
rAB = rOB - rOA
rAB_mag = sqrt(sum(rAB**2))

print ('distance rAB=',rAB_mag,'km')
distance rAB= 5.102745241534208 km

I. component of force along a line

In [17]:
radius = 155                 # mm
b,h,d,z = 4, 3, 265, 245     # mm
Cz = 350.                      # mm
Fmag = 100.                    # N

First find $\vec{r}_{CD} = \vec{r}_{OD} - \vec{r}_{OC}$. Then convert this to a unit vector and find $\vec{r}_{CE}= d \; \hat{u}_{CD}$.

In [18]:
rOC = array((0.,0.,Cz))
rOD = radius * array((b,h,0)) / sqrt(b**2+h**2)
rCD = rOD - rOC
uCD = rCD / sqrt(sum(rCD**2))
rCE = d*uCD

Next find unit vector $\hat{u}_{GE}$, then $\vec{F} = - F_{mag} \hat{u}_{GE}$.

In [19]:
rOG = array(( 0., radius, z ))
rOE = rOC + rCE
rGE = rOE - rOG
uGE = rGE / sqrt(sum(rGE**2))
F = -Fmag * uGE

Finally dot products will give the desired solution.

In [20]:
Fpara_CD = dot(F,uCD)
Fpara = Fpara_CD * uCD
Fperp = F - Fpara  
Fperp_mag = sqrt(sum(Fperp**2))
print ('Fpara in direction of uCD=', Fpara_CD,  'N')
print ('   (negative implies bead slides toward C)')
print ('magnitude of Fperp=', Fperp_mag, 'N')
print ('Fpara=', Fpara, 'N')
print ('Fperp=', Fperp, 'N')
Fpara in direction of uCD= -70.7776075797882 N
   (negative implies bead slides toward C)
magnitude of Fperp= 70.64368524703045 N
Fpara= [-22.92776378 -17.19582284  64.71546229] N
Fperp= [-23.33445887  66.02992849   9.27802986] N

Note $\vec{F}_{\parallel}$ is implicitly defined to be

$$F_{\parallel} = \vec{F} \cdot \hat{u}_{CD}$$

J. component of force along a line, again

In [21]:
rOB = array(( -45.,  0.,  130 ))  # in
rOC = array(( 120.,  95., 0.  ))  # in
rOD = array((   0.,  95., 50. ))  # in
f = 1./4       # fraction of the distance up the chute
F_chute = 450.                    # lb

$F_{chute} = \vec{F} \cdot \hat{u}_{CD} = F \hat{u}_{AB} \cdot \hat{u}_{CD} $

In [22]:
rCD = rOD - rOC
uCD = rCD / sqrt(sum(rCD**2))
rOA = rOC + f*rCD
rAB = rOB - rOA
uAB = rAB / sqrt(sum(rAB**2))
F = F_chute / dot(uAB,uCD)
print ('cable force=',F,'lb')
cable force= 536.9635344055264 lb