Principle of Virtual Work for a Deformable Body For a rigid body, that body can only translate and rotate. For a deformable body, however, the shape and dimensions of the body can change. If we choose virtual displacements that are not just rigid body displacements, then the virtual work done will not be zero. Example: Consider a spring of unstretched length L: dx F L If we apply a small elongation, dx, to the spring, the force F will do work dW =Fdx Fd This work is not zero since by stretching the spring we increase its internal energy, E, (also called the strain energy or the potential energy of the spring). spring) For a linear spring, we have F=kx, where k is the spring constant and x is the total stretch of the spring Thus the total work , W, in going from the unstretched length to a final length g xf is x= x f W= ∫ kxdx x =0 1 = kx 2f 2 The quantity on the right side of this equation is just the total strain energy or potential, U, of the spring, so we have W=E (total work done by the force on the spring is equal to the strain energy of the spring) By differentiating this relationship we also have dW =dE ( Fdx =kxdx) If we choose small virtual displacements that allow deformations of the body to occur, then the virtual work done by the forces and couples acting on the body will not be zero but will be equal to the virtual change in the strain energy of the body, i.e. δW =δE As in the case of rigid bodies, for deformable bodies we can show that if we satisfy the above relationship for "all" possible small virtual displacements, then equilibrium of the deformable body will be satisfied, or in other words: δW = δE equilibrium Principal of Virtual Work for Deformable Bodies The reason this is important is that we can use this principle to solve both statically determinant and indeterminant problems In applying the virtual work principle for deformable bodies, we generally express the strain energy of the body in terms of displacements and then use the virtual work principle to determine those displacements displacements. The manner in which this is done is as follows: We first break the system we are considering into deformable "elements" and use the virtual work principle to relate the forces acting on an element to the displacements at "nodes" of those elements in terms of a element "stiffness" matrix. We then combine (assemble) all the element stiffness matrices together into a single stiffness matrix for the entire system that is a set of equations that relate all the displacements to all the forces acting on the system. t We then apply the "boundary conditions", i.e. conditions we know about displacements p ((or forces)) to this set of equations q to obtain a set of linear equations for all the unknown displacements. We solve this system of equations for the displacements. We can then use those displacements to find all the forces in the individual elements. The steps we will follow are: 1. Describe the nodes and their connectivity for the system 2. determine the stiffness matrix of each element 3. assemble the global stiffness matrix 4. apply the boundary conditions 5. solve the equations 6. p post-process p the solution to g get all the forces Example: We are going to examine a problem where we have a series of interconnected linear springs and we wanted to solve for the displacements at the ends of each spring and the forces that produce these displacements: P Consider first a single spring: displacements forces on mth element Fi ( m ) Uj Ui km node i node j mth element F j( m ) Fi ( m ) Uj Ui km node i F j( m ) node j mth element Th strain The t i energy off this thi spring i iis 2 1 E = km (U j − U i ) 2 if we give the displacements at each node a small virtual displacement then the work done by the forces will be δ W = Fi ( m )δ U i + Fj( m )δ U j and by the virtual work principle δW = δ E = ∂E ∂E δUi + δU j ∂U i ∂U j = km (U j − U i ) δ U j − km (U j − U i ) δ U i Thus Fi ( m )δ U i + Fj( m )δ U j = km (U j − U i ) δ U j − km (U j − U i ) δ U i If this is true for all virtual displacements we must have Fi ( m ) = km (U i − U j ) Fj( m ) = − km (U i − U j ) or, in matrix form ⎧⎪ Fi ( m ) ⎫⎪ ⎡ km ⎨ ( m) ⎬ = ⎢ ⎪⎩ Fj ⎪⎭ ⎣ − km − k m ⎤ ⎧U i ⎫ ⎨ ⎬ km ⎥⎦ ⎩U j ⎭ element stiffness matrix, Km ⎧⎪ Fi ( m ) ⎫⎪ ⎡ km ⎨ ( m) ⎬ = ⎢ ⎪⎩ Fj ⎪⎭ ⎣ − km − k m ⎤ ⎧U i ⎫ ⎨ ⎬ km ⎥⎦ ⎩U j ⎭ note that equilibrium of the spring is satisfied since Fi ( m ) + F j( m ) = 0 also note that we can write the total strain energy of the spring in terms of this stiffness matrix: E= ⎡ km 1 U U { i j } ⎢−k 2 ⎣ m = 1 T {U} [K m ]{U} 2 − k m ⎤ ⎧U i ⎫ ⎨ ⎬ km ⎥⎦ ⎩U j ⎭ ⎡ km K = [ m ] ⎢ −k ⎣ m −km ⎤ km ⎦⎥ ⎧U ⎫ {U} = ⎨U i ⎬ ⎩ j ⎭ To show how we use this element stiffness matrix matrix, it best to take a specific example 100 lb B A 20 lb/in 30 lb/in Determine the forces acting on the supports at A and B This is a statically indeterminant problem since A 100 B A B 100 0 A+B+100=0 is the only equilibrium equation so we cannot find A and B. Thus,, we need to consider the deformations of the springs. This is easily done with the virtual work principle 1. define the nodes and connectivity 1 (1) element number 1 2 2 (2) node i node j 1 2 2 3 2. define the element stiffness matrices ⎡ 20 −20 ⎤ K1 = ⎢ ⎥ ⎣ −20 20 ⎦ ⎡ 30 −30 ⎤ K2 = ⎢ ⎥ 30 30 − ⎣ ⎦ 3 3. Assemble a global stiffness matrix from each element Here the variables we want to solve for are the displacements U1 , U2 ,U3 U1 U2 U3 so we want to form up pag global stiffness matrix for the whole system y that has the form ⎡ ⎢ ⎢ ⎢⎣ Kg ⎤ ⎧U1 ⎫ ⎧ F1 ⎫ ⎥ ⎪U ⎪ = ⎪ F ⎪ ⎥⎨ 2⎬ ⎨ 2⎬ ⎥⎦ ⎩⎪U 3 ⎭⎪ ⎩⎪ F3 ⎭⎪ Consider the first element contribution to the global equation U1 (1) F1 U2 F2(1) element number 1 2 20 (1) ⎫ ⎧ F 20 20 0 − U 1 ⎡ ⎤⎧ 1⎫ ⎪ ⎪ ⎪ ⎪ ⎢ −20 20 0 ⎥ U = F (1) ⎪⎪ ⎢ ⎥⎨ 2⎬ ⎨ 2 ⎬ ⎢⎣ 0 0 0 ⎥⎦ ⎩⎪U 3 ⎭⎪ ⎪ 0 ⎪ ⎪⎩ ⎭⎪ Now add in the second element contribution ( 2) F2 U2 U3 F3( 2) 30 (1) ⎧ ⎫ F U − 20 20 0 1 ⎡ ⎤⎧ 1⎫ ⎢ −20 20 + 30 −30 ⎥ ⎪U ⎪ = ⎪⎪ F (1) + F ( 2 ) ⎪⎪ 2 ⎬ ⎢ ⎥⎨ 2⎬ ⎨ 2 ⎢⎣ 0 30 ⎥⎦ ⎩⎪U 3 ⎭⎪ ⎪ F3( 2) ⎪ −30 ⎪⎩ ⎭⎪ node i node j 1 2 2 3 ⎧⎪ Fi ( m ) ⎫⎪ ⎡ km − km ⎤ ⎧U i ⎫ ⎨ ( m) ⎬ = ⎢ ⎥ ⎨U ⎬ − k k F m ⎦⎩ j⎭ ⎪⎩ j ⎪⎭ ⎣ m ⎡ k11 k12 ⎤ ⎧U i ⎫ =⎢ ⎥ ⎨U ⎬ k k ⎣ 21 22 ⎦ ⎩ j ⎭ But note that we have (1) F1 U1 U2 (1) F2 20 U2 ( 2) F2 100 F2(1) so 30 F2( 2) F2(1) + F2( 2) = 100 and we have 0 ⎤ ⎧U1 ⎫ ⎧ F1(1) ⎫ −20 ⎡ 20 ⎢ −20 20 + 30 −30 ⎥ ⎪U ⎪ = ⎪ 100 ⎪ ⎬ ⎢ ⎥⎨ 2⎬ ⎨ ⎢⎣ 0 30 ⎥⎦ ⎩⎪U 3 ⎭⎪ ⎪⎩ F3( 2) ⎪⎭ −30 U3 F3( 2) 4. apply the boundary conditions U1 =0 U2 U3 =0 (1) ⎡ 20 −20 0 ⎤ ⎧U1 ⎫ ⎧ F1 ⎫ ⎢ −20 50 −30 ⎥ ⎪U ⎪ = ⎪ 100 ⎪ ⎬ ⎢ ⎥⎨ 2⎬ ⎨ ⎢⎣ 0 −30 30 ⎥⎦ ⎩⎪U 3 ⎭⎪ ⎪ F ( 2) ⎪ ⎩ 3 ⎭ so we can ignore the first and third equations and from the second equation ti we h have only l one non-trivial t i i l equation ti 5. solve the remaining system of equations −20U1 + 50U 2 − 30U 3 = 100 and so the solution is U2 = 2 in. We would like to automate the application of the boundary conditions so th t we can solve that l the th original i i l system t off equations. ti One O way to t do d this thi iis as follows: 1. initialize the right g hand side to zero: ⎧0 ⎫ ⎪ ⎪ ⎨0 ⎬ ⎪0 ⎪ ⎩ ⎭ 2. If a force is specified at a node, place it in the appropriate nodal force location: ⎧ 0 ⎫ ⎪ ⎪ ⎨100 ⎬ ⎪ 0 ⎪ ⎩ ⎭ 3. If a displacement is specified as zero at the nth node, leave the right hand side value as zero and replace the Knn term in the stiffness matrix by a large value N. For our previous example we would have ⎡ 109 −20 0 ⎤ ⎧U1 ⎫ ⎧ 0 ⎫ ⎢ ⎥⎪ ⎪ ⎪ ⎪ 20 50 30 − − ⎢ ⎥ ⎨U 2 ⎬ = ⎨100 ⎬ ⎢ 0 −30 109 ⎥ ⎪⎩U 3 ⎪⎭ ⎪⎩ 0 ⎪⎭ ⎣ ⎦ If a displacement is specified as a non-zero value, C, at the nth node, then replace the right hand side value by CxN CxN, where N is a large value and replace the Knn term in the stiffness matrix by the same large value N. Example: in our previous example if we had U3 =3 instead of U3 =0, we would have ⎡ 109 −20 0 ⎤ ⎧U1 ⎫ ⎧ 0 ⎫ ⎢ ⎥⎪ ⎪ ⎪ ⎪ 20 50 30 U 100 − − = ⎨ ⎬ ⎨ ⎬ ⎢ ⎥ 2 ⎢ 0 −30 109 ⎥ ⎪⎩U 3 ⎪⎭ ⎪⎩3 × 109 ⎪⎭ ⎣ ⎦ 4. We can then solve the system of equations directly For example: ⎡ 109 −20 0 ⎤ ⎧U1 ⎫ ⎧ 0 ⎫ ⎢ ⎥⎪ ⎪ ⎪ ⎪ − 20 50 − 30 ⎢ ⎥ ⎨U 2 ⎬ = ⎨100 ⎬ ⎢ 0 −30 109 ⎥ ⎪⎩U 3 ⎭⎪ ⎩⎪ 0 ⎭⎪ ⎣ ⎦ 0.00000004000000 0 00000004000000 2.00000005200000 0.00000006000000 ⎡ 109 −20 0 ⎤ ⎧U1 ⎫ ⎧ 0 ⎫ ⎢ ⎥⎪ ⎪ ⎪ ⎪ 20 50 30 U 100 − − = ⎨ ⎬ ⎨ ⎬ ⎢ ⎥ 2 ⎢ 0 −30 109 ⎥ ⎪⎩U 3 ⎪⎭ ⎪⎩3 × 109 ⎪⎭ ⎣ ⎦ 0.00000007600000 3.80000009880000 3.00000011400000 U1 = 0, 0 U 2 = 22, U 3 = 0 exactly U1 = 0, U 2 = 3.8, U 3 = 3 exactly 6. Post-processing If we p place the displacements p back into our system y of equations q we find ⎡ 20 −20 0 ⎤ ⎧0 ⎫ ⎧−40 ⎫ ⎢ −20 50 −30 ⎥ ⎪2 ⎪ = ⎪100 ⎪ ⎬ ⎢ ⎥⎨ ⎬ ⎨ ⎪ ⎪ ⎪ ⎪ ⎣⎢ 0 −30 30 ⎥⎦ ⎩0 ⎭ ⎩−60 ⎭ so we have F1(1) = −40 F3( 2) = −60 100 lb 40 lb 60 lb which shows that that we have also satisfied equilibrium of the entire system