Logo Passei Direto
Buscar

Trabalho_06

User badge image
Geovane have

em

Ferramentas de estudo

Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

Acadêmico: Geovane Augusto Haveroth - RA: 164573
Disciplina: Elementos Finitos I - IM381
Professor: Marco Lúcio Bittencourt
Trabalho 06 - Programa de barra com carga senoidal usando integração numérica.
Considere uma barra de comprimento L = 1m apoiada nas suas extremidades e submetida a uma carga
distribúıda com intensidade qx(x) definida por
qx(x) =
π
L
sin
(πx
L
)
(1)
conforme ilustrado na figura abaixo. Para este problema adotaremos EA = 1× 104.
Questão A: Solucionar este problema analiticamente (análogo ao trabalho 03).
Para um material elástico linear, homogêneo e isotrópico, tal problema é descrito pelo seguinte problema de
valor de contorno (BVP):
EA
d2ux(x)
dx2
= −qx(x), 0 < x < 1 (2)
com condições de contorno de Dirichlet
ux(0) = ux(1) = 0. (3)
Solucionamos o problema integrando duas vezes a eq. (2),
EAux(x) =
L
π
sin
(πx
L
)
+ c1x+ c2 (4)
e aplicando as condições de contorno (3) resulta em
ux(x) =
L
EAπ
sin
(πx
L
)
. (5)
Logo, a força normal é descrita como
Nx(x) = EA
dux(x)
dx
= cos
(πx
L
)
, (6)
com o diagrama de esforço normal dado pela figura abaixo.
Questão B: Solucionar este problema pelo método de elementos finitos (MEF) usando malhas de 2, 4, 8 e 16
elementos lineares e quadráticos.
Conforme apresentado no Trabalho 03, este problema se resume em solucionar o sistema de equações
Ka = f , (7)
1
sendo K a matriz de rigidez, a o vetor de incógnitas e f o vetor de forças globais. As matrizes e vetores globais
são obtidas aplicando o operador montagem A sobre a contribuição feita por cada elemento
K =
nelem
A
e=1
Ke e f =
nelem
A
e=1
fe. (8)
Na sequência apresentamos o procedimento adotado para avaliar Ke e fe numericamente.
Consideramos um conjunto de P+1 pontos de coordenadas ξp com p = (0, 1, . . . P ) no sistema de coordenada
local ξ. As funções de forma locais Φep(ξ) são definidas como o polinômio de Lagrange LPp (ξ) de ordem P
associado a coordenada ξp. Tais funções são expressas pelo produtório
Φep(ξ) := LPp (ξ) =
P∏
q=0,q 6=p
(ξ − ξq)
(ξp − ξq)
. (9)
Assim, escrevemos as funções de forma para um elemento linear de dois nós por
Φe0(ξ) =
1− ξ
2 e Φ
e
1(ξ) =
1 + ξ
2 , (10)
enquanto que para um elemento quadrático de três nós, estas funções são da forma
Φe0(ξ) = −
1
2ξ(1− ξ), Φ
e
1(ξ) = 1− ξ2 e Φe2(ξ) =
1
2ξ(1 + ξ). (11)
As derivadas de Φep(ξ) com relação à ξ em (10) e (11) são dadas respectivamente por
Φe0,ξ(ξ) = −
1
2 e Φ
e
1,ξ(ξ) =
1
2 , (12)
Φe0,ξ(ξ) = ξ −
1
2 , Φ
e
1,ξ(ξ) = −2ξ e Φe2,ξ(ξ) = ξ +
1
2 . (13)
Uma vez definido as funções de forma e suas respectivas derivadas, os coeficientes da matriz de rigidez do
elemento no sistema local de coordenadas ξ são obtidos por
Keij =
EA
he
∫ +1
−1
Φei,ξ(ξ) Φej,ξ(ξ)dξ, 0 ≤ i, j ≤ P, (14)
enquanto que os coeficientes do vetor de forças é descrito por
fei =
he
2
∫ +1
−1
qx
(
P∑
k=0
Φek(ξ)xek
)
Φei (ξ)dξ, 0 ≤ i ≤ P, (15)
onde xep é a coordenada do nó p.
Podemos integrar numericamente as expressões (14) e (15) utilizando Q pontos de integração ξm e penal-
izações wm. Estes pontos podem ou não coincidir com as coordenadas dos nós. As integrações numéricas dos
coeficientes da matriz de rigidez e forças do elemento são dadas respectivamente por
Keij ≈
EA
he
Q−1∑
m=0
Φei,ξ(ξm) Φej,ξ(ξm) wm, e fei ≈
he
2
Q−1∑
m=0
qx
(
P∑
k=0
Φek(ξm)xek
)
Φei (ξm) wm. (16)
Para solucionar o BVP dado inicialmente via MEF, devemos alterar no código a avaliação de Ke e fe, que
passa a ser numérico. Para tal, fazemos uso da função GetPointsWeight1D para extrair os pontos de integração
r e os respectivos pesos w :
[r,w] = GetPointsWeight1D(alpha,beta,Q,’GJ’,’NL’);
Adotamos ainda, por opção do acadêmico, a quadratura de Gauss-Jacobi com α = β = 0 e Q = 10. A opção de
tomar Q = 10 se deve ao fato de que Q pontos de integração são suficientes para integrar exatamente polinômios
de ordem 2Q−1 não é aplicável neste problema, visto que a função que estamos integrando qx é trigonométrica.
Vale salientar que para obter Ke exatamente, considerando elemento quadrático, bastaria tomar Q = 2. Na
sequência, as funções de forma Φep(ξm) e suas derivadas Φep,ξ(ξm) são avaliadas utilizando as seguintes linhas de
comando
2
if intorder==1 % Linear interpolation
dN = [-0.5+0*r 0.5+0*r];
N = [0.5*(1-r) 0.5*(1+r)];
elseif intorder==2 % Quadratic interpolation
dN = [-0.5+r -2*r 0.5+r];
N = [-0.5*r.*(1-r) 1-r.ˆ2 0.5*r.*(1+r)];
end
ou, generalizando a ordem de interpolação utilizando as seguintes funções
N = GetPolynomialValue(intorder,r,linspace(-1,1,Elnodes))’;
dN = Get1stDerivative(intorder,r,linspace(-1,1,Elnodes))’;
Uma vez calculado N e dN, avaliamos a matriz de rigidez do elemento conforme descrito anteriormente na
eq. (16) da forma
Ke = zeros(Elnodes,Elnodes);
for i = 1:Elnodes
for j = 1:Elnodes
for k = 1:length(w)
Ke(i,j) = Ke(i,j) + EA*dN(k,i)*dN(k,j)*w(k)*dJinv;
end
end
end
bem como o vetor de forças
Fe = zeros(Elnodes,1);
for i = 1:Elnodes
for k = 1:length(w)
Fe(i) = Fe(i) + (pi/Lb)*sin(pi*N(k,:)*xl/Lb)*N(k,i)*w(k)*dJac;
end
end
onde o termo dJac é o determinante do jacobiano definido por he/2, e dJinv sua inversa.
Questão C: Calcular os erros na norma de energia em cada caso e plotar um gráfico em escala log x log do erro
em função do tamanho h dos elementos das malhas. Avaliar o coeficiente angular das curvas de erros obtidos
para os elementos lineares e quadráticos.
A medida de erro considerada neste trabalho é avaliada com base na norma de energia ||.||A:
er =
||u||A − ||un||A
||u||A
, (17)
com a norma da aproximação un dada por
||un||A =
(
aTKa
) 1
2 , (18)
e a norma da solução exata por
||u||A =
(∫ L
0
EA(u′(x))2dx
) 1
2
. (19)
O procedimento de MEF descrito anteriormente é aplicado em malhas de 2, 4, 8, 16 elementos lineares e
quadráticos com nós igualmente espaçados. Esta escolha foi feita para poder realizar a comparação com o que
foi realizado no Trabalho 03. A figura 1 ilustra o erro relativo versus o tamanho da malha em escala Log-Log.
Não houve diferença significativa dos valores obtidos numericamente com aqueles avaliados de forma anaĺıtica
e impostas no código (a diferença de ≈ 10−8%). Desta forma, tanto a taxa de convergência quanto os demais
resultados apresentados anteriormente no Trabalho 03 são idênticos, e portanto omitidos na sequência.
3
Figure 1: Taxas de convergência.
Item D: O Algoritmo utilizado encontra-se descrito na sequência:
% Codigo Alterado Trabalho 06
clear
Lb = 1; % bar length
EA = 1e+4; % Young modulus Versus Cross sectional area
% FEM setup: all element with the same length
Nel = 16; % number of elements
intorder = 2; % interpolation order
Elnodes = intorder + 1; % number of nodes per element
Nvert = intorder*Nel+1; % number of nodes
he = Lb/Nel; % element lenght
Ndofs = intorder*Nel+1; % number of d.o.f. (1 d.o.f. per node)
% Allocation of the stifness matrix
Kg = zeros(Ndofs,Ndofs);
% Allocation of the load vector
Fg = zeros(Ndofs,1);
% Allocation of the solution vector
ug = zeros(Ndofs,1);
% Incidence matrix
Incid = zeros(Nel,Elnodes);
i = 1;
for e = 1:Nel
for j = 2:Elnodes
Incid(e,1) = (e-1)*(Elnodes-1)+1;
Incid(e,j) = (i+1);
i = i+1;
end
end
% Nodes coordinates
X = linspace(0,Lb,Nvert);
% Jacobi root and weight
[r,w] = GetPointsWeight1D(0,0,10,’GJ’,’NL’);
if intorder==1 % Linear interpolation
tipo = ’lineares’;
% dN = [-0.5+0*r 0.5+0*r];
4
% N = [0.5*(1-r) 0.5*(1+r)];
elseif intorder==2 % Quadratic interpolation
tipo = ’Quadraticos’;
% dN = [-0.5+r -2*r 0.5+r];
% N = [-0.5*r.*(1-r) 1-r.ˆ2 0.5*r.*(1+r)];
end
N = GetPolynomialValue(intorder,r,linspace(-1,1,Elnodes))’;
dN = Get1stDerivative(intorder,r,linspace(-1,1,Elnodes))’;
% Assembly of global matrix and global load vector without b.c.’s
for e = 1 : Nel
xl = X(Incid(e,:))’; % Element coordinates (local)
he = xl(end)-xl(1); % Element lenght
dJac = he/2; % Determinant of the Jacobian
dJinv = 1/dJac; % Jacobian inverse
%Stiffness matrix
Ke = zeros(Elnodes,Elnodes);
for i = 1:Elnodes
for j = 1:Elnodes
for k = 1:length(w)
Ke(i,j) = Ke(i,j) + EA*w(k)*dN(k,i)*dN(k,j)*dJinv;
end
end
end
Kg(Incid(e,:),Incid(e,:)) = Kg(Incid(e,:),Incid(e,:)) + Ke;
% Load vector
Fe = zeros(Elnodes,1);
for i = 1:Elnodes
for k = 1:length(w)
Fe(i) = Fe(i) + (pi/Lb)*sin(pi*(N(k,:)*xl)/Lb)*N(k,i)*w(k)*dJac;
end
end
Fg(Incid(e,:)) = Fg(Incid(e,:)) + Fe;
end
% Application of b.c. disp. condition at x = 0 and x = L
% elimination of the first/last line and column of the global system
ncc = 2:(Ndofs-1);
ug(ncc,1) = Kg(ncc,ncc)\Fg(ncc);
eh = sqrt(ug’*Kg*ug);
syms x real
ua = (Lb/(pi*EA))*sin(pi*x/Lb);
dua = (1/EA)*cos(pi*x/Lb);
ea = sqrt(eval(int(EA*duaˆ2,x,0,Lb)));
% Relative error
erro = (ea - eh)/ea;
fprintf(’O erro relativo utilizando %i elementos %s é: %e\n’,Nel,tipo,erro)
5

Mais conteúdos dessa disciplina