• Nie Znaleziono Wyników

Frame statics solved using CALFEM toolbox for MATLAB

N/A
N/A
Protected

Academic year: 2021

Share "Frame statics solved using CALFEM toolbox for MATLAB"

Copied!
33
0
0

Pełen tekst

(1)

Frame statics solved using CALFEM toolbox for MATLAB

Piotr Pluciński

Institute for Computational Civil Engineering Cracow University of Technology

March 2012

(2)

Frame element description

Approximation

u e (x) = N e (x)q e

N e =  L e i 0 0 L e j 0 0 0 H i e H b i e 0 H j e H b j e

 , q e =

 q 1

q 2

q 3

q 4

q 5

q 6

l e x e , u e y e , v e

i

j

q 1 e q 2 e q 3 e

q 4 e q 5 e q 6 e

l e x e y e

X Y

i

j α e q e 1

q 2 e

q e 4 q e 5

Q e 1 Q e 2

Q e 3

Q e 4 Q e 5

Q e 6

(3)

Frame element description

Approximation

u e (x) = N e (x)q e

N e =  L e i 0 0 L e j 0 0 0 H i e H b i e 0 H j e H b j e

 , q e =

 q 1

q 2

q 3

q 4

q 5

q 6

l e x e , u e y e , v e

i

j

q 1 e q 2 e q 3 e

q 4 e q 5 e q 6 e

l e x e y e

X Y

i

j α e q e 1

q 2 e

q e 4 q e 5

Q e 1 Q e 2

Q e 3

Q e 4 Q e 5

Q e 6

0 l e

1

x e L e i (x e )

0 l e

1

x e

L e j (x e ) 0 l e

1

x e H i e (x e )

0 l e

1

x e H j e (x e )

0 l e x e

H b e i (x e )

0 l e x e

H b e j (x e )

(4)

Frame element description

Displacements vector

u = {u(x), v(x)}

Strain vector

e = {ε x , κ}

Stress vector

s = {N (x), M (x)}

Distributed loading

p = {p x , p y }

Matrix of constitutive relationships

D =

 EA 0

0 EI



Differential operator matrix

L =

 d

dx 0

0 − d 2 dx 2

Kinematic and constitutive relations

e = Lu = LNq = Bq, s = De = DBq

(5)

Frame element description

Element stiffness matrix

k e = Z l e

0

B eT D e B e dx e

k e = EI l 3

Al 2

I 0 0 − Al I 2 0 0

0 12 6l 0 −12 6l 0 6l 4l 2 0 −6l 2l 2

Al I 2 0 0 Al I 2 0 0 0 −12 −6l 0 12 −6l 0 6l 2l 2 0 −6l 4l 2

e

Transformation matrix c = cos(α e ) i s = sin(α e )

T e =

c s 0 0 0 0

−s c 0 0 0 0 0 0 1 0 0 0 0 0 0 c s 0 0 0 0 −s c 0 0 0 0 0 0 1

(6)

Frame element description

Substitute nodal forces

z e = Z l e

0

N eT p e dx e for p x = const = p b x i p y = const = p b y

z e =

 p b x l

2 , p b y l 2 , p b y l 2

12 , p b x l 2 , p b y l

2 , − p b y l 2 12

 e l e

x e y e

X Y

i

j α e

p b e y

p b e x

(7)

Assignment

X Y

100 kN

10 kN/m

50 kNm

1.5 m 1.5 m 3 m

2 m 2 m

E=20 GPa

I=1·10 −4 m 4

A=3·10 −2 m 2

(8)

Discretization

X Y

Q 1

Q 2

Q 3

Q 4

Q 5 Q 6

Q 7 Q 8

Q 9

Q 10

Q 11

Q 12

x 1 1

x 2

2 x

3

3

1

2

3

4

(9)

Script - frame.m

function frame()

% definition of dof matrix

% for elements Edof=[1 1 2 3 4 5 6 ;

2 4 5 6 7 8 9; 3 7 8 9 10 11 12];

% matrix of node coordinates Coord=[0 0; 1.5 2; 3 4; 6 0];

