General Method for Deriving an Element Stiffness Matrix step I: select suitable displacement function beam likely to be polynomial with one unknown coefficient for each (of four) degrees of freedom v1 v' 1 dof = δ = in matrix notation: v2 v'2 say ... 2 C1 C 2 C := C3 C4 2 ( 2 H( x) := 1 x x 3 C1 + x⋅ C2 + x2⋅C3 + x3⋅C4 C1 δ ( x) → δ ( 0) → 2 C2 C2 + 2⋅ x⋅C3 + 3⋅ x ⋅C4 in matrix form: 3 x ) v( x) := H( x)⋅C C 5.3.6 2 d v( x) → C2 + 2⋅ x⋅C3 + 3⋅ x ⋅C4 dx v( x) → C1 + x⋅ C2 + x ⋅C3 + x ⋅C4 v x) v( δ ( x) := d v( x) dx 3 v( x) = C1 + x⋅ C2 + x ⋅C3 + x ⋅C4 C1 + L⋅ C2 + L2⋅C3 + L3⋅C4 δ ( L) → 2 C2 + 2⋅ L⋅C3 + 3⋅ L ⋅C4 for manipulation C1 1 x x2 x3 C2 1 x x2 x3 δ ( x) = ⋅ δ_over_C( x) := 5.3.7 2 C3 2 0 1 2x 3x 0 1 2x 3x C4 step II: relate general displacements within element to its nodal displacement 1 L L2 L3 δ_over_C( L) → 2 0 1 2⋅ L 3⋅ L v1 v 1_p define A such that δ_nodes = A⋅C δ_nodes = v2 v2_p 1 0 0 0 0 1 0 0 A := stack( δ_over_C( 0) , δ_over_C( L) ) A→ 2 3 1 L L L 0 1 2⋅ L 3⋅ L2 1 0 0 0 δ_over_C( 0) → 0 1 0 0 in single matrix form: form by stacking node 1 with node 2 δ_nodes = A⋅C => 0 0 1 0 L L 2 3 L 0 0 1 L 3⋅ L 2 4 0 0 0 L 4 L 0 0 1 0 −1 5.3.8b A → ⋅ 4 2 3 2 3 L −3⋅L −2⋅L 3⋅ L −L 2 2 2⋅ L L −2⋅L L −1 C := A 1 0 A= 1 0 δ_nodes ⋅δ_nodes 1 notes_36_element_stiffness_general_2.mcd v( x) := H( x)⋅C C v( x) δ_nodes ( 3 x ) 5.3.9a −1 v( x) := H( x)⋅A ⋅δ_nodes δ_nodes L3 − 3⋅ x2⋅L + 2⋅ x3 L2 − 2⋅ x⋅L + x2 2 −3⋅L + 2⋅ x 2 −L + x x⋅ −x ⋅ x ⋅ 3 2 3 2 L L L L simplify → −1 shape function defined ( 2 H( x) → 1 x x 2 N( x) := H( x)⋅A A N( x) → 1 − 3⋅ξ + 2⋅ξ 3 2 with 3 2 ξ= ξ⋅L − 2⋅ξ ⋅L + ξ ⋅L 3⋅ξ − 2⋅ξ 3 x => L 2 3 −ξ ⋅L + ξ ⋅L ) x := ξ⋅L L 5.3.9b although text has mix of ξ and x Step III: express the internal deformation in terms of the nodal displacement area resets x, redefines C, H and v our problem is one of solid mechanics deformation is strain: du/dx, ; plane elasticity bending curvature d2 u/dx2 . v_2pr = d2 u/dx2. 2 3 2 v( x) → C1 + x⋅ C2 + x ⋅C3 + x ⋅C4 d 2 dx −1 v_2pr(x) := ( 0 0 2 6⋅x )⋅A B( x) → ⋅δ_nodes δ_nodes v( x) → 2⋅ C3 + 6⋅ x⋅C4 v_2pr(x) := ( 0 0 2 6⋅x )⋅C C −1 B( x) := ( 0 0 2 6⋅x )⋅A A v_2pr( x) := B( x)⋅δ_nodes δ_nodes −6 + 12⋅ x −4 + 6⋅ x 6 − 12⋅ x −2 + 6⋅ x 2 3 L 2 2 3 L 2 L L L L L L 5.3.10 step IV: express the internal force in terms of the nodal displacement the "internal force" is the bending moment and as with internal deformation, this is a problem in bending so the relationship is we just developed 2 d 2 v( x) = E⋅ I⋅v_2pr( x ) dx v_2pr( x) := B( x)⋅δ_nodes δ_nodes copy here for use elsewhere: v_2pr( x) → M ( x) = E⋅I⋅ B( x) := −6 + 12⋅ x −4 + 6⋅ x 6 − 12⋅ x −2 + 6⋅ x 2 3 L 2 2 3 L 2 L L L L L L −6 + 12⋅ x ⋅δ_nodes −4 + 6⋅ x ⋅δ_nodes 6 − 12⋅ x ⋅δ_nodes −2 + 6⋅ x ⋅δ_nodes 2 L 2 L 3 2 3 2 L L L L L L define: M ( x) := E⋅I⋅v_2pr( v_2pr x) bb := E⋅ I L 3 M ( x) bb⋅δ_nodes simplify → [ −6⋅L + 12⋅x 2⋅(−2⋅L + 3⋅ x)⋅L 6⋅ L − 12⋅x 2⋅(−L + 3⋅ x)⋅L ] 5.3.12a 2 notes_36_element_stiffness_general_2.mcd since M(x) is linear, we can calculate M(x) at the nodes (N.B. M is the internal moment) define S M( 0) = S⋅δ_nodes M ( L) 5.3.12b M ( 0) M( 0) bb⋅δ_nodes S_over_bb = M ( L) bb⋅δ_nodes bb⋅δ_nodes M ( L) bb⋅δ_nodes substituting bb = E*I/L^3 S= ( E⋅ I −6⋅L −4⋅L L 3 ( 2 6⋅ L −2⋅L 2 ) ( 2 → −6⋅L −4⋅L ( → 6⋅ L 2⋅ L 2 2 6⋅ L −2⋅L −6⋅L 4⋅ L 2 ) ) note that this is similar to M1 and M2 with sign reversal in top element ) 2 2 6⋅ L 2⋅ L −6⋅L 4⋅ L step V: obtain the element stiffness matrix ke by relating nodal forces to nodal displacements v1_star v1'_star δ_star := v2_star v2'_star T we will do this by the principle of virtual work: assume an arbitrary virtual nodal displacement: external virtual work is force * virtual deflection: actual nodal forces are: Wext := δ_star ⋅ff f1 M1 f := f2 M2 Wext → v1_star⋅f1 + v1'_star⋅M1 + v2_star⋅f2 + v2'_star⋅M2 L internal work = work done in imposing curvature on the beam: for an arbitrary virtual curvature v''_star(x) ⌠ T Wint := v_2pr_star( x) ⋅M ( x) dx ⌡ 0 M ( x) = internal_moment using transpose as v''_star(x) is a scalar but will involve 4 x 1 vectors to multiply the scalar M(x) with vector components later. if arbitrary virtual curvature v''_star(x) is imposed indirectly by virtual nodal displacement v''_star(x) is related to the δ_star by B(x) v_2pr( x) := B( x)⋅δ_nodes δ_nodes from above and ... now using is understood to be nodal δ_star v_2pr_star( x) := B( x)⋅δ_star δ_star v_2pr_star( x) = ( B( x)⋅δ_star) = δ_star ⋅ B( x) T T M ( x) = E⋅I⋅ 2 d 2 v( x) = E⋅ I⋅v_2pr( x) T T v_2pr( x) := B( x)⋅δ_nodes δ_nodes M ( x) = E⋅I⋅ B( x)⋅δ_nodes dx L L ⌠ ⌠ T T T Wint = v_2pr_star( x) ⋅M ( x) dx = δ_star ⋅ B( x) ⋅E⋅I⋅ B( x)⋅δ_nodes dx ⌡ ⌡ 0 0 3 notes_36_element_stiffness_general_2.mcd taking the constants outside the integral and equating internal to external work the constants have to come out of the correct side to maintain matrix math L ⌠ T Wext = δ_star ⋅f = Wint = δ_star ⋅E⋅I B( x) ⋅ B( x) dx⋅δ_nodes ⌡ T T cancelling δ_star => 0 L ⌠ T f = E⋅I B( x) ⋅ B( x) dx⋅δ_nodes = ke⋅δ_nodes ⌡ what we came for 0 −6 + 12⋅ x 3 L2 L −4 x + 6⋅ 2 L L T B( x) → 6 − 12⋅ x 3 L2 L −2 + 6⋅ x 2 L L result; copied from rhs L ⌠ T ke = E⋅ I⋅ B( x) ⋅ B( x) dx ⌡ 0 B( x) → −6 + 12⋅ x −4 + 6⋅ x 6 − 12⋅ x −2 + 6⋅ x 2 3 L 2 2 3 L 2 L L L L L L L ⌠ T all we need is B( x) ⋅ B( x) dx ⌡ 0 (it won't compute symbolicly so I wrote it out in the collapsed area) 12 L3 6 L L2 ⌠ T B( x) ⋅ B( x) dx = ⌡ 0 −12 L3 6 L2 6 −12 2 3 L 4 L −6 L 2 2 L L −6 L 2 12 L 3 −6 L 2 2 L 2 L −6 2 L 4 12 6 L3 L2 6 4 L L2 L ⌠ T ke = E⋅ I⋅ B( x) ⋅ B( x) dx = E⋅ I⋅ ⌡ 0 −12 −6 L3 L2 6 2 2 L L 6 L −12 L 3 −6 L 2 12 L 3 −6 L 2 L 2 L −6 2 L 4 6 2 L so ... 12 fy1 M1 = E⋅ I ⋅ 6⋅ L fy2 3 −12 L 6⋅ L M2 6⋅ L −12 6⋅ L v1 2 2 4⋅ L −6⋅L 2⋅ L θ 1 ⋅ −6⋅L 12 −6⋅L v2 2 2 2⋅ L −6⋅L 4⋅ L θ 2 we now have 4 f = ke⋅δ notes_36_element_stiffness_general_2.mcd