05.euler Beams
05.euler Beams
Euler-Bernoulli corotational
beams in Chrono::Engine
Alessandro Tasora
[email protected]
April 7, 2016
Abstract
This document presents some insights on the theory of corotational finite elements
of Euler-Bernoulli type as implemented in Chrono::Engine . This type of finite element
can be used for beams with large displacements.
1. Introduction
Among the various methods that allow finite element simulations with large
geometric deformations, the corotational approach is one the most versatile
because it fosters the reuse of formulas already developed for classical linear
finite elements, that are widely available in literature.
We recall that in this context the corotational approach allows large dis-
placements but it requires that strains must be small.
In this document we explain the theory behind the
chrono::fea::ChElementBeamEuler finite element.
These finite elements are based on corotated Eulero-Bernoulli elements. In
the following section we will briefly recall the basics of the Eulero-Bernoulli
linear beam theory in 3D, and we will explain the corotational approach to use
them in large displacements.
1
Chrono::Engine technical documentation
d2 w
M = −EI
dς 2
1 here expressed without the inertial terms for simpler expression
2
Chrono::Engine technical documentation
For reference, we report here the local stiffness matrix for a three dimensional
Eulero-Bernoulli beam, whose degrees of freedom are arranged as in the d vector:
ku 0 0 0 0 0 −ku 0 0 0 0 0
kv 0 0 0 kvψ 0 −kv 0 0 0
kvψ
kw 0 −kwθ 0 0 0 −kw 0 −kwθ
0
kφ 0 0 0 0 0 −kφ 0
0
kθ 0 0 0 kwθ 0 kθθ
0
kψ 0 −kvψ 0 0 0
kψψ
K=
ku 0 0 0 0
0
kv 0 0 −kvψ
0
kw 0 kwθ
0
Sym.
kφ 0
0
kθ
0
kψ
(4)
12EI 4EI 6EI 2EI
where kw = L3 yy , kθ = Lyy , kwθ = L2yy , kθθ = Lyy , kv = 12EI L3 ,
zz
Figure 1: Elastic center Ce for a generic section with arbitrary shape; moments
of inertia Iyy and Izz could be expressed relative to axes being rotated by an
angle αe . The shear center Cs often coincides with Ce in simple symmetric
sections.
The expression of Eq. (4) is valid for symmetric sections whose shear center
Cs and elastic center Ce are coincident with the centerline reference. A more
general case is depicted in Fig. 1. Denoting with ys and zs the offsets of the shear
3
Chrono::Engine technical documentation
center, with ye and ze the offsets of the elastic center, with αe the rotation of
the axes used for obtaining of Iyy and Izz , and assuming that those parameters
are constant through the length of the beam, one can transform the local matrix
K as:
K 0 = Ts Tc Tr KTr t Tc t Ts t (5)
where
Rα
Rα
Tr = blockdiag Rα
Tr =
Rα Rα Rα
Rα
Rα
with
1 0 0
; Rα = 0 cos(αe ) − sin(αe ) exp(αe e1 ×)
0 sin(αe ) cos(αe )
and
0 0 0
TcA 06×6 I 3×3 03×3
Tc = ; TcA = TcB = ; Tczy = cz 0 0
06×6 TcB Tczy I 3×3
−cy 0 0
(6)
and
−sy0 sz
TsA 06×6 I 3×3 03×3
Ts = ; TsA = TsB = ; Tszy = 0
0 0
06×6 TsB Tszy I 3×3
00 0
(7)
Note that the stiffness matrix of Eq. (4), or Eq. (5), is expressed here in symbolic
form only for the simple case of constant section and constant material; for more
generic cases (ex. varying section) one should compute K by Gauss quadrature.
4. Corotated beams
Figure 2 shows the concept of the corotational formulation in Chrono::Engine.
A floating coordinate system F follows the deformed element, thus the overall
gross motion into the deformed state CD can be seen as the superposition of
a large rigid body motion from the reference configuration C0 to the so called
floating or shadow configuration CS , plus a local small-strain deformation from
CS to CD . In this work, underlined symbols will represent variables expressed
in the basis of the floating reference F .
The rationale of the corotational approach is a procedure to compute a global
tangent stiffness K e and a global force f e for each element e, given its local K,
its local f and the rigid body motion of the frame F in C0 to F in CS .
Whenever the element moves, the position and rotation of F is updated.
In literature there are many options to this end; to avoid dependence on con-
nectivity [7], in our implementation we decided to put the origin of F in the
4
Chrono::Engine technical documentation
A
CD
A0 CS
C0
dB
B
F0
B0 dB
Wy
xB
xB0
W
Wz Wx
midpoint of the AB segment, as xF = 12 (xB −xA ), and we align its X axis with
xB − xA . The remaining Y and Z axes of F are obtained with a Gram-Schmidt
orthogonalization, enforcing Y to bisect the Y axes of A and B when projected
on the plane orthogonal to X. This is important in case of torsion.
The rotation matrix of F is RF ∈ SO3; it is parametrized with the unit
quaternion ρF ∈ H1 . Similarly, quaternions are used to store the rotations of
the two nodes, with ρA and ρB . Quaternions are used also to define the rotation
of rigid bodies in the system, if any. For this reason it is also easy to ’connect’
an Euler beam end to a body, for example using the chrono::ChLinkMate
constraints.
The state of a system with beams is s = [q, v] with q =
[x1 , ρ1 , x2 , ρ2 , . . . , xn , ρn ] ∈ R(3+4)n and v = [v 1 , ω 1 , v 2 , ω 2 , . . . , v n , ω n ] ∈
R(3+3)n . Note that, because of some algorithmic optimizations, we consider
ω i to be expressed in the local basis of the i-th node unlike xi , ρi , v i that are
considered in the global basis: this is different from implementations in many
other simulation codes.
For each element, given the global positions and rotations of the two end
nodes, stored in the s state at indexes iA and iB , it is possible to compute the
actual displacement part of d as dA = xA − xA0 = RtF0 (xA0 − xF0 ) − RtF (xA −
xF ) and dB = xB − xB0 = RtF0 (xB0 − xF0 ) − RtF (xB − xF ).
The rotation part, however, introduces a complication, owing to the fact
that finite rotations do not compose as vectors and must be dealt with special
algebraic tools. First, one must compute the local rotation of nodes respect
to the F floating reference with RA = RtF RA RtA∆ and RB = RtF RB RtB∆ .
Equivalently, one can use quaternion products to write: ρA = ρtF ρA ρtA∆ and
ρB = ρtF ρB ρtB∆ . Here the optional term ρtA∆ (or RtA∆ ) represents the initial
rotation of node A respect to F0 .
Then, the finite rotation pseudovectors θ A and θ B are obtained in the follow-
5
Chrono::Engine technical documentation
ing way. It is known that, for an element R in Lie group SO(3) and an element
Θ in the corresponding Lie algebra so(3), one has Θ = skew(θ) where θ is also
an element of the Lie group Spin(3), double cover of SO(3). Vice versa, one can
extract the θ vector from the Θ spinor by computing θ = axial(Θ). Also, it
holds R = exp(Θ) and Θ = Log(R), where exp(·) builds the rotation matrix
using an exponential; for details on this exponential and the implementation of
skew(·), axial(·), Log(·), see for example [11].
In the work of other Authors, the theory above is used to compute θ A =
axial(Log(RA )), but in our case the adoption of quaternions lead to an al-
ternative, more straightforward expression. In fact it is known that for a unit
quaternion ρ ∈ H1 it holds ρ = [cos(θ/2), u sin(θ/2)], with rotation angle θ = |θ|
about rotation unit vector u = θ/θ. Therefore it is possible to compute θ A and
θ B as: θA = 2 arccos(<(ρA )), uA = sin(θ1A /2) =(ρA ), and θ A = θA uA (the same
for the B node).
Once d = [dA , θ A , dB , θ B ] has been computed, well-known theories are avail-
able to compute the stiffness matrix K = K(d). in this work we compute K
using the Eulero-Bernoulli theory, and in general we set f in = Kd.
The local data K and f in must be mapped to the global reference: to this
end we use the corotational approach expressed in [5], where the adoption of
projectors that filter rigid body motion is used to improve the consistency and
the convergence of the method. Such formulation requires the introduction of
various matrices, in the following we succinctly report them, along with modi-
fications that we use in our method.
∂θ
• the Λ(θ) = ∂ω 2is Λ(θ) = I 3×3 −
matrix, whose analytic expression
1 2 1 1
2 skew(θ) + ζskew(θ) with ζ = 1 − 2 θcotan( 2 θ) /θ ,
and where G is the so called spin fitter matrix, that takes into account the
change of orientation of the F frame as the end nodes change position or
rotation. For the two nodes beam, it is G = [∂ω F /∂xA , ∂ω F /∂ω A , . . .],
and for our custom choice of orientation and position of F , described at
6
Chrono::Engine technical documentation
Note that R is different from the one often reported in literature, ex.
in in [10] or [5], because we update the rotation of nodes with rotation
pseudovectors expressed in node local coordinates (hence the RtA and RtB
transformation), coherently with what we said about angular velocities
being expressed in local references and not in global reference, in our
state s.
Given the matrices above, one can compute the global version of internal
forces:
f in = R P t H t f in (12)
For the computation of the global tangent stiffness, one needs two additional
matrices. First, we split the last part of Eq. (12) in four three-dimensional vec-
tors: P t H t f in = [nA , mA , nB , mB ], then we build the F nm and F n matrices:
skew(nA ) skew(nA )
skew(mA ) 03×3
F nm = skew(nB ) , F n = skew(nB )
(13)
skew(mB ) 03×3
Finally one can compute the tangent stiffness matrix of the element in global
coordinates, also accounting for geometric stiffening:
R P t H t KHP − F nm G − Gt F tn P + P t LH P Rt
K= (14)
K= R (K M − K GR − K GP + K GH ) Rt (15)
7
Chrono::Engine technical documentation
unsymmetric matrices would require more advanced solvers like GCR or GMRES. The latter
cannot exploit the three-term recurrency feature as in Hermitian matrices, hence restarting
is needed to save memory. Incidentally, we experienced that, in some problems, restarting
alone is not sufficient because GMRES or GCR can be trapped in cycling patterns, so more
complex restarting strategies with deflating and anti-stagnation must be adopted.
8
Chrono::Engine technical documentation
5
Experimental
Dymore, MBDyn
4 C::E Euler-Bernoulli
2
P=8.89 [N]
1
P=4.45 [N]
0
0 15 30 45 60 75 90
Loading angle θ [deg]
Figure 3: Setup of the benchmark for Figure 4: Twist rotation of the beam
the Princeton beam experiment. for the Princeton experiment.
0.25 0.025
Experimental
Experimental
Dymore, MBDyn
Dymore, MBDyn
0.2 C::E Euler-Bernoulli 0.02 C::E Euler-Bernoulli
Displacement U2 [m]
P=13.34 [N]
Displacement U3 [m]
P=13.34 [N]
0.15 0.015
P=4.45 [N]
0.05 P=4.45 [N] 0.005
0 0
0 15 30 45 60 75 90 0 15 30 45 60 75 90
Loading angle θ [deg] Loading angle θ [deg]
9
Chrono::Engine technical documentation
0.05
MBDyn
C::E
-0.05
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time t [s]
0.05
30
Dymore
Dymore
MBDyn MBDyn
20
C::E C::E
Mid angular velocity [rad/s]
10
Mid lateral displ. [m]
0 0
-10
-20
-0.05 -30
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
Time t [s] Time t [s]
All parts are made of aluminum, hence with Young modulus E = 73GPa
and Poisson ratio ν = 0.3. Given the above mentioned sections, their inertia
values Izz and Iyy and their torsion constants J are computed using formulas
available in classical textbooks.
In the Chrono::Engine test, the RC beam is modeled with 12 finite elements,
whereas the crank and the rod are modeled with 3 elements each. Results
in Figs. 9 and 10 show that the lateral buckling is triggered exactly at the
same moment for all the formulations, although the Chrono::Engine integral
is more damped. The numerical damping is a consequence of the fact that
the Chrono::Engine default integrator is a timestepper for DVI non-smooth
problems [8, 12]. This, in the case of no frictional contacts, boils down to
a linearly-implicit first-order scheme, hence it shows the same damping effect
of an implicit Euler method. Other integrals are obtained with higher order
methods and are affected by numerical damping to a much lower degree.
10
Chrono::Engine technical documentation
7. Conclusion
Quaternions are extensively used in Chrono::Engine to work with rotations.
Look into the documentation of the the chrono::ChQuaternion class for ad-
ditional information.
More information available in Chrono::Engine web site.
References
[1] O. A. Bauchau, G. Wu, P. Betsch, A. Cardona, J. Gerstmayr, B. Jonker,
P. Masarati, and V. Sonneville. Validation of flexible multibody dynamics
beam formulations using benchmark problems. In IMSD 2014, Korea, June
30-July 3 2014.
[2] Olivier A. Bauchau and N. K. Kang. A multibody formulation for helicopter
structural dynamic analysis. Journal of the American Helicopter Society,
38(2):3–14, 1993.
[9] B. Nour-Omid and C.C. Rankin. Finite rotation analysis and consistent
linearization using projectors. Computer Methods in Applied Mechanics
and Engineering, 93(3):353 – 384, 1991.
11
Chrono::Engine technical documentation
[10] C.C. Rankin and B. Nour-Omid. The use of projectors to improve finite
element performance. Computers & Structures, 30(12):257 – 267, 1988.
[11] J.C. Simo and L. Vu-Quoc. A three-dimensional finite-strain rod model.
part ii: Computational aspects. Computer Methods in Applied Mechanics
and Engineering, 58(1):79 – 116, 1986.
12