A method for the development and control of stiffness matrices for the calculation of beam and shell structures using the symbolic programming language MAPLE N. Gebbeken, E. Pfeiffer, I. Videkhina University of the German Armed Forces Munich Faculty of Civil and Environmental Engineering Institute of Engineering Mechanics and Structural Mechanics Laboratory of Engineering Informatics 85577 Neubiberg, Germany
[email protected] [email protected] [email protected]
Summary For the static and dynamic calculation of any kind of structures numerical techniques like the Finite Element Method (FEM) are established. The mechanical properties of structures are described by element matrices which - assembled to a global system matrix - represent the topological and mechanical behaviour of the total system. For the integration of complex structural analyses into mostly iterative processes of design and construction efficient algorithms and reliable evaluations of results are essential. Using MAPLE a universal method for the development and control of stiffness matrices for beam and shell structures is presented in this article. Considering beam elements basic formulations are discussed as well as beam elements with arbitrary loads and complex boundary conditions. A single beam is characterized by a differential equation of the fourth order EJw´´´´ = q. The differential equation becomes even much more difficult if biaxial bending, elastic foundation or the second order analysis have to be taken into account. It is worth mentioning that the effort for the solution with MAPLE does not increase in the same manner as the complexity of differential equations does. For the calculation of disc structures, plate and folded plate structures different element matrices are in use. The partial differential equation for plates changes to an ordinary differential equation if their deflected surface is approximated by trigonometric rows. In this case the algorithm for the development of the element stiffness matrix is similar to this of beam elements. Derivations of stiffness matrices are sometimes extensive and sophisticated in mathematics. Therefore, the test of the correctness of the mathematical calculus for this object is an important step in the development process of numerical methods. This paper presents two test procedures and their realization with MAPLE. MAPLE offers useful ways for the development of stiffness matrices for different types of elements and the creation of element libraries for p-adaptive modes. Furthermore MAPLE enables the export of code into other programming languages and to embed this in existing FEM-systems.
1
Introduction
In structural engineering the design and calculation of beam and shell structures is a daily practice. Beam structures are formed with beam elements which are tied together in nodes. Shell structures consist of panels and plates connected at nodal lines. Beam and shell elements can also be combined in spatial structures like bridges, multi-story buildings, tunnels, impressive architectural buildings and so on. An element library for the calculation of different types of structures can be developed with the symbolic computer language MAPLE. This article presents some element formulations for effective project engineering.
Beam structures wi
ϕi
Shell structures
wj ui
ϕj
uj
Differential equation for a single beam d 4w q = 4 dx EJ with w- deflection, EJ- bending stiffness (E- modul of elasticity, J- moment of inertia), x- longitudinal axis, q- line load
Beams loads Beamswith witharbitrary arbitary loads and conditions andcomplex complex boundary boundary conditions 1. Beam on elastic foundation 4 d w q kb , with n = 4 + 4 ⋅ n4 ⋅ w = 4 4EJ dx EJ
Differential equations for a disc (expressed in displacements)
∂ 2u 1 − µ ∂ 2u 1 + µ ∂ 2v + + = 0 2 2 ∂x 2 ∂y 2 ∂x∂y 2 2 2 ∂ v 1− µ ∂ v 1+ µ ∂ u + + = 0 2 2 ∂y 2 ∂x 2 ∂x∂y Differential equation for a plate
∂ 4w ∂ 4w ∂ 4w p + 2 + = ∂x 4 ∂x 2 ∂y 2 ∂y 4 D
with n- relative stiffness of foundation, k- coefficient of elastic foundation, b- broadness of bearing
2. Theory of second order d 3ϕ q = 3 dx EJ dw d 2ϕ =ϕ −γ ⋅ 2 dx dx
with γ- shearing strain
3. Biaxial bending 4 2 w N dd2w dd4w w qq ± N ⋅ = ± ⋅ 22 = 44 dx EJ dx dx dx EJ EJ
with N- axial force
Fig.1: Short overview of the fundamental equations for the calculation of beam and shell structures
2
Calculation of beam structures
For the elaboration of the stiffness matrix for beams the following approach will be suggested: 1. Based on the differential equation for a beam the stiffness matrix is developed in a local coordinate system. 2. Consideration of the stiff or hinge connection in the nodes at the end of the beam. 3. Extension of element matrix formulations for beams with different characteristics, e.g. tension/ compression. 4. Transforming the expressions from the local coordinate system into the global coordinate system. 5. The element matrices are assembled in the global stiffness matrix. This article will discuss in details only the first point.
2.1
Systematic approach for the development of differential equations of beams with or without consideration of the transverse strain and the formulas for normal stress Table 1
Matrix equations Type of the development
Beam structure
Equations from the strength of materials Tension/ Compression
Equation of equilibrium
A ⋅S = F
Geometrical relations
A ⋅U = ∆
ε=
Material law
B −1 ⋅ ∆ = S
σ = E ⋅ε
(2) → (3)
N = ∫ σ ⋅ dA A
T
−1
B ⋅ A ⋅U = S T
du dx
σ =E⋅
du dx
T
A ⋅ B ⋅ A ⋅U = F
N = EA ⋅
( A ⋅ B −1 ⋅ AT ) ⋅ F = U
du N = dx EA
B −1 ⋅ AT ⋅ ( A ⋅ B −1 ⋅ AT )−1 ⋅ F = S
σ=
−1
(4) → (1)
(6) → (4)
du dx
N A
Bending without consideration of the transverse strain
Bending with consideration of the transverse strain
M = − ∫ σ ⋅ ydA
M = − ∫ σ ⋅ ydA
du d 2w ε= =− 2 y dx dx
ε=
σ = E ⋅ε
σ = E ⋅ε
d 2w σ = −E ⋅ 2 y dx
σ = −E ⋅
dϕ y dx
d 2w M = EJ ⋅ 2 dx
M = EJ ⋅
dϕ dx
d 2w M = dx 2 EJ
M dϕ = EJ dx
A
σ =−
M y J
1
A
du dϕ =− y dx dx
σ =−
mit ϕ =
dw +γ dx
2
3
M y J
mit ϕ = mit ϕ =
mit ϕ =
dw +γ dx
dw +γ dx
dw +γ dx
4
5
6
7
2.2
Algorithm for the elaboration of a stiffness matrix for an ordinary beam and a beam on elastic foundation
> restart; with(linalg): with(LinearAlgebra): The differential equation of the fourth order > diff(w(x),x$4)=q/(E*J);
q d4 w( x ) = 4 EJ dx
Dissolving of the differential equation > solving:=dsolve(diff(w(x),x$4)=q/(E*J),w(x));
solving := w( x ) =
q x4 _C1 x 3 _C2 x2 + + + _C3 x + _C4 24 E J 6 2
Derivations from w(x) > w_1:=diff(%,x): w_2:=diff(%,x): w_3:=diff(%,x): w_4:=diff(%,x): In matrix form > eq:=[rhs(solving),rhs(w_1),rhs(w_2),rhs(w_3),rhs(w_4)]: > Dmatrix:=mulcol(genmatrix(eq,[_C1,_C2,_C3,_C4],flag),5,-1);
Dmatrix :=
x3 6
x2 2
x
1
x2 2
x
1
0
x
1
0
0
1
0
0
0
0
0
0
0
q x4 24 E J
3 q x 6 E J 2 q x 2 E J q x E J q E J
The fifth row is used to check the correctness of differential equation solution Check of the correctness of the solved differential equation > simplify(diff(solving,x$4)=q/(E*J));
q q d4 4 w( x ) = = dx EJ EJ
G Elaboration of matrix L and the vector L for unit displacements
Fig. 2: Unit displacements of nodes
We substitute in the first two rows of the Dmatrix the coordinates for the nodes with x = 0 and x = l. > row_12:=submatrix(Dmatrix,1..2,1..5): matrvect_L:=Matrix(4,5,[[subs(x=0,row(row_12,1))],[subs(x=0,row(row_12,2))],[ subs(x=l,row(row_12,1))],[subs(x=l,row(row_12,2))]]);
0 0 3 l matrvect_L := 6 l2 2
0 0
0 1
1 0
l2 2
l
1
l
1
0
0 0
4 q l 24 E J q l 3 6 E J
> matr_L:=submatrix(matrvect_L,1..4,1..4): Elaboration of the inverse matrix L > matr_L_inv:=inverse(matr_L): > vect_L:=submatrix(matrvect_L,1..4,5..5): G Elaboration of matrix L1 and the vector L1 Fig. 3: Reaction forces and internal forces
> row_34:=submatrix(Dmatrix,3..4,1..5): > matrvect_L1:=scalarmul(mulrow(mulrow(Matrix(4,5,[[subs(x=0,row(row_34,2))],[s ubs(x=0,row(row_34,1))],[subs(x=l,row(row_34,2))],[subs(x=l,row(row_34,1))]]) ,2,-1),3,-1),E*J);
0 EJ 0 −E J 0 matrvect_L1 := −E J E J l E J
0 0 0
0 0 0
0
0
0 0 −q l q l 2 2
> matr_L1:=submatrix(matrvect_L1,1..4,1..4): > vect_L1:=submatrix(matrvect_L1,1..4,5..5): -1 Elaboration of the relative stiffness matrix r with EJ=1 r = L1 ⋅ L > matr_r:=multiply(matr_L1/E/J,matr_L_inv): G G G G Elaboration the relative load column rq with q = 1 rq = -r ⋅ L + L1
> vect_rq:=simplify(matadd(-multiply(matr_r,E*J*vect_L),vect_L1)): The finally stiffness matrix r and the load column rq for a single beam > resultmatr_r:=augment(E*J*matr_r,vect_rq);
12 E J l3 6EJ l2 resultmatr_r := 12 E J − l3 6EJ l2
6EJ l2
−
4EJ l
−
−
6EJ l2
2EJ l
12 E J l3
6EJ l2
6EJ l2 12 E J l3
2EJ l
−
6EJ l2
−
6EJ l2
4EJ l
ql 2
2 q l − 12 q l − 2 q l 2 12 −
Saving the results for later inspections of stiffness matrix (q.v. 3) > save resultmatr_r, beam; > duplication_matr:=simplify(Matrix(4,5,[[subs(l=2*l,row(resultmatr,1))],[subs( l=2*l,row(resultmatr,2))],[subs(l=2*l,row(resultmatr,3))],[subs(l=2*l,row(res ultmatr,4))]])); > save duplication_matr, beam1;
Elaboration of the stiffness matrix for a beam on elastic foundation In analogous steps the development of the stiffness matrix for beam on elastic foundation leads to a more difficult differential equations:
d 4w q , + 4 ⋅ n4 ⋅ w = 4 dx EJ
with n =
4
kb 4EJ
The finally stiffness matrix r and the load column rq for a beam on elastic foundation > resultmatr_r:=augment(E*J*matr_r,vect_rq); > resultmatr:=augment(E*J*matr_r,matr_rq);
resultmatr := E J n 3 ( −e ( −2 n l ) + 4 sin( n l ) cos( n l ) + e ( 2 n l ) ) 4 , ( −2 n l ) (2 n l) 2 e − 6 + 4 cos ( n l ) + e ( −2 n l ) (2 n l) E J n2 ( e + 2 − 4 cos( n l ) 2 + e ) 2 , ( −2 n l ) (2 n l) 2 e − 6 + 4 cos( n l ) + e
8
E J n 3 ( −e
( −n l )
sin( n l ) + e e
E J n 2 sin( n l ) ( e
−8
e
( −2 n l )
2 ( −e
−
( −n l )
( −2 n l )
( −n l )
−e
(n l)
− 6 + 4 cos( n l ) + e sin( n l ) + e n (e
( −n l )
( −2 n l )
)
(2 n l)
,−
( −e
cos( n l ) − e
n (e
(2 n l)
−2 4
e
E J n (e
( −2 n l )
( −2 n l )
( −n l )
2
+ 4 sin( n l ) cos( n l ) − e
− 6 + 4 cos( n l ) 2 + e
sin( n l ) + e e
( −n l )
( −2 n l )
)
cos( n l ) )
+ 4 sin( n l ) cos( n l ) + e
( −2 n l )
2
− 6 + 4 cos( n l ) + e
sin( n l ) − e (2 n l)
(n l)
)
,
(2 n l)
(2 n l)
)q
)
cos( n l ) ) q
,
(2 n l)
)
(2 n l)
cos( n l ) − e
(n l)
(2 n l)
( −2 n l )
(n l)
E J n (e + 2 − 4 cos( n l ) + e 2 ( −2 n l ) (2 n l) e − 6 + 4 cos( n l ) 2 + e E J n (e
sin( n l ) − e
− 6 + 4 cos( n l ) 2 + e
( −2 n l )
2
(n l)
− 6 + 4 cos( n l ) 2 + e
2
( −n l )
cos( n l ) − e
(n l) 2
,8
E J n 2 sin( n l ) ( e e
( −2 n l )
cos( n l ) + e
− 6 + 4 cos( n l ) + e
( −n l )
−e
(n l)
− 6 + 4 cos( n l )2 + e (n l)
sin( n l ) )
(2 n l)
)
,
(2 n l)
,
( −2 n l ) (2 n l) ( −n l ) (n l) 1 (e + 2 − 4 cos( n l )2 + e )q 2 sin( n l ) ( e −e )q − − 2 n 2 ( e ( −2 n l ) − 6 + 4 cos( n l ) 2 + e ( 2 n l ) ) n 2 ( e ( −2 n l ) − 6 + 4 cos( n l ) 2 + e ( 2 n l ) ) ( −n l ) ( −n l ) (n l) (n l) 3 sin( n l ) − e cos( n l ) + e sin( n l ) + e cos( n l ) ) −8 E J n ( e , ( −2 n l ) ( 2 n l ) 2 e − + + 6 4 cos ( n l ) e
8
E J n 2 sin( n l ) ( e e
( −2 n l )
( −n l )
−e 2
(n l)
− 6 + 4 cos( n l ) + e
)
(2 n l)
,4
E J n 3 ( −e e
( −2 n l )
( −2 n l )
+ 4 sin( n l ) cos( n l ) + e 2
− 6 + 4 cos( n l ) + e
(2 n l)
(2 n l)
)
E J n 2 ( −e
,2 2
e
(e
( −n l )
( −2 n l )
( −2 n l )
− 2 + 4 cos( n l ) 2 − e
− 6 + 4 cos( n l )2 + e
sin( n l ) − e
( −n l )
(2 n l)
)
(2 n l)
cos( n l ) + e
(n l)
,
sin( n l ) + e
( −2 n l )
(n l)
cos( n l ) ) q
(2 n l)
− 6 + 4 cos( n l ) 2 + e ) ( −2 n l ) (2 n l) ( −e + 4 sin( n l ) cos( n l ) + e ) q − ( −2 n l ) ( 2 n l ) n (e − 6 + 4 cos( n l )2 + e ) ( −n l ) (n l) 2 −e ) −8 E J n sin( n l ) ( e , ( −2 n l ) ( 2 n l) 2 e − 6 + 4 cos ( n l ) + e ( −n l ) ( −n l ) (n l) (n l) E J n (e sin( n l ) + e cos( n l ) − e cos( n l ) + e sin( n l ) ) 4 , ( −2 n l ) ( 2 n l ) e − 6 + 4 cos( n l ) 2 + e 2
n (e
E J n 2 ( −e e
−2
( −2 n l )
( −2 n l )
E J n (e e
− 2 + 4 cos( n l ) 2 − e
− 6 + 4 cos( n l ) 2 + e
( −2 n l )
( −2 n l )
(2 n l)
(2 n l)
+ 4 sin( n l ) cos( n l ) − e
− 6 + 4 cos( n l ) 2 + e ( −n l )
(n l)
)
,
(2 n l)
(2 n l)
)
, ( −2 n l )
(2 n l)
1 ( −e − 2 + 4 cos( n l ) 2 − e ) q 2 − ( −2 n l ) ( 2 n l ) ( −2 n l ) ( 2 n l) − 6 + 4 cos( n l )2 + e ) 2 n2 ( e − 6 + 4 cos( n l ) 2 + e ) n2 ( e sin( n l ) ( e
2.3
−e
)q
Algorithm for the elaboration of a stiffness matrix for a beam element following the theory of second order
Considering transverse strain the algorithm changes substantial. Instead of only one equation two equations are obtained with the two unknowns bending and nodal distortion.
d 3ϕ q = 3 dx EJ dw d 2ϕ =ϕ −γ ⋅ 2 dx dx
> restart; with(linalg): with(LinearAlgebra): >
sys:={diff(phi(x),x$3)=q/(E*J),diff(w(x),x$1)+gamma*diff(phi(x),x$2)=phi(x)};
sys := {
2 q d d3 + γ d φ( x ) = φ( x ) } w ( x ) φ ( x ) = , dx 2 E J dx dx 3
Dissolving the system of differential equations > solving:=dsolve(sys,{phi(x),w(x)});
q x3 _C2 x2 solving := { φ( x ) = + + _C3 x + _C4, 6EJ 2 w( x ) = −
γ q x2 q x4 _C2 x3 _C3 x2 − γ _C2 x + + + + _C4 x + _C1 } 2EJ 24 E J 6 2
Derivations from w(x) and ϕ(x) > w_1:=diff(%,x): w_2:=diff(%,x): w_3:=diff(%,x): Check of the correctness of the solved differential equations > con:=convert(solving,list): eq_1:=con[1]: eq_2:=con[2]:
> simplify(diff(eq_2,x$3)=q/(E*J));
simplify(diff(eq_1,x$1)+gamma*diff(eq_2,x$2)-eq_2=0);
q q d3 3 φ( x ) = = dx EJ EJ
d d2 w( x ) + γ 2 φ( x ) − φ( x ) = 0 = 0 dx dx
> assign(solving): w(x): phi(x): eq:=[w(x),phi(x)]:
Dmatrix:=mulcol(genmatrix(eq,[_C1,_C2,_C3,_C4],flag),5,-1);
1 Dmatrix := 0
1 −γ x + x3 6
x2 2
x
x2 2
x
1
−
γ q x2 q x4 + 2 E J 24 E J q x3 6EJ
G Elaboration of matrix L and the vector L > row_12:=submatrix(Dmatrix,1..2,1..5): matrvect_L:=Matrix(4,5,[[subs(x=0,row(row_12,1))],[subs(x=0,row(row_12,2))],[ subs(x=l,row(row_12,1))],[subs(x=l,row(row_12,2))]]); matr_L:=submatrix(matrvect_L,1..4,1..4): matr_L_inv:=inverse(matr_L): vect_L:=submatrix(matrvect_L,1..4,5..5):
1 0 matrvect_L := 1 0
0 0
−γ l +
1 3 l 6
l2 2
0 0
0 1
l2 2
l
l
1
0 0
2 4 γql q l − + 2 E J 24 E J q l3 6EJ
G Elaboration of matrix L1 and the vector L1 > eq1:=[diff(phi(x),x),diff(phi(x),x$2)]: row_34:=mulcol(genmatrix(eq1,[_C1,_C2,_C3,_C4],flag),5,-1): matrvect_L1:=scalarmul(mulrow(mulrow(Matrix(4,5,[[subs(x=0,row(row_34,2))],[s ubs(x=0,row(row_34,1))],[subs(x=l,row(row_34,2))],[subs(x=l,row(row_34,1))]]) ,2,-1),3,-1),E*J); matr_L1:=submatrix(matrvect_L1,1..4,1..4): vect_L1:=submatrix(matrvect_L1,1..4,5..5):
0 0 matrvect_L1 := 0 0
EJ 0 0 0 −E J 0 −E J 0 0 EJl
EJ
0
0 0 −q l q l 2 2
> matr_r:=multiply(matr_L1/E/J,matr_L_inv): vect_rq:=simplify(matadd(multiply(matr_r,E*J*vect_L),vect_L1)):
> resultmatr_r:=simplify(augment(E*J*matr_r,vect_rq));
resultmatr_r :=
12 E J l ( 12 γ + l 2 ) 6EJ 12 γ + l 2 − 12 E J l ( 12 γ + l 2 ) 6EJ 12 γ + l 2
6EJ 12 γ + l 2
−
12 E J l ( 12 γ + l 2 )
4 E J ( 3 γ + l2 ) l ( 12 γ + l 2 ) 6EJ − 12 γ + l 2
6EJ 12 γ + l 2 12 E J l ( 12 γ + l 2 )
2 E J ( −6 γ + l 2 ) l ( 12 γ + l 2 )
−
−
6EJ 12 γ + l 2
6EJ 12 γ + l 2 2 E J ( −6 γ + l 2 ) l ( 12 γ + l 2 ) 6EJ − 12 γ + l 2 4 E J ( 3 γ + l2 ) l ( 12 γ + l 2 )
ql 2
q l 2 − 12 q l − 2 q l2 12 −
3
Correctness control of the stiffness matrices
Derivations of stiffness matrices are sometimes extensive and sophisticated in mathematics. Therefore, the test of the correctness of the mathematical calculus for this object is an important step in the development process of numerical methods. There are two types of the control: a compatibility condition or a duplication of the length of the element.
3.1
Compatibility condition Fig.4: Local equilibrium
Equation of equilibrium at point О:
(
)
(3.1)
G G G r ⋅ z−∆x + r + r ⋅ zo + r ⋅ z∆x + F = 0 ji jj ii ij G G and z can be expressed as Taylor rows: The displacement vectors z −∆x ∆x w G z = in centre point o w ' w ' ∆x 2 w '' ∆x 3 w ''' ∆x 4 w IV w G + − + + o ∆x 5 z = − ∆x −∆x w ' 2! w ''' 3! w IV 4! w v w '' w ' ∆x 2 w '' ∆x 3 w ''' ∆x 4 w IV w G + + + + o ∆x 5 z = + ∆x ∆x w ' 2! w ''' 3 ! w IV 4 ! w v w '' rii rij riq Stiffness matrix r = r r r jj jq ji
( )
(3.2)
( )
(3.3)
Insertion (3.2), (3.3) in (3.1)
w ' ∆x 2 w '' ∆x 3 w ''' w + r + r + r + r ⋅ + ∆x ⋅ − r + r ⋅ + ⋅ r +r ⋅ + ⋅ r +r ji ii jj ij w ' ji ij '' ji ij ''' ji ij IV 2 6 w w w w IV ∆x 4 + o ∆x 5 + F = 0 r +r + ji ij 24 w v > restart; with(linalg): with(LinearAlgebra): read beam;
(
)
(
)
(
(
)
(
)
( )
12 E J l3 6EJ l2 resultmatr_r := 12 E J − l3 6EJ l2
>
)
6EJ l2
−
4EJ l
−
−
6EJ l2
2EJ l
12 E J l3
6EJ l2
6EJ l2 12 E J l3
2EJ l
−
6EJ l2
−
6EJ l2
4EJ l
ql 2
2 q l − 12 q l − 2 q l 2 12 −
r(ji,ii):=matadd(submatrix(resultmatr_r,3..4,1..2),submatrix(resultmatr_r,1.. 2,1..2)):
> r(ji,ii,jj):=matadd(r(ji,ii),submatrix(resultmatr_r,3..4,3..4)): > r(ji,ii,jj,ij):=matadd(r(ji,ii,jj),submatrix(resultmatr_r,1..2,3..4)): >
r(ji,ij):=matadd(submatrix(resultmatr_r,3..4,1..2),submatrix(resultmatr_r,1.. 2,3..4)): > r(-ji,ij):=matadd(submatrix(resultmatr_r,3..4,1..2),submatrix(resultmatr_r,1..2,3..4)): > (multiply(row(r(ji,ii,jj,ij),1),Vector(1..2,[v,v1]))+l*multiply(row(r(ji,ij),1),Vector(1..2,[w1,w2]))+l^2/2*multiply(row(r(ji,ij),1),Vector(1..2,[w 2,w3]))+l^3/6*multiply(row(r(ji,ij),1),Vector(1..2,[w3,w4]))+l^4/24*multiply(row(r(ji,ij),1),Vector(1..2,[ w4,w5])))/l=q;
E J w4 = q
3.2
Duplication of the length of the element
Equilibrium system for the points -∆x, О, ∆x (Fig. 4):
G r ⋅ z−∆x + ii G r ⋅ z−∆x + ji
(
)
Or in matrix form
r ii
r ij
r
r +r jj ii
r ij
r
r
ji
ji
G = 0 r iq( −∆x ) G G (r ) = 0 +r jq(o ) iq(o ) G r = 0 jq( ∆x )
G r ⋅ zo + ij G G r + r ⋅ zo + r ⋅ z∆x + jj ii ij G G r ⋅ zo + r ⋅ z∆x + ji jj
jj
G r iq( −∆x ) G G r +r jq( o ) iq( o ) G r jq( ∆x )
Application of Jordan’s method r * = r − r ⋅ r with r * - new value of element and r - initial value of element (Fig. 5).
ij
ij
−1
( ) r ji −1 * r = − r (r + r ) r ij ij jj ii ij −1 * r = − r (r + r ) r ji ji jj ii ji −1 r * = r − r (r + r ) r jj jj ji jj ii ij −1 r * = r − r (r + r ) (r + r ) iq iq ij jj ii iq jq −1 r * = r − r (r + r ) (r + r ) jq jq ji jj ii iq jq r* = r −r r + r ii ii ij jj ii
i
j
ij
ij
Fig. 5: Rearrangement of rows and columns
> restart; with(linalg): with(LinearAlgebra): > read beam; 6EJ 12 E J 12 E J − 3 2 l l l3 6EJ 4EJ 6EJ − 2 2 l l l resultmatr_r := 12 E J 6EJ 12 E J − − 2 3 l l l3 6EJ 2EJ 6EJ − 2 l2 l l > read beam1;
3EJ 2 l3 3EJ 2 l2 duplication_matr := 3EJ − 2 l3 3EJ 2 l2
3EJ 2 l2
−
2EJ l
−
−
3EJ 2 l2 EJ l
6EJ l2 2EJ l
−
6EJ l2
4EJ l
3EJ 2 l3
3EJ 2 l2
3EJ 2 l2 3EJ 2 l3
EJ l
−
3EJ 2 l2
−
3EJ 2 l2
2EJ l
ql 2
q l 2 − 12 q l − 2 q l 2 12 −
−q l 2 q l − 3 −q l 2 q l 3
> res_mat:=resultmatr_r: > r(jj,ii):=matadd(submatrix(res_mat,3..4,3..4),submatrix(res_mat,1..2,1..2)): > inv:=inverse(r(jj,ii)): > mult:=multiply(submatrix(res_mat,1..2,3..4),inv): > mult1:=multiply(mult,submatrix(res_mat,3..4,1..2)): > RR[ii]:=evalm(submatrix(res_mat,1..2,1..2)-mult1): > mult2:=multiply(submatrix(-res_mat,1..2,3..4),inv): > RR[ij]:=multiply(mult2,submatrix(res_mat,1..2,3..4)): > mult3:=multiply(submatrix(-res_mat,3..4,1..2),inv): > RR[ji]:=multiply(mult3,submatrix(res_mat,3..4,1..2)): > mult4:=multiply(submatrix(res_mat,3..4,1..2),inv): > mult5:=multiply(mult4,submatrix(res_mat,1..2,3..4)):
> RR[jj]:=evalm(submatrix(res_mat,3..4,3..4)-mult5): >
sumq:=simplify(matadd(submatrix(res_mat,1..2,5..5),submatrix(res_mat,3..4,5.. 5))): > mult5:=simplify(multiply(inv,sumq)): > mult6:=simplify(multiply(submatrix(res_mat,1..2,3..4),mult5)): > Rq[iq]:=simplify(evalm(submatrix(res_mat,1..2,5..5)-mult6)): > mult7:=simplify(multiply(submatrix(res_mat,3..4,1..2),mult5)): > Rq[jq]:=simplify(evalm(submatrix(res_mat,3..4,5..5)-mult7)): > rez:=augment(RR[ii],RR[ij],Rq[iq]): > rez1:=augment(RR[ji],RR[jj],Rq[jq]): > R:=stackmatrix(rez,rez1): > control:=evalf(simplify(evalm(duplication_matr-R)),2);
0. 0. control := 0. 0.
4
0. 0. 0. 0.
0. 0. 0. 0.
0. 0. 0. 0.
0. 0. 0. 0.
Calculation of shell structures
4.1 Systematic approach for the development of differential equations for a disc Table 2
Type of the development Equation of equilibrium
∂σ x ∂τ yx + =0 ∂x ∂y
Geometrical relations
εx =
∂u ∂x
εy =
∂τ xy ∂x
∂v ∂y
+
γ =
∂σ y ∂y
= 0 τ xy = τ xy = τ
∂u ∂v + ∂x ∂y
1 E σ x − µσ y ) σ x = ( (ε x + µε y ) E 1− µ 2 1 E ε y = (σ y − µσ x ) σ y = (ε y + µε x ) E 1− µ 2
1
2
εx = Material law
σx = (2) → (3)
(4) → (1)
E ∂u ∂v E ∂u ∂v +µ +µ σy = 2 2 1 − µ ∂x ∂y 1 − µ ∂x ∂y
∂u E ∂v τ= +µ 2 (1 + µ ) ∂y ∂x ∂ 2u 1 − µ ∂ 2u 1 + µ ∂ 2v + + = 0 2 2 ∂x 2 ∂y 2 ∂x∂y 2 2 2 ∂ v 1− µ ∂ v 1+ µ ∂ u + + = 0 2 2 2 ∂x 2 ∂x∂y ∂y
3
4
5
The system of partial differential equations for discs changes to a system of ordinary differential equations if the displacements are approximated by trigonometric rows. Table 3
u = U ( y ) ⋅ cos α x
π ⋅n
with α =
v = V ( y ) ⋅ sin α x
L
with α =
∂u = −α ⋅ U ( y ) ⋅ sin α x ∂x
∂v = −α ⋅ V ( y ) ⋅ cos α x ∂x
∂u dU ( y ) = ⋅ cos α x ∂y dy
∂v dV ( y ) = ⋅ sin α x dy ∂y
∂ 2u = −α 2 ⋅ U ( y ) ⋅ cos α x ∂x
∂ 2v = −α 2 ⋅ V ( y ) ⋅ sin α x 2 ∂x
∂ 2u d 2U ( y ) = ⋅ cos α x dy 2 ∂y 2
∂ 2v d 2V ( y ) = ⋅ sin α x dy 2 ∂y 2
∂ 2u dU ( y ) = −α ⋅ ⋅ sin α x dy ∂x∂y
∂ 2v dV ( y ) =α ⋅ ⋅ cos α x dy ∂x∂y
π ⋅n L
Inserting the results of table (3) into the equation (5) of table (2) we get a system of ordinary differential equations:
1+ µ d 2V 1 − µ 2 dU − ⋅ α ⋅V − ⋅α ⋅ =0 2 2 dy dy 2 2U 1 + µ µ − 1 d dV −α 2 ⋅ U + ⋅ + ⋅α ⋅ = 0 dy 2 dy 2 2
4.2
Algorithm for the elaboration of a stiffness matrix for a disc element
System of ordinary differential equations > restart; with(linalg): with(LinearAlgebra): > sys:={-a^2*U(y)+(1mu)/2*diff(U(y),y$2)+(1+mu)/2*a*diff(V(y),y$1)=0,diff(V(y),y$2)-(1mu)/2*a^2*V(y)-(1+mu)/2*a*diff(U(y),y$1)=0};
1 d d2 1 sys := { 2 V( y ) − ( 1 − µ ) a 2 V( y ) − ( 1 + µ ) a U( y ) = 0, 2 2 d y dy 2 1 d 1 d −a 2 U( y ) + ( 1 − µ ) 2 U( y ) + ( 1 + µ ) a V( y ) = 0 } 2 2 d y dy
Dissolving the system of ordinary differential equations > F:=dsolve(sys,{U(y),V(y)});
F := { V( y ) = − ( µ _C1 a e − µ _C4 a e − _C3 a e
(a y)
(a y)
U( y ) = _C1 e
( −a y )
+ µ _C2 a e
y − µ _C4 e
− _C4 a e
( −a y )
(a y)
+ _C2 e
(a y)
( −a y )
+ _C1 a e
y + 3 _C4 e
( −a y )
( −a y )
(a y)
y + _C3 e
y − µ _C2 e
( −a y )
+ _C2 a e
( −a y )
)/( a ( 1 + µ ) ),
(a y)
+ _C4 e
(a y)
> V1:=diff(F,y): V2:=diff(V1,y): V3:=diff(V2,y): > r:=convert(F,list): U1:=r[1]: V1:=r[2]:
− µ _C3 a e
y}
(a y)
y + 3 _C2 e
( −a y )
> simplify(-a^2*U1+(1-mu)/2*diff(U1,y$2)+(1+mu)/2*a*diff(V1,y$1)=0): > simplify(diff(V1,y$2)-(1-mu)/2*a^2*V1-(1+mu)/2*a*diff(U1,y$1)=0): > assign(F): U(y): V(y): eq:=[U(y),V(y)]: > Dmatrix:=genmatrix(eq,[_C1,_C2,_C3,_C4]): > row_12:=convert(submatrix(Dmatrix,1..2,1..4),Matrix): >
matrvectL:=Matrix(4,4,[[subs(y=0,row(row_12,1))],[subs(y=0,row(row_12,2))],[s ubs(y=l,row(row_12,1))],[subs(y=l,row(row_12,2))]]): > mat_L:=convert(submatrix(matrvectL,1..4,1..4),Matrix): > mat_L_inv:=simplify(MatrixInverse(mat_L)): > w:=-mu*a*U(y)+diff(V(y),y): w1:=(1-mu)/2*(diff(U(y),y)+a*V(y)): > eq1:=[w,w1]: row_34:=mulcol(genmatrix(eq1,[_C1,_C2,_C3,_C4],flag),5,-1): > matrvectL1:=E*h/(1mu^2)*mulrow(mulrow(Matrix(4,5,[[subs(y=0,row(row_34,1))],[subs(y=0,row(row_3 4,2))],[subs(y=l,row(row_34,1))],[subs(y=l,row(row_34,2))]]),1,-1),2,-1): > mat_L1:=convert(submatrix(matrvectL1,1..4,1..4),Matrix): > resultmatr:=multiply(mat_L1,mat_L_inv):
4.3
Systematic approach for the development of differential equations for a plate
Fig. 6: Stresses and internal forces in plate elements
Equation of equilibrium
∂q x ∂qy + = −p ∂x ∂y ∂mx ∂mxy Balanced moments for x- and y-axis: + = qy ∂y ∂x
Balanced forces in z-direction:
∂mx ∂myx + = qx ∂x ∂y ∂ 2mxy ∂ 2 my ∂ 2 mx + 2⋅ + = −p Equation of equilibrium after some transformations: ∂x 2 ∂x∂y ∂y 2
(4.1)
Table 4
Type of the development
Equation of equilibrium
Bending of plate
mx =
h 2
∫σ
x
⋅ z dz
my =
h − 2
∂w ∂x
Material law
σx =
(2) → (3)
σx = −
(4) → (1)
∂ 2w ∂ 2w m x = −D ⋅ 2 + µ ⋅ 2 ∂y ∂x ∂ 2w mx ∂ 2w 2 +µ⋅ 2 =− ∂y D ∂x
σx =
with D =
E ⋅ h3 12 ⋅ 1 − µ 2
(
)
v = −z ⋅
∂w ∂y
u = −z ⋅
(6) → (4)
∫σ
y
⋅ z dz
mxy =
h − 2
Geometrical relations
E ⋅ (ε x + µ ⋅ ε y ) 1− µ 2 E 1− µ 2
h 2
∂ 2w ∂ 2w ⋅ 2 + µ ⋅ 2 ⋅z ∂y ∂x
12mx ⋅z h3
∂ 2w ∂ 2w ε = − z ⋅ y ∂x 2 ∂y 2 E σy = ⋅ (ε y + µ ⋅ ε x ) 1− µ 2
E 1− µ 2
γ xy = −2 ⋅ z
∂ 2w ∂ 2w ⋅ 2 + µ ⋅ 2 ⋅z ∂x ∂y
∂ 2w ∂ 2w my = −D ⋅ 2 + µ ⋅ 2 ∂x ∂y my ∂ 2w ∂ 2w 2 +µ⋅ 2 =− ∂x D ∂y
σy =
∫τ
xy
⋅ z dz
1
h − 2
ε x = −z ⋅
σy = −
h 2
12mx ⋅z h3
∂ 2w ∂x ∂y
τ xy =
2
E ⋅ γ xy 2 ⋅ (1 + µ )
τ xy = −
E ∂ 2w ⋅ ⋅z 1 + µ ∂x∂y
mxy = −D ⋅ (1 − µ ) ⋅
∂ 2w ∂x∂y
mxy ∂ 2w =− ∂x∂y D ⋅ (1 − µ )
τ xy =
12mxy
h3
⋅z
3 4 5 6 7
We insert the equations from table (4) into the differential equation (4.1) and get the differential equation for a plate:
∂ 4w ∂ 4w ∂ 4w p + 2 ⋅ + = ∂x 4 ∂x 2∂y 2 ∂y 4 D
(4.2)
The partial differential equation for plates changes to an ordinary differential equation if the displacements are approximated by trigonometric rows. Table 5
w = W ( y ) ⋅ sin α x
with α =
π ⋅n L
∂w = W ( y ) ⋅ cos α x ∂x
∂w dW ( y ) = ⋅ sin α x dy ∂y
∂ 2w = −W ( y ) ⋅ α 2 ⋅ sin α x ∂x 2
∂ 2w d 2W ( y ) = ⋅ sin α x dy 2 ∂y 2
∂ 2w dW ( y ) =− ⋅ α ⋅ cos α x dy ∂x ∂y
∂ 2w dW ( y ) =− ⋅ α ⋅ cos α x dy ∂x ∂y
∂ 3w = −W ( y ) ⋅ α 3 ⋅ cos α x ∂x 3
∂ 3w d 3W ( y ) = ⋅ sin α x dy 3 ∂x 3
∂ 3w dW ( y ) 2 =− ⋅ α ⋅ sin α x 2 dy ∂x ∂y
∂ 3w d 2W ( y ) = ⋅ α ⋅ cos α x dy ∂y 2∂x
∂ 4w = W ( y ) ⋅ α 4 ⋅ sin α x 4 ∂x
∂ 4w d 4W ( y ) 4 = ⋅ α ⋅ sin α x dy 4 ∂y 4
∂ 4w d 2W ( y ) 2 = − ⋅ α ⋅ sin α x dy 2 ∂x 2 ∂y 2
∂ 4w d 2W ( y ) 2 = − ⋅ α ⋅ sin α x dy 2 ∂y 2∂x 2
Inserting the results of table (5) in equation (4.2) we get the ordinary differential equation: 4 4 d 4W p 2 d W 4 d W − 2 ⋅α ⋅ +α ⋅ = 4 2 4 dx dy dy D
4.4
Algorithm for the elaboration of the stiffness matrix for a plate
> restart; with(linalg): with(LinearAlgebra): The homogeneous differential equation of the fourth order > diff(W(y),y$4)-2*a^2*diff(W(y),y$2)+a^4*W(y)=0;
d4 d2 4 W( y ) − 2 a 2 2 W( y ) + a 4 W( y ) = 0 dy dy
Dissolving the differential equation > solving:=dsolve(diff(W(y),y$4)-2*a^2*diff(W(y),y$2)+a^4*W(y)=0,W(y));
solving := W( y ) = _C1 e
(a y)
+ _C2 e
(a y)
y + _C3 e
( −a y )
+ _C4 e
( −a y )
y
Derivations of W(y) > W_1:=diff(%,y): W_2:=diff(%,y): W_3:=diff(%,y): W_4:=diff(%,y): In matrix form > eq:=[ rhs(solving),rhs(W_1),rhs(W_2),rhs(W_3),rhs(W_4)]: > Dmatrix:=genmatrix(eq,[_C1,_C2,_C3,_C4]);
e( a y ) (a y) a e Dmatrix := a 2 e ( a y ) a 3 e ( a y ) 4 (a y) a e
e ae
(a y)
(a y)
y
e
y+e
(a y)
(a y)
y+2ae
a3 e
(a y)
a4 e
(a y)
a2 e
( −a y )
−a e
( −a y )
( −a y )
(a y)
a2 e
y + 3 a2 e
(a y)
−a 3 e
y + 4 a3 e
(a y)
a4 e
( −a y )
( −a y ) ( −a y ) −a e y+e ( −a y ) ( −a y ) a2 e y−2ae 3 ( −a y ) 2 ( −a y ) −a e y+3a e ( −a y ) ( −a y ) 4 3 a e y−4a e e
( −a y )
( −a y )
y
Check of the correctness of the solved differential equation > simplify(diff(solving,y$4)-2*a^2*diff(solving,y$2)+a^4*solving=0);
d4 d2 4 W( y ) − 2 a 2 2 W( y ) + a 4 W( y ) = 0 = 0 dy dy
Elaboration of matrix L > row_12:=convert(submatrix(Dmatrix,1..2,1..4),Matrix):
> matrvectL:=Matrix(4,4,[[subs(y=0,row(row_12,1))],[subs(y=0,row(row_12,2))],[s ubs(y=l,row(row_12,1))],[subs(y=l,row(row_12,2))]]): > mat_L:=convert(submatrix(matrvectL,1..4,1..4),Matrix): Elaboration of the inverse matrix L > mat_L_inv:=MatrixInverse(mat_L): Elaboration of matrix L1 > row_34:=convert(submatrix(Dmatrix,3..4,1..4),Matrix):
> matrvectL1:=mulrow(mulrow(Matrix(4,4,[[subs(y=0,row(row_34,2))],[subs(y=0,row (row_34,1))],[subs(y=l,row(row_34,2))],[subs(y=l,row(row_34,1))]]),2,-1),3,1): > mat_L1:=D*convert(submatrix(matrvectL1,1..4,1..4),Matrix): The finally stiffness matrix r for a plate element > resultmatr:=multiply(mat_L1,mat_L_inv): > for i from 1 by 1 to 4 do for j from 1 by 1 to 4 do resultmatr[i,j]:=simplify(resultmatr[i,j])od; od: print(resultmatr): ( −2 a l ) (2 a l) ( −2 a l ) (2 a l) 3 −4al−e ) D a 2 ( −4 a 2 l 2 + 3 e −6+3e ) −2 D a ( e , , ( − 2 a l ) ( 2 a l ) ( − 2 a l ) ( 2 a l ) 2 2 2 2 − 4 a l + e − 2 + e − 4 a l + e − 2 + e
−4
D a3 ( a e
(a l)
l+e
−4 a 2 l 2 + e
(a l)
+ae
( −2 a l )
( −a l )
−2+e
( −2 a l )
l−e
( −a l )
)
(2 a l)
, −4
D a3 l ( e −4 a 2 l 2 + e
( −a l )
( −2 a l )
( −2 a l )
(2 a l)
−e
(a l)
)
−2+e
(2 a l)
(2 a l)
D a2 ( 4 a2 l2 + e −2+e ) D a ( −e −4al+e ) ,2 , ( − 2 a l ) ( 2 a l ) ( − 2 a l ) ( 2 a l ) 2 2 −4 a 2 l 2 + e − 2 + e − 4 a l + e − 2 + e 4
D a3 l ( e −4 a 2 l 2 + e
( −a l )
( −2 a l )
−e
(a l)
)
−2+e
(2 a l)
,4
D a (a e
( −a l )
l+e
−4 a 2 l 2 + e
( −a l )
( −2 a l )
−e
(a l)
+ae
−2+e
(2 a l)
(a l)
l )
(a l) (a l) ( −a l ) ( −a l ) ( −a l ) (a l) 3 l+e +ae l−e ) D a 3 l ( −e +e ) −4 D a ( a e , −4 , ( − 2 a l ) ( 2 a l ) ( − 2 a l ) ( 2 a l) 2 2 2 2 − 4 a l + e − 2 + e − 4 a l + e − 2 + e ( −2 a l ) (2 a l) ( −2 a l ) (2 a l) D a3 ( e −4al−e ) D a 2 ( −4 a 2 l 2 + 3 e −6+3e ) , − −2 ( −2 a l ) (2 a l) ( −2 a l ) (2 a l) −4 a 2 l 2 + e −2+e −4 a 2 l 2 + e −2+e ( −a l ) (a l) ( −a l ) ( −a l ) (a l) (a l) 3 D a l ( −e +e ) D a (a e l+e −e +ae l) 4 ,4 , ( − 2 a l ) ( 2 a l ) ( − 2 a l ) ( 2 a l ) 2 2 −4 a 2 l 2 + e − 4 a + − + − 2 + e l e 2 e ( −2 a l ) (2 a l) ( −2 a l ) (2 a l) D a2 ( 4 a2 l2 + e −2+e ) D a ( −e −4al+e ) ,2 − ( − 2 a l ) ( 2 a l ) ( − 2 a l ) ( 2 a l ) −4 a 2 l 2 + e −2+e −4 a 2 l 2 + e −2+e
Bibliography 1. Alexsandrow A. W., Potapow W.D.: Strength theory, Moscow, high school, 1990. 2. Darkow A.W., Schaposchnikow N.N.: Construction mechanics, Stroiiydat, Moscow, 1986. 3. Gebbeken N.: Introduction to the Finite Element Method (FEM) for beam structures. Lecture notes, University of the German armed forces of Munich, Neubiberg, 2000. 4. Schaposchnikow N.N., Videkhina I.L.: Elaboration of Stiffness matrices for beam structures using the symbolic computer language MAPLE, Scientific Magazine, MIIT, publication 6, 2001, p. 83 - 89. 5. Videkhina I.L.: Algorithms for the elaboration of stiffness matrices and her control with using the symbolic computer language MAPLE, Dissertation, MIIT, Moscow, 2002.