Você está na página 1de 131

UNIVERSIDADE DE SÃO PAULO

ESCOLA DE ENGENHARIA DE SÃO CARLOS


Departamento de Engenharia de Estruturas

Notas de Aulas

SET-0601 INTRODUÇÃO AO MÉTODO DOS ELEMENTOS FINITOS

Co-Autor e Coordenador:
Prof. João Batista de Paiva

Co-Autores
Rafael Marques Lins
Maria do Socorro Martins Sampaio
Hugo Luiz Oliveira
Camila Alexandrino Moura
David de Paulo Pereira
Ynaê Almeida Ferreira

São Carlos, Setembro de 2018


AGRADECIMENTOS

Este texto sobre o método dos elementos finitos aplicados à análise estrutural
começou a partir de notas de aulas elaboradas para a disciplina Método dos Elementos
Finitos ministrada na pós-graduação do Departamento de Engenharia de Estruturas da
Escola de Engenharia de São Carlos. Este texto inicial foi então recebendo a contribuição
de alunos da disciplina que o completaram e incluíram listagens de programas por eles
desenvolvidos com trabalho da disciplina. As contribuições foram as seguintes:

Eng. Rafael Marques Lins:

Complementou o texto incluindo o algoritmo para a montagem da matriz de rigidez


global e vetor de cargas nodais equivalentes; o algoritmo para endereçamento das
matrizes de rigidez e vetor de cargas nodais e cálculo dos esforços internos. Os capítulos
3 e 5 foram totalmente elaborados por ele tomando por base as notas de aula.

Enga. Maria do Socorro Martins Sampaio:

Fez uma revisão completa do texto e elaborou os anexos A, B e C incluindo os códigos


computacionais com explicações linha por linha para facilitar o estudo por outros alunos.
E também preparou os exemplos de validação dos códigos apresentados.

Eng. Hugo Luiz Oliveira:


Ampliou o programa computacional, que continha elementos finitos de viga, inserindo os
efeitos provocados pela inserção de rótulas no modelo. Além disso, elaborou um código
capaz de fornecer a carga crítica de flambagem elástica. Estas considerações se
encontram no Anexo A, que foi revisado e agora conta com novos exemplos de aplicação.

Enga Camila Alexandrino Moura; Eng. David de Paulo Pereira e Enga. Ynaê Almeida
Ferreira
Este grupo ampliou o programa de pórticos planos deduzindo as matrizes de rigidez de
barras com rótulas, apoios inclinados e também re-organizaram a entrada de dados que
agora contempla três tipos de elementos: com rótula à esquerda; com rótula à direita e
com rótula nos dois nós fazendo com que a matriz de rigidez do pórtico se reduza à
matriz de rigidez de uma barra de treliça permitindo assim com uma entrada de dados
bem simples calcular treliças e pórticos treliçados (Anexo B).

Quero aqui expressar meu agradecimento a eles pois sem suas valiosas contribuições este
texto ainda estria muito longe de estar disponível para os demais alunos.

Prof. João Batista de Paiva.

2
SUMÁRIO

1. O MÉTODO DA ENERGIA __________________________________ 4


1.1 Introdução __________________________________________________ 4
1.2 Energia de Deformação _______________________________________ 4
1.3 Energia de Deformação dos Vínculos Elásticos _________________ 6
1.4 Energia Potencial das Cargas Externas ________________________ 7
1.5 Aplicação do Método Energético à Análise de Vigas
Elásticas _______________________________________________________ 10
1.5.1 Exemplo 1: Viga em balanço ________________________________ 11
1.5.2 Exemplo 2: Flambagem de colunas ___________________________ 16
1.5.3 Exemplo 3: Viga apoiada em uma base elástica e com
carregamento transversal ________________________________________ 27
2. MÉTODO DOS ELEMENTOS FINITOS (VIGAS CONTÍNUAS) ______ 34
2.1 Função Aproximadora _______________________________________ 34
2.1.1 Exemplo 1: ________________________________________________ 37
2.1.2 Exemplo 2: ________________________________________________ 41
2.2 Matriz de Rigidez e Vetor de Cargas Nodais Equivalentes ___ 44
2.3 Matriz de Rigidez de um Elemento Finito Submetido à Carga
Axial ___________________________________________________________ 46
2.3.1 Exemplo 3: ________________________________________________ 54
2.4 Determinação dos esforços internos nodais ___________________ 58
2.5 Implementação Computacional _________________________________ 63
2.6 Considerações Sobre Rótulas _________________________________ 69
2.6.1 Consideração Dos Efeitos De Bases Elásticas Contínuas _____ 71
2.6.2 Vetor De Cargas Nodais Equivalentes _______________________ 73
2.7 Consideração Da Instabilidade Elástica Em Elementos De Viga _ 75
3. ELEMENTO FINITO DE VIGA _____________________________ 80
3.1 Implementação Computacional _________________________________ 80
3.2 Exemplos ___________________________________________________ 122
4. REFERÊNCIAS BIBLIOGRÁFICAS _________________________ 130

3
1. O MÉTODO DA ENERGIA

1.1 Introdução
A energia potencial total de um sistema elástico é
composta de duas parcelas: energia potencial dos esforços
internos, também chamada de energia de deformação, e a energia
potencial das cargas externas. Neste capítulo serão deduzidas
as expressões das energias, acima mencionada, presentes nos
problemas usuais de vigas elásticas. Além da energia de
deformação da viga e da energia potencial das cargas externas,
serão deduzidas as expressões da energia de vínculos elásticos
discretos (molas) e contínuos (base elástica). Será também
determinada a expressão de energia potencial de uma carga
axial, durante a flexão da viga.

1.2 Energia de Deformação


A energia de deformação é a energia que um dado corpo
absorve ao deformar-se sob ação de um carregamento nele
atuante. Esta energia provém do trabalho realizado pelas forças
internas do corpo sobre os respectivos deslocamentos. Esta
energia, para uma determinada estrutura, é dada pela seguinte
expressão:

1
2 v
U= (  x  x + y  y + z  z + xy  xy + xz  xz + yz  yz )dv ... (1.1)

onde a integral é realizada sobre todo o volume da estrutura em


questão.
Para estruturas formadas por barras, como por exemplo,
vigas, pórticos e grelhas, a expressão (1.1), após a integração
nas seções transversais das barras, pode ser reescrita:

4
2
1 M
2
cQ M T2 N 2
U=  ( + + + )dx ... (1.2)
2 est EI GS GJT ES
onde M, Q, MT e N são, respectivamente, momento fletor, força
cortante, momento torçor e força normal, ou seja, os esforços
solicitantes da estrutura e, também, E, I, G, S e JT são,
respectivamente, o módulo de elasticidade longitudinal, o
momento de inércia da secção, o módulo de elasticidade
transversal, a área da secção transversal e momento de inércia
à torção. Entre os dois módulos de elasticidade existe a
seguinte relação:

E
G= ... (1.3)
2(1 + )

onde ν é o coeficiente de Poisson.


Como o presente estudo se restringirá aos problemas de
flexão de vigas elásticas, o momento torçor é nulo, os efeitos
das forças cortante e normal são desprezados e, assim, a
expressão da energia de deformação (1.2) se reduz à:

2
1 M
2  EI
U= dx ... (1.4)

O momento fletor está relacionado com a elástica da viga


através da seguinte expressão:

M =  EIv" ... (1.5)

Substituindo-se M, dado por (1.5), na expressão da


energia, dada por (1.4), obtém-se a seguinte expressão:

2
1 d2 v
U =  EI  2  dx ... (1.6)
2 d x 

5
ou seja, conhecida a elástica de uma viga pode-se calcular,
utilizando (1.6), a energia de deformação acumulada durante sua
flexão.

1.3 Energia de Deformação dos Vínculos Elásticos


Considere a viga com vínculos elásticos indicada na figura
1.1.

Figura 1.1 – Tipos de vínculos elásticos

onde KD , KR são, respectivamente, as constantes de mola ao


deslocamento e à rotação e KF é a constante de mola da fundação
elástica, suposta bilateral, isto é, trabalhando tanto à
tração quanto à compressão.
A energia de deformação dos vínculos elásticos descritos é
dada por:

1 2
U D = K Di vi ... (1.7)
2

1
K R j v j
2
VR= ... (1.8)
2

onde vi e v'j são, respectivamente, o deslocamento vertical do


ponto i e a derivada do deslocamento do ponto j.
A energia de deformação armazenada na fundação elástica,
durante a flexão da viga é dada por:

1

2
UF= K F v dx ... (1.9)
2
6
1.4 Energia Potencial das Cargas Externas
Obtém-se o trabalho das cargas externas pelo produto entre
a carga e deslocamento de seu ponto de aplicação.
O deslocamento deve ser medido no sentido da carga
aplicada. Deste modo, para uma carga concentrada (ver Figura
1.2) o trabalho é dado por:

T F = F i vi ... (1.10)

onde Fi é a intensidade da carga concentrada e vi é o


deslocamento do ponto de aplicação da carga.
Analogamente, para um momento concentrado aplicado em um
ponto j da viga (ver Figura 1.2), a expressão do trabalho
realizado é dado por:

Figura 1.2 – Tipos de carregamentos aplicados à viga


TM = M jvj ... (1.11)

onde Mj e v'j são, respectivamente, o momento fletor aplicado no


ponto j e a derivada do deslocamento transversal neste ponto.
A expressão do trabalho realizado por um carregamento
distribuído é dada por:

T q =  q v dx ... (1.12)

7
Considere-se agora uma força normal de compressão,
conforme indica a figura 1.3. O trabalho realizado pela força P
pode ser dividido em duas parcelas. A primeira corresponde ao
trabalho realizado pelo encurtamento da barra na ausência de
flexão e a segunda corresponde ao trabalho realizado pelo
encurtamento devido, unicamente, à flexão da barra. Neste
estudo será considerada apenas a segunda parcela.
O trabalho realizado no elemento dx é dado pelo produto da
força P pelo encurtamento do elemento, ao longo de x, durante a
flexão, ou seja:

d T p = P d ... (1.13)

Figura 1.3 – Posições de uma coluna antes e depois de flambar

O encurtamento dΔ é dado por (ver Figura 1.3c):

d = dx (1  cos  ) ... (1.14)


Esta expressão pode ser, convenientemente, transformada

8
em:


d = 2 sen2 ( )dx ... (1.15)
2

Como o ângulo α é suposto pequeno, a expressão (1.15) pode


ser reescrita:

1
d =  2 dx ... (1.16)
2

Sabe-se que:

v = tan  ... (1.17)


e, por ser pequeno o ângulo α:

v   ... (1.18)

e portanto, a expressão do encurtamento fica:

1
d = v  2 dx ... (1.19)
2

Fazendo-se a soma das contribuições de todos elementos dx


da viga, a expressão (1.13) torna-se:

P
2 1
v  dx
2
TP= ... (1.20)

A energia potencial das cargas externas corresponde ao


trabalho dessas cargas com o sinal trocado, ou seja:

= T ... (1.21)

9
1.5 Aplicação do Método Energético à Análise de Vigas
Elásticas
A energia potencial total da estrutura é dada pela soma da
energia de deformação com a energia potencial do carregamento
externo aplicado.
Para uma viga submetida a carregamento axial e transversal e
com vínculos elásticos discretos ou não, conforme indica a
Figura 1.4, a expressão da energia total é obtida a partir de
(1.6) a (1.12) e de (1.20), e é dada por:

1 1 1 1
=
2  EI v" 2 dx +  K F v2 dx   P v  2 dx +  K Di V i2 
2 2 2
... (1.22)
1
+  K R j v 2j   g vdx  Q vQ  M vM
2

Figura 1.4 – Viga submetida à carregamentos axial e transversal

Na posição de equilíbrio a energia potencial total é


estacionária, ou seja:

d  = d v+d = 0 ... (1.23)

Assim o objetivo é procurar uma função v que minimize a


energia potencial total (1.22). Esta função é conhecida como
solução de Euler. Para obtê-la, é necessário reescrever a
expressão da energia potencial total, também denominada de
funcional, como se segue:

1 1
 =  F ( x,v, v, v ) d x +  K D vi2 +  K R v 2j ... (1.24)
2 i
2 j

10
A equação de Euler para este funcional é:

2
dF d dF d dF
 ( )+ 2 ( )= 0 ... (1.25)
dv dx dv dx dv"

Admitindo-se que os carregamentos, transversal e axial, e


a constante de fundação elástica são constantes, a equação de
Euler para um trecho genérico da viga é dada por:

EIvIV +Pv"+KF v+g =0 ... (1.26)

A resolução desta equação é, em geral, muito trabalhosa.


Uma alternativa a este procedimento consiste em procurar uma
solução aproximada para a elástica da viga. Obviamente esta
função, deve obedecer às condições de vinculação da viga.

1.5.1 Exemplo 1: Viga em balanço


Como exemplo do procedimento para se determinar uma função
aproximadora dos deslocamentos, considere-se a viga em balanço
indicada na Figura 1.5a.

(a) (b)
Figura 1.5 – Viga engastada

Na Figura 1.5b está representada a viga após a aplicação


do carregamento. O funcional desta viga é obtido a partir de
1.22 e é dado por:

1 EI
= v" 2 (x)dx  F v (l)
0 2
11
... (1.27)

Pretende-se agora obter uma solução aproximada para a


elástica desta viga. Considere-se inicialmente a seguinte
função:

2
vap (x) = A x + B x + C ... (1.28)

As condições de vinculação

v ap (x = 0) = 0 e v ap (x = 0) = 0 ... (1.29)

implicam em B e C nulos, ficando, portanto:

2
vap (x) = Ax ... (1.30)

Na Figura 1.6 estão indicados a solução exata e possíveis


posições da função aproximadora (1.30). O objetivo é determinar
o valor de A para o qual a função aproximadora está o mais
próximo possível da solução exata.

Figura 1.6 – Solução exata e possíveis soluções aproximadas


Para cada valor de A e, portanto, para cada função vap,

12
pode-se obter a energia potencial total correspondente, a
partir de (1.27). Como esta energia é mínima para a solução
exata, quanto mais próximo desta estiver a solução aproximada,
menor será a energia correspondente. Assim, o valor de A
referente à função Vap que mais se aproxima da solução exata é
aquele que minimiza o funcional dado por (1.27) e que também é
um valor aproximado.
Assim pode-se escrever:

1 EI
 ap = 0 v"
2
ap d x  F v ap (l) ... (1.31)
2

A partir de (1.31) e (1.30) obtêm-se:

1
 ap = 
0
2 EI A 2 dx  F A l 2 ... (1.32)

que resulta em:

 ap = 2 EI A 2 l  F A l 2 ... (1.33)

O funcional agora é função de uma única variável, A. No


ponto de mínimo deve-se ter:

d  ap
=0 ... (1.34)
dA

Portanto:

4EI l A  F l 2 = 0 ... (1.35)

que fornece:

Fl
A= ... (1.36)
4 EI
13
e portanto, a função quadrática que mais se aproxima da solução
exata é:

Fl 2
v ap = x ... (1.37)
4 EI

Os valores exatos e aproximados do deslocamento vertical


do ponto B são:

F l3
v ex = ... (1.38)
3 EI
e
F l3
v ap = ... (1.39)
4 EI

O erro cometido no deslocamento do ponto B, com essa


aproximação da elástica, é de 25%. Este erro pode ser reduzido
aumentando-se o grau da função aproximadora.
Embora esta função aproxime razoavelmente os
deslocamentos, o mesmo não se pode dizer do momento fletor e
força cortante, cujas funções aproximadas são obtidas a partir
de 1.37:

Fl
M ap = EI v" ap = ... (1.40)
2 EI
e

Q ap =  EI vap = 0 ... (1.41)

Deve-se observar que, embora na solução exata o momento


varie linearmente, na solução aproximada ele é constante. Já a
força cortante, constante e não nula na solução exata, é nula
na solução aproximada. Estes problemas são minorados à medida
que se aumenta o grau da função polinomial aproximadora.
14
Considere-se, por exemplo, a seguinte função aproximadora:

3 2
v ap (x) = A x + B x ... (1.42)

a qual já obedece as condições de vinculação (1.29). A partir


de (1.42), obtêm-se:

v" ap (x) = 6 A x + 2 B
... (1.43)
3 2
v ap (l) = A l + B l

que substituídas na expressão do funcional resulta em:

1 EI
 ap = 0 ( 6Ax + 2B ) 2dx  F ( Al 3 + Bl 2 ) ... (1.44)
2

obtendo-se:

EI
 ap = ( 12 A2l 3 + 4 B 2l +12A B l 2 )F A l 3F B l 2 ... (1.45)
2

O funcional agora é função de duas variáveis, A e B, e na


posição de mínimo deve-se ter:


= 0
A
... (1.46)

= 0
B

de onde se obtêm o seguinte sistema de equações algébricas:

F l3
12 Al 3 + 6 Bl 2 =
EI
15
... (1.47)
Fl 2
6 Al 2 + 4Bl =
EI

cuja solução fornece:

F
A= 
6 EI
... (1.48)
Fl
B=
2 EI

e o polinômio do terceiro grau que melhor aproxima a elástica


da viga é:

F 3 Fl 2
vap (x)=  x+ x ... (1.49)
6EI 2EI

que neste caso coincide com a solução exata, o mesmo ocorrendo


com as expressões do momento fletor e força cortante.

1.5.2 Exemplo 2: Flambagem de colunas


Considere-se a coluna, indicada na Figura 1.7a, submetida
a uma força axial constante P. Na Figura 1.7b está indicada a
posição da coluna após a perda da estabilidade. O funcional
dessa coluna é obtido a partir de 1.22 e é dado por:

1 1 P 1
=    v dx
2 2
EI v" dx ... (1.50)
2 0 2 0

16
(a) (b)
Fig 1.7 – Posições de uma coluna antes e depois da flambagem

Adota-se inicialmente um polinômio do segundo grau como


função aproximadora da elástica da coluna. Assim:

2
vap(x)= A x + B x +C ... (1.51)

Esta função deve obedecer às seguintes condições de


vinculação:

Vap(0) = 0

Vap(L) = 0

o que resulta em:

C = 0

B = -AL

Assim, a função aproximadora pode ser escrita:

17
vap (x)= A( x  Lx)
2
... (1.52)

Substituindo-se (1.52) na expressão do funcional (1.50), e


efetuando-se as integrais indicadas obtêm-se:

3
PL 2
 ap = 2EI L A2  A ... (1.53)
6

Da condição de mínima energia potencial total pode-se


escrever:

d  ap 3
= (4EI L  PL )A = 0 ... (1.54)
dA 3

Para que a derivada da energia potencial (1.54) seja nula


tem-se duas possibilidades. A primeira é que o coeficiente A
seja nulo, porém isto implicaria em que a função aproximadora,
(1.52), também seja nula, isto é, não existiria deslocamento
transversal e, portanto, não teria ocorrido a flambagem. A
outra possibilidade é que a expressão entre parênteses seja
nula, isto é:

3
4EIL  PL = 0 ... (1.55)
3

de onde se obtém o valor da carga crítica de flambagem:

EI
p e ap = 12 2
... (1.56)
L

Este valor é 21,6% superior ao valor exato, que é dado


por:

