Sei sulla pagina 1di 12

Comparação gráfica entre métodos numérico e analítico do

comportamento de uma barra sob tensão.

Alan Rubens Silva Sá Filho


Código: 201632704

Neste documento trataremos do comportamento de uma barra sob uma tensão de


200 N. A secção lateral da barra é dada por uma função quadrática na forma A(x) = a.x2
+ b.x + c.
Em primeiro lugar, devemos encontrar a função que rege a variação da área da
barra, conforme sofre tensão. Para tal, foram dados os pontos críticos para formulação
da função. Os pontos 3.A0 e 0.7𝐴0 são os extremos com {𝑥 ∈ 𝑅 ||0 < 𝑥 < 𝐿}. O ponto
𝑥𝑥
de máximo da função é dado por 𝐴0. (20 − 5 ) , onde “xx” representa os dois últimos
números do código do discente
Dessa maneira, podemos chegar à expressão 𝐴(𝑥) = −69.7 ∗ 𝑥 2 + 67,1𝑥 + 3
Logo, para os valores de :
F = 200 N.
L = 1 m.
E = 2.1e9
A0 = 0.2
Foram gerados os seguintes gráficos em script matlab.

Fonte: Arquivo pessoal

Gráfico1 – Deslocamento
Fonte: Arquivo pessoal

Gráfico 2 – Variação de um ponto qualquer


em função da tensão

Dados os gráficos 1 e 2, temos a análise do problema através do método


analítico. O gráfico 3, nos traz uma resolução do mesmo problema através do método
numérico, enquanto que o gráfico 4 traz uma comparação entre o deslocamento teórico
da barra sob tensão.
Para este problema, foram utilizados uma matriz de 20 nós, com a barra
engastada no primeiro nó e os demais com 2 graus de liberdade.
,
Fonte: Arquivo pessoal

Gráfico 3 – Deslocamento em elementos finitos

Fonte: Arquivo pessoal

Gráfico 4 – comparação, tensão

Abaixo estão apresentados os scripts no MATLAB, usados para a obtenção dos gráficos
acima.
SCRIPIT 1
% Dinter UEMA
% Atividade 01
% Aluno: Alan Rubens Silva Sá Filho
% 17/02/2016
clc;close all;clear all
% Onde
% Ax=Fun??o de varia??o da sec??o da Barra
% L = comprimento da barra
% E = Modulo de Elasticidade
% F = For?a aplicada na extremidade da Barra
% Ao = Area inicial
% C1 e C2 = Constante de Integra??o
% U = Deslocamento
% du = du/dx

syms Ax U L E F C1 C2 Ao x A du p X

% Ax = Fun??o de varia??o da sec??o da Barra


Ax=Ao*((-69.7.*x^2)+(67.1.*x)+3);

% primeira derivada
du=C1/(E*Ax); % ver pq esse menos
disp('====================================')
disp('Primeira derivada da Fun??o ')
pretty(du)

% segunda derivada
% U = Deslocamento
U = int(du);
disp(' ')
disp('====================================')
disp('Segunda derivada da Fun??o ')
pretty(U)

% aplicando as condi??es de contorno

% condi??o 1
P1=L;
du1=F/(E*Ao);

Ax1=subs(Ax,x,P1);
C11=du1*(E*Ax1);
disp(' ')
disp('====================================')
disp('condi??o C1= ')
pretty(C11)
% condi??o 2
P2=0;
U1=subs(U,x,P2);
C21=subs(U1,C1,-C11);

disp(' ')
disp('====================================')
disp('condi??o C2= ')
pretty(C21)

% Fun??o de carregamento
disp(' ')
disp('====================================')
disp('Fun??o de Deslocamento')
Ux=(U)+C21;
Ux=subs(Ux,C1,C11);
pretty(Ux)

% Fun??o de tens?o
disp(' ')
disp('====================================')
disp('Fun??o de tens?o')
du_dx=E*subs(du,C1,C11);
pretty(du_dx)

% Substituindo as Variavel
Ao=0.2;
E=2.1e9;
F=250;
L=1;
x1=[0:0.01:1];

% U(x)=deslocamento
Ux=subs(Ux);
Ux=subs(Ux,x,x1);
figure(1)
plot(x1,Ux,'-')

title(['Deslocamento']),
xlabel('L [m]');
ylabel('U(x)');
grid

% du/dx = Tens?o
figure(2)
% hold on
du_dx=subs(du_dx);
du_dx=subs(du_dx,x,x1);
plot(x1,du_dx,'-')
title(['Tens?o']),
xlabel('L [m]');
ylabel('du/dx');
grid

%%%%%%%%%%%%%%%%%%%%%

SCRIPIT 2

% Dinter UEMA
% Atividade 01
% Aluno: Alan Rubens Silva Sá Filho
% 17/02/2016

% Elemento de Barra

% Discretização da barra de secção variável

% clc; clear all


% close all
hold on
%=================================================
% 1 - entrada de dados

%coord=[Xno, Yno]
L=1;
% coord=[0.00 0;
% L/3 0;
% 2*L/3 0;
% 3*L/3 0];

coord=[0.00 0;
0.1 0;
0.15 0;
0.2 0;
0.25 0;
0.3 0;
0.35 0;
0.4 0;
0.45 0;
0.5 0;
0.55 0;
0.6 0;
0.65 0;
0.7 0;
0.75 0;
0.8 0;
0.85 0;
0.9 0;
0.95 0;
1.0 0];
% incid];
% incidencia dos elementos
% inci=[elemento, prop. mat, prop. geo, noi, noj]

