# MATLAB Project Assembling the Global Stiffness Matrix

• View
4.628

44

Embed Size (px)

### Text of MATLAB Project Assembling the Global Stiffness Matrix

CE 890 Introduction to Matlab

Matlab Project Assembly of Global Stiffness Matrix

Submitted to Professor Dr. Phanikumar S. Mantha Civil & Environmental Engineering

Submitted By Aqeel Ahmed PID 36846644

Introduction In finite element method (& structural analysis approach), a structure is modeled as an assembly of elements or components with various forms of connection between them. A continuous discrete system is modeled with a finite number of elements interconnected at finite number of nodes. The behaviour of individual elements is characterised by the element's stiffness or flexibility relation, which altogether leads to the system's stiffness or flexibility relation. To establish the element's stiffness or flexibility relation, further leading to the global stiffness/flexibility matrix, MATLAB programming can be effectively used. In this project paper, stiffness matrix has been obtained using different approaches for spring elements and then extended to bar and beam elements. A general code has also been included that is capable of reading from any text file the connectivity matrix and compute the global stiffness matrix. Also, the knowledge of cells in Matlab has been included in the codes which necessarily eased the work. All codes have been developed for a defined problem in hand and results compared to solutions for verification.

Assembling the Global Stiffness Matrix for Spring ElementsTo develop the stiffness matrix, we take an example of two springs connected together and a force P equal to 15 kN is applied to it. The spring constants are k1 = 100 kN and k2 = 200 kN. The layout is as follows:

Figure 1: Spring System for Two Elements Solution

1.

Approach to Solutiona. Step 1. It involves discretization of the problem. The domain consists of two springs/elements and connected at nodes. b. Step 2. Elements need to have connectivity as follows: Element Number 1 2 Node i 1 2 Node j 2 3

c. Step 3. (Element Stiffness Matrix). To formulate the stiffness matrix for each spring, we have the stiffnesss of each spring. ( k1 = 100 kN, k2 = 200 kN). Calling the function SpringElementStiffness will give us the 2x2 stiffness matrix for each spring. The details are:MATLAB Code function y = SpringElementStiffness(k)

% This Function claculates the element stiffness matrix for springs with spring stiffness as k. It returns 2x2 stiffness matirx

y = [k -k; -k k]; MATLAB Output

>> k1 = SpringElementStiffness(100)

k1 = 100 -100 -100 100 >> k2 = SpringElementStiffness(200)

k2 = 200 -200 -200 200

d. Step 4 (Assembling the Global Stiffness Matrix for the System). The system has three nodes; therefore the global stiffness matrix will be 3x3 matrix. To obtain the K matrix, first we setup the zero matrix of size 3x3 and then call the Matlab function SpringAssemble to obtain the matrix. The details are:MATLAB Code function y = SpringAssemble(K,k,i,j) % This function will assemble the element stiffness matrix k at node i(left node) and j (right hand node) into global stiffness matrix K K(i,i)=K(i,i)+k(1,1); K(i,j)=K(i,j)+k(1,2); K(j,i)=K(j,i)+k(2,1); K(j,j)=K(j,j)+k(2,2); y = K; MATLAB Output >> K = zeros(3,3) K=

0

0

0

0 0

0 0

0 0

>> K = SpringAssemble(K,k1,1,2) K=

100

-100

0 0 0

-100 100 0 0

>> K = SpringAssemble(K,k2,2,3) K=

100 -100 0

-100 300 -200

0 -200 200

The same approach is tested for a six spring system having different connectivity of nodes. The details are:

Figure 2: Six-element Spring System Solution 1. Step 1. The domain consists of six elements and five nodes. The Element Number 1 2 3 4 5 6 2. Step 2. Node i 1 3 3 3 3 4 Node j 3 4 5 5 4 2

connectivity will be:

Each element has 2x2 stiffness matrix and since there are five

nodes, therefore, K (global) size will be 5x5. Each element stiffness matrix will be obtained by plugging in the k (spring constant in kN) of respective spring. The out put is as follows: >> k1= SpringElementStiffness(100)k1 = 100 -100 -100 100

>> k2= SpringElementStiffness(200)

k2 = 200 -200 -200 200