18
pe =
 2
EI
2
... (1.57)
lx
L

Considere agora a seguinte função aproximadora:

vap (x)= A( x  L x)+ B( x  L x)+ C( x  Lx)


4 3 3 2 2
... (1.58)

a qual já obedece as condições de vinculação. Após sua


substituição na expressão do funcional (1.50), e uma vez
efetuadas as integrais indicadas, obtém-se:

EI 144 2 5
 ap = A L + 12 B L + 4 C L + 36 ABL + 16 ACL + 12B CL ] 
2 3 2 4 3 2
[
2 5
... (1.59)
P 9 2 7 4 2 5 1 2 3 6
 [ A L + B L + C L + 2A B L6 + A C L5 + B C L4 ]
2 7 5 3 5

A posição de mínima energia potencial total é obtida


impondo-se que as derivadas parciais de Πap em relação à A, B e
C sejam nulas obtendo-se assim o seguinte sistema de equações:

144 9 3
( EI L5  P L7 ) A + (18 EI L 4  P L6 ) B + (8 EI L3  P L5 ) C = 0
5 7 5

4 P
(18 EI L 4  P L6 ) A + (12 EI L 3  P L 5 ) B + (6 EI L 2  L4 ) C = 0
5 2

3 5 P 4 P 3
(8 EI L3  PL ) A + (6 EI L  L ) B + (4 EI L  L ) C = 0
2

5 2 3

Colocando este sistema de equações na forma matricial


obtém-se:

19
 
 144 9 7 18 EIL4  PL6 3 5
 5 EIL  7 PL
5
8 EIL  PL   A   0
3

5
    
     

 18 EIL4  PL6 4 5 P  = ... (1.60)
 12 EIL3  PL 6 EIL 2  L4   B   0 
5 2    
    
    
 8 3 5 P 4 P 3  C   0
EIL  PL 6 EIL 2  4EIL  L 
3
 L
5 2 3 

Este sistema de equações lineares homogêneas admite sempre


como solução os valores de A, B e C iguais a zero. Entretanto,
esta solução implica na nulidade da equação da elástica (1.58),
e, portanto, não fica caracterizada a flambagem. Para que isto
ocorra deve-se ter como solução do sistema de equações (1.60)
valores não nulos de A, B e C, ou seja, o determinante dos
coeficientes do sistema de equações, (1.60), deve ser nulo,
isto é:

 
 144 9 7 18 EIL4  PL6 3 
 5 EIL  7 PL 8 EIL3  PL5 
5

5
 
 
 18 EIL4  PL6 4 5 P 4 =0 ... (1.61)
 12 EIL3  PL 6 EIL  L 
2

5 2
 
 
 8 3 5 P 4 P 3
EIL  PL 6 EIL 2  4EIL  L 
3
 L
5 2 3 

O valor de P para que este determinante seja nulo, isto é,


a carga crítica de flambagem é dada por:

EI
P c ap = 9,875 2
... (1.63)
L

Este resultado está apenas 0,055% acima do valor exato


(1.57).

20
Considere-se agora a coluna de momento de inércia variável
e submetida a carregamento axial, conforme indica a Figura
1.8a. A carga crítica desta coluna poderia ser determinada,
utilizando-se uma única função aproximadora para os
deslocamentos, como nos exemplos anteriores. Este procedimento,
entretanto, tendo em vista a descontinuidade da curvatura no
ponto B, faz com que seja necessário utilizar funções
polinomiais de grau elevado para se obter uma boa precisão dos
resultados. A alternativa a este procedimento consiste em se
adotar uma função polinomial para aproximar os deslocamentos do
trecho AB e outra para aproximar os deslocamentos do trecho BC
(ver Figura 1.8b). As funções escolhidas são:

V 1ap (x) = A1 x + B1 x + C1 x + D1 0  x  L/3


3 2
... (1.63)

V 2ap (x) = A2 x + B2 x + C 2 x + D2 L/3  x  L


3 2
... (1.64)

EI

e
B

16∙EI

(a) (b)
Figura 1.8 – Coluna com momento de inércia variável

As funções 1.63 e 1.64 devem obedecer às condições de


vinculação isto é:

v1ap (0) = 0
... (1.65a)
v 2 ap (L) = 0

21
No ponto B deve haver continuidade das funções tanto no
deslocamento quanto na derivada, isto é:
L L
V 1ap ( ) = v 2 ap ( ) ... (1.65b)
3 3
L L
v  1ap ( ) = v  2 ap ( ) ... (1.65c)
3 3

As condições de vinculação dadas por (1.65) já são


suficientes para se obter a carga crítica de flambagem com boa
precisão. Entretanto, com o objetivo de reduzir o número das
variáveis envolvidas, pode-se utilizar condições sobre os
esforços, também denominadas condições mecânicas.
Como já foi visto, o momento fletor se relaciona com a
curvatura através de (1.5):

M =  EIV"

Como o momento fletor é nulo nos dois apoios, pode-se


escrever:

v1" ap (0) = 0 ... (1.65d)

v2" ap (L) = 0 ... (1.65e)

Além disso, o momento fletor no ponto B é contínuo e,


portanto:

L L
E(16I) v1" ap ( ) = EI v 2 " ap ( ) ... (1.65f)
3 3

Em seu conjunto, as condições de vinculação e mecânicas,


dadas por (1.65), fornecem um sistema de sete equações a oito
incógnitas. Assim, pode-se escrever A2, B1, B2, C1, C2, D1, e D2
em função de A1, obtendo-se para as funções aproximadoras:

22
V 1ap (x) = A1 ( x 5  L x)
3 2
... (1.66)

V 2ap (x) = A1 ( 8 x + 24 L x  18 L x + 2 L )
3 2 2 3
... (1.67)

A expressão da energia potencial total aproximada é dada


por:

16EI L/ 3 2 EI L 2 P L/ 3 2 P L 2
ap =  0 ( v1ap ) dx+  L/ 3( v2ap ) d x   0 ( v1ap ) dx   L/ 3( v2ap ) dx
2 2 2 2
... (1.68)

Após a substituição de v1ap e V2ap, (1.66) e (1.67), em


(1.68), e a efetuação das integrais indicadas, obtém-se:

 ap = 117,33 A2 L3 EI  9,348 A2 L5 P ... (1.69)

Esta energia será mínima quando:

d  ap
=0
dA1

isto é:

2A(117,33 L3 EI  9,348 L5 P) = 0 ... (1.70)

de onde se obtém os valor da carga crítica:

EI
P e ap = 12,55 2
... (1.71)
L

Este valor é 13% superior ao valor exato.

23
Pretende-se agora determinar um valor aproximado da carga
crítica de flambagem da coluna apoiada, lateralmente, em uma
base elástica, conforme indica a Figura 1.9.

(a) (b) (c)


Figura 1.9 – Coluna com vínculo elástico

Adota-se, como função aproximadora dos deslocamentos de


toda coluna (ver Figura 1.9b), um polinômio do quarto grau, o
qual já obedece às condições de vinculação:

v ap (x) = A( x  L x) + B( x  L x) + C( x  Lx)
4 3 3 2 2
... (1.72)

A expressão do funcional para essa coluna é obtida a


partir de (1.22) e é dada por:

EI L K E L 2 dx  P L
 ap =  2 0 2 0
v  dx
2 2
v" dx + v ... (1.73)
2 0

Substituindo (1.72) em (1.73) obtêm-se:

24
EI  144 5 2 
 ap = 
3 2 2 4 3 2
L A + 12 L B + 4 LC + 36 L AB + 16 L AC + 12 L BC
2  5 

 9 8 7 2 L 5 2 11 8 5 7 L BC  
6
+ K E  L A2 + L B + C + L AB + L AC + 
... (1.74)
2  9 105 30 60 42 10 

P  9 7 2 4 5 2 L3 2 6 5 
 
6 4
L A + L B + C + 2 L AB + L AC + L BC 
2 7 5 3 5 

Da condição de mínima energia potencial total obtêm-se o


seguinte sistema de equações:

 144 9 7 L9 11 3 5 5 7 
 EIL  PL  K F
5 18 EIL4  PL6  K F L8 8 EIL3  PL  K F L 
120 5 84
 5 7 9 
 
 11 4 5 8 P 1 
18 EIL  PL  120 K F L 12 EIL3  PL  6 EIL2  L4 
8
4 6
K F L7 6
KF L =0
5 105 2 20
 
 
 3 5 5 P 4 1 P 3 1 5 
 8 EIL  5 PL  84 K F L 6 EIL2  L  4EIL  L  K F L 
7
3
K F L6
 2 20 3 30 
... (1.75)

A carga crítica é aquela que anula o determinante dos


coeficientes do sistema, e é dada por:

Pap = 8,89 kN

A diferença percentual entre este resultado é o valor


exato é da ordem de 0,01%.
Outra alternativa para se determinar um valor aproximado
dessa carga crítica consiste em se adotar duas funções
aproximadoras para a elástica da viga como, por exemplo (ver
Figura 1.9c):

L
3 2
V 1ap (x) = A1 X + B1 X + C 1 x + D1 0x ... (1.76)
2

25
L
3 2
V 2ap (x) = A2 X + B 2 X + C 2 x + D2 xL ... (1.77)
2

Utilizando-se as seguintes condições de vinculação:

V 1 ap (0) = 0
... (1.78a)
V 2 ap (L) = 0

e as condições que garantem a continuidade da elástica em L/2


até a primeira derivada:

L L
v1ap ( ) = v 2ap ( ) ... (1.78b)
2 2

L L
v1ap ( ) = v2ap ( ) ... (1.78c)
2 2

Obtém-se um sistema de quatro equações a oito incógnitas,


o que permite que se escrevam v1ap, v2ap em função de apenas
quatro variáveis:

3 2
V 1ap (x) = A1 X + B1 X + C 1 X ... (1.79)

5 2 1 3 11 2 3 3
V 2 ap (x) = A2 ( x  2 Lx + L x  L ) + A1 ( 2L x + L x  L ) +
3 2 2

4 4 4 4
... (1.80)
4
+ B1 ( 3 x2 + 4Lx  L2 ) + C 1 (  x 2 + 5xL)
L

Para essa escolha de funções aproximadoras, a energia


potencial total é dada por:

26
EI L / 2 EI L K F L / 2 2 dx + K F L / 2 2 dx 
2 0 2 L / 2 2 0 2 0
= v1"
2
ap dx + v2 "
2
ap dx + v1 ap v2ap
P L/2 P L/ 2
  ( v1 'ap )2 dx   ( v2 'ap )2 dx
2 0 2 L
... (1.81)

Após a substituição de v1ap e v2ap, (1.79) e (1.80), em


(1.81), e a efetuação das integrais indicadas, obtém-se uma
função nas variáveis A1, A2, B1 e C1. Da condição de mínima
energia potencial total obtém-se um sistema de equações
lineares homogêneo de ordem quatro. O valor de P que anula o
determinante dos coeficientes deste sistema é a carga crítica
procurada, isto é:

P r ap = 9,77kN

Pode-se concluir que a função do quarto grau aproxima a


elástica da viga melhor do que duas funções do terceiro grau.
Entretanto, a adoção de uma função aproximadora do terceiro
grau para vários trechos da mesma viga é muito útil,
principalmente pela facilidade de automatização do cálculo, o
que será visto no próximo capítulo.

1.5.3 Exemplo 3: Viga apoiada em uma base elástica e com


carregamento transversal
Considere-se uma viga, apoiada em uma base elástica e
submetida a um carregamento transversal uniformemente
distribuído, conforme indica a Figura 1.10. Adota-se,
inicialmente, a seguinte aproximação para o deslocamento
transversal, a qual já obedece às condições de contorno em x =
0 e x = L.

V ap (x) = A( x  Lx)
2
... (1.82)

27
A expressão da energia potencial total para esta viga é:

EI L KF L L
=   v dx  0 q v dx
2 2
v" dx + ... (1.83)
2 0 2 0

Figura 1.10 – Viga com carregamento transversal e apoiada em


base elástica

Substituindo em (1.83) a expressão de v, dada por (1.82) e


efetuando os cálculos indicados, obtém-se:

5 3
K F L ) 2 + qL A
 ap = (2LEI + A ... (1.84)
30 6

Como na posição de equilíbrio a energia é mínima, temos:

d  ap 5
q L3
= 2 ( 2 L EI + K F L )A + =0 ... (1.85)
dA 30 6

De onde se obtém:

q L3
A = 5
... (1.86)
K L
12(2 L EI + F )
30

e portanto, a expressão da elástica aproximada fica dada por:

q L3
v ap (x) =  5
( x2  L x ) ... (1.87)
K L
12(2 L EI + F )
30
28
Para os dados indicados na Figura 1.10 obtêm-se o seguinte
resultado, o qual é 22% inferior ao valor exato:

l
v ap ( ) = 0,002325m
2

Considere-se agora a função aproximadora do quarto grau


(1.72), a qual também já obedece às condições de vinculação:

v ap (x) = A( x  L x) + B( x  L x) + C( x  Lx)
4 3 3 2 2
... (1.72)

Substituindo-se (1.72) em (1.83) obtêm-se:

EI 144 5 2
 ap = [ 3 2 2 4
L A + 12 L B + 4 LC + 36 L AB + 16 L AC +
3

2 5
9
8 7 2 L5 2 11 8
+ 12 L 2 BC] + K F [ L A2 + L B + C ++ L AB  ... (1.88)
2 9 105 30 60
6 4 3
5 7 L 3 qL qL
+ L AC + BC]  qL A
5
B C
42 10 10 4 6

Derivando-se (1.88) em relação a A, B e C, obtém-se o


seguinte sistema de equações:

 144 L
9
11 8 5 7 
 EI L
5
+ KF 18EI L4 + L KF 8EI L3 + L KF  A
5 9 120 84    3 
    q L5 
     10 4 
 11 8 8 7 6
    qL 
4
 18EI L + 120 L K F 12 EIL3 + L KF 6EI L 2 + L K F   B  =  
105 20 4 
    3
     qL 
 5 7 6 5     6 
3
 8EI L + 84 L K F 6EI L 2 + L K F 4EI L + L K F   C  
 20 30 
... (1.89)

Para os dados indicados na Figura 1.10, o sistema de


equações (1.89) resulta:

29
 23952024 5019165 751795.7   A 729 
    
 5019165 1121965.7 188730   B  = 202.5 ... (1.90)
 751795.7    
 188730 41940  C  45 

Cuja solução fornece:

 A    1.1779  10 
4

   4

B
  = 7.0675  10  ... (1.91)
   
 C   4.0669  10  6 

Substituindo-se estes valores em (1.72) obtém-se, para o


deslocamento do ponto médio da viga:

V ap (L/2) = 0,002990m

Este valor é igual ao fornecido pela solução exata da


equação diferencial desta viga.
Como já foi visto, uma das alternativas para se analisar
esse problema, consiste em se adotar funções aproximadoras para
vários trechos da viga e impondo-se a continuidade do
deslocamento transversal e sua derivada nas funções destes
trechos. Considere-se, por exemplo, a divisão da viga da Figura
1.10 em 6 trechos, conforme indica a Figura 1.11. Adota-se para
cada elemento uma função aproximadora do tipo:

3 2
vi (x) = Ai x + Bi x + C i x + Di ( i = 1,..., 6 ) ... (1.92)

Para garantir-se a continuidade do deslocamento


transversal e sua derivada nas junções dos trechos, as
seguintes condições de contorno devem ser obedecidas:

vi ( Ji )=vi+1( Ji ) e vi ( Ji )=vi+1( Ji ) ... (1.93a)

30
Figura 1.11 – Viga dividida em 6 trechos

Devem ser obedecidas também às condições de vinculação,


isto é:

V 1 (0) = 0 e V 6 (L) = 0 ... (1.93b)

A expressão da mínima energia potencial total dessa viga é


dada por:

6
 EI Kf 
 ap =     vapi d x  Li q vapi d x 
2 2
vapi " d x + ... (1.94)
i=1  2 2 
Li Li

A condição de mínima energia potencial total resulta em um


sistema de 12 equações a 12 incógnitas, cuja solução fornece os
valores dos parâmetros em função dos quais estão escritas as
aproximações dos deslocamentos de cada trecho da viga. A partir
deles pode-se obter o deslocamento de qualquer ponto da viga.
Para o ponto central da viga, obtém-se:

31
L
V 3( ) = 0,002990m
2

que coincide com o valor exato e com o obtido com a função


aproximadora do quarto grau (1.72).

Figura 1.12 – Viga com vinculações e carregamentos genéricos

Como pode ser facilmente avaliado, a divisão da viga em


vários trechos torna a análise do problema praticamente
inviável, devido à ordem do sistema de equações envolvido.
Entretanto este procedimento é facilmente programável e
constitui o fundamento do método dos elementos finitos. Deve-se
ressaltar também que nem sempre se conseguem bons resultados
adotando-se uma única função polinomial, de grau baixo, para
aproximar os deslocamentos de toda a viga. Considere-se, por
exemplo, a viga indicada na Figura 1.12. Na solução exata, a
elástica da viga nos trechos correspondentes a L1, L3 e L4 é
dada por funções seno e cosseno hiperbólicos; no trecho
correspondente a L2, a solução exata é um polinômio do quinto
grau e no trecho correspondente a L5, um polinômio do terceiro
grau. Para se aproximar a elástica desta viga por uma única
função polinomial, obviamente o grau deste polinômio deverá ser
elevado, o que torna a análise muito difícil. A adoção de
funções aproximadoras para vários trechos da viga, embora esta
solução seja bem trabalhosa, tem a vantagem de ser facilmente
programável, o que permite que se façam análises bem mais
32
complexas. Por exemplo, a partir de um programa previamente
desenvolvido, o estudo poderia começar dividindo-se a viga em 5
trechos correspondentes a L1, L2,...(ver Figura 1.12). Em
seguida pode-se utilizar uma divisão mais refinada da viga e
assim por diante até que os resultados de duas análises
consecutivas sejam praticamente coincidentes. É exatamente
nisto que consiste o método dos elementos finitos e cada trecho
da viga recebe o nome de elemento finito.

33
2. MÉTODO DOS ELEMENTOS FINITOS (VIGAS CONTÍNUAS)

2.1 Função Aproximadora


Seja a viga da Figura 2.1, com condições de vinculação
qualquer, dividida em vários segmentos. Cada um destes
segmentos é chamado de Elemento Finito. As extremidades de cada
elemento finito são ditas nós do elemento finito. A cada nó
associam-se dois deslocamentos: o deslocamento vertical v e a
rotação v'.

Figura 2.1 - Viga dividida em elementos finitos

Considere agora um elemento finito genérico da viga:

hi

Figura 2.2 - Elemento da viga

Para este elemento, adota-se como função aproximadora dos


deslocamentos, um polinômio do terceiro grau:

V = ax 3 + bx 2 + cx + d ... (2.1)

A derivada de primeira ordem é dada por:

34
V  = 3 ax 2 + 2bx + c ... (2.2)

Condições de contorno:

a) x = 0 v = vi d = vi
b) x = 0 v' = v'i c = v'i
c) x = hi v = vj ahi3 + bhi2 + chi + d = vj
d) x = hi v' = v'j 3ahi2 + 2bhi + c = v'j

