# 3: Rigid Body Dynamics¶

## Example number 1, Page number 116¶

In [2]:
#importing modules
import math
from __future__ import division

#Variable declaration
ma=mb=10;     #mass(kg)

#Calculation
I0=(ma*ra1**2)+(mb*rb1**2);       #moment of inertia through centre(kg m**2)
IA=IB=(ma*ra2**2)+(mb*rb2**2);       #moment of inertia through length of rod(kg m**2)

#Result
print "moment of inertia through centre is",int(I0),"kg m**2"
print "moment of inertia through length of rod is",IA,"kg m**2"
moment of inertia through centre is 5 kg m**2
moment of inertia through length of rod is 10 kg m**2

## Example number 3, Page number 117¶

In [17]:
#importing modules
import math
from __future__ import division

#Variable declaration
I0=6;             #initial moment of inertia(Kg m**2)
omega0=1;         #initial angular velocity(rev/sec)
I=2;              #final moment of inertia(Kg m**2)

#Calculation
omega=I0*omega0/I;                     #final angular velocity(rev/sec)
K0=I0*(omega0*2*math.pi)**2/2;          #initial kinetic energy(J)
K=I*(omega*2*math.pi)**2/2;            #final kinetic energy(J)
deltaK=K-K0;                           #increase in kinetic energy(J)

#Result
print "final angular velocity is",int(omega),"rev/sec"
print "increase in kinetic energy",round(deltaK),"J"
final angular velocity is 3 rev/sec
increase in kinetic energy 237.0 J

## Example number 4, Page number 118¶

In [18]:
#importing modules
import math
from __future__ import division

#Variable declaration
I=5*10**-4;             #moment of inertia(Kg m**2)
m=0.5;                  #mass(Kg)
g=9.8;                  #acceleration due to gravity(m/sec**2)

#Calculation
J=I*omega;              #angular momentum(Kg m**2/sec)
tow=m*g*r;              #torque(Nm)

#Result
print "precessional angular velocity is",int(omegap),"rad/sec in clockwise direction"
precessional angular velocity is 2 rad/sec in clockwise direction

## Example number 5, Page number 118¶

In [21]:
#importing modules
import math
from __future__ import division

#Variable declaration
I1=I2=1;          #assume
omega1=500;       #angular velocity(rev/min)
omega2=0;         #angular velocity(rev/min)

#Calculation
omega=((I1*omega1)+(I2*omega2))/(I1+I2);       #common speed(revolutions/minute)

#Result
print "common speed is",int(omega),"revolutions/min"
common speed is 250 revolutions/min

## Example number 6, Page number 119¶

In [25]:
#importing modules
import math
from __future__ import division

#Variable declaration
M=50;        #mass of sphere(g)
g=980;       #acceleration due to gravity(gm/sec**2)
l=0.005;       #length(m)
n=20;          #number of revolutions

#Calculation
I=2*M*r**2/5;     #moment of inertia of sphere(kg m**2)
L=r+l;            #distance from pivot(m)

#Result
precessional angular velocity is 12.19 rad/sec

## Example number 7, Page number 120¶

In [30]:
#importing modules
import math
from __future__ import division

#Variable declaration
M=100;     #mass(gm)
t=10;        #time(sec)

#Calculation
I=M*R**2;        #moment of inertia of ring(gram cm**2)
L=I*omega;       #angular momentum(erg sec)
tow=L/(2*math.pi*t);       #torque(dyne cm)

#Result
print "moment of inertia of ring is",int(I/10**4),"*10**4 gram cm**2"
print "angular momentum is",round(L/10**5,2),"*10**5 erg sec"
print "torque is",int(tow/10**4),"*10**4 dyne cm"
moment of inertia of ring is 1 *10**4 gram cm**2
angular momentum is 6.28 *10**5 erg sec
torque is 1 *10**4 dyne cm

## Example number 8, Page number 120¶

In [36]:
#importing modules
import math
from __future__ import division

#Variable declaration
g=980;       #acceleration due to gravity(gm/sec**2)
omega=2*math.pi*18;       #angular velocity(revolutions/sec)

#Calculation

#Result
precessional angular velocity is 1.2 radians/sec

## Example number 13, Page number 128¶

In [36]:
#importing modules
import math
from __future__ import division

#Variable declaration
M=0.1;        #mass(kg)
#omega=3i+4j+6k
domegaxbydt=domegaybydt=domegazbydt=0;

#Calculation
Ixx=M*R**2/4;    #principal inertia element(kg m**2)
Iyy=M*R**2/4;    #principal inertia element(kg m**2)
Izz=M*R**2/2;    #principal inertia element(kg m**2)
towx=(omegax*domegaxbydt)+(omegay*omegaz*(Izz-Iyy));       #torque on x(Nm)
towy=(omegay*domegaybydt)+(omegaz*omegax*(Ixx-Izz));       #torque on y(Nm)
towz=(omegaz*domegazbydt)+(omegax*omegay*(Iyy-Ixx));       #torque on x(Nm)
dTbydt=(omegax*towx)+(omegay*towy)+(omegaz*towz);          #rate of change of kinetic energy

#Result
print "torque acting on it is (",towx*10**4,"i",towy*10**4,"j+",towz,"k)*10**-4 Nm"
print "rate of change of kinetic energy is",int(dTbydt)
print "hence kinetic energy is constant"
torque acting on it is ( 9.6 i -7.2 j+ 0.0 k)*10**-4 Nm
rate of change of kinetic energy is 0
hence kinetic energy is constant

## Example number 14, Page number 130¶

In [41]:
#importing modules
import math
from __future__ import division

#Variable declaration
M=1;       #assume
R=1;       #assume