2024-08-08 update: the derivation and resulting value of the ellipsoidal
shell inertia tensor in the original version of this post was incorrect. The
derivation and result have been corrected and the notation has also been
updated. A Monte Carlo simulation was also added to verify the result.
In this post we derive the inertia tensor for an ellipsoidal shell with
negligible thickness, such that all mass is distributed uniformly across the
surface of the ellipsoid. This result is not as easy to find online as the
inertia tensors for other common 3D
shapes
(probably because it is quite ugly). If you're in a hurry, the inertia tensor
for an ellipsoidal shell of mass m and semi-axes a,b,c is given in
(8).
Spherical shell inertia
The inertia of a uniform-density spherical shell with mass m and radius r is
well-known to be I∘=(2/3)mr213, where 13 is the 3×3
identity matrix. We use the subscript (⋅)∘
to differentiate the inertia of the shell from that of the uniform solid, which
we will denote I∙. All of the inertia tensors in this post
are taken about the centroid of the shape, which coincides with the center of
mass.
We will derive I∘ for the sphere here before moving on to the
more general ellipsoidal case, because the derivations are similar. We will use
a similar approach to the derivation
here.
Recall
that the inertia tensor of a uniform-density solid sphere with mass m and radius r is
I∙=(2/5)mr213. Substituting in m=ρV,
where ρ is the density and V=(4/3)πr3 is the
volume of the sphere, we get I∙=(8/15)πρr513.
To obtain a shell, we will take one solid sphere of radius r and
subtract its inertia from that of a slightly larger solid sphere, which has
radius r+δ with δ≥0, and then taking the limit δ→0.
This gives us
I∘=δ→0lim(8/15)πρ((r+δ)5−r5)13.
The density of the shell is given by
ρ=(4/3)π((r+δ)3−r3)m,
where the volume (the denominator) is the difference between the volumes of the
two spheres. Substituting (2) into
(1), we get
Substituting (4) back into (3), we
achieve the expected result for the spherical shell:
I∘=(2/3)mr213.
Ellipsoidal shell inertia
We are now ready to generalize to the inertia tensor of an ellipsoidal shell,
but be warned: the expression is not as nice as that for the sphere!
In this section of the article we'll now use I∘ and
I∙ to refer to the inertia tensors of the ellipsoidal shell and
solid ellipsoid, respectively. We will consider an ellipsoid of mass m and
semi-axes a,b,c. This ellipsoid consists of the set of all points
x∈R3 that satisfy xTE−1x≤1, where
E=a2000b2000c2.
The inertia tensor of a solid ellipsoid of uniform density is
I∙=(1/5)mS, where
S=b2+c2000a2+c2000a2+b2=tr(E)13−E,
with tr(⋅) denoting the matrix trace. Again we substitute in
m=ρV, where V=(4/3)πabc is the volume of the ellipsoid, to obtain
I∙=(4/15)πρabcS.
In the same way as for the spherical shell, we will obtain an ellipsoidal shell
by subtracting an ellipsoid with semi-axes a,b,c from a slightly larger
ellipsoid with semi-axes a+δ,b+δ,c+δ. Taking the
limit δ→0, we get
Substituting (7) into (6), we will again turn to Python to
evaluate the limit:
import sympy
δ = sympy.symbols("δ")
a, b, c = sympy.symbols("a, b, c")
S = sympy.Matrix.diag(b**2+ c**2, a**2+ c**2, a**2+ b**2)
a2 = a + δ
b2 = b + δ
c2 = c + δ
S2 = sympy.Matrix.diag(b2**2+ c2**2, a2**2+ c2**2, a2**2+ b2**2)
nom = a2 * b2 * c2 * S2 - a * b * c * S
den = a2 * b2 * c2 - a * b * c
I =(nom / den).limit(δ,0)/5print(I)
As I said, not as nice as the spherical shell result! The spherical shell
inertia (5) is of course a special case of the ellipsoidal shell
inertia (8) when r=a=b=c, which we can quickly verify with
# continuing from the above code...
r = sympy.symbols("r")print(I.subs({a: r, b: r, c: r}))
The ellipsoidal shell inertia (8) is implemented in
rigeo.
Monte Carlo Simulation
To verify our result, we can compare our analytical result (8) with the inertia
computed from a large number of point masses uniformly sampled from the surface
of an ellipsoid. Using this script, we compare the inertia computed from
100,000 points with equal mass uniformly sampled from an ellipsoid with
semi-axes a=1.0,b=0.75,c=0.5 to the analytical value we derived above. The
sampled value is