Resolvendo este sistema de equações, obtém-se:

2 1
a=  3
(v j  vi )  2 (v' j v'i )
hi hi
3 1
b= 2
(v j  vi )  (v' j 2v'i )
hi hi

c = v' i d = vi

Substituindo a, b, c e d na expressão da elástica (2.1)


aproximada, obtém-se:

x 3 x 2 x 3 x 2
v = vi [2( ) - 3( ) + 1] + v j [-2( ) + 3( ) ]+
hi hi hi hi

3 2 3 2
x 2x x x
+ v i [ 2
- + x] + 
v j [ 2
- ] ... (2.3)
hi hi hi hi

A derivada de primeira ordem é dada por:

 6 x2 6 x   6 x2 6 x   3x 2 4 x 
v'  vi  3 - 2  + v j  3  2   v'i  2  + 1 +
 hi hi   hi hi   hi hi 

 3x2 2 x 
 v' j  2   ... (2.4)
 hi hi 

35
A derivada de segunda ordem é dada por:
12 x 6   12x 6   6x 4 
v"  vi  3 - 2  + v j  3  2   v'i  2   +
 hi hi   hi hi   hi hi 

 6x 2 
 v' j  2   ... (2.5)
 hi hi 

O quadrado de v' é dado por:

 36 x 4 72 x 3 36 x 2   36 x 4 72 x 3 36 x 2 
v '  v  6  5 + 4  + v 2j  6  5 + 3  +
2 2
i
 hi hi hi   hi hi hi 

 x x x 8x 
+ v i2  9( )4 + 22( )2 + 1  24( )3   +
 hi hi hi hi 

 x x x  72 x4 144 x3 x 
2
+ v  j2 9( )4  12( )3 + 4( )2   vi v j  6  5
+ 72 4
+
 hi hi hi   hi hi hi 

 36 x4 84 x3 60 x3 12 x   36 x4 60 x3 24 x2 
 vi vi'  5  4 + 3  2   vi v 'j  5  4 + 3  +
 hi hi hi hi   hi hi hi 

 36 x4 84 x3 60 x3 12 x   36 x4 60 x3 24 x2 
 v j vi'  5  4 + 3  2   v j v 'j  5  4 + 3  +
 hi hi hi hi   hi hi hi 

 x x x 4x 
+ v i' v 'j 18( )4  36( )3 + 22( )2   ... (2.6)
 hi hi hi hi 

O quadrado de v" é dado por:

1  x 2 x  2 1  x 2 x 
v" 2  v i2 4 144( )  144( )  36  + v j 4 144( )  144( ) + 36 +
hi  hi hi  h i  h i h 

1  x 2 x  2 1  x 2 x 
+ v i2 2  36( )  48( ) + 16  + v  j 2
  36( )  24( ) + 4 +
hi  hi hi  hi  hi h 

36
1  x x  1  x x 
 vi v j 4 
288( )2  288  72   v i v i 3 144( )2  168  48  +
hi  hi hi  hi  hi hi 

1  x x  1  x x 
+ vi v  j 3 
144( )2  120 + 24   v j v  j 3 144( )2  168  48  +
hi  hi hi  hi  hi hi 

1  x x  1  x x 
 v j v i 3 
144( )2  120 + 24  + v i v  j 2 72( )2  72 + 16  ... (2.7)
hi  hi hi  hi  hi hi 

Efetuando-se as integrais das expressões de v'2 e v"2 no


elemento, obtém-se:

hi
6 2 6 2 2 hi 2 2 hi 2 12
 v  2 dx =
0
5hi
vi +
5 hi
vj+
15
v i +
15
v j 
5 hi
vi v j +

1 1 1 1 h
+ vi v i + vi v  j  v j v i  v j v  j  v i v  j ... (2.8)
5 5 5 5 15

hi
12 2 12 2 4 2 4 2 24
 v 
0
2
dx =
hi3
vi + 3 v j + v i + v  j  3 vi v j +
hi hi hi hi

12 12 12 12 4
+ +
2 vi v i 2 vi v  j  2 v j v i  2 v j v  j + vi v j ... (2.9)
hi hi hi hi hi

Utilizando-se as expressões (2.7) e (2.8) para um elemento


finito genérico i, encontra-se a energia total no elemento i. A
energia total de toda a viga é dada pela somatória das energias
de cada elemento em que a mesma foi dividida.

2.1.1 Exemplo 1:
Calcular o deslocamento do ponto de aplicação da carga da
viga da figura considerando toda a viga como um elemento
finito.

37
Figura 2.3 - Viga submetida a carregamento pontual

h i
EI
 = 
0
2
v  2 d x - P v 2 ... (2.10)

E, como EI = constante:

hi
EI
=  v  2
dx - P v2 ... (2.11)
2 0

EI  12 2 12 2 4 2 4 2 24
= v 1 + 3 v 2 + v 1 + v  2  3 v 1 v 2 +
2  L 3 L L L L
12 12 12 12 4 
+ 2 v1 v 1 + 2 v1 v 2  2 v 2 v 1  2 v2 v 2 + v 1 v 2   Pv2 ... (2.12)
L L L L L 

que é uma função nas variáveis v1 , v'1, v2 e v'2.

Da condição de mínima energia potencial total, pode-se


escrever:


=0
 v1

EI  24 v1 24 12 12 
 3
 3 v2 + 2 v 1 + 2 v 2  = 0 ... (2.13)
2  L L L L 
38

=0
 v1

EI  8 12 12 4 
 v 1 + 2 v1  2 v 2 + v 2  = 0 ... (2.14)
2 L L L L 


=0
 v2

EI  24 24 12 12 
 3 v2
 3 v1  2 v 1  2 v 2  P = 0 ... (2.15)
2 L L L L 


=0
 v 2

EI 8 12 12 4 
2  L v 2  2 v1  2 v 2  L v 1 = 0 ... (2.16)
 L L 

Rearranjando o sistema de equações, obtém-se:

12EI 6EI 12EI 6EI


3 v1 + 2 v 1  3 v2 + 2 v 2 = 0 ... (2.17)
L L L L

6EI 4EI 6EI 2EI


2 v1 + v 1  2 v 2 + v 2 = 0 ... (2.18)
L L L L

12EI 6EI 12EI 6EI


 3 v1  2 v 1 + 2 v2  2 v 2 = P ... (2.19)
L L L L

6EI 2EI 6EI 4EI


2 v1 + v 1  2 v 2 + v 2 = 0 ... (2.20)
L L L L

Colocando este sistema de equações na forma matricial,


obtém-se:

39
 12 EI 6 EI 12 EI 6 EI 
 L3 
L2 L3 L2  V
 6 EI 4 EI 6 EI 2 EI   1   0 
 2  2  '   
 L L L L  V1    0 
 12 EI 6 EI 12 EI 6 EI  V2   P 
 L3  L2 3
 2     ... (2.21)
L L V2'   0 
 6 EI 2 EI 6 EI 4 EI 
 2  2 
 L L L L 

Condições de contorno: v1 = 0 e v'1 = 0