% matrix of dofs Dof=[1 2 3; 4 5 6;

7 8 9; 10 11 12];

% compute coordinate vectors

% for elements

[Ex,Ey]=coordxtr(Edof,Coord,Dof,2);

X Y

1.5 m 1.5 m 3 m

2 m 2 m

Q 1 Q 2 Q 3

Q 4

Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11 Q 12 x 1

1

x 2

2 x

3

3

1 2

3

4

(10)

Script - frame.m

function frame()

% definition of dof matrix

% for elements Edof=[1 1 2 3 4 5 6 ;

2 4 5 6 7 8 9;

3 7 8 9 10 11 12];

% matrix of node coordinates Coord=[0 0; 1.5 2; 3 4; 6 0];

% matrix of dofs Dof=[1 2 3; 4 5 6;

7 8 9; 10 11 12];

% compute coordinate vectors

% for elements

[Ex,Ey]=coordxtr(Edof,Coord,Dof,2);

X Y

1.5 m 1.5 m 3 m

2 m 2 m

Q 1 Q 2 Q 3

Q 4

Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11 Q 12 x 1

1

x 2

2 x

3

3

1 2

3

4

(11)

Script - frame.m

function frame()

% definition of dof matrix

% for elements Edof=[1 1 2 3 4 5 6 ;

2 4 5 6 7 8 9;

3 7 8 9 10 11 12];

% matrix of node coordinates Coord=[0 0; 1.5 2; 3 4; 6 0];

% matrix of dofs Dof=[1 2 3; 4 5 6;

7 8 9; 10 11 12];

% compute coordinate vectors

% for elements

[Ex,Ey]=coordxtr(Edof,Coord,Dof,2);

X Y

1.5 m 1.5 m 3 m

2 m 2 m

Q 1 Q 2 Q 3

Q 4

Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11 Q 12 x 1

1

x 2

2 x

3

3

1 2

3

4

(12)

Script - frame.m

function frame()

% definition of dof matrix

% for elements Edof=[1 1 2 3 4 5 6 ;

2 4 5 6 7 8 9;

3 7 8 9 10 11 12];

% matrix of node coordinates Coord=[0 0; 1.5 2; 3 4; 6 0];

% matrix of dofs Dof=[1 2 3; 4 5 6;

7 8 9; 10 11 12];

% compute coordinate vectors

% for elements

[Ex,Ey]=coordxtr(Edof,Coord,Dof,2);

X Y

1.5 m 1.5 m 3 m

2 m 2 m

Q 1 Q 2 Q 3

Q 4

Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11 Q 12 x 1

1

x 2

2 x

3

3

1 2

3

4

(13)

Script - frame.m

function frame()

% definition of dof matrix

% for elements Edof=[1 1 2 3 4 5 6 ;

2 4 5 6 7 8 9;

3 7 8 9 10 11 12];

% matrix of node coordinates Coord=[0 0; 1.5 2; 3 4; 6 0];

% matrix of dofs Dof=[1 2 3; 4 5 6;

7 8 9; 10 11 12];

% compute coordinate vectors

% for elements

[Ex,Ey]=coordxtr(Edof,Coord,Dof,2);

X Y

1.5 m 1.5 m 3 m

2 m 2 m

Q 1 Q 2 Q 3

Q 4

Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11 Q 12 x 1

1

x 2

2 x

3

3

1 2

3

4

(14)

Script - frame.m

% material/section properties E=2e7;

I=1e-4;

A=0.03;

ep=[E,A,I];

% zero global matrices K=zeros(12);

F=zeros(12,1);

% account for

% concentrated loads F(4)=100;

F(9)=50;

X Y

100 kN

10 kN/m

50 kNm

E=20 GPa I=1·10 −4 m 4 A=3·10 −2 m 2 Q 1

Q 2 Q 3

Q 4 Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11

Q 12 1

2 3

4

(15)

Script - frame.m

% material/section properties E=2e7;

I=1e-4;

A=0.03;

ep=[E,A,I];

% zero global matrices K=zeros(12);

F=zeros(12,1);

% account for

% concentrated loads F(4)=100;

