Segédlet BMEGEMMAGM5 “Végeselem módszer alapjai” tárgy laborgyakorlatához.
Készítette: Dr. Kossa Attila, BME Műszaki Mechanikai Tanszék, 2013. október 14.
Módosította: Miklós Ákos, BME Műszaki Mechanikai Tanszék, 2015. február 22.

Az alábbi ábrán látható rácsos szerkezet terhelése a G súlyból adódó erő, ami egy súrlódásmentesnek tekinthető csigán keresztül adódik át a szerkezetre. A szerkezet AC és AD rúdjai acélból készültek, keresztmetszetük v oldalhosszúságú négyzet. BD és CD kenderkötelek keresztmetszete dk átmérőjű kör. Az A, B, C és D kapcsolatok ideális csuklós kialakításnak tekinthetőek.
Határozzuk meg a szerkezetnek a terhelés hatására fellépő deformációját végeselemes módszerrel, síkbeli rúdelemeket használva. Állapítsuk meg a kötelekben és az acél rudakban keletkező alakváltozásokat és feszültségeket.

Kiindulási adatok megadása:

a=4;b=3;c=2;d=1;
Q=6000;β=π/3;v=0.01;dk=0.07;
Eacel=210 (10^9);Ekotel=1 (10^9);

A végeselemes modell geometriájának ábrázolása:

X1=b;Y1=0;
X2=0;Y2=0;
X3=b;Y3=a;
X4=d;Y4=c;
X={X1,X2,X3,X4};
Y={Y1,Y2,Y3,Y4};
PL0=Show[Graphics[Line[{{X[[#[[1]]]],Y[[#[[1]]]]},{X[[#[[2]]]],Y[[#[[2]]]]}}]]&/@{{1,3},{1,4},{3,4},{2,4}},Table[{Graphics[{EdgeForm[Thick],White,Disk[{X[[i]],Y[[i]]},0.15]}],Graphics[Inset[i,{X[[i]],Y[[i]]}]]},{i,1,4}],MapIndexed[{Graphics[{EdgeForm[Thin],White,Rectangle[{Plus@@X[[#]],Plus@@Y[[#]]}/2-0.12,{Plus@@X[[#]],Plus@@Y[[#]]}/2+0.12]}],Graphics[Inset[First[#2],{Plus@@X[[#]],Plus@@Y[[#]]}/2]]}&,{{1,3},{1,4},{3,4},{2,4}}],ImageSize->Small]

Az elemekhez tartozó mennyiségek számítása:

Rúdhosszak:

L1=(Sqrt[(((X3-X1))^2)+(((Y3-Y1))^2)]);
L2=(Sqrt[(((X4-X1))^2)+(((Y4-Y1))^2)]);
L3=(Sqrt[(((X4-X3))^2)+(((Y4-Y3))^2)]);
L4=(Sqrt[(((X4-X2))^2)+(((Y4-Y2))^2)]);

Szöghelyzethez kapcsolódó mennyiségek (amik a merevségi mátrix számításánál kellenek majd):

c1=((X3-X1)/L1);s1=((Y3-Y1)/L1);c2=((X4-X1)/L2);s2=((Y4-Y1)/L2);c3=((X4-X3)/L3);s3=((Y4-Y3)/L3);c4=((X4-X2)/L4);s4=((Y4-Y2)/L4);

Keresztmetszetek területe:

A1=(v^2);
A2=A1;
A3=(((dk^2)π)/4);
A4=A3;

Rugalmassági moduluszok:

RUG1=Eacel;
RUG2=Eacel;
RUG3=Ekotel;
RUG4=Ekotel;

Az elemek merevségi mátrixainak számítása:

Ke=((Ae*RUGe)/Le)(({{(cos^2), cos*sin, -(cos^2), -cos*sin}, {cos*sin, (sin^2), -cos*sin, -(sin^2)}, {-(cos^2), -cos*sin, (cos^2), cos*sin}, {-cos*sin, -(sin^2), cos*sin, (sin^2)}}));

K1=Ke/.{cos->c1,sin->s1,Le->L1,RUGe->RUG1,Ae->A1};
K2=Ke/.{cos->c2,sin->s2,Le->L2,RUGe->RUG2,Ae->A2};
K3=Ke/.{cos->c3,sin->s3,Le->L3,RUGe->RUG3,Ae->A3};
K4=Ke/.{cos->c4,sin->s4,Le->L4,RUGe->RUG4,Ae->A4};

MatrixForm[K1]
MatrixForm[K2]
MatrixForm[K3]
MatrixForm[K4]

Globális merevségi mátrix összeállítása lépésenként:

KGLOB1=ConstantArray[0,{8,8}];
KGLOB1[[{1,2},{1,2}]]=K1[[{1,2},{1,2}]];
KGLOB1[[{1,2},{5,6}]]=K1[[{1,2},{3,4}]];
KGLOB1[[{5,6},{1,2}]]=K1[[{3,4},{1,2}]];
KGLOB1[[{5,6},{5,6}]]=K1[[{3,4},{3,4}]];
KGLOB1//MatrixForm

KGLOB2=ConstantArray[0,{8,8}];
KGLOB2[[{1,2},{1,2}]]=K2[[{1,2},{1,2}]];
KGLOB2[[{1,2},{7,8}]]=K2[[{1,2},{3,4}]];
KGLOB2[[{7,8},{1,2}]]=K2[[{3,4},{1,2}]];
KGLOB2[[{7,8},{7,8}]]=K2[[{3,4},{3,4}]];
KGLOB2//MatrixForm

KGLOB3=ConstantArray[0,{8,8}];
KGLOB3[[{5,6},{5,6}]]=K3[[{1,2},{1,2}]];
KGLOB3[[{5,6},{7,8}]]=K3[[{1,2},{3,4}]];
KGLOB3[[{7,8},{5,6}]]=K3[[{3,4},{1,2}]];
KGLOB3[[{7,8},{7,8}]]=K3[[{3,4},{3,4}]];
KGLOB3//MatrixForm

KGLOB4=ConstantArray[0,{8,8}];
KGLOB4[[{3,4},{3,4}]]=K4[[{1,2},{1,2}]];
KGLOB4[[{3,4},{7,8}]]=K4[[{1,2},{3,4}]];
KGLOB4[[{7,8},{3,4}]]=K4[[{3,4},{1,2}]];
KGLOB4[[{7,8},{7,8}]]=K4[[{3,4},{3,4}]];
KGLOB4//MatrixForm

Globális merevségi mátrix összeállítása automatikusan:

Az egyes elemekhez tartozó globális szabadsági fokok:

dof1={1,2,5,6};
dof2={1,2,7,8};
dof3={5,6,7,8};
dof4={3,4,7,8};

A globális merevségi mátrix összeállítása az elemtopológiának megfelelően:

KGLOB=Table[0.,{i,1,8},{j,1,8}];
Do[
KGLOB[[dof1[[i]],dof1[[j]]]]=KGLOB[[dof1[[i]],dof1[[j]]]]+K1[[i,j]];
KGLOB[[dof2[[i]],dof2[[j]]]]=KGLOB[[dof2[[i]],dof2[[j]]]]+K2[[i,j]];
KGLOB[[dof3[[i]],dof3[[j]]]]=KGLOB[[dof3[[i]],dof3[[j]]]]+K3[[i,j]];
KGLOB[[dof4[[i]],dof4[[j]]]]=KGLOB[[dof4[[i]],dof4[[j]]]]+K4[[i,j]];
,{i,1,4},{j,1,4}]

MatrixForm[KGLOB]

KGLOB-KGLOB1-KGLOB2-KGLOB3-KGLOB4

A globális tehervektor megadása:

F={F1X,F1Y,F2X,F2Y,F3X,F3Y,F4X,F4Y};

Az ismert adatok:

F4X=0;
F4Y=0;
F3X=Q*Sin[β];
F3Y=-Q*Cos[β];

A kondenzált merevségi egyenlet megoldása:

A feladat lekötött szabdsági fokai:

kenyszerek={1,2,3,4};

Az aktív szabadsági fokok:

aktiv=Complement[Table[i,{i,1,8}],kenyszerek]

A redukált globális merevségi mátrix:

KRED=KGLOB[[aktiv,aktiv]];
MatrixForm[KRED]

A redukált tehervektor:

FRED=F[[aktiv]];
MatrixForm[FRED]

A kényszerek által lekötött elmozdulások kinullázása:

U={UX1,UY1,UX2,UY2,UX3,UY3,UX4,UY4};

U[[kenyszerek]]=0;

Merevségi egyenlet megoldása:

U[[aktiv]]=LinearSolve[KRED,FRED]

MatrixForm[U]

Deformált alak ábrázolása:

A deformált helyzetben a csomópontok koordinátái

{x1,y1,x2,y2,x3,y3,x4,y4}={X1,Y1,X2,Y2,X3,Y3,X4,Y4}+n*U;

A deformáció szemléltetése a deformáció felnagyításával (Ha a Manipulate parancs végére beírjuk a SaveDefinitions->True kapcsolót, akkor a notebook file későbbi megnyitásakor nem kell lefuttatnunk az egész notebookot ahhoz, hogy a Manipulate-hez tartozó ábrát megjeleníthessük, hanem elmenti a file-ba az adatokat és futtatás nélkül használhatjuk):

Manipulate[(Show[{PL0,Graphics[{Green,Line[{{x1,y1},{x3,y3}}]}],Graphics[{Green,Line[{{x1,y1},{x4,y4}}]}],Graphics[{Green,Line[{{x3,y3},{x4,y4}}]}],Graphics[{Green,Line[{{x2,y2},{x4,y4}}]}],Graphics[{Red,Arrow[{{X4,Y4},{x4,y4}}]}],Graphics[{Red,Arrow[{{X3,Y3},{x3,y3}}]}]}])/.{n->nagyitas},{nagyitas,0,200},SaveDefinitions->True]

Alakváltozások számítása:

ϵ1={-c1,-s1,c1,s1}.U[[dof1]]/L1
ϵ2={-c2,-s2,c2,s2}.U[[dof2]]/L2
ϵ3={-c3,-s3,c3,s3}.U[[dof3]]/L3
ϵ4={-c4,-s4,c4,s4}.U[[dof4]]/L4

Feszültségek számítása MPa-ban:

σ1=ϵ1*RUG1/(10^6)
σ2=ϵ2*RUG2/(10^6)
σ3=ϵ3*RUG3/(10^6)
σ4=ϵ4*RUG4/(10^6)