Impondo-se as condições de contorno (retira-se a linha e a
coluna referentes ao deslocamento v1 e v'1), obtém-se:

 12 EI 6 EI 
   2

 L
3 L2  V   P 
  
... (2.22)
 6 EI

4 EI   V '   0 
  2   
 L2 L  
 

3
PL
v2 = ... (2.23)
3EI

2
PL
v 2 = ... (2.24)
2EI

Cálculo do momento fletor no ponto [1]:

v"1 = v"(0)

6 6 4 2
v1 =  2 v1 + 2 v2 - v 1 - v  2
L L L L

6 PL3 2 PL2
v1 = 2
.  .
L 3EI L 2EI

PL
v 1 =
EI
40
M1= -EIv"1  M1=-PL , que é o valor exato.

2.1.2 Exemplo 2:
Calcular os deslocamentos e esforços da viga considerando
toda viga como um elemento finito.

Figura 2.4 - Viga submetida a carregamento distribuído

L L
EI
= v" dx   qvdx
2
... (2.25)
0
2 0

Cálculo da parcela referente ao trabalho das cargas


externas:

L
 =   qvdx ... (2.26)
0

L
x 3 x 2 x 3 x 2
 = - q { v 1[2( ) - 3( ) + 1] + v 2 [-2( )  3( ) ]
0
L L L L
3 2 3 2
x 2x x x
+ v 1 [ 2
- + x] + v2 [ 2 - ]}dx ... (2.27)
L L L L

41
2 x4 x3 2 x4 x3
 =  q{ v1 [  + x] + v 2 [  + ]
4 L3 L2 4 L3 L2
4 L
x 2 x3 x 2 x
4
x
3
+ v 1 [  + ] + v 2 [  ]} | ... (2.28)
4 L2 3 L 2 4 L 2 3L 0

2 2
L L
 =  q( v1 + v 2 + v 1 L  v 2 L ) ... (2.29)
2 2 12 12

A expressão da energia potencial total pode ser escrita da


seguinte forma:

EI 12 v12 12 2 4 2 4 2 24
= { 3 + 3 v 2 + v'1 + v 2  3 v1 v 2 +
2 L L L L L
12 12 12 12 4
+ 2 v1 v 1 + 2 v1 v 2  2 v 2 v 1  2 v 2 v 2 + v 1 v 2 } +
L L L L L
2 2
L L L L
 q[ v1 + v 2 + v 1  v 2 } ... (2.30)
2 2 12 12


=0
 v1

EI  24 24 12 12  L
 3 V1
 3 v 2 + 2 v 1 + 2 v 2   q = 0 ... (2.31)
2 L L L L  2


=0
 v 1

EI  8 12 12 4  L
2

v1 + 2 v1
 2 v2
+ 
v2  q =0 ... (2.32)
2  L L L L  12


=0
 v2

EI  24 24 12 12  qL
 3 v2
 3 v1  2 v 1  2 v 2   =0 ... (2.33)
2 L L L L  2

42

=0
 v 2

EI 8 12 12 4  2
L =0
L v  + v  v + v  + q ... (2.34)
L 
2 2 1 2 2 1
2  L L 12

Rearranjando o sistema de equações e colocando-o na forma


matricial, obtém-se:

 12LEI
3
6 EI
L2

12 EI
L3
6 EI
L2
  ql
2

 6 EI 4 EI 6 EI 2 EI   v1   ql 2 
L   v1   12 

 L2
'
L L2
6 EI    ql 
 12LEI
3
6 EI
 2
L
12 EI
L3
 2  v2
L v2'   2 2 
 6 EI 4 EI 

... (2.35)

 12 
2 EI 6 EI ql
 
 L2 L L2 L 

Condições de contorno:

v1 = 0 , v'1 = 0

 12 EI 6 EI   
   
qL 
L3 L2
  V   
  2 
  2  ... (2.36)
  '  

6 EI 4 EI  V 2   qL 2 
   
 L2 L   12 

4
qL
v2 = ... (2.37)
8EI

3
qL
v2 = ... (2.38)
6EI

que é a solução exata.

43
Cálculo do momento no ponto [1]:

6 6 4 2
v 1 =  2 v1 + 2 v2  v 1  v 2
L L L L

4 3
6 qL 2 qL
v 1 = 2 .  .
L 8EI L 6EI
5 qL 2
v 1 =
12 EI

5 2
M 1 =  EI v 1 =  qL
12

Valor exato M1 = - qL2/2


Erro: 16,6%

2.2 Matriz de Rigidez e Vetor de Cargas Nodais Equivalentes


Considere o caso geral de um elemento finito submetido a
um carregamento distribuído ao longo de seu comprimento
conforme indicado na Figura 2.5.

Figura 2.5 - Elemento submetido a carregamento distribuído

Neste caso a energia potencial total pode ser escrita da


seguinte forma:

hi h
EI i

= v" dx   qvdx


2
... (2.39)
0
2 0

44
Separando na equação anterior a parcela referente à
energia de deformação da parcela referente à energia potencial
das cargas externas pode-se escrever que:

vi 
T  12hEI
3
6 EI
hi2
12 EI
hi3
6 EI
hi2
 v 
 '  6 EI
i

6 EI
 i
 '
h
EI '' vi   hi2 4 EI
hi hi2 hi  vi 
2 EI

U   v dx   j   12 EI 6 EI

6 EI  j 

0
2 v   hi3 hi2
12 EI
hi3 hi2  
v 
v '   6 EI 2 EI 6 EI 4 EI
 v '
 j  hi2 hi hi2 hi   j 

  e   K e  e 
T
... (2.40)

 qh i 
T
 2 
 v i   qh 2 
hi v'   i 
 i   12 
 =  qvdx       e  Pe 
T
qh i  ... (2.41)
0 v j   
v j   2 
'

  qh i2 
 12 
 

A matriz Ke é a chamada matriz de rigidez do elemento, o


vetor e é chamado de vetor de parâmetros nodais do elemento e o
vetor Pe é denominado de vetor de cargas nodais equivalentes do
elemento.
Para determinação do vetor de parâmetros nodais basta
utilizar a condição de estacionariedade da energia potencial
total. A partir daí basta resolver o sistema linear resultante
(equação 2.42) mediante a aplicação das condições de contorno.
São exemplos deste sistema as equações 2.21 e 2.35 obtidas nos
exemplos 1 e 2, respectivamente.

K e  e   Pe  ... (2.42)

45
2.3 Matriz de Rigidez de um Elemento Finito Submetido à Carga
Axial

hi

Figura 2.6 - Elemento submetido à carga axial

hi
E i Ii P hi 2
i=  v  dx   v  dx
2
... (2.43)
0
2 2 0

ou seja:

Ei I i 12 2 12 2 4 2 4 2 24 12
i= [ 3 vi + 3 v j + vi + v j  3 vi v j + 2 vi vi +
2 hi hi hi hi hi hi
12 12 12 4
+ 2 vi v j  2 v j vi  2 v j v j + vi v j ] +
hi hi hi hi
P 6 2 6 2 2 2 12
 [ vi + v j + hi vi + hi v j 
2 2
vi v j +
2 5 hi 5 hi 15 15 5 hi
1 1 1 1 h
+ vi vi + vi v j  v j vi  v j v j  vi v j ] ... (2.44)
5 5 5 5 15

Calculando as derivadas em relação a Vi, V'i, Vj, V'j para


o elemento i, obtém-se:

i 12 6 6
= [ E3i I i  P i ] v i + [ E2i I i  P i ] v i +
 vi hi 5 hi hi 10
12 6 6
+ [  E3i I i + Pi ] v j + [ E2i I i  Pi ] v  j ... (2.45)
hi 5 hi hi 10

 i 6 4 2 h
= [ E2i I i  Pi ] vi + [ E i I i  Pi i ] v i +
 v i hi 10 hi 15
6 2 h
+ [  E2i I i + P i ] v j + [ E i I i + P i i ] v  j ... (2.46)
hi 10 hi 30
 i 12 6 6
= [  E3i I i + Pi ] vi + [  E2i I i + Pi ] v i +
vj hi 5 hi hi 10
46
12 E i I i 6 6
+[ 3
 Pi ] v j + [  E2i I i + Pi ] v  j ... (2.47)
h i 5 hi hi 10

 i 6 2 h
= [ E2i I i  Pi ] vi + [ E i I i + Pi i ] v i +
 v j hi 10 hi 30
6 4 2 h
+ [  E2i I i + Pi ] v j + [ E i I i  Pi i ] v  j ... (2.48)
hi 10 hi 15

A matriz de rigidez deste elemento finito é:

 12 hE3i I i  65 hPii 6 E i I i Pi
2
 
12 E i I i 6 Pi
3

6 E i I i Pi
2
 
 6 Ei i I i  Pi 
hi 10 hi 5 hi hi 10
4 E i I i 2 Pi hi 6 E i I i Pi 2 E i I i Pi hi

 12hEi2 I 106 P 
   
hi 15 hi2 10 hi 30

  hi3i i  5 hii 
6 E i I i Pi 12 E i I i 6 Pi 6 E i I i Pi
    
hi 2 10 hi3 5 hi hi 2 10

 6 E2i I i  10Pi 2 E i I i Pi hi
 
6 E i I i Pi

4 E i I i 2 Pi hi
 
 hi hi 30 hi 2 10 hi 15

... (2.49)

Esta matriz pode ser escrita de uma forma mais compacta,


como se segue:

Ki i
K12 i
K13 i 
K14
 11 
Ki i
K22 i
K23 i
K24
 21 
i
K31 i
K32 i
K33 i
K34 ... (2.50)
 i i i i 
K41 K42 K43 K44

que pode ser dividida em 4 sub-matrizes:

47
Kii Kij 
K K  ... (2.51)
 ji jj 

onde:

Kii = é a influência do nó i sobre os deslocamentos do nó i


(influência do nó i sobre ele mesmo);

Kij = é a influência do nó i sobre os deslocamentos do nó j;

Kji = é a influência do nó j sobre os deslocamentos do nó i;

Kjj = é a influência do nó j sobre ele mesmo.

As derivadas da energia potencial total do elemento finito


i em relação a vi, v'i, vj e v'j podem ser escritas em função de
todos os deslocamentos da viga, como se segue (coloca-se na
linha 2i-1 a derivada em relação a vi...):??????

T
 v1  0 ... 0 0 0 0 ... 0  v1 
 ...    
  . ... . . . . ... .   ... 
 v  0 ... K i Ki Ki Ki ... 0  vi 
 i   11 12 13 14  
    ' 
 v'    
 i  0 ... K i Ki Ki Ki ... 0  vi 
1  21 22 23 24  
    
2 v    v 
0 ... K i Ki Ki K i ... 0
 j   31 32 33 34  j  ... (2.52)
    
 v'     ' 
 j  0 ... K i Ki Ki Ki ... 0  v j 
41 42 43 44
 ...   . ... . . . . ... .   ... 
    
vn  1  0 ... 0 0 0 0 ... 0 v
 n  1 

48
Considere agora dois elementos finitos i e j:

Figura 2.7 - Elementos finitos (i) e (j)

A energia potencial total dos dois elementos é dada por:

 ij =  i +  j ... (2.53)

As derivadas em relação aos deslocamentos de i, j e k


podem ser escritas em duas parcelas: as derivadas em relação
aos deslocamentos do elemento i e as derivadas em relação aos
deslocamentos do elemento j.

  ij   i   j
= + ... (2.54)
 ve  v e  ve

  ij   i   j
= + ... (2.55)
 ve  ve  ve

e = i, j, k

A soma das duas parcelas das derivadas da energia


potencial total dos elementos i e j é dada por:

49
T
 v1  0 ... 0 0 0 0 0 0 ... 0  v1 
 ...  . ... . . . . . . ...   ... 
  
 vi  0 ... K11i K12i K13i K14i 0 0 ... 0  vi 
    
    
 vi'  0 i
... K 21 i
K 22 i
K 23 i
K 24 0 0 ... 0  vi' 
    
    
v  0 ... K 31i K 32i K 33i K 34i 0 0 ... 0  v j 
1      
j

    
2 '  0 0 0 ... 0  v 'j 
i i i i ... (2.56)
v ... K 41 K 42 K 43 K 44
 j    
    
    
 vk  0 ... 0 0 0 0 0 0 ... 0  vk 
    
 '    
 vk  0 ... 0 0 0 0 0 0 ... 0  vk' 
 ...  . ... . . . . . . ... .   ... 
 '    
vn1  0 ... 0 0 0 0 0 0 ... 0 vn' 1 

Parcela relacionada ao elemento i.

50
T
 v1  0 ... 0 0 0 0 0 0 ... 0  v1 
 ...  . ... . . . . . . ...   ... 
  
 vi  0 ... 0 0 0 0 0 0 ... 0  vi 
    
    
 vi'  0 ... 0 0 0 0 0 0 ... 0  vi' 
    
    
v  0 ... 0 0 K11j K12j K13j K14j ... 0  v j 
1      
j

    
2 '  0
v ... 0 0 K 21j K 22j K 23j K 24j ... 0  v 'j  ... (2.57)
 j    
    
v    
 k  0 ... 0 0 K 31j K 32j K 33j K 34j ... 0  vk 
    
 '    
 vk  0 ... 0 0 K 41j K 42j K 43j K 44j ... 0  vk' 
 ...  . ... . . . . . . ... .   ... 
 '    
vn1  0 ... 0 0 0 0 0 0 ... 0 vn' 1 

Parcela relacionada ao elemento j.

51
T
 v1  0 ... 0 0 0 0 0 0 ... 0 v1 
 ...  . ... . . . . . . ...  ... 
  
 vi  0 ... K11i K12i K13i K14i 0 0 ... 0 vi 
    
    
 vi'  0 i
... K21 i
K22 i
K23 i
K24 0 0 ... 0 vi' 
    
    
v  0 i
... K31 i
K32 i
K33  K11j K24
i
 K12j K13j K14j ... 0 v j 
1     
j

    
2 '  0
v i
... K41 i
K42 i
K43  K21j K 44
i
 K22j K23j K 24j ... 0 v 'j 
 j    
    
v    
 k  0 ... 0 0 K31j K32j K33j K34j ... 0 vk 
    
 '    
 vk  0 ... 0 0 K41j K42j K43j K 44j ... 0 vk' 
 ...  . ... . . . . . . ... .  ... 
 '    
vn1  0 ... 0 0 0 0 0 0 ... 0vn' 1 

... (2.58)

Observar a superposição de elementos nas linhas dos


deslocamentos do nó j.
Isso ocorre porque eles recebem duas contribuições: a do
elemento i e a do elemento j.
Esta mesma superposição é verificada no vetor dos termos
independentes do sistema de equações para as contribuições do
carregamento distribuído, quando houver aplicação deste à
estrutura.
De um modo geral, o sistema de equações de uma viga
dividida em n elementos finitos será:

52
Uma observação importante é lembrar que se por acaso a
numeração dos nós não for seqüencial, isto é, da esquerda para
direita, haverá coeficientes não nulos fora da banda da matriz
de rigidez global. Tal fato é indesejável uma vez que pode
aumentar a área necessária de armazenamento durante a solução
por computador e ainda gerar resíduos na solução do sistema
linear de equações.
Visando a solução do problema de vigas contínuas por via
computacional é ilustrado a seguir um esquema de endereçamento
no qual é indicada a posição na escala global da contribuição
de cada elemento presente na discretização da estrutura. Seja o
elemento ilustrado a seguir formado pelos nós i e j:

Figura 2.8 - Elemento genérico formado pelos nós i e j

53
A localização na escala global dos termos da matriz de
rigidez e do vetor de cargas nodais equivalentes deste elemento
é apontada pelos chamados índices de posição que neste caso são
2i-1, 2i, 2j-1 e 2j. Abaixo é colocado de que forma é efetuado
este endereçamento.

Coluna a ser ocupada na


matriz de rigidez global

2i-1 2i 2j-1 2j

2i-1  K 11 K 12 K 13 K 14 
Linha a ser 2i
K K 22 K 23 K 24 
ocupada na  21
matriz de
rigidez global
2j-1  K 31 K 32 K 33 K 34 
 
2j
 K 41 K 42 K 43 K 44 

Matriz de rigidez do elemento


formado pelos nós i e j

2i-1
 P1 
Linha a ser
ocupada no vetor  P2  Vetor de cargas nodais

 P3 
2i
de cargas nodais equivalentes do elemento
equivalentes formado pelos nós i e j
2j-1
 P4 
global
2j

Figura 2.9 – Esquema de endereçamento de vigas contínuas

2.3.1 Exemplo 3:
Objetivando um melhor entendimento do esquema de
endereçamento colocado anteriormente é colocada a seguir uma
viga contínua com deslocamentos nodais a serem determinados
mediante discretização indicada.

54
Dados: g = 10 kN/m
EI = 108 kN∙cm2
L = 2 m

x
y

Figura 2.10 – Viga contínua discretizada em dois elementos

O primeiro passo para solucionar um problema deste tipo é


escrever a matriz de rigidez e o vetor de cargas nodais
equivalentes para cada elemento envolvido na discretização, ou
seja:
Elemento 1:

 12 EI 6 EI

12 EI 6 EI   gL 
 6LEI 2 EI   gL22 
3
L2 L3 L 2
4 EI 6 EI
 L2 
L 
 12 
 
gL 
K1  L L2 e P1
 12 EI 6 EI
 2
12 EI
 2 
6 EI

 6 EI  22
4 EI 
L3 L L3 L

 L2
2 EI 6 EI
 gL 
L 

L L2   12 
Elemento 2:

 48 EI 24 EI

48 EI 24 EI 
 24LEI  2 gL2 
8 EI 
3 2 3 2
L L L

 L2
16 EI

24 EI
L 
 gL3 
 
2 gL 
K2  L L2 e P2
  48 EI 24 EI
 2
48 EI
 2 
24 EI

 24 EI  gL2 
16 EI 
L3 L L3 L
8 EI 24 EI  3
 L2 L

L2 L  
55
O passo seguinte é deixar a escala local que se refere ao
domínio dos elementos e passar para escala global de toda
estrutura. Para tanto é necessário determinar os índices de
posição que irão apontar as posições globais dos elementos
locais.
Elemento 1:

i=1
j=3

2i-1=1 ; 2i=2
2j-1=5 ; 2j=6
Elemento 2:

i=3
j=2

2i-1=5 ; 2i=6
2j-1=3 ; 2j=4

A ideia então é explorar o esquema de endereçamento


indicado na Figura 2.9. Por exemplo, foi calculado para o
elemento 1 que o índice de posição 2j-1 é igual a 5,
consequentemente, o termo K33 da matriz de rigidez deste
elemento vai ocupar a posição 55 da matriz de rigidez global.
Este procedimento se repete para determinar qual a posição
global de todos os elementos locais, tanto da matriz de rigidez
quanto do vetor de cargas nodais equivalentes. O resultado
final da matriz de rigidez e do vetor de cargas nodais
equivalentes globais é colocado a seguir:

56
 12 EI 6 EI 12 EI 6 EI 
 0 0   gL 
 L3 L2 L3 L2   
 6 EI 4 EI  6 EI 2 EI   2 
 0 0
 L
2
L2 L2 L   gL2 
48 EI  24 EI  48 EI  24 EI   
 0 0  12 
KG

  L3 L2 L3 L2   2 gL 
 24 EI 16 EI 24 EI 8 EI  e PG    gL 
 0 0   3 
 L2 L L2 L   5 gL 
 12 EI  6 EI  48 EI 24 EI 60 EI 18 EI   
 L3 L2 L3 L2 L3 2
L    2 
 6 EI 2 EI  24 EI 8 EI 18 EI 20 EI   gL 2 
  
 L2 L L2 L L2 L   4 

Os termos destacados receberam contribuição dos dois


elementos uma vez que se referem ao nó intermediário.
Impondo as condições de contorno (v1=0; v’1=0 e v2=0)
obtém-se o seguinte sistema linear de equações em sua forma
matricial:

 16 EI 24 EI 8 EI    gL2 
  '  
 L L2 L 
 v2   3 
 24 EI 60 EI 18 EI     5 gL 
 2   v3    
 L L3 L2   '   2 
 8 EI 18 EI 20 EI   v3   5 gL2 
 L L   
L2  4 

Substituindo os dados do problema tem-se:

 40 
 80000 60000 40000   v '    
  2   3 
 60000 75000 45000   v3    50 
 40000 45000 100000   v '   10 
  3   

cuja solução fornece:

57
 v '   1, 64410 3 rad 
 2  
 v3    2 , 09210 3 m 
 '  4 
 v3   1,83910 rad 

2.4 Determinação dos esforços internos nodais


Voltando ao exemplo anterior para calcular os esforços
internos nos nós basta utilizar as seguintes equações
anteriormente discutidas:

M =  EIv ''
... (2.59a e 2.59b)
V   EIv '''

Elemento 1:

M 1 =  EIv1'' 0  33,219 kN  m


V1   EIv1''' 0  34,138 kN

M 3 =  EIv1'' L   35,058 kN  m
V3   EIv1''' L   34,138 kN

Elemento 2:

M = EJV"
M 2 = 4 EIv2'' L   13,333 kN  m
V2  4 EIv2''' L   15,862 kN

As respostas acima explicitadas, entretanto, são


diferentes dos valores corretos que seriam:

M1 = 36,552 kN  m
V1  44,138 kN

58
M 3 = 31,724 kN  m
V3  24,138 kN
M2 =0
V2  55,862 kN

Tal fato ocorre em virtude de que o método dos elementos


finitos prescreve que o carregamento distribuído seja
transformado em cargas concentradas aplicadas sobre os nós.
Esse fenômeno fica mais evidente ainda quando se trabalha com
um exemplo mais simples como é o caso da viga engastada com
carregamento distribuído ao longo de seu domínio. Basta
conferir que a energia potencial total para a estrutura
submetida a carregamentos distintos colocada na Figura 2.11
abaixo é a mesma.

MEF

Figura 2.11 – Transformação de carregamento distribuído em


cargas nodais

Uma maneira de corrigir a determinação dos esforços


internos para casos como esse é efetuar a diferença entre a
resposta obtida com as equações clássicas da teoria de flexão
de vigas (equações 2.59) e as cargas nodais equivalentes
aplicadas sobre os nós. Cabe salientar neste momento que o
sentido dos esforços considerado positivo na teoria de flexão
de vigas (Figura 2.12a) é diferente daquele utilizado no método
59
dos elementos finitos (Figura 2.12b). Neste caso uma convenção
precisa ser adotada como padrão, por conveniência a convenção
tomada é a do método dos elementos finitos.

2 4 2 4

3 1 3
1
(a) (b)

Figura 2.12 – Sentido positivo para os esforços para teoria de


flexão de vigas (a) e para o método dos elementos finitos (b)

Tomando como referência as respostas obtidas no exemplo


anterior vem que os esforços devidamente corrigidos seriam:

 Elemento 1

 Esforço Cortante (kN∙m):


V1  VTFV
*
 P1  34,138  10  44,138 kN
V3  VTFV  P3  34,138  10  24,138 kN

 Momento Fletor (kN∙m):


M 1  M TFV  P2  33,219  3,333  36,552 kN  m
M 3  M TFV
*
 P4  35,058  (3,333)  31,724 kN  m

(*) = indica que foi necessário trocar o sinal já que para os


graus de liberdade atrelado a esses esforços a convenção
adotada (MEF) é diferente da convenção da teoria de flexão de
vigas da qual foi obtida a resposta.

 Elemento 2

60
 Esforço Cortante (kN∙m):
V3  VTFV
*
 P1  15,862  40  24,138 kN
V2  VTFV  P3  15,862  40  55,862 kN

 Momento Fletor (kN∙m):


M 3  M TFV  P2  45,057  13,333  31,724 kN  m
M 2  M TFV
*
 P4  13,333  (13,333)  0

(*) = indica que foi necessário trocar o sinal já que para os


graus de liberdade atrelado a esses esforços a convenção
adotada (MEF) é diferente da convenção da teoria de flexão de
vigas da qual foi obtida a resposta.

Portanto, em módulo, os valores se igualaram aos corretos,


todavia aonde a convenção do método dos elementos finitos é
diferente daquela colocada para a teoria de flexão de vigas o
sinal está trocado. Como a resposta correta respeita a
convenção da teoria de flexão de vigas é necessário corrigir o
sinal nos graus de liberdade onde a convenção é desrespeitada.
Sendo assim, é preciso corrigir os esforços que se referem aos
graus de liberdade 1 e 4 para cada elemento.
Outra forma mais direta de se determinar os esforços
nodais visando à implementação computacional é multiplicar a
matriz de rigidez de cada elemento por seu respectivo vetor de
parâmetros nodais. Este produto chegaria a respostas iguais em
módulo àquelas obtidas através da teoria clássica de flexão de
vigas. De sorte que para se obter respostas corretas bastaria
fazer a diferença entre este produto e o respectivo vetor de
cargas nodais equivalentes para o elemento em questão. Logo,
para um elemento finito genérico de comprimento hi (Figura
2.13) tem-se:

61
 12 EI 6 EI 12 EI 6 EI 
 
 hi3 hi2 hi3 hi2 
 V   6 EI  
 i   4 EI  6 EI 2 EI   vi   P1 
 '  
 M i   hi2 hi hi2 hi   vi   P2 
     
 V j   12 EI  6 EI 12 EI  6 EI   v j   P3 

M   h3 hi2 hi3 hi2   v 'j   P4 
 j i  
 6 EI 2 EI  6 EI 4 EI 
 2 
 hi hi hi2 hi 

V   K e  e   Pe  ... (2.60)

Mi
hi Mj
i j
E,I
Vi Vj
Figura 2.13 – Esforços nodais em elemento genérico de viga

Para exemplificar é tomado como modelo o elemento 1 do


exercício resolvido acima. Por conseguinte, empregando a
equação 2.60 vem que:

 V   15000 15000 15000 15000   0   10 


 1      
 M 1   15000 20000 15000 10000   0   3, 333 
     3    
V
 3   15000 15000 15000 15000  2 , 092 10   10 
 M   15000 10000 15000 20000   1,83910 4    3, 333 
 3     

 V    34 ,138   10    44 ,138 kN 
 1       
 M 1    33, 219   3, 333    36 , 552 kN  m 
        
V
 3   34 ,138   10   24 ,138 kN 
 M    35, 058    3, 333    31, 724 kN . m 
 3      

62
Como esperado a resposta foi igual à correta exceto pelos
sinais trocados nos graus de liberdade onde a convenção do MEF
é diferente da convenção de vigas.

2.5 Implementação Computacional

Esta seção tem por objetivo apresentar o procedimento para


a implementação computacional do elemento finito de viga
considerando a possibilidade da estrutura estar apoiada sobre
base elástica, vínculos elásticos e submetida a carregamento
externo trapezoidal.
Para isto, seja um elemento finito de viga de comprimento
L , módulo de elasticidade E e momento de inércia I submetido à
ação de um carregamento linearmente distribuído q(x ) conforme
mostrado na Figura 2.14. Uma vez que, por hipótese, a viga está
submetida aos esforços de flexão, os parâmetros nodais
associados aos nós i e j deste elemento finito são as rotações
e translações (Figura 2.15). Considera-se ainda que o elemento
esteja apoiado em base elástica de rigidez Kb e que os nós
podem estar apoiados em vínculos elástico de rotação com
rigidez K m e de translação com rigidez K v .

Figura 2.14 – Elemento finito de viga

63
Figura 2.15 – Parâmetros nodais do elemento finito de viga

A energia de deformação da base elástica é dada por

1
2
UB  K b w 2 dx ... (2.61)

onde Kb é a constante de mola da base elástica e w é o


deslocamento vertical.
A energia de deformação dos vínculos elásticos é dada por

1 1
Uv  K vi w i2 , U m  K mi w i 2 , ... (2.62)
2 2

onde wi e w i são respectivamente o deslocamento vertical do

ponto i e a derivada do deslocamento no ponto i , e K v e K m são


as constante da mola de translação e rotação, respectivamente.
A expressão do trabalho realizado pelo carregamento
distribuído é dada por

q   qwdx ... (2.63)

onde q é o carregamento distribuído e w é o deslocamento


vertical.
Os trabalhos realizados pelas forças aplicadas  F e pelos

momentos aplicados  M são dados, respectivamente, por

 F  Pi w i ,  M  M i w i ... (2.64)

64
onde Pi é a intensidade da carga concentrada, wi é o

deslocamento do ponto de aplicação da carga concentrada, M i é o

momento fletor aplicado no ponto i e w i é a derivada do


deslocamento transversal no ponto de aplicação do momento.
Desta forma, a energia total  do elemento de viga pode
ser expressa por:

1 L
 EI(w ) 2  K b (w ) 2  dx   K v w 2  K m w  2     q (w )wdx  Pw (x ) x  j  M w (x ) x  j
L x i x i

2 
 0 
 0

... (2.65)

Adota-se como aproximação para o carregamento linearmente


distribuído um polinômio do primeiro grau, dada por

q ( x )  b 0  b1 x ... (2.66)

onde b0 e b1 são coeficientes a determinar a partir das


condições de contorno do elemento.
Estas condições são expressas por

q(0)  q i , q (L)  q j ... (2.67)

Impondo-se as condições de contorno dadas na Eq. (2.67) e


na Eq. (2.66) chega-se aos valores dos coeficientes b 0 e b1 dados
por.

(q j  q i )
b 0  q i , b1  ... (2.68)
L

Desta forma, o polinômio aproximativo do carregamento


distribuído passa a ser escrito em função dos parâmetros nodais
q i e q j como

65
(q j  q i )
q(x )  q i  x ... (2.69)
L

Reescrevendo-se a função aproximativa, Eq. (2.69), no


sistema de coordenadas adimensionais, tem-se

q()  (1  )q i  q j ... (2.70)

E as funções aproximativas para o carregamento distribuído


são expressas por

1 ()  (1  ) ,  2 ()   ... (2.71)

Substituindo-se as funções aproximativas no funcional de


energia dado na Eq. (2.65) reescrito no sistema de coordenadas
adimensionais e fazendo-se todas as operações necessárias
chega-se a um sistema de equações de onde é possível extrair
todas as informações necessárias para automatizar o método.
Estas informações são a matriz de rigidez dos elementos
obtida no Capítulo 2 dada por

 12EI 6EI 12EI 6EI 


 L3 L2 L3 L2 
 
 6EI 4EI 6EI 2EI 
 L2 L L2 L  ... (2.72)
 K L    12EI 6EI 12EI 6EI 
 3
 L L2 L3 L2 
 6EI 2EI 6EI 4EI 
 2 
 L L L2 L 

a matriz de rigidez da base elástica, dada por

66
 13 11 9 13 
 35 K b L K b L2 KbL K b L2 
210 70 420
 
 11 K L2 1 13 1
K b L3 K b L2 K b L3 
 b

 K B    210 105 420 140
11

... (2.73)
 9 K bL 13
K b L2
13
KbL KbL 2

 70 420 35 210 
 13 1 11 1 
 K b L2 K b L3 K b L2 K b L3 
 420 140 210 105 

a matriz de rigidez da contribuição dos vínculos elásticos,


dada por

 K vi 0 0 0 
 0 K mi 0 0 
 K V    0 0 K vj 0 
... (2.74)
 
 0 0 0 K mj 

o vetor de carregamento nodal equivalente do elemento finito,


dado por

 7 3 
 20 Lq i  20 Lq j 
 
 1 L2q  1 L2 q 
 i j

Qeq    20 30
 ... (2.75)
 3 Lq  7 Lq 
 20 i 20 j 
 1 1 
 L2 q i  L2 q j 
 30 20 

e o vetor de carregamento nodal aplicado dado por

 Pi 
M 
 i
Q Apl     ... (2.76)
 Pj 
M j 

Considerando-se que um dado problema pode ser discretizado


em mais de um elemento finito é necessário incidir as
67
contribuições de cada elemento finito nas posições específicas
da matriz de rigidez global KG  e do vetor de cargas globais

FG  .
Estas contribuições para a matriz global são efetivadas
através das relações de incidência que relacionam os nós,
inicial e final, de um dado elemento final com sua posição
final no sistema global da estrutura e são dadas por

2i  1 , 2i , 2 j  1 , 2 j ... (2.77)

Resolvendo-se o sistema de equações dado por

 K G UG   FG  ... (2.78)

onde KG  é a matriz de rigidez global da estrutura com as

condições de contorno e FG  é o vetor de forças global da

estrutura, chega-se aos valores dos deslocamentos nodais U G  .


Com os valores dos deslocamentos determinados podem-se
obter os esforços internos a partir da expressão

VL    K L U L   Qeq  ... (2.79)

onde VL  é o vetor de esforços local do elemento, KL  é a

matriz de rigidez local do elemento, U L  é o vetor de

deslocamentos local do elemento e Q  eq é o vetor de

carregamento nodal equivalente do elemento.


As reações de apoio podem ser obtidas a partir da
expressão

R   K viga  U G   Fviga  ... (2.80)

68
onde R  é o vetor das reações de apoio,  K viga  é a matriz de

rigidez da estrutura sem as condições de contorno, U G  é o

vetor de deslocamentos global da estrutura e F viga é o vetor de

forças da viga.

2.6 Considerações Sobre Rótulas

As rótulas, quando presentes nas vigas, introduzem uma


descontinuidade dos giros que a estrutura apresenta tanto à
esquerda quanto à direita da rótula. Existem diversas maneiras
de se trabalhar com as rótulas, porém aqui, adota-se uma
maneira interessante sob o ponto de vista de programação. Para
tanto se torna necessário a definição de três tipos de elemento
finito:
 Tipo 1: aquele que não apresenta rótula (apresentado no
capitulo 2)
 Tipo 2: aquele que apresenta rótula à esquerda
 Tipo 3: aquele que apresenta rótula à direita
O primeiro tipo de elemento é o tipo comum que já foi
abordado e apresenta matriz de rigidez conhecida. Cabe aqui
então a descrição do segundo tipo de elemento que, por sua vez,
apresenta dedução análoga ao elemento tipo 3.

Figura 2.16 - Elemento tipo 2

O elemento ilustrado na Figura 2.16 não apresenta


continuidade de giros à esquerda. Deste modo, o parâmetro nodal
de giro associado (v’) do nó i não deve ser considerado. Em vez
disto, deve-se adicionar a condição que garante a nulidade do

momento fletor no nó esquerdo do elemento, ou seja, .

69
Escreve-se a seguir essas condições de contorno locais do
elemento:
v ( x )  1 x 3   2 x 2   3 x   4 ... (2.81)
Ou, matricialmente:
v( x )  [ x 3 x2 x 1]{ } ... (2.82)

Com condições de contorno:

, , ,
Estas condições podem ser matricialmente escritas como:
vi   0 0 0 1  1 
v"    
  0 0 1 0   2 
v   3   ... (2.83)
 j  L L
2
L 1   3 
v j  6 L 2 
0 0   4 
 
Ou,
{ e }  [C ]{ }  { }  [C ]1{ e } ... (2.84)

Então o vetor v( x) pode ser escrito como:

v( x )  [ x 3 x2 x 1][C ]1{ e } ... (2.85)

Ao produto matricial [ x3 x2 x 1][C ]1 caracteriza as funções de


forma e pode ser simbolizado por [ ] . Desta maneira tem-se,

v( x)  [ ]{ e } .
Agora, tomando a segunda derivada da função deslocamento,
v( x)  [ ]{ e } , chamando [ ]   , é possível escrever a matriz de
rigidez fazendo o seguinte produto:
hi
[ K ]   [ B ]T EI [ B]dx ... (2.86)
0

Realizando esta operação obtém-se:

70
Matriz de rigidez de
elementos com rótula
no nó esquerdo.

... (2.87)
A posição referente à diagonal da segunda linha foi
substituída pelo valor zero. Isto foi feito porque a definição
tomada para chegar a esta matriz foi feita considerando segunda
derivada nula no nó esquerdo. Entretanto os demais elementos
que não possuírem rótulas não podem ter condições que dependam
de segunda derivada, por esta razão a influência da segunda
derivada deve ser retirada da matriz de rigidez dos elementos
com rótula.
De maneira inteiramente análoga, pode-se definir um
elemento que apresente rótula no nó direito, e encontrando-se:

Matriz de rigidez de
elementos com rótula
no nó direito.

... (2.88)

2.6.1 Consideração Dos Efeitos De Bases Elásticas Contínuas

As vigas que estão sobre base elástica sofrem um aumento


da energia potencial do sistema causado pela atuação do meio
elástico. Esta parcela de energia ao ser somada no funcional
resulta em uma adição entre a matriz de rigidez do elemento e a
matriz devida à base elástica. Quando existe a presença de
rótulas, que como já visto, introduzem uma descontinuidade de
giros das seções, deve-se fazer a mesma consideração feita no
item anterior. Demonstra-se a seguir a dedução da matriz devida
à base elástica quando a rótula apresenta-se no nó direito, a

71
Figura 2.14 ilustra o caso.

Figura 2.14 - Elemento sob base elástica com rotula direita

As condições de contorno serão:


v ( x )  1 x 3   2 x 2   3 x   4 ... (2.89)
Ou, matricialmente:
v( x )  [ x 3 x2 x 1]{ } ... (2.90)

Com condições de contorno:


v(0)  vi , v '(0)  v 'i , v(hi )  v j , v ''(hi )  0

Novamente estas condições podem ser escritas


matricialmente resultando no vetor de deslocamentos,
v( x)  [ ]{ e } .
Observa-se que no funcional de energia aparece a parcela
hi k
0 2
[v( x)]2 dx . Substituindo o valor da função deslocamento nesta

expressão, chega-se que a matriz devida à base elástica será:

Matriz de rigidez
de elementos com
rótula no nó
direito com base
elástica

... (2.91)
Note que aqui também deve ser retirado o efeito da segunda
derivada do nó direito. Por este motivo aparece a linha e a
coluna de zeros na matriz acima.
72
De modo inteiramente análogo pode-se obter a matriz devido
à base elástica considerando rótula à esquerda. Vale lembrar
que a matriz sem a presença de rótulas já é conhecida.

Matriz de rigidez
de elementos com
rótula no nó
esquerdo com base
elástica

... (2.92)

2.6.2 Vetor De Cargas Nodais Equivalentes

O vetor de cargas nodais equivalentes sofre a influência


da presença de rótulas. Isto se deve ao fato de o funcional de
energia associado depender da função deslocamento. Assim devem
existir três tipos de vetor sendo um para elementos sem rótulas
e dois para elementos com rótulas. O primeiro caso é conhecido,
logo se atenta para a dedução do segundo caso que contempla
rótula à esquerda do elemento e carregamento distribuído
variando linearmente. A Figura 2.15 ilustra o caso.

Figura 2.15 - Elemento finito sob carga linear e rótula à


esquerda

Inserindo-se as condições de contorno pertinentes tem-se:

v ( x )  1 x 3   2 x 2   3 x   4 ... (2.93)
Ou, matricialmente:
v( x )  [ x 3 x2 x 1]{ } ... (2.94)

73
Com condições de contorno:
v(0)  vi , v ''(0)  0 , v(hi )  v j , v '(hi )  v ' j

levando a:

v( x)  [ ( x)]{ e } ... (2.95)


O vetor de parâmetros nodais é encontrado pela seguinte
expressão:

hi q j  qi
{P}   (qi  x)[ ( x)]T dx ... (2.96)
0 L

Resultando em:

Vetor de cargas nodais


com rótula à esquerda

... (2.97)

Analogamente pode-se obter o vetor de cargas nodais


equivalentes quando a rótula do elemento é considerada à
direita.

Vetor de cargas nodais


com rótula à direita

... (2.98)

74
2.7 Consideração Da Instabilidade Elástica Em Elementos De Viga

A seguir apresenta-se um breve estudo do caso de barras


sujeitas a carga concentrada axial de compressão sob qualquer
vinculação, dentro da hipótese de pequenos giros e
deslocamentos.
A estabilidade da estrutura é a sua capacidade de suportar
determinado carregamento sem sofrer mudança abrupta de
configuração. Neste contexto, a flexão provocada pela atuação
de um carregamento de compressão axial provoca flambagem.
Isolando a parcela do funcional de energia relacionada ao
deslocamento transversal, é possível construir um elemento
finito capaz de aproximar a carga crítica de Euler.
Reconsidere o caso ilustrado na Figura 1.3 (seção 1.4),
onde foi apresentada uma coluna sujeita a um carregamento P e a
partir da qual deduziu-se a expressão (1.19) para o
encurtamento d da viga. Então se pode obter Δ por integração
ao longo de todo intervalo, resultando em um valor que é
essencialmente positivo:
L
 v2 
     dx ... (2.99)
0
2 

O funcional de energia deste problema é dado por:


L
EI
L
 v2 
 (v)   2 (v '') dx  P   2  dx
2
... (2.100)
0 0 

Pode-se agora definir um elemento finito de viga como


mostrado na Figura 2.16 considerando os deslocamentos e
rotações como parâmetros nodais. Nota-se aqui a imposição de
continuidade de deslocamento e primeira derivada, o que permite
que exista a segunda derivada do deslocamento no intervalo
considerado e, portanto, as integrais acima definidas possuem
solução.

75
Figura 2.16 - Elemento finito sob instabilidade

vap  [ ]{ e } ... (2.101)

vap  [ ]{ e } ... (2.102)

vapT  { e }T [ ]T ... (2.103)


Desta maneira pode-se ter:
L L L
0 v dx  0 v vdx  0 { } [ ]T [ ]{ e}dx
2 T e T
... (2.104)

L L
0 v2 dx  { e }T  [ ]T [ ]dx{ e} ... (2.105)
0

Pode-se definir a matriz de instabilidade da seguinte maneira


L
[MI ]   [ ]T [ ]dx ... (2.106)
0

L
0 v dx  { } [ MI ]{ e }
2 e T
... (2.107)

Assim o funcional de energia pode ser reescrito da seguinte


maneira:
1 1
  { e }T [ K ]{ e }  { e}T P[ MI ]{ e} ... (2.108)
2 2
1
  { e }T ([ K ]  P[MI ]){ e} ... (2.109)
2

Pelo método de Ritz, deve-se minimizar o funcional para obter a


condição de equilíbrio.
  0 ... (2.110)

1
{ e}T ([ K ]  P[MI ]){ e }  0 ... (2.111)
2

76
O termo é diferente de zero, logo para que a relação seja
nula deve-se ter:
([ K ]  P[ MI ]){ e }  0 ... (2.112)

Neste caso surge um problema de autovalor e autovetor


generalizado, onde o Pcritico será dado pelos autovalores, e a
deformada pelos autovetores (que para fins deste programa serão
desconsiderados).
Quanto à obtenção da matriz de instabilidade pode-se ter
três situações distintas, devido à presença ou não de rótulas.
Tem-se:
v ( x )  1 x 3   2 x 2   3 x   4 ... (2.113)
Ou, matricialmente:
v( x )  [ x 3 x2 x 1]{ } ... (2.114)

Com condições de contorno:


v(0)  vi , v '(0)  v 'i , v(hi )  v j , v '(hi )  v ' j

Estas condições de contorno podem ser representadas

matricialmente levando à obtenção de . Desta


maneira é possível obter a matriz de instabilidade da seguinte
maneira:

Matriz de
instabilidade de
elementos sem
rótulas

... (2.115)
Procedendo exatamente da mesma maneira feita anteriormente
ao considerar rótulas à esquerda ou à direita, pode-se
encontrar as seguintes matrizes de instabilidade:

77
Matriz de
instabilidade de
elementos com
rótula à esquerda

... (2.116)

Matriz de
instabilidade de
elementos com
rótula à direita

... (2.117)
Em síntese tem-se na tabela 2.1 as matrizes que contemplam
todos os casos deduzidos nesta seção do Anexo, bem como àquelas
conhecidas previamente.

Tabela 2.1 Matrizes de Rigidez e vetores de cargas nodais equivalentes


Com rótula Com rótula
Sem rótulas
esquerda direita
Elementar
Caso
Elástica
Contínua
Base
Instabilidade

78
cargas nodais
Equivalentes
Vetor de

Quanto ao uso destas matrizes, tem-se uma metodologia


bastante simples. Como todas são de mesma ordem, pode-se
sobrepô-las para obter a combinação física necessária. É
justamente essa a estratégia utilizada no programa a seguir
descrito.

79
3. ELEMENTO FINITO DE VIGA

3.1 Implementação Computacional

O presente programa (fluxograma da Figura 3.1) de


elementos finitos foi escrito em linguagem Fortran 90 e é capaz
de obter deslocamento, esforços solicitantes e reações de apoio
em vigas que tenham rótulas, cargas distribuídas variáveis,
cargas concentradas verticais e momentos concentrados, rótulas
e base elástica. O programa também consegue calcular a carga
que leva uma viga ao primeiro modo de flambagem, nesse caso uma
análise de instabilidade com vários tipos de vinculação.

INICICIO

INSTABILIDADE FLEXÃO
PRÉ-PROCESSAMENTO SIMPLES
ESCOLHA DO TIPO DE
ANÁLISE

PRÉ-PROCESSAMENTO PRÉ-PROCESSAMENTO
ENTRADA DE DADOS ENTRADA DE DADOS

PROCESSAMENTO PROCESSAMENTO
MONTA MATRIZ DE MONTA MATRIZ DE
RIGIDEZ DOS ELEMENTOS RIGIDEZ DOS ELEMENTOS

PROCESSAMENTO PROCESSAMENTO
MONTAGEM DA MATRIZ DE MONTA VETOR DE
INSTABILIDADE DOS CARREGAMENTOS DOS
ELEMENTOS ELEMENTOS

PROCESSAMENTO PROCESSAMENTO
MONTA MATRIZ DE MONTA MATRIZ DE
RIGIDEZ GLOBAL DA RIGIDEZ GLOBAL DA
ESTRUTURA ESTRUTURA

PROCESSAMENTO PROCESSAMENTO

80
MONTA MATRIZ DE MONTA VETOR DE
INSTABILIDADE GLOBAL CARREGAMENTO GLOBAL DA
DA ESTRUTURA ESTRUTURA

PROCESSAMENTO PROCESSAMENTO
IMPOSIÇÃO DAS IMPOSIÇÃO DAS
CONDIÇÕES DE CONTORNO CONDIÇÕES DE CONTORNO
NO SISTEMA NO SISTEMA

PROCESSAMENTO PROCESSAMENTO
CALCULO DOS CALCULA OS
AUTOVALORES DESLOCAMENTOS

PROCESSAMENTO PROCESSAMENTO
ENCONTRO DO MENOR CALCULA OS ESFORÇOS
AUTOVALOR VÁLIDO INTERNOS

PÓS-PROCESSAMENTO PROCESSAMENTO
SAÍDA DE DADOS CALCULA AS REAÇÕES DE
APOIO

PÓS-PROCESSAMENTO
SAÍDA DE DADOS

FIM

Figura 3.1 - Fluxograma geral

3.1.1 ROTINA PRINCIPAL

A seguir (Figura 3.2) mostra-se o código principal do


programa. Por meio dele as demais rotinas são chamadas e
executadas. Aqui ocorrem as etapas descritas no fluxograma
geral. Assim que o programa inicia, a função AD_01 é chamada
para avaliar que tipo de análise será feita. Assim o programa
pode seguir dois caminhos a depender da escolha do usuário, que
será o processamento feito. Logo após, realiza-se a

81
apresentação dos resultados.

1 PROGRAM Programa_Vigas
2 USE MODULO_1
3 IMPLICIT NONE
4 !-----------------------------
5 CALL AD_01
6
7 IF (TIPOANALISE .EQ. '1') THEN !CASO DE FLEXÃO EM VIGAS
8 CALL SUBROTINA_10
9
10 DO I=1,NELEM

82
11 CALL SUBROTINA_11
12 SELECT CASE (TIPOELEM(I))
13 CASE (1)
14 CALL SUBROTINA_12
15 CALL SUBROTINA_13
16 CASE (2)
17 CALL AD_02
18 CALL AD_03
19 CASE (3)
20 CALL AD_04
21 CALL AD_05
22 END SELECT
23 CALL SUBROTINA_14
24 CALL SUBROTINA_15
25
26 END DO
27 KGLOBALC=KGLOBAL
28 VGLOBALC=VGLOBAL
29
30 DO K=1,NNO
31 CALL SUBROTINA_16
32 CALL SUBROTINA_17
33 ENDDO
34
35 CALL SUBROTINA_18
36 CALL SUBROTINA_19
37 CALL SUBROTINA_20
38 CALL SUBROTINA_21
39 DO K=1,NNO
40 CALL SUBROTINA_22
41 ENDDO
42
43 CALL SUBROTINA_23
44
45 ENDIF ! FIM DO NUCLEO PARA FLEXÃO DE VIGAS
46
47 IF (TIPOANALISE .EQ. '2') THEN !CASO DE INSTABILIDADE
48 CALL AD_06
49 DO I=1,NELEM
50 CALL SUBROTINA_11
51 SELECT CASE (TIPOELEM(I))
52 CASE (1)
53 CALL SUBROTINA_12
54 CALL AD_07
55 CASE (2)
56 CALL AD_01
57 CALL AD_08
58 CASE (3)
59 CALL AD_04
60 CALL AD_09
61 END SELECT
62 CALL SUBROTINA_14
63 CALL AD_10

83
64 END DO
65 DO K=1,NNO
66 CALL SUBROTINA_17
67 ENDDO
68 CALL AD_11
69 CALL AD_12
70 CALL AD_13
71
72 ENDIF !FIM DO NUCLEO PARA INSTABILIDADE
73
74 END PROGRAM Programa_Viga

Figura 3.2 - Rotina principal

A Sub-rotina AD_01 é responsável por perguntar ao usuário que


tipo de análise deve ser realizada. Existem apenas duas
possibilidades:
1- Análise de flexão simples, que necessitará de um arquivo
de entrada de dados de tipo 01.
2- Análise de instabilidade, que fornecerá o valor da carga
crítica de flambagem, sendo necessário um arquivo de
entrada de dados de tipo 02.
Observe que os arquivos de entrada de dados são diferentes
quanto à sua forma e conteúdo. Caso estes arquivos sejam
confundidos o programa indicará um erro.

3.1.2 Módulo_1 – Declaração das variáveis

As variáveis utilizadas pelo programa são declaradas no


módulo 1 mostrado pela Figura 3.3. Este módulo é utilizado em
todas as sub-rotinas do programa.

84
MODULE MODULO_1

USE MSIMSL
IMPLICIT NONE
INTEGER::NNO,NELEM,I,J,K,L,M,NI,NF,X
INTEGER,DIMENSION(:),ALLOCATABLE::NOI,NOF,RESTX,RESTY,RESTZ,TIPOELEM
REAL*8,DIMENSION(:),ALLOCATABLE::COODX,COODY,VAPLI,MAPLI,KMV,KMR
REAL*8,DIMENSION(:),ALLOCATABLE::ELAST,IN,VGLOBAL,R,VGLOBALC,DESL
REAL*8,DIMENSION(:),ALLOCATABLE::COMP,RESTGLOBAL,QYI,QYF,VAPLELEM
REAL*8,DIMENSION(:),ALLOCATABLE::REACAO,KMB,FMV,FMR,FATORP,AUTOVALOR
REAL*8,DIMENSION(:,:),ALLOCATABLE::KGLOBAL,VFORCA,RES,KGLOBALC
REAL*8,DIMENSION(:,:),ALLOCATABLE::UEGLOBAL,EF,AUX,MIGLOBAL
REAL*8,DIMENSION(:,:,:),ALLOCATABLE::KELEM,MIELEM
LOGICAL::EXISTE_ARQUIVO
CHARACTER*30::ARQUIVO,TIPOANALISE,ARQUIVO_1

END MODULE MODULO_1

Figura 3.3 - Módulo de compartilhamento de variáveis

Em especial tem-se, TIPOELEM (vetor que guarda o tipo de


elemento quanto à presença de rótulas), FATORP (vetor que
guarda o fator de influência para cada elemento, para o cálculo
da instabilidade), AUTOVALOR (vetor que guarda os autovalores
da análise), MIGLOBAL (matriz de instabilidade global), MIELEM
(matriz de instabilidade local), ARQUIVO (variável que guarda o
nome do arquivo de entrada tipo 1), TIPOANALISE (variável que
guarda o tipo de análise a ser realizada), ARAQUIVO_1 (variável
que guarda o nome do arquivo de entrada tipo 2).

3.1.3. Sub-rotina 10 – Leitura do Arquivo de entrada de dados e


alocação de memória

A sub-rotina 10 mostrada na Figura 3.4 faz a leitura do


arquivo de entrada de dados e aloca a memória para realização
das operações.

85
1000 SUBROUTINE SUBROTINA_10
1001 USE MODULO_1
1002 IMPLICIT NONE

1003 WRITE(*,*)'PLEASE, INFORM THE INPUT FILE NAME'


1004 READ(*,*)ARQUIVO
1005 INQUIRE(FILE=ARQUIVO,EXIST=EXISTE_ARQUIVO)
1006 IF (EXISTE_ARQUIVO) THEN
1007 OPEN(UNIT=1,FILE=ARQUIVO,STATUS='UNKNOWN')
1008 READ(1,*)
1009 READ(1,*)
1010 READ(1,*)
1011 READ(1,*)
1012 READ(1,*)
1013 READ(1,*)
1014 READ(1,*)
1015 READ(1,*)NNO,NELEM

1016 ALLOCATE(COODX(NNO)); COODX=0.D0


1017 ALLOCATE(COODY(NNO)); COODY=0.D0
1018 ALLOCATE(RESTX(NNO)); RESTX=0.D0
1019 ALLOCATE(RESTY(NNO)); RESTY=0.D0
1020 ALLOCATE(RESTZ(NNO)); RESTZ=0.D0
1021 ALLOCATE(VAPLI(NNO));VAPLI=0.D0
1022 ALLOCATE(MAPLI(NNO));MAPLI=0.D0
1023 ALLOCATE(KMV(NNO));KMV=0.D0
1024 ALLOCATE(KMR(NNO));KMR=0.D0
1025 ALLOCATE(NOI(NELEM));NOI=0.D0
1026 ALLOCATE(NOF(NELEM));NOF=0.D0
1027 ALLOCATE(ELAST(NELEM));ELAST=0.D0
1028 ALLOCATE(IN(NELEM));IN=0.D0
1029 ALLOCATE(QYI(NELEM));QYI=0.D0
1030 ALLOCATE(QYF(NELEM));QYF=0.D0
1031 ALLOCATE(KMB(NELEM));KMB=0.D0
1032 ALLOCATE(TIPOELEM(NELEM));TIPOELEM=0
1033 READ(1,*)
1034 READ(1,*)
1035 READ(1,*)
1036 READ(1,*)
1037 READ(1,*)
1038 READ(1,*)
1039 READ(1,*)
1040 READ(1,*)
1041 READ(1,*)

1042 DO I=1,NNO
1043 READ(1,*)K,COODX(K),COODY(K),RESTX(K),RESTY(K),RESTZ(K),
1044 *VAPLI(K),MAPLI(K),KMV(K),KMR(K)
1045 END DO
1046 READ(1,*)
1047 READ(1,*)
1048 READ(1,*)
1049 READ(1,*)
1050 READ(1,*)
1051 READ(1,*)
1052 READ(1,*)
1053 READ(1,*)

86
1054 READ(1,*)

1055 DO I=1,NELEM
1056 READ(1,*)M,NOI(M),NOF(M),ELAST(M),IN(M),QYI(M),QYF(M),KMB(M),
1057 *TIPOELEM(M)
1058 ENDDO
1059 ENDIF

1060 CLOSE(1)
1061 ALLOCATE(COMP(NELEM));COMP=0.0D0
1062 ALLOCATE(KELEM(NELEM,4,4));KELEM=0.D0
1063 ALLOCATE(VFORCA(NELEM,4));VFORCA=0.D0
1064 ALLOCATE(KGLOBAL(2*NNO,2*NNO));KGLOBAL=0.D0
1065 ALLOCATE(VGLOBAL(2*NNO));VGLOBAL=0.D0
1066 ALLOCATE(VAPLELEM(2*NNO));VAPLELEM=0.D0
1067 ALLOCATE(DESL(2*NNO));DESL=0.D0
1068 ALLOCATE(RES(NELEM,4));RES=0.D0
1069 ALLOCATE(RESTGLOBAL(2*NNO));RESTGLOBAL=0.D0
1070 ALLOCATE(UEGLOBAL(NELEM,4));UEGLOBAL=0.D0
1071 ALLOCATE(AUX(NELEM,4));AUX=0.D0
1072 ALLOCATE(EF(NELEM,4));EF=0.D0
1073 ALLOCATE(R(2*NNO));R=0.D0
1074 ALLOCATE(REACAO(2*NNO)); REACAO=0.D0
1075 ALLOCATE(FMV(NNO));FMV=0.D0
1076 ALLOCATE(FMR(NNO));FMR=0.D0
1077 ALLOCATE(KGLOBALC(2*NNO,2*NNO));KGLOBALC=0.D0
1078 ALLOCATE(VGLOBALC(2*NNO));VGLOBALC=0.D0

1079 END SUBROUTINE SUBROTINA_10

Figura 3.4 - Sub-trotina_10

1000 – Início da sub-rotina 10.


1001 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1002 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1003 – Solicita o nome do arquivo de entrada.
1004 – Leitura do nome do arquivo de entrada de dados inserido.
1005 – Teste lógico para verificação da existência do arquivo.
1007 – Abre o arquivo de entrada de dados se o teste lógico da
for verdadeiro.
1008-1014 – Leitura das linhas em branco no arquivo de entrada
de dados.

87
1015 – Leitura do número de nós da estrutura (NNO) e do número
de elementos (NELEM).
1016-1032 – Comando que aloca memória para as variáveis que
contêm os dados do problema. Também se atribui o valor zero a
todas as variáveis.
1033-1041 – Leitura das linhas em branco no arquivo de entrada
de dados.
1042 – Início do laço do número de nós.
1043 – Comando que faz a leitura do número do nó (K),
coordenada X do nó K (COORDX), coordenada Y do nó K (COORDY),
restrição X do nó K (RESTX), restrição Y do nó K (RESTY),
restrição Z do nó K (RESTZ), força aplicada na direção Y do nó
K (VAPLI), momento aplicado no nó K (COORDX), rigidez da mola
de translação no nó K (KMV) e rigidez de da mola de flexão no
nó K (KMR).
1045 – Fim do laço do número de nós.
1046-1054 – Leitura das linhas em branco no arquivo de entrada
de dados.
1055 – Início do dó do número de elementos.
1056 – Comando que faz a leitura do número do elemento (M), nó
inicial do elemento M (NOI), nó final do elemento M (NOF),
módulo de elasticidade do elemento M (ELAST), momento de
inércia do elemento M (IN), valor da força distribuída no nó
inicial do elemento M (QYI), valor da força distribuída no nó
final do elemento M (QYF), rigidez da base elástica no elemento
M (KMB), Tipo do elemento M (TIPOELEM).
1058 – Fim do dó do número de elementos.
1059 – Fim do comando iniciado na linha 1006.
1060 – Comando que fecha do arquivo de entrada de dados.
1061-1078 – Aloca e atribui o valor zero às variáveis
utilizadas no processamento e pós-processamento do programa.
COMP (comprimento dos elementos), KELEM (matriz de rigidez dos
elementos), VFORCA (vetor de forças dos elementos), KGLOBAL
(matriz de rigidez global da estrutura), VGLOBAL (vetor de
forças global da estrutura), VAPLELEM (vetor de forças
88
aplicadas aos nós da estrutura), DESL (vetor de deslocamentos
da estrutura), RES (variável auxiliar que armazena as condições
de contorno por elemento utilizada para montar a variável
RESTGLOBAL), RESTGLOBAL (vetor global de restrições da
estrutura), UEGLOBAL (variável que guarda os deslocamentos
globais da estrutura por elemento), AUX (variável auxiliar
utilizada no cálculo dos esforços internos da estrutura), EF
(vetor de esforços da estrutura), R (variável auxiliar
utilizada para calcular as reações de apoio da estrutura),
REACAO (vetor global de reações de apoio da estrutura), FMV
(vetor de forças das molas de translação), FMR (vetor de forças
das molas de rotação), KGLOBALC (matriz de rigidez global sem
condições de contorno para cálculo das reações de apoio da
estrutura), VGLOBALC (vetor de forças global sem condições de
contorno para cálculo das reações de apoio da estrutura).
1079 – Fim da sub-rotina 10.

3.1.4 Sub-rotina 11 – Cálculo do comprimento dos elementos


finitos

A sub-rotina 11 mostrada na Figura 3.5 calcula o


comprimento dos elementos finitos.

Figura 3.5 – Sub-rotina 11.

1100 – Início da sub-rotina 11.


1101 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.

89
1102 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1103 – A variável NI recebe o nó inicial do elemento I.
1104 – A variável NF recebe o nó final do elemento I.
1105 – Calcula o comprimento do elemento finito.
1106 – Fim da sub-rotina 11.

3.1.5 Sub-rotina 12 – Montagem da matriz de rigidez dos


elementos com ou sem base elástica

A sub-rotina 12 mostrada na Figura 3.6 monta a matriz de


rigidez dos elementos com ou sem base elástica.

90
Figura 3.6 – Sub-rotina 12.

1200 – Início da sub-rotina 12.


1201 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1202 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1203-1218 – Monta a matriz de rigidez dos elementos sem
contribuição da rigidez da base elástica de acordo com a Eq.
1.12.
1219 – Verifica se há valor de rigidez para base elástica, ou
seja, se a rigidez da base elástica é diferente de zero. Caso
exista base elástica no elemento, o programa executará as
linhas 1220 a 1235 que calculam as contribuições dos termos da
matriz de rigidez da base elástica para a matriz de rigidez do
elemento de acordo com a Eq. 1.13. Caso não existe base
elástica no problema analisado o programa não executará este
comando e a matriz de rigidez do elemento será dada pelas
linhas 1203-1218.
1236 – Fim do comando lógico iniciado na linha 1219.
1237 – Fim da sub-rotina 12.

3.1.6 Sub-rotina 13 – Montagem do vetor de forças dos elementos

A sub-rotina 13 mostrada na Figura 3.7 monta o vetor de


forças dos elementos.

91
Figura 3.7 – Sub-rotina 13.

1300 – Início da sub-rotina 13.


1301 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1302 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1303-1306 – Calcula as componentes do vetor de forças do
elemento de acordo com a Eq. 1.15.
1307 – Fim da sub-rotina 13.

3.1.7 Sub-rotina 14 – Montagem da matriz de rigidez global

A sub-rotina 14 mostrada na Figura 3.8 faz a incidência da


contribuição das matrizes de rigidez dos elementos na matriz
global da estrutura.

92
Figura 3.8 – Sub-rotina 14.

1400 – Início da sub-rotina 14.


1401 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1402 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1403 – A variável NI recebe o nó inicial do elemento I.
1404 – A variável NF recebe o nó final do elemento I.
1405-1420 – Faz a incidência da contribuição das matrizes de
rigidez dos elementos na matriz de rigidez global da estrutura
de acordo com a Eq. 1.17.
1421 – Fim da sub-rotina 14.

3.1.8 Sub-rotina 15 – Montagem do vetor de forças global

A sub-rotina 15 mostrada na Figura 3.9 faz a incidência da


contribuição dos vetores de forças dos elementos no vetor de
forças global da estrutura.

Figura 3.9 – Sub-rotina 15.

1500 – Início da sub-rotina 15.


1501 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.

93
1502 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1503 – A variável NI recebe o nó inicial do elemento I.
1504 – A variável NF recebe o nó final do elemento I.
1505-1508 - Faz a incidência da contribuição dos vetores de
forças dos elementos no vetor de forças global da estrutura de
acordo com a Eq. 1.17.
1509 – Fim da sub-rotina 15.

3.1.9 Sub-rotina 16 – Contribuição das forças aplicadas nos nós


no vetor de forças global

A sub-rotina 16 mostrada na Figura 3.10 introduz a


contribuição das forças aplicadas diretamente sobre os nós no
vetor de forças global da estrutura.

Figura 3.10 – Sub-rotina 16.

1600 – Início da sub-rotina 16.


1601 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1602 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1603 – Verifica se há força vertical aplicada no nó K. Caso
exista, a linha 1064 faz a incidência da contribuição desta
força no vetor de forças global. Caso não existe no programa
94
não executa este comando.
1605 – Fim do comando lógico iniciado na linha 1603.
1606 – Verifica se há momento aplicado no nó K. Caso exista, a
linha 1067 faz a incidência da contribuição desta força no
vetor de forças global. Caso não existe no programa não executa
este comando.
1608 – Fim do comando lógico iniciado na linha 1606.
1609 – Fim da sub-rotina 16.

3.1.10 Sub-rotina 17 – Contribuição dos vínculos elásticos na


matriz de rigidez global

A contribuição dos vínculos elásticas na matriz de rigidez


global é feita pela sub-rotina 17 mostrada na Figura 3.11.

Figura 3.11 – Sub-rotina 17.

1700 – Início da sub-rotina 17.


1701 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1702 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1703 – Verifica se há mola de translação nó K. Caso exista, a
linha 1704 faz a incidência da contribuição da rigidez desta
mola na matriz de rigidez global na posição correspondente.
Caso não existe no programa não executa este comando.

95
1705 – Fim do teste lógico iniciado na linha 1703.
1706 - Verifica se há mola de rotação no nó K. Caso exista, a
linha 1707 faz a incidência da contribuição da rigidez desta
mola na matriz de rigidez global da estrutura na posição
correspondente. Caso não existe no programa não executa este
comando.
1708 – Fim do teste lógico iniciado na linha 1706.
1709 – Fim da sub-rotina 17.

3.1.11 Sub-rotina 18 – Imposição das condições de contorno

A sub-rotina 10 mostrada na Figura 3.12 é a responsável


pela imposição das condições de contorno da estrutura no
sistema global.

Figura 3.12 – Sub-rotina 18.

96
1800 – Início da sub-rotina 18.
1801 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1802 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1803-1810 – Estes linhas agrupam as restrições de apoio que
foram armazenadas por tipo e por nó nos elementos.
1811-1818 – Estas linhas agrupam as restrições dos elementos em
um vetor global de restrições da estrutura.
1819 – Início do laço de duas vezes o número de nós da
estrutura que corresponde ao tamanho do sistema de equações.
1820 – Verifica se o nó possui restrição devido aos vínculos de
apoio.
1821 – Se o teste lógico realizado na linha 1820 for verdadeiro
inicia-se o laço que atribui o valor zero para a linha e para a
coluna da matriz de rigidez global nas linhas 1822 e 1823,
respectivamente.
1824 – Fim do laço iniciado na linha 1821.
1825 – Se o teste lógico realizado na linha 1820 for verdadeiro
atribui o valor 1 na diagonal principal da matriz de rigidez
global.
1826 - Se o teste lógico realizado na linha 1820 for verdadeiro
atribui o valor zero na posição correspondente do vetor de
forças global.
1827 – Fim do teste lógico iniciado na linha 1820.
1828 – Fim do laço iniciado na linha 1819.
1829 – Fim da sub-rotina 18.

3.1.12 Sub-rotina 19 – Resolução do Sistema de equações

A sub-rotina 19 mostrada na Figura 3.13 resolve o sistema


de equações da estrutura.

97
Figura 3.13 – Sub-rotina 19.

1900 – Início da sub-rotina 19.


1901 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
1902 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
1903 – A variável X armazena do tamanho do sistema de equações.
1904 – Comando que chama a função para inversão de sistema de
equações da biblioteca do Fortran.
1905 – Fim da sub-rotina 19.

3.1.13 Sub-rotina 20 – Cálculo dos esforços internos

A sub-rotina 20 mostrada na Figura 3.14 calcula os


esforços internos da estrutura.

98
Figura 3.14 – Sub-rotina 20.

2000 – Início da sub-rotina 20.


2001 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
2002 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
2003-2010 – Este laço associa o vetor de deslocamentos global
da estrutura aos elementos
2011-2020 – Estas linhas calculam os esforços internos na
estrutura de acordo com a Eq. 1.19.
2021 – Fim da sub-rotina 20.

3.1.14 Sub-rotina 21 – Cálculo das reações de apoio

A sub-rotina 21 mostrada na Figura 3.15 calcula as reações


de apoio da estrutura.

99
Figura 3.15 – Sub-rotina 21.

2100 – Início da sub-rotina 21.


2101 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
2102 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
2103 – A variável R recebe o resultado da operação dada na Eq.
1.20.
2104 – Início do laço do número de nós.
2105 – Verifica se há restrição no nó I.
2106 – Se o teste lógico realizado na linha 2105 for verdadeiro
a variável REACAO na direção (I) recebe o valor correspondente
calculado na linha 2103.
2107 – Fim do teste lógico iniciado na linha 2105.
2108 – Fim do laço do número de nós.
2109 – Fim da sub-rotina 21.

3.1.15 Sub-rotina 22 – Cálculo das forças nas molas

A sub-rotina 22 mostrada na Figura 3.16 calcula as forças


nos vínculos elásticos.

100
Figura 3.16 – Sub-rotina 22.

2200 – Início da sub-rotina 22.


2201 – Comando para que a rotina utilize o módulo onde estão
declaradas as variáveis.
2202 – Comando utilizado para que as variáveis possam ser
declaradas explicitamente no programa.
2203 – Verifica se há mola de translação no nó K.
2204 – Se o teste lógico realizado na linha 2203 for verdadeiro
a força na mola, multiplicando o valor do deslocamento no nó na
direção correspondente pelo valor da constante da mola.
2205 – Fim do teste lógico iniciado na linha 2203.
2206 – Verifica se há mola de rotação no nó K.
2207 - Se o teste lógico realizado na linha 2206 for verdadeiro
a força na mola multiplicando o valor do deslocamento no nó na
direção correspondente pelo valor da constante da mola.
2208 – Fim do teste lógico iniciado na linha 2206.
2209 – Fim da sub-rotina 22.

3.1.16 Sub-rotina 23 – Impressão dos resultados

A sub-rotina para impressão de resultados foi organizada


de forma que os resultados obtidos bem como os dados iniciais
do problema possam ser visualizados após a execução do
programa. Observar que na tabela de impressão dos esforços

101
internos foi acrescentado um sinal negativo nos esforços
relacionados às posições -EF(I,3) e -EF(I,4) para
compatibilização com a Teoria de Vigas.
A sub-rotina pode ser visualizada na Figura 3.17 abaixo.

102
Figura 3.17 – Sub-rotina 23.

103
3.1.17 SUBROTINA AD_01

A Sub-rotina AD_01 (Figura 3.18) é responsável por


perguntar ao usuário que tipo de análise deseja fazer. Existem
apenas duas possibilidades:
3- Análise de flexão simples, que necessitará de um arquivo
de entrada de dados de tipo 01.
4- Análise de instabilidade, que fornecerá o valor da carga
crítica de flambagem, sendo necessário um arquivo de
entrada de dados de tipo 02.
Observe que os arquivos de entrada de dados são diferentes
quanto à sua forma e conteúdo. Caso estes arquivos sejam
confundidos o programa indicará um erro.

Descrevendo o código (AD_01):

1 – início da subrotina AD_01


3 - utilizando o módulo de variáveis globais
4 - comando para declaração explícita
6 a 17 - linhas de cabeçalho que são escritas em tela
18 - leitura da variável que guarda o tipo de análise a ser
feita
19 a 22- condicional para saber se a opção digitada é válida
24 – fim da subrotina AD_01

104
1 SUBROUTINE AD_01
2
3 USE MODULO_1
4 IMPLICIT NONE
5
6 WRITE(*,*) 'UNIVERSITY OF SAO PAULO - USP'
7 WRITE(*,*) 'ENGINEERING SCHOOL OF SAO CARLOS - EESC'
8 WRITE(*,*) 'DEPARTMENT OF STRUCTURAL ENGINEERING - SET'
9 WRITE(*,*) 'APPLICATION OF FINITE ELEMENT METHOD - SET 5824'
10 WRITE(*,*) 'PROFESSOR: JOAO BATISTA PAIVA'
11 WRITE(*,*) 'GRADUATE: >> DATE'
12 WRITE(*,*)
13 WRITE(*,*)
14
15 WRITE(*,*)'PLEASE, INFORM WHICH KIND OF PROBLEM YOU WANT ANALYSE'
16 WRITE(*,*)' TYPE: 1 ->BENDING OF BEAMS'
17 WRITE(*,*)' TYPE: 2 ->INSTABILITY PROBLEMS'
18 READ(*,*)TIPOANALISE
19 IF ((TIPOANALISE .NE. '1') .AND. (TIPOANALISE .NE. '2')) THEN
20 WRITE(*,*)'THERE IS NO THIS OPTION'
21 STOP
22 ENDIF
23
24 END SUBROUTINE AD_01
Figura 3.18 – Sub-rotina AD_01.

3.1.18 SUBROTINA AD_02


A sub-rotina AD_02 (Figura 3.19) armazena as matrizes de
rigidez para elementos finitos que possuem rótula à esquerda
com ou sem base elástica (ver tabela 2.1).
Descrevendo o código (AD_02):
1 – início da subrotina AD_02
2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
5 a 23 – montagem dos elementos da matriz de rigidez local dos
elementos
25 a 44 – adicionando os efeitos da base elástica (caso ela
exista)
46 – fim da subrotina AD_02

105
1 SUBROUTINE AD_02 !MATRIZES DE RIGIDEZ LOCAIS PARA ROTULA
2 USE MODULO_1 !INSERIDAS À ESQUERDA DO ELEMENTO
3 IMPLICIT NONE
4
5 KELEM(I,1,1)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
6 KELEM(I,1,2)=0.D0
7 KELEM(I,1,3)=((-3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
8 KELEM(I,1,4)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**2))
9
10 KELEM(I,2,1)=KELEM(I,1,2)
11 KELEM(I,2,2)=0.D0
12 KELEM(I,2,3)=0.D0
13 KELEM(I,2,4)=0.D0
14
15 KELEM(I,3,1)=KELEM(I,1,3)
16 KELEM(I,3,2)=KELEM(I,2,3)
17 KELEM(I,3,3)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
18 KELEM(I,3,4)=((-3.D0*ELAST(I)*IN(I))/((COMP(I))**2))
19
20 KELEM(I,4,1)=KELEM(I,1,4)
21 KELEM(I,4,2)=KELEM(I,2,4)
22 KELEM(I,4,3)=KELEM(I,3,4)
23 KELEM(I,4,4)=((3.D0*ELAST(I)*IN(I))/(COMP(I)))
24
25 IF(KMB(I)/=0.D0)THEN
26 KELEM(I,1,1)=KELEM(I,1,1)+((33.D0*KMB(I)*COMP(I))/140.D0)
27 KELEM(I,1,2)=KELEM(I,1,2)+0.D0
28 KELEM(I,1,3)=KELEM(I,1,3)+((39.D0*KMB(I)*COMP(I))/280.D0)
29 KELEM(I,1,4)=KELEM(I,1,4)-((11.D0*KMB(I)*(COMP(I)**2))/280.D0)
30
31 KELEM(I,2,1)=KELEM(I,2,1)+0.D0
32 KELEM(I,2,2)=KELEM(I,2,2)+0.D0
33 KELEM(I,2,3)=KELEM(I,2,3)+0.D0
34 KELEM(I,2,4)=KELEM(I,2,4)-0.D0
35
36 KELEM(I,3,1)=KELEM(I,3,1)+((39.D0*KMB(I)*COMP(I))/280.D0)
37 KELEM(I,3,2)=KELEM(I,3,2)+0.D0
38 KELEM(I,3,3)=KELEM(I,3,3)+((17.D0*KMB(I)*COMP(I))/35.D0)
39 KELEM(I,3,4)=KELEM(I,3,4)-((3.D0*KMB(I)*(COMP(I)**2))/35.D0)
40 KELEM(I,4,1)=KELEM(I,4,1)-((11.D0*KMB(I)*(COMP(I)**2))/280.D0)
41 KELEM(I,4,2)=KELEM(I,4,2)-0.D0
42 KELEM(I,4,3)=KELEM(I,4,3)-((3.D0*KMB(I)*(COMP(I)**2))/35.D0)
43 KELEM(I,4,4)=KELEM(I,4,4)+((2.D0*KMB(I)*(COMP(I)**3))/105.D0)
44 END IF
45
46 END SUBROUTINE AD_02

Figura 3.19 – Sub-rotina AD_02.

106
3.1.19 SUBROTINA AD_03

A sub-rotina AD_03 (Figura 3.20) armazena o vetor de


cargas nodais equivalentes para elementos finitos que possuem
rótula à esquerda (ver tabela 2.1).

Descrevendo o código (AD_03):

1 – início da subrotina AD_03


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
5 a 8 – elementos do vetor de forças nodais equivalentes
9 – fim da subrotina AD_03

1 SUBROUTINE AD_03 !VETOR DE FORÇAS NODAIS EQ. ROTULA ESQUERDA!


2 USE MODULO_1
3 IMPLICIT NONE
4
5 VFORCA(I,1)=((11.D0/40.D0)*COMP(I)*QYI(I)+(1.D0/10.D0)*COMP(I)*QYF(I))
6 VFORCA(I,2)=0.D0
7 VFORCA(I,3)=((9.D0/40.D0)*COMP(I)*QYI(I))+((2.D0/15.D0)*COMP(I)*QYF(I))
8 VFORCA(I,4)=((-7.D0/120.D0)*(COMP(I))**2*QYI(I))-((1.D0/15.D0)* (COMP(I))**2*QYF(I))
9 ENDSUBROUTINE AD_03
Figura 3.20 – Sub-rotina AD_03.

3.1.20 SUBROTINA AD_04

A sub-rotina AD_04 (Figura 3.21) armazena as matrizes de


rigidez para elementos finitos que possuem rótula à direita com
ou sem base elástica (ver tabela 2.1).

Descrevendo o código (AD_04):

1 – início da subrotina AD_04


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
5 a 23 – componentes da matriz de rigidez local do elemento
107
26 a 43 – parcelas adicionais devido a base elástica (caso seja
necessário)
46 – fim da subrotina AD_04
1 SUBROUTINE AD_04 !MATRIZES DE RIGIDEZ LOCAIS PARA ROTULA
2 USE MODULO_1 !INSERIDAS À DIREITA DO ELEMENTO
3 IMPLICIT NONE
4
5 KELEM(I,1,1)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
6 KELEM(I,1,2)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**2))
7 KELEM(I,1,3)=((-3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
8 KELEM(I,1,4)=0.D0
9
10 KELEM(I,2,1)=KELEM(I,1,2)
11 KELEM(I,2,2)=((3.D0*ELAST(I)*IN(I))/(COMP(I)))
12 KELEM(I,2,3)=((-3.D0*ELAST(I)*IN(I))/((COMP(I))**2))
13 KELEM(I,2,4)=0.D0
14
15 KELEM(I,3,1)=KELEM(I,1,3)
16 KELEM(I,3,2)=KELEM(I,2,3)
17 KELEM(I,3,3)=((3.D0*ELAST(I)*IN(I))/((COMP(I))**3))
18 KELEM(I,3,4)=0.D0
19
20 KELEM(I,4,1)=KELEM(I,1,4)
21 KELEM(I,4,2)=KELEM(I,2,4)
22 KELEM(I,4,3)=KELEM(I,3,4)
23 KELEM(I,4,4)=0.D0
24
25 IF(KMB(I)/=0.D0)THEN
26 KELEM(I,1,1)=KELEM(I,1,1)+((17.D0*KMB(I)*COMP(I))/35.D0)
27 KELEM(I,1,2)=KELEM(I,1,2)+((3.D0*KMB(I)*(COMP(I)**2))/35.D0)
28 KELEM(I,1,3)=KELEM(I,1,3)+((39.D0*KMB(I)*COMP(I))/280.D0)
29 KELEM(I,1,4)=KELEM(I,1,4)-0.D0
30
31 KELEM(I,2,1)=KELEM(I,2,1)+((3.D0*KMB(I)*(COMP(I)**2))/35.D0)
32 KELEM(I,2,2)=KELEM(I,2,2)+((2.D0*KMB(I)*(COMP(I)**3))/105.D0)
33 KELEM(I,2,3)=KELEM(I,2,3)+((11.D0*KMB(I)*(COMP(I)**2))/280.D0)
34 KELEM(I,2,4)=KELEM(I,2,4)-0.D0
35
36 KELEM(I,3,1)=KELEM(I,3,1)+((39.D0*KMB(I)*COMP(I))/280.D0)
37 KELEM(I,3,2)=KELEM(I,3,2)+((11.D0*KMB(I)*(COMP(I)**2))/280.D0)
38 KELEM(I,3,3)=KELEM(I,3,3)+((33.D0*KMB(I)*COMP(I))/140.D0)
39 KELEM(I,3,4)=KELEM(I,3,4)-0.D0
40 KELEM(I,4,1)=KELEM(I,4,1)-0.D0
41 KELEM(I,4,2)=KELEM(I,4,2)-0.D0
42 KELEM(I,4,3)=KELEM(I,4,3)-0.D0
43 KELEM(I,4,4)=KELEM(I,4,4)+0.D0
44 END IF
45
46 END SUBROUTINE AD_04

Figura 3.21 – Sub-rotina AD_04.

108
3.1.21 SUBROTINA AD_05

A subrotina AD_05 (Figura 3.22) armazena o vetor de cargas


nodais equivalentes para elementos finitos que possuem rótula à
direita (ver tabela 2.1).
Descrevendo o código (AD_05):

1 – início da subrotina AD_05


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
5 a 9 – componentes do vetor de cargas nodais equivalentes
10 – fim da subrotina AD_05

1 SUBROUTINE AD_05 !VETOR DE FORÇAS NODAIS EQ. ROTULA DIREITA!


2 USE MODULO_1
3 IMPLICIT NONE
4
5 VFORCA(I,1)=((2.D0/5.D0)*COMP(I)*QYI(I)+(9.D0/40.D0)*COMP(I)*QYF(I))
6 VFORCA(I,2)=((1.D0/15.D0)*(COMP(I))**2*QYI(I))+((7.D0/120.D0)*
7 *(COMP(I))**2*QYF(I))
8 VFORCA(I,3)=((1.D0/10.D0)*COMP(I)*QYI(I)+(11.D0/40.D0)*COMP(I)*QYF(I))
9 VFORCA(I,4)=0.D0
10 ENDSUBROUTINE AD_05
Figura 3.22 – Sub-rotina AD_05.

3.1.22 SUBROTINA AD_06

A sub-rotina AD_06 (Figura 3.23) foi criada para ler e


interpretar o segundo tipo de entrada de dados. Esta rotina faz
leituras e alocações dos vetores e matrizes pertinentes à
análise de instabilidade. Esta solução foi adotada para evitar
desperdício de memória dinâmica já que a sub-rotina 10 (se
utilizada para este fim) resultaria alocações desnecessárias.

109
1 SUBROUTINE AD_06
2 USE MODULO_1
3 IMPLICIT NONE
4 WRITE(*,*)
5 WRITE(*,*)'PLEASE, INFORM THE INPUT FILE NAME'
6 READ(*,*)ARQUIVO_1
7 INQUIRE(FILE=ARQUIVO_1,EXIST=EXISTE_ARQUIVO)
8 IF (EXISTE_ARQUIVO) THEN
9 OPEN(UNIT=2,FILE=ARQUIVO_1,STATUS='UNKNOWN')
10 READ(2,*)
11 READ(2,*)
12 READ(2,*)
13 READ(2,*)
14 READ(2,*)
15 READ(2,*)
16 READ(2,*)
17 READ(2,*)NNO,NELEM
18 ALLOCATE(COODX(NNO)); COODX=0.D0
19 ALLOCATE(COODY(NNO)); COODY=0.D0
20 ALLOCATE(RESTX(NNO)); RESTX=0.D0
21 ALLOCATE(RESTY(NNO)); RESTY=0.D0
22 ALLOCATE(RESTZ(NNO)); RESTZ=0.D0
23 ALLOCATE(KMV(NNO));KMV=0.D0
24 ALLOCATE(KMR(NNO));KMR=0.D0
25 ALLOCATE(NOI(NELEM));NOI=0.D0
26 ALLOCATE(NOF(NELEM));NOF=0.D0
27 ALLOCATE(ELAST(NELEM));ELAST=0.D0
28 ALLOCATE(IN(NELEM));IN=0.D0
29 ALLOCATE(KMB(NELEM));KMB=0.D0
30 ALLOCATE(TIPOELEM(NELEM));TIPOELEM=0
31 ALLOCATE(FATORP(NELEM));FATORP=0.D0
32 READ(2,*)
33 READ(2,*)
34 READ(2,*)
35 READ(2,*)
36 READ(2,*)
37 READ(2,*)
38 READ(2,*)
39 READ(2,*)
40 READ(2,*)
41 DO I=1,NNO
42 READ(2,*)K,COODX(K),COODY(K),RESTX(K),RESTY(K),RESTZ(K),
43 *KMV(K),KMR(K)
44 END DO
45 READ(2,*)

110
46 READ(2,*)
47 READ(2,*)
48 READ(2,*)
49 READ(2,*)
50 READ(2,*)
51 READ(2,*)
52 READ(2,*)
53 READ(2,*)
54 READ(2,*)
55 READ(2,*)
56 READ(2,*)
57 READ(2,*)
58 READ(2,*)
59 READ(2,*)
60 READ(2,*)
61 DO I=1,NELEM
62 READ(2,*)M,NOI(M),NOF(M),ELAST(M),IN(M),KMB(M),
63 *TIPOELEM(M),FATORP(M)
64 ENDDO
65 ENDIF
66 CLOSE(2)
67 ALLOCATE(COMP(NELEM));COMP=0.0D0
68 ALLOCATE(KELEM(NELEM,4,4));KELEM=0.D0
69 ALLOCATE(MIELEM(NELEM,4,4));MIELEM=0.D0
70 ALLOCATE(KGLOBAL(2*NNO,2*NNO));KGLOBAL=0.D0
71 ALLOCATE(MIGLOBAL(2*NNO,2*NNO));MIGLOBAL=0.D0
72 ALLOCATE(AUTOVALOR(2*NNO));AUTOVALOR=0.D0
73 ALLOCATE(RES(NELEM,4));RES=0.D0
74 ALLOCATE(RESTGLOBAL(2*NNO));RESTGLOBAL=0.D0
75
76 END SUBROUTINE AD_06
Figura 3.23 – Sub-rotina AD_06.

Descrevendo o código (AD_06):


1 – início da subrotina AD_06
2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
4 e 5 – escrevendo cabeçalho na tela
6 – leitura do valor digitado
7 - teste para saber se o arquivo digitado existe (caso
sim, continua)
9 - abertura do arquivo digitado

111
10 a 16 – leituras em branco
17 - lendo numero de nós e elementos
18 a 31 – alocando variáveis
32 a 40 – leitura em branco
41 a 44 – leitura dos dados pertinentes a cada nó
45 a 60 – leitura em branco
61 a 64 – leitura dos dados pertinentes a cada elemento
66 - fechando arquivo de leitura
67 a 74 – alocando variáveis pertinentes
76 – fim da subrotina AD_06

3.1.23 SUBROTINA AD_07

A sub-rotina AD_07 (Figura 3.24) armazena a matriz de


instabilidade para elementos finitos que não possuam rótulas
(ver tabela 2.1).

112
1 SUBROUTINE AD_07
2 USE MODULO_1
3 IMPLICIT NONE
4
5 !MATRIZ DE INSTABILIDADE : CASO SEM RÓTULAS
6 MIELEM(I,1,1)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
7 MIELEM(I,1,2)=FATORP(I)*(1.D0/10.D0)
8 MIELEM(I,1,3)=FATORP(I)*(-6.D0/(5.D0*COMP(I)))
9 MIELEM(I,1,4)=FATORP(I)*(1.D0/10.D0)
10
11 MIELEM(I,2,1)=MIELEM(I,1,2)
12 MIELEM(I,2,2)=FATORP(I)*(2.D0*COMP(I)/15.D0)
13 MIELEM(I,2,3)=FATORP(I)*(-1.D0/10.D0)
14 MIELEM(I,2,4)=FATORP(I)*(-1.D0*COMP(I)/30.D0)
15
16 MIELEM(I,3,1)=MIELEM(I,1,3)
17 MIELEM(I,3,2)=MIELEM(I,2,3)
18 MIELEM(I,3,3)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
19 MIELEM(I,3,4)=FATORP(I)*(-1.D0/10.D0)
20
21 MIELEM(I,4,1)=MIELEM(I,1,4)
22 MIELEM(I,4,2)=MIELEM(I,2,4)
23 MIELEM(I,4,3)=MIELEM(I,3,4)
24 MIELEM(I,4,4)=FATORP(I)*(2.D0*COMP(I)/15.D0)
25 ENDSUBROUTINE AD_07
Figura 3.24 – Sub-rotina AD_07.

Descrevendo o código (AD_07):

1 – início da subrotina AD_07


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
6 a 24 – elementos da matriz de instabilidade local do elemento
25 – fim da subrotina AD_07

3.1.24 SUBROTINA AD_08

A sub-rotina AD_08 (Figura 3.25) armazena a matriz de


instabilidade para elementos finitos que possuam rótulas em seu
nó esquerdo (ver tabela 2.1).

113
Descrevendo o código (AD_08):

1 – início da subrotina AD_08


3 - utilizando o módulo de variáveis globais
4 - comando para declaração explícita
8 a 26 – elementos da matriz de instabilidade local do elemento
28 – fim da subrotina AD_08

1 SUBROUTINE AD_08
2
3 USE MODULO_1
4 IMPLICIT NONE
5
6 !MATRIZ DE INSTABILIDADE : CASO COM RÓTULA À ESQUERDA
7
8 MIELEM(I,1,1)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
9 MIELEM(I,1,2)=0.D0
10 MIELEM(I,1,3)=FATORP(I)*(-6.D0/(5.D0*COMP(I)))
11 MIELEM(I,1,4)=FATORP(I)*(1.D0/5.D0)
12
13 MIELEM(I,2,1)=MIELEM(I,1,2)
14 MIELEM(I,2,2)=0.D0
15 MIELEM(I,2,3)=0.D0
16 MIELEM(I,2,4)=0.D0
17
18 MIELEM(I,3,1)=MIELEM(I,1,3)
19 MIELEM(I,3,2)=MIELEM(I,2,3)
20 MIELEM(I,3,3)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
21 MIELEM(I,3,4)=FATORP(I)*(-1.D0/5.D0)
22
23 MIELEM(I,4,1)=MIELEM(I,1,4)
24 MIELEM(I,4,2)=MIELEM(I,2,4)
25 MIELEM(I,4,3)=MIELEM(I,3,4)
26 MIELEM(I,4,4)=FATORP(I)*(1.D0*COMP(I)/5.D0)
27
28 END SUBROUTINE AD_08
Figura 3.25 – Sub-rotina AD_08.
114
3.1.25 SUBROTINA AD_09

A sub-rotina AD_09 (Figura 3.26) armazena a matriz de


instabilidade para elementos finitos que possuam rótulas em seu
nó direito (ver tabela 2.1).

Descrevendo o código (AD_09):

1 – início da subrotina AD_09


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
6 a 24 – elementos da matriz de instabilidade local do elemento
26 – fim da subrotina AD_09

1 SUBROUTINE AD_09
2 USE MODULO_1
3 IMPLICIT NONE
4 !MATRIZ DE INSTABILIDADE : CASO COM RÓTULA À DIREITA
5
6 MIELEM(I,1,1)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
7 MIELEM(I,1,2)=FATORP(I)*(1.D0/5.D0)
8 MIELEM(I,1,3)=FATORP(I)*(-6.D0/(5.D0*COMP(I)))
9 MIELEM(I,1,4)=0.D0
10
11 MIELEM(I,2,1)=MIELEM(I,1,2)
12 MIELEM(I,2,2)=FATORP(I)*(1.D0*COMP(I)/5.D0)
13 MIELEM(I,2,3)=FATORP(I)*(-1.D0/5.D0)
14 MIELEM(I,2,4)=0.D0
15
16 MIELEM(I,3,1)=MIELEM(I,1,3)
17 MIELEM(I,3,2)=MIELEM(I,2,3)
18 MIELEM(I,3,3)=FATORP(I)*(6.D0/(5.D0*COMP(I)))
19 MIELEM(I,3,4)=0.D0
20
21 MIELEM(I,4,1)=MIELEM(I,1,4)
22 MIELEM(I,4,2)=MIELEM(I,2,4)
23 MIELEM(I,4,3)=MIELEM(I,3,4)
24 MIELEM(I,4,4)=0.D0
25
26 END SUBROUTINE AD_09
115
Figura 3.26 – Sub-rotina AD_09.

3.1.26 SUBROTINA AD_10

A sub-rotina AD_10 (Figura 3.27) é responsável por montar


a matriz de instabilidade global. É interessante notar que
seguiu-se o mesmo procedimento da montagem da matriz de rigidez
global. Assim mantêm-se as ordens existentes, permitindo a
correta manipulação matemática.

Descrevendo o código (AD_10):

1 – início da subrotina AD_10


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
4 – capturando nó inicial do elemento
5 – capturando nó final do elemento
7 a 25 – alocando a matriz de instabilidade local na matriz de
instabilidade global
27 – fim da subrotina AD_10

116
1 SUBROUTINE AD_10
2 USE MODULO_1
3 IMPLICIT NONE
4 NI=NOI(I)
5 NF=NOF(I)
6
7 MIGLOBAL(2*NI-1,2*NI-1)=MIGLOBAL(2*NI-1,2*NI-1)+MIELEM(I,1,1)
8 MIGLOBAL(2*NI-1,2*NI)=MIGLOBAL(2*NI-1,2*NI)+MIELEM(I,1,2)
9 MIGLOBAL(2*NI-1,2*NF-1)=MIGLOBAL(2*NI-1,2*NF-1)+MIELEM(I,1,3)
10 MIGLOBAL(2*NI-1,2*NF)=MIGLOBAL(2*NI-1,2*NF)+MIELEM(I,1,4)
11
12 MIGLOBAL(2*NI,2*NI-1)=MIGLOBAL(2*NI,2*NI-1)+MIELEM(I,2,1)
13 MIGLOBAL(2*NI,2*NI)=MIGLOBAL(2*NI,2*NI)+MIELEM(I,2,2)
14 MIGLOBAL(2*NI,2*NF-1)=MIGLOBAL(2*NI,2*NF-1)+MIELEM(I,2,3)
15 MIGLOBAL(2*NI,2*NF)=MIGLOBAL(2*NI,2*NF)+MIELEM(I,2,4)
16
17 MIGLOBAL(2*NF-1,2*NI-1)=MIGLOBAL(2*NF-1,2*NI-1)+MIELEM(I,3,1)
18 MIGLOBAL(2*NF-1,2*NI)=MIGLOBAL(2*NF-1,2*NI)+MIELEM(I,3,2)
19 MIGLOBAL(2*NF-1,2*NF-1)=MIGLOBAL(2*NF-1,2*NF-1)+MIELEM(I,3,3)
20 MIGLOBAL(2*NF-1,2*NF)=MIGLOBAL(2*NF-1,2*NF)+MIELEM(I,3,4)
21
22 MIGLOBAL(2*NF,2*NI-1)=MIGLOBAL(2*NF,2*NI-1)+MIELEM(I,4,1)
23 MIGLOBAL(2*NF,2*NI)=MIGLOBAL(2*NF,2*NI)+MIELEM(I,4,2)
24 MIGLOBAL(2*NF,2*NF-1)=MIGLOBAL(2*NF,2*NF-1)+MIELEM(I,4,3)
25 MIGLOBAL(2*NF,2*NF)=MIGLOBAL(2*NF,2*NF)+MIELEM(I,4,4)
26
27 ENDSUBROUTINE AD_10
Figura 3.27 – Sub-rotina AD_10.

3.1.27 SUBROTINA AD_11

A sub-rotina AD_11 (Figura 3.28) é responsável por aplicar


as condições de contorno do sistema global tanto na matriz de
rigidez, quanto na matriz de instabilidade.

117
1 SUBROUTINE AD_11
2 USE MODULO_1
3 IMPLICIT NONE
4
5 DO I=1,NELEM
6 NI=NOI(I)
7 NF=NOF(I)
8 RES(I,1)=RESTY(NI)
9 RES(I,2)=RESTZ(NI)
10 RES(I,3)=RESTY(NF)
11 RES(I,4)=RESTZ(NF)
12 ENDDO
13 DO I=1,NELEM
14 NI=NOI(I)
15 NF=NOF(I)
16 RESTGLOBAL(2*NI-1)=RES(I,1)
17 RESTGLOBAL(2*NI)=RES(I,2)
18 RESTGLOBAL(2*NF-1)=RES(I,3)
19 RESTGLOBAL(2*NF)=RES(I,4)
20 ENDDO
21
22 DO I=1,2*NNO
23 IF (RESTGLOBAL(I)==1) THEN
24 DO J=1,2*NNO
25 KGLOBAL(I,J)=0
26 KGLOBAL(J,I)=0
27 MIGLOBAL(I,J)=0
28 MIGLOBAL(J,I)=0
29 ENDDO
30 KGLOBAL(I,I)=1
31 MIGLOBAL(I,I)=1
32 ENDIF
33 ENDDO
34 ENDSUBROUTINE AD_11
Figura 3.28 – Sub-rotina AD_11.

Descrevendo o código (AD_11):

1 – início da subrotina AD_11


2 - utilizando o módulo de variáveis globais
118
3 - comando para declaração explícita
5 a 12 – capturando as restrições locais
13 a 20 - transformando restrições locais em globais
22 a 33 - aplicando as condições de contorno à matriz de
rigidez e de instabilidade (ambas globais)
34 – fim da subrotina AD_11

3.1.28 SUBROTINA AD_12

A sub-rotina AD_12 (Figura 3.29) é responsável por


resolver o problema de autovalor e autovetor. A função
utilizada é valida para matrizes positivo-definidas e utiliza a
fatoração de Choleski.
Descrevendo o código (AD_12):

1 – início da subrotina AD_12


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
4 – rotina que resolve o problema de autovalor (maiores
detalhes podem ser encontrados no manual do usuário da
biblioteca MSIMSL)
6 – fim da subrotina AD_12

1 SUBROUTINE AD_12
2 USE MODULO_1
3 IMPLICIT NONE
4 CALL DGVLSP (2*NNO, KGLOBAL, 2*NNO, MIGLOBAL, 2*NNO, AUTOVALOR)
5
6 END SUBROUTINE AD_12
Figura 3.29 – Sub-rotina AD_12.

3.1.29 SUBROTINA AD_13

A sub-rotina AD_13 (Figura 3.30) é responsável por


encontrar o menor valor dentre todos os autovalores devolvidos

119
pela sub-rotina AD_12, sendo este o correspondente ao primeiro
modo de flambagem. Além disso, a sub-rotina AD_13 também faz a
impressão do resultado via tela para o usuário.

Descrevendo o código (AD_13):

1 – início da subrotina AD_13


2 - utilizando o módulo de variáveis globais
3 - comando para declaração explícita
5 e 6 – declaração de variáveis locais
7 a 11 – contando o numero de restrições globais existentes
13 – adotando um numero inicial grande
15 a 26 – detectando o menor valor dos autovalores
(correspondente ao primeiro modo de flambagem)
28 a 31 – escrevendo o resultado final na tela
33 – fim da subrotina AD_13

Caso se queira todos os valores das cargas críticas, basta


desconsiderar a subrotina AD_13. Uma possivel situação pode ser
plotar a deformada da viga na situação de flambagem. Nesse
caso, deve-se utilizar uma rotina para resolução de problemas
generalizados de autovalores e autovetores que forneça os
autovetores. Maiores detalhes podem ser consultados em textos
clássicos de algebra linear e ainda no guia do usuário da
biblioteca MSIMSL.

120
1 SUBROUTINE AD_13
2 USE MODULO_1
3 IMPLICIT NONE
4
5 INTEGER:: NRESTGLOBAL=0,CONTADOR=1
6 REAL*8::TOLERANCIA,MENORVALOR
7 DO I=1,2*NNO
8 IF (RESTGLOBAL(I)==1) THEN
9 NRESTGLOBAL=NRESTGLOBAL+1
10 ENDIF
11 ENDDO
12
13 MENORVALOR=100000000000000000
14
15 DO I=1,2*NNO
16 IF ((AUTOVALOR(I).GE.0.D0) .AND. (AUTOVALOR(I) .LE.
17 *MENORVALOR)) THEN
18 TOLERANCIA=ABS(AUTOVALOR(I)-1.0D0)
19 IF ((TOLERANCIA .LE. 1.0d0*10**(-8)).AND.(CONTADOR .LE.
20 *NRESTGLOBAL)) THEN
21 CONTADOR= CONTADOR+1
22 ELSE
23 MENORVALOR=AUTOVALOR(I)
24 ENDIF
25 ENDIF
26 ENDDO
27
28 WRITE(*,*)
29 WRITE(*,*)
30 WRITE(*,*)'THE ANALYSIS IS DONE'
31 WRITE(*,*)'CRITICAL LOAD', MENORVALOR
32
33 END SUBROUTINE AD_13

Figura 3.30 – Sub-rotina AD_13

121
3.2 Exemplos

Para ilustrar o uso do programa serão feitos quatro


exemplos e comparados com o programa FTOOL que pode ser obtido
livremente no site da Tecgraf.

3.2.1 Exemplo 01

E=2.5 E+06

I=4.5 E-03

Figura 3.31 - Exemplo 01


A Figura 3.32 mostra o arquivo de entrada de dados para
este exemplo. Note que a primeira linha do arquivo identifica o
tipo de análise que será feita (no caso, de flexão simples).
Deve-se seguir rigorosamente os espaçamentos e padrões deste
arquivo, ou o programa não funcionará corretamente. Note que o
tipo de elemento utilizado foi apenas do primeiro tipo já que o
presente exemplo não possui rótulas.

Figura 3.32 - Dados de entrada do Exemplo 01

122
Para processar o exemplo basta abrir o programa e escolher
a análise do tipo 1. Em seguida digite o nome do arquivo que
contem a entrada de dados. Ao ser executado, o programa gera um
arquivo de nome RESULTADO_nome_do_arquivo que contém as
respostas esperadas. A Figura 3.33 ilustra o resultado do
exemplo acima.

Figura 3.33 – Dados de saída do Exemplo 01


Os resultados acima estão de acordo com aqueles obtidos
pelo aplicativo FTOOL.

123
3.2.2 Exemplo 02

O segundo exemplo (Figura 3.34) contempla bases elásticas.


Para este, o FTOOL não é aplicável. Entretanto existem exemplos
na bibliografia que podem ser utilizados para comparação de
resultados.

E=2.5 E+06

I=4.5 E-03

Figura 3.34 - Exemplo 02


Para esta estrutura o arquivo de entrada seria aquele ilustrado
pela Figura 3.35.

Figura 3.35 - Dados de entrada do Exemplo 02

Os resultados apresentados pelo programa foram:

124
Figura 3.36 - Dados de saída do Exemplo 02

Tais resultados se mostram em concordância com a literatura.

3.2.3 Exemplo 03

O terceiro exemplo (Figura 3.37) faz uso da rótula. Note


que aqui utilizou-se o primeiro elemento do tipo 3 (rótula à
direita) e todos os demais como sendo do tipo 1 (ausência de
rótulas). Aqui chama-se a atenção para o fato de que a rótula
deve estar presente em apenas um dos elementos. Quanto a
rotações, o programa fornece a rotação no ponto da rótula porém
considerando o lado do elemento sem rótula. No presente caso a
rotação será calculada pelo elemento central.

125
E=2.5 E+06

I=4.5 E-03

Figura 3.37 - Exemplo 03

A entrada de dados desse exemplo é ilustrada pela Figura 3.38.

Figura 3.38 - Dados de entrada do Exemplo 03

O resultado calculado pelo programa é dado na Figura 3.39.

126
Figura 3.39 - Dados de saída do Exemplo 03
Os resultados apresentados pelo programa FTOOL foram os mesmos.

3.2.4 Exemplo 04

O quarto exemplo (Figura 3.41) refere-se à análise de


instabilidade. Note a diferença do arquivo de entrada de dados.
Chama-se a atenção para os fatores de carga de flambagem,
necessários no arquivo de entrada de dados. O fator simboliza
que fração da carga aplicada na extremidade da barra ocasiona
flambagem no elemento considerado. A Figura 3.40 ilustra esse
fato.

127
Figura 3.40 - Exemplos de fatores de carga

Chama-se a atenção para o fato de o fator de flambagem não


ser zero. Caso se queira simular um exemplo em que não exista
carga P na extremidade, basta fazer o fator de P ser um número
pequeno, próximo a zero, mas nunca nulo.

E=2.5 E+06

I=4.5 E-03

Figura 3.41 - Exemplo 04

A Figura 3.42 ilustra o arquivo de entrada de dados para


esse exemplo. Note que aqui a saída dos dados é feita
diretamente via tela.

128
Figura 3.42 - Dados de entrada do Exemplo 04

O programa fornece como carga crítica o valor 25239,82 kN


enquanto que o valor exato seria 25177,56 kN. Nota-se que
quanto mais a malha for refinada, mais o resultado se aproxima
do valor analítico.

129
4. REFERÊNCIAS BIBLIOGRÁFICAS

 ASSAN, A.E. (2003), “Método dos Elementos Finitos –


Primeiros Passos”, 2ª Edição, Campinas-SP, Editora Unicamp.

 BATOZ, J.L., BATHE, K.J. e HO, L.W. (1980), “A Study of


Three-Node Triangular Plate Bending Elements”, International
Journal for Numerical Methods in Engineering, v.15, PP. 1771-
1812.

 CARRIJO, E.C., “Aplicação do Elemento Finito DKT à


Análise de Cascas”, Dissertação (Mestrado em Engenharia Civil)
– Escola de Engenharia de São Carlos / Universidade de São
Paulo, São Carlos – SP, 1995.

 COOK, R.D., MALKUS, D.S. e PLESHA, M.E. (1989),


“Concepts and Applications of Finite Element Analysis”, John
Wiley & Sons, 3rd edition.

 MENDONÇA, A. V. e PAIVA, J. B. (2005), “Análise de


Radiês Simples e Estaqueados via Combinação Método dos
Elementos Finitos com o Método dos Elementos de Contorno”,
Caderno de Engenharia de Estruturas, São Carlos, v.7, n.22,
PP.1-28.

 Paiva, J. B. (2009), “Método da Energia”, Apostila, São


Carlos – SP: Escola de Engenharia de São Carlos.

 REISSNER, E. (1945), “The Effect of Transverse Shear


Deformation on the Bending of Elastic Plates”, Journal of
Applied Mechanics, v.12, PP. 69-77.

 SAVASSI, W. (2000), “Introdução ao Método dos Elementos


Finitos em Análise Linear de Estruturas”, São Carlos-SP, EESC.

130
 SORIANO, H. L. (2003), “Método de Elementos Finitos em
Análise de Estruturas”, São Paulo: Editora da Universidade de
São Paulo, 580 p.

131

Você também pode gostar