F(9)=50;

X Y

100 kN

10 kN/m

50 kNm

E=20 GPa I=1·10 −4 m 4 A=3·10 −2 m 2 Q 1

Q 2 Q 3

Q 4 Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11

Q 12 1

2 3

4

(16)

Script - frame.m

% material/section properties E=2e7;

I=1e-4;

A=0.03;

ep=[E,A,I];

% zero global matrices K=zeros(12);

F=zeros(12,1);

% account for

% concentrated loads F(4)=100;

F(9)=50;

X Y

100 kN

10 kN/m

50 kNm

E=20 GPa I=1·10 −4 m 4 A=3·10 −2 m 2 Q 1

Q 2 Q 3

Q 4 Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11

Q 12 1

2 3

4

(17)

Equivalent nodal forces

10 kN/m 10 · 3 5 = 6 kN/m

6 · 3 5 = 3.6 kN/m 6 · 4 5 = 4.8 kN/m

3 m 4 m

eq=[4.8,-3.6]

(18)

Script - frame.m

% plot the frame eldraw2(Ex,Ey, [1,2,2]);

% compute stiffness matrices for elements Ke1=beam2e(Ex(1,:),Ey(1,:),ep);

Ke2=beam2e(Ex(2,:),Ey(2,:),ep);

[Ke3,Ze3]=beam2e(Ex(3,:),Ey(3,:),ep,eq);

% assemble global stiffness matrix and load vector K=assem(Edof(1,:),K,Ke1);

K=assem(Edof(2,:),K,Ke2);

[K,F]=assem(Edof(3,:),K,Ke3,F,Ze3);

% account for boundary conditions bc=[ 1 0; 2 0; 3 0; 10 0; 11 0; 12 0];

X Y

Q 1 Q 2

Q 3

Q 4 Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11

Q 12

1 2

3

4

(19)

Script - frame.m

% plot the frame eldraw2(Ex,Ey, [1,2,2]);

% compute stiffness matrices for elements Ke1=beam2e(Ex(1,:),Ey(1,:),ep);

Ke2=beam2e(Ex(2,:),Ey(2,:),ep);

[Ke3,Ze3]=beam2e(Ex(3,:),Ey(3,:),ep,eq);

% assemble global stiffness matrix and load vector K=assem(Edof(1,:),K,Ke1);

K=assem(Edof(2,:),K,Ke2);

[K,F]=assem(Edof(3,:),K,Ke3,F,Ze3);

% account for boundary conditions bc=[ 1 0; 2 0; 3 0; 10 0; 11 0; 12 0];

X Y

Q 1 Q 2

Q 3

Q 4 Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11

Q 12

1 2

3

4

(20)

Script - frame.m

% plot the frame eldraw2(Ex,Ey, [1,2,2]);

% compute stiffness matrices for elements Ke1=beam2e(Ex(1,:),Ey(1,:),ep);

Ke2=beam2e(Ex(2,:),Ey(2,:),ep);

[Ke3,Ze3]=beam2e(Ex(3,:),Ey(3,:),ep,eq);

% assemble global stiffness matrix and load vector K=assem(Edof(1,:),K,Ke1);

K=assem(Edof(2,:),K,Ke2);

[K,F]=assem(Edof(3,:),K,Ke3,F,Ze3);

% account for boundary conditions bc=[ 1 0; 2 0; 3 0; 10 0; 11 0; 12 0];

X Y

Q 1 Q 2

Q 3

Q 4 Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11

Q 12

1 2

3

4

(21)

Script - frame.m

% plot the frame eldraw2(Ex,Ey, [1,2,2]);

% compute stiffness matrices for elements Ke1=beam2e(Ex(1,:),Ey(1,:),ep);

Ke2=beam2e(Ex(2,:),Ey(2,:),ep);

[Ke3,Ze3]=beam2e(Ex(3,:),Ey(3,:),ep,eq);

% assemble global stiffness matrix and load vector K=assem(Edof(1,:),K,Ke1);

K=assem(Edof(2,:),K,Ke2);

[K,F]=assem(Edof(3,:),K,Ke3,F,Ze3);