>> k3= SpringElementStiffness(300)

k3 = 300 -300 -300 300 >> k4= SpringElementStiffness(400)

k4 = 400 -400 -400 400

>> k5= SpringElementStiffness(500) k5 = 500 -500 -500 500

>> k6 = SpringElementStiffness(600)

k6 = 600 -600 -600 600

>> K = zeros(5,5)

K=

0 0 0

0 0 0

0 0 0

0 0 0

0 0 0

0 0

0 0

0 0

0 0

0 0

>> K = SpringAssemble(K,k1,1,3) K=

100 0 -100 0 0

0 -100 0 0

0 0 0 0 0

0 0 0 0 0

0 100 0 0 0 0

>> K = SpringAssemble(K,k2,3,4)

K=

100 0 -100 0 0

0 0

-100 0

0 0 -200 0

0 0 0 0 0

0 300 0 0

0 -200 200

>> K = SpringAssemble(K,k3,3,5)

K= 100 0 -100 0 0 0 0 0 0 0 -100 0 600 -200 -300 0 0 0 0

-200 -300 200 0 0 300

>> K = SpringAssemble(K,k4,3,5)

K=

100 0 -100 0 0

0 0 0 0 0

-100 0 1000 -200 -700

0 0 -200 200 0

0 0 -700 0 700

>> K = SpringAssemble(K,k5,3,4)

K= 100 0 -100 0 0 0 0 0 0 0 -100 0 1500 -700 -700 0 0 -700 700 0 0 0 -700 0 700

>> K = SpringAssemble(K,k6,4,2) K=

100 0 -100 0 0

0 600 0 -600 0

-100 0 1500 -700 -700

0 -600 -700 1300 0

0 0 -700 0 700

Stiffness Matrix for Bar Element Dealing with bar elements involves 2 degree of freedom (dof) per node (similar to springs). The problem in hand is to obtain the global stiffness matrix of 4 bars connected with node connectivity as shown:

Figure 3: Bar Elements with Node Numbering Solution

Approach - 1The connectivity will be read through a text file and used in the main program to obtain the global stiffness matrix. For the problem EA/L is assumed to be constant. The connectivity is read from the text file (Node1.txt) and can be varied for any number of elements. The code is as follows:MATLAB Code clc, clear all elcon = load('Node1.txt') % To read the file regarding the connectivity of the elements [row, col] = size(elcon) % Arranging the data in matrix form

% Creating the Stiffness Matrix of Zeros Stiffness = zeros(row + 1) number of elements % The size of K(global) is one plus the

%********************************************** % Defining the Element Stiffness matrix % ********************************************* a = [1 -1; -1 1] % Assuming EA/L is constant

% ********************************************* % Assembly of Stiffness Matrix %**********************************************

for i=1:row m = elcon(i,2); n = elcon(i,3); Stiffness(m,m) = Stiffness(m,n) = Stiffness(n,m) = Stiffness(n,n) = end Stiffness MATLAB Output elcon =

Stiffness(m,m) Stiffness(m,n) Stiffness(n,m) Stiffness(n,n)

+ + + +

a(1,1); a(1,2); a(2,1); a(2,2);

1 2 3 4

1 2 3 4

2 3 4 5

row = 4

col = 3

Stiffness =

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

0 0 0 0 0

a=

1 -1 -1 1

Stiffness =

1 -1 -1 0 0 2 0 -1

0 -1 2

0 0 -1 2

0 0 0 -1 1

0 -1 0

0 -1

Approach 2The same problem has been addressed by writing the code in a very generalized form. This code requires the input of number of elements and length (L) and computes the global stiffness matrix.MATLAB Code clc,clear all %********************************************** % Input Data %********************************************** numel = 4 % The number of elements % Total number of nodes

numnodes = numel + 1 neq = numnodes

connection = [1:numel; 2:numel+1]' % Take care of any number of elements % Location of nodes L = 1 x = [0:numel]'/numel*L K = zeros(neq,neq) % The Assembly of the Global Stiffness Matrix for nel = 1:numel n1 = connection(nel,1); n2 = connection(nel,2); x1 = x(n1); x2 = x(n2); ke = [1 -1;-1 1]; % Assembly of element matrix into Global K Matrix K([n1,n2],[n1,n2])=K([n1,n2],[n1,n2])+ke; end

