You are on page 1of 6

6/6/22 3:43 PM C:\Users\Risqi ...\Tugas_Balok_Pleno.

m 1 of 6

%%
%.......................................
% MATLAB code for Finite Element Analysis
% Risqi Febriyanto
% 27-04-2022

%%
% clear memory
close all %close all : menutup semua "jendela" gambar
clear all %clear all : menghapus data pada workspace
clc %clc : membersihkan layar
commandwindow %memunculkan commandwindow

%%
%INPUT
%Node : menunjukkan koordinat nodal
%(Nodal, xn, yn)
Node = [1 0 0;
2 1 0;
3 2 0;
4 3 0;
5 4 0;
6 5 0;
7 6 0;
8 9 0;
9 12 0;
10 13 0;
11 14 0;
12 15 0;
13 16 0;
14 17 0;
15 18 0];

xn=Node(:,2); %xn : data absis dari seluruh nodal


yn=Node(:,3); %yn : data ordinat dari seluruh nodal

%Material Element
%E : Modulus elastisitas
%I : Momen inersia
E1=2.1e5; I1=2.133e-3;
% (Element, Near, Far, E,I)
Element=[1 1 2 E1 I1;
2 2 3 E1 I1;
3 3 4 E1 I1;
4 4 5 E1 I1;
5 5 6 E1 I1;
6 6 7 E1 I1;
7 7 8 E1 I1;
8 8 9 E1 I1;
9 9 10 E1 I1;
10 10 11 E1 I1;
11 11 12 E1 I1;
12 12 13 E1 I1;
6/6/22 3:43 PM C:\Users\Risqi ...\Tugas_Balok_Pleno.m 2 of 6

13 13 14 E1 I1;
14 14 15 E1 I1];
E=Element(:,4);
I=Element(:,5);

%Rest :Boundary condition or Restraint


%(Rest, Ry, Mz)
Rest=[1 1 1;
7 1 0;
9 1 0;
15 1 1];

%Nbne : Beban nodal ekuivalen lokal


%(Nbne1, Nbne2, f1, m1, f2, m2)
Nbne=[1 2 -4.5 -0.75 -4.5 0.75;
2 3 -4.5 -0.75 -4.5 0.75;
3 4 -4.5 -0.75 -4.5 0.75;
4 5 -4.5 -0.75 -4.5 0.75;
5 6 -4.5 -0.75 -4.5 0.75;
6 7 -4.5 -0.75 -4.5 0.75;
9 10 -3 -0.5 -3 0.5;
10 11 -3 -0.5 -3 0.5;
11 12 -3 -0.5 -3 0.5;
12 13 -3 -0.5 -3 0.5;
13 14 -3 -0.5 -3 0.5;
14 15 -3 -0.5 -3 0.5];
%Ngie : Gaya internal ekuivalen lokal
%(elemen, T1, M1, T2, M2)
Ngie=[1 -4.5 0.75 4.5 0.75;
2 -4.5 0.75 4.5 0.75;
3 -4.5 0.75 4.5 0.75;
4 -4.5 0.75 4.5 0.75;
5 -4.5 0.75 4.5 0.75;
6 -4.5 0.75 4.5 0.75;
9 -3 0.5 3 0.5;
10 -3 0.5 3 0.5;
11 -3 0.5 3 0.5;
12 -3 0.5 3 0.5;
13 -3 0.5 3 0.5;
14 -3 0.5 3 0.5];
%fpoint : Gaya pada nodal
%(Nodal fy mz)
fpoint=[8 -12 0];
%%
%PROCESS
%Data inisial
nE = size(Element,1); %nE :jumlah element;
nN = size(Node,1); %nN :jumlah nodal;
nF = size(Nbne,1); %nF :jumlah gaya element;
nI = size(Ngie,1); %nI :jumlah gaya internal ekuivalen
un = 2; %un :jumlah derajat kebebasan per nodal
GDof = un*nN; %Gdof :jumlah derajat kebebasan global
U = zeros(GDof,1); %Displacement Global (matriks kosong)
6/6/22 3:43 PM C:\Users\Risqi ...\Tugas_Balok_Pleno.m 3 of 6