% account for boundary conditions bc=[ 1 0; 2 0; 3 0; 10 0; 11 0; 12 0];

X Y

Q 1 Q 2

Q 3

Q 4 Q 5

Q 6

Q 7 Q 8 Q 9

Q 10 Q 11

Q 12

1 2

3

4

(22)

Script - frame.m

% compute displacement and reaction force vector [Q,R ]=solveq(K,F,bc)

% extract nodal displacements for all elements Qe=extract(Edof,Q);

% return to elements to compute nodal forces f1=beam2s(Ex(1,:),Ey(1,:),ep,Qe(1,:)) f2=beam2s(Ex(2,:),Ey(2,:),ep,Qe(2,:)) f3=beam2s(Ex(3,:),Ey(3,:),ep,Qe(3,:),eq)

% draw deformed frame

eldisp2(Ex,Ey,Qe,[1,4,1]);

(23)

Script - frame.m

% compute displacement and reaction force vector [Q,R ]=solveq(K,F,bc)

% extract nodal displacements for all elements Qe=extract(Edof,Q);

% return to elements to compute nodal forces f1=beam2s(Ex(1,:),Ey(1,:),ep,Qe(1,:)) f2=beam2s(Ex(2,:),Ey(2,:),ep,Qe(2,:)) f3=beam2s(Ex(3,:),Ey(3,:),ep,Qe(3,:),eq)

% draw deformed frame

eldisp2(Ex,Ey,Qe,[1,4,1]);

(24)

Script - frame.m

% compute displacement and reaction force vector [Q,R ]=solveq(K,F,bc)

% extract nodal displacements for all elements Qe=extract(Edof,Q);

% return to elements to compute nodal forces f1=beam2s(Ex(1,:),Ey(1,:),ep,Qe(1,:)) f2=beam2s(Ex(2,:),Ey(2,:),ep,Qe(2,:)) f3=beam2s(Ex(3,:),Ey(3,:),ep,Qe(3,:),eq)

% draw deformed frame

eldisp2(Ex,Ey,Qe,[1,4,1]);

(25)

Script - frame.m

% compute displacement and reaction force vector [Q,R ]=solveq(K,F,bc)

% extract nodal displacements for all elements Qe=extract(Edof,Q);

% return to elements to compute nodal forces f1=beam2s(Ex(1,:),Ey(1,:),ep,Qe(1,:)) f2=beam2s(Ex(2,:),Ey(2,:),ep,Qe(2,:)) f3=beam2s(Ex(3,:),Ey(3,:),ep,Qe(3,:),eq)

% draw deformed frame

eldisp2(Ex,Ey,Qe,[1,4,1]);

(26)

Results

Q= R= f1=

0 -69.3890 43.7836 -53.8986 -73.2148

0 -2.6878 43.7836 -53.8986 61.5316

0 73.2148

0.0355 0.0000 f2=

-0.0264 -0.0000

-0.0073 -0.0000 -16.2164 26.1014 61.5316

0.0003 0.0000 -16.2164 26.1014 -3.7219

-0.0001 0.0000

0.0288 0.0000 f3=

0 -30.6110

0 32.6878 -20.5168 -22.8761 -53.7219

0 15.6586 -44.5168 -4.8761 15.6586

(27)

Force sign convention in FE

Classical FEM

x e

y e

f 1

f 2

f 3

f 4 f 5

f 6

CALFEM

x e

y e

N p V p

M p

N k

V k

M k

(28)

Script - frame.m - diagrams

% return to elements to compute nodal forces f1=beam2s(Ex(1,:),Ey(1,:),ep,Qe(1,:),[0,0],7) f2=beam2s(Ex(2,:),Ey(2,:),ep,Qe(2,:),[0,0],7) f3=beam2s(Ex(3,:),Ey(3,:),ep,Qe(3,:),eq,21)

% Deformed frame figure(1)

eldraw2(Ex,Ey, [1,2,2]); eldisp2(Ex,Ey,Qe,[1,4,1]); axis([-1 7 -1 5]);

title(’Displacements’)

plotpar=[2 1];

(29)