K MATLAB Output numel = 4

numnodes = 5

neq = 5

connection = 1 2 3 4 L= 1 2 3 4 5

x= 0 0.2500 0.5000 0.7500 1.0000

K= 1 -1 -1 0 0 2 0 -1 2 0 0 -1 2 0 0 0 -1 1

0 -1 0

0 -1

0 -1

Approach 3Another approach to obtain the stiffness matrix is using the cell array. The same has been done using following MATLAB CodeMATLAB Code clc, clear all a = [1 -1;-1 1] % Input b1 = [1 b2 = [2 b3 = [3 b4 = [4 the connectivity of the nodes of elements 2] 3] 4] 5]

% Assigning the connectivity to cell b = {b1,b2,b3,b4} K = zeros(5,5) for i = 1:4 for m = 1:2 for n = 1:2 K(b{i}(1,m),b{i}(1,n))=K(b{i}(1,m),b{i}(1,n)) + a(m,n) end end end K

Stiffness Matrix for Beams The methodology can be developed for the beam elements using 2 degree of freedom per node. The element stiffness matrix will become 4x4 and accordingly the global stiffness matrix dimensions will change. Consider a beam discretized into 3 elements (4 nodes per element) as shown below:1 2 3 4

1

3 4

5 6

7 8

2

Figure 4: Beam dicretized (4 nodes) The global stiffness matrix will be 8x8. The MATLAB code to assemble it using arbitrary element stiffness matrix (4x4) is as follows:MATLAB Code clc, clear all numel = 3 nnodes = numel+1 dof = {[1 2 3 4],[3 4 5 6],[5 6 7 8]} K = zeros(nnodes*2) k = {rand(4), rand(4), rand(4)} % Assembling the Global Stiffness Matrix for i = 1:numel for m = 1:4 for n = 1:4 K(dof{i}(1,m), ##### Energy Finite Element Analysis for Computing the High joint matrix computed from the power transmission ... therefore the stiffener stiffness can not be ... assembling the global system
Documents ##### ANALYSIS OF STRUCTURAL FRAMES USING MATLAB ... Easier to analyse the multidimensional element like space frame, space truss we can easily write the Stiffness Member Approach algorithms
Documents ##### CABINET ASSEMBLY INSTRUCTIONS JARLIN · PDF file Assembling Instructions - Wall Cabinet Assembling Instructions - Wall Diagonal Corner Cabinet Assembling Instructions - Pantry Assembling
Documents ##### Vectorized Matlab codes for linear two-dimensional Matlab codes for linear two-dimensional elasticity Jonas Koko ... paper is the assembling functions of the stiffness matrix in
Documents ##### Lesson 27: Direct stiffness method â€“ Beams - Direct Stiffness Method: Beams Version 2 CE IIT ... one could obtain the global stiffness matrix of a continuous beam from assembling
Documents ##### Bogna Goetzendorf-Grabowska, Bending Stiffness of Stiffness of Knitted Fabrics ... The determination of fabric stiffness is ... Schema of the Stiffness Tester, shown in Figure 4
Documents ##### Truss Analysis Using The Stiffness · PDF file Chapter 14 Truss Analysis Using The Stiffness Method. Stiffness Method • Fundamentals of the stiffness method – There are essentially
Documents ##### APPLIED SCIENCES AND ENGINEERING Copyright © 2020 · PDF file Complex multiphase modular assembling Current stiffness-tunable soft-matter machines are primarily based on mechanical
Documents ##### ASSEMBLING MACHINES - The use of the Manuli assembling machines is recommended for proper hose assembling procedures and following Manuli assembling instructions secures a high quality
Documents ##### FEA code in Matlab for a Truss - MathWorks Element Stiffness Matrix to Globe Matrix. ... %Assembling the global matrix ... Result Comparison Between Matlab and
Documents ##### FRAME ANALYSIS USING THE STIFFNESS METHOD Global Stiffness Matrix FRAME ANALYSIS USING THE STIFFNESS METHOD. 2 Simple Frames. 3 Frame-Member Stiffness Matrix AE/L 0
Documents Documents