fbne = zeros(GDof,1); %Beban nodal ekuivalen global (matriks kosong)


forces = zeros(GDof,1); %Beban nodal global (matriks kosong)

%%
%Force applied
for f=1:nF;
awb = Nbne(f,1); %awb : nodal awal untuk
beban nodal ekuivalen
akb = Nbne(f,2); %akb : nodal akhir untuk
beban nodal ekuivalen
bne = [un*awb-((un-1):-1:0),un*akb-((un-1):-1:0)]; %bne : kumpulan derajat
kebebasan pada elemen yang diiterasi
elbne = [Nbne(f,3),Nbne(f,4),Nbne(f,5),Nbne(f,6)]'; %elbne : beban nodal
ekuivalen pada elemen yang diiterasi
fbne(bne) = fbne(bne)+elbne; %penyusunan beban padal
kondisi global
end

for fp=1:size(fpoint,1);
Ifx = 2*fpoint(fp,1)-1; %d.k gaya arah y
Ify = 2*fpoint(fp,1); %d.k gaya arah rotasi
forces(Ifx) = fpoint(fp,2); %gaya arah y
forces(Ify) = fpoint(fp,3); %gaya arah rotasi
end
F = forces+fbne; %penjumlahan gaya

%%
%Stiffness
KG = zeros(GDof);%Kekakuan global struktur (matriks kosong)
for i=1:nE
aw = Element(i,2); %aw : nodal awal elemen
ak=Element(i,3); %ak : nodal akhir elemen
dof = [un*aw-((un-1):-1:0),un*ak-((un-1):-1:0)]; %Derajat kebebasan pada nodal
- nodal awal dan akhir
Lx=xn(ak)-xn(aw); %panjang arah x
K = [12 6*Lx -12 6*Lx; %K : Matriks kekakuan elemen
lokal
6*Lx 4*(Lx^2) -6*Lx 2*(Lx^2);
-12 -6*Lx 12 -6*Lx;
6*Lx 2*(Lx^2) -6*Lx 4*(Lx^2)];
Kel = (E(i)*I(i)/(Lx^3))*K; %Kel = Kekakuan elemen
KG(dof,dof) = KG(dof,dof)+Kel; %KG=Kekakuan global
end