Script - frame.m - diagrams

% return to elements to compute nodal forces f1=beam2s(Ex(1,:),Ey(1,:),ep,Qe(1,:),[0,0],7) f2=beam2s(Ex(2,:),Ey(2,:),ep,Qe(2,:),[0,0],7) f3=beam2s(Ex(3,:),Ey(3,:),ep,Qe(3,:),eq,21)

% Deformed frame figure(1)

eldraw2(Ex,Ey, [1,2,2]);

eldisp2(Ex,Ey,Qe,[1,4,1]);

axis([-1 7 -1 5]);

title(’Displacements’)

plotpar=[2 1];

(30)

Script - frame.m - diagrams

% Normal forces figure(2)

scal=scalfact2(Ex(3,:),Ey(3,:),f3(:,1),0.35);

eldia2(Ex(1,:),Ey(1,:),f1(:,1),plotpar,scal);

eldia2(Ex(2,:),Ey(2,:),f2(:,1),plotpar,scal);

eldia2(Ex(3,:),Ey(3,:),f3(:,1),plotpar,scal);

axis([-1 7 -1 5]) title(’Normal forces’)

% Shear forces figure(3)

scal=scalfact2(Ex(1,:),Ey(1,:),f1(:,2),0.35); eldia2(Ex(1,:),Ey(1,:),f1(:,2),plotpar,scal); eldia2(Ex(2,:),Ey(2,:),f2(:,2),plotpar,scal); eldia2(Ex(3,:),Ey(3,:),f3(:,2),plotpar,scal); axis([-1 7 -1 5]);

title(’Shear forces’)

(31)

Script - frame.m - diagrams

% Normal forces figure(2)

scal=scalfact2(Ex(3,:),Ey(3,:),f3(:,1),0.35);

eldia2(Ex(1,:),Ey(1,:),f1(:,1),plotpar,scal);

eldia2(Ex(2,:),Ey(2,:),f2(:,1),plotpar,scal);

eldia2(Ex(3,:),Ey(3,:),f3(:,1),plotpar,scal);

axis([-1 7 -1 5]) title(’Normal forces’)

% Shear forces figure(3)

scal=scalfact2(Ex(1,:),Ey(1,:),f1(:,2),0.35);

eldia2(Ex(1,:),Ey(1,:),f1(:,2),plotpar,scal);

eldia2(Ex(2,:),Ey(2,:),f2(:,2),plotpar,scal);

eldia2(Ex(3,:),Ey(3,:),f3(:,2),plotpar,scal);

axis([-1 7 -1 5]);

title(’Shear forces’)

(32)

Script - frame.m - diagrams

% Moments figure(4)

scal=scalfact2(Ex(1,:),Ey(1,:),f1(:,3),0.35);

eldia2(Ex(1,:),Ey(1,:),f1(:,3),plotpar,scal);

eldia2(Ex(2,:),Ey(2,:),f2(:,3),plotpar,scal);

eldia2(Ex(3,:),Ey(3,:),f3(:,3),plotpar,scal);

axis([-1 7 -1 5]);

title(’Bending moments’);

(33)

Diagrams

Cytaty

Powiązane dokumenty

Based on the results presented in Volatile fatty acids production during mixed culture fermentation – The impact of substrate complexity and pH (Jankowska E.,

Figure 8.Time scales for field modelling related problems... Change of

Jesionowski, Marine sponge skeleton photosensitized by copper phthalocyanine: A catalyst for Rhodamine B degradation, Open Chemistry 2016, 14, 243-254 Małgorzata

Faculty of Civil Engineering, Cracow University of Technology URL: www.CCE.pk.edu.pl. Computational Methods, 2020

Civil Engineering Department, Cracow University of Technology URL: www.L5.pk.edu.pl. Computational Methods, 2015

Faculty of Civil Engineering, Cracow University of Technology URL: www.CCE.pk.edu.pl. Computational Methods, 2020

Faculty of Civil Engineering, Cracow University of Technology URL: www.CCE.pk.edu.pl. Computational Methods, 2020

Faculty of Civil Engineering, Cracow University of Technology