If the angle φ is very small, we can write, considering that cosφ≈1 and sinφ≈φ:
R≈[1φ−φ1].
02
Infinitesimal rotations
A rotation is represented by a magnitude, the angle of rotation, and a direction, the axis of rotation. Let’s consider the magnitude φ and the axis defined by the unit vector n.
For an infinitesimal rotation, the rotation can be represented by a vector:
φ=φn,orφ=⎩⎨⎧φxφyφz⎭⎬⎫.
And:
φ=∥φ∥=φx2+φy2+φz2.
The components of rotation, φx, φy, φz, are very small and are treated as infinitesimal values. The corresponding rotation matrix is:
Composition of small (infinitesimal) rotations is commutative!
03
Finite rotations
Let’s find the rotation matrix R if the rotation angle is finite. In this case, finite rotations do not follow the parallelogram law of vector addition. Moreover, the composition of rotations is non-commutative.
The problem: consider a vector v0 and rotate it by an angle φ around the axis having the direction of the unit vector n; the new position of the vector is v. We have to find the matrix R, [1], [2], [3], [4]:
v=R(φ)v0.
This is called an active rotation: the vector is rotated while the reference frame remains fixed.
Figure 2. Rotation about the axis n and the corresponding circular motion.
Vector sum:
v=v0+Δv.
Δv=PD+DQ⟶v=v0+PD+DQ.
Vector DQ has the direction of the cross product n×v0 because DQ is perpendicular to the plane (n,v0).
The modulus of n×v0 is:
∥n×v0∥=∥v∥sinα⟶∥n×v0∥=a.
As:
DQ=asinφ,
we get:
DQ=(n×v0)sinφ.
Vector PD. The modulus:
PD=a−acosφ=2asin22φ.
Obviously, n is perpendicular to n×v0, and thus n×(n×v0) has the direction of vector PD. But:
∥n×(n×v0)∥=∥n×v0∥=a,
therefore:
PD=2(n×(n×v0))sin22φ.
The relation between v and v0:
v=v0+(n×v0)sinφ+2(n×(n×v0))sin22φ,
or:
v=v0+(n×v0)sinφ+(n×(n×v0))(1−cosφ).(*)
To convert this equation into matrix form, we introduce the notations:
ρ may be called a rotation vector or axis-angle vector. However, finite rotations do not compose by ordinary vector addition. Relation (**) between v and v0 becomes:
If the rotation angle is small and second-order terms are retained, the rotation angles are assumed to be small, but not infinitesimal; therefore, the second-order terms cannot be neglected. Since the rotation matrix contains quadratic terms in the rotation components, the resulting problem is geometrically nonlinear.
The 3D part in the figure below must be divided into finite elements. The part can be divided into 12 identical slices. Only one slice will be divided into finite elements, and then, by rotating, reflecting and copying this slice, the entire FE mesh will be obtained.
Figure 3. The 3D part and its finite element mesh.
Figure 4. One slice and the construction of the complete mesh by rotation and reflection.
One “slice” is depicted in the figure above, on the left. Nodal coordinates are known: x is a matrix with n rows and 3 columns (for the three coordinates x,y,z); n is the number of nodes. Coordinates x are in the global coordinate frame.
Firstly, this slice is rotated around the axis computed using the normalized cross product:
n1=∥n0×n∥n0×n,
with the angle computed using a dot product:
φ=arccos(n0⋅n).
This gives the rotation matrix R1:
R1=E+sinφn1+(1−cosφ)n12.
The new coordinates are:
xn=xR1T+Δx,
where Δx contains the translation components, applied to every row. For our example, the translation is [20105].
The remaining slices are obtained with the rotation matrix:
Rt=R2R1⟶xn=xRtT+Δx,
where R2 is a rotation around the axis defined by the unit vector n (see the figure above):
R2=E+sinφ0n+(1−cosφ0)n2.
Angle φ0 is a multiple of π/3. The 12 slices are obtained at six angular positions spaced by π/3, with a reflected and a non-reflected slice at each position. For slices 2, 4, 6, 8, 10 and 12, we need to apply a reflection to obtain the circular holes, with each slice having only a “half-hole”. So the transformation matrix becomes:
Rt=R2R1Ra⟶xn=xRtT+Δx,
where:
Ra=10001000−1.
In fact, the matrix Ra allows us to build the symmetric slice with respect to the local xy-plane (reflection).
Figure 5. Interactive 3D view of the example. Drag to rotate; switch Zoom ON to use wheel or pinch zoom. Reset view restores the initial camera position.
A simple MATLAB program is available for download below.
[3] Carlos Felippa, NFEM, Nonlinear Finite Element Methods (ASEN 5107), Appendix R.
[4] Enrico C. Da Lozzo, Geometrically exact three-dimensional beam theory: modeling and FEM implementation for statics and dynamics analysis, Istituto Universitario di Studi Superiori di Pavia, Master’s Degree in Earthquake Engineering, 2010.