%Boundary Condition
nDS = (un*Rest(:,1)*ones(un,1)'-(ones(size(Rest,1),1)*((un-1):-1:0)))'; %nDS : dk
yang terdapat di boundary condition
RSP = [Rest(:,2),Rest(:,3)]; %RSP :
identifikasi terkekang dan tidak terkekang
iDS = nDS(logical(RSP')); %iDS : d.k
terkekang
iDE = setxor(iDS,(1:2*nN)); %iDE : d.k
tidak terkekang
6/6/22 3:43 PM C:\Users\Risqi ...\Tugas_Balok_Pleno.m 4 of 6

%%
%Solution
KS = KG(iDE,iDE); %KS : kekakuan struktur yg tereduksi
Fn = F(iDE); %Fn : Gaya luar yg tereduksi
Un = KS\Fn; %Un : displasemen tidak sama dengan nol

%displacement
U(iDE) = Un;
disp('Displacement')
[U]

%reaction
R=KG*U;
Reaction=R(iDS)-fbne(iDS);
disp('Reaction')
[iDS Reaction]
%%
%Gaya dalam
fgie=zeros(nE,un*2); %gaya internal ekuivalen tiap-tiap elemen
%penyusunan gaya internal ekuivalen
for n=1:nI
fgie(Ngie(n,1),1)=Ngie(n,2);
fgie(Ngie(n,1),2)=Ngie(n,3);
fgie(Ngie(n,1),3)=Ngie(n,4);
fgie(Ngie(n,1),4)=Ngie(n,5);
end
GIE=zeros(size(Element,1),2*un);%gaya dalam (matriks kosong)
for i=1:size(Element,1)
aw=Element(i,2);%aw : nodal awal elemen
ak=Element(i,3);%ak : nodal akhir elemen
%Derajat kebebasan pada nodal-nodal awal dan akhir
ndof = [un*aw-((un-1):-1:0),un*ak-((un-1):-1:0)];
Lx=xn(ak)-xn(aw);%panjang arah x
K=[-12 -6*Lx 12 -6*Lx;
6*Lx 4*(Lx^2) -6*Lx 2*(Lx^2);
-12 -6*Lx 12 -6*Lx;
-6*Lx -2*(Lx^2) 6*Lx -4*(Lx^2)];
Kel=(E(i)*I(i)/(Lx^3))*K; %Kel = Kekakuan elemen
Internal=Kel*U(ndof)+ [fgie(i,:)']; %Gaya dalamper elemen
GIE(i,:)= GIE(i,:)+Internal';%Penyusunan matriks untuk gaya dalam
end
disp('InternalForces (ElementT1 M1 T2 M2)')
jj=1:size(Element,1);
[jj' GIE]

%%
%Gambar Displacement
clf
figure(1)
sk=1/max(abs(U));
for e=1:nE
aw=Element(e,2);
6/6/22 3:43 PM C:\Users\Risqi ...\Tugas_Balok_Pleno.m 5 of 6

ak=Element(e,3);
x1=[xn(aw),xn(ak)]; y1=[yn(aw),yn(ak)];
plot(x1, y1,'b')
hold on;
end

for e=1:nE
aw=Element(e,2);
ak=Element(e,3);
awx=2*aw-1;awy=2*aw-0;
akx=2*ak-1;aky=2*ak-0;
x2=[xn(aw),xn(ak)];
y2=[yn(aw)+sk*U(awx),yn(ak)+sk*U(akx)];
plot(x2, y2,'-.r')
hold on;
end

title ('Bernoulli Beam - Risqi')


axis equal; axis tight; axis on;
xlabel('sumbu x')
ylabel('sumbu y')
zlabel('sumbu z')
hold off;
pause(1e-10);

%%
%Gambar Gaya Dalam Lintang

figure(2)
subplot(2,1,1);
for e = 1:nE
aw = Element(e,2);
ak = Element(e,3);
x1 = [xn(aw),xn(ak)];
y1 = [yn(aw),yn(ak)];
plot(x1, y1, 'k')
hold on;
end
for e = 1:nE
aw = Element(e,2);
ak = Element(e,3);
gaw = GIE(e,1)*-1;
gak = GIE(e,3)*-1;
x2 = [xn(aw),xn(aw),xn(ak),xn(ak)];
y2 = [yn(aw),gaw,gak,yn(ak)];
patch(x2, y2, 'b', 'FaceAlpha',.5)
hold on;
end

title('Gaya Dalam Geser - Risqi')


ylabel('kN')
hold off;
6/6/22 3:43 PM C:\Users\Risqi ...\Tugas_Balok_Pleno.m 6 of 6

%%
%Gambar Gaya Dalam Momen

figure(2)
subplot(2,1,2);
for e = 1:nE
aw = Element(e,2);
ak = Element(e,3);
x1 = [xn(aw),xn(ak)];
y1 = [yn(aw),yn(ak)];
plot(x1, y1, 'k')
hold on;
end
for e = 1:nE
aw = Element(e,2);
ak = Element(e,3);
gaw = GIE(e,2)*-1;
gak = GIE(e,4)*-1;
x3 = [xn(aw),xn(aw),xn(ak),xn(ak)];
y3 = [yn(aw),gaw,gak,yn(ak)];
patch(x3, y3, 'r', 'FaceAlpha',.5)
hold on;
end
title('Gaya Dalam Momen - Risqi')
ylabel('kN-m')
hold off;

You might also like