Table of Contents
Problem 1: Kinetics of a Particle#
A small sphere has the position and velocity indicated in the figure and is acted upon by the force \(\bf F\). In last week’s activity, you have already determined the angular momentum of this particle about point O. Now, you are asked to compute the time derivative of the angular momentum of this particle about point O.
Major hint: It should not be zero; you will need to find the answer to this using the force provided to you.
As always, you may makes use of all the tools you have learned so far in SymPy to complete your work. But you can also do this whole problem by hand.
Previous solution#
The theory#
We have the definition for angular momentum of a generic particle \(P_i\) about \(O\):
\({\bf H}^{P/O} \triangleq {\bf r}^{OP} \times m_{P} ^N{\bf v}^{P}\)
, where:
\({\bf r}^{OP}\) is the position vector from a point \(O\) to \(P\);
\(m_{P}\) is the mass of \(P\); and
\(^N{\bf v}^{P}\) is the velocity of \(P\) with respect to a reference frame \(N\).
So, now, we can turn to the features of sympy
to compute the angular momentum.
Computing the solution#
from sympy import symbols, sin, cos
from sympy.physics.mechanics import ReferenceFrame, Point, dynamicsymbols
N = ReferenceFrame('N')
P = Point('P')
m_P = 2 # mass of P
r_OP = 3*N.x + 6*N.y + 4*N.z
P.set_vel(N, 5*N.y)
N_v_P = P.vel(N)
angular_momentum = r_OP.cross(m_P * N_v_P)
angular_momentum
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[1], line 1
----> 1 from sympy import symbols, sin, cos
2 from sympy.physics.mechanics import ReferenceFrame, Point, dynamicsymbols
3 N = ReferenceFrame('N')
ModuleNotFoundError: No module named 'sympy'
This solution#
We know that, for a particle,
\(\frac{^Nd}{dt}{^N \bf H}^{P/O} = {\bf M}_O\),
where \({\bf M}_O\) is the sum of all moments about the point \(O\). There is only one force on the partcile, \(\bf F\) which is \(10\) \(\text{N}\) in the \(\hat{\bf n}_z\) direction. So,
\({\bf M}_O = {\bf r}^{OP} \times \bf F\).
We can then compute this right hand side with sympy
and equate it to \(\frac{^Nd}{dt} {^N \bf H}^{P/O}\). I store my result in a variable called ddt_H_of_P_about_O
, which is the computing name for the mathematical expression \(\frac{^Nd}{dt} {^N \bf H}^{P/O}\).
F_vector = 10*N.z
ddt_H_of_P_about_O = r_OP.cross(F_vector)
ddt_H_of_P_about_O