% inci= [ 1 1 1 1 2;
% 2 1 2 2 3;
% 3 1 3 3 4];
inci= [1 1 1 1 2;
2 1 2 2 3;
3 1 3 3 4;
4 1 4 4 5;
5 1 5 5 6;
6 1 6 6 7;
7 1 7 7 8;
8 1 8 8 9;
9 1 9 9 10;
10 1 10 10 11;
11 1 11 11 12;
12 1 12 12 13;
13 1 13 13 14;
14 1 14 14 15;
15 1 15 15 16;
16 1 16 16 17;
17 1 17 17 18;
18 1 18 18 19;
19 1 19 19 20];

% prop. materiais (ação / aluminio)


%tmat=[E; poison; rho] (tabela de materiais)
tmat =[2.1e9 0.7e11;
0.3 0.29;
7800 2700];

% prop. geo
% tgeo=[area(m2);
% Inercia de área (m4)]
% Area Inicial de 0.6 ate area fibal de 0.2

% tgeo= [3*0.2 2*0.2 1*0.2;


% .001 .001 .001 ];
AA=linspace(0.6,0.08,20)
AA2=linspace(0.001,0.001,20)
tgeo=[AA;
AA2];

%condição de contorno
%cont[nº do nó, GDL (U=1, V=2), valor]

%cont=[1 1 0
% 1 2 0
% 2 2 0
% 3 2 0
%4 2 0];

cont=[1 1 0
1 2 0
2 2 0
3 2 0
4 2 0
5 2 0
6 2 0
7 2 0
8 2 0
9 2 0
10 2 0
11 2 0
12 2 0
13 2 0
14 2 0
15 2 0
16 2 0
17 2 0
18 2 0
19 2 0
20 2 0];
%
%(travado todos os deslocamentos em v e deslocamento u no
%%nó 1)

%forças
%loads=[nº do nó, GDL (U=1, V=2), valor]
%loads=[4 1 1000];
loads=[20 1 45];
%_____________________________________________________________________
_____

%módulo de Cállculo
%cállculo dos deslocamentos

%numero de nós

nnos=size(coord,1);

%número de elementos
nel=size(inci,1);

%número de graus de liberdade por nó (u e v)

ngdl=2;

%número de condiçôes de contorno

ncont=size(cont,1);

%contagem das equações /criar matriz id (ele apresenta o nùmero da variável para cada
variável. Serve para montagem da matriz k)
%inicializar matriz com 1's

id=ones(ngdl,nnos);

%novo id

for i=1:ncont
id(cont(i,2),cont(i,1))=0; %para condições de contorno 0
end
% inicialização do número de equações

neq=0;

%contagem das equações e montagem final do vetor id

for i=1:nnos
for j=1:ngdl
if id(j,i)==1 %percorre as linhas por coluna
neq=neq+1;
id(j,i)=neq;
end
end
end

% cálculo do vetor de força


% inicializar vetor força

F=zeros(neq,1);

% inicializar matriz de rigidez global Kg


Kg=zeros(neq,neq);

%contagem das cargas externa


nloads=size(loads,1);

%cálculo do vetor força para colocação no sistema linear

for i=1:nloads
% if(id(loads(i,2),loads(i,1)))==0
%disp('A Força aplicada no grau de liberdade' ,loads(i,2),'do nó',loads(i,1),'que
é travado')
%halt
%end
F(id(loads(i,2),loads(i,1)),1)=loads(i,3);
end

%Cálculo da Matriz de Rigidez

Vtot=0;

for i=1:nel

ngdle=4; %numero de graus de liberdade do elemento


% aqui não seria o "nel" ????
ke=zeros(ngdle,ngdle);

ele=inci(i,1);

noi=inci(i,4);
noj=inci(i,5);

xi=coord(noi,1);
yi=coord(noi,2);
xj=coord(noj,1);
yj=coord(noj,2);

L=sqrt(((xj-xi)^2)+((yj-yi)^2));

%volume

ntgeo=inci(i,3);
ntmat=inci(i,2);

Area=tgeo(1,ntgeo);
Inercia=tgeo(2,ntgeo);

Vtot=Vtot+L*Area;

E=tmat(1,ntmat);

ke=(E*Area/L)*[1 0 -1 0;
0 0 0 0;
-1 0 1 0;
0 0 0 0];

%colocação na matriz global


loc=[id(1,noi),id(2,noi),id(1,noj),id(2,noj)];

for il=1:ngdle %linha


ilg=loc(il); %ilg global
if ilg~=0
for ic=1:ngdle %coluna
icg=loc(ic);
if icg~=0
Kg(ilg,icg)=Kg(ilg,icg)+ke(il,ic);
end
end
end
end

end

%Resolvendo o sistema
%X=inv(Kg)*F ou
X=Kg\F;
X=[0 , X']

% Calculo das Tensões

for i=1:nel

xi=coord(noi,1);
yi=coord(noi,2);
xj=coord(noj,1);
yj=coord(noj,2);

L=sqrt(((xj-xi)^2)+((yj-yi)^2));

Tensao(i)=E.*(X(i+1)-X(i))/L
end

% %%%%%%%%%%%%%%

c=coord(:,1)';

figure(1)

plot(c,X,'r-*')
title('Deslocamento Elementos Finitos'),
xlabel('L [m]');
ylabel('U(x)');
grid
% legend({'Analitico','Elem Finito'})
% % grid
% hold on
figure(2)
% % % t=[0:1/(4-1):1]
t=[0.005+coord(1:end-1,1)]; % 10 elemento
%t=[0.2+coord(1:end-1,1)]; % 3 elemento
plot(t,Tensao,'r*-')
title(['Tensão']),
xlabel('L [m]');
ylabel('du/dx');
grid
figure(3)
plot(c,X,'r-*',x1,Ux,'-')

figure(4)
plot(t,Tensao,'r*-',x1,du_dx,'-')

Potrebbero piacerti anche