file
file
Abstract
In this note, a fast and easy way to produce a Finite Element model of a 3D cantilever
Timoshenko beam in state space is presented, for instance for benchmarking purposes of
parametric Model Order Reduction. The model is generated by a single MATLAB file and
provides the possibility to modify several parameters like the beam’s geometry, material
properties and the number of degrees of freedom.
Keywords: FEM; Parametric Model Order Reduction; Timoshenko Beam
1 Introduction
Many techniques for the mathematical modeling of dynamical systems, e. g. for simulating,
optimizing or controlling purposes, employ linear systems of differential equations. The desire
for increasing accuracy of such models, that may for instance originate from a Finite Element
method, and the often occurring effect of slow convergence lead to a rapidly growing number of
describing equations that eventually can no more be solved and used efficiently. Model Order
Reduction (MOR) techniques are designed to answer this problem by replacing the large scale
original model by a considerably smaller one, preserving characteristic properties of the former
and approximating its transfer behavior as accurately as possible [2]. This task turns out to be
even more complex when the original model depends on parameters like geometry or material
properties that are to be preserved in the reduced model. This problem is known as parametric
Model Order Reduction (pMOR).
In [1, 3], several models of dynamical systems from different fields of engineering have been
collected and made available for benchmarking purposes. Nevertheless, due to the high interest
in pMOR and the various reduction methods, there is currently a need for parametric models
of different complexities with one or several parameters.
In the following, an easy way to construct such a model ”manually” without the need of pro-
fessional software besides Matlab is presented. Section 2 revisits the basic elastic theory for
slender beams and allocates all quantities needed for the calculation of a local finite Timoshenko
beam element. Section 3 shows how to assemble the global mass and stiffness matrices and a
ready-to-run Matlab implementation is given in the Appendix.
Corresponding author: Tel: +49 89 289 15592, Fax: +49 89 289 15653, email: [email protected]
1
TUM Tech. Rep. Auto. Cont. Vol. TRAC-4 2
𝐹 (𝑡)
𝑧
𝑦
𝑥
Consider a simply supported cantilever beam that is loaded by a dynamic force 𝐹 (𝑡) applied
vertically at its tip, as shown in Fig. 1.
Let the length of the beam be 𝐿, its cross section a rectangle of height ℎ and thickness 𝑡, thus
with area 𝐴 = ℎ ⋅ 𝑡. We assume it is made of an isotropic, linear elastic material (e. g. steel),
with density 𝜌, Young’s modulus 𝐸 and Poisson’s ratio 𝜈. Its mass is accordingly given by
𝐸
𝑚 = 𝐿 ⋅ ℎ ⋅ 𝑡 ⋅ 𝜌 and its shear modulus by 𝐺 = 2(𝜈+1) .
𝐿
Now, we separate the beam into 𝑁 finite elements, each of which has length 𝑙 = 𝑁 and mass
𝑚
𝑚𝑒 = 𝑁 . The global numbering is carried out according to Fig. 2, thus the 𝑖-th Finite Element
connects the (𝑖 − 1)st and the 𝑖-th node. [5]
1 2 3 ... 𝑁
0 1 2 3 𝑁 −1 𝑁
For the 3D case, every node has six degrees of freedom (dof): Three translational displacements
𝑢, 𝑣, 𝑤 and three rotational degrees of freedom 𝛼, 𝛽, 𝛾 (w. r. t. 𝑥-, 𝑦- and 𝑧-axis, respectively)
as seen in Fig. 2.
𝑧
𝑦 𝑤1 𝑤2
𝑥 𝛾1 𝛾2
𝛽1 𝑣1 𝛽2 𝑣2
𝑢2
𝑢1
𝛼1 𝛼2
node 1 node 2
Recall that the element’s second moments of area about 𝑦 and 𝑧 and its polar moments of inertia
about 𝑥 are given by
𝑡 ℎ3 𝑡3 ℎ ℎ2 + 𝑡2 𝑚
𝐼𝑦 = , 𝐼𝑧 = , 𝐼𝑝 = .
12 12 12 𝑁
For the element’s torsion constant 𝐼𝑡 , only an approximation can be given, as no exact analytical
equations exist for non-circular cross-sections. In case of an almost square cross section, i. e.
ℎ ≈ 𝑡, it is given by [4]
𝐼𝑡 = 0.141 𝑡 ℎ3 , if ℎ < 𝑡, or 𝐼𝑡 = 0.141 𝑡3 ℎ, if ℎ > 𝑡.
For simplification, define
12 𝐸 𝐼𝑧 12 𝐸 𝐼𝑦
𝑃𝑦 = , 𝑃𝑧 = ,
𝐺 𝐴𝑆,𝑦 𝑙2 𝐺 𝐴𝑆,𝑧 𝑙2
where the effective area of shear for a rectangular cross-section is given by 𝐴𝑆,𝑦 = 𝐴𝑆,𝑧 = 65 𝑡 ℎ.
Note that setting 𝑃𝑦 = 𝑃𝑧 = 0 leads to an Euler Bernoulli beam model as the influence of shear
stiffness is neglected.
We are now ready to compute the local mass and stiffness matrices, M𝑒11 and K𝑒11 , of the
finite Timoshenko beam element as presented in [6]. Remember that each element links twelve
local dofs {𝑢1 , 𝑣1 , 𝑤1 , 𝛼1 , 𝛽1 , 𝛾1 , 𝑢2 , 𝑣2 , 𝑤2 , 𝛼2 , 𝛽2 , 𝛾2 }, six belonging to each node. Therefore, we
partition M𝑒11 and K𝑒11 into
[ ] [ 𝑒 ]
𝑒 M𝑒11 M𝑒12 𝑒 K11 K𝑒12
M = , K = , (1)
M𝑒21 M𝑒22 K𝑒21 K𝑒22
where (⋅)𝑒11 and (⋅)𝑒22 describe the interdependency of the dofs of the first and second node,
respectively, and (⋅)𝑒12 = (⋅)𝑒21 the interconnection between both of them [5]. M𝑒22 and K𝑒22 are
equal to M𝑒11 and K𝑒11 , respectively, except for the sign of the off-diagonal entries.
⎡ ⎤
1
0 0 0 0 0
⎢ 3 ⎥
⎢
⎢ 13 6 𝐼𝑧 11 𝑙 𝐼𝑧 ⎥
⎥
⎢ 0 + 0 0 0 + ⎥
⎢ 35 5 𝐴𝑙2 210 10 𝐴𝑙 ⎥
⎢ 13 6 𝐼𝑦 11 𝑙 𝐼𝑦 ⎥
⎢ 0 0 + 0 − − 0 ⎥
M𝑒11
⎢
= 𝑚𝑒 ⎢ 35 5 𝐴𝑙2 210 10 𝐴𝑙 ⎥
(2)
⎢ 0 𝐼𝑝 ⎥
0 0 0 0 ⎥
⎢
⎢ 3𝐴 2
⎥
⎥
⎢ 11 𝑙 𝐼𝑦 𝑙 2 𝐼𝑦 ⎥
⎢ 0 0 − − 0 + 0 ⎥
⎢ 210 10 𝐴𝑙 105 15 𝐴 2
⎥
⎣ 11 𝑙 𝐼𝑧 𝑙 2 𝐼𝑧 ⎦
0 + 0 0 0 +
210 10 𝐴𝑙 105 15 𝐴
⎡ ⎤
1
0 0 0 0 0
⎢ 6 ⎥
⎢
⎢ 9 6 𝐼𝑧 13 𝑙 𝐼𝑧 ⎥
⎥
⎢ 0 − 0 0 0 + − ⎥
⎢ 70 5 𝐴𝑙2 420 10 𝐴𝑙 ⎥
⎢ 9 6 𝐼𝑦 13 𝑙 𝐼𝑦 ⎥
⎢ 0 0 − 0 − + 0 ⎥
M𝑒21 = M𝑒12 𝑇
⎢
= 𝑚𝑒 ⎢ 70 5 𝐴𝑙2 420 10 𝐴𝑙 ⎥
⎥ (3)
⎢ 0 𝐼𝑝
0 0 0 0 ⎥
⎢
⎢ 6𝐴 ⎥
⎥
⎢ 13 𝑙 𝐼𝑦 𝑙2 2 𝐼𝑦 ⎥
⎢ 0 0 − 0 − − 0 ⎥
⎢ 420 10 𝐴𝑙 140 30 𝐴 2
⎥
⎣ 13 𝑙 𝐼𝑧 𝑙 2 𝐼𝑧 ⎦
0 − + 0 0 0 − −
420 10 𝐴𝑙 140 30 𝐴
TUM Tech. Rep. Auto. Cont. Vol. TRAC-4 4
⎡ ⎤
𝐴𝑙2 0 0 0 0 0
⎢ 12𝐸𝐼𝑧 6𝐸𝐼𝑧 𝑙 ⎥
⎢ 0 0 0 0 ⎥
⎢
⎢ 1 + 𝑃𝑦 1 + 𝑃𝑦 ⎥
⎥
⎢ 12𝐸𝐼𝑦 6𝐸𝐼𝑦 𝑙 ⎥
⎢ 0 0 0 − 0 ⎥
1 ⎢ 1 + 𝑃𝑧 1 + 𝑃𝑧 ⎥
K𝑒11 = 3⎢ ⎥ (4)
𝑙 ⎢
⎢ 0 0 0 𝐺𝐼𝑡 𝑙2 0 0 ⎥
⎥
2
⎢ 6𝐸𝐼𝑦 𝑙 𝐸𝐼𝑦 𝑙 (4 + 𝑃𝑧 ) ⎥
⎢
⎢ 0 0 − 0 0 ⎥
⎥
⎢ 1 + 𝑃𝑧 1 + 𝑃𝑧 ⎥
⎣ 6𝐸𝐼𝑧 𝑙 𝐸𝐼𝑧 𝑙2 (4 + 𝑃𝑦 ) ⎦
0 0 0 0
1 + 𝑃𝑦 1 + 𝑃𝑦
⎡ ⎤
−𝐸𝐴𝑙2 0 0 0 0 0
⎢ 12𝐸𝐼𝑧 6𝐸𝐼𝑧 𝑙 ⎥
⎢ 0 − 0 0 0 − ⎥
⎢
⎢ 1 + 𝑃𝑦 1 + 𝑃𝑦 ⎥
⎥
⎢ 12𝐸𝐼𝑦 6𝐸𝐼𝑦 𝑙 ⎥
⎢ 0 0 − 0 0 ⎥
1 ⎢ 1 + 𝑃𝑧 1 + 𝑃𝑧 ⎥
K𝑒21 = K𝑒12 𝑇 = 3⎢ ⎥ (5)
𝑙 ⎢
⎢ 0 0 0 −𝐺𝐼𝑡 𝑙2 0 0 ⎥
⎥
⎢ 6𝐸𝐼𝑦 𝑙 𝐸𝐼𝑦 𝑙2 (2 − 𝑃𝑧 ) ⎥
⎢
⎢ 0 0 − 0 0 ⎥
⎥
⎢ 1 + 𝑃𝑧 1 + 𝑃𝑧 ⎥
2
⎣ 6𝐸𝐼𝑧 𝑙 𝐸𝐼𝑧 𝑙 (2 − 𝑃𝑦 ) ⎦
0 0 0 0
1 + 𝑃𝑦 1 + 𝑃𝑦
⎡ ⎤
M𝑒11 M𝑒12 0 ... 0
⎢ 𝑒 𝑒 𝑒 𝑒 ⎥
⎢ M21 M22 + M11 M12 ⎥
⎢ ⎥
⎢ .. .. ⎥
𝐴
⎢ 0 M𝑒21 M𝑒11 + M𝑒22 . . ⎥
M =⎢ .
⎢
. .
⎥,
⎥ (6)
⎢ .. .. .. ⎥
⎢ ⎥
⎢
⎣ M𝑒22 + M𝑒11 M𝑒12 ⎥
⎦
0 ... M𝑒21 M𝑒22
⎡ ⎤
K𝑒11 K𝑒12 0 ... 0
⎢ 𝑒 ⎥
⎢ K21 K𝑒22 + K𝑒11 K𝑒12 ⎥
⎢ ⎥
⎢ .. .. ⎥
⎢ 0 K𝑒21 K𝑒11 + K𝑒22 . . ⎥
K𝐴 = ⎢
⎢ .. . .
⎥.
⎥ (7)
⎢ . .. .. ⎥
⎢ ⎥
⎢
⎣ K𝑒22 + K𝑒11 K𝑒12 ⎥
⎦
0 ... K𝑒21 K𝑒22
The cantilever beam is supported at its left end where neither deflection nor slope may occur.
Accordingly, we demand all degrees of freedom of the very left node to be 0 (Dirichlet Boundary
Condition). This complies to removing the first six rows and columns of M𝐴 and K𝐴 to get our
final mass and stiffness matrices M and K [5].
TUM Tech. Rep. Auto. Cont. Vol. TRAC-4 5
The remaining degrees of freedom can be collected to the global state vector
[ ]𝑇
z = 𝑢(1) 𝑣 (1) 𝑤(1) 𝛼(1) 𝛽 (1) 𝛾 (1) 𝑢(2) 𝑣 (2) 𝑤(2) 𝛼(2) 𝛽 (2) 𝛾 (2) . . . 𝑢(𝑁 ) 𝑣 (𝑁 ) 𝑤(𝑁 ) 𝛼(𝑁 ) 𝛽 (𝑁 ) 𝛾 (𝑁 ) .
The load 𝐹 (𝑡), that acts on the tip of the beam along the negative 𝑧-axis, affects 𝑤(𝑁 ) , which is
the fourth from last state. We choose this displacement to be also the output. Accordingly, the
global load vector b̂ and the output vector ĉ are given by
[ ]
−b̂𝑇 = ĉ = 0𝑇 , . . . , 0𝑇 , 0 0 1 0 0 0 .
Note that in static Finite Elements, the discrete application of forces leads to convergence
problems. For dynamic considerations however, this is a valid simplification. Note further that
due to the decoupling between transversal bending deformations along 𝑦 and 𝑧, longitudinal
displacement and torsion, only part of the states will be excited for the given load vector b̂.
Naturally, it is possible to augment the input and output vectors with further columns and rows,
respectively, in order to obtain a MIMO model.
Finally, we assume the dampening matrix D to be given by (Rayleigh damping)
D = 𝑑1 M + 𝑑2 K. (8)
∙ Besides, 𝑇 𝑇
[ changing
] the output
[ matrix]to c = b Q, (11) is a Port Hamiltonian system where
0 K 0 0
J= and R = .
−K 0 0 D
TUM Tech. Rep. Auto. Cont. Vol. TRAC-4 6
4 Conclusions
We have presented a thorough way to produce state space models of a 3D cantilever Timo-
shenko beam that can be easily implemented. A ready-to-run Matlab code, that can be adapted
straightforward to match the user’s needs, is given in the Appendix. The function can be mod-
ified to have any of the quantities 𝐿, 𝑡, 𝑑, 𝜌, 𝐸, 𝜈, . . . , as well as 𝑁 , the number of elements, as
parameters.
For more MATLAB codes and further information, please visit our website: www.rt.mw.tum.de.
References
[1] Oberwolfach Model Reduction Benchmark Collection. available online at
http://www.imtek.uni-freiburg.de/simulation/benchmark/.
[3] Y. Chahlaoui and P. Van Dooren. A collection of Benchmark Examples for Model Reduction
of Linear Time Invariant Dynamical Systems. Slicot working note, 2002. Available at
ftp://wgs.esat.kuleuven.ac.be/pub/WGS/ REPORTS/SLWN2002-2.ps.Z.
[4] K.-H. Grote and J. Feldhusen. Dubbel, Taschenbuch für den Maschinenbau. Springer, 21.
Auflage, 2004.
[5] Y. W. Kwon and H. Bang. The Finite Element Method Using MATLAB. Crc Pr Inc., 2nd
Edition, 2000.
[7] R. Castañé-Selga, R. Eid, and B. Lohmann. A generalized theory for stability preservation
in model order reduction of large scale systems. (In preparation).
[8] B. Salimbahrami. Structure Preserving Order Reduction of Large Scale Second Order Models.
PhD thesis, Institute of Automatic Control, Technical University of Munich, 2005.
M11 = zeros(6,6);
M11(1,1) = 1/3;
M11(2,2) = 13/35 + 6*Iz/(5*A*lˆ2);
M11(3,3) = 13/35 + 6*Iy/(5*A*lˆ2);
M11(4,4) = Ip/(3*A);
M11(5,5) = lˆ2/105 + 2*Iy/(15*A);
M11(6,6) = lˆ2/105 + 2*Iz/(15*A);
M11(6,2) = 11*l/210 + Iz/(10*A*l);
M11(2,6) = M11(6,2) ;
M11(5,3) = −11*l/210 − Iy/(10*A*l);
M11(3,5) = M11(5,3) ;
M21 = zeros(6,6);
M21(1,1) = 1/6;
M21(2,2) = 9/70 − 6*Iz/(5*A*lˆ2);
M21(3,3) = 9/70 − 6*Iy/(5*A*lˆ2);
M21(4,4) = Ip/(6*A);
M21(5,5) = −lˆ2/140 − Iy/(30*A);
M21(6,6) = −lˆ2/140 − Iz/(30*A);
M21(6,2) = −13*l/420 + Iz/(10*A*l);
M21(2,6) = −M21(6,2);
M21(5,3) = 13*l/420 − Iy/(10*A*l);
M21(3,5) = −M21(5,3);
K11 = zeros(6,6);
K11(1,1) = E*A/l ;
K11(2,2) = 12*E*Iz/(lˆ3*(1+Py)) ;
K11(3,3) = 12*E*Iy/(lˆ3*(1+Pz)) ;
K11(4,4) = G*It/l ;
K11(5,5) = (4+Pz)*E*Iy/(l*(1+Pz)) ;
K11(6,6) = (4+Py)*E*Iz/(l*(1+Py)) ;
K11(2,6) = 6*E*Iz/(lˆ2*(1+Py)) ;
K11(6,2) = K11(2,6) ;
K11(3,5) = −6*E*Iy/(lˆ2*(1+Pz)) ;
K11(5,3) = K11(3,5) ;
% assembly
for i = 1:N
a=1+6*(i−1):6*(i+1);
K(a,a) = K(a,a) + Ke;
M(a,a) = M(a,a) + Me;
end
% boundary condition
K(1:6,:)=[]; K(:,1:6)=[];
M(1:6,:)=[]; M(:,1:6)=[];
% dampening matrix
D = d1*K + d2*M ;
F = eye(6*N);
E = [F zeros(6*N,6*N); zeros(6*N,6*N) M];
A = [zeros(6*N,6*N) F; −K −D] ;
B = [zeros(6*N,size(B,2)); B];
C = [C, zeros(size(C,1), 6*N)];
sys = dss(A,B,C,0,E);
end