Você está na página 1de 371

António Joaquim Mendes Ferreira

ELEMENTOS FINITOS em
MATLAB
5 de Novembro de 2007
Prefácio

Este texto tem por objectivo fornecer os conhecimentos básicos sobre a teoria
de elementos finitos e a sua implementação em programas MATLAB. Este
texto compreende as seguintes matérias:
• sistemas discretos
• formulação variacional e método dos resı́duos pesados
• formulação básica pelo método dos elementos finitos
• formulação de vários elementos (barras, vigas, placas, etc)
• programação MATLAB
• ilustração de alguns temas através de programas MATLAB
Este texto segue uma visão de engenharia, ou seja, apresenta apenas os con-
ceitos matemáticos mı́nimos para poder estabelecer os programas de cálculo
e poder estudar alguns exemplos práticos.
Os códigos MATLAB que aqui se incluem podem ser obtidos gratuitamente
do autor, bastando para isso um pedido por email para: ferreira@fe.up.pt
Estes códigos foram elaborados pelo autor, à excepção de algumas rotinas
de geração de malha e visualização de resultados que podem ser encontradas
na internet gratuitamente.
Dedicatória

À minha esposa e à minha filha.


Conteúdo

1 Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 Alguns conceitos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Elementos de mola e barra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Equilibrio nos nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5 Etapas básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Problema de molas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 Código MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.1 Passos de programação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 Condições fronteira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.8.1 Método da penalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.9 Programação alternativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2 Introdução ao método dos elementos finitos . . . . . . . . . . . . . . . . 31


2.1 Sistema contı́nuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Formulação diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Formulação variacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4 Obtenção de equações diferenciais a partir de funcionais . . . . . . 34
2.5 Métodos de resı́duos pesados e método de Ritz . . . . . . . . . . . . . . 40
2.5.1 Método de Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.2 Método de mı́nimos quadrados . . . . . . . . . . . . . . . . . . . . . . 42
2.5.3 Método de colocação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.4 Método de sub-domı́nios . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5.5 Método de Ritz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.6 Formulação pelo método dos deslocamentos . . . . . . . . . . . . . . . . . 47
2.7 Formulação geral das equações de equilı́brio . . . . . . . . . . . . . . . . . 48
2.8 Princı́pio dos trabalhos virtuais . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.9 Equações de elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8 Conteúdo

3 Elementos finitos isoparamétricos e elementos de barra . . . . 59


3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2 Elemento de barra de 2 nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3 PTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4 Funções de forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.5 Integração numérica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6 Código para problema de barra . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

4 Análise de barras inclinadas (treliças) . . . . . . . . . . . . . . . . . . . . . 71


4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Treliças no plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4 Cálculo de tensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.5 Problema de treliça plana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.6 Outro problema de treliça bidimensional . . . . . . . . . . . . . . . . . . . . 77
4.7 Exemplo de treliça com mola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.8 Treliças tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.8.1 Exemplo de tipo treliça 3D . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.9 Resultados do exemplo de trelica 3D . . . . . . . . . . . . . . . . . . . . . . . 90

5 Vigas de Bernoulli e pórticos planos . . . . . . . . . . . . . . . . . . . . . . . 91


5.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Formulação de viga de Bernoulli . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3 Formulação de elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.4 Vector de carga equivalente a carga distribuida . . . . . . . . . . . . . . 95
5.5 Exemplo de viga em flexão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.6 Pórtico plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.7 Exemplo de pórtico plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.8 Programa para exemplo de pórtico plano . . . . . . . . . . . . . . . . . . . 102
5.9 Pórtico plano inclinado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

6 Análise de pórticos tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . 107


6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.2 Matriz de rigidez e vector de forças . . . . . . . . . . . . . . . . . . . . . . . . 108
6.3 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.4 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

7 Análise de grelhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121


7.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.2 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Conteúdo 9

8 Formulação de elementos de viga Timoshenko . . . . . . . . . . . . . 131


8.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.2 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3 Campo de deformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.4 Campo de tensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.5 Equações de equilı́brio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.6 Elementos isoparamétricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.7 Programa MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

9 Estado plano de tensão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139


9.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.2 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3 Condições fronteira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4 Energia potencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.5 Equações de elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.6 Interpolação de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.7 Energia no elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.8 Equações para rigidez e força . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.9 Elementos quadriláteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
9.10 Integração numérica em duas dimensões . . . . . . . . . . . . . . . . . . . . 148
9.10.1 Elementos triangulares (formados por colapso de
elementos quadriláteros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
9.10.2 Elementos triangulares baseados em coordenadas de
área . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
9.11 Problema: placa em tracção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

10 Placas de Kirchhoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159


10.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.2 Teoria de placas de Kirchhoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.2.1 Campo de deslocamentos, deformações e tensões . . . . . . . 159
10.2.2 Principio dos trabalhos virtuais . . . . . . . . . . . . . . . . . . . . . 161
10.3 Elementos finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.3.1 Elemento rectangular não conforme MCZ . . . . . . . . . . . . . 161
10.3.2 Elemento rectangular conforme BFS . . . . . . . . . . . . . . . . . 167
10.3.3 Elemento triangular BCIZ . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.4 Constrições de Kirchhoff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181

11 Elementos finitos de placa de Mindlin . . . . . . . . . . . . . . . . . . . . . 183


11.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
11.2 Teoria de placa de Mindlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
11.2.1 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.2.2 Campo de deformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
11.2.3 Campo de tensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
11.3 Elementos finitos de placa espessa . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.4 Exemplo de placa quadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10 Conteúdo

11.5 Melhoramentos ao corte transverso . . . . . . . . . . . . . . . . . . . . . . . . 192


11.6 Elemento Q4γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
11.7 Exemplo de placa com elemento Q4γ . . . . . . . . . . . . . . . . . . . . . . 194
11.8 Elemento DKT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
11.9 Exemplo de placa com elemento DKT . . . . . . . . . . . . . . . . . . . . . . 203

12 Teorias de placa de ordem superior . . . . . . . . . . . . . . . . . . . . . . . . 211


12.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
12.1.1 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
12.1.2 Campo de deformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
12.2 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
12.3 Matrizes de deformação-deslocamento B . . . . . . . . . . . . . . . . . . . . 215
12.4 Exemplo de placa quadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

13 Uma teoria layerwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223


13.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
13.2 Laminado sandwich com 3 camadas . . . . . . . . . . . . . . . . . . . . . . . . 227

14 Teoria de placa de primeira ordem para laminados . . . . . . . . . 239


14.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
14.1.1 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
14.1.2 Campo de deformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
14.2 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
14.3 Matrizes de deformação-deslocamento B . . . . . . . . . . . . . . . . . . . . 243
14.4 Laminado sandwich com 3 camadas . . . . . . . . . . . . . . . . . . . . . . . . 244

15 Análise de sólidos tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . 257


15.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.3 Campo de deformações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.4 Campo de tensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
15.5 Elemento tetraédrico de 4 nós . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
15.5.1 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.5.2 Vector de força equivalente . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.5.3 Cálculo de tensões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.6 Elemento hexaédrico lagrangiano recto de 8 nós . . . . . . . . . . . . . 262
15.6.1 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
15.7 Exemplo: Barra em tracção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
15.8 Programa para analisar barra 3D em tracção . . . . . . . . . . . . . . . . 264

16 Análise de cascas com elementos planos . . . . . . . . . . . . . . . . . . . . 269


16.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
16.2 Graus de liberdade locais e globais . . . . . . . . . . . . . . . . . . . . . . . . . 270
16.3 Código para solução de problema de casca plana . . . . . . . . . . . . . 271
Conteúdo 11

17 Análise de vibrações livres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277


17.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
17.2 Equações de movimento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
17.3 Elemento de barra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
17.4 Programa MATLAB para barra encastrada . . . . . . . . . . . . . . . . . 286
17.5 Viga de Euler-Bernoulli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
17.6 Código MATLAB para vibrações livres de vigas finas . . . . . . . . 292
17.7 Vibrações livres de vigas Timoshenko . . . . . . . . . . . . . . . . . . . . . . 293
17.8 Código MATLAB para vibrações de vigas Timoshenko . . . . . . . 295
17.9 Exemplo de Lee e Schultz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
17.10Vibrações livres de placas Mindlin . . . . . . . . . . . . . . . . . . . . . . . . . 304
17.11Exemplo de vibrações livres de placa . . . . . . . . . . . . . . . . . . . . . . . 307
17.12Código MATLAB para exemplo de placa . . . . . . . . . . . . . . . . . . . 311
17.13Elemento Q4γ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
17.14Elemento DKT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
17.15Listagem do gerador de malhas rectangulares . . . . . . . . . . . . . . . 328

A Conceitos básicos de MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331


A.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
A.2 Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
A.3 Operações com matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
A.4 Expressões e variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
A.5 Funções de construção de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . 335
A.5.1 For/End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
A.6 Funções escalares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
A.7 Funções vectoriais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
A.8 Funções de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
A.9 Submatrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
A.10 M-files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
A.11 Formato de saı́da . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
A.12 Gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
A.13 Matrizes esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
A.14 Referência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

Índice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
1
Sistemas discretos

1.1 Introdução
Hoje em dia, o método dos elementos finitos é uma realidade cada vez mais
presente em aplicações industriais e na análise de engenharia em geral. O
método dos elementos finitos é utilizado na análise de sólidos e estruturas,
bem como na mecânica de fluidos e transferência de calor.
O método dos elementos finitos teve um grande impacto após o apare-
cimento dos computadores que permitiram a solução rápida e eficiente de
sistemas de equações algébricas resultantes da aplicação do método a um de-
terminado problema de engenharia.
A origem do método dos elementos finitos remonta aos anos 50 e 60, com
os trabalhos de Courant [1], Argyris [6] e Clough [7]. Aparentemente, o termo
“elemento finito” foi introduzido por Clough [7]. As contribuições iniciais de
Zienkiewicz e Cheung [8] e Argyris [6] são consideradas muito significativas
para o desenvolvimento do método. Após os anos 60, tem-se verificado uma
crescente atenção para este método, resultando num número muito elevado
de publicações. Registe-se alguns livros de referência obrigatória: Reddy [100],
Onate [4], Zienkiewicz e Taylor [9], Hughes [122], Hinton [5], entre outros. No
capı́tulo final, apresenta-se uma lista de livros que os leitores devem consultar
sobre o método dos elementos finitos, em particular aqueles que possuem
alguma programação.
O método dos elementos finitos representa uma aproximação dum mo-
delo matemático que representa o mais fielmente possı́vel o problema fı́sico.
Registe-se que o método não pode fornecer mais informação que aquela que é
fornecida pelo modelo matemático.
Neste capı́tulo pretende-se ilustrar alguns conceitos básicos, através da
solução de elementos discretos, com molas, tipicamente.
14 1 Sistemas discretos

1.2 Alguns conceitos básicos


Para analisar um determinado problema fı́sico ou de engenharia, há que ide-
alizar um sistema eventualmente com solução, a formulação do modelo ma-
temático e a sua solução, bem como a interpretação dos resultados obtidos.
Alguns métodos clássicos para modelos matemáticos são baseados em sis-
temas discretos e sistemas contı́nuos. Num modelo contı́nuo a resposta é ba-
seada em equações diferenciais. Num modelo discreto, a resposta do sistema
baseia-se numa solução com um número finito de variáveis.
A solução exacta das equações diferenciais satisfazendo todas as condições
fronteira é possı́vel apenas para um número muito limitado de modelos ma-
temáticos, sendo habitualmente necessário o recurso a métodos numéricos para
a solução destas equações. Em geral, os métodos numéricos reduzem o pro-
blema contı́nuo num problema discreto que pode então resolver-se na forma
dum sistema de equações algébricas.
Pretende-se resolver matematicamente um sistema, pressupondo que este
pode ser descrito por um número finito de variáveis, tendo em conta as se-
guintes etapas:

1. idealização do sistema enquanto contribuição de vários elementos


2. estabelecimento de equilı́brio em cada elemento em termos das variáveis
de interesse
3. contabilização da contribuição de todos os elementos, tendo em conta as
ligações entre elementos para as variáveis do problema
4. cálculo da resposta, tendo em conta a solução do sistema de equações
obtendo-se as variáveis do problema. Podem obter-se outras informações,
para além destas variáveis, para cada elemento.

1.3 Elementos de mola e barra


Considere-se para cada elemento de mola de 2 nós, dois graus de liberdade,
(e) (e) (e) (e)
correspondentes a 2 deslocamentos u1 , u2 e duas forças nodais R1 , R2
(ver figura 1.1). Para se calcular as relações força-deslocamento, faz-se uso
dum elemento de barra de comprimento L, sujeito unicamente a forças axiais,
com secção constante A e módulo de elasticidade E.

(e) (e)
u1 (e) u2
1 2
(e) (e)
R1 R2

L(e)

Figura 1.1. Elemento finito de 2 nós (barra ou mola)


1.4 Equilibrio nos nós 15

A deformação da barra é dada por


u2 − u1
= (1.1)
L(e)
enquanto que a tensão (obtida pela lei de Hooke) é definida por
u2 − u1
σ = E (e)  = E (e) (1.2)
L(e)
O esforço axial é então calculado por integração através da espessura das
tensões, sendo igual a
u2 − u1
N = A(e) σ = (EA)(e) (1.3)
L(e)
(e) (e)
Tendo em conta o equilibrio de forças axiais R1 e R2 , na forma

(e) (e) u2 − u1
R2 = −R1 = N = (EA)(e) (1.4)
L(e)
ou
(e) (e) (e) (e)
R2 = −R1 = N = k (e) (u2 − u1 ) (1.5)
EA
(onde k (e) = L ), podemos então rearranjar as relações na forma
( )  ( (e) )
(e) 
R1 1 −1 u1
q (e) = (e) = k (e) (e) = K(e) a(e) (1.6)
R2 −1 1 u2

onde K(e) representa a matriz de rigidez do elemento de barra (ou mola),


a o vector de deslocamentos e q(e) o vector de forças nodais.
(e)

Caso existam forças distribuidas aplicada sobre a barra, torna-se necessário


transformar essas forças em forças equivalentes nos nós, obtendo-se então

( (e)
)
(bl)(e)
  
(e) (e) 1 −1 u1 1
q =k (e) − = K(e) a(e) − f (e) (1.7)
−1 1 u2 2 1

sendo f (e) o vector de forças nodais equivalentes às forças distribuidas b.

1.4 Equilibrio nos nós


A relação força-deslocamento anterior diz apenas respeito a um elemento. No
entanto, quando queremos resolver uma estrutura temos de agrupar todos
os elementos, formando um sistema global ou estrutural. Para isso, convém
lembrar a lei de equilibrio em cada nó, ou seja a soma das forças num dado
nó, relativas às diferentes barras, é igual à força exterior aplicada nesse nó,
ou
16 1 Sistemas discretos

ne
(e)
X
R(e) = Rj (1.8)
e=1

(onde ne representa o número de elementos da estrutura), obtendo-se então


uma equação matricial de equilibrio global, contando com todas as contri-
buições dos elementos (espalhada de forma consistente com a numeração dos
graus de liberdade)
    
K11 K12 . . . K1n   u1    f1 
 u2 
 K21 K22 . . . K2n      f2 
=
 
 .. .. ..  .. ..
 . . .  . 
   .  
 
    
Kn1 Kn2 . . . Knn un fn

ou ainda, de forma mais compacta

Ka = f (1.9)

1.5 Etapas básicas


Em qualquer problema de elementos finitos, as seguintes etapas devem ser
tidas em conta:
• definição duma malha de elementos discretos (barras) ligadas entre si nos
nós
• definição das matrizes de rigidez K(e) e de forças nodais equivalentes
f (e) de cada elemento do sistema
• assemblagem das contribuições de cada elemento no sistema global Ka =
f
• impor condições fronteira em termos de deslocamentos (condições
fronteira essenciais)
• calcular os deslocamentos nodais a
• a partir dos valores das incógnitas nos nós, calcular deformações e
tensões

1.6 Problema de molas


Considere-se agora um problema de barras, para o qual se pretende estabelecer
uma solução por elementos finitos e o respectivo primeiro código MATLAB.
Condidere-se a figura 1.2 onde se estabelece que o movimento do nó 2 é o
mesmo, qualquer que seja o elemento de mola considerado, dado que a barra
que liga as três molas é suposta ser uma barra rigida. Assim, o nosso primeiro
problema considera 3 elementos finitos e 4 nós, sendo que três destes estão
encastrados, logo os seus deslocamentos (globais) são u1 = u3 = u4 = 0.
1.6 Problema de molas 17

k2

3
k1 2
2
1 P x
2
1 k3
4
Barra rigida 2
3

Figura 1.2. Problema de molas

Para cada uma das molas, pode escrever-se o equilibrio (local), na forma
Mola 1: ( )  ( (1) )
(1) 
R1 (1) 1 −1 u1
(1) =k (1)
R2 −1 1 u2
Mola 2: ( ) ( )
(2)  (2)
R1 (2) 1 −1 u1
(2) =k (2)
R2 −1 1 u2
Mola 3: ( ) ( )
(3)  (3)
R1 1 −1 u1
(3) = k (3) (3)
R2 −1 1 u2
Pode ainda impor-se a relação entre os deslocamentos no sistema local
ou do elemento e no sistema global ou da estrutura, na forma (Condições de
compatibilidade):
(1) (1) (2) (2) (3) (3)
u1 = u1 ; u2 = u2 ; u1 = u2 ; u2 = u3 ; u1 = u2 ; u2 = u4 (1.10)

Tendo em conta o equilibrio de forças nos nós 1 a 4, podemos escrever:


3
(1)
X
Nó 1: R(e) = F1 ⇔ R1 = F1 (1.11)
e=1

3
(1) (2) (3)
X
Nó 2: R(e) = P ⇔ R2 + R1 + R1 = P (1.12)
e=1

3
(3)
X
Nó 3: R(e) = F3 ⇔ R2 = F3 (1.13)
e=1
18 1 Sistemas discretos

3
(4)
X
Nó 4: R(e) = F4 ⇔ R2 = F4 (1.14)
e=1
Encontrando assim a equação global de equilibrio estático na forma
    
k1 −k1 0 0  u1 
    F1  
 −k1 k1 + k2 + k3 −k2 −k3   u2   P 
  = (1.15)
 0 −k2 k2 0    u3   F3 
     
0 −k3 0 k3 u4 F4

Note-se que sabendo u1 = u3 = u4 = 0, também se poderia ter escrito de


imediato as condições fronteira na forma
    
k1 −k1 0 0  0 
    F1 

 −k1 k1 + k2 + k3 −k2 −k3   u2   P 
  = (1.16)
 0 −k2 k2 0    0   F3 
     
0 −k3 0 k3 0 F4

Note-se também que as forças F1 , F3 , F4 são as reacções dos apoios sobre


a estrutura, não sendo possı́vel calculá-los nesta fase, apenas depois de serem
conhecidos os deslocamentos globais. Tendo em conta o conhecimento de u1 =
u3 = u4 = 0, podemos eliminar as linhas e colunas respectivas e reduzir o
sistema de equações global a apenas uma equação
(k1 + k2 + k3 )u2 = P
obtendo-se depois as reacções na forma
−k1 u2 = F1 ; −k2 u2 = F3 ; −k3 u2 = F4
Note-se que a matriz de rigidez foi calculada tendo em conta a contribuição
de cada elemento nas linhas e colunas correspondentes aos graus de liberdade
respectivos. Por exemplo, para o elemento 1, obtém-se
 
k1 −k1 0 0
 −k1 k1 0 0 
K (1) =  0
 (1.17)
0 0 0
0 0 00
associado aos seus graus de liberdade globais (1 e 2), enquanto que para o
elemento três, com graus de liberdade globais (2 e 4), se obtém como 1
 
0 0 0 0
 0 k3 0 −k3 
K (3) = 
0 0 0 0 
 (1.18)
0 −k3 0 k3
1
Note-se o posicionamento da matriz de rigidez (2 × 2) do elemento, na matriz de
rigidez (4 × 4) da estrutura. Por exemplo, K (3) é posicionada nas linhas e colunas
2 e 4.
1.7 Código MATLAB 19

1.7 Código MATLAB


Para resolver o problema ilustrado na figura 1.2, apresenta-se um primeiro
programa MATLAB (LivroMola1.m) e a sua descrição. Muitos dos conceitos
aqui apresentados em termos de programação são usados em diferentes pro-
blemas. Para resolver este problema, considera-se que a força exterior aplicada
é P = 10 e que todas as molas possuem a mesma rigidez, ou seja, k = 1.
1 clear all
2 element=[1 2;2 3;2 4];
3 numelem=size(element,1);
4 numnode=4;
5 U=zeros(numnode,1);
6 f=zeros(numnode,1);
7 K=zeros(numnode,numnode); % podia ser sparse
8 f(2)=10.0;
9 for e=1:numelem ;
10 index=element(e,:) ;
11 k=[1 -1;-1 1];
12 K(index,index)=K(index,index)+k;
13 end
14 % Condicoes fronteira e solucao
15 dofs=[1;3;4];
16 % nos livres: activos
17 activos=setdiff([1:numnode]’,[dofs]);
18 U=K(activos,activos)\f(activos);U1=zeros(numnode,1);U1(activos)=U;
19 % displacements
20 disp(’Deslocamentos’)
21 U=U1; jj=1:4; format
22 [jj’ U]
23 % reactions
24 F=K*U;
25 reaccoes=F(dofs);
26 disp(’reaccoes’)
27 [dofs reaccoes]

1.7.1 Passos de programação

Começa-se por apagar toda a memória, fazendo


clear all
Em seguida definem-se os nós para cada elemento, na matriz element, ou
seja

element=[1 2;2 3;2 4];

Note-se que a primeira linha da matriz element, está representada por 1 e 2,


ou seja os nós associados ao elemento 1 e assim sucessivamente linha a linha.
20 1 Sistemas discretos

O número de linhas desta matriz corresponde ao número total de elementos


do sistema, pelo que a instrução MATLAB seguinte permite determinar o
número total de elementos

numelem=size(element,1);

O número de nós é aqui fixo em 4, na instrução

numnode=4;

Tendo em conta que o número de nós corresponde (apenas aqui2 ) ao


número de graus de liberdade, o problema global é definido pelo número de
nós. Devemos então anular as matrizes globais, por forma a resolver o sistema
mais tarde. Note-se que a matriz de rigidez é definida por n × n onde n é
o número de graus de liberdade. Esta matriz é simétrica e esparsa, pelo que
podiamos usar sparse em vez de zeros,

U=zeros(numnode,1);
f=zeros(numnode,1);
K=zeros(numnode,numnode);

O comando zeros permite colocar uma matriz de uma dada dimensão com
os seus elementos todos nulos, o que vai ser particularmente importante para
a matriz de rigidez tendo em conta que ela é formada pela ”soma”de contri-
buições de vários elementos. A este processo também se chama inicialização
das matrizes.
O vector de forças nodais está já todo formado por zeros, pelo que se pode
agora colocar a força P = 10 no grau de liberdade 2,

f(2)=10.0;

Executamos agora o cálculo da matriz de rigidez, elemento a elemento,


percorrendo um ciclo FOR/END
for e=1:numelem ;
index=element(e,:) ;
k=[1 -1;-1 1];
K(index,index)=K(index,index)+k;
end
Na primeira linha, executamos o ciclo para todos os elementos, em seguida
identificamos quais os nós que pertencem ao elemento e, na instrução

index=element(e,:) ;
2
Note-se que cada nó tem aqui apenas 1 grau de liberdade, pelo que há uma
identificação do número de nós com o número de graus de liberdade, o que não
acontecerá com outros problemas mais adiante
1.7 Código MATLAB 21

Para o elemento 1, index=[1,2], para o elemento 2, index=[2 3], etc. Em


seguida calculamos a matriz de rigidez para elemento, que neste caso é cons-
tante
 
(e) 1 −1
k = (1.19)
−1 1
Colocamos então esta matriz 2 × 2, nas linhas e colunas respeitantes aos
graus de liberdade associados ao elemento e , ou seja, nas linhas e colunas
identificadas por index .
Isso consegue-se nas duas linhas de código seguintes
k=[1 -1;-1 1];
K(index,index)=K(index,index)+k;
Note-se que esta codificação permite fazer, de forma bastante compacta,
a ”assemblagem”ou ”espalhamento”da matriz de rigidez. Claro que seria
possı́vel compactar ainda mais, por exemplo, com
for e=1:numelem ;
K(element(e,:),element(e,:))=K(element(e,:),element(e,:))+ ...
[1 -1;-1 1];
end
Estando já definida a matriz de rigidez do sistema e o seu vector de forças
(segundo membro), estamos em condições de alterar o sistema de equações
(ainda impossivel de calcular, porque a matriz de rigidez é ainda singular)
por introdução das condições fronteira. Tendo em conta que as condições
fronteira são homogéneas (do tipo u3 = 0), podemos anular as linhas e as
colunas correspondentes aos graus de liberdade que estão prescritos como nu-
los (apoios). Note-se que esta técnica de imposição de condições fronteira não
é universal, estando limitada a condições fronteira homogéneas. Iremos falar
mais adiante doutras técnicas mais gerais para imposição geral de condições
fronteira. Lista-se então a parte do código correspondente à aplicação de
condições fronteira e solução do sistema de equações.
dofs=[1;3;4];
% nos livres: activos
activos=setdiff([1:numnode]’,[dofs]);
U=K(activos,activos)\f(activos);U1=zeros(numnode,1);U1(activos)=U;
Na primeira linha desta parte do código definem-se os graus de liberdade
a fixar como sendo os graus 1, 3 e 4, na matriz dofs .
Em seguida definem-se os graus de liberdade activos (não prescritos) que
serão definidos pela diferença ( setdiff ) entre o vector total de graus de
liberdade (neste caso com 4 entradas) e o vector de graus de liberdade prescri-
tos. Neste caso activos é igual a 2, o único grau de liberdade prescrito. Na
última linha calcula-se o sistema de equações KU=f, fazendo apenas U=K\f ,
mas apenas para os graus de liberdade activos, ou seja,
22 1 Sistemas discretos

U=K(activos,activos)\f(activos)

Esta parte do código permite apenas calcular u2 , pelo que deveremos apre-
sentar os resultados considerando também os valores nulos, fazendo uso de
vectores auxiliares, na forma

U=K(activos,activos)\f(activos);U1=zeros(numnode,1);U1(activos)=U;

O vector U1 é agora um vector de 4 posições com toda a solução, in-


cluindo os valores prescritos.
Podemos agora calcular novamente todo o vector de segundo membro,
já que temos o vector solução, fazendo F=K.U. Como só temos interesse nas
reacções nos apoios usamos antes

F=K*U;
reaccoes=F(dofs);

ou seja usamos apenas a parte do vector F que contém as posições dos


valores prescritos, porque é nesses nós que se obtém as reacções.
As restantes instrucções do código servem apenas para apresentar resul-
tados, como se pode verificar no ”command window”, onde se pediu a in-
formação sobre a matriz de rigidez, do vector de forças e se obteve também o
vector de deslocamentos e o vector de reacções.

K =
1 -1 0 0
-1 3 -1 -1
0 -1 1 0
0 -1 0 1

>> f
f =
0
10
0
0

Deslocamentos

ans =
1.0000 0
2.0000 3.3333
3.0000 0
4.0000 0
1.8 Condições fronteira 23

reaccoes

ans =
1.0000 -3.3333
3.0000 -3.3333
4.0000 -3.3333

1.8 Condições fronteira


Nos scripts anteriores, as condições fronteira (homogéneas) foram aplicadas
de forma simples, pela eliminação das linhas e colunas associadas aos graus de
liberdade prescritos (onde o deslocamento prescrito é nulo). No entanto, em
muitos casos, poderá haver necessidade de prescrever deslocamentos não nulos
(condições de fronteira não homogéneas). Nestes casos, teremos de modificar
o sistema de equações, conforme o código (LivroMola1OutraBC.m) .
1 clear all
2 element=[1 4;1 2;2 3;2 4];
3 numelem=size(element,1);
4 numnode=4;
5 mola=[1;2;3;2];
6 U=zeros(numnode,1);
7 f=zeros(numnode,1);
8 K=zeros(numnode,numnode);
9 f(1)=50.0;
10 f(4)=10.0;
11 for e=1:numelem ;
12 index=element(e,:) ;
13 k=[1 -1;-1 1]*mola(e);
14 K(index,index)=K(index,index)+k;
15 end
16 K1=K;
17 % Condicoes fronteira e solucao
18 dofs=[3];
19 %
20 bcwt=mean(diag(K)); % valor medio de diag(K) para preservar
21 % bom condicionamentgo da matriz de rigidez
22 ufixed=zeros(size(dofs));
23 %
24 f=f-K(:,dofs)*ufixed;
25 f(dofs)=ufixed;
26 K(dofs,:)=0;
27 K(:,dofs)=0;
28 K(dofs,dofs) =bcwt*speye(length(dofs));
29 U=K\f;
30 % deslocamentos
31 disp(’Deslocamentos’)
24 1 Sistemas discretos

32 jj=1:4; format
33 [jj’ U]
34 % reaccoes
35 F=K1*U;
36 reaccoes=F(dofs);
37 disp(’reaccoes’)
38 [dofs reaccoes]

No sistema de equações global, formado por

Ku = f (1.20)
torna-se necessário introduzir as condições de fronteira essenciais, dado que
a matriz de coeficientes inicial é singular. Basicamente pretende-se introduzir
as condições

un = ūn (1.21)
Uma forma simples de colocar estas condições essenciais é o de modificar a
linha da matriz correspondente ao grau de liberdade n, na forma
Knm = δnm (1.22)
para todos os m = 1 : N , sendo N a dimensão da matriz de rigidez e modifi-
cando também o segundo membro na forma
fn = ūn (1.23)
Infelizmente, esta abordagem destrói a simetria da matriz de rigidez. Uma
forma possı́vel de obviar este contratempo é o de modificar também a coluna
correspondente ao grau de liberdade, fazendo
Kmn = δnm (1.24)
para todos os m = 1 : N . É também necessário modificar o segundo membro
na forma
fm = Kmn ūn (1.25)
Isto equivale a tomar uma nova equação, na forma
Kk1 u1 + Kk2 u2 + ... + Kk(n−1) un−1 + Kk(n+1) un+1 + KkN uN = fk − Kkn ūn
(1.26)
Em MATLAB podemos escrever esta fórmula como
ufixed=zeros(size(dofs));
%
f=f-K(:,dofs)*ufixed;
f(dofs)=ufixed;
K(dofs,:)=0;
K(:,dofs)=0;
K(dofs,dofs) =bcwt*speye(length(dofs));
1.8 Condições fronteira 25

sendo dofs um vector com os ı́ndices onde d é restringido, ufixed é um


vector com o valor de restrição e bcwt um factor que pretende melhorar o
condicionamento da matriz de rigidez.
A solução é agora facilmente obtida através do comando U = K\f .
Repare-se na simplicidade (sem menosprezo pela eficácia e pela qualidade da
solução).
As reacções são agora calculadas, enquanto forças nos nós associados a nós
onde existam restrições, na forma
for e=1:numelem ;
index=element(e,:) ;
k=[1 -1;-1 1]*mola(e);
K(index,index)=K(index,index)+k;
end
K1=K;
...
...
% reactions
F=K1*U;
reaccoes=F(dofs);
disp(’reaccoes’)
[dofs reaccoes]
ou seja usando KU , em que K é a matriz de rigidez original e não
aquela que é modificada atendendo às condições fronteira. De qualquer
forma só se calculm as reacções nos nós restringidos, usando o comando
reaccoes=F(dofs);.

1.8.1 Método da penalidade

O método da penalidade é um outro método possı́vel para impor condições


fronteira. Consiste basicamente na afectação de um escalar muito grande na
matriz de coeficientes e no segundo membro, para o indice do deslocamento
que queremos impor. Seja por exemplo a imposição da condição fronteira,
u2 = ū2 . O sistema de equações original, ainda sem imposição de condições
fronteira é descrito por
K11 u1 + K12 u2 + K13 u3 + . . . + K1n un = f1
K21 u1 + K22 u2 + K23 u3 + . . . + K2n un = f2
K31 u1 + K32 u2 + K33 u3 + . . . + K3n un = f3 (1.27)
..
.
Kn1 u1 + Kn2 u2 + Kn3 u3 + . . . + Knn un = fn

No termo 22 da matriz de coeficientes e no segundo membro da segunda


linha, vamos introduzir uma modificação, por forma a que a equação resultante
seja (aproximadamente) u2 = ū2 . Assim, obtém-se a equação
26 1 Sistemas discretos

K11 u1 + K12 u2 + K13 u3 + . . . + K1n un = f1


K21 u1 + (1 + α)K22 u2 + K23 u3 + . . . + K2n un = αK22 ū2
K31 u1 + K32 u2 + K33 u3 + . . . + K3n un = f3 (1.28)
..
.
Kn1 u1 + Kn2 u2 + Kn3 u3 + . . . + Knn un = fn

Na segunda equação, dado o elevado valor de α, na prática obtemos

αK22 u2 = αK22 ū2 (1.29)

ou seja, obtemos u2 = ū2 . O código seguinte resolve o problema da figura


1.2, pelo método da penalidade ( LivroMola1Penalidade.m) .
1 clear all
2 element=[1 2;2 3;2 4];
3 numelem=size(element,1);
4 numnode=4;
5 U=zeros(numnode,1);
6 f=zeros(numnode,1);
7 K=sparse(numnode,numnode);
8 f(2)=10.0;
9 for e=1:numelem ;
10 index=element(e,:) ;
11 k=[1 -1;-1 1];
12 K(index,index)=K(index,index)+k;
13 end
14 % Condicoes fronteira e solucao (metodo da penalidade)
15 dofs=[1;3;4];
16 K1=K;
17 K1(dofs,dofs)=K(dofs,dofs)+1e6;
18 f(dofs)=0;
19 U=K1\f;
20 % deslocamentos
21 disp(’Deslocamentos’)
22 jj=1:4; format
23 [jj’ U]
24 % reaccoes
25 F=K*U;
26 reaccoes=F(dofs);
27 disp(’reaccoes’)
28 [dofs reaccoes]

1.9 Programação alternativa


Uma forma alternativa e mais conveniente de programar consiste em usar
funções e chamar essas funções (ou rotinas), sempre que forem necessárias.
o código torna-se mais legı́vel e mais modular, sendo ainda mais facilmente
1.9 Programação alternativa 27

expandido. O programa é agora modificado, conforme se indica a seguir ( Li-


vroMola1Alternativo.m). Basta chamar o programa como mola1(’penalidade’),
para correr este problema com o método da penalidade, por exemplo .
1 function mola1(method)
2
3 % problema 1 : molas
4 % programa principal
5 % command window: escrever mola1(’penalidade’), por exemplo
6
7 element=[1 2;2 3;2 4];
8 numelem=size(element,1);
9 numnode=4;
10
11 % vector de forcas
12 f=zeros(numnode,1);
13 f(2)=10.0;
14
15 % matriz de rigidez
16 K=zeros(numnode,numnode);
17 for e=1:numelem ;
18 k = rigidezMola;
19 K(element(e,:),element(e,:))=K(element(e,:),element(e,:))+k;
20 end
21
22 % Condicoes fronteira e solucao
23 dofs=[1;3;4];
24
25 % nos livres: activos
26 U=zeros(numnode,1);
27 U = BC_solucao(method,dofs,numnode,K,f);
28
29 % escrita de resultados
30 escrita(U,dofs,K);
31 % end
32
33 function k = rigidezMola
34
35 % funcao para calcular rigidez de mola
36 % k : matriz de rigidez
37
38 k=[1 -1;-1 1];
39
40
41 function escrita(U,dofs,K)
42
43 % funcao escrita de resultados
44
45 % K : matriz de rigidez
28 1 Sistemas discretos

46 % U : vector de deslocamentos
47 % dofs : vector de graus de liberdade prescritos
48 % F : vector de reaccoes
49
50 % escrita para ecran
51
52 % deslocamentos
53 disp(’Deslocamentos’)
54 jj=1:length(U); format
55 [jj’ U]
56 % reaccoes
57 F=K*U;
58 reaccoes=F(dofs);
59 disp(’reaccoes’)
60 [dofs reaccoes]
61
62 % escrita para ficheiro externo
63
64 outFileName = ’output’;
65 outfid = fopen(outFileName,’w’);
66 fprintf(outfid,’* Escrita de resultados *\n’);
67 fprintf(outfid,’* ------------------------------------------\n’);
68
69 fprintf(outfid,’ No Deslocamentos \n’);
70 for i=1:length(U);
71 fprintf(outfid,’%3.0f %15.14f \n’,i,U(i));
72 end
73
74 fprintf(outfid,’ No Reaccoes \n’);
75 for i=1:length(dofs);
76 fprintf(outfid,’%3.0f %15.14f \n’,i,F(dofs(i)));
77 end
78
79
80 function U = BC_solucao(method,dofs,ndof,K,f)
81
82 % funcao para imposicao de condicoes fronteira
83 % e solucao do sistema de equacoes por
84
85 % metodo 1: supressao de linhas e colunas
86 % metodo 2: penalidade
87 % metodo 3: modificacao do sistema
88
89 % k : matriz de rigidez
90 % f : vector de forcas
91 % ndof : numero total de graus de liberdade
92 % dofs : vector de graus de liberdade prescritos
93
94 switch method
1.9 Programação alternativa 29

95 case ’linhas’
96
97 activos=setdiff([1:ndof]’,[dofs]);
98 U=K(activos,activos)\f(activos);
99 U1=zeros(ndof,1);
100 U1(activos)=U;
101 U=U1;
102
103 case ’penalidade’
104
105 K1=K;
106 K1(dofs,dofs)=K(dofs,dofs)+1e6;
107 f(dofs)=0;
108 U=K1\f;
109
110 case ’usual’
111
112 bcwt=mean(diag(K)); % valor medio de diag(K) para preservar
113 % bom condicionamentgo da matriz de rigidez
114 ufixed=zeros(size(dofs));
115 f=f-K(:,dofs)*ufixed;
116 f(dofs)=ufixed;
117 K(dofs,:)=0;
118 K(:,dofs)=0;
119 K(dofs,dofs)=bcwt*speye(length(dofs));
120 U=K\f;
121
122 end
2
Introdução ao método dos elementos finitos

2.1 Sistema contı́nuos


Embora a solução de problemas contı́nuos tenha muitas semelhanças com
a dos problemas discretos, aqueles baseiam-se em equações diferenciais que
incorporam requisitos de continuidade dos elementos, relações constitutivas e
equilı́brio de elementos.
As equações diferenciais obtidas desta forma têm de ser definidas em todo
o domı́nio do corpo (sistema), complementadas por condições fronteira e por
condições iniciais, em problemas dinâmicos.
Basicamente, podemos gerar as equações diferenciais por duas abordagens:
um método directo e um método variacional. Note-se que o método va-
riacional apresentado pode ser considerado como precursor do método dos
elementos finitos.

2.2 Formulação diferencial


Nas equações diferenciais estabelecem-se requisitos de equilı́brio e de con-
tinuidade interelementar. No entanto, estas equações diferenciais devem, em
geral, ser complementadas com equações que descrevem as condições fronteira
e condições iniciais para análise dinâmica.
Em termos do tipo de equação diferencial a resolver, considere-se a equação
diferencial de segunda ordem no domı́nio x, y

∂2u ∂2u ∂2u ∂u ∂u


A(x, y) 2
+ 2B(x, y) + C(x, y) 2 = φ(x, y, u, , ) (2.1)
∂x ∂x∂y ∂y ∂x ∂y
onde u é uma variável desconhecida. Em função dos parâmetros A, B e C,
definem-se as equações diferenciais como:
32 2 Introdução ao método dos elementos finitos

< 0 elı́pticas

B 2 − 4AC = 0 parabólicas (2.2)

> 0 hiperbólicas

Exemplos destas equações são, respectivamente, a equação de Laplace, a


equação de calor e a equação de onda.
A equação de Laplace tem a forma genérica
 2
∂ φ ∂2φ

k + =0 (2.3)
∂x2 ∂y 2
onde φ é, por exemplo, o potencial e k a permeabilidade, em problemas de
movimentos de água em solos.
A equação de condução de calor pode tomar a forma
∂2θ ∂θ
k 2
= ρc (2.4)
∂x ∂t
onde θ representa a temperatura, k a conductividade, ρ a densidade e c a
capacitância por unidade de massa.
A equação de onda pode assumir a forma
s
∂2θ 1 ∂2u E
= 2 2 ,c = (2.5)
∂x2 c ∂t ρ

u(x, t)

x R0

R(t)

R0

σA|x σA|x+dx

a) Carregamento dx

b) elemento diferencial

Figura 2.1. Barra sujeita a carga súbita

onde E representa o módulo de elasticidade e ρ a densidade.


2.3 Formulação variacional 33

Considere-se, a tı́tulo de exemplo, a figura 2.1 , onde se pretende discutir


a equação de onda. Usando o principio d’Alembert, podemos estabelecer o
equilı́brio de forças num elemento diferencial tı́pico, na forma

∂σ ∂2u
σA|x + A |x − σA|x = ρA 2 |x dx (2.6)
∂x ∂t
A relação constitutiva escreve-se como
∂u
σ = E = E (2.7)
∂x
onde E representa o módulo de elasticidade, σ e  são a tensão e a de-
formação e u o deslocamento axial, sendo ainda t a variável tempo. Combi-
nando as equações anteriores, temos então

∂2u ∂2u
EA = ρA (2.8)
∂x2 ∂t2
ou

∂2u 1 ∂2u
= (2.9)
∂x2 c2 ∂t2
Dado assumir-se que a função é contı́nua, não são precisas constrições para a
continuidade de elementos.
As condições fronteira exprimem-se como
∂u
u(0, t) = 0; EA (L, t) = R0 ; t > 0 (2.10)
∂x
enquanto que as condições iniciais se definem como
∂u
u(x, 0) = 0; (x, 0) = 0 (2.11)
∂t
A formulação fica assim completa com as equações (2.9) a (2.11).
Os problemas envolvendo equações elı́pticas são muitas vezes denominadas
de problemas de fronteira, enquanto que as equações parabólicas e hiperbólicas
são chamadas problemas de valores iniciais.

2.3 Formulação variacional


A formulação variacional baseia-se no cálculo do potencial total do sistema,
Π, e do cálculo da sua variação e minimização

δΠ = 0 (2.12)
em relação às variáveis do problema.
O potencial total Π é também chamado o funcional do problema. Assuma-
se que no problema do funcional a maior derivada da variável em relação às
34 2 Introdução ao método dos elementos finitos

coordenadas espaciais é de ordem m. Trata-se então dum problema variacio-


nal C m−1 . As condições fronteira podem ser do tipo essencial ou natural.
As condições essenciais ou geométricas correspondem à prescrição de deslo-
camentos ou rotações em mecânica de sólidos ou estruturas. A ordem das
derivadas nas condições essenciais, num problema C m−1 , é no máximo m − 1.
As condições de fronteira naturais (também chamadas de força tendo em
conta a prescrição de momentos e forças na mecânica de sólidos e estrutural)
possuem maior derivada de ordem m a 2m − 1.
Nesta formulação usamos um sı́mbolo variacional, δ. Assuma-se então uma
função F para dado valor de x que depende de v (a variável a determinar) e
∂v ∂pv
de , ..., p , para p = 1, 2, ....
∂x ∂v
A primeira variação de F está definida como

∂F ∂F ∂F
δF = δv + δ(dv/dx) + ... + δ(dp v/dxp ) (2.13)
∂v ∂(dv/dx) ∂(d v/dxp )
p

Pode mostrar-se que

dn δv dn v
 
=δ (2.14)
dxn dxn
ou seja, a variação da derivada de v é igual à derivada da variação em v.
Pode também exprimir-se

δ(F + Q) = δF + δQ (2.15)

δ(F Q) = (δF )Q + F (δQ) (2.16)

δ(F )n = n(F )n−1 δF (2.17)


e também
Z Z
δ F (x)dx = δF (x)dx (2.18)

Uma condição importante a respeitar é a de que as variações das variáveis a


determinar (e das m − 1 derivadas) têm de ser zero nas condições fronteira
essenciais.

2.4 Obtenção de equações diferenciais a partir de


funcionais
Pretende-se agora ilustrar estes conceitos em algums exemplos. algumas das
expressões usadas serão mais tarde deduzidas ou melhor compreendidas,
2.4 Obtenção de equações diferenciais a partir de funcionais 35

mas para efeitos de compreensão dos principios variacionais, elas são aqui
avançadas.
Considere-se o problema da figura 2.1, descrito pelas equações (2.9) a
(2.11), onde uma barra de secção constante A é sujeita a uma força distribuida,
q, ao longo de todo o comprimento, sujeita ainda a uma força pontual no final
da barra, R. O funcional é definido por
Z L  2 Z L
1 ∂u
Π= EA dx − uqdx − uL R (2.19)
0 2 ∂x 0

e a condição fronteira (essencial) correspondente ao encastramento por

u0 = 0 (2.20)

onde u0 = u(0, t), uL = u(L, t) e q a força volúmica por unidade de compri-


mento da barra. Invocando δΠ = 0, obtemos
Z L   Z L
∂u ∂u
EA δ dx − δuqdx − δuL R = 0 (2.21)
0 ∂x ∂x 0
 
∂u ∂δu
Tomando δ = , EA=constante, e integrando por partes, obtemos
∂x ∂x
L
∂2u
Z    
∂u ∂u
− 2
+
EA q δudx + EA |x=L − R δuL − EA |x=0 δu0 = 0
0 ∂x ∂x ∂x
(2.22)
Tendo em conta que δu0 = 0 e δu é arbitrário em todos os (outros) pontos,
obtemos a equação diferencial

∂2u
+q =0
EA (2.23)
∂x2
e a condição fronteira natural em x = L
∂u
EA |x=L = R (2.24)
∂x
∂2u
Assumindo q = −Aρ 2 obtemos então a equação diferencial (2.23) é dada
∂t
por

∂2u ∂2u
E = ρ (2.25)
∂x2 ∂t2
que é equivalente a (2.9).
A condição de fronteira natural foi definida em (2.25). O problema vari-
acional é de classe C 0 , ou seja, m = 1. Note-se que, embora ainda não seja
aparente, a incorporação das condições fronteira naturais no funcional faz
com que estas condições não sejam depois impostas no método dos elementos
finitos.
36 2 Introdução ao método dos elementos finitos

x P

Figura 2.2. Coluna sujeita a carga de compressão

Considere-se agora a viga da figura 2.2. O funcional que descreve o com-


portamento desta viga de Euler-Bernoulli, sujeita simultaneamente à flexão e
compressão é dado por

L 2 L
d2 w d2 w
Z  Z  
1 P 1 2
Π= EI dx − dx + kwL (2.26)
0 2 dx2 2 0 dx2 2

onde k representa a rigidez duma mola em x = L, w é o deslocamento trans-


versalda viga e I o momento de inércia à flexão. Seja ainda wL = w|x=L com
as seguintes condições essenciais:
dw
|x=0 = 0 w|x=0 = 0; (2.27)
dx
Tendo em conta a segunda derivada em w, o problema variacional é da classe
C 1 , podendo escrever-se

Z L Z L
00 00
δΠ = 0 → EIw δw dx − P w0 δw0 dx + kwL δwL = 0 (2.28)
0 0

dw d
onde w0 = , etc. No entanto, regista-se que δw00 = (δw0 ), sendo EI
dx dx
constante. Integrando por partes, obtem-se para o primeiro termo do primeiro
membro
Z L Z L
00 00 00 0
EIw δw dx = EIw δw (0) − EI L
w000 δw0 dx (2.29)
0 0
Z L Z L
000 0
Integrando novamente por partes w δw dx, bem como w0 δw0 dx,
0 0
obtem-se
2.4 Obtenção de equações diferenciais a partir de funcionais 37
Z L
(EIw0000 + P w00 ) δwdx + (EIw00 δw0 ) (L) − (EIw00 δw0 ) (0) −
|0
| {z } | {z }
{z } 2 3
1
[(EIw000 + P w0 ) δw](L) + [(EIw000 + P w0 ) δw](0) + kwL δwL = 0 (2.30)
| {z } | {z } | {z }
4 5 6

Tendo em conta que as variações em w0 e w têm de ser nulas em todas as


condições essenciais, temos δw0 = 0 e δw00 = 0, sendo assim os termos (3) e
(5) nulos.
As variações em w e w0 são arbitrárias em todos os outros pontos. Assim,
para satisfazer (2.30), as seguintes equações têm de ser válidas:
• de 1:
EIwIV + P w00 = 0 (2.31)
• de 2:
EIw00 (L) = 0 (2.32)
• de 4 e 6:
(EIw000 + P w0 − kw) (L) = 0 (2.33)
A equação (2.31) representa a equação diferencial do problema, enquanto que
as condições fronteira naturais são dadas por (2.32) e (2.33), correspondentes
ao equilı́brio de momentos e esforços de corte em x = L.
Estabeleça-se agora a equação diferencial de equilı́brio do problema da
figura 2.3 e deduzam-se as condições de fronteira naturais.

A(x) = A0 (2 − x/L)

K
A0
A(x)
R

Figura 2.3. Barra com variação de secção (módulo de elasticidade E)

Tomando o funcional
Z L
1 1
Π= Aσdx − Ru(L) + ku2 (0) (2.34)
0 2 2
ou
38 2 Introdução ao método dos elementos finitos

Z L  2
1 du 1
Π= EA dx − Ru(L) + ku2 (0) (2.35)
0 2 dx 2
Invocando δΠ = 0, obtemos
Z L
EAu0 δu0 dx −Rδu(L) + kuδu(0) = 0 (2.36)
0
| {z }
1

Integrando o termo 1 por partes, a expressão (2.36) toma a forma

Z L
EAu0 δu(0)L − EAu00 δudx − Rδu(L) + kuδu(0) = 0 (2.37)
0

ou

Z L
− EAu00 δudx + (EAu0 − R) δu(L) + (ku − EAu0 ) δu(0) = 0 (2.38)
0

Assim, tendo em conta que δu é arbitrário, temos

−EAu00 = 0, 0<x<L (2.39)


0
EAu = R, x=L (2.40)
0
EAu = ku, x=0 (2.41)
sendo (2.39) a equação diferencial de equilı́brio e (2.40),(2.41) as condições
fronteira naturais.
Considere-se agora a viga da figura 2.4, sujeita a momento flector na
ponta livre. Determine-se o funcional Π e as condições fronteira essenciais.
Determine-se a equação diferencial de equilı́brio e as condições fronteira na-
turais.
2
Tendo em conta que (na formulação de Euler-Bernoulli)  = ddxw2 = w00 , o
funcional pode escrever-se como
L 2
d2 w
Z 
1 dw
Π= EI dx − M (L) (2.42)
0 2 dx2 dx
com condições fronteira essenciais
dw
w(0) = (0) = 0 (2.43)
dx
Tomando δΠ = 0, obtem-se
Z L
δΠ = EIw00 δw00 dx − M δw0 (L) = 0 (2.44)
0
2.4 Obtenção de equações diferenciais a partir de funcionais 39

Figura 2.4. Viga em consola sujeita a momento flector na ponta livre

Torna-se necessário integrar o integral do primeiro membro duas vezes por


partes, obtendo-se na primeira integração
Z L
L
[EIw00 δw0 ]0 − EIw000 δw0 dx −M δw0 (L) = 0 (2.45)
0
| {z }
1

e numa segunda integração por partes no termo 1, obtemos finalmente

Z L
(EIw00 − M ) δw0 (L) − (EIw000 δw) (L) + EIw0000 δwdx = 0 (2.46)
0

Note-se que em (2.46) já não se consideraram os termos correspondentes a


δw0 (0) e δw(0), tendo em conta as condições de fronteira essenciais. Sabendo
que δw são arbitrários, estabelecem-se finalmente as seguintes equações

EIw0000 = 0, 0<x<L (2.47)

EIw00 = M, x=L (2.48)

EIw000 = 0, x=L (2.49)


A equação (2.47) corresponde à equação diferencial de equilı́brio, enquanto
que (2.48) e (2.49) correspondem às condições fronteira naturais, ligadas à
condição de momento flector e esforço de corte, respectivamente.
Note-se que nos problemas apresentados a equação diferencial do problema
e as condições fronteira naturais podem ser derivadas, invocando a estacio-
nareidade do funcional do problema. As condições de fronteira naturais estão
40 2 Introdução ao método dos elementos finitos

implicitas no funcional, enquanto as condições fronteira essenciais são impos-


tas separadamente.
Esta forma ou método variacional proporciona um meio relativamente ex-
pedito de obtenção das equações diferenciais do problema e das condições de
fronteira naturais.

2.5 Métodos de resı́duos pesados e método de Ritz


Foram anteriormente discutidas as formulações diferencial e variacional que
podem ser resolvidas de forma analı́tica por técnicas de integração.
No entanto, para problemas mais complexos, é mais adequado usar métodos
de aproximação. Apresentam-se aqui alguns métodos clássicos nos quais se usa
uma famı́lia de funções tentativa para se obter uma solução aproximada. Estes
métodos estão intimamente ligados com o método dos elementos finitos.
Considere-se um problema estacionário cuja forma diferencial se apresenta
como

L(φ) = r (2.50)
onde L é um operador diferencial linear, φ uma variável do problema e r
uma dada função. A solução do problema deve ainda satisfazer equações ou
condições fronteira do tipo

Bi (φ) = qi |Si , i = 1, 2, .. (2.51)


onde Si é uma dada fronteira do problema.
Estamos interessados nos operadores simétricos e definidos positivos, que
satisfazem a condição de simetria
Z Z
L(u)vdD = L(v)udD (2.52)
D D
onde D representa o domı́nio do operador e u, v são quaisquer funções que
satisfazem as condições fronteira essenciais e naturais. A condição de definida
positiva é dada por
Z
L(u)udD > 0 (2.53)
D
Considere-se o exemplo da figura 2.1 para uma barra cuja resposta é dada
pela equação diferencial

−EAu00 = 0 (2.54)
sujeita às condições fronteira

u(0) = 0; EAu0 (L) = R (2.55)


2.5 Métodos de resı́duos pesados e método de Ritz 41

Para este problema

∂2
L = −EA , φ = u, r = 0 (2.56)
∂x2

B1 = 1, q1 = 0 (2.57)


B2 = EA , q2 = R
∂x
(2.58)

Considere-se o caso R = 0, para verificar da simetria e definida positiva do


operador L:

Z L Z L
00 0 L
−EAu vdx = − [EAu v]0 + EAu0 v 0 dx =
0 0
Z L
L
− [EAu0 v]0 + EAuv 0 (0)L − EAv 00 udx (2.59)
0

Como u = v = 0 em x = 0 e u0 = v 0 = 0 em x = L, temos
Z L Z L
−EAu00 vdx = − −EAv 00 udx (2.60)
0 0

Sendo então o operador simétrico. De (2.59) obtemos


Z L Z L
−EAu00 vdx = − −EAv 00 udx (2.61)
0 0

que cumpre com a condição (2.53).


Uma etapa básica dos métodos dos resı́duos pesados e do método de Ritz
consiste na construção duma solução aproximada na forma
n
X
φ̄ = ai wi (2.62)
i=1

onde wi são funções tentativa ou de aproximação linearmente independentes


e ai parâmetros a determinar.
Nos métodos dos resı́duos pesados, actuamos directamente sobre os opera-
dores diferenciais lineares do domı́nio e da fronteira (2.50) e (2.51). Escolhemos
então as funções wi de (2.62) que satisfaçam as condições de fronteira (2.51)
e calculamos então o resı́duo
42 2 Introdução ao método dos elementos finitos
" n
#
X
R=r−L ai wi (2.63)
i=1

Para a solução exacta temos um resı́duo nulo. Uma boa aproximação será
aquela que possui resı́duo nulo em todos os pontos do domı́nio. Os métodos
a seguir apresentados diferem uns dos outros na forma como calculam ai por
forma a que R seja o mais pequeno possı́vel, nomeadamente através duma
média ponderada do resı́duo.

2.5.1 Método de Galerkin

No método de Galerkin os parâmetros ai são determinados pelas equações


Z
wi RdD = 0, i = 1, 2, ..., n (2.64)
D
sendo D o domı́nio da solução. Note-se que as funções wi correspondem às
mesmas funções usadas para o cálculo do resı́duo. Esta é aliás uma das razões
pelas quais o método dos elementos finitos baseado no método de Galerkin é
o preferido.

2.5.2 Método de mı́nimos quadrados

No método dos mı́nimos quadrados os parâmetros ai são determinados


através da minimização do quadrado do resı́duo, em termos de ai , ou seja, na
forma
Z

R2 dD = 0, i = 1, 2, ..., n (2.65)
∂ai D
Substituindo de (2.63), obtemos um sistema de n equações em termos dos
parâmetros ai , na forma
Z
RL(wi )dD = 0, i = 1, 2, ..., n (2.66)
D

2.5.3 Método de colocação

No método de colocação os parâmetros ai são determinados através


da anulação do resı́duo R em pontos seleccionados (distintos) do domı́nio,
obtendo-se um sistema de n equações em termos dos parâmetros ai , sendo que
a escolha dos pontos influencia de forma significativa a qualidade da solução.
2.5 Métodos de resı́duos pesados e método de Ritz 43

2.5.4 Método de sub-domı́nios

No método dos sub-domı́nios o domı́nio da solução é subdividido em n


sub-domı́nios, sendo anulado o integral do resı́duo em (2.63) para gerar n
equações para os parâmetros ai .
No método de Galerkin a matriz dos coeficientes é simétrica e positiva
definida se L for um operador simétrico. No método dos mı́nimos quadrados
aquela matriz será sempre quadrada, enquanto que nos restantes métodos a
matriz será não simétrica.

Exemplo
A tı́tulo de exemplo para estes métodos considere-se o problema de fronteira
com equação diferencial
u00 + xu = 1
e condições fronteira:
u(0) = 0; u(1) = 1
Defina-se uma solução aproximada, onde se satisfazem as condições de
fronteira essenciais
N
X
u=x+ ai sen(iπx)
i=1

Constroi-se o resı́duo na forma


N
X
u00 + xu − 1 = x2 − 1 + ai (x − (iπ)2 )sen(iπx)
i=1

No método da colocação, usando N = 3, com x = 0.25; 0.5; 0.75, para


x ∈ (0, 1), impôem-se as seguintes condições em termos do erro ou resı́duo

E(x = 0.25) = 0
E(x = 0.50) = 0
E(x = 0.75) = 0
obtendo-se então o seguinte sistema de equações em termos dos parâmetros
ai
 
6.8021 39.2284 62.6330 −0.9375
 9.3696 0.0000 −88.3264 −0.7500 
6.4485 −38.7284 62.2794 −0.4375
sendo então
a1 = −0.0918; a2 = −0.0060; a3 = −0.0012
Obtem-se finalmente a solução com 3 termos:
44 2 Introdução ao método dos elementos finitos

uC = x − 0.0918sen(πx) − 0.0060sen(2πx) − 0.0012sen(3πx)

Usando agora o Método dos sub-domı́nios, com N = 3, onde os vários sub-


domı́nios são definidos por [0..1/3]; [1/3..2/3]; [2/3..1], impomos as condições
Z 1/3
E3 = 0
0
Z 2/3
E3 = 0
1/3
Z 1
E3 = 0
2/3

obtendo-se o sistema de equações


 
1.5361 9.3763 18.8142 −0.3210
 2.9824 0.0173 −18.7435 −0.2469 
1.4463 −9.2345 18.6727 −0.0988

cuja solução é

a1 = −0.1019; a2 = −0.0114; a3 = −0.0030

Obtem-se para este método a solução com 3 termos:

uS = x − 0.1019sen(πx) − 0.0114sen(2πx) − 0.0030sen(3πx)

Considerando agora o método dos minı́mos quadrados, as funções de peso são


obtidos por
∂E3
wj (x) = = [x − (jπ)2 ]sen(jπx)
∂aj
obtendo-se o sistema de equações
 
43.911 4.3544 0.0190 −4.2213
 4.3544 759.69 12.382 −6.3074 
0.0190 12.382 3900.8 −9.8420

com solução
a1 = −0.0954; a2 = −0.0077; a3 = −0.0025
Solução com 3 termos:

uQ = x − 0.0954sen(πx) − 0.0077sen(2πx) − 0.0025sen(3πx)

Usando o método de Galerkin, as funções de peso são obtidas por

wj (x) = φj (x) = sen(jπx)


2.5 Métodos de resı́duos pesados e método de Ritz 45

impondo-se então as condições sobre o resı́duo na forma


Z 1
E3 sen(πx) = 0
0
Z 1
E3 sen(2πx) = 0
0
Z 1
E3 sen(3πx) = 0
0
com o seguinte sistema de equações
 
4.6848 0.0901 0.0000 −0.4473
 0.0901 19.489 0.0973 −0.1592 
0.0000 0.0973 44.163 −0.1109

com solução
a1 = −0.0953; a2 = −0.0077; a3 = −0.0025
Solução com 3 termos:

uG = x − 0.0953sen(πx) − 0.0077sen(2πx) − 0.0025sen(3πx)

Registe-se que a solução de Galerkin é idêntica à dos mı́nimos quadrados.

2.5.5 Método de Ritz

No método de Ritz substituimos as funções tentativa ou de aproximação φ̄ em


Π e geramos n equações em termos de ai , usando δΠ = 0, ou seja,
∂Π
= 0, i = 1, 2, ..., n (2.67)
∂ai
Um aspecto relevante do método de Ritz é que neste as funções de aproximação
devem apenas satisfazer as condições fronteira essenciais, enquanto que no
método de Galerkin todas as condições fronteira (essenciais e naturais) devem
ser satisfeitas.
Considerando o problema anterior, temos

Z 1 X X
jπcos(jπx)(1 + iπai cos(iπx)) − xsen(jπx)(x + ai sen(iπx))+
0
sen(jπx)dx = 0 , j = 1, 2, ..., N
46 2 Introdução ao método dos elementos finitos

X Z 1
ai jπiπcos(jπx)cos(iπx)) − xsen(jπx)sen(iπx)dx =
0
Z 1
x2 sen(jπx) − sen(jπx) − jπcos(iπx)dx, j = 1, 2, ..., N
0

Com N = 3, obtem-se o sistema de equações


 
4.6848 0.0901 0.0000 −0.4473
 0.0901 19.4892 0.0973 −0.1592 
0.0000 0.0973 44.1632 −0.1109

que conduz a uma solução idêntica ao método de Galerkin.

Exemplo
Considere-se agora o problema da figura 2.2, usando uma aproximação

w = a1 x2 + a2 x3 (2.68)
obtendo-se o funcional

L 2 L 2
d2 w
Z  Z 
1 P dw 1
Π= EI dx − dx + k(w(L))2 (2.69)
2 0 dx2 2 0 dx 2

A função em (2.68) satisfaz as condições de fronteira essenciais:


dw
(0) = 0 w(0) = (2.70)
dx
Substituindo (2.68) em (2.69) obtemos então

Z L
1 2
Π= EI (2a − 1 + 6a − 2x) dx
2 0
Z L
P 2 1
− 2a1 x + 3a2 x2 dx + k(a1 L2 + a2 L3 )2 (2.71)
2 0 2

∂Π ∂Π
Invocando agora = 0, = 0, obtemos
∂a1 ∂a2

2L 3L2
      
4 1 L a1
2EI + kL
3L2 6L3 L L2 a2
    
4/3 3L/2 a1 0
− P L3 = (2.72)
3L/2 9L2 /5 a2 0
2.6 Formulação pelo método dos deslocamentos 47

A solução deste problema Kφ = P Bφ fornece dois valores para P para os


quais w em (2.68) é não nulo. O valor mais pequeno de P coincide com a
carga critica de encurvadura da coluna.
Tendo em conta que no método de Ritz não é necessário satisfazer as
condições de fronteira naturais, o método de Galerkin é usado na prática como
um método alternativo que lhe permite usar as mesmas funções do método de
Ritz. Em mecânica estrutural esta forma alternativa do método de Galerkin
é denominada princı́pio dos deslocamentos virtuais.

2.6 Formulação pelo método dos deslocamentos


A análise linear de estruturas é uma parte importante das aplicações do
método dos elementos finitos. Foi aliás a primeira aplicação prática do método
e continua a ser hoje muito importante para estudos da qualidade do método.
Na solução por elementos finitos, a formulação pelo método dos desloca-
mentos é ainda hoje uma prática habitual. Apresenta-se aqui a formulação de
elementos finitos pelo principio dos trabalhos virtuais.
Recorrendo à figura 2.5, onde uma barra é sujeita a uma força distribuida
q(x) e uma carga concentrada R, podemos apresentar a formulação diferencial

q(x) = ax
R
x q(x)

Figura 2.5. Barra sujeita a uma força distribuida q(x) e uma carga concentrada R

d2 u
EA + q(x) = 0, no domı́nio (2.73)
dx2
e condições fronteira essenciais

u(0) = 0 (2.74)

e naturais
du
EA (L) = R (2.75)
dx
Sendo q(x) = ax, obtemos a solução analitica

du − ax3
   
1 1
u(x) = + R + aL2 x (2.76)
EA 6 2
a qual corresponde à solução exacta.
48 2 Introdução ao método dos elementos finitos

Tendo em conta que (2.73) é válido para todos os pontos, então pode
escrever-se
d2 u
 
EA 2 + q(x) δu = 0 (2.77)
dx
Tendo em conta que δu(x) é uma variação arbitrária com δu(x = 0) = 0,
então também se torna válida a expressão
Z L
d2 u

EA 2 + q(x) δudx = 0 (2.78)
0 dx
Integrando por partes o primeiro termo do primeiro membro e rearranjando,
obtem-se Z L Z L  L
dδu du du
EA dx = q(x)δudx + EA δu (2.79)
0 dx dx 0 dx 0

Temos então a expressão do princı́pio dos deslocamentos virtuais(ou do


princı́pio dos trabalhos virtuais), na forma
Z L Z L
dδu du
EA dx = q(x)δudx + Rδu|x=L (2.80)
0 dx dx 0
com
u(x = 0) = 0, δu(x = 0) = 0 (2.81)
De (2.80) podemos também escrever
(Z "  2 # )
L
EA du
δ − q(x)u dx − Ru|x=L = 0 (2.82)
0 2 dx

que, conjuntamente com (2.81) constitui o princı́pio dos deslocamentos virtu-


ais para este problema.

2.7 Formulação geral das equações de equilı́brio


Tendo em conta uma formulação tridimensional discute-se o princı́pio dos
deslocamentos virtuais, aqui usado como base da solução de elementos finitos.
Considere-se o equilı́brio dum corpo tridimensional com um referencial
fixo X, Y, Z. O corpo é fixo numa região Su , correspondente a deslocamentos
prescritos USu , sujeito a tracções superficiais f Sf , na superfı́cie Sf .
O corpo é também sujeito a forças de corpo externas f B (forças por unidade
de volume) e forças concentradas RiC (onde i é o ponto de aplicação da carga).
As forças externas aplicadas podem ser decompostas nas coordenadas X, Y, Z,
na forma:
2.7 Formulação geral das equações de equilı́brio 49
B
 
fX
 
B
 B
f =  fY 

 (2.83)
 
B
fZ
 S 
f f
 X 
 
f Sf =  fYSf  (2.84)
 
 
 
Sf
fZ
 i 
RCX
 
i
 i 
RC =  RCY 

 (2.85)
 
i
RCZ
Os deslocamentos do corpo na configuração indeformada apresentam-se no
sistema coordenado X, Y, Z como
 
U
U=V  (2.86)
W
e USu na superfı́cie Su . As deformações associadas a U são obtidas por
 
XX
 Y Y 
 
 ZZ 
= γXY 
 (2.87)
 
 γY Z 
γXZ
onde

∂U ∂V ∂W
XX = , Y Y = , ZZ =
∂X ∂Y ∂Z
(2.88)
∂U ∂V ∂V ∂W ∂U ∂W
γXY = + , γY Z = + , γXZ = +
∂Y ∂X ∂Z ∂Y ∂Z ∂X
As tensões correspondentes a  são
50 2 Introdução ao método dos elementos finitos
 
σXX
 σY Y 
 
 σZZ 
σ=
  (2.89)
 σXY 

 σY Z 
σXZ
onde

σ = C (2.90)
sendo C é a matriz de elasticidade, matriz constitutiva do material ou tensão-
deformação. Nesta fase do texto, assumem-se relações constitutivas lineares,
tal que

• os deslocamentos são infinitamente pequenos e as equações de equilı́brio


podem referir-se à configuração indeformada
• a matriz C não depende do estado de tensão

2.8 Princı́pio dos trabalhos virtuais


A solução por elementos finitos baseada em deslocamentos considera o princı́pio
dos deslocamentos virtuais, que assume que num corpo em equilı́brio, para
quaisquer deslocamentos virtuais (pequenos), que são nulos para correspon-
dentes deslocamentos prescritos, impostos ao corpo em equilı́brio, o trabalho
virtual interno total é igual ao trabalho virtual externo total, ou seja,

Z Z Z X
T T B
δ σdV = δU f dV + δUSf T f Sf dS + δUTi RiC (2.91)
V V Sf i

onde δU são os deslocamentos virtuais e δ as correspondentes deformações


virtuais, obtidas por derivação dos deslocamentos virtuais.
Para um corpo tridimensional temos um conjunto de equações diferenciais
de equilı́brio
∂σXX ∂τXY ∂τXZ B
+ + + fX =0
∂X ∂Y ∂Z
∂τXY ∂σY Y ∂τY Z
+ + + fYB = 0 (2.92)
∂X ∂Y ∂Z
∂τXZ ∂τY Z ∂σZZ
+ + + fZB = 0
∂X ∂Y ∂Z
(ou σij , j + fiB = 0), no domı́nio do corpo, com condições naturais (em forças)
2.8 Princı́pio dos trabalhos virtuais 51
S
σij .nj = fi f , em Sf (2.93)
e condições essenciais (em deslocamentos)

ui = uiSu , em Su (2.94)
S T
onde a fronteira S = Su Sf , Su Sf = 0 e nj são as componentes do vector
normal unitário à superfı́cie Sf do corpo.
Considerando os deslocamentos virtuais δui satisfazendo

δui = 0, em Su (2.95)
então

σij , j + fiB δui = 0



(2.96)
e
Z
σij , j + fiB δui dV = 0

(2.97)
V

Sendo δui arbitrário, (2.94) pode ser satisfeito se e só se a quantidade entre
parentesis em (2.97) desaparecer. Assim, (2.97) é equivalente ao sistema (2.92).
Usando a identidade

(σij δui ) , j = σij , jδui + σij δui , j (2.98)


obtendo-se, então de (2.97)
Z
(σij δui ) , j − σij δui , j + fiB δui dV = 0
 
(2.99)
V

Usando agora a identidade (decorrente do teorema da divergência):


Z Z
(σij δui ) , jdV = (σij δui ) nj dS (2.100)
V S
obtemos
Z Z
−σij δui , j + fiB δui dV +

(σij δui ) nj dS = 0 (2.101)
V S

Tendo em conta (2.93) e (2.95) obtem-se


Z Z
B
 S S
−σij δui , j + fi δui dV + fi f δui f dS = 0 (2.102)
V Sf

Tendo em conta a simetria do tensor das tensões σij = σji , temos

σij δui , j = σij [1/2 (δui , j + δuj , i)] = σij δij (2.103)
Obtendo-se então de (2.102)
52 2 Introdução ao método dos elementos finitos

Z Z Z
S S
−σij δij dV = fiB δui dV + fi f δui f dS (2.104)
V V Sf

2.9 Equações de elementos finitos


Na análise de elementos finitos aproxima-se o corpo como um conjunto de
elementos finitos discretos interligados em pontos nodais nas fronteiras dos
elementos. Os deslocamentos medidos no sistema coordenado local x, y, z,
em cada elemento são assumidos como função dos deslocamentos em n pontos
no elemento. Assim, para cada elemento e, temos

u(e) (x, y, z) = N(e) (x, y, z)Û (2.105)


(e)
onde N representa a matriz de interpolação dos deslocamentos, o supers-
crito e representa o elemento e, sendo ainda Û um vector com três componen-
tes de deslocamentos globais Ui , Vi , Wi em todos os pontos nodais, ou seja, Û
é um vector com 3N componentes:

ÛT = [U1 V1 W1 U2 V2 W2 ... UN VN WN ] (2.106)

Mais genericamente podemos escrever

ÛT = [U1 U2 ... UN ] (2.107)


onde Ui possui três componentes segundo X, Y, Z.
Podemos agora calcular as deformações nos elementos como

(e) (x, y, z) = B(e) (x, y, z)Û (2.108)


onde B(e) representa a matriz deformação-deslocamento, cujas linhas são ob-
tidas por derivação das linhas de N(e) .
As tensões são então calculadas, para cada elemento finito, usando

σ (e) = C(e) (e) (2.109)


(e) (e)
onde C é a matriz de elasticidade do elemento e e σ representa o vector
de tensões do elemento.
Tendo em conta a suposição do campo de deslocamentos em cada ele-
mento, podemos agora derivar as equações de equilı́brio, como uma soma de
integrações sobre o volume e área de todos os elementos finitos:
2.9 Equações de elementos finitos 53
XZ XZ
δ(e)T σ (e) dV (e) = δu(e)T f B(e) dV (e) +
e V (e) e V (e)
XZ X
δuS(e)T f S(e) dS (e) + δu(i)T RiC (2.110)
(e) (e)
e S1 ,S2 ,... i

(e) (e)
onde e = 1, 2, ...k, sendo k o número máximo de elementos e S1 , S2 , ...
as diversas superfı́cies dos elementos que fazem parte da superfı́cie do corpo
S. Note-se que, em elementos que estejam completamente cercados, não são
consideradas estas superfı́cies, enquanto que para elementos na superfı́cie do
corpo, podem existir uma ou mais superfı́cies dos elementos nos integrais de
superfı́cie. Note-se ainda que em (2.110) os pontos nodais foram colocados em
pontos onde as forças pontuais são aplicadas.
As relações entre os deslocamentos e as deformações virtuais exprimem-se
como

δu(e) (x, y, z) = N(e) (x, y, z)δ Û (2.111)

δ(e) (x, y, z) = B(e) (x, y, z)δ Û (2.112)


Substituindo em (2.110) obtem-se

XZ XZ
δ ÛT B(e)T C(e) B(e) dV (e) = δ ÛT N(e)T f B(e) dV (e) +
V (e) V (e)
e e
XZ X
δ ÛT NS(e)T f S(e) dS (e) + δ ÛT RiC (2.113)
(e) (e)
e S1 ,S2 ,... i

onde NS(e) são as funções de forma ou matrizes de interpolação dos desloca-


mentos na superfı́cie, tendo em conta coordenadas de superfı́cie adequadas,
e RC é o vector de forças pontuais aplicadas nos nós após espalhamento de
matrizes. Note-se que a componente i em RiC corresponde à componente i em
Û.
Através de (2.113) podem então obter-se as equações de equilı́brio, em
termos dos (desconhecidos) deslocamentos nodais, aplicando o princı́pio dos
trabalhos virtuais n vezes, impondo deslocamentos virtuais unitários para
todos os componentes de δ Û, ou seja, δ Û = e1 , δ Û = e2 , ..., onde ei são os
elementos da base canónica de Rn , tal que o resultado é dado por

KU = R (2.114)
e
R = RB + RS + RC (2.115)
Denominemos, em seguida, Ū = U, por razões de conveniência de escrita.
A matriz de rigidez da estrutura é agora expressa por
54 2 Introdução ao método dos elementos finitos

XZ
K= B(e)T C(e) B(e) dV (e) (2.116)
e V (e)
| {z }
K(e)

O vector de cargas R inclui as forças de corpo


XZ
RB = N(e)T f B(e) dV (e) (2.117)
V (e)
e | {z }
(e)
RB

as forças de superfı́cie
XZ
RS = δNS(e)T f S(e) dS (e) (2.118)
(e) (e)
e S1 ,S2 ,...
| {z }
(e)
RS

e as forças concentradas RC . Note-se que, tal como para a matriz de rigidez,


também para o vector de forças se adicionam as contribuições dos elementos
naquilo a que se designa por método da rigidez directa.
Caso as forças variem com o tempo, os deslocamentos também variam com
o tempo, tornando-se necessário incluir termos de inércia. Usando o principio
d’Alembert, a contribuição para o vector de forças R por parte das forças de
corpo é
XZ h i
RB = N(e)T f B(e) − ρ(e) N(e) Ü dV (e) (2.119)
e V (e)

onde f B(e) não contém termos de inércia, Ü representa as acelerações virtuais,


correspondentes às segundas derivadas em ordem ao tempo e ρ(e) é a densidade
do elemento e.
As equações de equilı́brio dinâmico são neste caso

MÜ + KU = R (2.120)
onde agora U e R dependem do tempo.
A matriz de massa da estrutura é agora calculada como
XZ
M= N(e)T ρ(e) N(e) dV (e) (2.121)
V (e)
e | {z }
M(e)

Caso a energia seja dissipada durante a vibração, introduzem-se forças de


amortecimento que constituem contribuições adicionais para as forças de
corpo, na forma:
2.9 Equações de elementos finitos 55
XZ h i
RB = N(e)T f B(e) − ρ(e) N(e) Ü − k (e) N(e) U̇ dV (e) (2.122)
e V (e)

onde U̇ representa as velocidades nodais e k (e) um parâmetro de amorteci-


mento. As equações de equilı́brio são então dadas por:

MÜ + PU̇ + KU = R (2.123)


sendo P a matriz de amortecimento da estrutura, dada por
XZ
P= N(e)T k (e) N(e) dV (e) (2.124)
V (e)
e | {z }
P(e)

Na solução por elementos finitos, as equações de equilı́brio não são satisfeitas


exactamente em todos os pontos considerados, havendo duas propriedades que
são satisfeitas em qualquer malha de elementos finitos. A primeira propriedade
refere-se ao equilı́brio nos nós, enquanto que a segunda propriedade se refere
ao equilı́brio no elemento.
Considere-se a figura 2.6, representando elementos contı́guos. Na figura
2.7, ilustram-se as duas propriedades referidas.

q!1 q

e!1 e

Figura 2.6. Rede de elementos finitos

Considere-se que em cada elemento finito e os vectores de forças nodais


são dados por
Z
T
F(e) = B(e) σ (e) dV (e) (2.125)
V (e)
56 2 Introdução ao método dos elementos finitos
Soma das foras F(e)
Equilibram as foras externas aplicadas

q-1 q

e-1 e

Foras F(e) em equilibrio

Figura 2.7. Equilı́brio de forças nos nós e em cada elemento

onde σ (e) = C(e) (e) . De acordo com a primeira propriedade, em cada nó,
a soma das forças nodais está em equilı́brio com as forças externas aplicadas
(incluindo forças de corpo, de inércia, concentradas e de amortecimento). De
acordo com a segunda propriedade, cada elemento está em equilı́brio sob as
suas forças F(e) . A propriedade 1 é satisfeita, tendo em conta que
X
F(e) = KU (2.126)
e

A propriedade 2 é satisfeita, desde que a matriz de interpolação N(e) satisfaça


requisitos de convergência (incluindo a condição que o elemento possa repre-
sentar modos rigidos). Para um elemento e, sujeito a forças nodais, impõe-se
deslocamentos virtuais correspondentes a movimentos de corpo rigido. Para
cada deslocamento de corpo rigido virtual, ou δû , temos

Z  T Z
δûT F(e) = B(e) δû σ (e) dV (e) = δ(eT ) σ (e) dV (e) = 0 (2.127)
V (e) V (e)

dado que δ(e) = 0. Verifica-se então que para todos os movimentos de corpo
rigido, as forças F(e) estão em equilı́brio.
Assim, na análise por elementos finitos
• a estrutura é idealizada como um conjunto interligado de elementos dis-
cretos ligados em nós
• as forças externas aplicadas (forças de corpo, forças tractivas, forças de
inércia, forças concentradas) são atribuidas a esses nós, usando o princı́pio
2.9 Equações de elementos finitos 57

dos trabalhos virtuais para obter forças nodais equivalentes às forças apli-
cadas
• as forças nodais equivalentes às forças externas aplicadas são equilibradas
pelas forças nodais equivalentes às tensões internas nos elementos, ou seja
X
F(e) = R (2.128)
e

• as equações de compatibilidade de tensão-deformação são satisfeitas exac-


tamente
3
Elementos finitos isoparamétricos e elementos
de barra

3.1 Introdução
Conforme já referido anteriormente, um aspecto muito importante de qualquer
cálculo por elementos finitos é o cálculo de matrizes de elementos finitos, entre
outras, a matriz de rigidez, a matriz de massa, o vector de cargas nodais
equivalente às cargas exteriores aplicadas.
Um dos avanços mais significativos no método dos elementos finitos foi
obtido Irons [121], na proposta de elementos finitos isoparamétricos.
A ideia básica dos elementos finitos isoparamétricos é a de que a relação
entre os deslocamentos no interior do elemento e os deslocamentos nodais pode
ser directamente estabelecida através de funções de interpolação (também
chamadas funções de forma).

3.2 Elemento de barra de 2 nós


Considere-se o exemplo dum elemento de barra, para a ilustração do cálculo
da matrix de rigidez. Assuma-se que a barra se situa no eixo global X, como
ilustrado na figura 3.1. O primeiro passo reside na relação entre as coordenadas
globais X e as coordenadas naturais ξ, onde −1 ≤ ξ ≤ 1. A relação é então
dada por
1 1
X= (1 − ξ)X1 + (1 + ξ)X2 (3.1)
2 2
ou
2
X
X= Ni Xi (3.2)
i=1

onde
1 1
N1 = (1 − ξ); N2 = (1 + ξ) (3.3)
2 2
60 3 Elementos finitos isoparamétricos e elementos de barra

representam as funções de forma, que traduzem de forma única a relação entre


as coordenadas X e ξ na barra.
Os deslocamentos globais da barra são expressos de forma semelhante às
coordenadas globais:
2
X
U= Ni Ui (3.4)
i=1

A interpolação das coordenadas e dos deslocamentos dos elementos, usando


as mesmas funções de forma, definidas no sistema de coordenadas naturais,
constitui a base da formulação de elementos finitos isoparamétricos.
O cálculo das deformações é estabelecido, usando a regra da cadeia:
dU dU dξ
= = (3.5)
dX dξ dX
onde
dU U2 − U1
= (3.6)
dξ 2
de (3.4) e
dX X2 − X1 L
= = (3.7)
dξ 2 2
de (3.1), onde L é o comprimento da barra.

X2

U1 U2
Z X, U

ξ = −1 ξ = +1

X1

Figura 3.1. Elemento de barra no sistema coordenado global e natural

Assim, obtem-se
U2 − U1 2 U2 − U1
= = (3.8)
2 L L
Tendo em conta a relação entre deformações e deslocamentos  = BU, obte-
mos então a chamada matriz de deformações-deslocamento ou matriz B,
3.3 PTV 61

1 
−1 1 B= (3.9)
L
A matriz de rigidez é então obtida por

EA 1 −1 
Z  

K= 2 −1 1 Jdξ (3.10)
L −1 1
onde J é o jacobiano, que relaciona o comprimento do elemento no sistema
coordenado global para o correspondente comprimento no sistema natural, ou
seja

dX = Jdξ (3.11)
Temos então
dX L
=J = (3.12)
dξ 2
Obtemos então, a matriz de rigidez em (3.10), como

EA 1 1 −1
Z    
EA 1 −1
K= dξ = (3.13)
2L −1 −1 1 L −1 1

3.3 PTV
Note-se que esta matriz de rigidez também poderia ser obtida, de outras for-
mas. Aplicando o princı́pio dos trabalhos virtuais, estabelece-se
Z L Z L N
X
T T
A δ σdx = δu f dx + δui Fi (3.14)
0 0 i=1
ou
Z L Z L N
X
A δuT BT EBudx = δuT f dx + δui Fi (3.15)
0 0 i=1

ou ainda
Z L Z L N
X
δuT EA BT Bdxu = δuT f dx + δui Fi (3.16)
0 0 i=1

onde Fi representam as forças pontuais eventualmente actuantes nos nós da


barra e onde f representa uma força distribuida. Sabendo que dx = L2 dξ, pode
escrever-se o mesmo integral em coordenadas naturais na forma
Z 1 Z 1 N
EAL L T X
δuT BT Bdξu = δu f dξ + δui Fi (3.17)
2 −1 −1 2 i=1
62 3 Elementos finitos isoparamétricos e elementos de barra

Sendo os deslocamentos virtuais arbitrários, pode então escrever-se


 Z 1    Z 1 N
EAL 1 −1   L T X
−1 1 dξ u = N f dξ + Fi (3.18)
2 −1 L2 1 −1 2 i=1

ou
Ke u = f e (3.19)
sendo a matriz de rigidez obtida por

EA 1 −1 
Z  
Ke =

−1 1 dξ (3.20)
2L −1 1

Nas equações anteriores N representa a matriz de funções de forma do


elemento, composta por
 
N = N1 N2 (3.21)

3.4 Funções de forma


Note-se que as funções de forma possuem algumas propriedades importantes:
• são unitárias no nó a que respeitam e nulas
P nos restantes
• possuem a partição da unidade, ou seja, Ni = 1
As funções de forma devem tabém ser deriváveis no interior do domı́nio
do elemento finito e contı́nuas na fronteira dos elementos. A maior parte das
funções de forma são da classe C 0 , produzindo os chamados elementos C 0 .
Alguns elementos, como por exemplo os elementos de viga de Euler-Bernoulli
necessitam de maiores derivadas, pelo que são usadas funções de forma C 1 .
Se no integral da matriz de rigidez forem requeridas derivadas de ordem m,
então torna-se necessário elementos de classe C m−1 . Caso isto aconteça, diz-
se que os elementos são compatı́veis ou conformes. Caso contrário, dizem-se
não conformes ou incompatı́veis. As funções de forma devem também usar
polinómios completos.
É habitual usar-se um conjunto de funções de forma de classes já estabe-
lecidas, por exemplo as que resultam dos polinómios de Lagrange, na forma
n  
Y x − xj
Ni (x) = (3.22)
xi − xj
j=1(j6=i)

Para um elemento de 2 nós, obtém-se então as funções já estabelecidas:


x − x2 x2 − x
N1 (x) = = (3.23)
x1 − x2 L
3.4 Funções de forma 63
x − x1 x − x1
N2 (x) = = (3.24)
x2 − x1 L
Na maior parte das vezes usa-se uma formulação em coordenadas naturais,
conforme ilustrado na figura 3.1, onde se introduz a coordenada natural
x − xc
ξ=2 (3.25)
L
onde xc representa a coordenada central do elemento. Note-se que ξ ∈ [−1, 1].
Por analogia pode escrever-se
n  
Y ξ − ξj
Ni (ξ) = (3.26)
ξi − ξj
j=1(j6=i)

Sabendo que ξ1 = −1 e ξ2 = 1, podem então calcular-se as funções de forma


em coordenadas naturais para um elemento finito de 2 nós
ξ − ξ2 1
N1 (ξ) = = (1 − ξ) (3.27)
ξ1 − ξ2 2
ξ − ξ1 1
N2 (ξ) = = (1 + ξ) = 1 − ξ 2 (3.28)
ξ2 − ξ1 2
Para um elemento de 3 nós (ξ1 = −1, ξ2 = 0, ξ3 = 1), obtem-se as correspon-
dentes funções de forma, conforme ilustrado na figura 3.2

N2
N3
N1

Figura 3.2. Elemento de barra de três nós. Funções de forma quadráticas para
elemento de três nós

(ξ − ξ2 )(ξ − ξ3 ) 1
N1 (ξ) = = ξ(ξ − 1) (3.29)
(ξ1 − ξ2 )(ξ1 − ξ3 ) 2

(ξ − ξ1 )(ξ − ξ3 )
N2 (ξ) = = (1 + ξ)(1 − ξ) (3.30)
(ξ2 − ξ1 )(ξ2 − ξ3 )
(ξ − ξ1 )(ξ − ξ2 ) 1
N3 (ξ) = = ξ(ξ + 1) (3.31)
(ξ3 − ξ1 )(ξ3 − ξ3 ) 2
64 3 Elementos finitos isoparamétricos e elementos de barra

Note-se que se pretende agora estabelecer uma formulação isoparamétrica no


dominio natural, ou seja

u(ξ) = N1 (ξ)u1 + N2 (ξ)u2 (3.32)


A derivação de u é obtida através da derivação das funções de forma , ou seja,
a deformação é obtida por
du dN1 dN2
= = u1 + u2 (3.33)
dx dx dx
A derivação em ordem às variáveis reais x faz-se através da regra da cadeia
dN1 dN1 dξ 1 dξ
= =− (3.34)
dx dξ dx 2 dx
dN2 dN2 dξ 1 dξ
= = (3.35)
dx dξ dx 2 dx
Sendo então a deformação obtida por
1 dξ 1 dξ
=− u1 + u2 (3.36)
2 dx 2 dx
Note-se também que é possı́vel exprimir a relação entre deformações e deslo-
camentos na forma matricial. Por exemplo, para um elemento finito de dois
nós

  
1 dξ 1 dξ 1 1 1 1 u1
=− u1 + u2 = − u1 + u2 = − , (3.37)
2 dx 2 dx L L L L u2

onde
 
1 1
B= − , (3.38)
L L
representa a matriz de deformações, muito usual na formulação de elementos
finitos baseados em deslocamentos.

3.5 Integração numérica


Na maior parte dos elementos finitos torna-se impraticável calcular as matri-
zes de rigidez K e vector de cargas f , sem recurso a integração numérica. Aqui
pretende-se ilustrar os principais conceitos. Apresenta-se apenas a integração
de Gauss-Legendre, mais conhecida por integração de Gauss, por ser este
o método mais usado nos elementos finitos. Nesta parte do texto apresenta-se
apenas a integração em dominios unidimensionais, enquanto em breve se apre-
senta a integração numérica para dominios bidimensionais ou tridimensionais.
3.5 Integração numérica 65

Considere-se uma função f (x), x ∈ [−1, 1]. Na regra de integração de


Gauss, o integral
Z 1
I= f (x)dx (3.39)
−1

é expresso na forma dum somatório estendido a p pontos de Gauss (do interior


do elemento finito) onde se multiplica o valor da função f nesses pontos p por
pesos, na forma
Z 1 p
X
I= f (x)dx = f (xi )Wi (3.40)
−1 i=1

onde Wi representam os pesos correspondentes ao ponto i. Na tabela 3.1


apresentam-se as coordenadas e pesos para a técnica de integração de Gauss.
Note-se que esta técnica de integração de grau n fornece uma solução exacta
para um polinómio de grau 2n − 1.

Tabela 3.1. Coordenadas e pesos para a técnica de integração de Gauss (apenas


até 4 pontos)

n ±xi Wi
1 0.0 2.0
2 0.5773502692 1.0
3 0.774596697 0.5555555556
0.0 0.8888888889
4 0.86113663116 0.3478548451
0.3399810436 0.6521451549

Na figura 3.3 ilustram-se as posições de alguns pontos de Gauss em elementos


finitos 1D.

1 2 3 ξ
a)
ξ1 = 0

b) √ √
ξ1 = −1/ 3 ξ2 = 1/ 3

Figura 3.3. Integração de Gauss em dominios unidimensionais

Exemplo 4.1
Considere-se o integral dum polinómio de quarto grau
66 3 Elementos finitos isoparamétricos e elementos de barra
Z 1
1 + x + x2 + x3 + x4 dx

I= (3.41)
−1

cuja solução exacta é 3.0666. Usemos agora vários pontos de integração (figura
3.3), para podermos avaliar da qualidade da técnica de integração.
• Um ponto de integração: p = 1; x1 = 0; W1 = 2 → I = W1 f (x1 ) = 2
• Dois pontos de integração: p = 2; x1 , x2 = ±0.57735; W1 , W2 = 1 → I =
W1 f (x1 ) + W2 f (x2 ) = 2.8888
• Três pontos de integração: p = 3; x1 , x3 = ±0.77459, x2 = 0.0; W1 , W3 =
0.5555, W2 = 0.8888 → I = W1 f (x1 ) + W2 f (x2 ) + W2 f (x2 ) = 3.0666
(valor exacto)
Verifica-se assim que uma integração de grau 2 não satisfaz a integração
exacta, porque 2 × 2 − 1 = 3, sendo que o polinómio é de grau 4. É necessário,
assim, utilizar um polinómio de grau 3 para poder integrar exactamente um
polinómio de grau 3.

3.6 Código para problema de barra


No programa seguinte ilustra-se um programa MATLAB para a solução do
problema de barra bi-encastrada de secção constante, ilustrada na figura 3.4,
com módulo de elasticidade E = 30e6, área A = 1.

30000

(1) (2) (3)


1 2 3 4
3@30

Figura 3.4. Barra bi-encastrada sujeita a carga pontual

O primeiro código (barra.m) recorre ao cálculo directo da matriz de rigidez


1 function barra(method)
2
3 % problema de barra encastrada, sujeita a forca pontual
4
5 % mdulo E, Area A, L: comprimento de barra
6 E = 30e6;A=1;EA=E*A; L = 90;
7
8 % geracao de elementos e nos
3.6 Código para problema de barra 67

9 numx = 3;
10 node=linspace(0,L,numx+1);
11 ii=1:numx; element(:,1)=ii; element(:,2)=ii+1;
12 numnode=size(node,2);
13 numelem=size(element,1);
14
15 %matriz de rigidez
16 K=sparse(numnode,numnode);
17 for e=1:numelem; j=element(e,:);
18 length_element=node(j(2))-node(j(1));
19 k = rigidezBarra(length_element,EA);
20 K(j,j)=K(j,j)+k;
21 end;
22
23 %vector de forcas
24 f=zeros(numnode,1);
25 f(2)=3000.0;
26
27 % Condicoes fronteira e solucao
28 dofs=[1;4];
29
30 % nos livres: activos
31 U=zeros(numnode,1);
32 U = BC_solucao(method,dofs,numnode,K,f);
33
34 % escrita de resultados
35 escrita(U,dofs,K);
36 % end
37
38 %
39
40 function k = rigidezBarra(L,EA)
41
42 % funcao para calcular rigidez de barra
43 % k : matriz de rigidez
44
45 k=EA/L*[1 -1;-1 1];

enquanto que o segundo código (barraisoparametrica.m) recorre à for-


mulação isoparamétrica. Note-se que as vantagens da formulação isoparamétrica
são mais evidentes em dominios bi e tridimensionais. Ambos produzem os mes-
mos resultados em termos de deslocamentos. No primeiro código calculam-se
as reacções, enquanto que no segundo código se calculam as tensões nos ele-
mentos. Note-se que neste código se utilizam elementos de barra de dois nós.
1 function barraisoparametrica(method)
2
3 % problema de barra encastrada, sujeita a forca pontual
4
68 3 Elementos finitos isoparamétricos e elementos de barra

5 % mdulo E, Area A, L: comprimento de barra


6 E = 30e6;A=1;EA=E*A; L = 90;
7
8 % geracao de elementos e nos
9 numx = 3;
10 node=linspace(0,L,numx+1);xx=node;
11 ii=1:numx; element(:,1)=ii; element(:,2)=ii+1;
12 numnode=size(node,2);
13 numelem=size(element,1);
14
15 %matriz de rigidez
16 K=sparse(numnode,numnode);
17
18 for e=1:numelem;
19 indice=element(e,:); nn=length(indice);
20 length_element=node(indice(2))-node(indice(1));
21 detJ0=length_element/2;invJ0=1/detJ0;
22 % ponto de gauss central (xi=0, peso W=2)
23 N=([1,1]/2)’;
24 dNdxi=[-1;1]/2;
25 dNdx=dNdxi*invJ0;
26 % matriz B
27 B=zeros(1,nn); B(1:nn) = dNdx(:);
28
29 K(indice,indice)=K(indice,indice)+B’*B*2*detJ0*EA;
30 % longo da barra
31 end
32
33 %vector de forcas
34 f=zeros(numnode,1);
35 f(2)=3000;
36
37 % Condicoes fronteira e solucao
38 fixedNodeW =find(xx==min(node(:)) | xx==max(node(:)))’; dofs=[fixedNodeW]
39 U=zeros(numnode,1);
40 U = BC_solucao(method,dofs,numnode,K,f);
41
42 % escrita de resultados
43 escrita(U,dofs,K);
44
45 % tensoes
46 stress=zeros(numelem,size(element,2),1);
47 stressPoints(1)=[-1];stressPoints(2)=[1];
48 for e=1:numelem
49 indice=element(e,:); indiceB=[indice]; nn=length(indice);
50 for q=1:nn
51 pt=stressPoints(q);
52 N=([1-pt,1+pt]/2)’;
53 dNdxi=[-1;1]/2;
3.6 Código para problema de barra 69

54 dNdx=dNdxi*invJ0;
55 % B
56 B=zeros(1,nn); B(1:nn) = dNdx(:)’;
57 % deformacao do elemento no ponto de tensao
58 strain=B*U(indiceB); stress(e,q)=E*strain;
59 end
60 end
61
62 strain
63 stress

Apresentamos agora uma explicação detalhada do código, pela sua re-


levância noutros códigos mais adiante. Nas instruções seguintes usamos várias
funções importantes, em particular o linspace que permite uma divisão re-
gular de coordenadas entre 0 e L,colocando essas coordenadas na variável
node.

node=linspace(0,L,numelem+1);xx=node;

Na instrução
for i=1:numelem; element(i,1)=i; element(i,2)=i+1;end
faz-se a geração dos nós em cada elemento, através dum ciclo FOR/END.
Esta forma de gerar as conectividades é interessante se se quiser realizar vários
testes com diferentes número de nós. O resultado obtido é

element =

1 2
2 3
3 4

Usamos neste problema uma quadratura de Gauss com um ponto de inte-


gração, com coordenada ξ = 0 e peso 2,

W=2;Q=0; % W: peso da quadratura de Gauss; Q: local do ponto de gauss

De seguida calculamos a matriz de rigidez, usando dois ciclos, um primeiro


ligado ao elemento e outro ligado à integração de Gauss, ou seja usando um
determinado número de pontos de Gauss e cada elemento. A matriz de rigi-
dez é obtida por soma das contribuições de cada elemento e de cada ponto
de Gauss, espalhada nas posições adequadas (tendo em conta os graus de
liberdade de cada elemento).

for e=1:numelem;
indice=element(e,:); nn=length(indice);
length_element=node(indice(2))-node(indice(1));
detJ0=length_element/2;invJ0=1/detJ0;
70 3 Elementos finitos isoparamétricos e elementos de barra

% ponto de gauss central (xi=0, peso W=2)


N=([1,1]/2)’;
dNdxi=[-1;1]/2;
dNdx=dNdxi*invJ0;
% matriz B
B=zeros(1,nn); B(1:nn) = dNdx(:);

K(indice,indice)=K(indice,indice)+B’*B*2*detJ0*EA;
% longo da barra
end

Depois de se calcular o vector de graus de liberdade em cada elemento (in-


dice), calcula-se o comprimento do elemento (length_element), bem como o
determinante do Jacobiano e a sua inversa. Para cada ponto de Gauss no in-
terior do elemento, apresenta-se a matriz de funções de forma N e a matriz de
suas derivadas em ordem às coordenadas locais (dNdxi) e em relação às coor-
denadas globais (dNdx) através da inversa do jacobiano (dNdx=dNdxi*invJ0).
O cálculo da matriz de rigidez fica então ligado ao somatório
ne
X
K= BT EABdet(J)W (3.42)
e=1

ondene representa o número total de elementos.


4
Análise de barras inclinadas (treliças)

4.1 Introdução
Neste capı́tulo apresenta-se um estudo por elementos finitos de barras in-
clinadas (treliças) para a análise de pórticos que suportam apenas cargas
longitudinais. Apresenta-se também um código MATLAB para o cálculo de
deslocamentos, reacções e tensões nas barras. É efectuado o desenho da malha
e sua deformada.
Uma treliça consiste em membros estruturais que suportam apenas forças
de compressão ou tracção. Todas as forças e reacções estão aplicadas nos
nós (juntas sem atrito), conforme ilustrado na figura 4.1. Embora se possam
estudar estas estruturas pelo método dos nós ou das secções, o método dos
elementos finitos permite o estudo de estruturas indeterminadas, o que não é
possı́vel pelos métodos dos nós ou secções.

P P1

Figura 4.1. Exemplo de treliça bidimensional


72 4 Análise de barras inclinadas (treliças)

4.2 Treliças no plano


Tendo em conta a diferente orientação no espaço bidimensional duma treliça
tipica, conforme ilustrado na figura 4.1, torna-se necessário introduzir um sis-
tema de coordenadas local, ligado a cada barra e um sistema de coordenadas
global, ligado à estrutura.
Considere-se um elemento de barra inclinada na figura 4.2 definida pelos
seus nós 1 e 2. Ao sistema local x0 , y 0 estão associados os graus de liberdade
(deslocamentos) u01 , u02 . No sistema global, no entanto, cada nó tem dois graus
de liberdade.

x0

u4 u02

u3
θ

u2
y

u1

x
u01

Figura 4.2. Treliça bidimensional

Para cada elemento, os deslocamentos no sistema local são


T
u0 = [u01 u02 ] (4.1)
enquanto que no sistema global, o campo de deslocamentos é então definido
por

uT = [u1 u2 u3 u4 ] (4.2)
A relação entre os deslocamentos dos dois sistemas é dada pelas relações

u01 = u1 cos(θ) + u2 sin(θ) (4.3)


u02 = u3 cos(θ) + u4 sin(θ) (4.4)
os cossenos directores l e m são dados por l = cos(θ), m = sen(θ), sendo estes
os cossenos dos ângulos que o eixo x0 faz com os eixos x, y, respectivamente.
Pode então traduzir-se a relação entre deslocamentos na forma

u0 = Lu (4.5)
sendo a matriz de cossenos directores L dada por
4.3 Matriz de rigidez 73
 
l m0 0
L= (4.6)
0 0 l m
Estes cossenos directores são calculados por
x2 − x1 y2 − y1
l= ; m= (4.7)
Le Le
sendo o comprimento do elemento, Le , dado por
p
Le = (x2 − x1 )2 + (y2 − y1 )2 (4.8)

4.3 Matriz de rigidez


Tomando em conta que a barra inclinada é um elemento unidimensional
quando se considera o sistema local, podemos escrever a matriz de rigidez
no sistema local como
 
EA 1 −1
K0 = (4.9)
Le −1 1
onde A é a área do elemento e E o módulo de elasticidade do material da
barra.
No sistema local a energia de deformação do elemento é definida por
1 0T 0 0
Ue = u Ku (4.10)
2
Substituindo u0 = Lu na equação acima, obtem-se
1 T T 0
Ue = u [L K L]u (4.11)
2
Podemos então definir a matriz de rigidez como

K = LT K0 L (4.12)
Obtendo-se finalmente

l2 −l2
 
lm −lm
EA 
 lm m2 −lm −m2 
K=  (4.13)
Le  −l2 −lm l2 lm 
−lm −m2 lm m2
74 4 Análise de barras inclinadas (treliças)

4.4 Cálculo de tensões


No sistema local, a tensão no elemento de barra é calculada por σ = E.
Como a deformação é a variação de comprimento por unidade do comprimento
original, pode escrever-se

u02 − u01
 0
E u1 E
σ=E = [−1 1] = [−1 1]u0 (4.14)
Le Le u02 Le
Podemos agora proceder à transformação de eixos locais para globais,
E E
σ= [−1 1]Lu = [−l −m l m]u (4.15)
Le Le

4.5 Problema de treliça plana


Considere-se a treliça da figura 4.3, onde uma força pontual vertical de 10000
é aplicada no nó 1. O módulo de elasticidade é E = 30e6, a área A = 2.

2 3

10 45
y
45
1 4 x

10000
10

Figura 4.3. Problema de treliça plana

O código (logan81.m) é a seguir apresentado:


1 clear all
2 colordef white
3 E=30e6; A=2; EA=E*A;
4 node=[ 0 0;0 120;120 120;120 0];
5 xx=node(:,1); yy=node(:,2);
6 element=[ 1 2;1 3;1 4];
7 numnode=size(node,1);
8 numelem=size(element,1);
4.5 Problema de treliça plana 75

9 U=zeros(2*numnode,1);
10 f=zeros(2*numnode,1);
11 K=sparse(2*numnode,2*numnode);
12 % forca aplicada no no 1
13 f(2)=-10000;
14 for e=1:numelem
15 indice=element(e,:)
16 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
17 xa=xx(indice(2))-xx(indice(1))
18 ya=yy(indice(2))-yy(indice(1))
19 length_element=sqrt(xa*xa+ya*ya);
20 C=xa/length_element;
21 S=ya/length_element;
22 k1=EA/length_element*...
23 [C*C C*S -C*C -C*S; C*S S*S -C*S -S*S;
24 -C*C -C*S C*C C*S;-C*S -S*S C*S S*S];
25 K(indiceB,indiceB)=K(indiceB,indiceB)+k1
26 end
27 % c. fronteira
28 activeDof=[1 2]’;
29 U=K(activeDof,activeDof)\f(activeDof)
30 U1=zeros(2*numnode,1);
31 U1(activeDof)=U;
32 us=1:2:2*numnode-1;
33 vs=2:2:2*numnode;
34 format long
35 figure
36 L=node(2,1)-node(1,1);
37 dispNorm=max(sqrt(U1(us).^2+U1(vs).^2));
38 scaleFact=15000*dispNorm;
39 clf
40 hold on
41 XX=U1(us);YY=U1(vs);
42 plot_mesh(node+scaleFact*[XX YY],element,’L2’,’k.-’);
43 plot_mesh(node,element,’L2’,’k.--’);
44 % forcas nos elementos
45 for e=1:numelem
46 indice=element(e,:)
47 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
48 xa=xx(indice(2))-xx(indice(1))
49 ya=yy(indice(2))-yy(indice(1))
50 length_element=sqrt(xa*xa+ya*ya);
51 cosa=xa/length_element;
52 sena=ya/length_element;
53 sigma(e)=E/length_element* ...
54 [-cosa -sena cosa sena]*U1(indiceB);
55 end
76 4 Análise de barras inclinadas (treliças)

Os resultados obtidos conferem com os apresentados no livro de Logan


[123] , página 81 (terceira edição). Os deslocamentos nodais são os seguintes:

U1 =

0.00414213562373
-0.01585786437627
0
0
0
0
0
0

enquanto que as tensões (constantes em cada elementos) são as seguintes:

>> sigma’

ans =

1.0e+03 *

3.96446609406726
1.46446609406726
-1.03553390593274

A deformada obtida é ilustrada na figura 4.4.

120

100

80

60

40

20

0
0 20 40 60 80 100 120

Figura 4.4. Deformada para o problema de treliça plana


4.6 Outro problema de treliça bidimensional 77

4.6 Outro problema de treliça bidimensional


Apresenta-se agora um outro problema de treliças. Este exemplo ilustra uma
das principais dificuldades do projectista de elementos finitos, que é a im-
posição de condições fronteira.
Considere-se a treliça da figura 4.5, em que o módulo de elasticidade é
E = 70GPa, área A = 3e − 4m2 , proposto por Logan [123], na página 128.
Propoe-se aqui que se calcule os deslocamentos e tensões nos membros, usando
a estrutura completa e usando condições de simetria. O problema reside no
facto do nó 1 não se deslocar em x, o que traz problemas para a condição de
simetria, dado que se restringirmos o deslocamento em x do nó 1, estamos a
assumir que o nó 5 também não se desloca em x o que é falso. A referência
[123] usa esta condição, que não é correcta. Os resultados obtidos pelo código
MATLAB que juntamos a seguir reproduz esse erro, mas é importante mostrar
o código para se verificar as implicações de condições fronteira erradas. Na
figura 4.6 mostra-se a incorrecção, notando que se assume que o nó 1 não
mexe (correcto), mas implicando que o nó 5 também não se move o que é
incorrecto, porque o seu apoio é simples.

50kN 100 kN 50 kN

4 4 9
2 6

1 3 8
5
6 3m

7 11

1 2 10
5
3m 3 3m

Figura 4.5. Treliça do livro de Logan, página 128

O código (logan128332.m) é a seguir apresentado:


1 % logan, pag 128, com condies fronteira INCORRECTAS
2 % considerando Condies de simetria (metade da carga a meio
3 % e restrio do movimento horizontal dos nos 3 e 4)
4 clear all
5 colordef white
6 E=70000; A=300; EA=E*A;
7 node=[ 0 0;0 3000;3000 0;3000 3000];
8 xx=node(:,1); yy=node(:,2);
9 element=[ 1 2;1 3;2 3;2 4;1 4;3 4];
78 4 Análise de barras inclinadas (treliças)

50kN 50 kN

4 4
2

1 3 5
6

1 2
3m 3

Graus de liberdade
restringidos
Figura 4.6. Treliça do livro de Logan, página 128, Opção INCORRECTA de
condições fronteira para simetria

10 numnode=size(node,1);
11 numelem=size(element,1);
12 U=zeros(2*numnode,1);
13 f=zeros(2*numnode,1);
14 K=sparse(2*numnode,2*numnode);
15 % forca aplicada no no 1
16 f(4)=-50000;
17 f(8)=-50000;
18 for e=1:numelem
19 indice=element(e,:)
20 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
21 xa=xx(indice(2))-xx(indice(1))
22 ya=yy(indice(2))-yy(indice(1))
23 length_element=sqrt(xa*xa+ya*ya);
24 C=xa/length_element;
25 S=ya/length_element;
26 k1=EA/length_element*...
27 [C*C C*S -C*C -C*S; C*S S*S -C*S -S*S;
28 -C*C -C*S C*C C*S;-C*S -S*S C*S S*S];
29 K(indiceB,indiceB)=K(indiceB,indiceB)+k1
30 end
31 % c. fronteira
32 activeDof=[1 3 4 8 6]’;
33 U=K(activeDof,activeDof)\f(activeDof)
34 U1=zeros(2*numnode,1);
4.6 Outro problema de treliça bidimensional 79

35 U1(activeDof)=U;
36 us=1:2:2*numnode-1;
37 vs=2:2:2*numnode;
38 format long
39 figure
40 L=node(2,1)-node(1,1);
41 dispNorm=max(sqrt(U1(us).^2+U1(vs).^2));
42 scaleFact=2*dispNorm;
43 clf
44 hold on
45 XX=U1(us);YY=U1(vs);
46 plot_mesh(node+scaleFact*[XX YY],element,’L2’,’k.-’);
47 plot_mesh(node,element,’L2’,’k.--’);
48 % forcas nos elementos
49 for e=1:numelem
50 indice=element(e,:)
51 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
52 xa=xx(indice(2))-xx(indice(1))
53 ya=yy(indice(2))-yy(indice(1))
54 length_element=sqrt(xa*xa+ya*ya);
55 cosa=xa/length_element;
56 sena=ya/length_element;
57 sigma(e)=E/length_element* ...
58 [-cosa -sena cosa sena]*U1(indiceB);
59 end

Os resultados obtidos com esta opção são os seguintes:


>> U1

U1 =

0
0
1.50865353300281
-8.65151067585996
0
-14.42728078345209
0
-15.93593431645490
Na figura 4.7 apresenta-se a deformada da estrutura completa. Note-se o
movimento horizontal do nó 5.
O código (logan128332completo.m) para a estrutura completa é o seguinte
1 % logan pagina 128, estrutura completa
2
3 clear all
4 colordef white
80 4 Análise de barras inclinadas (treliças)

3500

3000

2500

2000

1500

1000

500

!500

!1000

0 1000 2000 3000 4000 5000 6000

Figura 4.7. Treliça do livro de Logan, página 128, estrutura completa

5 E=70000; A=300; EA=E*A;


6 node=[ 0 0;0 3000;3000 0;3000 3000;6000 0;6000 3000];
7 xx=node(:,1); yy=node(:,2);
8 element=[ 1 2;1 3;2 3;2 4;1 4;3 4;3 6;4 5;4 6;3 5;5 6];
9 numnode=size(node,1);
10 numelem=size(element,1);
11 U=zeros(2*numnode,1);
12 f=zeros(2*numnode,1);
13 K=sparse(2*numnode,2*numnode);
14 % forca aplicada no no 1
15 f(4)=-50000;
16 f(8)=-100000;
17 f(12)=-50000;
18 for e=1:numelem
19 indice=element(e,:)
20 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
21 xa=xx(indice(2))-xx(indice(1))
22 ya=yy(indice(2))-yy(indice(1))
23 length_element=sqrt(xa*xa+ya*ya);
24 C=xa/length_element;
25 S=ya/length_element;
26 k1=EA/length_element*...
27 [C*C C*S -C*C -C*S; C*S S*S -C*S -S*S;
28 -C*C -C*S C*C C*S;-C*S -S*S C*S S*S];
29 K(indiceB,indiceB)=K(indiceB,indiceB)+k1
30 end
31 % c. fronteira
32 dofs=[1 2 10]’;
4.6 Outro problema de treliça bidimensional 81

33 activeDof=setdiff([1:2*numnode]’, ...
34 [dofs]);
35
36 %activeDof=[3 4 8 6]’;
37 U=K(activeDof,activeDof)\f(activeDof)
38 U1=zeros(2*numnode,1);
39 U1(activeDof)=U;
40 us=1:2:2*numnode-1;
41 vs=2:2:2*numnode;
42 format long
43 figure
44 L=node(2,1)-node(1,1);
45 dispNorm=max(sqrt(U1(us).^2+U1(vs).^2));
46 scaleFact=2*dispNorm;
47 clf
48 hold on
49 XX=U1(us);YY=U1(vs);
50 plot_mesh(node+scaleFact*[XX YY],element,’L2’,’k.-’);
51 plot_mesh(node,element,’L2’,’k.--’);
52 % forcas nos elementos
53 for e=1:numelem
54 indice=element(e,:)
55 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
56 xa=xx(indice(2))-xx(indice(1))
57 ya=yy(indice(2))-yy(indice(1))
58 length_element=sqrt(xa*xa+ya*ya);
59 cosa=xa/length_element;
60 sena=ya/length_element;
61 sigma(e)=E/length_element* ...
62 [-cosa -sena cosa sena]*U1(indiceB);
63 end

Os resultados para a estrutura completa são então

>> U1

U1 =

0
0
7.14285714285716
-9.03863711864189
5.24707716707241
-16.29649260048689
5.24707716707241
-20.08805255205638
10.49415433414481
0
82 4 Análise de barras inclinadas (treliças)

3.35129719128766

Como se pode verificar destes resultados o deslocamento vertical do nó 4, passa


de cerca de 20 para a estrutura completa para cerca de 15 com as condições
de simetria usadas (incorrectas), o que torna a estrutura muito mais rigida,
devido á suposição de duplo apoio no nó 5.
Podemos então melhorar a condição de simetria, considerando que o nó 1
pode mexer-se em x (figura 4.8). Não sendo completamente correcto é mais
próximo da realidade da deformada da estrutura.

50kN 50 kN

4 4
2

1 3 5
6

1 2
3m 3

Graus de liberdade
restringidos
Figura 4.8. Treliça do livro de Logan, página 128, Opção melhorada de condições
fronteira para simetria

Considere então o código seguinte:


O código (logan128melhorado.m) é a seguir apresentado:
1 % logan, pag 128, com condies fronteira CORRECTAS
2 % considerando Condies de simetria (metade da carga a meio
3 % e restrio do movimento horizontal dos nos 3 e 4)
4 clear all
5 colordef white
6 E=70000; A=300; EA=E*A;
7 node=[ 0 0;0 3000;3000 0;3000 3000];
4.6 Outro problema de treliça bidimensional 83

8 xx=node(:,1); yy=node(:,2);
9 element=[ 1 2;1 3;2 3;2 4;1 4;3 4];
10 numnode=size(node,1);
11 numelem=size(element,1);
12 U=zeros(2*numnode,1);
13 f=zeros(2*numnode,1);
14 K=sparse(2*numnode,2*numnode);
15 % forca aplicada no no 1
16 f(4)=-50000;
17 f(8)=-50000;
18 for e=1:numelem
19 indice=element(e,:)
20 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
21 xa=xx(indice(2))-xx(indice(1))
22 ya=yy(indice(2))-yy(indice(1))
23 length_element=sqrt(xa*xa+ya*ya);
24 C=xa/length_element;
25 S=ya/length_element;
26 k1=EA/length_element*...
27 [C*C C*S -C*C -C*S; C*S S*S -C*S -S*S;
28 -C*C -C*S C*C C*S;-C*S -S*S C*S S*S];
29 K(indiceB,indiceB)=K(indiceB,indiceB)+k1
30 end
31 % c. fronteira
32 activeDof=[1 3 4 8 6]’;
33 U=K(activeDof,activeDof)\f(activeDof)
34 U1=zeros(2*numnode,1);
35 U1(activeDof)=U;
36 us=1:2:2*numnode-1;
37 vs=2:2:2*numnode;
38 format long
39 figure
40 L=node(2,1)-node(1,1);
41 dispNorm=max(sqrt(U1(us).^2+U1(vs).^2));
42 scaleFact=2*dispNorm;
43 clf
44 hold on
45 XX=U1(us);YY=U1(vs);
46 plot_mesh(node+scaleFact*[XX YY],element,’L2’,’k.-’);
47 plot_mesh(node,element,’L2’,’k.--’);
48 % forcas nos elementos
49 for e=1:numelem
50 indice=element(e,:)
51 indiceB=[ indice(1)*2-1 indice(1)*2 indice(2)*2-1 indice(2)*2]
52 xa=xx(indice(2))-xx(indice(1))
53 ya=yy(indice(2))-yy(indice(1))
54 length_element=sqrt(xa*xa+ya*ya);
55 cosa=xa/length_element;
56 sena=ya/length_element;
84 4 Análise de barras inclinadas (treliças)

57 sigma(e)=E/length_element* ...
58 [-cosa -sena cosa sena]*U1(indiceB);
59 end

que produz a deformada da figura 4.9

3000

2500

2000

1500

1000

500

!500

!500 0 500 1000 1500 2000 2500 3000 3500

Figura 4.9. Treliça do livro de Logan, página 128, estrutura com simetria mais
adequada

Os resultados com esta opção são os seguintes:

>> U1

U1 =

-5.05076272276106
0
2.09209442009609
-9.23495156295323
0
-17.24438258837926
0
-19.33647700847535
o que produz um deslocamento vertical no nó 4 mais adequado (19.33).
4.7 Exemplo de treliça com mola 85

4.7 Exemplo de treliça com mola


Considere-se a estrutura da figura , que contém dois elementos de treliça e
um elemento de mola. Para os elementos de barra, considere-se o módulo de
elasticidade E = 210GPa, área A = 5e − 4m2 . O problema possui 4 nós e três
elementos. A ideia agora será misturar (com atenção aos graus de liberdade de
cada elemento), as matrizes de rigidez dos dois tipos de elementos. Pretende-se
calcular os deslocamentos nodais e as tensões nos elementos.

2
5m

1 25kN

45o

3 1
10 m 2

3 k=2000kN/m

Figura 4.10. Treliça do livro de Logan, página 129

O código (logan129.m) é a seguir apresentado:


1 % logan pagina 129 .........................
2 clear all
3 colordef white
4 E=210000; A=500; EA=E*A;
5 node=[0 0;-5000*cos(pi/4) 5000*sin(pi/4); -10000 0];
6 xx=node(:,1); yy=node(:,2);
7 element=[ 1 2;1 3;1 4];
8 numnode=size(node,1);
9 numelem=size(element,1);
10 U=zeros(7,1);
11 f=zeros(7,1);
12 K=sparse(7,7);
13 % forca aplicada no no 1 ...................
14 f(2)=-25000;
15 for e=1:2
16 indice=element(e,:)
17 indiceB=[ indice(1)*2-1 indice(1)*2 ...
18 indice(2)*2-1 indice(2)*2]
86 4 Análise de barras inclinadas (treliças)

19 xa=xx(indice(2))-xx(indice(1))
20 ya=yy(indice(2))-yy(indice(1))
21 length_element=sqrt(xa*xa+ya*ya);
22 C=xa/length_element;
23 S=ya/length_element;
24 k1=EA/length_element*...
25 [C*C C*S -C*C -C*S; C*S S*S -C*S -S*S;
26 -C*C -C*S C*C C*S;-C*S -S*S C*S S*S];
27 K(indiceB,indiceB)=K(indiceB,indiceB)+k1
28 end
29 % mola
30 K([2 7],[2 7])= K([2 7],[2 7])+2000*[1 -1;-1 1]
31 % c. fronteira .............................
32 activeDof=[1 2]’;
33 % solucao ..................................
34 U=K(activeDof,activeDof)\f(activeDof)
35 U1=zeros(7,1);
36 U1(activeDof)=U;
37 % tenses nos elementos ....................
38 for e=1:2
39 indice=element(e,:)
40 indiceB=[ indice(1)*2-1 indice(1)*2 ...
41 indice(2)*2-1 indice(2)*2]
42 xa=xx(indice(2))-xx(indice(1))
43 ya=yy(indice(2))-yy(indice(1))
44 length_element=sqrt(xa*xa+ya*ya);
45 cosa=xa/length_element;
46 sena=ya/length_element;
47 sigma(e)=E/length_element* ...
48 [-cosa -sena cosa sena]*U1(indiceB);
49 end

Note-se que a rigidez da mola é ”somada”nos graus de liberdades 2 e 7,


correspondentes aos movimentos verticais dos nós 1 e 4.
Na figura 4.11 ilustra-se a numeração dos graus de liberdade.
Os resultados para os deslocamentos do nós 1 são:

>> U1

U1 =

-1.72413793103448
-3.44827586206897
0
0
0
0
0
4.8 Treliças tridimensionais 87
(4)

(3)
2
5m

1 25kN
(6) (2)
45o
(5) (1)
3 1
10 m 2

3 k=2000kN/m

(7)

Figura 4.11. Treliça do livro de Logan, página 129, numeração dos graus de liber-
dade

e as tensões nas barras

>> sigma

sigma =

51.20428415488792 -36.20689655172414

Assim, a barra 1 está em tracção e a barra 2 em compressão.

4.8 Treliças tridimensionais


Considere-se agora elementos de barra, num contexto tridimensional, con-
forme ilustrado na figura 4.12.
A matriz de rigidez em eixos locais é dada por

Cx2 Cx Cy Cx Cz −Cx2 −Cx Cy −Cx Cz


 

 Cy2 Cy Cz −Cx Cy −Cy2 −Cy Cz  
EA   Cz2 −Cx Cz −Cy Cz −Cz2 
K=( ) 
L   Cx2 Cx Cy Cx Cz 

 Cy2 Cy Cz 
simetria Cz2
88 4 Análise de barras inclinadas (treliças)
Y
x

θy 2
y

θx
1 X

θz
Z

Figura 4.12. Orientação espacial de treliça tridimensional

onde os cossenos directores são definidos por


x2 − x1 y2 − y1 z2 − z1
Cx = ; Cy = ; Cz =
L L L
executando-se depois uma transformação de eixos para calcular a matriz
de rigidez e o vector de cargas equivalentes em eixos globais.

4.8.1 Exemplo de tipo treliça 3D

Considere-se o problema ilustrado na figura 4.13, para o qual se elaborou o


programa MATLAB (logan89.m) a seguir descrito.
O código (logan89.m) é a seguir apresentado:
1 clear all;clf;colordef white;
2 E=1.2e6; A=[0.302;0.729;0.187];node=[72 0 0; 0 36 0; 0 36 72; 0 0 -48];
3 xx=node(:,1); yy=node(:,2); zz=node(:,3);
4 element=[1 2;1 3;1 4]; numnode=size(node,1);numelem=size(element,1);
5 U=zeros(3*numnode,1);f=zeros(3*numnode,1);K=sparse(3*numnode,3*numnode);
6 f(3)=-1000.0;
7 for e=1:numelem ;
8 index=element(e,:) ;
9 indexB=[3*index(1)-2 3*index(1)-1 3*index(1) 3*index(2)-2 3*index(2)-1 3*index(2)] ;
10 x1=node(index(1),1);y1=node(index(1),2);z1=node(index(1),3);x2=node(index(2),1);
11 y2=node(index(2),2);z2=node(index(2),3);
12 L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1));
13 CXx = (x2-x1)/L;CXx=acos(CXx)*180/pi;
14 CYx = (y2-y1)/L;CYx=acos(CYx)*180/pi;
15 CZx = (z2-z1)/L;CZx=acos(CZx)*180/pi;
16 x = CXx*pi/180; u = CYx*pi/180; v = CZx*pi/180;
17 Cx = cos(x); Cy = cos(u); Cz = cos(v);
4.8 Treliças tridimensionais 89

3
u=v=w=0

z
(2)

y
u=v=w=0

2 A1 = 0.302
A2 = 0.729
(1) A3 = 0.187
X1 = (72, 0, 0)
X2 = (0, 36, 0)
v=0 X3 = (0, 36, 72)
1
X4 = (0, 0, −48)
(3) x
4 1000
u=v=w=0
Figura 4.13. Problema de treliça 3D

18 w = [Cx*Cx Cx*Cy Cx*Cz ; Cy*Cx Cy*Cy Cy*Cz ; Cz*Cx Cz*Cy Cz*Cz];


19 K(indexB,indexB)=K(indexB,indexB)+E*A(e)/L*[w -w ; -w w];
20 end
21 % CF e solucao
22 dofs=[2 4:12]; activos=setdiff([1:3*numnode]’,[dofs]);
23 U=K(activos,activos)\f(activos);U1=zeros(3*numnode,1);U1(activos)=U;
24 % deslocamentos
25 U=U1; jj=1:12;
26 disp(’Deslocamentos’)
27 format long;[jj’ U]
28 % reaccoes
29 F=K*U;
30 disp(’Reaccoes’)
31 format long;[jj’ F]
32 % % forcas e tensoes nos elementos
33 fid = fopen(’exp.txt’,’w’);
34 fprintf(fid,’Forcas e tensoes nos elementos\n’)
35 ff=zeros(numelem,6); format
36 for e=1:numelem;
37 index=element(e,:) ;
38 indexB=[3*index(1)-2 3*index(1)-1 3*index(1) 3*index(2)-2 3*index(2)-1 3*index(2)] ;
39 u=U(indexB);
40 x1=node(index(1),1);y1=node(index(1),2);z1=node(index(1),3);x2=node(index(2),1);
41 y2=node(index(2),2);z2=node(index(2),3);
90 4 Análise de barras inclinadas (treliças)

42 L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1));


43 CXx = (x2-x1)/L;CXx=acos(CXx)*180/pi;
44 CYx = (y2-y1)/L;CYx=acos(CYx)*180/pi;
45 CZx = (z2-z1)/L;CZx=acos(CZx)*180/pi;
46 x = CXx * pi/180; w = CYx * pi/180; v = CZx * pi/180;
47 Cx = cos(x); Cy = cos(w); Cz = cos(v);
48 member_forces(e)= E*A(e)/L*[-Cx -Cy -Cz Cx Cy Cz]*u;
49 member_stress(e)=member_forces(e)/A(e);
50 fprintf(fid,’%1.0f %12.8f %12.8f\n’,e, member_forces(e), member_stress(e));
51 end
52 fprintf(’Forcas e tensoes nos elementos’)
53 jj=1:numelem; format long;[jj’ member_forces’ member_stress’]
54 %fprintf(1,’X is %6.2f meters or %8.3f mm\n’,9.9,9900,B)
55 fclose(fid)
56 fprintf(’%1.0f %-12.8f %12.3g\n’,e, member_forces(1), member_stress(1));
57 fprintf(’%1.0f %-12.8f %12.3g\n’,e, member_forces(2), member_stress(2));
58 fprintf(’%1.0f %-12.8f %12.3g\n’,e, member_forces(3), member_stress(3));
59

4.9 Resultados do exemplo de trelica 3D

Deslocamentos nodais
1 -0.07111 0.00000 -0.26624
2 0.00000 0.00000 0.00000
3 0.00000 0.00000 0.00000
4 0.00000 0.00000 0.00000
Reaccoes
2 -0.00000
4 -223.16321
5 -1000.00000
6 256.12263
7 -128.06132
8 -0.00000
9 -702.44905
10 351.22453
11 702.44905
12 446.32642
Forcas e tensoes nos elementos
1 -286.35381001 -948.19142387
2 1053.67358035 1445.36842298
3 -536.41759721 -2868.54330060
5
Vigas de Bernoulli e pórticos planos

5.1 Introdução
Neste capı́tulo faz-se a análise por elementos finitos de pórticos planos, através
da combinação de elementos de barra e de elementos de viga fina.
Para situar o problema de forma consistente, apresenta-se em primeiro
lugar a formulação de viga fina, dado que já foi realizada a formulação de
barra.

5.2 Formulação de viga de Bernoulli


Considera-se uma viga fina , de comprimento L, sujeita a forças distribuidas
q, momentos flectores M e cargas pontuais Pi . Considera-se um material de
módulo de elasticidade E e com uma secção transversal de área A e momento
de inércia I.
A energia potencial da viga é dada por

L 2 L
d2 w
Z  Z
1 X X
Π= EI dx − qwdx − Pi wi − Mk wk0 (5.1)
2 0 dx2 0 i k

onde w corresponde ao deslocamento transversal (flecha) da viga, wi repre-


senta o deslocamento num ponto discreto i e w0 representa a inclinação da
normal, representada pela primeira derivada do deslocamento.
Tendo em conta uma formulação de Galerkin, estabelecem-se antes de mais
as equações de equilı́brio da viga, na forma

dV
=q (5.2)
dx
dM
=V (5.3)
dx
92 5 Vigas de Bernoulli e pórticos planos

sendo V o esforço transverso.


Quando se combinam estas duas equações, obtem-se uma única equação
de equilı́brio, dada por

d2 d2 w
 
EI 2 − q = 0 (5.4)
dx2 dx
Para uma solução aproximada segundo o método de Galerkin, usamos uma
solução aproximada w, tal que
Z L 2 
d2 w
 
d
EI 2 − q φdx = 0 (5.5)
0 dx2 dx
onde φ é uma função arbitrária que usa as mesmas funções de forma de w.
Integrando por partes esta expressão, obtem-se a expressão
L L
d2 w d2 φ
Z Z X X
EI dx − qφdx − Pi φi − Mk φ0k = 0 (5.6)
0 dx2 dx2 0 i k

5.3 Formulação de elementos finitos


O elemento finito de viga fina, figura 5.1, tem como graus de liberdade em
dw
cada nó um deslocamento transversal w e a sua primeira derivada w0 = .
dx
O vector de deslocamentos do elemento é assim
dw1 dw2
uT = [w1 , , w2 , ] (5.7)
dx dx

w1 w2

1 e
2

w10 w20
Figura 5.1. Graus de liberdade da viga de Bernoulli

Dado que o vector de deslocamentos é composto simultaneamente por desloca-


mentos e suas derivadas, há necessidade de usar funções de forma de Hermite,
que satisfazem a continuidade de função e de sua inclinação. Cada função de
forma, de ordem cúbica, é representada por
5.3 Formulação de elementos finitos 93

Hi = ai + bi ξ + ci ξ 2 + di ξ 3 , i = 1, 2, 3, 4 (5.8)
As funções assim dadas devem satisfazer as condições ilustradas na tabela 5.1.

Tabela 5.1. Condições a satisfazer para funções de Hermite


H1 H10 H2 H20 H3 H30 H4 H40
ξ=-1 1 0 0 1 0 0 0 0
ξ=1 0 0 0 0 1 0 0 1

Os coeficientes ai , .., di podem agora ser calculados, através da imposição das


condições da tabela 5.1, obtendo-se então as funções de forma de Hermite
1 2 1
H1 = (1 − ξ) (2 + ξ) = (2 − 3ξ + ξ 3 ) (5.9)
4 4
1 2 1
H2 = (1 − ξ) (ξ + 1) = (1 − ξ − ξ 2 + ξ 3 ) (5.10)
4 4
1 2 1
H3 = (1 + ξ) (2 − ξ) = (2 + 3ξ − ξ 3 ) (5.11)
4 4
1 2 1
H4 = (1 + ξ) (ξ − 1) = (−1 − ξ + ξ 2 + ξ 3 ) (5.12)
4 4
Usando as funções de forma, pode escrever-se a interpolação para o desloca-
mento transversal, na forma
   
dw dw
w(ξ) = H1 w1 + H2 + H3 w2 + H4 (5.13)
dξ 1 dξ 2
A relação entre as coordenadas cartesianas e naturais é obtida por
1−ξ 1+ξ x1 + x2 x2 − x1
x= x1 + x2 = + ξ (5.14)
2 2 2 2
sabendo que le = x2 − x1 , obtem-se
dx le
= (5.15)
dξ 2
Pela regra da cadeia obtem-se
dw dw dx le dw
= = (5.16)
dξ dx dξ 2 dx
obtendo-se assim
le le
w(ξ) = H1 u1 + H2 u 2 + H3 u 3 + H4 u 4 (5.17)
2 2
ou
94 5 Vigas de Bernoulli e pórticos planos

w = Hu (5.18)
sendo
le le
H = [H1 , H2 , H3 , H4 ] (5.19)
2 2
Sabendo que

dw 2 dw d2 w 4 d2 w
= , = (5.20)
dx le dξ dx2 le2 dξ 2
Substituindo w = Hu, obtemos então
2  2 T  2 
d2 w

T 16 d H d H
2
= u 4 2
u (5.21)
dx le dξ dξ 2
 2   
d H 3 −1 + 3ξ le 3 1 + 3ξ le
= ξ, , − ξ, (5.22)
dξ 2 2 2 2 2 2 2
Tendo em conta que dx = le /2dξ e tomando a energia de deformação do
elemento
Le 2
d2 w
Z 
1
Ue = EI dx (5.23)
2 0 dx2
obtemos

 9 3 9 3 
ξ2 (−1 + 3ξ)le − ξ2 (1 + 3ξ)le
 4 8 4 8 
 
 2 
−1 + 9ξ 2 2 

 −1 + 3ξ 2 3
le − ξ(−1 + 3ξ)le le 
 
1 8EI
Z 1
 4 8 16 
Ue = uT 3  dξu
 
2 le −1 

9 2 3 
 ξ − ξ(1 + 3ξ)le 
4 8
 
 
 
2
   
 1 + 3ξ 2

sim. le
4
(5.24)
Sabendo que
Z 1 Z 1 Z 1
2
ξ 2 dξ = , ξ2dξ = 0, dξ = 2 (5.25)
−1 3 −1 −1

obtemos
1 T
Ue = u Ke u (5.26)
2
5.5 Exemplo de viga em flexão 95

onde a matriz (simétrica) de rigidez do elemento, Ke é dada por


 
12 6le −12 6le
 
 2 2 

 4l e −6l e 2l e
EI  
Ke = 3   (5.27)
le  
 12 −6l e

 
sim. 4le2

5.4 Vector de carga equivalente a carga distribuida


O vector de carga equivalente a carga distribuida, q pode ser calculado, aten-
dendo a que

qle 1
Z  Z 
qwdx = Hdξ u (5.28)
le 2 −1
Substituindo H e integrando, obtem-se
Z
qwdx = f eT u (5.29)
le
onde
T
qle2 −qle2

qle qle
fe = , , , (5.30)
2 12 2 12
Este vector de carga é equivalente a uma carga nos nós representada na figura
5.2.

5.5 Exemplo de viga em flexão


Considere-se a viga de Bernoulli, sujeita a carga distribuida, com apoios sim-
ples ou encastrados, conforme ilustrado na figura 5.4.
O código que resolve este problema é listado a seguir. Note-se que contém
a parte de vibrações livres que só será tratada mais tarde. Os resultados para
a flecha central são exactos à sétima casa decimal para apoios simples e à
sexta casa decimal para apoios encastrados.
O código (bernoulliBeam.m) é a seguir apresentado:
1 clear;clf;
2 colordef white
3 state = 0;
4 rho=1;A=1;
5 E=1; I=1; EI=E*I;numx=20;node=linspace(0,1,numx+1)’;xx=node;L=max(node);
96 5 Vigas de Bernoulli e pórticos planos
q

ql/2 ql/2

1 e
2

ql2 /12 −ql2 /12


Figura 5.2. Forças nos nós correspondentes a carga distribuida no elemento de viga
de Bernoulli

P = 1(−)

EI = 1

5P L4
δexacto = 384EI

L=1

P = 1(−)

EI = 1

P L4
δexacto = 384EI

L=1

Figura 5.3. Elemento de viga de Bernoulli: resultados para viga simpl. apoiada e
encastrada, carga uniforme

6 for i=1:numx; element(i,1)=i; element(i,2)=i+1;end


7 P=-1;numnode=size(node,1); numelem=size(element,1);
8 U=zeros(2*numnode,1); f=zeros(2*numnode,1);
9 K=zeros(2*numnode,2*numnode); us=1:2:2*numnode; vs=2:2:2*numnode;
10 M=zeros(2*numnode,2*numnode);
11 for e=1:numelem ;
12 index=element(e,:) ;
13 indexB=[ 2*(index(1)-1)+1 2*(index(2)-1) 2*(index(2)-1)+1 2*(index(2)-1)+2];
14 nn=length(index); length_element=xx(index(2))-xx(index(1)) ;ll=length_element;
5.5 Exemplo de viga em flexão 97

Figura 5.4. Resultados para SS: 0.0130208(exacto e numérico); Resultados para


CC: 0.002604(exacto e numérico)
98 5 Vigas de Bernoulli e pórticos planos

15 k1=EI/(length_element)^3*[12 6*length_element -12 6*length_element;


16 6*length_element 4*length_element^2 -6*length_element 2*length_element^2;
17 -12 -6*length_element 12 -6*length_element ;
18 6*length_element 2*length_element^2 -6*length_element 4*length_element^2];
19 a=length_element/2;
20 m1=rho*A*a/105*[78 22*a 27 -13*a;
21 22*a 8*a*a 13*a -6*a*a;
22 27 13*a 78 -22*a;
23 -13*a -6*a*a -22*a 8*a*a];
24
25 K(indexB,indexB)=K(indexB,indexB)+k1;
26 M(indexB,indexB)=M(indexB,indexB)+m1;
27 f1=[P*length_element/2 P*length_element*length_element/12 P*length_element/2 ...
28 -P*length_element*length_element/12]’;
29 f(indexB)=f(indexB)+f1;
30 end
31 % encastrado em ambos os bordos
32 fixedNodeU =[1 2*numx+1]’; fixedNodeV =[2 2*numx+2]’;
33 % simplesmente apoiado em ambos os bordos
34 %fixedNodeU =[1 2*numx+1]’; fixedNodeV =[]’;
35 % encastrado em x=0
36 %fixedNodeU =[1]’; fixedNodeV =[2]’;
37
38 dofs=[fixedNodeU;fixedNodeV];
39 activos=setdiff([1:2*numnode]’,[dofs]);
40 U=K(activos,activos)\f(activos);U1=zeros(2*numnode,1);U1(activos)=U;
41 U=U1;
42 plot(node,U(us),’.’)
43
44 % problema de vibracoes livres
45
46 [V,D]=eig(K(activos,activos),M(activos,activos));
47
48 D = diag(sqrt(D)*L*L*sqrt(rho*A/E/I));
49 [D,ii] = sort(D);

5.6 Pórtico plano


Consideram-se agora pórticos planos, cujo elemento é representado na figura
5.5, onde se combinam elementos de barra e elementos de viga indicados an-
teriormente.
O vector de deslocamentos nodais global é o seguinte

uT = [u1 , u2 , u3 , u4 , u5 , u6 ] (5.31)
Define-se também um sistema de coordenadas locais, com cosenos directores
l, m, relativos a um ângulo θ entre os eixos x0 e x. O vector de deslocamentos
neste sistema local é dado por
5.6 Pórtico plano 99

Figura 5.5. Elemento de pórtico plano

T
u0 = [u01 , u02 , u03 , u04 , u05 , u06 ] (5.32)
Lembrando que u03 = u3 , u06 = u6 , podemos obter a matriz de transformação
local-global, na forma
u0 = Lu (5.33)
 
l m0 0 0 0
 −m l 0 0 0 0
 
 0 0 1 0 0 0
L=
 0
 (5.34)
 0 0 l m 0
 0 0 0 −m l 0
0 0 0 0 0 1
Combinando a rigidez do elemento de barra e do elemento de viga, tendo
em conta os graus de liberdade enunciados, obtem-se a matriz de rigidez do
elemento de pórtico plano, em coordenadas locais
100 5 Vigas de Bernoulli e pórticos planos

EA EA
 
0 0 − 0 0
 L L 
 
 
 12EI 6EI 12EI 6EI 

3 2
0 3 2


 L L L L  
 
 4EI 6EI 2EI 
0 − 2
 
L L L
 
0e
 
K =  
 (5.35)
 EA 
 0 0 

 L 

 
 12EI 6EI 
 − 2 

 L3 L 
 
4EI
 
sim.
L
A matriz de rigidez em coordenadas globais é obtida, tendo em conta a energia
de deformação no elemento,
1 0T 0 0 1
Ue = u K u = uT LT K0 Lu = uT Ku (5.36)
2 2
onde
K = LT K0 L (5.37)
Caso haja forças distribuidas no elemento, para além das forças axiais, podem
calcular-se as forças nodais equivalentes em coordenadas locais, à imagem do
que foi feito atrás e transformá-las para coordenadas globais, na forma

f = LT f 0 (5.38)

5.7 Exemplo de pórtico plano


Considere-se o problema ilustrado na figura 5.6, onde um pórtico plano, en-
castrado nos apoios é carregado com uma força pontual horizontal e uma força
uniformemente distribuida vertical.
Tendo em conta o programa MATLAB que se apresenta a seguir, obtem-se
um deslocamento segundo x no nó 1 de 0.092 in. Lembrar que o vector de
forças equivalentes á força distribuida é de

f T = [0, −3000, −72000, 0, −3000, 72000]


tendo em conta a relação (de 1 para 12) entre ft. e in..
O resultado obtido pelos elementos finitos coincide com a solução analitica.
A numeração usada no código MATLAB é indicada na figura 5.7.
O resultado completo obtido para os deslocamentos é o seguinte
5.7 Exemplo de pórtico plano 101

500 lb/ft

3000 lb
1 2
1

8ft

2 3

3 4 x

12 ft

Figura 5.6. Pórtico plano sujeito a duas forças

5 6

1 2
102
9

7 8

3 4 4 x

11 12

Figura 5.7. Numeração global para o exemplo de pórtico plano


102 5 Vigas de Bernoulli e pórticos planos

U =

0.09176648375279
0.09011880107473
0
0
-0.00103584864162
-0.00178768077015
0
0
-0.00138736969739
-0.00003883014677
0
0

5.8 Programa para exemplo de pórtico plano


O código (porticoPlano1.m) é a seguir apresentado:
1 clear;clf;
2 colordef white
3 state = 0;
4
5 E=30e6; A=6.8; I=65; EA=E*A; EI=E*I;
6 node=[0 96;144 96;0 0;144 0]
7
8 xx=node(:,1); yy=node(:,2);
9
10 element=[ 1 2;3 1;4 2];
11 numnode=size(node,1); numelem=size(element,1);
12 U=zeros(3*numnode,1); f=zeros(3*numnode,1);
13 K=sparse(3*numnode,3*numnode); us=1:numnode;
14 vs=(numnode+1):2*numnode; ts=(2*numnode+1):3*numnode;
15
16 f(1)=3000.0;f(5)=-3000;f(6)=-3000;f(9)=-72000;f(10)=72000;
17
18 for e=1:numelem ; index=element(e,:) ;
19 indexB=[ index index+numnode index+2*numnode]
20 nn=length(index); xa=xx(index(2))-xx(index(1))
21 ya=yy(index(2))-yy(index(1)); length_element=sqrt(xa*xa+ya*ya);
22 cosa=xa/length_element; sena=ya/length_element;ll=length_element;
23 L= [cosa 0 sena 0 0 0;
24 0 cosa 0 sena 0 0;
25 -sena 0 cosa 0 0 0;
26 0 -sena 0 cosa 0 0 ;
27 0 0 0 0 1 0;
28 0 0 0 0 0 1];
5.9 Pórtico plano inclinado 103

29
30 k1=[EA/ll -EA/ll 0 0 0 0 ;
31 -EA/ll EA/ll 0 0 0 0 ;
32 0 0 12*EI/ll^3 -12*EI/ll^3 6*EI/ll^2 6*EI/ll^2;
33 0 0 -12*EI/ll^3 12*EI/ll^3 -6*EI/ll^2 -6*EI/ll^2;
34 0 0 6*EI/ll^2 -6*EI/ll^2 4*EI/ll 2*EI/ll;
35 0 0 6*EI/ll^2 -6*EI/ll^2 2*EI/ll 4*EI/ll]
36 K(indexB,indexB)=K(indexB,indexB)+L’*k1*L;
37 end
38
39 bcwt=mean(diag(K));
40 fixedNodeU =[3 4]’; fixedNodeV =[7 8]’; fixedNodeT =[11 12]’;
41
42 fixed=[fixedNodeU;fixedNodeV;fixedNodeT]; % nota : ja estavam seleccionados os graus de
43 ufixed=zeros(size(fixed));
44 dofs=[fixedNodeU;fixedNodeV;fixedNodeT];
45 % BC: alternativa 1
46 % f=f-K(:,dofs)*ufixed;
47 % f(dofs)=ufixed;
48 % K(dofs,:)=0; K(:,dofs)=0;
49 % K(dofs,dofs) =bcwt*speye(length(dofs));
50 % U=K\f;
51 % alternativa 2
52 activos=setdiff([1:3*numnode]’,[dofs]);
53 U=K(activos,activos)\f(activos);U1=zeros(3*numnode,1);U1(activos)=U;
54 U=U1;
55 %desenho de malha original e deformadas
56 plot_mesh(node+100*[U(us) U(vs)],element,’L2’,’g.-’);
57 plot_mesh(node,element,’L2’,’b.-’);
58

5.9 Pórtico plano inclinado


Considere-se o pórtico plano indicado na figura 5.8, onde o material tem um
módulo de elasticidade E = 30000, área A = 100, momento de inércia I =
1000, com dimensões indicadas na figura, sujeita a uma força uniformemente
distribuida de 12000.
O código que resolve este problema é listado a seguir ( porticoplanoReddy-
pag184Smanual.m). Os resultados para os deslocamentos não prescritos são

U =

0.0033
-0.0097
-0.0033

O código (porticoPlano2.m) é a seguir apresentado:


104 5 Vigas de Bernoulli e pórticos planos
12000

2 2 3
480
1
450
1 x

360

Figura 5.8. Pórtico plano inclinado sujeito a força distribuida

1 clear;clf;colordef white;state = 0;
2 E=30e3; A=100; I=1000; EA=E*A; EI=E*I; x1=30*12; x2=40*12;
3 node=[0 0;x1 x1;x1+x2 x1];xx=node(:,1); yy=node(:,2); element=[1 2;2 3];
4 numnode=size(node,1); numelem=size(element,1);
5 U=zeros(3*numnode,1); f=zeros(3*numnode,1);
6 K=sparse(3*numnode,3*numnode); us=1:numnode;
7 vs=(numnode+1):2*numnode; ts=(2*numnode+1):3*numnode;
8 P=-1000;f(5)=-20;f(6)=-20;f(8)=-1600;f(9)=1600;
9 for e=1:numelem ; index=element(e,:) ;
10 indexB=[ index index+numnode index+2*numnode] ;
11 nn=length(index); xa=xx(index(2))-xx(index(1));
12 ya=yy(index(2))-yy(index(1)); length_element=sqrt(xa*xa+ya*ya);
13 cosa=xa/length_element; sena=ya/length_element;ll=length_element;
14 L= [cosa 0 sena 0 0 0;
15 0 cosa 0 sena 0 0;
16 -sena 0 cosa 0 0 0;
17 0 -sena 0 cosa 0 0 ;
18 0 0 0 0 1 0;
19 0 0 0 0 0 1];
20 k1=[EA/ll -EA/ll 0 0 0 0 ;
21 -EA/ll EA/ll 0 0 0 0 ;
22 0 0 12*EI/ll^3 -12*EI/ll^3 6*EI/ll^2 6*EI/ll^2;
23 0 0 -12*EI/ll^3 12*EI/ll^3 -6*EI/ll^2 -6*EI/ll^2;
24 0 0 6*EI/ll^2 -6*EI/ll^2 4*EI/ll 2*EI/ll;
25 0 0 6*EI/ll^2 -6*EI/ll^2 2*EI/ll 4*EI/ll];
26 K(indexB,indexB)=K(indexB,indexB)+L’*k1*L;
27 end
28 dofs=[1 4 7 3 6 9];activos=setdiff([1:3*numnode]’,[dofs]);
29 U=K(activos,activos)\f(activos)
30 U1=zeros(3*numnode,1);U1(activos)=U;
31 U=U1;
32 %desenho de malha original e deformadas
5.9 Pórtico plano inclinado 105

33 plot_mesh(node+5000*[U(us) U(vs)],element,’L2’,’g.-’);
34 plot_mesh(node,element,’L2’,’b.-’);
6
Análise de pórticos tridimensionais

6.1 Introdução
O elemento de pórtico tridimensional de 2 nós considera três deslocamentos
(translacções) e três rotações em torno dos eixos locais. Considere-se o ele-
mento da figura 6.1 com eixos locais e globais, com ângulos θXx , θY x e θZx ,
medidos dos eixos globais X, Y e Z, relativamente ao eixo local x.

x
Y

X
i

Figura 6.1. Elemento de pórtico tridimensional de 2 nós


108 6 Análise de pórticos tridimensionais

6.2 Matriz de rigidez e vector de forças


A matriz de rigidez no sistema local é obtida por
2 EA
3
L
0 0 0 0 0 − EA
L
0 0 0 0 0
6 7
6 7
12EIz 6EIz
6
6 L3
0 0 0 L2
0 − 12EI
L3
z
0 0 0 6EIz
L2
7
7
6 7
6 7
12EIy 6EIy 12EIy 6EIy
0 − 0 0 0 − 0 − 0
6 7
6
6 L3 L2 L3 L2 7
7
6 7
GJ
0 0 0 0 0 − GJ 0 0
6 7
6
6 L L 7
7
6 7
6 4EIy 6EIy 2EIy 7
6
6 L
0 0 0 L2
0 L
7
7
6 7
4EIz
− 6EI 2EIz
6 7
z
6
L
0 L2
0 0 0 L
7
0e
6 7
K =66
7
7
EA
6
6 L
0 0 0 0 0 7
7
6 7
6 7
12EIz −6EIz
6
6 L3
0 0 0 L2
7
7
6 7
6 7
12EIy 6EIy
0
6 7
6
6 L3 L2 7
7
6 7
GJ
0 0
6 7
6
6 L 7
7
6 7
6 4EIy 7
6
6 L
0 7
7
4 5
4EIz
sim. L
(6.1)
A matriz de rigidez no sistema global é obtida por transformação na forma

K = RT K0 R
onde a matriz de rotação é dada por
 
r000
0 r 0 0
R= 
0 0 r 0 (6.2)
000r
sendo
 
CXx CY x CZx
r =  CXy CY y CZy  (6.3)
CXz CY z CZz
onde
CXx = cosθXx
6.3 Exemplo 1 109

Verifica-se que o elemento de pórtico tridimensional de dois nós tem


seis graus de liberdade por nó, pelo que a matriz de rigidez global ”assem-
blada”possui uma dimensão 6n, sendo n o número de nós do problema.
Depois de calcular os deslocamentos nodais é possivel calcular as reacções
nos nós de apoio, fazendo

F = KU (6.4)
onde K e U são a matriz de rigidez da estrutura e o vector de deslo-
camentos nodais da estrutura, respectivamente. Note-se que estamos apenas
interessados nas reacções dos apoios, por isso deve usar-se o comando F(dofs),
sendo dofs os graus de liberdade prescritos.
Calculados os deslocamentos nodais é também possivel calcular as forças
em cada elemento, através da transformação de eixos

fe = ke RUe (6.5)

6.3 Exemplo 1
Considere o problema, ilustrado na figura 6.2, no qual se considera E = 210
GPa, G = 84 GPa, A = 2 × 10−2 m2 , Iy = 10 × 10−5 m4 , Iz = 20 × 10−5 m4 ,
J = 5 × 10−5 m4 , o programa portico3D1.m a seguir ilustrado, calcula os
deslocamentos nodais, reacções nos apoios e forças em cada elemento.

2
3

1 4m
20 kN
10 kN Z

3m 4 3m

Figura 6.2. Exemplo de problema de pórtico tridimensional

O código (portico3D1.m) é a seguir apresentado:


1 clear all
2 E=210e6; A=0.02; Iy=10e-5; Iz=20e-5; J=5e-5; G=84e6;
3 node=[0 0 0; 3 0 0; 0 0 -3; 0 -4 0];
110 6 Análise de pórticos tridimensionais

4 xx=node(:,1); yy=node(:,2); zz=node(:,3);


5 element=[1 2;1 3;1 4]; numnode=size(node,1);numelem=size(element,1);
6 U=zeros(6*numnode,1);f=zeros(6*numnode,1);K=sparse(6*numnode,6*numnode);
7 f(1)=-10.0;f(3)=20.0;
8 for e=1:numelem ;
9 index=element(e,:) ;
10 indexB=[6*index(1)-5 6*index(1)-4 6*index(1)-3 ...
11 6*index(1)-2 6*index(1)-1 6*index(1)...
12 6*index(2)-5 6*index(2)-4 6*index(2)-3 ...
13 6*index(2)-2 6*index(2)-1 6*index(2)] ;
14 x1=node(index(1),1);y1=node(index(1),2);
15 z1=node(index(1),3);x2=node(index(2),1);
16 y2=node(index(2),2);z2=node(index(2),3);
17
18 L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1));
19 w1 = E*A/L;
20 w2 = 12*E*Iz/(L*L*L);
21 w3 = 6*E*Iz/(L*L);
22 w4 = 4*E*Iz/L;
23 w5 = 2*E*Iz/L;
24 w6 = 12*E*Iy/(L*L*L);
25 w7 = 6*E*Iy/(L*L);
26 w8 = 4*E*Iy/L;
27 w9 = 2*E*Iy/L;
28 w10 = G*J/L;
29 k = [w1 0 0 0 0 0 -w1 0 0 0 0 0 ;
30 0 w2 0 0 0 w3 0 -w2 0 0 0 w3 ;
31 0 0 w6 0 -w7 0 0 0 -w6 0 -w7 0 ;
32 0 0 0 w10 0 0 0 0 0 -w10 0 0 ;
33 0 0 -w7 0 w8 0 0 0 w7 0 w9 0 ;
34 0 w3 0 0 0 w4 0 -w3 0 0 0 w5 ;
35 -w1 0 0 0 0 0 w1 0 0 0 0 0 ;
36 0 -w2 0 0 0 -w3 0 w2 0 0 0 -w3 ;
37 0 0 -w6 0 w7 0 0 0 w6 0 w7 0 ;
38 0 0 0 -w10 0 0 0 0 0 w10 0 0 ;
39 0 0 -w7 0 w9 0 0 0 w7 0 w8 0 ;
40 0 w3 0 0 0 w5 0 -w3 0 0 0 w4];
41 if x1 == x2 & y1 == y2
42 if z2 > z1
43 Lambda = [0 0 1 ; 0 1 0 ; -1 0 0];
44 else
45 Lambda = [0 0 -1 ; 0 1 0 ; 1 0 0];
46 end
47 else
48 CXx = (x2-x1)/L;
49 CYx = (y2-y1)/L;
50 CZx = (z2-z1)/L;
51 D = sqrt(CXx*CXx + CYx*CYx);
52 CXy = -CYx/D;
6.3 Exemplo 1 111

53 CYy = CXx/D;
54 CZy = 0;
55 CXz = -CXx*CZx/D;
56 CYz = -CYx*CZx/D;
57 CZz = D;
58 Lambda = [CXx CYx CZx ; CXy CYy CZy ; CXz CYz CZz];
59 end
60 R = [Lambda zeros(3) zeros(3) zeros(3) ;
61 zeros(3) Lambda zeros(3) zeros(3) ;
62 zeros(3) zeros(3) Lambda zeros(3) ;
63 zeros(3) zeros(3) zeros(3) Lambda];
64 K(indexB,indexB)=K(indexB,indexB)+R’*k*R;
65 end
66 % BC and solution
67 dofs=[7:24]; activos=setdiff([1:6*numnode]’,[dofs]);
68 U=K(activos,activos)\f(activos);U1=zeros(6*numnode,1);U1(activos)=U;
69 % displacements
70 U=U1;
71 % reactions
72 F=K*U
73 % forces in elements
74 ff=zeros(numelem,12); format
75 for e=1:numelem;
76 index=element(e,:) ;
77 indexB=[6*index(1)-5 6*index(1)-4 6*index(1)-3 ...
78 6*index(1)-2 6*index(1)-1 6*index(1)...
79 6*index(2)-5 6*index(2)-4 6*index(2)-3 ...
80 6*index(2)-2 6*index(2)-1 6*index(2)] ;
81 u=U(indexB);
82 x1=node(index(1),1);y1=node(index(1),2);
83 z1=node(index(1),3);x2=node(index(2),1);
84 y2=node(index(2),2);z2=node(index(2),3);
85
86 L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1));
87 w1 = E*A/L;
88 w2 = 12*E*Iz/(L*L*L);
89 w3 = 6*E*Iz/(L*L);
90 w4 = 4*E*Iz/L;
91 w5 = 2*E*Iz/L;
92 w6 = 12*E*Iy/(L*L*L);
93 w7 = 6*E*Iy/(L*L);
94 w8 = 4*E*Iy/L;
95 w9 = 2*E*Iy/L;
96 w10 = G*J/L;
97 kprime = [w1 0 0 0 0 0 -w1 0 0 0 0 0 ;
98 0 w2 0 0 0 w3 0 -w2 0 0 0 w3 ;
99 0 0 w6 0 -w7 0 0 0 -w6 0 -w7 0 ;
100 0 0 0 w10 0 0 0 0 0 -w10 0 0 ;
101 0 0 -w7 0 w8 0 0 0 w7 0 w9 0 ;
112 6 Análise de pórticos tridimensionais

102 0 w3 0 0 0 w4 0 -w3 0 0 0 w5 ;
103 -w1 0 0 0 0 0 w1 0 0 0 0 0 ;
104 0 -w2 0 0 0 -w3 0 w2 0 0 0 -w3 ;
105 0 0 -w6 0 w7 0 0 0 w6 0 w7 0 ;
106 0 0 0 -w10 0 0 0 0 0 w10 0 0 ;
107 0 0 -w7 0 w9 0 0 0 w7 0 w8 0 ;
108 0 w3 0 0 0 w5 0 -w3 0 0 0 w4];
109 if x1 == x2 & y1 == y2
110 if z2 > z1
111 Lambda = [0 0 1 ; 0 1 0 ; -1 0 0];
112 else
113 Lambda = [0 0 -1 ; 0 1 0 ; 1 0 0];
114 end
115 else
116 CXx = (x2-x1)/L;
117 CYx = (y2-y1)/L;
118 CZx = (z2-z1)/L;
119 D = sqrt(CXx*CXx + CYx*CYx);
120 CXy = -CYx/D;
121 CYy = CXx/D;
122 CZy = 0;
123 CXz = -CXx*CZx/D;
124 CYz = -CYx*CZx/D;
125 CZz = D;
126 Lambda = [CXx CYx CZx ; CXy CYy CZy ; CXz CYz CZz];
127 end
128 R = [Lambda zeros(3) zeros(3) zeros(3) ;
129 zeros(3) Lambda zeros(3) zeros(3) ;
130 zeros(3) zeros(3) Lambda zeros(3) ;
131 zeros(3) zeros(3) zeros(3) Lambda];
132 ff(e,:) = kprime*R* u;
133
134 end
135 format long
136 disp(’deslocamentos’)
137 [(1:size(U,1))’,U]
138 format
139 disp(’reaccoes’)
140 [(dofs)’,F(dofs)]
141 disp(’forcas nos elementos’)
142 ff’
143
144

deslocamentos

ans =

1.00000000000000 -0.00000705147750
6.3 Exemplo 1 113

2.00000000000000 -0.00000006653671
3.00000000000000 0.00001417695819
4.00000000000000 0.00000144778793
5.00000000000000 0.00000174858422
6.00000000000000 0.00000113605431
7.00000000000000 0
8.00000000000000 0
9.00000000000000 0
10.00000000000000 0
11.00000000000000 0
12.00000000000000 0
13.00000000000000 0
14.00000000000000 0
15.00000000000000 0
16.00000000000000 0
17.00000000000000 0
18.00000000000000 0
19.00000000000000 0
20.00000000000000 0
21.00000000000000 0
22.00000000000000 0
23.00000000000000 0
24.00000000000000 0

reaccoes

ans =

7.0000 9.8721
8.0000 -0.0306
9.0000 -0.1078
10.0000 -0.0020
11.0000 -0.1740
12.0000 0.0299
13.0000 0.0903
14.0000 -0.0393
15.0000 -19.8477
16.0000 0.0387
17.0000 0.1232
18.0000 -0.0016
19.0000 0.0376
20.0000 0.0699
21.0000 -0.0444
22.0000 -0.0964
23.0000 -0.0018
114 6 Análise de pórticos tridimensionais

24.0000 -0.0872

forcas nos elementos

ans =

-9.8721 -19.8477 0.0699


0.0306 0.0393 -0.0376
0.1078 -0.0903 0.0444
0.0020 -0.0016 -0.0018
-0.1495 0.1477 -0.0812
0.0618 0.0792 -0.0633
9.8721 19.8477 -0.0699
-0.0306 -0.0393 0.0376
-0.1078 0.0903 -0.0444
-0.0020 0.0016 0.0018
-0.1740 0.1232 -0.0964
0.0299 0.0387 -0.0872

6.4 Exemplo 2
Considere o problema, ilustrado na figura 6.3, no qual se considera E = 210
GPa, G = 84 GPa, A = 2 × 10−2 m2 , Iy = 10 × 10−5 m4 , Iz = 20 × 10−5 m4 ,
J = 5 × 10−5 m4 , o programa portico3D2.m a seguir ilustrado, calcula os
deslocamentos nodais, reacções nos apoios e forças em cada elemento.
O código (portico3D2.m) é a seguir apresentado:
1 clear all
2 E=210e6; A=0.02; Iy=10e-5; Iz=20e-5; J=5e-5; G=84e6;
3 node=[0 0 0;
4 0 0 4;
5 4 0 4;
6 4 0 0;
7 0 5 0;
8 0 5 4;
9 4 5 4;
10 4 5 0;
11 ];
12 xx=node(:,1); yy=node(:,2); zz=node(:,3);
13 element=[1 5;2 6;3 7; 4 8; 5 6; 6 7; 7 8; 8 5];
14 numnode=size(node,1);numelem=size(element,1);
15 U=zeros(6*numnode,1);f=zeros(6*numnode,1);K=sparse(6*numnode,6*numnode);
16 f(37)=-15.0;
17 for e=1:numelem ;
18 index=element(e,:) ;
6.4 Exemplo 2 115

8
15kN

7
5

6 X
5m

4
3
1

4m
4m 2

Figura 6.3. Exemplo de problema de pórtico tridimensional

19 indexB=[6*index(1)-5 6*index(1)-4 6*index(1)-3 ...


20 6*index(1)-2 6*index(1)-1 6*index(1)...
21 6*index(2)-5 6*index(2)-4 6*index(2)-3 ...
22 6*index(2)-2 6*index(2)-1 6*index(2)] ;
23 x1=node(index(1),1);y1=node(index(1),2);
24 z1=node(index(1),3);x2=node(index(2),1);
25 y2=node(index(2),2);z2=node(index(2),3);
26
27 L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1));
28 w1 = E*A/L;
29 w2 = 12*E*Iz/(L*L*L);
30 w3 = 6*E*Iz/(L*L);
31 w4 = 4*E*Iz/L;
32 w5 = 2*E*Iz/L;
33 w6 = 12*E*Iy/(L*L*L);
34 w7 = 6*E*Iy/(L*L);
35 w8 = 4*E*Iy/L;
36 w9 = 2*E*Iy/L;
37 w10 = G*J/L;
38 k = [w1 0 0 0 0 0 -w1 0 0 0 0 0 ;
39 0 w2 0 0 0 w3 0 -w2 0 0 0 w3 ;
40 0 0 w6 0 -w7 0 0 0 -w6 0 -w7 0 ;
41 0 0 0 w10 0 0 0 0 0 -w10 0 0 ;
42 0 0 -w7 0 w8 0 0 0 w7 0 w9 0 ;
43 0 w3 0 0 0 w4 0 -w3 0 0 0 w5 ;
44 -w1 0 0 0 0 0 w1 0 0 0 0 0 ;
45 0 -w2 0 0 0 -w3 0 w2 0 0 0 -w3 ;
46 0 0 -w6 0 w7 0 0 0 w6 0 w7 0 ;
116 6 Análise de pórticos tridimensionais

47 0 0 0 -w10 0 0 0 0 0 w10 0 0 ;
48 0 0 -w7 0 w9 0 0 0 w7 0 w8 0 ;
49 0 w3 0 0 0 w5 0 -w3 0 0 0 w4];
50 if x1 == x2 & y1 == y2
51 if z2 > z1
52 Lambda = [0 0 1 ; 0 1 0 ; -1 0 0];
53 else
54 Lambda = [0 0 -1 ; 0 1 0 ; 1 0 0];
55 end
56 else
57 CXx = (x2-x1)/L;
58 CYx = (y2-y1)/L;
59 CZx = (z2-z1)/L;
60 D = sqrt(CXx*CXx + CYx*CYx);
61 CXy = -CYx/D;
62 CYy = CXx/D;
63 CZy = 0;
64 CXz = -CXx*CZx/D;
65 CYz = -CYx*CZx/D;
66 CZz = D;
67 Lambda = [CXx CYx CZx ; CXy CYy CZy ; CXz CYz CZz];
68 end
69 R = [Lambda zeros(3) zeros(3) zeros(3) ;
70 zeros(3) Lambda zeros(3) zeros(3) ;
71 zeros(3) zeros(3) Lambda zeros(3) ;
72 zeros(3) zeros(3) zeros(3) Lambda];
73 K(indexB,indexB)=K(indexB,indexB)+R’*k*R;
74 end
75 % BC and solution
76 dofs=[1:24]; activos=setdiff([1:6*numnode]’,[dofs]);
77 U=K(activos,activos)\f(activos);U1=zeros(6*numnode,1);U1(activos)=U;
78 % displacements
79 U=U1;
80 % reactions
81 F=K*U
82 % forces in elements
83 ff=zeros(numelem,12); format
84 for e=1:numelem;
85 index=element(e,:) ;
86 indexB=[6*index(1)-5 6*index(1)-4 6*index(1)-3 ...
87 6*index(1)-2 6*index(1)-1 6*index(1)...
88 6*index(2)-5 6*index(2)-4 6*index(2)-3 ...
89 6*index(2)-2 6*index(2)-1 6*index(2)] ;
90 u=U(indexB);
91 x1=node(index(1),1);y1=node(index(1),2);
92 z1=node(index(1),3);x2=node(index(2),1);
93 y2=node(index(2),2);z2=node(index(2),3);
94
95 L = sqrt((x2-x1)*(x2-x1) + (y2-y1)*(y2-y1) + (z2-z1)*(z2-z1));
6.4 Exemplo 2 117

96 w1 = E*A/L;
97 w2 = 12*E*Iz/(L*L*L);
98 w3 = 6*E*Iz/(L*L);
99 w4 = 4*E*Iz/L;
100 w5 = 2*E*Iz/L;
101 w6 = 12*E*Iy/(L*L*L);
102 w7 = 6*E*Iy/(L*L);
103 w8 = 4*E*Iy/L;
104 w9 = 2*E*Iy/L;
105 w10 = G*J/L;
106 kprime = [w1 0 0 0 0 0 -w1 0 0 0 0 0 ;
107 0 w2 0 0 0 w3 0 -w2 0 0 0 w3 ;
108 0 0 w6 0 -w7 0 0 0 -w6 0 -w7 0 ;
109 0 0 0 w10 0 0 0 0 0 -w10 0 0 ;
110 0 0 -w7 0 w8 0 0 0 w7 0 w9 0 ;
111 0 w3 0 0 0 w4 0 -w3 0 0 0 w5 ;
112 -w1 0 0 0 0 0 w1 0 0 0 0 0 ;
113 0 -w2 0 0 0 -w3 0 w2 0 0 0 -w3 ;
114 0 0 -w6 0 w7 0 0 0 w6 0 w7 0 ;
115 0 0 0 -w10 0 0 0 0 0 w10 0 0 ;
116 0 0 -w7 0 w9 0 0 0 w7 0 w8 0 ;
117 0 w3 0 0 0 w5 0 -w3 0 0 0 w4];
118 if x1 == x2 & y1 == y2
119 if z2 > z1
120 Lambda = [0 0 1 ; 0 1 0 ; -1 0 0];
121 else
122 Lambda = [0 0 -1 ; 0 1 0 ; 1 0 0];
123 end
124 else
125 CXx = (x2-x1)/L;
126 CYx = (y2-y1)/L;
127 CZx = (z2-z1)/L;
128 D = sqrt(CXx*CXx + CYx*CYx);
129 CXy = -CYx/D;
130 CYy = CXx/D;
131 CZy = 0;
132 CXz = -CXx*CZx/D;
133 CYz = -CYx*CZx/D;
134 CZz = D;
135 Lambda = [CXx CYx CZx ; CXy CYy CZy ; CXz CYz CZz];
136 end
137 R = [Lambda zeros(3) zeros(3) zeros(3) ;
138 zeros(3) Lambda zeros(3) zeros(3) ;
139 zeros(3) zeros(3) Lambda zeros(3) ;
140 zeros(3) zeros(3) zeros(3) Lambda];
141 ff(e,:) = kprime*R* u;
142
143 end
144 format long
118 6 Análise de pórticos tridimensionais

145 disp(’deslocamentos’)
146 [(1:size(U,1))’,U]
147 format
148 disp(’reaccoes’)
149 [(dofs)’,F(dofs)]
150 disp(’forcas nos elementos’)
151 ff’
152
153

deslocamentos

ans =

1.00000000000000 0
2.00000000000000 0
3.00000000000000 0
4.00000000000000 0
5.00000000000000 0
6.00000000000000 0
7.00000000000000 0
8.00000000000000 0
9.00000000000000 0
10.00000000000000 0
11.00000000000000 0
12.00000000000000 0
13.00000000000000 0
14.00000000000000 0
15.00000000000000 0
16.00000000000000 0
17.00000000000000 0
18.00000000000000 0
19.00000000000000 0
20.00000000000000 0
21.00000000000000 0
22.00000000000000 0
23.00000000000000 0
24.00000000000000 0
25.00000000000000 -0.00039898093138
26.00000000000000 -0.00000298266432
27.00000000000000 -0.00058934587384
28.00000000000000 -0.00003552499889
29.00000000000000 -0.00035808604571
30.00000000000000 0.00004452635512
31.00000000000000 -0.00212492049669
6.4 Exemplo 2 119

32.00000000000000 -0.00000684334973
33.00000000000000 -0.00058934587384
34.00000000000000 -0.00003552499889
35.00000000000000 -0.00035808604571
36.00000000000000 0.00022175503338
37.00000000000000 -0.00213205232576
38.00000000000000 0.00000684334973
39.00000000000000 0.00058934587384
40.00000000000000 0.00003552499889
41.00000000000000 -0.00035939637254
42.00000000000000 0.00022304730891
43.00000000000000 -0.00039898458247
44.00000000000000 0.00000298266432
45.00000000000000 0.00058934587384
46.00000000000000 0.00003552499889
47.00000000000000 -0.00035939637254
48.00000000000000 0.00004455139901

reaccoes

ans =

1.0000 1.1599
2.0000 2.5054
3.0000 1.0091
4.0000 2.6719
5.0000 0.3008
6.0000 -3.2737
7.0000 6.3324
8.0000 5.7484
9.0000 1.0091
10.0000 2.6719
11.0000 0.3008
12.0000 -17.6937
13.0000 6.3481
14.0000 -5.7484
15.0000 -1.0091
16.0000 -2.6719
17.0000 0.3019
18.0000 -17.7439
19.0000 1.1596
20.0000 -2.5054
21.0000 -1.0091
22.0000 -2.6719
23.0000 0.3019
120 6 Análise de pórticos tridimensionais

24.0000 -3.2733

forcas nos elementos

ans =

2.5054 5.7484 -5.7484 -2.5054 0.0000 7.4884 0.0000 0.0038


-1.1599 -6.3324 -6.3481 -1.1596 1.1494 6.8979 1.1494 1.3560
1.0091 1.0091 -1.0091 -1.0091 -1.1560 1.0091 -1.1635 -1.0091
0.3008 0.3008 0.3019 0.3019 -0.1861 -0.0746 -0.1874 -0.0746
-2.6719 -2.6719 2.6719 2.6719 2.3121 -2.0113 2.3269 2.0250
-3.2737 -17.6937 -17.7439 -3.2733 2.2989 13.7821 2.2989 2.7123
-2.5054 -5.7484 5.7484 2.5054 -0.0000 -7.4884 -0.0000 -0.0038
1.1599 6.3324 6.3481 1.1596 -1.1494 -6.8979 -1.1494 -1.3560
-1.0091 -1.0091 1.0091 1.0091 1.1560 -1.0091 1.1635 1.0091
-0.3008 -0.3008 -0.3019 -0.3019 0.1861 0.0746 0.1874 0.0746
-2.3735 -2.3735 2.3735 2.3735 2.3121 -2.0250 2.3269 2.0113
-2.5256 -13.9682 -13.9967 -2.5248 2.2989 13.8093 2.2989 2.7117
7
Análise de grelhas

7.1 Introdução
Apresenta-se agora a análise por elementos finitos de grelhas. Uma grelha é
uma estrutura tipo pórtico plano, mas onde as forças são aplicadas normais
ao seu plano, ao contrário do que acontece com os pórticos planos onde as
forças são aplicadas no seu plano. Uma grelha tipica é ilustrada na figura 7.1.

y
F1 F2

z F3 F4

Figura 7.1. Grelha tipica

Considera-se para cada nó um deslocamento transversal e duas rotações


segundo os eixos na direcção do plano (X e Z, respectivamente, conforme
ilustrado na figura 7.2. A matriz de rigidez do elemento de grelha em eixos
locais é dada por
122 7 Análise de grelhas
 12EI 6EI

le3 0 le2 − 12EI
le3 0 6EI
le2
GJ GJ
 0 0 0 − le 0
 
 6EI le 
4EI 6EI 2EI
− l2

 l2 0 le 0 le

ke =  e
 − 12EI 6EI 12EI
e
6EI
 (7.1)
l 3 0 − l2 3
le 0 − le2

 0 e − GJ 0 e
 
GJ
 le 0 le 0 

6EI 2EI
l 2 0 le − 6EI
l 2 0 4EI
le
e e

onde E é o módulo de elasticidade, I o momento de inércia à flexão, J o


momento de inércia polar e G o módulo de corte, sendo ainda L = le o
comprimento do elemento.

θz2
θz1 θx1 θx2
2
1 x

z L
w1 w2

Figura 7.2. Elemento de grelha

Considere-se C = cosθ e S = senθ, sendo θ o ângulo entre o eixo X e


o eixo x, contado no sentido contrário ao ponteiro do relógio. A matriz de
rotação é dada por
 
1 0 0 0 0 0
0 C S 0 0 0 
 
 0 −S C 0 0 0 
R=   (7.2)
0 0 0 1 0 0 

0 0 0 0 C S 
0 0 0 0 −S C
A matriz de rigidez em eixos globais é então dada por

Ke = RT ke R (7.3)
Verifica-se que o elemento de grelha de dois nós tem seis graus de liberdade,
pelo que a matriz de rigidez global ”assemblada”possui uma dimensão 3n,
sendo n o número de nós do problema.
Depois de calcular os deslocamentos nodais é possivel calcular as reacções
nos nós de apoio, fazendo

F = KU (7.4)
7.2 Exemplo 1 123

onde K e U são a matriz de rigidez da estrutura e o vector de deslo-


camentos nodais da estrutura, respectivamente. Note-se que estamos apenas
interessados nas reacções dos apoios, por isso deve usar-se o comando F(dofs),
sendo dofs os graus de liberdade prescritos.
Calculados os deslocamentos nodais é também possivel calcular as forças
em cada elemento, através da transformação de eixos

fe = ke RUe (7.5)

7.2 Exemplo 1
Considere-se o problema da figura 7.3. A grelha é constituida por duas barras,
com geometria, forças e apoios ilustrados na figura. Dados E = 210 GPa,
G = 84 GPa, I = 20 × 10−5 m4 , J = 5 × 10−5 m4 , o programa GRID1.M, a
seguir ilustrado, calcula os deslocamentos nodais, reacções nos apoios e forças
em cada elemento.

(2) 10 kN
3m
X
1
3m
(1)
2
4m

Z
Figura 7.3. Exemplo 1

O código (grid1.m) é a seguir apresentado:


1 clear all;
2
3 E=210e6; G=84e6; I=20e-5; J=5e-5;
4
5 node=[4 0; 0 3; 0 -3]; xx=node(:,1); yy=node(:,2);
6 element=[1 2; 3 1];
7 numnode=size(node,1); numelem=size(element,1);
124 7 Análise de grelhas

8 U=zeros(3*numnode,1); f=zeros(3*numnode,1);
9
10 K=sparse(3*numnode,3*numnode);
11 f(1)=-10;
12 for e=1:numelem ;
13 index=element(e,:) ;
14 indexB=[ (index(1)-1)*3+1 (index(1)-1)*3+2 (index(1)-1)*3+3 ...
15 (index(2)-1)*3+1 (index(2)-1)*3+2 (index(2)-1)*3+3] ;
16 xa=xx(index(2))-xx(index(1));ya=yy(index(2))-yy(index(1));
17 L=sqrt(xa*xa+ya*ya);
18 C=xa/L;
19 S=ya/L;
20
21 w1 = 12*E*I/(L*L*L); w2 = 6*E*I/(L*L);
22 w3 = G*J/L; w4 = 4*E*I/L;
23 w5 = 2*E*I/L;
24 k = [w1 0 w2 -w1 0 w2 ; 0 w3 0 0 -w3 0 ;
25 w2 0 w4 -w2 0 w5 ; -w1 0 -w2 w1 0 -w2 ;
26 0 -w3 0 0 w3 0 ; w2 0 w5 -w2 0 w4];
27 R = [1 0 0 0 0 0 ; 0 C S 0 0 0 ; 0 -S C 0 0 0 ;
28 0 0 0 1 0 0 ; 0 0 0 0 C S ; 0 0 0 0 -S C];
29
30 K(indexB,indexB)=K(indexB,indexB)+R’*k*R;
31 end
32
33
34 dofs=[4:9];activos=setdiff([1:3*numnode]’,[dofs]);
35 U=K(activos,activos)\f(activos);U1=zeros(3*numnode,1);U1(activos)=U;
36 disp(’deslocamentos ’)
37 U=U1
38
39 disp(’reaccoes ’)
40
41 F=K*U
42
43 EF=zeros(6,numelem);
44
45 for e=1:numelem ;
46 index=element(e,:) ;
47 indexB=[ (index(1)-1)*3+1 (index(1)-1)*3+2 (index(1)-1)*3+3 ...
48 (index(2)-1)*3+1 (index(2)-1)*3+2 (index(2)-1)*3+3] ;
49 xa=xx(index(2))-xx(index(1));ya=yy(index(2))-yy(index(1));
50 L=sqrt(xa*xa+ya*ya);
51 C=xa/L; S=ya/L;
52 w1 = 12*E*I/(L*L*L); w2 = 6*E*I/(L*L);
53 w3 = G*J/L; w4 = 4*E*I/L;
54 w5 = 2*E*I/L;
55 k = [w1 0 w2 -w1 0 w2 ; 0 w3 0 0 -w3 0 ;
56 w2 0 w4 -w2 0 w5 ; -w1 0 -w2 w1 0 -w2 ;
7.2 Exemplo 1 125

57 0 -w3 0 0 w3 0 ; w2 0 w5 -w2 0 w4];


58 R = [1 0 0 0 0 0 ; 0 C S 0 0 0 ; 0 -S C 0 0 0 ;
59 0 0 0 1 0 0 ; 0 0 0 0 C S ; 0 0 0 0 -S C];
60 EF (:,e)= k*R* U(indexB);
61 end
62
63 disp(’forcas nos elementos ’)
64 EF
65
O resultado obtido é o seguinte
deslocamentos

U =

-0.0048
0
-0.0018
0
0
0
0
0
0

reaccoes

F =

-10.0000
0
-0.0000
5.0000
13.8905
20.0000
5.0000
-13.8905
20.0000

forcas nos elementos

EF =

-5.0000 5.0000
-0.8876 0.8876
-0.6657 24.3343
126 7 Análise de grelhas

5.0000 -5.0000
0.8876 -0.8876
-24.3343 0.6657

7.3 Exemplo 2
Considere-se o problema da figura 7.4. A grelha é constituida por três barras,
com geometria, forças e apoios ilustrados na figura. Dados E = 210 GPa,
G = 84 GPa, I = 20 × 10−5 m4 , J = 5 × 10−5 m4 , o programa grid2.m, a seguir
ilustrado, calcula os deslocamentos nodais, reacções nos apoios e forças em
cada elemento.

3 4 X

P
4m
2
1
Z 4m

Figura 7.4. Exemplo 2

O código (grid2.m) é a seguir apresentado:


1 clear all;
2
3 E=210e6; G=84e6; I=20e-5; J=5e-5;
4
5 node=[4 4; 0 4; 0 0 ; 4 0];
6 xx=node(:,1); yy=node(:,2);
7 element=[1 2; 3 1; 4 1];
8 numnode=size(node,1); numelem=size(element,1);
9 U=zeros(3*numnode,1); f=zeros(3*numnode,1);
10
11 K=sparse(3*numnode,3*numnode);
12
13 f(1)=-20;
14
15 for e=1:numelem ;
16 index=element(e,:) ;
7.3 Exemplo 2 127

17 indexB=[ (index(1)-1)*3+1 (index(1)-1)*3+2 (index(1)-1)*3+3 ...


18 (index(2)-1)*3+1 (index(2)-1)*3+2 (index(2)-1)*3+3] ;
19 xa=xx(index(2))-xx(index(1));ya=yy(index(2))-yy(index(1));
20 L=sqrt(xa*xa+ya*ya);
21 C=xa/L;
22 S=ya/L;
23
24 w1 = 12*E*I/(L*L*L); w2 = 6*E*I/(L*L);
25 w3 = G*J/L; w4 = 4*E*I/L;
26 w5 = 2*E*I/L;
27 k = [w1 0 w2 -w1 0 w2 ; 0 w3 0 0 -w3 0 ;
28 w2 0 w4 -w2 0 w5 ; -w1 0 -w2 w1 0 -w2 ;
29 0 -w3 0 0 w3 0 ; w2 0 w5 -w2 0 w4];
30 R = [1 0 0 0 0 0 ; 0 C S 0 0 0 ; 0 -S C 0 0 0 ;
31 0 0 0 1 0 0 ; 0 0 0 0 C S ; 0 0 0 0 -S C];
32
33 K(indexB,indexB)=K(indexB,indexB)+R’*k*R;
34 end
35
36
37
38 dofs=[4:12];activos=setdiff([1:3*numnode]’,[dofs]);
39 U=K(activos,activos)\f(activos);U1=zeros(3*numnode,1);U1(activos)=U;
40 disp(’deslocamentos ’)
41 U=U1
42
43 disp(’reaccoes ’)
44
45 F=K*U
46
47
48 EF=zeros(6,numelem);
49
50 for e=1:numelem ;
51 index=element(e,:) ;
52 indexB=[ (index(1)-1)*3+1 (index(1)-1)*3+2 (index(1)-1)*3+3 ...
53 (index(2)-1)*3+1 (index(2)-1)*3+2 (index(2)-1)*3+3] ;
54 xa=xx(index(2))-xx(index(1));ya=yy(index(2))-yy(index(1));
55 L=sqrt(xa*xa+ya*ya);
56 C=xa/L; S=ya/L;
57 w1 = 12*E*I/(L*L*L); w2 = 6*E*I/(L*L);
58 w3 = G*J/L; w4 = 4*E*I/L;
59 w5 = 2*E*I/L;
60 k = [w1 0 w2 -w1 0 w2 ; 0 w3 0 0 -w3 0 ;
61 w2 0 w4 -w2 0 w5 ; -w1 0 -w2 w1 0 -w2 ;
62 0 -w3 0 0 w3 0 ; w2 0 w5 -w2 0 w4];
63 R = [1 0 0 0 0 0 ; 0 C S 0 0 0 ; 0 -S C 0 0 0 ;
64 0 0 0 1 0 0 ; 0 0 0 0 C S ; 0 0 0 0 -S C];
65 EF (:,e)= k*R* U(indexB);
128 7 Análise de grelhas

66 end
67
68 disp(’forcas nos elementos ’)
69 EF
70

O resultado obtido é o seguinte


deslocamentos

U =

-0.0033
0.0010
-0.0010
0
0
0
0
0
0
0
0
0

reaccoes

F =

-20.0000
-0.0000
0.0000
10.7937
-1.0189
31.7764
-1.5874
-4.0299
4.0299
10.7937
-31.7764
1.0189

forcas nos elementos

EF =
7.3 Exemplo 2 129

-10.7937 -1.5874 10.7937


-1.0189 -0.0000 1.0189
-11.3984 5.6992 31.7764
10.7937 1.5874 -10.7937
1.0189 0.0000 -1.0189
-31.7764 -14.6788 11.3984
8
Formulação de elementos de viga Timoshenko

8.1 Introdução
A formulação de elementos de viga é habitualmente baseada na teoria de
Euler-Bernoulli (despreza os efeitos de corte transverso) e na teoria de Ti-
moshenko (que considera esses efeitos).

8.2 Campo de deslocamentos


A teoria de Timoshenko é mais geral, embora possa produzir efeitos de re-
tenção de corte (locking), com o seguinte campo de deslocamentos

u = −zθ; w = w0 (8.1)
onde z representa a coordenada na direcção da espessura, θ uma rotação da
normal ao eixo médio da viga e w0 o deslocamento transversal (flecha) dum
qualquer ponto do eixo da viga.

8.3 Campo de deformações

As deformações de flexão e corte são obtidas por


dθ dw0
xx = −z ; γxz = −θ + (8.2)
dx dx

8.4 Campo de tensões


As tensões de flexão e corte são então obtidas por
132 8 Formulação de elementos de viga Timoshenko
 
dθ dw0
σxx = Exx = −zE ; τxz = kGγxz = −kG θ + (8.3)
dx dx

onde k é um factor de correcção ao corte (5/6 habitualmente).

8.5 Equações de equilı́brio


Aplicando o princı́pio dos trabalhos virtuais ao elemento de viga, obtem-se
Z Z L Z L
δσdV = pδwdx + M δθdx (8.4)
V 0 0
ou

Z L Z L   Z L  Z L
dδθ dθ dw dδw
EI dx+GAk − δθ
− θ dx = pδwdx+ M δθdx
0 dx dx 0 dx dx 0 0
(8.5)
onde p e M são as cargas transversais e momentos por unidade de compri-
mento.

8.6 Elementos isoparamétricos


Podemos agora usar uma interpolação isoparamétrica (para um elemento de
3 nós, por exemplo, ilustrado na figura 8.1), na forma
3
X 3
X
w= Ni wi ; θ = Ni θi (8.6)
i=1 i=1

θ1
θ2 θ3

w1 w2 w3

Figura 8.1. Elemento de viga Timoshenko de 3 nós

ou

w = Nw û; θ = Nθ û (8.7)
8.7 Programa MATLAB 133

e
dw dθ
= Bw û; = Bθ û (8.8)
dx dx
onde
ûT = w1 w2 w3 θ1 θ2 θ3
 
(8.9)
e  
Nw = N1 N2 N3 0 0 0 (8.10)
e  
Nθ = 0 0 0 N1 N2 N3 (8.11)
bem como  
dN1 dN2 dN3
Bw = J −1 000 (8.12)
dξ dξ dξ
e  
dN1 dN2 dN3
Bθ = J −1 0 0 0 (8.13)
dξ dξ dξ
dx
onde J = . Para um elemento simples, podemos encontrar a matriz de

rigidez e o vector de forças nodais consistentes como

Z 1 Z 1
T
K = EI BTθ Bθ det Jdξ + GAk (Bw − Nθ ) (Bw − Nθ ) det Jdξ
−1 −1
(8.14)
e
Z 1 Z 1
R= NTw pdet Jdξ + NTθ M det Jdξ (8.15)
−1 −1

Caso a matriz de massa seja necessária, obtem-se como


 
Z 1 T ρbh 0  
Nw 3  Nw det Jdξ
M=  ρbh (8.16)
−1 Nθ 0 Nθ
12

8.7 Programa MATLAB


Nesta secção apresenta-se a listagem dum programa em MATLAB para a
análise linear de vigas Timoshenko em flexão. Em particular, este código ana-
lisa uma viga simplesmente apoiada em flexão, sujeita a carga uniforme P ,
com comprimento L, conforme ilustrado na figura 8.2. A solução analitica
(para viga fina) é
134 8 Formulação de elementos de viga Timoshenko

5P L4
wmax = (8.17)
384EI
sendo E o módulo de elasticidade e I o momento de inércia. Verifica-se que o
máximo valor do deslocamento, obtido por
max(U(ws))
é de grande qualidade (conseguem-se erros de cerca de 0.004% para 100 ele-
mentos, convergentes, ou seja, cada vez menor erro). Note-se que a matriz
de rigidez é calculada em duas etapas, uma correspondente à contribuição de
flexão e outra correspondente à contribuição de corte, atendendo à necessidade
de realizar a integração numérica de forma distinta.

2L

Figura 8.2. Viga em flexão, sujeita a carga uniformemente distribuida

Na figura 8.3 ilustra-se a deformada da viga em flexão.


O código (VigaTimoshenko.m) é a seguir apresentado:
1 clear all
2 %
3 E0 = 10e7; % mdulo E
4 nu0 = 0.30; % Poisson
5 %
6 L = 1; % comprimento
7 thickness=0.001;
8 rho=1;
9 I=thickness^3/12;% momento de inercia
10 A=1*thickness;
11 %
12 elemType = ’L2’; % tipo de elemento
13 numx = 100;
14 %
15 P = -1; % pressao uniforme
16 % matriz constitutiva
17 G=E0/2/(1+nu0);
18 C=[ I*E0 0; 0 5/6*thickness*G];
19 %
20 % malha
21 node=linspace(0,L,numx+1);xx=node;
22 %
23 for i=1:size(node,2)-1
8.7 Programa MATLAB 135

−10

−20

−30

−40

−50

−60

−70

−80

−90

−100
0 0.5 1 1.5 2 2.5 3 3.5 4

Figura 8.3. Viga em flexão, sujeita a carga uniformemente distribuida: ilustração


da deformada dos nós (meia viga)

24 element(i,1)=i;
25 element(i,2)=i+1
26 end
27 %
28 numnode=size(node,2); % num. nos
29 numelem=size(element,1); % num. elementos
30 %
31 K=zeros(2*numnode,2*numnode);
32 f=zeros(2*numnode,1);
33 % rigidez
34 W=zeros(2); Q=zeros(2);
35
136 8 Formulação de elementos de viga Timoshenko

36 Q(1) = 0.577350269189626;
37 Q(2) =-0.577350269189626;
38
39 W(1) = 1.; W(2) = 1.;
40
41 for e=1:numelem; sctr=element(e,:); sctrB=[ sctr sctr+numnode];
42 sctrR=sctr+numnode;
43 nn=length(sctr); length_element=xx(sctr(2))-xx(sctr(1));
44 detJ0=length_element/2;invJ0=1/detJ0;
45 for q=1:size(W,1) ;
46 pt=Q(q,:); wt=W(q);
47 pt=pt(1);
48 N=([1-pt,1+pt]/2)’;
49 dNdxi=[-1;1]/2;
50 dNdx=dNdxi*invJ0;
51 % B
52 B=zeros(2,2*nn); B(1,nn+1:2*nn) = dNdx(:)’;
53 % K
54 K(sctrB,sctrB)=K(sctrB,sctrB)+B’*B*W(q)*detJ0*C(1,1);
55 f(sctr)=f(sctr)+N*P*detJ0*wt;
56
57 end
58 end
59 %
60 W=zeros(1); Q=zeros(1);
61
62 Q(1) = 0.;
63
64 W(1) = 2.;
65
66 for e=1:numelem ;sctr=element(e,:); sctrB=[ sctr sctr+numnode];
67 nn=length(sctr); length_element=xx(sctr(2))-xx(sctr(1));
68 detJ0=length_element/2;invJ0=1/detJ0;
69 for q=1:size(W,1) ;
70 pt=Q(q,:); wt=W(q);
71 pt=pt(1);
72 N=([1-pt,1+pt]/2)’;
73 dNdxi=[-1;1]/2;
74 dNdx=dNdxi*invJ0;
75 % B
76 B=zeros(2,2*nn); B(2,1:nn) = dNdx(:)’;
77 B(2,nn+1:2*nn) = N;
78 % K
79 K(sctrB,sctrB)=K(sctrB,sctrB)+B’*B*W(q)*detJ0*C(2,2);
80 end
81 end
82 % BC
83 bcwt=mean(diag(K));
84 % condicoes fronteira (meia viga com simetria)
8.7 Programa MATLAB 137

85 fixedNodeW =find(xx==max(node(:)))’;
86 fixedNodeTX=find(xx==min(node(:)))’;;
87 %fixedNodeW =find(xx==max(node(:))|xx==min(node(:)))’;
88 %fixedNodeTX=find(xx==min(node(:)))’;;
89 %fixedNodeTX=find(xx==L/2)’;
90 %fixedNodeTX=fixedNodeW;
91 %
92 % encastrado na pontoa x=0
93
94 %fixedNodeW =find(xx==min(node(:)))’;
95 %fixedNodeTX=fixedNodeW;
96
97 activeDof=setdiff([1:2*numnode]’,[fixedNodeW;fixedNodeTX+numnode]);
98 U=K(activeDof,activeDof)\f(activeDof);
99 U1=zeros(2*numnode,1);
100 U1(activeDof)=U;
101 U=U1;
102 plot(xx,U1(1:numnode),’.-’)
103
104 ws=1:numnode;
105
106 exact=5*P*(2*L)^4/384/C(1,1);error=(exact-min(U(ws)))/exact*100
107 disp([num2str(error),’ % ERROR’]) ; plot(xx,U(ws),’b.-’)
9
Estado plano de tensão

9.1 Introdução
Consideram-se aqui elementos bidimensionais para estado plano de tensão
(problemas onde a espessura é desprezável em relação às outras coordenadas).
Considere-se uma placa fina, com espessura h, conforme ilustrado na figura
9.1. A direcção normal à placa z, é também chamada direcção transversal à
placa. Consideram-se ainda os dois eixos globais x, y. Considera-se que a placa
está em estado plano de tensão ou estado de membrana, quando:
• todas as cargas aplicadas actuam no plano médio da placa, sendo ainda
simétricas relativamente a este
• todas as condições de apoio são simétricas relativamente ao plano médio
• os deslocamentos do plano, as deformações e as tensões são consideradas
uniformes relativamente ao plano médio
• as tensões normal e de corte segundo a direcção z são desprezadas, por
serem muito pequenas quando comparadas com as outras componentes.
Considera-se também que o material é homogéneo, sendo a placa assim
chamada de transversalmente isotrópica.
Considera-se então para efeitos de desenvolvimento do problema variaci-
onal e do problema de fronteira um plano médio, com um dominio Ω e uma
fronteira Γ , conforme ilustrado na figura 9.2. Considera-se que todas as enti-
dades relacionadas com a terceira dimensão são funções de x e de y, integradas
na direcção da espessura.
A geometria do problema é definida pela sua fronteira Γ , a espessura é
representada por h, o material é isotrópico e as forças de volume (por exemplo
peso da placa) são consideradas actuantes no interior do domı́nio Ω. As forças
tractivas actuantes nas faces são referidas ao plano médio da placa.

9.2 Variáveis
As variáveis do problema são os seus deslocamentos
140 9 Estado plano de tensão
P1
P2

P5 P3

z
P4
y

Figura 9.1. Estado plano de tensão: cargas aplicadas

y

Figura 9.2. Estado plano de tensão: plano médio, domı́nio (Ω) e fronteira (Γ )

 
u(x, y)
u(x, y) = (9.1)
v(x, y)
enquanto que as deformações são obtidas por derivação dos deslocamentos
 
∂u
 ∂x 
   
x
 
 ∂v 
(x, y) =  y  =  (9.2)
 
∂y

γxy
 
 
 
 ∂u ∂v 
+
∂y ∂x

Tendo em conta as equações da elasticidade linear, podem obter-se as


tensões na forma
9.4 Energia potencial 141
 
E νE
 1 − ν2 1 − ν2 0 
    
σx 
 
 νE E  x
σ =  σy  =  0  y  (9.3)
 
 1 − ν2 1 − ν2
τxy  γxy


 
 E 
0 0 G=
2(1 + ν)

onde E é o módulo de elasticidade do material e ν o coeficiente de Poisson.


As equações de equilibrio estático deste problema são obtidas por redução das
equações de equilibrio tridimensional a duas dimensões, na forma
∂σx ∂τxy
+ + bx = 0 (9.4)
∂x ∂y
∂τxy ∂σy
+ + by = 0 (9.5)
∂x ∂y
sendo bx , by forças de volume aplicadas em todo o corpo.

9.3 Condições fronteira


As condições fronteira (essenciais) são aplicadas em termos dos deslocamentos,
na fronteira Γu , na forma

u = û (9.6)
ou em termos de tracções superficiais (naturais) na fronteira Γt , na forma

σ n = t̂ (9.7)

sendo t̂ as tracções de superficie por unidade de área e σ n o vector de


tensão normal à placa,
As componentes de σ n em coordenadas cartesianas podem ser obtidas por
fórmulas de Cauchy
 
    σx
σx nx + τxy ny nx 0 ny 
σ= = σy  (9.8)
τxy nx + σy ny 0 ny nx
τxy

9.4 Energia potencial

Pode escrever-se a energia potencial na forma habitual

Π =U −W (9.9)
142 9 Estado plano de tensão

sendo U a energia elástica de deformação, obtida por


Z Z
1 T 1
U= h σdΩ = hT CdΩ (9.10)
2 Ω 2 Ω
sendo C a matriz constitutiva elástica, obtida por
 
E νE
 1 − ν2 1 − ν2 0 
 
 
 νE E 
C= 0 (9.11)
 
2
1−ν 1−ν 2 

 
 
 E 
0 0
2(1 + ν)
A energia produzida pelas forças externas é dada por
Z Z
W = huT bdΩ + huT t̂dΓ (9.12)
Ω Γt

9.5 Equações de elementos finitos


Considerando uma discretização de elementos finitos, definindo um dominio
para o elemento Ω e e uma fronteira do elemento Γ e , o elemento finito genérico
com n nós possui 2n graus de liberdade que podem ser organizados de muitas
formas, como por exemplo
T
ue = u1

v1 u2 v2 ... un vn (9.13)

9.6 Interpolação de deslocamentos


O campo de deslocamentos u em cada elemento é agora interpolado através
dos deslocamentos nodais, usando uma interpolação idêntica para as duas
componentes de deslocamento, na forma
n
X n
X
u= Nie ui ; v= Nie vi (9.14)
i=1 i=1

onde Nie são as funções de forma do elemento. Esta expressão pode obter-se
na forma matricial como
 e
N1 0 0 N2e 0 ... Nne 0

u=  ue = Nue (9.15)


e e e
0 N1 0 0 N2 0 ... Nn
9.8 Equações para rigidez e força 143

Derivando este campo de deslocamentos, podemos obter o vector de de-


formações, na forma
∂N1e ∂N2e ∂Nne
 
 ∂x 0 0 ... 0 
 ∂x ∂x 
 
 ∂N1e ∂N2e e 
∂Nn  e
= 0 0 0 ...  u = Bue (9.16)

 ∂y ∂y ∂y 
 
 
 ∂N1e ∂N1e ∂N2e ∂N2e ∂Nne ∂Nne 
...
∂y ∂x ∂y ∂x ∂y ∂x
onde B representa a matriz de deformações-deslocamentos, obtida apenas
por derivadas das funções de forma, com dimensão 3×2n. Esta matriz também
é útil, porque permite calcular, em cada elemento, o vector de tensões na forma
σ = C = CBue .

9.7 Energia no elemento


A energia potencial total pode agora ser decomposta em cada elemento, na
forma

Πe = U e − W e (9.17)
onde Z Z
1 1
Ue = hT σdΩ e = hT CdΩ e (9.18)
2 Ωe 2 Ωe
e
Z Z
We = huT bdΩ e + huT t̂dΓ e (9.19)
Ωe Γe

Note-se que aqui Γ t foi tomada idêntica, no elemento, a Γ e , como con-


sequência do facto das condições fronterira essenciais (em deslocamentos) se-
rem aplicadas após a assemblagem, a uma estrutura livre.

9.8 Equações para rigidez e força


Podemos agora introduzir as equações de deslocamentos, deformações e tensões
na energia potencial do elemento, obtendo-se uma forma quadrática
1 eT e e
Πe = u K u − ueT f e (9.20)
2
onde a matriz de rigidez do elemento é obtida por
144 9 Estado plano de tensão
Z
e
K = hBT CBdΩ e (9.21)
Ωe
e o vector de forças nodais por
Z Z
fe = hNT bdΩ e + hNT t̂dΓ e (9.22)
Ωe Γe

9.9 Elementos quadriláteros


Considere-se o elemento quadrilátero, conforme ilustrado na figura 9.4. O ele-
mento possui 4 nós, definidos em coordenadas locais (ξ, η) no quadrado biu-
nitário. Pretende-se relacionar estas coordenadas locais com as coordenadas
reais (x, y) através duma representação isoparamétrica
n
X n
X
x= Ni xi ; y = N i yi (9.23)
i=1 i=1

sendo Ni as funções de forma da familia de Lagrange, obtidas por

Ni (ξ, η) = l(ξ)l(η) (9.24)

onde
n
X ξ − ξj
l(ξ) = (9.25)
ξi − ξj
j=1,j6=i

Assim, pode obter-se para o elemento quadrilátero de 4 nós as funções de


forma

1
N1 (ξ, η) = l1 (ξ)l1 (η) = (1 − ξ)(1 − η) (9.26)
4
1
N2 (ξ, η) = l2 (ξ)l1 (η) = (1 + ξ)(1 − η) (9.27)
4
1
N3 (ξ, η) = l2 (ξ)l2 (η) = (1 + ξ)(1 + η) (9.28)
4
1
N4 (ξ, η) = l1 (ξ)l2 (η) = (1 − ξ)(1 + η) (9.29)
4
Note-se que estas funções de forma são obtidas por multiplicação das
funções de Lagrange de elementos de linha de 2 nós, em cada direcção (fi-
gura 9.3).
Outros elementos quadriláteros podem ser usados, por exemplo o elemento
de 9 nós de Lagrange, cujas funções de forma são obtidas por
1
N1 (ξ, η) = ξη(ξ − 1)(η − 1) (9.30)
4
9.9 Elementos quadriláteros 145
η

4
3

ξ η
=

2
1 2

ξ
x
1 2 1
Figura 9.3. Elemento de 4 nós: funções de interpolação bidimensionais obtidas por
multiplicação de funções de forma unidimensionais

4 4
3

1 3
ξ Ωe

y
(1,-1)
1 2
x
Elemento de 2
referencia (x2 , y2 )

Elemento real

Figura 9.4. Elemento de 4 nós e ordenação de nós. Elemento parente e elemento


real; transformaação de coordenadasl
146 9 Estado plano de tensão

para um nó de canto,


1
N5 (ξ, η) = η(1 − ξ 2 )(η − 1) (9.31)
2
para um nó de meio lado e

N9 (ξ, η) = (1 − ξ 2 )(1 − η 2 ) (9.32)


para o nó central.
Note-se que:

• os elementos podem ter fronteiras curvas


• os elementos podem ter qualquer número de nós entre o mı́nimo e o
máximo
• os elementos devem ter geometria o mais rectangular possı́vel (2D)
• os nós centrais nos lados devem estar o mais próximo dos pontos médios

Os deslocamentos nos elementos podem agora ser interpolados da mesma


forma que para as coordenadas, na forma
n
X n
X
u= Ni ui ; v = Ni vi (9.33)
i=1 i=1

onde u, v são os deslocamentos locais em qualquer ponto do elemento e


ui , vi ; i = 1, ..., n são os correspondentes deslocamentos nos nós.
∂ ∂
Tendo em conta a necessidade de encontrar as derivadas , , na forma
∂x ∂y
∂ ∂ ∂ξ ∂ ∂η
= + (9.34)
∂x ∂ξ ∂x ∂η ∂x
e assim, sucessivamente, usa-se a regra da cadeia para se obter
∂ ∂x ∂y ∂
    
 ∂ξ   ∂ξ ∂ξ   ∂x 
= (9.35)
    
  
 ∂   ∂x ∂y   ∂ 
∂η ∂η ∂η ∂y
ou em forma matricial
∂ ∂
=J (9.36)
∂ξ ∂x
onde J é um operador Jacobiano relacionando as derivadas das coordenadas
naturais com as derivadas das coordenadas globais. Pode também obter-se
∂ ∂
= J−1 (9.37)
∂x ∂ξ
9.9 Elementos quadriláteros 147

supondo que J−1 exista, o que será verdade se houver uma relação injectiva
entre as coordenadas locais e naturais do elemento. Em elementos muito dis-
torcidos, podem ocorrer singularidades nesta transformação do jacobiano.
Pode então calcula-se a matriz de deformação-deslocamento, através da
matriz B, com
 = Bû (9.38)
onde û representa o vector dos deslocamentos nodais. A matriz de rigidez do
elemento, correspondente aos graus de liberdade locais é obtida como
Z
K= BT CBdV (9.39)
V
Note-se que B é dependente de ξ, η, as coordenadas naturais em 2D do ele-
mento. Assim, o elemento de volume dV pode ser expresso em função de ξ, η,
como

dV = h detJdrds (9.40)
onde detJ é o determinante da matriz Jacobiana e h a espessura da placa.
O cálculo da matriz de rigidez é habitualmente feita numericamente, como
iremos ver mais adiante em pormenor. No entanto, poderá indicar-se desde já
que Z
K=h Fdξdη (9.41)
A

onde F = BT CBdetJ sendo a integração realizada em termos de coordenadas


naturais do elemento. A matriz de rigidez é então calculada como
X
K= Fi,j αi,j (9.42)
i,j,k

onde Fi,j representa a matriz F nos pontos (ξi , ηj ) e αi,j é uma dada constante
que depende dos valores de (ξi , ηj ). Os pontos de integração (ξi , ηj ) da função e
os correspondentes pesos αi,j são escolhidos para se obter a máxima qualidade
na integração, que aumenta com o número de pontos de integração.
Escrevendo agora

u(ξ, η) = Nû (9.43)


onde N é a matriz de funções de interpolação (funções de forma), obtendo-se
agora as restantes matrizes de elementos finitos:
Z
M= ρNT NdV (9.44)
V
Z
RB = NT fB dV (9.45)
V
148 9 Estado plano de tensão
Z
Rη = NT fS dS (9.46)
S
de forma semelhante à matriz de rigidez, por exemplo, recorrendo a

F = NT fB detJ (9.47)
no cálculo de RB .

9.10 Integração numérica em duas dimensões


Tal como na integração numérica a uma dimensão, o objectivo da integração
numérica a duas dimensões é a solução dos integrais da matriz de rigidez,
vector de forças nodais equivalente e matriz de massa, através da quadratura
de Gauss, embora se pudesse usar outra quadratura, como por exemplo, a de
Newton-Cotes.
O integral duma função em coordenadas naturais pode então ser substi-
tuido por dois somatórios contendo produtos dos pesos de Gauss e função nos
pontos de Gauss respectivos, através de
Z 1 Z 1 p X
X q
F (ξ, η)dξdη = wi wj F (ξi , ηj ) (9.48)
−1 −1 i=1 j=1

onde p, q são o número de pontos na direcção ξ, η, respectivamente e wi , wj os


respectivos pesos, tal como vimos anteriormente na integração unidimensional,
conforme ilustrado na figura 9.5, para várias ordens de integração.

Figura 9.5. Pontos de integração (pontos de Gauss) para elementos quadriláteros


bidimensionais

Em particular para a matriz de rigidez, podemos calcular o integral da


seguinte forma
Z Z 1Z 1
Ke = hBT CBdΩ e = hBT CBdetJdξdη (9.49)
Ωe −1 −1
9.10 Integração numérica em duas dimensões 149

9.10.1 Elementos triangulares (formados por colapso de elementos


quadriláteros

Uma das formas mais óbvias de gerar elementos triangulares é a de colapsar


elementos quadriláteros para a forma triangular, como se ilustra na figura 9.6.
Partindo das funções de forma do elemento de 4 nós,

y y

η
η
1,2
2 1

2 cm ξ ξ

3 4 x 3 4 x

2 cm
2 cm

Figura 9.6. Degeneração de elementos quadriláteros em elementos triangulares

1 1 1 1
x= (1+ξ)(1+η)x1 + (1−ξ)(1+η)x2 + (1−ξ)(1−η)x3 + (1+ξ)(1−η)x4
4 4 4 4
(9.50)

1 1
y= (1+ξ)(1+η)y1 +(1−ξ)(1+η)y2 + (1−ξ)(1−η)y3 +(1+ξ)(1−η)y4 (9.51)
4 4
e colapsando (x1 = x2 ; y1 = y2 ) obtem-se
1 1 1
x= (1 − ξ)(1 + η)x2 + (1 − ξ)(1 − η)x3 + (1 + ξ)(1 − η)x4 (9.52)
4 4 4

1 1 1
y= (1 + η)y2 + (1 − ξ)(1 − η)y3 + (1 + ξ)(1 − η)y4 (9.53)
2 4 4
Com
1
x= (1 + ξ)(1 − η), y = 1 + η (9.54)
2
∂x 1 ∂y
= (1 − η), =0 (9.55)
∂ξ 2 ∂ξ
∂x 1 ∂y
= − (1 + ξ), =1 (9.56)
∂η 2 ∂η
150 9 Estado plano de tensão

   
1−η 0 2 0
1  ; J−1 = 1 
J=  (9.57)
2 1−η
−1 − ξ 2 1+ξ 1−η
Usando o conceito de isoparametrismo, obtem-se
1 1 1
u= (1 − ξ)(1 + η)u2 + (1 − ξ)(1 − η)u3 + (1 + ξ)(1 − η)u4 (9.58)
4 4 4

1 1 1
v= (1 + η)v2 + (1 − ξ)(1 − η)v3 + (1 + ξ)(1 − η)v4 (9.59)
2 4 4

∂u 1 1
= − (1 − η)u3 + (1 − η)u4 (9.60)
∂ξ 4 4
∂v 1 1
= − (1 − η)v3 + (1 − η)v4 (9.61)
∂ξ 4 4
∂u 1 1 1
= u2 − (1 − ξ)u3 + (1 + ξ)u4 (9.62)
∂η 2 4 4
∂v 1 1 1
= v2 − (1 − ξ)v3 + (1 + ξ)v4 (9.63)
∂η 2 4 4

∂ ∂
   
 ∂x   ∂ξ 
 = J−1  (9.64)
   
 
 ∂   ∂ 
∂y ∂η
Assim,

 
u1
 v1 
∂u
   
  1 1
  u2 
 ∂x  2 0 0 0 − 4 (1 − η) 0 4 (1 − η) 0  
1  v2 
=  u3  (9.65)
       
 ∂u  1 − η 1 + ξ 1 − η

1 1 1
2 0 − 4 (1 − ξ) 0 4 (1 + ξ) 0  v 
 
3
∂y 
 u4 
v4
ou
9.10 Integração numérica em duas dimensões 151
 
u1
 v1 
∂u
   
 1 1
  u2 
 ∂x  0 0 −2 0 2 0  
 v2 
= (9.66)
     

 ∂u  1 1
 u3 
2 0 −2 0 0 0  v 
 
3
∂y 
 u4 
v4
Da mesma forma se obtem
 
u1
 v1 
∂v
   
 1 1
  u2 
 ∂x  0 0 0 −2 0 2  
 v2 
= (9.67)
     

 ∂v  1 1
 u3 
0 2 0 −2 0 0  

 v3 

∂y  u4 
v4
obtendo-se assim 
u1
  v1 
0 0 − 12 0 12 0 


  u2 
 

 1 1
  v2 
 0 2 0 − 2 0 0   u3 
= (9.68)
 
  
1 1 1 1
 v3 
2 0 − 2 − 2 0 2
 
 u4 
v4
O vector de deformação é então constante, para quaisquer valores de u2 , v2 , ..., v4
e independente de ξ e η (elemento triangular de deformação constante). Note-
se que em, η = ±1, a matriz J é singular. Assim, devem calcular-se as tensões
(aliás constantes no elemento) no centro do elemento (ξ = η = 0).

9.10.2 Elementos triangulares baseados em coordenadas de área

Para além do método do colapso, podemos construir elementos triangulares


através de coordenadas de área. Para o triângulo da figura 9.7, a posição dum
ponto P, do interior do elemento, com coordenadas x e y é definida pelas
coordenadas de área
A1 A2 A3
L1 = ; L2 = ; L3 = (9.69)
A A A
De (9.69) encontra-se L1 +L2 +L3 = 1. As coordenadas cartesianas são obtidas
por
152 9 Estado plano de tensão
3 (x3 , y3 )

Area A2 Area
A1 η
P
2 (x2 , y2 )
y
(0, 1) 3 (η = 1)
Area A3
1
(x1 , y1 )

x 1 2 (ξ = 1) ξ
(0, 0) (1, 0)

Coordenadas cartesianas Coordenadas isoparametricas

Figura 9.7. Descrição dum elemento triangular com 3 nós

x = L1 x1 + L2 x2 + L3 x3 ; y = L1 y1 + L2 y2 + L3 y3 (9.70)
Podemos então escrever o sistema
    
1 1 1 1 L1
 x  =  x1 x2 x3   L2  (9.71)
y y1 y2 y3 L3
que produz
1
Li = (ai + bi x + ci y), i = 1, 2, 3 (9.72)
2A
onde

2A = x1 y2 + x2 y3 + x3 y1 − y1 x2 − y2 x3 − y3 x1 (9.73)
e
a1 = x2 y3 − y2 x3 ; a2 = x3 y1 − y3 x1 ; a3 = x1 y2 − y1 x2 (9.74)

b1 = y 2 − y 3 ; b2 = y 3 − y 1 ; b3 = y 1 − y 2 (9.75)

c1 = x3 − x2 ; c2 = x1 − x3 ; c3 = x2 − x1 (9.76)
Temos então a seguinte interpolação
3
X 3
X
u= Ni ui ; v = Ni vi (9.77)
i=1 i=1
3
X 3
X
x= Ni xi ; y = N i yi (9.78)
i=1 i=1

onde Ni = Li , i = 1, 2, 3. Em vez de se usarem funções de forma em termos de


x e y, podem usar-se as funções de forma em termos de coordenadas naturais
9.11 Problema: placa em tracção 153

N1 = 1 − ξ − η; N2 = ξ; N3 = η (9.79)
A integração em ξ varia entre 0 e 1, enquanto que a integração em η varia
entre 0 e 1 − ξ.

9.11 Problema: placa em tracção


Considera-se um problema duma viga fina (em estado plano de tensão), sujeita
a carga distribuida uniforme nos seus extremos. Na figura 9.8 apresenta-se a
ilustração do problema, enquanto que na figura 9.9 se ilustram as condições
fronteira. Na figura 9.10 apresenta-se a malha de elementos finitos. Na figura
9.11 e na figura 9.12 apresentam-se, respectivamente, a deformada e as tensões
em xx. Como são uniformes, não se vê o valor da tensão na barra de cores.

P P

Figura 9.8. Tracção de placa: geometria e cargas

O código (vigaTraccaoLivroQ4.m) é a seguir apresentado:


1 clear all; colordef white;
2
3 % materiais
4 E0 = 10e7; nu0 = 0.30;
5
6 % tipo de elemento : quadrilatero de 4 nos
7 elemType = ’Q4’;
8
9 % carga distribuida na ponta livre
10 P = 1e6;
11 Lx=5;
12 Ly=1;
13 numx=20;
14 numy=10;
15
16 % matriz C
154 9 Estado plano de tensão
y

u=0

v=0
Figura 9.9. Tracção de placa: condições fronteira

Figura 9.10. Tracção de placa: malha de elementos finitos

17 C=E0/(1-nu0^2)*[1 nu0 0;nu0 1 0;0 0 (1-nu0)/2];


18
19 % malha
20 [node, element] = MalhaRectangular(Lx,Ly,numx,numy);
21 xx=node(:,1);
22 yy=node(:,2);
23 plot_mesh(node,element,elemType,’k-’);
24
25 % bordo direito para aplicar carga distribuida
26 bordoDireito=find(node(:,1)==Lx);
27 ss=size(bordoDireito,1);
28 for i=1:ss-1
29 bordo(i,1)=bordoDireito(i);
30 bordo(i,2)=bordoDireito(i+1);
31 end
32 edgeElemType=’L2’;
33
34 % nos na fronteira de deslocamentos (essenciais)
35 fixedNodeX=find(node(:,1)==0); % fixos na direcao x
9.11 Problema: placa em tracção 155
!7
x 10
1.6
DEFORMada na direcao X

1.4
6

1.2
4

2 1

0 0.8

!2 0.6

!4
0.4

!6
0.2

0 2 4 6 8 10 12 14 16 18
0

Figura 9.11. Tracção de placa: deformada

1
tensao (na deformada), componente XX

6
1

4
1

2 1

0 1

!2 1

1
!4

1
!6

1
0 2 4 6 8 10 12 14 16 18

Figura 9.12. Tracção de placa: tensões


156 9 Estado plano de tensão

36 fixedNodeY=find(node(:,2)==0); % fixos na direcao y (-c)


37 %
38 numnode=size(node,1); % # de nos
39 numelem=size(element,1); % # de elementos
40 %
41 U=zeros(2*numnode,1); % vector deslocamentos nodais
42 f=zeros(2*numnode,1); % vector de carga externa
43 K=sparse(2*numnode,2*numnode); % matriz de rigidez
44 %
45 xs=1:numnode;
46 ys=(numnode+1):2*numnode;
47
48 % forcas externas : traccoes no bordo direito
49 W=zeros(2); Q=zeros(2);
50 Q(1) = 0.577350269189626;
51 Q(2) =-0.577350269189626;
52 W(1) = 1.; W(2) = 1.;
53
54 % bordo direito
55 for e=1:size(bordo,1)
56 indice=bordo(e,:) ; % para impor cargas em X
57 indiceY=indice+numnode; % para impor cargas em Y
58 for q=1:size(W,1)
59 pt=Q(q,:); wt=W(q);
60 pt=pt(1);
61 N=([1-pt,1+pt]/2)’;
62 dNdxi=[-1;1]/2;
63 J0=dNdxi’*node(indice,:);
64 detJ0=norm(J0);
65 f(indice)=f(indice)+N*P*detJ0*wt; % carga equiv. nos nos
66 end
67 end
68
69 % rigidez no elemento Q4
70 % quadratura de 2 pontos
71 Q=[ -0.577350269189626 -0.577350269189626;
72 0.577350269189626 -0.577350269189626;
73 0.577350269189626 0.577350269189626;
74 -0.577350269189626 0.577350269189626];
75 W=[ 1;1;1;1];
76
77 for e=1:numelem
78 indice=element(e,:);
79 indiceB=[ indice indice+numnode ];
80 nn=length(indice);
81 for q=1:size(W,1)
82 pt=Q(q,:);
83 wt=W(q);
84 xi=pt(1);
9.11 Problema: placa em tracção 157

85 eta=pt(2);
86 % N e derivadas
87 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
88 (1+xi)*(1+eta);(1-xi)*(1+eta)];
89 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
90 1+eta, 1+xi;-(1+eta), 1-xi];
91
92 J0=node(indice,:)’*dNdxi;
93 invJ0=inv(J0);
94 dNdx=dNdxi*invJ0;
95 % matriz B
96 B=zeros(3,2*nn);
97 B(1,1:nn) = dNdx(:,1)’;
98 B(2,nn+1:2*nn) = dNdx(:,2)’;
99 B(3,1:nn) = dNdx(:,2)’;
100 B(3,nn+1:2*nn) = dNdx(:,1)’;
101
102 % matriz K no ponto de quadratura
103 K(indiceB,indiceB)=K(indiceB,indiceB)+B’*C*B*W(q)*det(J0);
104 end
105 end
106
107 % condicoes fronteira
108 dofs=[fixedNodeX;fixedNodeY+numnode];
109 % solucao
110 activeDof=setdiff([1:2*numnode]’,[dofs]);
111 U=K([activeDof],[activeDof])\f([activeDof]);
112 U1=zeros(2*numnode,1);
113 U1(activeDof)=U;
114 U=U1;
115
116 % desenho de malha e deformadas
117 dispNorm=max(node(:,1))/max(sqrt(U(xs).^2+U(ys).^2));
118 scaleFact=0.2*dispNorm;
119 fn=1;
120
121 % deformada
122 figure(fn)
123 clf
124 plot_field(node+scaleFact*[U(xs) U(ys)],element,elemType,U(xs));
125 hold on
126 plot_mesh(node+scaleFact*[U(xs) U(ys)],element,elemType,’blue.-’);
127 plot_mesh(node,element,elemType,’k--’);
128 colorbar
129 fn=fn+1;
130 title(’DEFORMada na direcao X’)
131
132 % tensoes no elemnto Q4
133 stress=zeros(numelem,size(element,2),3);
158 9 Estado plano de tensão

134 stressPoints=[-1 -1;1 -1;1 1;-1 1];


135
136 for e=1:numelem
137 indice=element(e,:);
138 indiceB=[indice indice+numnode];
139 nn=length(indice);
140
141 for q=1:nn
142 pt=stressPoints(q,:); % pontos de tensao
143 xi=pt(1);
144 eta=pt(2);
145 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
146 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
147 (1+xi)*(1+eta);(1-xi)*(1+eta)];
148 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
149 1+eta, 1+xi;-(1+eta), 1-xi];
150 J0=node(indice,:)’*dNdxi; % MATRIZ JACOBIANA
151 invJ0=inv(J0);
152 dNdx=dNdxi*invJ0;
153
154 % matriz B
155 B=zeros(3,2*nn);
156 B(1,1:nn) = dNdx(:,1)’;
157 B(2,nn+1:2*nn) = dNdx(:,2)’;
158 B(3,1:nn) = dNdx(:,2)’;
159 B(3,nn+1:2*nn) = dNdx(:,1)’;
160
161 % deformacao do elemento no ponto de tensao
162 strain=B*U(indiceB);
163 stress(e,q,:)=C*strain;
164 end
165 end
166
167 stressComp=1;
168 figure(fn)
169 clf
170 plot_field(node+scaleFact*[U(xs) U(ys)],...
171 element,elemType,stress(:,:,stressComp));
172 hold on
173 plot_mesh(node+scaleFact*[U(xs) U(ys)],element,elemType,’k.-’);
174 colordef white
175 plot_mesh(node,element,elemType,’k--’);
176 colorbar
177 fn=fn+1;
178 title(’tensao (na deformada), componente XX’)
10
Placas de Kirchhoff

10.1 Introdução
Neste capı́tulo apresenta-se a formulação de elementos finitos para a análise
de placas finas, seguindo as suposições de Kirchhoff. A teoria de Kirchhoff
estabelece que as normais, rectas, ao plano médio indeformado, permanecem
normais ao plano médio deformado.
Com base nesta suposição, desprezam-se os efeitos de corte transverso e
torna-se possı́vel formular um conjunto de elementos finitos que satisfazem
estas condições de Kirchhoff.

10.2 Teoria de placas de Kirchhoff


Com base na placa da figura 10.1, onde se considera que a espessura da placa
é muito inferior às outras dimensões e se considera que as cargas são aplicadas
normais ao plano médio da placa, estabelecem-se as seguintes hipóteses:

• nos pontos do plano médio u = v = 0


• todos os pontos da normal ao plano médio possuem o mesmo deslocamento
transversal
• a tensão σx é desprezável
• as rectas normais ao plano médio indeformado permanecem rectas e nor-
mais ao plano médio após deformação

10.2.1 Campo de deslocamentos, deformações e tensões

Com base nas suposições de Kirchhoff, define-se a rotação da normal ao plano


médio como primeira derivada da flecha, ou seja,
160 10 Placas de Kirchhoff

∂w
u = −z (10.1)
∂x
∂w
v = −z (10.2)
∂y
w = w0 (10.3)

y, v

z, w

θx

θy

x, u

Figura 10.1. Graus de liberdade e orientações das rotações

Com base neste campo de deslocamentos, onde o vector de deslocamentos


para cada nó do elemento é
∂w ∂w
uT = [w, , ] (10.4)
∂x ∂y
podem definir-se as deformações não nulas

∂2w
x = −z (10.5)
∂x2
∂2w
y = −z 2 (10.6)
∂y
∂2w
γxy = −2z (10.7)
∂x∂y
O vector de tensões associado é então definido por
 

 σx 
 1ν 0 

E ν 1 0  x 
σy =   (10.8)
 1 − ν2 1−ν  y 

τxy 00 γxy

2
10.3 Elementos finitos 161

10.2.2 Principio dos trabalhos virtuais

Podemos escrever o principio dos trabalhos virtuais na forma


Z Z X
δT σdV = δwqdA + δwi Fi (10.9)
V A i

onde q representa a caraga distribuida por unidade de área e Fi um con-


junto de forças pontuais.
Operando sobre os integrais e substituindo as deformções e tensões, obte-
mos a forma da energia de deformação
Z  2
∂2w ∂2w

∂ w
δU = − 2
Mx + My + 2 Mxy dA (10.10)
A ∂x ∂y 2 ∂x∂y
onde Mi representam os momentos flectores, obtidos por integração das
tensões através da espessura da placa, ou seja
Z h/2
Mi = σi zdz, i = x, y, xy (10.11)
−h/2

Note-se que devido às segundas derivadas presentes no integral, necessitamos


de considerar elementos finitos de continuidade C 1 , ou seja, continuidade da
função e suas primeiras derivadas.

10.3 Elementos finitos


Considera-se, em geral que os elementos finitos possuem, em cada nó, os se-
∂w
  ∂w 
guintes graus de liberdade wi , ∂x i , ∂y . Para o efeito necessitaamos dum
i
polinómio de grau 3× número de nós, na forma

w = α1 + α2 x + α3 y + α4 x2 + α5 xy + ... (10.12)
Impondo as condições
   
∂w ∂w
wi = (w)i ; θxi = ; θyi = (10.13)
∂x i ∂y i

obtemos o polinómio de interesse. No entanto, nem sempre é fácil saber


quais os termos do polinómio a reter.

10.3.1 Elemento rectangular não conforme MCZ

O elemento rectangular de 4 nós de Melosh [110] e Zienkiewicz e Cheung [111]


não contém os termos todos do polinómio, por isso se designa não conforme.
Antes usa a seguinte aproximação
162 10 Placas de Kirchhoff

w = α1 +α2 x+α3 y+α4 x2 +α5 xy+α6 y 2 +α7 x3 +α8 x2 y+α9 xy 2 +α10 y 3 +α11 x3 y+α12 xy 3
(10.14)
Conseguem-se calcular as variáveis nodais e garantir a continuidade em cada
lado do elemento. As constantes αi calculam-se usando as condições 10.13,
obtendo-se

ae = Aα (10.15)
onde
         
∂w ∂w ∂w ∂w
aeT = w1 ... w4 (10.16)
∂x 1 ∂y 1 ∂x 4 ∂y 4

x21 y12 x31 x21 y1 + x1 y12 y13


 
1 x1 y1 x1 y1
0 1
 0 2x1 y1 0 3x21 2x1 y1 + y12 0  
0 0
 1 0 x1 2y1 0 x21 + 2x1 y1 3y12 

 1 x2
 y2 x22 x2 y2 y22 x32 x22 y2 + x2 y22 y23 

0 1
A= 0 2x2 y2 0 3x22 2x2 y2 + y22 0   (10.17)
0 0
 1 0 x2 2y2 0 x22 + 2x2 y2 3y22 

 1 x3
 y3 x23 x3 y3 y32 x33 x23 y3 + x2 y32 y33 

0 1 0 2x3 y3 0 3x23 2x3 y3 + y32 0 
0 0 1 0 x3 2y3 0 x23 + 2x3 y3 3y32
Podemos então calcular
α = A−1 ae (10.18)
e estabelecer

w = PT α = PT A−1 ae = Nae (10.19)


T −1
onde N = P A representa a matriz de funções de forma e

PT = [1, x, y, x2 , xy, y 2 , x3 , x2 y, xy 2 , y 3 , x3 y, xy 3 ] (10.20)

Podemos encontrar uma forma explicita da matriz de rigidez e do vector


de forças nodais equivalentes, o que é apresentado no código mcz.m ,
function [ke, re] = mcz(coord, h, e, nu, q)
% coord = coordenadas dos nós do elemento
% h = espessura
% e = modulo de elasticidade, nu = coeficiente de Poisson
% q = carga distribuida.
% ke = rigidez do elemento, re = vector de carga equivalente.
a=(coord(2,1) - coord(1,1))/2;
b=(coord(4,2) - coord(1,2))/2;
10.3 Elementos finitos 163

r = a/b;
d = e*h^3/(12*(1 - nu^2));
re = a*b*q/3*[3; b; -a; 3; b; a; 3; -b; a; 3; -b; -a];
ke = d/(30*a*b)*[30*r^2 - 6*nu + 21 + 30/r^2,...
30*b* r^2 + 3*b + 12*b*nu, -12*nu*r*b - 3*r*b - (30*b)/r,...
15*r^2 + 6*nu - 21 - 30/r^2, 15*b*r^2 - 3*b - 12*b*nu,...
3*nu*r*b - 3*r*b - (30*b)/r, -15*r^2 - 6*nu + 21 - 15/r^2,...
15*b*r^2 - 3*b + 3*b*nu,...
-3*nu*r*b + 3*r*b - (15*b)/r,...
-30*r^2 + 6*nu - 21 + 15/r^2,...
30*b*r^2 + 3*b - 3*b*nu, 12*nu*r*b + 3*r*b - (15*b)/r;
30*b*r^2 + 3*b + 12*b*nu,...
40*r^2*b^2 - 8*nu*b^2 + 8*b^2,...
-30*b^2*nu*r, 15*b*r^2 - 3*b - 12*b*nu,...
20*r^2*b^2 + 8*nu*b^2 - 8*b^2, 0,...
-15*b*r^2 + 3*b - 3*b*nu, 10*r^2*b^2 - 2*nu*b^2 + 2*b^2, 0,...
-30*b*r^2 - 3*b + 3*b*nu, 20*r^2*b^2 + 2*nu*b^2 - 2*b^2, 0;
-12*nu*r*b - 3*r*b - (30*b)/r,-30*b^2*nu*r,...
-8*nu*r^2*b^2 + 8*r^2*b^2 + 40*b^2,...
-3*nu*r*b + 3*r*b + (30*b)/r,0,...
2*nu*r^2*b^2 - 2*r^2*b^2 + 20*b^2,...
3*nu*r*b - 3*r*b + (15*b)/r, 0,...
-2*nu*r^2*b^2 + 2*r^2*b^2 + 10*b^2,...
12*nu*r*b + 3*r*b - (15*b)/r, 0,...
8*nu*r^2*b^2 - 8*r^2*b^2 + 20*b^2;
15*r^2 + 6*nu - 21 - 30/r^2,...
15*b*r^2 - 3*b - 12*b*nu, -3*nu*r*b + 3*r*b + (30*b)/r,...
30*r^2 - 6*nu + 21 + 30/r^2, 30*b*r^2 + 3*b + 12*b*nu,...
12*nu*r*b + 3*r*b + (30*b)/r, -30*r^2 + 6*nu - 21 + 15/r^2,...
30*b*r^2 + 3*b - 3*b*nu, -12*nu*r*b - 3*r*b + (15*b)/r,...
-15*r^2 - 6*nu + 21 - 15/r^2, 15*b*r^2 - 3*b + 3*b*nu,...
3*nu*r*b - 3*r*b + (15*b)/r;
15*b*r^2 - 3*b - 12*b*nu, 20*r^2*b^2 + 8*nu*b^2 - 8*b^2, 0,...
30*b*r^2 + 3*b + 12*b*nu, 40*r^2*b^2 - 8*nu*b^2 + 8*b^2,...
30*b^2*nu*r, -30*b*r^2 - 3*b + 3*b*nu,...
20*r^2*b^2 + 2*nu*b^2 - 2*b^2, 0, -15*b*r^2 + 3*b - 3*b*nu,...
10*r^2*b^2 - 2*nu*b^2 + 2*b^2, 0;
3*nu*r*b - 3*r*b - (30*b)/r, 0,...
2*nu*r^2*b^2 - 2*r^2*b^2 + 20*b^2, 12*nu*r*b + 3*r*b + (30*b)/r,...
30*b^2*nu*r, -8*nu*r^2*b^2 + 8*r^2*b^2 + 40*b^2,...
-12*nu*r*b - 3*r*b + (15*b)/r, 0, ...
8*nu*r^2*b^2 - 8*r^2*b^2 + 20*b^2,...
-3*nu*r*b + 3*r*b - (15*b)/r, 0, -2*nu*r^2*b^2 + 2*r^2*b^2 + 10*b^2;
-15*r^2 - 6*nu + 21 - 15/r^2, -15*b*r^2 + 3*b - 3*b*nu,...
3*nu*r*b - 3*r*b + (15*b)/r, -30*r^2 + 6*nu - 21 + 15/r^2,...
164 10 Placas de Kirchhoff

-30*b*r^2 - 3*b + 3*b*nu, -12*nu*r*b - 3*r*b + (15*b)/r,...


30*r^2 - 6*nu + 21 + 30/r^2, -30*b*r^2 - 3*b - 12*b*nu,...
12*nu*r*b + 3*r*b + (30*b)/r, 15*r^2 + 6*nu - 21 - 30/r^2,...
-15*b*r^2 + 3*b + 12*b*nu, -3*nu*r*b + 3*r*b + (30*b)/r;
15*b*r^2 - 3*b + 3*b*nu, 10*r^2*b^2 - 2*nu*b^2 + 2*b^2, 0,...
30*b*r^2 + 3*b - 3*b*nu, 20*r^2*b^2 + 2*nu*b^2 - 2*b^2, 0,...
-30*b*r^2 - 3*b - 12*b*nu, 40*r^2*b^2 - 8*nu*b^2 + 8*b^2,...
-30*b^2*nu*r, -15*b*r^2 + 3*b + 12*b*nu, ...
20*r^2*b^2 + 8*nu*b^2 - 8*b^2, 0;
-3*nu*r*b + 3*r*b - (15*b)/r, 0,...
-2*nu*r^2*b^2 + 2*r^2*b^2 + 10*b^2, -12*nu*r*b - 3*r*b + (15*b)/r,...
0, 8*nu*r^2*b^2 - 8*r^2*b^2 + 20*b^2, 12*nu*r*b + 3*r*b + (30*b)/r,...
-30*b^2*nu*r, -8*nu*r^2*b^2 + 8*r^2*b^2 + 40*b^2,...
3*nu*r*b - 3*r*b - (30*b)/r, 0, 2*nu*r^2*b^2 - 2*r^2*b^2 + 20*b^2;
-30*r^2 + 6*nu - 21 + 15/r^2, -30*b*r^2 - 3*b + 3*b*nu,...
12*nu*r*b + 3*r*b - (15*b)/r, -15*r^2 - 6*nu + 21 - 15/r^2,...
-15*b*r^2 + 3*b - 3*b*nu, -3*nu*r*b + 3*r*b - (15*b)/r,...
15*r^2 + 6*nu - 21 - 30/r^2, -15*b*r^2 + 3*b + 12*b*nu,...
3*nu*r*b - 3*r*b - (30*b)/r, 30*r^2 - 6*nu + 21 + 30/r^2,...
-30*b*r^2 - 3*b - 12*b*nu, -12*nu*r*b - 3*r*b - (30*b)/r;
30*b*r^2 + 3*b - 3*b*nu, 20*r^2*b^2 + 2*nu*b^2 - 2*b^2, 0,...
15*b*r^2 - 3*b + 3*b*nu, 10*r^2*b^2 - 2*nu*b^2 + 2*b^2,0,...
-15*b*r^2 + 3*b + 12*b*nu, 20*r^2*b^2 + 8*nu*b^2 - 8*b^2, 0,...
-30*b*r^2 - 3*b - 12*b*nu, 40*r^2*b^2 - 8*nu*b^2 + 8*b^2,...
30*b^2*nu*r;
12*nu*r*b + 3*r*b - (15*b)/r, 0,...
8*nu*r^2*b^2 - 8*r^2*b^2 + 20*b^2, ...
3*nu*r*b - 3*r*b + (15*b)/r, 0,...
-2*nu*r^2*b^2 + 2*r^2*b^2 + 10*b^2, -3*nu*r*b + 3*r*b + (30*b)/r,...
0, 2*nu*r^2*b^2 - 2*r^2*b^2 + 20*b^2,...
-12*nu*r*b - 3*r*b - (30*b)/r, 30*b^2*nu*r,...
-8*nu*r^2*b^2 + 8*r^2*b^2 + 40*b^2];

Para verificar a qualidade deste elemento na análise de placas, considere-


se uma placa quadrada, simplesmente apoiada ou encastrada em todos os
bordos, sujeita a uma força distribuida P , com lado a, módulo de elasticidade
E e coeficiente de Poisson ν. Considere-se a flecha normalizadas
D
w̄ = w (10.21)
P l4
sendo D a rigidez á flexão, obtida por

Eh3
D= (10.22)
12(1 − ν 2 )
sendo h a espessura da placa.
10.3 Elementos finitos 165

O código que a seguir se apresenta ( mczExemplo.m ) pode considerar


apoios simples ou encastramentos.

clear all
colordef white
tic
% propriedades material
E0 = 10920; % módulo Young
nu0 = 0.30; % coef. Poisson
% geometria
L = 1; % lado
thickness=0.001;
I=thickness^3/12;
P=-1;
% malha
numy = 30; % # elementos em xx
numx = 30; % # elementos em xx
%malha
[node, element] = MalhaRectangular(L, L, numx, numy);
%
xx=node(:,1); yy=node(:,2);
numnode=size(node,1); % numero nos
numelem=size(element,1); % numero elementos
% matriz elasticidade (duas partes)
disp([num2str(toc),’ dados ’])
U=zeros(3*numnode,1); % vector de deslocamentos nodais
f=zeros(3*numnode,1); % vector de carga externa
K=sparse(3*numnode,3*numnode); % matriz de rigidez

for e=1:numelem
indice=element(e,:);
indiceB=[ indice(1)*3-2 indice(1)*3-1 indice(1)*3 ...
indice(2)*3-2 indice(2)*3-1 indice(2)*3 ...
indice(3)*3-2 indice(3)*3-1 indice(3)*3 ...
indice(4)*3-2 indice(4)*3-1 indice(4)*3];

[ke, fe] = mcz(node(indice,:), thickness, E0, nu0, P);

K(indiceB,indiceB)=K(indiceB,indiceB)+ke;
f(indiceB)=f(indiceB)+fe;
%
end

%noCentral=find(node(:,1)==L/2 & node(:,2)==L/2);


%f(noCentral*3-2)=-1.0;
166 10 Placas de Kirchhoff

% BC

fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
|xx==max(node(:,1))|yy==min(node(:,2)));

%next two lines: simply supported case


% Nota: neste elemento, troca-se o theta_x por theta_y

fixedNodeTY =find(yy==max(node(:,2))|yy==min(node(:,2)));
fixedNodeTX =find(xx==max(node(:,1))| xx==min(node(:,1)));

%next two lines: clamped case


%fixedNodeTX =fixedNodeW;
%fixedNodeTY =fixedNodeTX;

dofs=[fixedNodeW*3-2;fixedNodeTX*3-1;fixedNodeTY*3];
activeDof=setdiff([1:3*numnode]’,[dofs]);

U=K(activeDof,activeDof)\f(activeDof);
U1=zeros(3*numnode,1);
U1(activeDof)=U;

figure
plot3(xx,yy,U1(1:3:3*numnode),’.’)
format long
D1=E0*thickness^3/12/(1-nu0^2);
min(U1(1:3:3*numnode))*D1/L^4

Para a placa referida, obtém-se os seguintes resultados normalizados para a


flecha máxima (nó central), conforme ilustrado na tabela 10.1.

Malha SSSS CCCC


2×2 0.005063 0.001479
6×6 0.004181 0.001332
10 × 10 0.004105 0.001290
20 × 20 0.004073 0.001271
30 × 30 0.004067 0.001268
Solução exacta 0.004060 0.001260
Tabela 10.1. Flecha normalizada para placa quadrada, sujeita a carga uniforme.
Simplesmente apoiada (SSSS) e encastrada (CCCC)
10.3 Elementos finitos 167

10.3.2 Elemento rectangular conforme BFS

O elemento rectangular de 4 nós de Bogner, Fox e Schmidt [112] considera a


∂2w
introdução da segunda derivada ∂x∂y , usando uma aproximação polinomial
de 16 termos. Note-se que o vector de graus de liberdade por nó é agora de
quatro

∂2w
        
  2  
∂w ∂w ∂w∂w ∂ w
aeT = w1 ... w4
∂x 1 ∂y1 ∂x∂y
1 4 ∂x∂y 4 ∂x∂y 4
(10.23)
O código bfs.m apresenta o cálculo da matriz de rigidez e do vector de
forças nodais equivalentes para este elemento.
function [ke, re] = bfs(coord, h, e, nu, q)
% coord = coordenadas dos nós do elemento
% h = espessura
% e = modulo de elasticidade, nu = coeficiente de Poisson
% q = carga distribuida.
% ke = rigidez do elemento, re = vector de carga equivalente.
a=(coord(2,1) - coord(1,1))/2;
b=(coord(4,2) - coord(1,2))/2;
r = a/b;
d = e*h^3/(12*(1 - nu^2));
re = a*b*q/9*[9, 3*b, 3*a, a*b, 9, 3*b, -3*a, -(a*b), 9, -3*b, -3*a,...
a*b, 9, -3*b, 3*a, -(a*b)]’;
ke = d*[(39*a)/(35*b^3)+18/(25*a*b)+(39*b)/(35*a^3),...
3/(25*a)+(39*a)/(35*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(11*a^2)/(35*b^3)+3/(25*b)+(39*b)/(35*a^2)+(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+nu/5,...
(27*a)/(70*b^3)-18/(25*a*b)-(39*b)/(35*a^3),...
-3/(25*a)+(27*a)/(70*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(-13*a^2)/(70*b^3)+3/(25*b)+(39*b)/(35*a^2),...
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10,...
(-27*a)/(70*b^3)+18/(25*a*b)-(27*b)/(70*a^3),...
-3/(25*a)+(27*a)/(70*b^2)+(13*b^2)/(70*a^3),...
(13*a^2)/(70*b^3)-3/(25*b)+(27*b)/(70*a^2),...
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
(-39*a)/(35*b^3)-18/(25*a*b)+(27*b)/(70*a^3),...
3/(25*a)+(39*a)/(35*b^2)-(13*b^2)/(70*a^3),...
(-11*a^2)/(35*b^3)-3/(25*b)+(27*b)/(70*a^2)-(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10;
3/(25*a)+(39*a)/(35*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(52*a)/(35*b)+(8*b)/(25*a)+(4*b^3)/(35*a^3),...
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+(6*nu)/5,...
(44*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2)+(4*b*nu)/15,...
168 10 Placas de Kirchhoff

-3/(25*a)+(27*a)/(70*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(18*a)/(35*b)-(8*b)/(25*a)-(4*b^3)/(35*a^3),...
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10,...
(-26*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2),...
3/(25*a)-(27*a)/(70*b^2)-(13*b^2)/(70*a^3),...
(9*a)/(35*b)+(2*b)/(25*a)+(3*b^3)/(35*a^3),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2),...
(-13*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2),...
-3/(25*a)-(39*a)/(35*b^2)+(13*b^2)/(70*a^3),...
(26*a)/(35*b)-(2*b)/(25*a)-(3*b^3)/(35*a^3),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(22*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2)-(b*nu)/15;
(11*a^2)/(35*b^3)+3/(25*b)+(39*b)/(35*a^2)+(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+(6*nu)/5,...
(4*a^3)/(35*b^3)+(8*a)/(25*b)+(52*b)/(35*a),...
(4*a)/75+(4*a^3)/(35*b^2)+(44*b^2)/(105*a)+(4*a*nu)/15,...
(13*a^2)/(70*b^3)-3/(25*b)-(39*b)/(35*a^2),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(-3*a^3)/(35*b^3)-(2*a)/(25*b)+(26*b)/(35*a),...
-a/75-(3*a^3)/(35*b^2)+(22*b^2)/(105*a)-(a*nu)/15,...
(-13*a^2)/(70*b^3)+3/(25*b)-(27*b)/(70*a^2),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2),...
(3*a^3)/(35*b^3)+(2*a)/(25*b)+(9*b)/(35*a),...
-a/75-(3*a^3)/(35*b^2)-(13*b^2)/(105*a),...
(-11*a^2)/(35*b^3)-3/(25*b)+(27*b)/(70*a^2)-(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10,...
(-4*a^3)/(35*b^3)-(8*a)/(25*b)+(18*b)/(35*a),...
(4*a)/75+(4*a^3)/(35*b^2)-(26*b^2)/(105*a);
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+nu/5,...
(44*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2)+(4*b*nu)/15,...
(4*a)/75+(4*a^3)/(35*b^2)+(44*b^2)/(105*a)+(4*a*nu)/15,...
(16*a^3)/(105*b)+(32*a*b)/225+(16*b^3)/(105*a),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(26*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2),...
-a/75-(3*a^3)/(35*b^2)+(22*b^2)/(105*a)-(a*nu)/15,...
(-4*a^3)/(35*b)-(8*a*b)/225+(8*b^3)/(105*a),...
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
(13*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2),...
a/75+(3*a^3)/(35*b^2)+(13*b^2)/(105*a),...
(-2*a^3)/(35*b)+(2*a*b)/225-(2*b^3)/(35*a),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(22*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2)-(b*nu)/15,...
(-4*a)/75-(4*a^3)/(35*b^2)+(26*b^2)/(105*a),...
(8*a^3)/(105*b)-(8*a*b)/225-(4*b^3)/(35*a);
(27*a)/(70*b^3)-18/(25*a*b)-(39*b)/(35*a^3),...
10.3 Elementos finitos 169

-3/(25*a)+(27*a)/(70*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(13*a^2)/(70*b^3)-3/(25*b)-(39*b)/(35*a^2),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(39*a)/(35*b^3)+18/(25*a*b)+(39*b)/(35*a^3),...
3/(25*a)+(39*a)/(35*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(-11*a^2)/(35*b^3)-3/(25*b)-(39*b)/(35*a^2)-(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-nu/5,...
(-39*a)/(35*b^3)-18/(25*a*b)+(27*b)/(70*a^3),...
3/(25*a)+(39*a)/(35*b^2)-(13*b^2)/(70*a^3),...
(11*a^2)/(35*b^3)+3/(25*b)-(27*b)/(70*a^2)+(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(-27*a)/(70*b^3)+18/(25*a*b)-(27*b)/(70*a^3),...
-3/(25*a)+(27*a)/(70*b^2)+(13*b^2)/(70*a^3),...
(-13*a^2)/(70*b^3)+3/(25*b)-(27*b)/(70*a^2),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2);
-3/(25*a)+(27*a)/(70*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(18*a)/(35*b)-(8*b)/(25*a)-(4*b^3)/(35*a^3),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(26*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2),...
3/(25*a)+(39*a)/(35*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(52*a)/(35*b)+(8*b)/(25*a)+(4*b^3)/(35*a^3),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-(6*nu)/5,...
(-44*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2)-(4*b*nu)/15,...
-3/(25*a)-(39*a)/(35*b^2)+(13*b^2)/(70*a^3),...
(26*a)/(35*b)-(2*b)/(25*a)-(3*b^3)/(35*a^3),...
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10,...
(-22*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2)+(b*nu)/15,...
3/(25*a)-(27*a)/(70*b^2)-(13*b^2)/(70*a^3),...
(9*a)/(35*b)+(2*b)/(25*a)+(3*b^3)/(35*a^3),...
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
(13*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2);
(-13*a^2)/(70*b^3)+3/(25*b)+(39*b)/(35*a^2),...
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10,...
(-3*a^3)/(35*b^3)-(2*a)/(25*b)+(26*b)/(35*a),...
-a/75-(3*a^3)/(35*b^2)+(22*b^2)/(105*a)-(a*nu)/15,...
(-11*a^2)/(35*b^3)-3/(25*b)-(39*b)/(35*a^2)-(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-(6*nu)/5,...
(4*a^3)/(35*b^3)+(8*a)/(25*b)+(52*b)/(35*a),...
(4*a)/75+(4*a^3)/(35*b^2)+(44*b^2)/(105*a)+(4*a*nu)/15,...
(11*a^2)/(35*b^3)+3/(25*b)-(27*b)/(70*a^2)+(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(-4*a^3)/(35*b^3)-(8*a)/(25*b)+(18*b)/(35*a),...
(4*a)/75+(4*a^3)/(35*b^2)-(26*b^2)/(105*a),...
(13*a^2)/(70*b^3)-3/(25*b)+(27*b)/(70*a^2),...
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
170 10 Placas de Kirchhoff

(3*a^3)/(35*b^3)+(2*a)/(25*b)+(9*b)/(35*a),...
-a/75-(3*a^3)/(35*b^2)-(13*b^2)/(105*a);
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10,...
(-26*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2),...
-a/75-(3*a^3)/(35*b^2)+(22*b^2)/(105*a)-(a*nu)/15,...
(-4*a^3)/(35*b)-(8*a*b)/225+(8*b^3)/(105*a),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-nu/5,...
(-44*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2)-(4*b*nu)/15,...
(4*a)/75+(4*a^3)/(35*b^2)+(44*b^2)/(105*a)+(4*a*nu)/15,...
(16*a^3)/(105*b)+(32*a*b)/225+(16*b^3)/(105*a),...
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10,...
(-22*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2)+(b*nu)/15,...
(-4*a)/75-(4*a^3)/(35*b^2)+(26*b^2)/(105*a),...
(8*a^3)/(105*b)-(8*a*b)/225-(4*b^3)/(35*a),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2),...
(-13*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2),...
a/75+(3*a^3)/(35*b^2)+(13*b^2)/(105*a),...
(-2*a^3)/(35*b)+(2*a*b)/225-(2*b^3)/(35*a);
(-27*a)/(70*b^3)+18/(25*a*b)-(27*b)/(70*a^3),...
3/(25*a)-(27*a)/(70*b^2)-(13*b^2)/(70*a^3),...
(-13*a^2)/(70*b^3)+3/(25*b)-(27*b)/(70*a^2),...
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
(-39*a)/(35*b^3)-18/(25*a*b)+(27*b)/(70*a^3),...
-3/(25*a)-(39*a)/(35*b^2)+(13*b^2)/(70*a^3),...
(11*a^2)/(35*b^3)+3/(25*b)-(27*b)/(70*a^2)+(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10,...
(39*a)/(35*b^3)+18/(25*a*b)+(39*b)/(35*a^3),...
-3/(25*a)-(39*a)/(35*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(-11*a^2)/(35*b^3)-3/(25*b)-(39*b)/(35*a^2)-(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+nu/5,...
(27*a)/(70*b^3)-18/(25*a*b)-(39*b)/(35*a^3),...
3/(25*a)-(27*a)/(70*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(13*a^2)/(70*b^3)-3/(25*b)-(39*b)/(35*a^2),...
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10;
-3/(25*a)+(27*a)/(70*b^2)+(13*b^2)/(70*a^3),...
(9*a)/(35*b)+(2*b)/(25*a)+(3*b^3)/(35*a^3),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2),...
(13*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2),...
3/(25*a)+(39*a)/(35*b^2)-(13*b^2)/(70*a^3),...
(26*a)/(35*b)-(2*b)/(25*a)-(3*b^3)/(35*a^3),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(-22*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2)+(b*nu)/15,...
-3/(25*a)-(39*a)/(35*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(52*a)/(35*b)+(8*b)/(25*a)+(4*b^3)/(35*a^3),...
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+(6*nu)/5,...
10.3 Elementos finitos 171

(-44*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2)-(4*b*nu)/15,...
3/(25*a)-(27*a)/(70*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(18*a)/(35*b)-(8*b)/(25*a)-(4*b^3)/(35*a^3),...
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10,...
(26*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2);
(13*a^2)/(70*b^3)-3/(25*b)+(27*b)/(70*a^2),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2),...
(3*a^3)/(35*b^3)+(2*a)/(25*b)+(9*b)/(35*a),...
a/75+(3*a^3)/(35*b^2)+(13*b^2)/(105*a),...
(11*a^2)/(35*b^3)+3/(25*b)-(27*b)/(70*a^2)+(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10,...
(-4*a^3)/(35*b^3)-(8*a)/(25*b)+(18*b)/(35*a),...
(-4*a)/75-(4*a^3)/(35*b^2)+(26*b^2)/(105*a),...
(-11*a^2)/(35*b^3)-3/(25*b)-(39*b)/(35*a^2)-(3*nu)/(5*b),...
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+(6*nu)/5,...
(4*a^3)/(35*b^3)+(8*a)/(25*b)+(52*b)/(35*a),...
(-4*a)/75-(4*a^3)/(35*b^2)-(44*b^2)/(105*a)-(4*a*nu)/15,...
(-13*a^2)/(70*b^3)+3/(25*b)+(39*b)/(35*a^2),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(-3*a^3)/(35*b^3)-(2*a)/(25*b)+(26*b)/(35*a),...
a/75+(3*a^3)/(35*b^2)-(22*b^2)/(105*a)+(a*nu)/15;
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
(-13*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2),...
-a/75-(3*a^3)/(35*b^2)-(13*b^2)/(105*a),...
(-2*a^3)/(35*b)+(2*a*b)/225-(2*b^3)/(35*a),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(-22*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2)+(b*nu)/15,...
(4*a)/75+(4*a^3)/(35*b^2)-(26*b^2)/(105*a),...
(8*a^3)/(105*b)-(8*a*b)/225-(4*b^3)/(35*a),...
1/50+(11*a^2)/(35*b^2)+(11*b^2)/(35*a^2)+nu/5,...
(-44*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2)-(4*b*nu)/15,...
(-4*a)/75-(4*a^3)/(35*b^2)-(44*b^2)/(105*a)-(4*a*nu)/15,...
(16*a^3)/(105*b)+(32*a*b)/225+(16*b^3)/(105*a),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(-26*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2),...
a/75+(3*a^3)/(35*b^2)-(22*b^2)/(105*a)+(a*nu)/15,...
(-4*a^3)/(35*b)-(8*a*b)/225+(8*b^3)/(105*a);
(-39*a)/(35*b^3)-18/(25*a*b)+(27*b)/(70*a^3),...
-3/(25*a)-(39*a)/(35*b^2)+(13*b^2)/(70*a^3),...
(-11*a^2)/(35*b^3)-3/(25*b)+(27*b)/(70*a^2)-(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(-27*a)/(70*b^3)+18/(25*a*b)-(27*b)/(70*a^3),...
3/(25*a)-(27*a)/(70*b^2)-(13*b^2)/(70*a^3),...
(13*a^2)/(70*b^3)-3/(25*b)+(27*b)/(70*a^2),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2),...
172 10 Placas de Kirchhoff

(27*a)/(70*b^3)-18/(25*a*b)-(39*b)/(35*a^3),...
3/(25*a)-(27*a)/(70*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(-13*a^2)/(70*b^3)+3/(25*b)+(39*b)/(35*a^2),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(39*a)/(35*b^3)+18/(25*a*b)+(39*b)/(35*a^3),...
-3/(25*a)-(39*a)/(35*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(11*a^2)/(35*b^3)+3/(25*b)+(39*b)/(35*a^2)+(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-nu/5;
3/(25*a)+(39*a)/(35*b^2)-(13*b^2)/(70*a^3),...
(26*a)/(35*b)-(2*b)/(25*a)-(3*b^3)/(35*a^3),...
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10,...
(22*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2)-(b*nu)/15,...
-3/(25*a)+(27*a)/(70*b^2)+(13*b^2)/(70*a^3),...
(9*a)/(35*b)+(2*b)/(25*a)+(3*b^3)/(35*a^3),...
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
(-13*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2),...
3/(25*a)-(27*a)/(70*b^2)+(11*b^2)/(35*a^3)+(3*nu)/(5*a),...
(18*a)/(35*b)-(8*b)/(25*a)-(4*b^3)/(35*a^3),...
-1/50+(13*a^2)/(70*b^2)-(11*b^2)/(35*a^2)-nu/10,...
(-26*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2),...
-3/(25*a)-(39*a)/(35*b^2)-(11*b^2)/(35*a^3)-(3*nu)/(5*a),...
(52*a)/(35*b)+(8*b)/(25*a)+(4*b^3)/(35*a^3),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-(6*nu)/5,...
(44*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2)+(4*b*nu)/15;
(-11*a^2)/(35*b^3)-3/(25*b)+(27*b)/(70*a^2)-(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)+(13*b^2)/(70*a^2)-nu/10,...
(-4*a^3)/(35*b^3)-(8*a)/(25*b)+(18*b)/(35*a),...
(-4*a)/75-(4*a^3)/(35*b^2)+(26*b^2)/(105*a),...
(-13*a^2)/(70*b^3)+3/(25*b)-(27*b)/(70*a^2),...
1/50-(13*a^2)/(70*b^2)-(13*b^2)/(70*a^2),...
(3*a^3)/(35*b^3)+(2*a)/(25*b)+(9*b)/(35*a),...
a/75+(3*a^3)/(35*b^2)+(13*b^2)/(105*a),...
(13*a^2)/(70*b^3)-3/(25*b)-(39*b)/(35*a^2),...
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10,...
(-3*a^3)/(35*b^3)-(2*a)/(25*b)+(26*b)/(35*a),...
a/75+(3*a^3)/(35*b^2)-(22*b^2)/(105*a)+(a*nu)/15,...
(11*a^2)/(35*b^3)+3/(25*b)+(39*b)/(35*a^2)+(3*nu)/(5*b),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-(6*nu)/5,...
(4*a^3)/(35*b^3)+(8*a)/(25*b)+(52*b)/(35*a),...
(-4*a)/75-(4*a^3)/(35*b^2)-(44*b^2)/(105*a)-(4*a*nu)/15;
1/50+(11*a^2)/(35*b^2)-(13*b^2)/(70*a^2)+nu/10,...
(22*a^2)/(105*b)-b/75-(3*b^3)/(35*a^2)-(b*nu)/15,...
(4*a)/75+(4*a^3)/(35*b^2)-(26*b^2)/(105*a),...
(8*a^3)/(105*b)-(8*a*b)/225-(4*b^3)/(35*a),...
-1/50+(13*a^2)/(70*b^2)+(13*b^2)/(70*a^2),...
10.3 Elementos finitos 173

(13*a^2)/(105*b)+b/75+(3*b^3)/(35*a^2),...
-a/75-(3*a^3)/(35*b^2)-(13*b^2)/(105*a),...
(-2*a^3)/(35*b)+(2*a*b)/225-(2*b^3)/(35*a),...
1/50-(13*a^2)/(70*b^2)+(11*b^2)/(35*a^2)+nu/10,...
(26*a^2)/(105*b)-(4*b)/75-(4*b^3)/(35*a^2),...
a/75+(3*a^3)/(35*b^2)-(22*b^2)/(105*a)+(a*nu)/15,...
(-4*a^3)/(35*b)-(8*a*b)/225+(8*b^3)/(105*a),...
-1/50-(11*a^2)/(35*b^2)-(11*b^2)/(35*a^2)-nu/5,...
(44*a^2)/(105*b)+(4*b)/75+(4*b^3)/(35*a^2)+(4*b*nu)/15,...
(-4*a)/75-(4*a^3)/(35*b^2)-(44*b^2)/(105*a)-(4*a*nu)/15,...
(16*a^3)/(105*b)+(32*a*b)/225+(16*b^3)/(105*a)];
end
Para verificar a qualidade deste elemento na análise de placas, considere-
se uma placa quadrada, simplesmente apoiada ou encastrada em todos os
bordos, sujeita a uma força distribuida P , com lado a, módulo de elasticidade
E e coeficiente de Poisson ν. Considere-se a flecha normalizadas
D
w̄ = w (10.24)
P l4
sendo D a rigidez á flexão, obtida por

Eh3
D= (10.25)
12(1 − ν 2 )
sendo h a espessura da placa.
O código que a seguir se apresenta ( bfsExemplo.m ) pode considerar
apoios simples ou encastramentos.
clear all
colordef white
tic
% propriedades material
E0 = 10920; % módulo Young
nu0 = 0.30; % coef. Poisson
% geometria
L = 1; % lado
thickness=0.001;
I=thickness^3/12;
P=-1;
% malha
numy = 20; % # elementos em xx
numx = 20; % # elementos em xx
%malha
[node, element] = MalhaRectangular(L, L, numx, numy);
%
xx=node(:,1); yy=node(:,2);
174 10 Placas de Kirchhoff

numnode=size(node,1); % numero nos


numelem=size(element,1); % numero elementos
% matriz elasticidade (duas partes)
disp([num2str(toc),’ dados ’])
U=zeros(4*numnode,1); % vector de deslocamentos nodais
f=zeros(4*numnode,1); % vector de carga externa
K=sparse(4*numnode,4*numnode); % matriz de rigidez

for e=1:numelem
indice=element(e,:);
indiceB=[ indice(1)*4-3 indice(1)*4-2 indice(1)*4-1 indice(1)*4 ...
indice(2)*4-3 indice(2)*4-2 indice(2)*4-1 indice(2)*4 ...
indice(3)*4-3 indice(3)*4-2 indice(3)*4-1 indice(3)*4 ...
indice(4)*4-3 indice(4)*4-2 indice(4)*4-1 indice(4)*4];

[ke, fe] = bfs(node(indice,:), thickness, E0, nu0, P);

K(indiceB,indiceB)=K(indiceB,indiceB)+ke;
f(indiceB)=f(indiceB)+fe;
%
end

%noCentral=find(node(:,1)==L/2 & node(:,2)==L/2);


%f(noCentral*3-2)=-1.0;

% BC

fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
|xx==max(node(:,1))|yy==min(node(:,2)));

%next two lines: simply supported case


% Nota: neste elemento, troca-se o theta_x por theta_y

fixedNodeTY =find(yy==max(node(:,2))|yy==min(node(:,2)));
fixedNodeTX =find(xx==max(node(:,1))| xx==min(node(:,1)));
fixedNodeTXY =[];

%next two lines: clamped case


% fixedNodeTX =fixedNodeW;
% fixedNodeTY =fixedNodeTX;
% fixedNodeTXY =fixedNodeW;;

dofs=[fixedNodeW*4-3;fixedNodeTX*4-2;fixedNodeTY*4-1;fixedNodeTXY*4];
activeDof=setdiff([1:4*numnode]’,[dofs]);
10.3 Elementos finitos 175

U=K(activeDof,activeDof)\f(activeDof);
U1=zeros(4*numnode,1);
U1(activeDof)=U;

figure
plot3(xx,yy,U1(1:4:4*numnode),’.’)
format long
D1=E0*thickness^3/12/(1-nu0^2);
min(U1(1:4:4*numnode))*D1/L^4
Para a placa referida, obtém-se os seguintes resultados normalizados para
a flecha máxima (nó central), conforme ilustrado na tabela 10.2.

Malha SSSS CCCC


2×2 0.004122 0.001324
6×6 0.004062 0.001265
10 × 10 0.004062 0.001265
20 × 20 0.004062 0.001265
Solução exacta 0.004060 0.001260
Tabela 10.2. Flecha normalizada para placa quadrada, sujeita a carga uniforme.
Simplesmente apoiada (SSSS) e encastrada (CCCC)

10.3.3 Elemento triangular BCIZ

O elemento triangular de três nós de Bazeley et al [113], designado por BCIZ,


considera um polinómio incompleto de terceiro grau em coordenadas de área
   
L1 L2 L3 L1 L2 L3
w = a1 L1 +a2 L2 +a3 L3 +a4 L21 L2
+ 2
+a5 L2 L1 + +
2 2
   
L1 L2 L3 L1 L2 L3
a6 L22 L3 + + a7 L23 L2 + +
2 2
   
2 L1 L2 L3 2 L1 L2 L3
a8 L3 L1 + + a9 L1 L3 + (10.26)
2 2

O código bciz.m calcula a matriz de rigidez e o vector de carga equiva-


lente para o elemento triangular BCIZ.
function [ke, re] = bcizKF(coord, h, e, nu, q)
% coord = coordenadas dos nós do elemento
% h = espessura
% e = modulo de elasticidade, nu = coeficiente de Poisson
% q = carga distribuida.
176 10 Placas de Kirchhoff

% ke = rigidez do elemento, re = vector de carga equivalente.


x1=coord(1,1); x2=coord(2,1); x3=coord(3,1);
y1=coord(1,2); y2=coord(2,2); y3=coord(3,2);
f1 = x2*y3 - x3*y2; f2 = x3*y1 - x1*y3; f3 = x1*y2 - x2*y1;
b1 = y2 - y3; b2 = y3 - y1; b3 = y1 - y2;
c1 = x3 - x2; c2 = x1 - x3; c3 = x2 - x1; A = (f1 + f2 + f3)/2;
d = e*h^3/(12*(1 - nu^2));
c = d*[1, nu, 0; nu, 1, 0; 0, 0, (1 - nu)/2];
% Gauss point locations and weights
gpLocs = [1/3, 1/3; 1/5, 1/5; 3/5, 1/5; 1/5, 3/5];
gpWts = [-9/32, 25/96, 25/96, 25/96];
ke=zeros(9); re=zeros(9,1);
for i=1:length(gpWts)
s = gpLocs(i, 1); t = gpLocs(i, 2); w = gpWts(i);
x = (1 - s - t)*x1 + s*x2 + t*x3;
y = (1 - s - t)*y1 + s*y2 + t*y3;
detJ = (x2 - x1)*(y3 - y1) - (x3 - x1)*(y2 - y1);
A1 = 1/(2*A)* (f1 + x*b1 + y*c1);
A2 = 1/(2*A)* (f2 + x*b2 + y*c2);
A3 = 1/(2*A)* (f3 + x*b3 + y*c3);
n = [3*A1^2 - 2*A1^3 + 2*A1*A2 - 2*A1^2*A2 - 2*A1*A2^2;
A1*A3*b2 - A1*A3^2*b2 - A1^2*A2*b3;
A1*A3*c2 - A1*A3^2*c2 - A1^2*A2*c3;
2*A1*A2 - 2*A1^2*A2 + 3*A2^2 - 2*A1*A2^2 - 2*A2^3;
-(A2^2*A3*b1) + A1*A2*b3 - A1^2*A2*b3;
-(A2^2*A3*c1) + A1*A2*c3 - A1^2*A2*c3;
2*A1*A3 - 2*A1^2*A3 + 3*A3^2 - 2*A1*A3^2 - 2*A3^3;
A2*A3*b1 - A2^2*A3*b1 - A1*A3^2*b2;
A2*A3*c1 - A2^2*A3*c1 - A1*A3^2*c2]’;
bt1 = [-(-(A*b1*(3*b1 + 2*b2)) + 3*b1^3*x + b2^2*(f1 + c1*y) +...
b1^2*(3*f1 + f2 + 3*b2*x + 3*c1*y + c2*y) +...
b1*b2*(2*f1 + 2*f2 + 3*b2*x + 2*c1*y + 2*c2*y))/(2*A^3);
-(b3*(-2*A*b1*b2 + b2*b3*(f1 + c1*y) + ...
b1^2*(f2 + 3*b2*x + c2*y) + ...
b1*b2*(2*f1 + 2*f3 + 3*b3*x + 2*c1*y + 2*c3*y)))/(4*A^3);
-(-2*A*b1*b3*c2 + b3^2*c2*(f1 + 3*b1*x + c1*y) +...
b1*c3*(2*b2*f1 + b1*f2 + 3*b1*b2*x + 2*b2*c1*y + b1*c2*y) +...
2*b1*b3*c2*(f3 + c3*y))/(4*A^3);
-(-(A*b2*(2*b1 + 3*b2)) + b1^2*(f2 + 3*b2*x + c2*y) + ...
b1*b2*(2*f1 + 2*f2 + 3*b2*x + 2*c1*y + 2*c2*y) + ...
b2^2*(f1 + 3*f2 + 3*b2*x + c1*y + 3*c2*y))/(2*A^3);
-(b1*(-2*A*b2*b3 + b1*b3*(f2 + c2*y) +...
b2*b3*(2*f1 + 2*f2 + 3*b1*x + 2*c1*y + 2*c2*y) + ...
b2^2*(f3 + 3*b3*x + c3*y)))/(4*A^3);
-(-2*A*b1*b2*c3 + 2*b1*b2*c3*(f1 + c1*y) + ...
10.3 Elementos finitos 177

b1^2*c3*(f2 + 3*b2*x + c2*y) + b2*c1*(2*b3*f2 + ...


b2*f3 + 3*b2*b3*x + 2*b3*c2*y + b2*c3*y))/(4*A^3);
-(-(A*b3*(2*b1 + 3*b3)) + b1^2*(f3 + 3*b3*x + c3*y) + ...
b1*b3*(2*f1 + 2*f3 + 3*b3*x + 2*c1*y + 2*c3*y) + ...
b3^2*(f1 + 3*f3 + 3*b3*x + c1*y + 3*c3*y))/(2*A^3);
-(b2*(-2*A*b1*b3 + b3^2*(f1 + 3*b1*x + c1*y) + ...
b1*b2*(f3 + c3*y) + ...
b1*b3*(2*f2 + 2*f3 + 3*b2*x + 2*c2*y + 2*c3*y)))/(4*A^3);
-(-2*A*b2*b3*c1 + b3^2*c2*(f1 + 3*b1*x + c1*y) +...
b2^2*c1*(f3 + c3*y) + b3*(3*b2^2*c1*x + 2*b2*c1*(f2 + c2*y) +...
2*b1*c2*(f3 + c3*y)))/(4*A^3)]’;
bt2 = [-(-(A*c1*(3*c1 + 2*c2)) + c2^2*(f1 + b1*x) + 3*c1^3*y + ...
c1^2*(3*f1 + f2 + 3*b1*x + b2*x + 3*c2*y) + ...
c1*c2*(2*f1 + 2*f2 + 2*b1*x + 2*b2*x + 3*c2*y))/(2*A^3);
-(-2*A*b2*c1*c3 + b2*c3*(2*c1*f3 + c3*(f1 + b1*x + 3*c1*y)) + ...
b3*c1*(c1*f2 + b2*c1*x + 2*b2*c3*x + c2*(2*f1 + 2*b1*x +...
3*c1*y)))/(4*A^3);
-(c3*(-2*A*c1*c2 + c2*c3*(f1 + b1*x) +...
c1^2*(f2 + b2*x + 3*c2*y) + ...
c1*c2*(2*f1 + 2*f3 + 2*b1*x + 2*b3*x + 3*c3*y)))/(4*A^3);
-(-(A*c2*(2*c1 + 3*c2)) + c1^2*(f2 + b2*x + 3*c2*y) + ...
c1*c2*(2*f1 + 2*f2 + 2*b1*x + 2*b2*x + 3*c2*y) + ...
c2^2*(f1 + 3*f2 + b1*x + 3*b2*x + 3*c2*y))/(2*A^3);
-(-2*A*b3*c1*c2 + b3*(b1*c2^2*x + 2*c1*c2*(f1 + b1*x) + ...
c1^2*(f2 + b2*x + 3*c2*y)) + ...
b1*c2*(c2*f3 + c3*(2*f2 + 2*b2*x + 3*c2*y)))/(4*A^3);
-(c1*(-2*A*c2*c3 + c1*c3*(f2 + b2*x) + c2*c3*(2*f1 + 2*f2 + ...
2*b1*x + 2*b2*x + 3*c1*y) + ...
c2^2*(f3 + b3*x + 3*c3*y)))/(4*A^3);
-(-(A*c3*(2*c1 + 3*c3)) + c1^2*(f3 + b3*x + 3*c3*y) + ...
c1*c3*(2*f1 + 2*f3 + 2*b1*x + 2*b3*x + 3*c3*y) + ...
c3^2*(f1 + 3*f3 + b1*x + 3*b3*x + 3*c3*y))/(2*A^3);
-(-2*A*b1*c2*c3 + b1*c2*(2*c3*f2 + c2*f3 + b3*c2*x +...
3*c2*c3*y) + ...
b2*c3*(2*(c1*f3 + b3*c1*x + b1*c2*x) +...
c3*(f1 + b1*x + 3*c1*y)))/(4*A^3);
-(c2*(-2*A*c1*c3 + c1*c2*(f3 + b3*x) + ...
c3^2*(f1 + b1*x + 3*c1*y) + ...
c1*c3*(2*f2 + 2*f3 + 2*b2*x + 2*b3*x + 3*c2*y)))/(4*A^3)]’;
bt3 = [-((-(A*(b2*c1 + b1*(3*c1 + c2))) + b1^2*(3*c1 + c2)*x + ...
b2*(c2*f1 + c1^2*y + c1*(f1 + f2 + b2*x + 2*c2*y)) + ...
b1*(3*c1^2*y + c2*(f1 + f2 + 2*b2*x + c2*y) +...
c1*(3*f1 + f2 + 2*b2*x + 2*c2*y)))/A^3);
-(-(A*b2*(b3*c1 + b1*c3)) + ...
b1*b3*(c1*f2 + c2*(f1 + b1*x + 2*c1*y)) +...
178 10 Placas de Kirchhoff

b2*(b3^2*c1*x + b1*c3*(f3 + c3*y) + ...


b3*(c3*(f1 + 2*b1*x) + c1^2*y + ...
c1*(f1 + f3 + 2*b1*x + 2*c3*y))))/(2*A^3);
-(-(A*c2*(b3*c1 + b1*c3)) + b1*c2*c3*f1 + b3*c2*c3*f1 +...
b1*c1*c3*f2 + b3*c1*c2*f3 + b1*c2*c3*f3 + b3^2*c1*c2*x + ...
b1^2*c2*c3*x + 2*b1*b3*c2*c3*x + 2*b1*c1*c2*c3*y + ...
2*b3*c1*c2*c3*y +...
b1*c2*c3^2*y + b2*c1*c3*(f1 + 2*b1*x + c1*y))/(2*A^3);
-((-(A*(b1*c2 + b2*(c1 + 3*c2))) + b2^2*(c1 + 3*c2)*x + ...
b1*(c1*f2 + c2^2*y + c2*(f1 + f2 + b1*x + 2*c1*y)) + ...
b2*(c1^2*y + c1*(f1 + f2 + 2*b1*x + 2*c2*y) +...
c2*(f1 + 3*f2 + 2*b1*x + 3*c2*y)))/A^3);
-(-(A*b3*(b2*c1 + b1*c2)) + b1*b2^2*c3*x + ...
b1*b3*(c1*f2 + c2^2*y + c2*(f1 + f2 + b1*x + 2*c1*y)) + ...
b2*(b3*(c1*f1 + 2*b1*c1*x + 2*b1*c2*x + c1^2*y) +...
b1*(c3*f2 + c2*f3 + 2*c2*c3*y)))/(2*A^3);
-(-(A*(b2*c1 + b1*c2)*c3) + b1*c2*c3*f1 + b3*c1*c2*f2 + ...
b1*c1*c3*f2 + ...
b2^2*c1*c3*x + b1^2*c2*c3*x + b3*c1*c2^2*y + 2*b1*c1*c2*c3*y + ...
b2*c1*(c2*(f3 + 2*b3*x) + c3*(f1 + f2 +...
2*b1*x + c1*y + 2*c2*y)))/(2*A^3);
-((-(A*(b1*c3 + b3*(c1 + 3*c3))) + b3^2*(c1 + 3*c3)*x + ...
b1*(c1*f3 + c3^2*y + c3*(f1 + f3 + b1*x + 2*c1*y)) + ...
b3*(c1^2*y + c1*(f1 + f3 + 2*b1*x + 2*c3*y) +...
c3*(f1 + 3*f3 + 2*b1*x + 3*c3*y)))/A^3);
-(-(A*b1*(b3*c2 + b2*c3)) + b1*b2^2*c3*x + ...
b1*b3*c2*(f2 + c2*y) + ...
b2*(b3^2*c1*x + b3*(c1*f3 + 2*b1*c2*x + c3*(f1 + ...
2*b1*x + 2*c1*y)) + ...
b1*(c2*f3 + c3^2*y + c3*(f2 + f3 + 2*c2*y))))/(2*A^3);
-(-(A*c1*(b3*c2 + b2*c3)) + b2*c1*c3*f2 + b2*c1*c2*f3 + ...
b1*c2*c3*f3 + b3^2*c1*c2*x + b2^2*c1*c3*x + 2*b2*c1*c2*c3*y + ...
b1*c2*c3^2*y + b3*c2*(c3*(f1 + 2*b1*x + 2*c1*y) + ...
c1*(f2 + f3 + 2*b2*x + c2*y)))/(2*A^3)]’;
b = [bt1; bt2; bt3];
ke = ke + detJ*w* b’*c*b;
re = re + detJ*w*q * n’;
end
O código bcizExemplo.m corresponde ao exemplo da placa quadrada
que temos vindo a estudar com os elementos MCZ e BFS.
clear all
colordef white
tic
% propriedades material
10.3 Elementos finitos 179

E0 = 10920; % módulo Young


nu0 = 0.30; % coef. Poisson
% geometria
L = 1; % lado
thickness=0.001;
I=thickness^3/12;
P=-1;
% malha
numy = 30; % # elementos em xx
numx = 30; % # elementos em xx
%malha
nnx=numx+1;
nny=numy+1;
node=square_node_array([0 0],[L 0],[L L],[0 L],nnx,nny);

node_pattern1=[ 1 2 nnx+1 ];
node_pattern2=[ 2 nnx+2 nnx+1 ];
inc_u=1;
inc_v=nnx;

element=[make_elem(node_pattern1,numx,numy,inc_u,inc_v);
make_elem(node_pattern2,numx,numy,inc_u,inc_v) ];
%
xx=node(:,1); yy=node(:,2);
numnode=size(node,1); % numero nos
numelem=size(element,1); % numero elementos
%
disp([num2str(toc),’ dados ’])
U=zeros(3*numnode,1); % vector de deslocamentos nodais
f=zeros(3*numnode,1); % vector de carga externa
K=sparse(3*numnode,3*numnode); % matriz de rigidez

% rigidez

for e=1:numelem
indice=element(e,:);
indiceB=[ indice(1)*3-2 indice(1)*3-1 indice(1)*3 ...
indice(2)*3-2 indice(2)*3-1 indice(2)*3 ...
indice(3)*3-2 indice(3)*3-1 indice(3)*3 ];

%
[ke, fe] = bcizElemento(node(indice,:), thickness, E0, nu0, P);

K(indiceB,indiceB)=K(indiceB,indiceB)+ke;
f(indiceB)=f(indiceB)+fe;
180 10 Placas de Kirchhoff

end

%noCentral=find(node(:,1)==L/2 & node(:,2)==L/2);


%f(noCentral*3-2)=-1.0;
% BC

fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
|xx==max(node(:,1))|yy==min(node(:,2)));

%next two lines: simply supported case


%fixedNodeTY =find(yy==max(node(:,2))|yy==min(node(:,2)));
%fixedNodeTX =find(xx==max(node(:,1))| xx==min(node(:,1)));

%next two lines: clamped case


fixedNodeTX =fixedNodeW;
fixedNodeTY =fixedNodeTX;

%next line: scsc case


%fixedNodeTX =find(xx==max(node(:,2))|xx==min(node(:,2)));
%fixedNodeTY=[];

%next 3 line3: cccf case


%fixedNodeW=find(yy==max(node(:,2))|xx==min(node(:,1))|yy==min(node(:,2)));
%fixedNodeTX =fixedNodeW;
%fixedNodeTY =fixedNodeTX;

dofs=[fixedNodeW*3-2;fixedNodeTX*3-1;fixedNodeTY*3];
activeDof=setdiff([1:3*numnode]’,[dofs]);

U=K(activeDof,activeDof)\f(activeDof);
U1=zeros(3*numnode,1);
U1(activeDof)=U;

figure
plot3(xx,yy,U1(1:3:3*numnode),’.’)
format long
D1=E0*thickness^3/12/(1-nu0^2);
%min(U1(1:3:3*numnode))*D1/L^2
min(U1(1:3:3*numnode))*D1/L^4
Para a placa referida, obtém-se os seguintes resultados normalizados para
a flecha máxima (nó central), conforme ilustrado na tabela 10.3.
10.4 Constrições de Kirchhoff 181

Malha SSSS CCCC


2×2 0.004620 0.001302
6×6 0.004190 0.001343
10 × 10 0.004114 0.001301
20 × 20 0.004076 0.001275
30 × 30 0.004068 0.001270
Solução exacta 0.004060 0.001260
Tabela 10.3. Flecha normalizada para placa quadrada, sujeita a carga uniforme.
Simplesmente apoiada (SSSS) e encastrada (CCCC)

10.4 Constrições de Kirchhoff


Existem outros elementos que, partindo da formulação de placa espessa,
impõem as condições de Kirchhoff localmente. Dado que se baseiam inici-
almente na teoria de Mindlin, ficarão para outro capı́tulo, em particular o
elemento DKT (discrete Kirchhoff triangle), desenvolvido por Batoz.
11
Elementos finitos de placa de Mindlin

11.1 Introdução
Neste capı́tulo apresenta-se a formulação de elementos de placa espessa, se-
gundo a teoria de Mindlin, também chamada de Mindlin-Reissner.
Apresenta-se a formulação baseada em deslocamentos. Tendo em conta
a melhoria do comportamento ao corte transverso, apresenta-se também a
formulação para o elemento Q4γ (semelhante ao MITC de Bathe/Dvorkin),
sendo considerado dos melhores elementos para problemas de placa espessa
ou fina.
Finalmente, partindo da formulação de Mindlin, apresenta-se o elemento
DKT, que impõe condições de Kirchhoff em pontos seleccionados do elemento,
conduzindo assim a um elemento de placa fina com elevada reputação.

11.2 Teoria de placa de Mindlin


A teoria de placa de Mindlin (também chamada de Mindlin-Reissner ) inclui
os efeitos das deformações de corte transverso, de forma semelhante à teoria de
viga de Timoshenko, indicada em capı́tulo anterior. Aqui, uma recta normal ao
plano médio da placa indeformada permanece recta, mas não necessáriamente
normal ao plano médio da placa deformada. A energia de deformação deve
incluir termos de flexão e de corte transverso, na forma
Z Z
1 T α
U= σ f dV + σ T c dV (11.1)
2 V f 2 V c
onde

σ Tf = [σx σy τxy ] (11.2)

Tf = [x y γxy ] (11.3)


184 11 Elementos finitos de placa de Mindlin

são as deformações de flexão e

σ Tc = [τxz τyz ] (11.4)

Tc = [γxz γyz ] (11.5)


são as tensões e deformações de corte transverso . O parâmetro α, habitual-
mente designado por factor de correcção de corte transverso , toma o valor 5/6.
Este factor é necessário tendo em conta que as deformações de corte trans-
verso são constantes através da espessura, o que contraria o perfil parabólico
das tensões de corte transverso reais. Na figura 11.1 ilustra-se a geometria e
os graus de liberdades.

11.2.1 Campo de deslocamentos

Supõe-se um campo de deslocamentos na forma

u = zθx (11.6)

v = zθy (11.7)

w = w0 (11.8)
onde θx , θy são as rotações do plano médio em torno dos eixos y e x, respec-
tivamente.

z, w

y, v
q
θx

x, u h

θy

Figura 11.1. Geometria de placa de Mindlin . Eixos, graus de liberdade, força


distribuida aplicada
11.2 Teoria de placa de Mindlin 185

11.2.2 Campo de deformações

As deformações de flexão são agora obtidas por


∂u ∂θx
x = =z (11.9)
∂x ∂x
∂v ∂θy
y = =z (11.10)
∂y ∂y
 
∂u ∂v ∂θy ∂θx
γxy = + =z + (11.11)
∂y ∂x ∂x ∂y
enquanto que as deformações de corte são obtidas por
∂w ∂u ∂w
γxz = + = + θx (11.12)
∂x ∂z ∂x
∂w ∂v ∂w
γyz = + = + θy (11.13)
∂y ∂z ∂y

11.2.3 Campo de tensões

As relações constitutivas são obtidas por

σ f = Df σ f (11.14)
onde Df já foi anteriormente definido e

σ c = Dc σ c (11.15)

sendo
 
G 0
Dc = (11.16)
0 G
sendo G o módulo de corte, obtido como
E
G= (11.17)
2(1 + ν)

Substituindo nos termos de energia de deformação , obtemos


Z Z
1 α
U= Tf Df f dV + T Dc c dV (11.18)
2 V 2 V c
186 11 Elementos finitos de placa de Mindlin

11.3 Elementos finitos de placa espessa


Tendo em conta que w é independente de θx e θy 1 , cada variável é interpolada
de forma independente, na forma
n
X
w= Ni (ξ, η)wi (11.19)
i=1
n
X
θx = Ni (ξ, η)θxi (11.20)
i=1
n
X
θy = Ni (ξ, η)θyi (11.21)
i=1

onde Ni (ξ, η) são as funções de forma dum elemento finito bidimensional com
n nós. Considera-se um elemento finito bilinear (figura 11.2)2 , onde as de-
formações são obtidas por
f = zBf de (11.22)

c = Bc de (11.23)
onde
 
∂N1 ∂N4
0 ∂x
0 ... 0
∂x
0 
 
 
 ∂N1 ∂N4 
Bf =  0 0 ... 0 0 (11.24)
 
∂y ∂y

 
 
 
 ∂N1 ∂N1 ∂N4 ∂N4 
0 ... 0
∂y ∂x ∂y ∂x
∂N1 ∂N4
 
 ∂x N1 0 ... N4 0 
∂x
Bc =  (11.25)
 

 ∂N1 ∂N4 
0 N1 ... 0 N4
∂y ∂y
e
de T = {w1 θx1 θy1 . . . w4 θx4 θy4 } (11.26)
Obtem-se assim a energia de deformação para o elemento de placa

Z Z Z Z
1 eT α eT
U= d BTf Df Bf dzdΩ e de + d BTc DC Bc dzdΩ e de
2 Ωe z 2 Ωe z
(11.27)
1
ao contrário da teoria de placa fina, onde as rotações são derivadas de w
2
designado por Q4 no programa MATLAB a seguir indicado
11.4 Exemplo de placa quadrada 187

2x2 (flexao)

1x1 (corte)
Figura 11.2. Elemento bilinear de placa de Mindlin : diferentes quadraturas para
flexão e corte transverso

Assim, a matriz de rigidez do elemento de placa de Mindlin pode ser expressa


por
h3
Z Z
e T e
K = B Df Bf dΩ + αh BTc DC Bc dΩ e (11.28)
12 Ω e f Ωe
ou

1 1 1 1
h3
Z Z Z Z
Ke = BTf Df Bf |J|dξdη + αh BTc DC Bc |J|dξdη (11.29)
12 −1 −1 −1 −1

O vector de forças nodais equivalentes à força distribuida transversal do ele-


mento de placa de Mindlin pode ser expresso por
Z 1Z 1
fe = Nq|J|dξdη (11.30)
−1 −1

11.4 Exemplo de placa quadrada


Para verificar a qualidade deste elemento na análise de placas, considere-se
uma placa quadrada, simplesmente apoiada ou encastrada em todos os bordos,
sujeita a uma força distribuida P , com lado a, módulo de elasticidade E e
coeficiente de Poisson ν. Considere-se a flecha normalizadas
D
w̄ = w (11.31)
P l4
sendo D a rigidez á flexão, obtida por
188 11 Elementos finitos de placa de Mindlin

Eh3
D= (11.32)
12(1 − ν 2 )
sendo h a espessura da placa.
Utilizam-se elementos quadriláteros Q9.
Consideram-se placas espessas e finas. Na tabela 11.1 apresenta-se a flecha
central normalizada para várias espessuras e condições fronteira. Para evitar
situações de retenção de corte, executa-se sempre a integração reduzida (3
pontos de Gauss para contribuições de flexão e 2 pontos de Gauss para con-
tribuições de corte transverso). Apresenta-se apenas o código (mindlinQ4.m)
para o elemento Q4, deixando ao leitor a sugestão para construir o código
para os outros elementos.
1 colordef white
2 tic
3 % propriedades material
4 E0 = 10920; % mdulo Young
5 nu0 = 0.30; % coef. Poisson
6 % geometria
7 L = 1; % lado
8 thickness=0.0001;
9 I=thickness^3/12;
10 kapa=5/6; % ssss case
11 numy = 30; % # elementos em xx
12 numx = 30; % # elementos em xx
13 %
14 P = -1; % pressao uniforme
15 % matriz elasticidade (duas partes)
16 % parte flexao
17 C_bending=I*E0/(1-nu0^2)*[1 nu0 0;nu0 1 0;0 0 (1-nu0)/2];
18 % parte corte
19 C_shear=kapa*thickness*E0/2/(1+nu0)*eye(2);
20
21 %malha
22 [node, element] = MalhaRectangular(L, L, numx, numy);
23 %
24 xx=node(:,1);
25 yy=node(:,2);
26
27 numnode=size(node,1); % numero nos
28 numelem=size(element,1); % numero elementos
29
30 disp([num2str(toc),’ dados ’])
31 U=zeros(3*numnode,1); % vector de deslocamentos nodais
32 f=zeros(3*numnode,1); % vector de carga externa
33 K=zeros(3*numnode,3*numnode); % matriz de rigidez
34
35 % rigidez e carga equivalente
36 % quadratura de 2 pontos
11.4 Exemplo de placa quadrada 189

37
38 Q=[ -0.577350269189626 -0.577350269189626;
39 0.577350269189626 -0.577350269189626;
40 0.577350269189626 0.577350269189626;
41 -0.577350269189626 0.577350269189626]
42
43 W=[ 1;1;1;1];
44
45 for e=1:numelem
46
47 sctr=element(e,:);
48 sctrB=[ sctr sctr+numnode sctr+2*numnode];
49 nn=length(sctr);
50 for q=1:size(W,1) % CICLO QUADRATURA
51 pt=Q(q,:); % PONTO
52 wt=W(q); % PESO
53 xi=pt(1);
54 eta=pt(2);
55 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
56 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
57 (1+xi)*(1+eta);(1-xi)*(1+eta)];
58 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
59 1+eta, 1+xi;-(1+eta), 1-xi];
60 J0=node(sctr,:)’*dNdxi; % MATRIZ JACOBIANA
61 invJ0=inv(J0);
62 dNdx=dNdxi*invJ0;
63 % MATRIZ B
64 % FLEXAO
65 B_b=zeros(3,3*nn);
66 B_b(1,nn+1:2*nn) = dNdx(:,1)’;
67 B_b(2,2*nn+1:3*nn)= dNdx(:,2)’;
68 B_b(3,nn+1:2*nn) = dNdx(:,2)’;
69 B_b(3,2*nn+1:3*nn)= dNdx(:,1)’;
70
71 % RIGIDEZ NO PONTO DE QUADRATURA
72 K(sctrB,sctrB)=K(sctrB,sctrB)+B_b’*C_bending*B_b*W(q)*det(J0);
73 % VECTOR DE CARGA NO PONTO DE QUADRATURA
74 f(sctr)=f(sctr)+N*P*det(J0)*wt;
75 end
76 end
77 disp([num2str(toc),’ MATRIZ DE RIGIDEZ (CORTE)’])
78 % quadratura de 1 ponto
79 Q=[0 0];
80 W=[4];
81 for e=1:numelem
82 sctr=element(e,:);
83 sctrB=[ sctr sctr+numnode sctr+2*numnode];
84 nn=length(sctr);
85 for q=1:size(W,1)
190 11 Elementos finitos de placa de Mindlin

86 pt=Q(q,:);
87 wt=W(q);
88 xi=pt(1);
89 eta=pt(2);
90 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
91 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
92 (1+xi)*(1+eta);(1-xi)*(1+eta)];
93 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
94 1+eta, 1+xi;-(1+eta), 1-xi];
95 J0=node(sctr,:)’*dNdxi;
96 invJ0=inv(J0);
97 dNdx=dNdxi*invJ0;
98 % [B]corte
99 B_s=zeros(2,3*nn);
100 B_s(1,1:nn) = dNdx(:,1)’;
101 B_s(2,1:nn) = dNdx(:,2)’;
102 B_s(1,nn+1:2*nn) = N;
103 B_s(2,2*nn+1:3*nn)= N;
104 %
105 K(sctrB,sctrB)=K(sctrB,sctrB)+B_s’*C_shear *B_s*W(q)*det(J0);
106 end
107 end
108
109 % BC
110 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
111 |xx==max(node(:,1))|yy==min(node(:,2)));
112 %next two lines: simply supported case
113 %fixedNodeTX =find(yy==max(node(:,2))|yy==min(node(:,2)));
114 %fixedNodeTY =find(xx==max(node(:,1))| xx==min(node(:,1)));
115 %next two lines: clamped case
116 fixedNodeTX =fixedNodeW;
117 fixedNodeTY =fixedNodeTX;
118
119 % solucao
120 dofs=[fixedNodeW;fixedNodeTX+numnode;fixedNodeTY+2*numnode];
121 activeDof=setdiff([1:3*numnode]’,[dofs]);
122
123 U=K(activeDof,activeDof)\f(activeDof);
124 U1=zeros(3*numnode,1);
125 U1(activeDof)=U;
126
127 figure
128 plot3(xx,yy,U1(1:numnode),’.’)
129 format long
130 D1=E0*thickness^3/12/(1-nu0^2);
131 min(U1(1:numnode))*D1/L^4
11.4 Exemplo de placa quadrada 191

Para a placa referida (malha na figura 11.3), obtém-se os seguintes resul-


tados normalizados para a flecha máxima (nó central), conforme ilustrado na
tabela 11.1.

Figura 11.3. Malha quadrada de elementos Q4 (20 × 20)

a/h Malha SSSS CCCC

10 2×2 0.003545 0.000357


6×6 0.004245 0.001486
10 × 10 0.004263 0.001498
20 × 20 0.004270 0.001503
30 × 30 0.004271 0.001503
Solução exacta 0.004270
10000 2×2 0.003188 3.5e-10
6×6 0.004024 0.001239
10 × 10 0.004049 0.001255
20 × 20 0.004059 0.001262
30 × 30 0.004060 0.001264
Solução exacta 0.004060 0.001260
Tabela 11.1. Flecha normalizada para placa quadrada, sujeita a carga uniforme.
Simplesmente apoiada (SSSS) e encastrada (CCCC)

Tal como na viga de timoshenko, a matriz de rigidez é calculada de forma


distinta nos termos de flexão e nos termos de corte.
Na figura 11.4 apresenta-se a deformada tipica de uma placa em flexão,
simplesmente apoiada em todos os bordos.
192 11 Elementos finitos de placa de Mindlin

!1

!2

!3

!4

!5
1
0.8 1
0.6 0.8
0.4 0.6
0.4
0.2 0.2
0 0

Figura 11.4. Exemplo de deformação de placa simplesmente apoiada

11.5 Melhoramentos ao corte transverso


Em situação de placa fina os elementos Q4 ou Q9 possuem um fraco comporta-
mento ao corte transverso. Para melhorar o comportamento destes elementos,
vários investigadores sugeriram alternativas, quer através da integração redu-
zida, quer através de elementos Heterosis [114].
Mais recentemente, tem tido mais sucesso a chamada formulação por de-
formações de corte assumidas, que são deformações independentes ou de subs-
tituição, impostas de forma discreta, sob colocação ou sob forma integral.
Parte-se da forma habitual para a energia de deformação
Z Z
1 α
U= χT DχdA + γ T Dc γdA (11.33)
2 A 2 A
onde
h i
γ T = γ xz γ yz (11.34)

Os elementos mais importantes desenvolvidos neste contexto são os for-


mulados por Bathe [115, 116] que impoem sob colocação a condição

γ xz = γxz ; γ yz = γyz (11.35)


onde
∂w ∂w
γxz = + θx ; γyz = + θy (11.36)
∂x ∂y
11.6 Elemento Q4γ 193

Esta imposição é feita à custa de aproximações de γξz ; γηz onde os nós


externos possuem 3 graus de liberdade e os nós internos possuem apenas
graus de rotação. O elemento é habitualmente designado MITC. Nesta secção
apresentamos uma formulação e código MATLAB para este elemento, aqui
designado sob Q4γ, conforme apresentado por Batoz [117].

11.6 Elemento Q4γ


Este elemento possui quatro nós com corte transverso constante em cada lado,
com aproximação bilinear (Q4).
A matriz de rigidez é, como habitualmente, formada pelas contribuições
de flexão e corte transverso, na forma
(e)
K(e) = Kf + K(e)
c (11.37)
(e)
onde o cálculo de Kf é idêntica ao anteriormente apresentado para as
placas de Mindlin, mudando a parte de corte transverso, que é agora calculada
na forma
Z
K(e)
c = BTc Dc Bc dA (11.38)
A
onde a matriz Bc é calculada por forma a que as aproximações de γξz e
∂w ∂w
γηz sejam as mesmas de e , conforme Prathap e Somashekar[118], ou
∂ξ ∂η
seja,
∂w
 
   + θξ 
γξz
 
γ= = ∂w ∂ξ = Bξ uξ (11.39)
γηz 
 + θη 

∂η
onde

uTξ = [· · · wi θξi θηi ···], i = 1, 4 (11.40)


onde
∂Ni ∂Ni
 
··· ξi 0 ···
Bξ =  ∂ξ ∂ξ ξi , ηi = ±1
, (11.41)
 
∂Ni ∂Ni
··· 0 ηi ···
∂η ∂η
e
   
θξi θxi
= Ji (11.42)
θηi θyi
Assim obtemos
194 11 Elementos finitos de placa de Mindlin

γ = Bξ u, uT = [· · · wi θxi θyi ···] (11.43)


e com
∂Ni ∂Ni i ∂Ni i
 
··· ξi J11 ξi J12 · · ·
Bξ = 
 ∂ξ ∂ξ ∂ξ 
(11.44)
∂Ni ∂Ni i ∂Ni i 
··· ηi J21 ηi J22 · · ·
∂η ∂η ∂η
donde, finalmente
 
γxz
γ= = J−1 γξ = Bc u (11.45)
γyz
e

Bc = J−1 Bξ (11.46)
(e) (e)
Note-se que ambas as matrizes Kf e Kc são obtidas por integração de
Gauss 2 × 2. Este elemento Q4γ é de facto semelhante ao MITC de Bathe e
Dvorkin. Para problemas rectangulares é também semelhante ao elemento T1
de Hughes e Tezduyar [119], não tem modos parasitas, nem retenção de corte,
quando γξz = γηz = 0.

11.7 Exemplo de placa com elemento Q4γ


Para verificar a qualidade deste elemento na análise de placas, considere-se
uma placa quadrada, simplesmente apoiada ou encastrada em todos os bordos,
sujeita a uma força distribuida P , com lado a, módulo de elasticidade E e
coeficiente de Poisson ν. Considere-se a flecha normalizada
D
w̄ = w (11.47)
P l4
sendo D a rigidez à flexão, obtida por

Eh3
D= (11.48)
12(1 − ν 2 )
sendo h a espessura da placa.
Apresenta-se o código ( q4gammaMindlin1.m ) para o elemento Q4γ, que
recorre a outras rotinas parta execução de algumas tarefas.
1 clear all
2 colordef white
3 tic
4 % propriedades material
5 E0 = 10920; % mdulo Young
202 11 Elementos finitos de placa de Mindlin

   x x x

θx Ni1 Ni2 Ni3
= y y y un ; (i = 1, 2, 3) (11.63)
θy Ni1 Ni2 Ni3
com

x 3 3 x 3 3
Ni1 = Pk Ck − Pm Cm ; Ni2 = Ni − Pk Ck2 − Pm Cm 2
;
2Lk 2Lm 4 4
x 3 3
Ni3 = − Pk Ck Sk − Pm Cm Sm
4 4
y 3 3 y x y 3 3
Ni1 = Pk S k − Pm Sm ; Ni2 = Ni3 ; Ni3 = Ni − Pk Sk2 − Pm Sm 2
2Lk 2Lm 4 4
(11.64)

onde Ni , Pk , Pm foram anteriormente definidos. Os indices k, m referem-se


aos dois lados que têm i como nó comum, conforme tabela 11.3.

Nó canto i lado k(ij) lado m(ij)


1 4 (12) 6 (31)
2 5 (23) 4 (12)
3 6 (31) 5 (23)
Tabela 11.3. Indices k, m para o elemento DKT

A energia de deformação para um elemento é então


Z
(e) 1 1
U = χT DχdA = uT Ku (11.65)
2 A 2
com
 
∂θx ∂θy ∂θx ∂θy
χT = + ; χ = Bu (11.66)
∂x ∂y ∂y ∂x
com

J22 Nxξ − J12 Nxη


 
1
B=  −J21 Nyξ + J11 Nyη  (11.67)
J
−J21 Nξ + J11 Nxη + J22 Nyξ − J12 Nyη
x

onde Jij são os termos da matriz jacobiana, definidos por


11.8 Elemento DKT 201

z
3

s=0

i s θn
k

s = Lk
j
θs

Figura 11.6. Elemento DKT de 3 nós, rotações nos bordos

onde 0 ≤ s0 = s/Lk ≤ 1 representa a variável segundo um lado. Note-se que


1
θsk = θs (s0 = 1/2) = (θsi + θsj ) + αk (11.57)
2
Para a energia de flexão, obtem-se
 
un
χ = Bf ; Bf = [Bf θ |Bf α ] (11.58)
α
onde

uTn = [· · · wi θxi θyi · · · i = 1, 3] ; αT = [α4 α5 α6 ] (11.59)

A hipótese de Kirchhoff é então imposta no contorno do elemento na forma


Z j Z j 
∂w
γsz ds = + θs ds = 0 (11.60)
i i ∂s
Pode então obter-se, por substituição de (11.56) e (11.55),

Lk 2
wj − wi + (Ck θxi + Sk θyi + Ck θxj + Sk θyj ) + Lk αk = 0 (11.61)
2 3
donde se pode tirar a expressão de αk em função dos nós i e j:

3 3
αk = (wj − wi ) − (Ck θxi + Sk θyi + Ck θxj + Sk θyj ) , k = 4, 5, 6
2Lk 4
(11.62)
Substituindo estas relações em (11.49) obtêm-se expressões explicitas das
rotações θx , θy em função das 9 variáveis nodais u,
202 11 Elementos finitos de placa de Mindlin

   x x x

θx Ni1 Ni2 Ni3
= y y y un ; (i = 1, 2, 3) (11.63)
θy Ni1 Ni2 Ni3
com

x 3 3 x 3 3
Ni1 = Pk Ck − Pm Cm ; Ni2 = Ni − Pk Ck2 − Pm Cm 2
;
2Lk 2Lm 4 4
x 3 3
Ni3 = − Pk Ck Sk − Pm Cm Sm
4 4
y 3 3 y x y 3 3
Ni1 = Pk S k − Pm Sm ; Ni2 = Ni3 ; Ni3 = Ni − Pk Sk2 − Pm Sm 2
2Lk 2Lm 4 4
(11.64)

onde Ni , Pk , Pm foram anteriormente definidos. Os indices k, m referem-se


aos dois lados que têm i como nó comum, conforme tabela 11.3.

Nó canto i lado k(ij) lado m(ij)


1 4 (12) 6 (31)
2 5 (23) 4 (12)
3 6 (31) 5 (23)
Tabela 11.3. Indices k, m para o elemento DKT

A energia de deformação para um elemento é então


Z
(e) 1 1
U = χT DχdA = uT Ku (11.65)
2 A 2
com
 
∂θx ∂θy ∂θx ∂θy
χT = + ; χ = Bu (11.66)
∂x ∂y ∂y ∂x
com

J22 Nxξ − J12 Nxη


 
1
B=  −J21 Nyξ + J11 Nyη  (11.67)
J
−J21 Nξ + J11 Nxη + J22 Nyξ − J12 Nyη
x

onde Jij são os termos da matriz jacobiana, definidos por


11.9 Exemplo de placa com elemento DKT 203

1
J11 = (x21 + x34 + η (x34 − x21 )) (11.68)
4
1
J12 = (y21 + y34 + η (y34 − y21 )) (11.69)
4
1
J21 = (x32 + x41 + ξ (x32 − x41 )) (11.70)
4
1
J22 = (y32 + y41 + ξ (y32 − y41 )) (11.71)
4
A matriz de rigidez à flexão é então calculada da forma habitual
Z
K(e) = BT DBJdξdη (11.72)
A

11.9 Exemplo de placa com elemento DKT


Para verificar a qualidade deste elemento na análise de placas, considere-
se uma placa quadrada, simplesmente apoiada ou encastrada em todos os
bordos, sujeita a uma força distribuida P , com lado a, módulo de elasticidade
E e coeficiente de Poisson ν. Note-se que dadas as caracteristicas do elemento
DKT se usam apenas placas finas. Considere-se a flecha normalizada
D
w̄ = w (11.73)
P l4
sendo D a rigidez à flexão, obtida por

Eh3
D= (11.74)
12(1 − ν 2 )
sendo h a espessura da placa.
Apresenta-se o código (dkt.m) .
1 clear all
2 colordef white
3 tic
4 % propriedades material
5 E0 = 10920; % mdulo Young
6 nu0 = 0.30; % coef. Poisson
7 rho=1;
8 % geometria
9 L = 1; % lado
10 thickness=0.01;
11 I=thickness^3/12;
12 P=-1;
13 % malha
14 numy = 20; % # elementos em xx
15 numx = 20; % # elementos em xx
16 %malha
204 11 Elementos finitos de placa de Mindlin

17 nnx=numx+1;
18 nny=numy+1;
19 node=square_node_array([0 0],[L 0],[L L],[0 L],nnx,nny);
20
21 node_pattern1=[ 1 2 nnx+1 ];
22 node_pattern2=[ 2 nnx+2 nnx+1 ];
23 inc_u=1;
24 inc_v=nnx;
25
26 element=[make_elem(node_pattern1,numx,numy,inc_u,inc_v);
27 make_elem(node_pattern2,numx,numy,inc_u,inc_v) ];
28 %
29 xx=node(:,1); yy=node(:,2);
30 numnode=size(node,1); % numero nos
31 numelem=size(element,1); % numero elementos
32 % matriz elasticidade (duas partes)
33 vh=E0*thickness^3/12/(1-nu0^2)*[1 nu0 0; nu0 1 0; 0 0 (1-nu0)/2];
34 %
35 disp([num2str(toc),’ dados ’])
36 U=zeros(3*numnode,1); % vector de deslocamentos nodais
37 f=zeros(3*numnode,1); % vector de carga externa
38 K=sparse(3*numnode,3*numnode); % matriz de rigidez
39 M=sparse(3*numnode,3*numnode); % matriz de rigidez
40
41 % rigidez
42 % quadratura
43 ih=3;ihc=2;
44 pg= .166666666666666;
45 pg1= .666666666666666;
46 vpg=[pg ,pg1 ,pg;pg ,pg ,pg1];vwg=[pg pg pg];
47 idle=9;ike=81;innel=3;ipg=3;ih=3;
48
49 for e=1:numelem
50 indice=element(e,:);
51 indiceB=[ indice(1)*3-2 indice(1)*3-1 indice(1)*3 ...
52 indice(2)*3-2 indice(2)*3-1 indice(2)*3 ...
53 indice(3)*3-2 indice(3)*3-1 indice(3)*3 ];
54
55 vcore(1:2:5)=node(indice,1); vcore(2:2:6)=node(indice,2);
56 [vcos,vl]=t3cos(vcore);
57 %
58 % determinante J
59 detj=( vcore(3)-vcore(1) )*( vcore(6)-vcore(2) ) ...
60 -( vcore(2)-vcore(4) )*( vcore(1)-vcore(5) );
61 % inversa da matriz jacobiana
62 vji(2,2)= ( vcore(3)-vcore(1) )/detj ;
63 vji(2,1)= ( vcore(1)-vcore(5) )/detj ;
64 vji(1,2)= ( vcore(2)-vcore(4) )/detj ;
65 vji(1,1)= ( vcore(6)-vcore(2) )/detj ;
11.9 Exemplo de placa com elemento DKT 205

66 % inicializao K, M
67 vke=zeros(9);
68 vm=zeros(9);
69 %
70 for ig=1:3 % ponto de gauss
71
72 [vb]=bdkt(vl,vcos,vji,vpg(1,ig),vpg(2,ig));
73 %
74 K(indiceB,indiceB)=K(indiceB,indiceB)+vb’*vh*detj*vwg(ig)*vb;
75 end % ponto de gauss
76 f(indice*3-2)=f(indice*3-2)+P*detj/6;
77 [vm]=bdkm(rho,thickness,detj) ;
78 M(indiceB,indiceB)=M(indiceB,indiceB)+vm;
79
80 end
81
82 %noCentral=find(node(:,1)==L/2 & node(:,2)==L/2);
83 %f(noCentral*3-2)=-1.0;
84 % BC
85
86 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
87 |xx==max(node(:,1))|yy==min(node(:,2)));
88
89 %next two lines: simply supported case
90 fixedNodeTX =find(yy==max(node(:,2))|yy==min(node(:,2)));
91 fixedNodeTY =find(xx==max(node(:,1))| xx==min(node(:,1)));
92
93 %next two lines: clamped case
94 %fixedNodeTX =fixedNodeW;
95 %fixedNodeTY =fixedNodeTX;
96
97
98 dofs=[fixedNodeW*3-2;fixedNodeTX*3-1;fixedNodeTY*3];
99 activeDof=setdiff([1:3*numnode]’,[dofs]);
100
101 U=K(activeDof,activeDof)\f(activeDof);
102 U1=zeros(3*numnode,1);
103 U1(activeDof)=U;
104
105 figure
106 plot3(xx,yy,U1(1:3:3*numnode),’.’)
107 format long
108 D1=E0*thickness^3/12/(1-nu0^2);
109 %min(U1(1:3:3*numnode))*D1/L^2
110 min(U1(1:3:3*numnode))*D1/L^4
111 %
112 G=E0/2.6;
113 % V : mode shape
114 % D : frequency
206 11 Elementos finitos de placa de Mindlin

115 [V,D] = eigs(K(activeDof,activeDof),M(activeDof,activeDof),24,0);


116 D = diag(sqrt(D)*L*sqrt(rho/G));
117 [D,ii] = sort(D);
118 D(1:10)

Note-se que este código já contém a parte de cálculo de vibrações livres
que será detalhada em capı́tulo próprio mais adiante.
Para a placa referida, obtém-se os seguintes resultados normalizados para
a flecha máxima (nó central), conforme ilustrado na tabela 11.4. Note-se que
sendo um elemento de três nós tem comparativamente menos graus de liber-
dade que o elemento de 4 nós, pelo que necessita de menos graus de liberdade
para chegar a aproximadamente a mesma qualidade de solução.

a/h Malha SSSS CCCC

10000 4×4 0.003875 0.001386


10 × 10 0.004035 0.001289
20 × 20 0.004056 0.001271
30 × 30 0.004060 0.001268
Solução exacta 0.004060 0.001260
Tabela 11.4. Flecha normalizada para placa quadrada, sujeita a carga uniforme.
Simplesmente apoiada (SSSS) e encastrada (CCCC)

A seguir listam-se as rotinas auxiliares para este elemento.


1 function [vcos,vl]=t3cos(vcore)
2 % calcula os cossenos directores dos tres lados
3 % 12 23 e 31
4 % c vcore(6) coordenadas x1 y1 x2 y2 x3 y3
5 % c vcos(2,3) cos 1-2 sin 1-2;
6 % c vl(3) comprimento de cada lado
7 ki=[1, 2, 3, 4, 5,6,1,2];
8 ii=1 ;
9 for i=1:3
10 cx=vcore( ki(ii+2) )-vcore( ki(ii) ) ;
11 cy=vcore( ki(ii+3) )-vcore( ki(ii+1) );
12 ii=ii+2 ;
13 cl=sqrt(cx*cx+cy*cy) ;
14 vl(i)=cl ;
15 vcos(1,i)=cx/cl ;
16 vcos(2,i)=cy/cl;
17 end
18

1 function [vb]=bdkt(vl,vcos,vji,cx,cy)
2 % matriz [B] para elemento DKT
11.9 Exemplo de placa com elemento DKT 207

3 ki=[3,1,2];
4 vn1=[-1 1 0;-1 0 1];
5 c3=1-cx-cy ;
6 vp1(1,1)= 4*(c3-cx);
7 vp1(2,1)=-4*cx ;
8 vp1(1,2)= 4*cy ;
9 vp1(2,2)= 4*cx ;
10 vp1(1,3)=-4*cy ;
11 vp1(2,3)= 4*(c3-cy) ;
12 % c
13 % c------ vp-c(2,3): vp1*cos*1.5/l
14 % c vp-cc,ss,cs:= vp1*.75 * cc ss cs
15 % c
16 for j=1:3
17 cl=1.5/vl(j) ;
18 ac=vcos(1,j) ;
19 as=vcos(2,j) ;
20 for i=1:2
21 vpc(i,j)=cl*vp1(i,j)*ac ;
22 vps(i,j)=cl*vp1(i,j)*as ;
23 vpcc(i,j)=0.75*vp1(i,j)*ac*ac;
24 vpss(i,j)=0.75*vp1(i,j)*as*as;
25 vpcs(i,j)=0.75*vp1(i,j)*ac*as;
26 end
27 end
28 % c
29 % c------- vb(3,9): beta-x betay-y betax-y + betay-x
30 % c
31 cj11=vji(1,1) ;
32 cj12=vji(1,2) ;
33 cj21=vji(2,1) ;
34 cj22=vji(2,2) ;
35 %c------- para cada no : 3 gdl--> w, betax, betay
36 jj=1 ;
37 for j=1:3
38 jm=ki(j) ;
39 %c------- betax-x= vj(1,1)* ksi + vj(1,2)* eta
40 vb(1,jj ) = cj11 * ( vpc (1,j)-vpc (1,jm) ) + ...
41 cj12 * ( vpc (2,j)-vpc (2,jm) ) ;
42 vb(1,jj+1) = -cj11 * (-vn1(1,j)+vpcc(1,j)+vpcc(1,jm) ) ...
43 - cj12 * (-vn1(2,j)+vpcc(2,j)+vpcc(2,jm) ) ;
44 vb(1,jj+2) = -cj11 * ( vpcs(1,j)+vpcs(1,jm) )...
45 - cj12 * ( vpcs(2,j)+vpcs(2,jm) ) ;
46 %c------- betay-y= vj(2,1)* ksi + vj(2,2)* eta
47 vb(2,jj ) = cj21 * ( vps (1,j)-vps (1,jm) ) + ...
48 cj22 * ( vps (2,j)-vps (2,jm) ) ;
49 vb(2,jj+1) = -cj21 * (vpcs(1,j)+vpcs(1,jm) ) ...
50 - cj22 * (vpcs(2,j)+vpcs(2,jm) ) ;
51 vb(2,jj+2) = -cj21 * (-vn1(1,j)+ vpss(1,j)+vpss(1,jm) )...
208 11 Elementos finitos de placa de Mindlin

52 - cj22 * (-vn1(2,j)+ vpss(2,j)+vpss(2,jm) );


53 %c------- betax-y+betay-x
54 vb(3,jj ) = cj21 * ( vpc (1,j)-vpc (1,jm) ) + ...
55 cj22 * ( vpc (2,j)-vpc (2,jm) ) + ...
56 cj11 * ( vps (1,j)-vps (1,jm) ) + ...
57 cj12 * ( vps (2,j)-vps (2,jm) ) ;
58
59 vb(3,jj+1) = -cj21 * (-vn1(1,j)+vpcc(1,j)+vpcc(1,jm) ) - ...
60 cj22 * (-vn1(2,j)+vpcc(2,j)+vpcc(2,jm) ) - ...
61 cj11 * ( vpcs(1,j)+vpcs(1,jm) ) - ...
62 cj12 * ( vpcs(2,j)+vpcs(2,jm) ) ;
63
64 vb(3,jj+2) = -cj21 * ( vpcs(1,j)+vpcs(1,jm) ) - ...
65 cj22 * ( vpcs(2,j)+vpcs(2,jm) ) - ...
66 cj11 * (-vn1(1,j)+vpss(1,j)+vpss(1,jm) ) - ...
67 cj12 * (-vn1(2,j)+vpss(2,j)+vpss(2,jm) ) ;
68 %c
69 jj=jj+3 ;
70 end
71

1 function [vm]=bdkm(rho,espessura,detj)
2
3 % % massa ..................................
4 c=espessura*detj*rho/(24.d0) ;
5 % deslocamento transverso ..................................
6 ii=1 ;
7 for i=1:3
8 jj=1 ;
9 for j=1:3
10 vm(ii,jj)=c;
11 jj=jj+3 ;
12 end
13 vm(ii,ii)=c+c;
14 ii=ii+3 ;
15 end
16 % rotacoes ..................................
17 ch=espessura*espessura/12;
18 ii=1 ;
19 for i=1:3
20 jj=1 ;
21 for j=1:3
22 c=vm(ii,jj)*ch ;
23 vm(ii+1,jj+1)=c ;
24 vm(ii+2,jj+2)=c ;
25 jj=jj+3 ;
26 end
27 ii=ii+3 ;
28 end
11.9 Exemplo de placa com elemento DKT 209

29
12
Teorias de placa de ordem superior

12.1 Introdução
No capı́tulo anterior apresentou-se a chamada teoria de placa espessa de
Mindlin-Reissner, ou teoria de deformação de corte de primeira ordem, que
necessita de factor de correcção de corte, para modificar a matriz constitutiva
ao corte, na forma
 
10
Dc = kG (12.1)
01
onde k representa o factor de correcção de corte transverso, tipicamente
5/6 para materiais isotrópicos.
Este factor de correcção de corte pode ser calculado de várias formas,
nenhuma dela totalmente satisfatória sob o ponto de vista da mecânica dos
meios contı́nuos.
Uma alternativa eficiente para evitar os factores de correcção de corte é
o de exprimir o campo de deslocamentos como função de z e z 3 , traduzindo-
se o empenamento da normal ao plano médio duma função mais realista.
Com esta abordagem consegue-se ainda tensões de corte parabólicas través
da espessura. A teoria que apresentamos adiante baseia-se na teoria de Kant
e colegas e representa uma boa alternativa à teoria de Mindlin-Reissner de
primeira ordem, à custa de dois graus de liberdade por nó.

12.1.1 Campo de deslocamentos

Considere-se a teoria de placa de terceira ordem de Kant e colegas, explicada


nos artigos [132] e [129], da qual se retira uma alternativa possı́vel, onde
o deslocamento transversal w é constante através da espssura da placa, na
forma
212 12 Teorias de placa de ordem superior

u(x, y, z) = u0 (x, y) + zθx (x, y) + z 3 θx∗ (x, y)


v(x, y, z) = v0 (x, y) + zθy (x, y) + z 3 θy∗ (x, y)
w(x, y, z) = w0 (x, y) (12.2)

onde θx , θy são as rotações de primeira ordem e θx∗ , θy∗ as rotações de ordem


superior, neste caso de terceira ordem. os deslocamentos do plano médio são
u0 , v0 , w0 , segundo os três eixos coordenados.

12.1.2 Campo de deformações

Podemos encontrar as deformações pelas relações deformação-deslocamento,


na forma
 
 ∂u 
 
∂x

 


 


 

∂v

 


 

 
  

 ∂y 

xx
  
 

   
 yy   ∂u ∂v 
 
    

γxy = + (12.3)
 ∂y ∂x 
γ
    
xz

   

    
γyz
 
∂u ∂w

 

 

 + 




 ∂z ∂x 




 

∂v ∂w

 


+
 

 
∂z ∂y
ou por
 f   f∗ 
xx   
 xx 
   m 
  

 xx   xx 
 
   

   
m f 3 f∗
 = yy = yy + z yy + z yy (12.4)
   m
γxy γxy

 
 
 


   
 f  
 f ∗
γxy γxy
 
   
(0) (2)
   γxz  γxz 

γxz
 
γ= = + 3z 2 (12.5)
γyz γ (0) 
  γ (2) 
 
yz yz

onde as componentes de deformação são descritas por


12.2 Matriz de rigidez 213

∂θx∗
     
 ∂u0   ∂θx   
 m     
∂x

∂x ∂x f∗
   f
      
  

 
 
 
 
 


 xx  
 
 
 xx  
 
 
 xx  
 

           

∂θ
           
   ∂v 0
    ∂θ y
 
f∗
 
y

myy = ;  f
yy = ;  yy =

   ∂y     ∂y     ∂y 
 
    
 
 
 
 
 
 
 
 

 m     f
    f∗
  
γxy γ γ ∗
         
 ∂u0 ∂v ∂θ ∂θ ∗ ∂θ
∂θ
     
0
 xy  x y
 xy  y


+
 
+
  x

  
  
 + 

∂y ∂x ∂y ∂x ∂y ∂x
(12.6)
  ∂w0
 
  
(0)
γxz   + θ x

 γ (2)
∂x xz
      ∗
θ
   
γ0 = = ; γ2 = = x∗ (12.7)
 (0)     ∂w0   (2)   θy
 γyz 
 + θy 

  γyz
∂y
Tendo em conta a abordagem de placa, ou seja, desprezando a tensão
normal transversa, σz , podem definir-se as relações tensão-deformação
E E
 
2
ν 0
    1−ν 1 − ν2   
 σx     x 
σ = σy =
 E E  y

= D (12.8)
 ν 0
τxy  1 − ν2 1 − ν2  γxy
  
 
0 0 G
    
τxz G 0 γxz
τ = = = Dc γ (12.9)
τyz 0 G γyz
Note-se que nesta teoria não são necessários os factores de correcção de
corte.

12.2 Matriz de rigidez


Tomando a matriz de rigidez, a partir da energia de deformação, podemos
escrever
Z
1
U= T σ + γ T τ dV (12.10)
2 V
ou

Z
1 T 
 + zf + z 3 f ∗ D m + zf + z 3 f ∗ +
 m 
U=
2 V
h iT h i
γ (0) + 3z 2 γ (2) Dc γ (0) + 3z 2 γ (2) dV (12.11)
214 12 Teorias de placa de ordem superior

Substituindo as deformações e as tensões nesta expressão da energia, ob-


temos então a matriz de rigidez do elemento, na forma

(e) (e) (e) (e) (e)


K(e) = K(e) (e)
mm + Kf f + Kf ∗f ∗ + Kcc + Kc2c2 + Kcc2 + Kc2c (12.12)

(e) (e)
onde Kmm representa a matriz de rigidez de membrana, Kf f representa a
(e)
matriz de rigidez de flexão com termos de primeira ordem, Kf ∗f ∗ representa a
matriz de rigidez de flexão com termos de ordem superior (de terceira ordem),
(e) (e)
Kcc representa a matriz de rigidez de corte, Kc2c2 representa a matriz de
rigidez de corte com termos de ordem superior. As componentes da matriz de
(e) (e)
rigidez Kcc2 e Kc2c representam termos de acoplamento de corte. De seguida
apresentam-se todas essas componentes da matriz de rigidez.

Z Z h/2 Z Z h/2 Z
K(e)
mm = Tm σdzdA = Tm Dm dzdA = h Tm Dm dA
A −h/2 A −h/2 A
(12.13)

h/2 h/2
h3
Z Z Z Z Z
(e)
Kf f = zTf σdzdA = z 2 Tf Df dzdA = Tf Df dA
A −h/2 A −h/2 12 A
(12.14)

h/2 h/2
h7
Z Z Z Z Z
(e)
Kf ∗f ∗ = z 3 Tf∗ σdzdA = z 6 Tf∗ Df ∗ dzdA = Tf∗ Df ∗ dA
A −h/2 A −h/2 448 A
(12.15)
Z Z h/2 Z
K(e)
cc = γ T0 Dc γ 0 dzdA =h γ T0 Dc γ 0 dA (12.16)
A −h/2 A

h/2
h5
Z Z Z
(e)
Kc2c2 = 3z 2 γ T2 Dc 3z 2 γ 2 dzdA = 9 γ T2 Dc γ 2 dA (12.17)
A −h/2 80 A

h/2
h3
Z Z Z
(e)
Kcc2 = γ T0 Dc 3z 2 γ 2 dzdA = 3 γ T0 Dc γ 2 dA (12.18)
A −h/2 12 A

h/2
h3
Z Z Z
(e) 2
Kc2c = 3z γ T2 Dc γ 0 dzdA =3 γ T2 Dc γ 0 dA (12.19)
A −h/2 12 A
12.3 Matrizes de deformação-deslocamento B 215

12.3 Matrizes de deformação-deslocamento B


Em função das componentes da matriz de rigidez, é possı́vel construir as
matrizes de deformação-deslocamento B, nas componentes de membrana
 
∂N
 ∂x 0 0 0 0 0 0
 
 
 0 ∂N 0 0 0 0 0
 
(e)
Bm =  (12.20)
∂y

 
 
 
 ∂N ∂N 
00000
∂y ∂x
de flexão de primeira ordem
 
∂N
0 0 0 ∂x
0 0 
 
 
(e)
 ∂N 
Bf = 0 0 0 0 0 0 (12.21)

∂y

 
 
 
 ∂N ∂N 
000 00
∂y ∂x
de flexão de terceira ordem
 
∂N
0 0 0 0 0 ∂x 
 
 
(e)
 ∂N 
Bf ∗ = 0 0 0 0 0 0 (12.22)
 
∂y 


 
 
 ∂N ∂N 
00000
∂y ∂x
de corte
∂N
 
0 0 N 0 0 0
(e)
 ∂x 
Bc0 = (12.23)
 

 ∂N 
00 0 N 00
∂y
e de corte de ordem superior
∂N
 
0 0 0 0 N 0
(e)
 ∂x 
Bc2 = (12.24)
 

 ∂N 
00 00 0 N
∂y
216 12 Teorias de placa de ordem superior

Deixa-se ao leitor a interpretação do código, sendo de notar a organização


dos graus de liberdade (para aproveitar a compactação do MATLAB), na
forma

∗ ∗ ∗ ∗
uT = [w1 · · · wN , θx1 · · · θxN , θy1 · · · θyN , θx1 · · · θxN , θy1 · · · θyN , u1 · · · uN , v1 · · · vN ]
(12.25)

12.4 Exemplo de placa quadrada


Para verificar a qualidade deste elemento de terceira ordem, na análise de
placas isotrópicas, considere-se uma placa quadrada, simplesmente apoiada
ou encastrada em todos os bordos, sujeita a uma força distribuida P , com
lado a, módulo de elasticidade E e coeficiente de Poisson ν. Considere-se a
flecha normalizada
D
w̄ = w (12.26)
P l4
sendo D a rigidez à flexão, obtida por

Eh3
D= (12.27)
12(1 − ν 2 )
sendo h a espessura da placa.
Para a placa referida, obtém-se os seguintes resultados normalizados para
a flecha máxima (nó central), conforme ilustrado na tabela 12.1.
Apresenta-se o código (placaKantQ4DOF5.m) para a solução de problemas
de placa isotrópica encastrada ou simplesmente apoiada, recorrendo à teoria
de placa de ordem superior.
1 colordef white
2 tic
3 % propriedades material
4 E0 = 10920; % mdulo Young
5 nu0 = 0.30; % coef. Poisson
6 rho=1;
7 % geometria
8 L = 1; % lado
9 thickness=0.01;
10 I=thickness^3/12;
11 %carga
12 P=-1;
13 numy = 10; % # elementos em xx
14 numx = 10; % # elementos em xx
15 % matriz elasticidade (duas partes)
16 % parte flexao
17 C_bending=E0/(1-nu0^2)*[1 nu0 0;nu0 1 0;0 0 (1-nu0)/2];
12.4 Exemplo de placa quadrada 217

a/h Malha SSSS CCCC

4 4×4 0.005454 0.002732


10 × 10 0.005382 0.002630
20 × 20 0.005376 0.002625
30 × 30 0.005374 0.002623
Solução Kant[132] 0.00523 0.002610
10 4×4 0.004207 0.001467
10 × 10 0.004263 0.001494
20 × 20 0.004270 0.001500
30 × 30 0.004271 0.001501
Solução exacta 0.004270 0.001520
100 4×4 0.003971 0.001214
10 × 10 0.004051 0.001258
20 × 20 0.004061 0.001265
30 × 30 0.004063 0.001267
Solução Kant[132] 0.00407 0.00128
10000 4×4 0.003968 0.001211
10 × 10 0.004049 0.001256
20 × 20 0.004059 0.001263
30 × 30 0.004060 0.001264
Solução exacta 0.004060 0.001260
Tabela 12.1. Flecha normalizada para placa quadrada, sujeita a carga uniforme.
Simplesmente apoiada (SSSS) e encastrada (CCCC)

18 % parte corte
19 C_shear=E0/2/(1+nu0)*eye(2);
20 %malha
21 [node, element] = MalhaRectangular(L, L, numx, numy);
22 %
23 xx=node(:,1); yy=node(:,2);
24
25 numnode=size(node,1); % numero nos
26 numelem=size(element,1); % numero elementos
27
28 % inicializacao
29 K=zeros(7*numnode,7*numnode); % matriz de rigidez
30 M=zeros(7*numnode,7*numnode); % matriz de massa
31 f=zeros(7*numnode,1); % vector de carga
32 U=zeros(7*numnode,1); % vector de deslocamentos
33
34 % calculo de MATRIZ DE RIGIDEZ
35
36 % quadratura de 2 pontos
37 Q=[ -0.577350269189626 -0.577350269189626;
38 0.577350269189626 -0.577350269189626;
218 12 Teorias de placa de ordem superior

39 0.577350269189626 0.577350269189626;
40 -0.577350269189626 0.577350269189626];
41 W=[ 1;1;1;1];
42 % rigidez de flexao
43 for e=1:numelem
44
45 indice=element(e,:);
46 indiceB=[ indice indice+numnode indice+2*numnode indice+3*numnode...
47 indice+4*numnode indice+5*numnode indice+6*numnode];
48 nn=length(indice);
49 for q=1:size(W,1) % CICLO QUADRATURA
50 pt=Q(q,:); % PONTO
51 wt=W(q); % PESO
52 xi=pt(1);
53 eta=pt(2);
54 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
55 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
56 (1+xi)*(1+eta);(1-xi)*(1+eta)];
57 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
58 1+eta, 1+xi;-(1+eta), 1-xi];
59
60 J0=node(indice,:)’*dNdxi; % MATRIZ JACOBIANA
61 invJ0=inv(J0);
62 dNdx=dNdxi*invJ0;
63
64 % MATRIZ B
65 % FLEXAO 0
66 B_b=zeros(3,7*nn);
67 B_b(1,nn+1:2*nn) = dNdx(:,1)’;
68 B_b(2,2*nn+1:3*nn) = dNdx(:,2)’;
69 B_b(3,nn+1:2*nn) = dNdx(:,2)’;
70 B_b(3,2*nn+1:3*nn) = dNdx(:,1)’;
71
72 B_b1=zeros(3,7*nn);
73 B_b1(1,3*nn+1:4*nn) = dNdx(:,1)’;
74 B_b1(2,4*nn+1:5*nn) = dNdx(:,2)’;
75 B_b1(3,3*nn+1:4*nn) = dNdx(:,2)’;
76 B_b1(3,4*nn+1:5*nn) = dNdx(:,1)’;
77
78 B_m=zeros(3,7*nn);
79 B_m(1,5*nn+1:6*nn) = dNdx(:,1)’;
80 B_m(2,6*nn+1:7*nn) = dNdx(:,2)’;
81 B_m(3,5*nn+1:6*nn) = dNdx(:,2)’;
82 B_m(3,6*nn+1:7*nn) = dNdx(:,1)’;
83
84
85 % RIGIDEZ E MASSA NO PONTO DE QUADRATURA
86 K(indiceB,indiceB)=K(indiceB,indiceB)+...
87 B_b’*I*C_bending*B_b*W(q)*det(J0);
12.4 Exemplo de placa quadrada 219

88
89 K(indiceB,indiceB)=K(indiceB,indiceB)+...
90 B_b’*thickness^5/80*C_bending*B_b1*W(q)*det(J0);
91
92 K(indiceB,indiceB)=K(indiceB,indiceB)+...
93 B_b1’*thickness^5/80*C_bending*B_b*W(q)*det(J0);
94
95
96 K(indiceB,indiceB)=K(indiceB,indiceB)+...
97 B_b1’*thickness^7/448*C_bending*B_b1*W(q)*det(J0);
98 K(indiceB,indiceB)=K(indiceB,indiceB)+...
99 B_m’*thickness*C_bending*B_m*W(q)*det(J0);
100
101
102 % VECTOR DE CARGA NO PONTO DE QUADRATURA
103 f(indice)=f(indice)+N*P*det(J0)*wt;
104 end
105 end
106
107 % MATRIZ DE RIGIDEZ (CORTE)
108 % quadratura de 1 ponto
109 Q=[0 0];
110 W=[4];
111
112 for e=1:numelem
113 indice=element(e,:);
114 indiceB=[ indice indice+numnode indice+2*numnode indice+3*numnode...
115 indice+4*numnode indice+5*numnode indice+6*numnode];
116 nn=length(indice);
117 for q=1:size(W,1)
118 pt=Q(q,:);
119 wt=W(q);
120 xi=pt(1);
121 eta=pt(2);
122 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
123 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
124 (1+xi)*(1+eta);(1-xi)*(1+eta)];
125 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
126 1+eta, 1+xi;-(1+eta), 1-xi];
127 J0=node(indice,:)’*dNdxi;
128 invJ0=inv(J0);
129 dNdx=dNdxi*invJ0;
130
131 % CORTE
132 B_s=zeros(2,7*nn);
133 B_s(1,1:nn) = dNdx(:,1)’;
134 B_s(2,1:nn) = dNdx(:,2)’;
135 B_s(1,nn+1:2*nn) = N;
136 B_s(2,2*nn+1:3*nn)= N;
220 12 Teorias de placa de ordem superior

137
138 B_s1=zeros(2,7*nn);
139 B_s1(1,3*nn+1:4*nn) = N;
140 B_s1(2,4*nn+1:5*nn) = N;
141 %
142 K(indiceB,indiceB)=K(indiceB,indiceB)+...
143 B_s’*thickness*C_shear*B_s*W(q)*det(J0);
144
145 K(indiceB,indiceB)=K(indiceB,indiceB)+...
146 B_s’*3*I*C_shear*B_s1*W(q)*det(J0);
147
148 K(indiceB,indiceB)=K(indiceB,indiceB)+...
149 B_s1’*3*I*C_shear*B_s*W(q)*det(J0);
150
151 K(indiceB,indiceB)=K(indiceB,indiceB)+...
152 B_s1’*9*thickness^5/80*C_shear*B_s1*W(q)*det(J0);
153 end
154 end
155
156 % BC
157 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
158 |xx==max(node(:,1))|yy==min(node(:,2)));
159 %next two lines: simply supported case
160 % fixedNodeTX =find(yy==max(node(:,2))|yy==min(node(:,2)));
161 % fixedNodeTY =find(xx==max(node(:,1))| xx==min(node(:,1)));
162 % fixedNodeTX1 =find(yy==max(node(:,2))|yy==min(node(:,2)));
163 % fixedNodeTY1 =find(xx==max(node(:,1))| xx==min(node(:,1)));
164 % fixedNodeU =find(xx==min(node(:,1)));
165 % fixedNodeV =find(yy==min(node(:,2)));
166
167 %next two lines: clamped case
168 fixedNodeTX =fixedNodeW;
169 fixedNodeTY =fixedNodeTX;
170 fixedNodeTX1 =fixedNodeTX;
171 fixedNodeTY1 =fixedNodeTX;
172 fixedNodeU =fixedNodeTX;
173 fixedNodeV =fixedNodeTX;
174
175 % condicoes fronteira
176 dofs=[fixedNodeW;fixedNodeTX+numnode;fixedNodeTY+2*numnode;...
177 fixedNodeTX1+3*numnode;fixedNodeTY1+4*numnode;...
178 fixedNodeU+5*numnode;fixedNodeV+6*numnode];
179
180 activeDof=setdiff([1:7*numnode]’,[dofs]);
181 U=K([activeDof],[activeDof])\f([activeDof]);
182 U1=zeros(7*numnode,1);
183 U1(activeDof)=U;
184 U=U1;
185
12.4 Exemplo de placa quadrada 221

186 ws=1:numnode;
187 D1=E0*thickness^3/12/(1-nu0^2);
188 format long
189 min(U1(ws))*D1/L^4% normalizacao para solucao de placa fina
190 figure (1)
191 plot3(xx,yy,U(ws),’.’)
192
13
Uma teoria layerwise

13.1 Introdução
As teorias de placa de Mindlin e Kant aqui apresentadas recorrem a um campo
de rotações da normal idêntico através da direcção da espessura. Segundo uma
normal ao plano médio, qualquer que seja a posição na direcção da espessua,
esse ponto material possui as mesmas rotações que outro ponto nessa direcção.
Imagine-se agora uma estrutura laminada tipo sandwich onde através da es-
pessura, as propriedades mecânicas podem variar de forma significativa. Com
base nesta suposição, apareceram as chamadas teorias layerwise, que atribuem
rotações independentes a camadas matemáticas representativas de materiais.
A teoria que se apresenta aqui [124] considera o seguinte campo de deslo-
camentos para a segunda camada (núcleo da estrutura sandwich), conforme
ilustrado na figura 13.1.

u(2) (x, y, z) =u0 (x, y) + z (2) θx(2) (13.1)


(2)
v (x, y, z) =v0 (x, y) + z (2) θy(2) (13.2)
w(2) (x, y, z) =w0 (x, y) (13.3)

onde u0 e v0 são os deslocamentos do plano médio (aqui considerado como


o plano médio do núcleo), em qualquer ponto (x, y, 0) , w representa a flecha
(2) (2)
ou deslocamento transverso, sendo ainda θx e θy as rotações das normais
do plano médio segundo os eixos y e x respectivamente, para a camada 2.
Os correspondentes deslocamentos para as camadas superior (3) e inferior
(1), são, respectivamente,
224 13 Uma teoria layerwise

Figura 13.1. Placa layerwise, graus de liberdade

h2 (2) h3 (3)
u(3) (x, y, z) =u0 (x, y) + θ + θx + z (3) θx(3) (13.4)
2 x 2
h 2 h 3
v (3) (x, y, z) =v0 (x, y) + θy(2) + θy(3) + z (3) θy(3) (13.5)
2 2
w(3) (x, y, z) =w0 (x, y) (13.6)

h2 (2) h1 (1)
u(1) (x, y, z) =u0 (x, y) − θ − θx + z (1) θx(1) (13.7)
2 x 2
h 2 h 1
v (1) (x, y, z) =v0 (x, y) − θy(2) − θy(1) + z (1) θy(1) (13.8)
2 2
w(1) (x, y, z) =w0 (x, y) (13.9)

onde hk representa a espessura da camada k e onde z (k) ∈ [−hk /2, hk /2]


representam as coordenadas em z.
As deformações para cada camada k são dadas por
13.1 Introdução 225

∂u(k)
 

 

∂x

 

 (k)  
 

xx 

 

  
∂v (k)

 
 
 


 
 
 

   
 (k)   ∂y 
 yy 

  
 

  
 


 
 
 

∂u(k) ∂v (k)
   
(k)
γxy = + (13.10)





  ∂y
 ∂x 

    

 (k)   
 γxz 
   

  
  ∂u(k)
 ∂w(k)



 ∂z + ∂x

 
  

  
 



 (k)   
γyz 





 ∂v (k) ∂w(k)

 


+

 

∂z ∂y
As deformações de membrana são definidas por
       
(k) m(k) f (k) mf (k)
 xx 

  
 
 xx  



 xx  



 xx 



 
 
 
 
 
 
 

       
(k) m(k) (k) f (k) mf (k)
yy = yy + z yy + yy (13.11)

 
 
 
 
 
 
 


 
 
 
 
 
 
 

 (k)   m(k) 
     f (k)   mf (k) 
  
γxy γxy γxy γxy

sendo as deformações de corte dadas por


  ∂w0
 
 (k) 
 (k)
 γxz   

 ∂x + θ x 


= (13.12)
 γ (k)   ∂w0 + θ(k) 
    
yz 
 y 
∂y
As componentes de membrana são dadas por
 
    ∂u0 

m(k)
∂x
 


 xx  










 
   


m(k)
  ∂v0 
yy = (13.13)

 
 
 ∂y 


 
 
 

 m(k)  
   
γxy ∂u0 ∂v0
 

+

 

 
∂y ∂x

As componentes são expressas por


226 13 Uma teoria layerwise
 (k) 

 ∂θx 

   
 f (k)
 xx  



 ∂x 




 
 
 

   (k) 
∂θy
   
f (k)
yy = (13.14)








 ∂y 


   
 f (k)  
   
γxy

 (k) (k) 
 ∂θx + ∂θy

 

 

∂y ∂x

sendo ainda as componentes de acoplamento membrana-flexão para as ca-


madas 2,3 e 1, respectivamente dadas por
   
mf (2)


 xx 

 
 0

 
  
   
mf (2)
yy = 0 (13.15)

 
 
 


 
  

 mf (2) 
  0
γxy

(2) (3)
 
 h2 ∂θx h3 ∂θx 

 + 

2 ∂x 2 ∂x
   
mf (3)  
 xx
  
 

 
 
 

(2) (3)
   
h2 ∂θy h3 ∂θy

 
 
 

mf (3) +
yy = (13.16)

 
 
 2 ∂y 2 ∂y 


 
 
 
 mf (3)  
  ! !

γxy (2) (2) (3) (3)
 
h2 ∂θx ∂θy h3 ∂θx ∂θy

 


+ + +
 


 2 
∂y ∂x 2 ∂y ∂x 

(2) (1)
 
 h2 ∂θx h1 ∂θx 

 − − 

2 ∂x 2 ∂x
   
mf (1)  


 xx 










(2) (1)
   
h2 ∂θy h1 ∂θy

 
 
 

mf (1) − −
yy = (13.17)

 
 
 2 ∂y 2 ∂y 


 
 
 
 mf (1)  
  ! !

γxy (2) (2) (1) (1)
 
h2 ∂θx ∂θy h1 ∂θx ∂θy

 

− 2 −

+ +
 

 
∂y ∂x 2 ∂y ∂x 

(k)
Desprezando a tensão normal transversa σz para cada camada ortotrópica,
as relações tensão-deformação no sistema coordenado local (material) podem
ser expressas por
13.2 Laminado sandwich com 3 camadas 227

 (k)  (k)  (k) 


 σ1 ε1

 
 Q11 Q12 0 0 0 
 

 (k)   (k) 
 σ2  Q12 Q22 0 0 0 ε2

 
    

   
(k) (k)

τ12  0
= 0 Q33 0 0 γ12 (13.18)

 
 (k)   0 0 0 Q44 0 (k) 
τ23 γ23

 
    

   
0 0 0 0 Q55

 (k)   
  (k) 
τ31 γ31
onde os indices 1 e 2 representam as direcções das fibras materiais e trans-
versais às fibras, sendo ainda a direcção 3 a direcção normal ao plano. As
(k)
componentes de rigidez reduzida, Qij , são então obtidas por
(k) (k)
(k) E1 (k) E2 (k) (k) (k)
Q11 = (k) (k)
Q22 = (k) (k)
Q12 = ν21 Q11
1 − ν12 ν21 1 − ν12 ν21
(k) (k) (k) (k) (k) (k)
Q33 = G12 Q44 = G23 Q55 = G31

(k)
(k) (k) E2
ν21 = ν12 (k)
E1

(k) (k) (k) (k) (k) (k)


onde E1 , E2 , ν12 , G12 , G23 e G31 são as propriedades materiais da
camada k.
Por transformação de coordenadas as relações tensão-deformação no sis-
tema global podem ser obtidas por
 (k)   (k) (k) (k) 
(k) 
Q11 Q12 Q16 0 0
 σxx
 
  (k) (k) (k)

 εxx 

 (k)   (k) 
 σyy

 

  Q12 Q22 Q26 0 0  εyy 

(k)
 (k) (k) (k)  (k)

τxy =
 Q16 Q26 Q66 0 0 
 γxy (13.19)
 (k)  (k) (k) (k) 
τyz γyz
    



 (k)


  0 0 0 Q44 Q45 




 (k) (k)
 (k) 
τzx 0 0 0 Q45 Q55 γzx

Considerando α como o ângulo entre o eixo x e o eixo 1, sendo o eixo 1


(k)
o eixo material principal, podendo as componentes Qij ser calculadas por
transformação de coordenadas [130].

13.2 Laminado sandwich com 3 camadas


Considera-se um laminado sandwich com três camadas, simplesmente apoiado
em todos os bordos, sob carga uniforme transversal. Este exemplo, formulado
por Srinivas [131], considera as seguintes propriedades materiais para o núcleo
228 13 Uma teoria layerwise
 
0.999781 0.231192 0 0 0
 0.231192 0.524886 0 0 0 
 
Qcore =
 0 0 0.262931 0 0 

 0 0 0 0.266810 0 
0 0 0 0 0.159914
As propriedades materiais das peles são obtidas das do núcleo multiplicando-
as por um factor R:

Qskin = RQcore
Neste exemplo, normalizam-se os resultados na forma

0.999781
w = w(a/2, a/2, 0)
hq
(1) (1) (2)
σx (a/2, a/2, −h/2) 2 σx (a/2, a/2, −2h/5) σx (a/2, a/2, −2h/5)
σ 1x = ; σx = ; σ 3x =
q q q
(1) (1) (2)
σy (a/2, a/2, −h/2) 2 σy (a/2, a/2, −2h/5) σy (a/2, a/2, −2h/5)
σ 1y = σy = ; σ 3y =
q q q
(2) (2)
τxz (0, a/2, 0) 2 τxz (0, a/2, −2h/5)
τ 1xz = ; τ xz =
q q
Para diferentes valores de R, apresentam-se nas tabelas seguintes os re-
sultados na forma de deslocamentos transversais, tensões normais e tensões
de corte transverso. Comparam-se os resultados com os obtidos por soluções
anaaliticas de terceira ordem de Pandya [129], uma formulação de elementos
finitos de casca de primeira ordem de [126] e com uma formulação sem malha
de Ferreira e colegas [103]. A qualidade da formulação presente é evidente.

Método w σ 1x σ 2x σ 3x τ 1xz τ 2xz


HSDT [129] 256.13 62.38 46.91 9.382 3.089 2.566
FSDT [129] 236.10 61.87 49.50 9.899 3.313 2.444
CLT 216.94 61.141 48.623 9.783 4.5899 3.386
Ferreira [126] 258.74 59.21 45.61 9.122 3.593 3.593
Ferreira (N=15) [103] 257.38 58.725 46.980 9.396 3.848 2.839
exacto [131] 258.97 60.353 46.623 9.340 4.3641 3.2675
HSDT [127] (N=11) 253.6710 59.6447 46.4292 9.2858 3.8449 1.9650
HSDT [127] (N=15) 256.2387 60.1834 46.8581 9.3716 4.2768 2.2227
HSDT [127] (N=21) 257.1100 60.3660 47.0028 9.4006 4.5481 2.3910
presente (4 × 4 elementos Q4) 259.5352 55.9230 42.7778 8.5556 2.9135 1.2510
presente (10 × 10 elementos Q4) 258.8336 59.5704 45.9692 9.1938 3.6289 1.5831
presente (20 × 20 elementos Q4) 258.8342 60.0881 46.3718 9.2744 3.8804 1.7314
Tabela 13.1. Placa quadrada sandwich sob pressão uniforme- R = 5
13.2 Laminado sandwich com 3 camadas 229

Método w σ 1x σ 2x σ 3x τ 1xz τ 2xz


HSDT [129] 152.33 64.65 51.31 5.131 3.147 2.587
FSDT [129] 131.095 67.80 54.24 4.424 3.152 2.676
CLT 118.87 65.332 48.857 5.356 4.3666 3.7075
Ferreira [126] 159.402 64.16 47.72 4.772 3.518 3.518
Ferreira (N=15) [103] 158.55 62.723 50.16 5.01 3.596 3.053
exacto [131] 159.38 65.332 48.857 4.903 4.0959 3.5154
HSDT [127] (N=11) 153.0084 64.7415 49.4716 4.9472 2.7780 1.8207
HSDT[127] (N=15) 154.2490 65.2223 49.8488 4.9849 3.1925 2.1360
HSDT[127] (N=21) 154.6581 65.3809 49.9729 4.9973 3.5280 2.3984
presente (4 × 4 elementos Q4) 162.0181 60.5430 44.4486 4.4449 2.8323 1.3629
presente (10 × 10 elementos Q4) 159.6822 64.4631 48.1314 4.8131 3.5483 1.7470
presente (20 × 20 elementos Q4) 159.4757 65.0473 48.5758 4.8576 3.7918 1.9279
Tabela 13.2. Placa quadrada sandwich sob pressão uniforme- R = 10

Método w σ 1x σ 2x σ 3x τ 1xz τ 2xz


HSDT [129] 110.43 66.62 51.97 3.465 3.035 2.691
FSDT [129] 90.85 70.04 56.03 3.753 3.091 2.764
CLT 81.768 69.135 55.308 3.687 4.2825 3.8287
Ferreira [126] 121.821 65.650 47.09 3.140 3.466 3.466
Ferreira (N=15) [103] 121.184 63.214 50.571 3.371 3.466 3.099
exact [131] 121.72 66.787 48.299 3.238 3.9638 3.5768
Third-order [127] (N=11) 113.5941 66.3646 49.8957 3.3264 2.1686 1.5578
Third-order [127] (N=15) 114.3874 66.7830 50.2175 3.3478 2.6115 1.9271
Third-order [127] (N=21) 114.6442 66.9196 50.3230 3.3549 3.0213 2.2750
presente (4 × 4 elementos Q4) 125.0593 61.9463 43.5915 2.9061 2.7739 1.4016
presente (10 × 10 elementos Q4) 122.1499 65.8759 47.5395 3.1693 3.4912 1.8158
presente (20 × 20 elementos Q4) 121.8709 66.4903 48.0001 3.2000 3.7297 2.0192

Tabela 13.3. Placa quadrada sandwich sob pressão uniforme - R = 15

Apresenta-se o código (vibracoesPlacaLAYERWISEQ4.m) para a solução de


problemas de placa laminada encastrada ou simplesmente apoiada, recorrendo
à teoria de placa layerwise.
1 clear all
2 colordef white
3 tic
4 % propriedades material
5 E0 = 10920; % mdulo Young
6 nu0 = 0.30; % coef. Poisson
7 rho=1;
8 % geometria
9 L = 1; % lado
10 thickness=0.1;
11 h1=thickness/10;
12 h2=thickness/10*8;
230 13 Uma teoria layerwise

13 h3=thickness/10;
14 %
15 I=thickness^3/12;
16 %
17 %(exemplo SRINIVAS)
18 rf=15;
19 % sandwich example, srinivas
20 qbarra=zeros(5,5,3);
21
22 qbarra(1,1,2)=0.999781;
23 qbarra(1,2,2)=0.231192;
24 qbarra(2,1,2)=0.231192;
25 qbarra(2,2,2)=0.524886;
26 qbarra(3,3,2)=0.262931;
27 qbarra(5,5,2)=0.266810;
28 qbarra(4,4,2)=0.159914;
29 %
30 qbarra(:,:,1)=qbarra(:,:,2)*rf;
31 qbarra(:,:,3)=qbarra(:,:,2)*rf;
32 % %
33 %carga
34 P=-1;
35 numy = 10; % # elementos em xx
36 numx = 10; % # elementos em xx
37 % matriz elasticidade (duas partes)
38 % parte flexao
39
40 C1b=qbarra(1:3,1:3,1);
41 C2b=qbarra(1:3,1:3,2);
42 C3b=qbarra(1:3,1:3,3);
43
44 % C1b=E0/(1-nu0^2)*[1 nu0 0;nu0 1 0;0 0 (1-nu0)/2];
45 % C2b=E0/(1-nu0^2)*[1 nu0 0;nu0 1 0;0 0 (1-nu0)/2];
46 % C3b=E0/(1-nu0^2)*[1 nu0 0;nu0 1 0;0 0 (1-nu0)/2];
47 % parte corte
48
49 C1s=qbarra(4:5,4:5,1);
50 C2s=qbarra(4:5,4:5,2);
51 C3s=qbarra(4:5,4:5,3);
52
53 % C1s=E0/2/(1+nu0)*eye(2);
54 % C2s=E0/2/(1+nu0)*eye(2);
55 % C3s=E0/2/(1+nu0)*eye(2);
56
57 %malha
58 [node, element] = MalhaRectangular(L, L, numx, numy);
59 %
60 xx=node(:,1); yy=node(:,2);
61
13.2 Laminado sandwich com 3 camadas 231

62 numnode=size(node,1); % numero nos


63 numelem=size(element,1); % numero elementos
64
65 % inicializacao
66 K=zeros(7*numnode,7*numnode); % matriz de rigidez
67 M=zeros(7*numnode,7*numnode); % matriz de massa
68 f=zeros(7*numnode,1); % vector de carga
69 U=zeros(7*numnode,1); % vector de deslocamentos
70
71 % calculo de MATRIZ DE RIGIDEZ
72
73 % quadratura de 2 pontos
74 Q=[ -0.577350269189626 -0.577350269189626;
75 0.577350269189626 -0.577350269189626;
76 0.577350269189626 0.577350269189626;
77 -0.577350269189626 0.577350269189626];
78 W=[ 1;1;1;1];
79 % rigidez de flexao
80 for e=1:numelem
81
82 indice=element(e,:);
83 indiceB=[ indice indice+numnode indice+2*numnode ...
84 indice+3*numnode indice+4*numnode indice+5*numnode indice+6*numnode];
85 nn=length(indice);
86 for q=1:size(W,1) % CICLO QUADRATURA
87 pt=Q(q,:); % PONTO
88 wt=W(q); % PESO
89 xi=pt(1);
90 eta=pt(2);
91 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
92 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
93 (1+xi)*(1+eta);(1-xi)*(1+eta)];
94 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
95 1+eta, 1+xi;-(1+eta), 1-xi];
96
97 J0=node(indice,:)’*dNdxi; % MATRIZ JACOBIANA
98 invJ0=inv(J0);
99 dNdx=dNdxi*invJ0;
100
101 % MATRIZ B
102 % FLEXAO
103 B_b1=zeros(3,7*nn);
104 B_b1(1,nn+1:2*nn) = dNdx(:,1)’;
105 B_b1(2,2*nn+1:3*nn) = dNdx(:,2)’;
106 B_b1(3,nn+1:2*nn) = dNdx(:,2)’;
107 B_b1(3,2*nn+1:3*nn) = dNdx(:,1)’;
108
109 B_b2=zeros(3,7*nn);
110 B_b2(1,3*nn+1:4*nn) = dNdx(:,1)’;
232 13 Uma teoria layerwise

111 B_b2(2,4*nn+1:5*nn) = dNdx(:,2)’;


112 B_b2(3,3*nn+1:4*nn) = dNdx(:,2)’;
113 B_b2(3,4*nn+1:5*nn) = dNdx(:,1)’;
114
115 B_b3=zeros(3,7*nn);
116 B_b3(1,5*nn+1:6*nn) = dNdx(:,1)’;
117 B_b3(2,6*nn+1:7*nn) = dNdx(:,2)’;
118 B_b3(3,5*nn+1:6*nn) = dNdx(:,2)’;
119 B_b3(3,6*nn+1:7*nn) = dNdx(:,1)’;
120
121
122 % membrana - FLEXAO
123 B_mb3=zeros(3,7*nn);
124 B_mb3(1,3*nn+1:4*nn) = h2/2*dNdx(:,1)’;
125 B_mb3(2,4*nn+1:5*nn) = h2/2*dNdx(:,2)’;
126 B_mb3(3,3*nn+1:4*nn) = h2/2*dNdx(:,2)’;
127 B_mb3(3,4*nn+1:5*nn) = h2/2*dNdx(:,1)’;
128
129 B_mb3(1,5*nn+1:6*nn) = h3/2*dNdx(:,1)’;
130 B_mb3(2,6*nn+1:7*nn) = h3/2*dNdx(:,2)’;
131 B_mb3(3,5*nn+1:6*nn) = h3/2*dNdx(:,2)’;
132 B_mb3(3,6*nn+1:7*nn) = h3/2*dNdx(:,1)’;
133
134 B_mb1=zeros(3,7*nn);
135 B_mb1(1,nn+1:2*nn) = -h1/2*dNdx(:,1)’;
136 B_mb1(2,2*nn+1:3*nn) = -h1/2*dNdx(:,2)’;
137 B_mb1(3,nn+1:2*nn) = -h1/2*dNdx(:,2)’;
138 B_mb1(3,2*nn+1:3*nn) = -h1/2*dNdx(:,1)’;
139
140 B_mb1(1,3*nn+1:4*nn) = -h2/2*dNdx(:,1)’;
141 B_mb1(2,4*nn+1:5*nn) = -h2/2*dNdx(:,2)’;
142 B_mb1(3,3*nn+1:4*nn) = -h2/2*dNdx(:,2)’;
143 B_mb1(3,4*nn+1:5*nn) = -h2/2*dNdx(:,1)’;
144
145
146
147 % RIGIDEZ E MASSA NO PONTO DE QUADRATURA
148 K(indiceB,indiceB)=K(indiceB,indiceB)+...
149 B_b1’*h1^3/12*C1b*B_b1*W(q)*det(J0);
150
151 K(indiceB,indiceB)=K(indiceB,indiceB)+...
152 B_b2’*h2^3/12*C2b*B_b2*W(q)*det(J0);
153
154 K(indiceB,indiceB)=K(indiceB,indiceB)+...
155 B_b3’*h3^3/12*C3b*B_b3*W(q)*det(J0);
156
157 K(indiceB,indiceB)=K(indiceB,indiceB)+...
158 B_mb1’*h1*C1b*B_mb1*W(q)*det(J0);
159 K(indiceB,indiceB)=K(indiceB,indiceB)+...
13.2 Laminado sandwich com 3 camadas 233

160 B_mb3’*h3*C3b*B_mb3*W(q)*det(J0);
161
162 % VECTOR DE CARGA NO PONTO DE QUADRATURA
163 f(indice)=f(indice)+N*P*det(J0)*wt;
164 end
165 end
166
167 % MATRIZ DE RIGIDEZ (CORTE)
168 % quadratura de 1 ponto
169 Q=[0 0];
170 W=[4];
171
172 for e=1:numelem
173 indice=element(e,:);
174 indiceB=[ indice indice+numnode indice+2*numnode ...
175 indice+3*numnode indice+4*numnode indice+5*numnode indice+6*numnode];
176 nn=length(indice);
177 for q=1:size(W,1)
178 pt=Q(q,:);
179 wt=W(q);
180 xi=pt(1);
181 eta=pt(2);
182 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
183 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
184 (1+xi)*(1+eta);(1-xi)*(1+eta)];
185 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
186 1+eta, 1+xi;-(1+eta), 1-xi];
187 J0=node(indice,:)’*dNdxi;
188 invJ0=inv(J0);
189 dNdx=dNdxi*invJ0;
190
191 % CORTE
192 B_s1=zeros(2,7*nn);
193 B_s1(1,1:nn) = dNdx(:,1)’;
194 B_s1(2,1:nn) = dNdx(:,2)’;
195 B_s1(1,nn+1:2*nn) = N;
196 B_s1(2,2*nn+1:3*nn)= N;
197
198 B_s2=zeros(2,7*nn);
199 B_s2(1,1:nn) = dNdx(:,1)’;
200 B_s2(2,1:nn) = dNdx(:,2)’;
201 B_s2(1,3*nn+1:4*nn) = N;
202 B_s2(2,4*nn+1:5*nn)= N;
203
204 B_s3=zeros(2,7*nn);
205 B_s3(1,1:nn) = dNdx(:,1)’;
206 B_s3(2,1:nn) = dNdx(:,2)’;
207 B_s3(1,5*nn+1:6*nn) = N;
208 B_s3(2,6*nn+1:7*nn)= N;
234 13 Uma teoria layerwise

209 %
210 K(indiceB,indiceB)=K(indiceB,indiceB)+B_s1’*h1*C1s*B_s1*W(q)*det(J0);
211 K(indiceB,indiceB)=K(indiceB,indiceB)+B_s2’*h2*C2s*B_s2*W(q)*det(J0);
212 K(indiceB,indiceB)=K(indiceB,indiceB)+B_s3’*h3*C3s*B_s3*W(q)*det(J0);
213
214 end
215 end
216
217 % BC
218 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
219 |xx==max(node(:,1))|yy==min(node(:,2)));
220 %next two lines: simply supported case
221 fixedNodeTX1 =find(yy==max(node(:,2))|yy==min(node(:,2)));
222 fixedNodeTY1 =find(xx==max(node(:,1))| xx==min(node(:,1)));
223 fixedNodeTX2 =find(yy==max(node(:,2))|yy==min(node(:,2)));
224 fixedNodeTY2 =find(xx==max(node(:,1))| xx==min(node(:,1)));
225 fixedNodeTX3 =find(yy==max(node(:,2))|yy==min(node(:,2)));
226 fixedNodeTY3 =find(xx==max(node(:,1))| xx==min(node(:,1)));
227
228 %next two lines: clamped case
229 % fixedNodeTX1 =fixedNodeW;
230 % fixedNodeTY1 =fixedNodeTX1;
231 % fixedNodeTX2 =fixedNodeTX1;
232 % fixedNodeTY2 =fixedNodeTX1;
233 % fixedNodeTX3 =fixedNodeTX1;
234 % fixedNodeTY3 =fixedNodeTX1;
235
236 % condicoes fronteira
237 dofs=[fixedNodeW;fixedNodeTX1+numnode;fixedNodeTY1+2*numnode;...
238 fixedNodeTX2+3*numnode;fixedNodeTY2+4*numnode; ...
239 fixedNodeTX3+5*numnode;fixedNodeTY3+6*numnode];
240
241 activeDof=setdiff([1:7*numnode]’,[dofs]);
242 U=K([activeDof],[activeDof])\f([activeDof]);
243 U1=zeros(7*numnode,1);
244 U1(activeDof)=U;
245 U=U1;
246
247 ws=1:numnode;
248 D1=E0*thickness^3/12/(1-nu0^2);
249 format long
250 %min(U1(ws))*D1/L^4% normalizacao para solucao de placa fina
251 figure (1)
252 plot3(xx,yy,U(ws),’.’)
253
254 min(U1(ws))*0.999781/thickness% srinivas
255
256 %ua=0.999781/h*ua;
257
13.2 Laminado sandwich com 3 camadas 235

258 %%%% ..............................


259
260 % tensoes normais
261
262 stress_camada1=zeros(numelem,4,3);
263 stress_camada2=zeros(numelem,4,3);
264 stress_camada3=zeros(numelem,4,3);
265 % quadratura de 2 pontos
266 Q=[ -0.577350269189626 -0.577350269189626;
267 0.577350269189626 -0.577350269189626;
268 0.577350269189626 0.577350269189626;
269 -0.577350269189626 0.577350269189626];
270 W=[ 1;1;1;1];
271
272 for e=1:numelem
273
274 indice=element(e,:);
275 indiceB=[ indice indice+numnode indice+2*numnode ...
276 indice+3*numnode indice+4*numnode indice+5*numnode indice+6*numnode];
277 nn=length(indice);
278
279 for q=1:size(W,1) % CICLO QUADRATURA
280 pt=Q(q,:); % PONTO
281 wt=W(q); % PESO
282 xi=pt(1);
283 eta=pt(2);
284 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
285 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
286 (1+xi)*(1+eta);(1-xi)*(1+eta)];
287 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
288 1+eta, 1+xi;-(1+eta), 1-xi];
289
290 J0=node(indice,:)’*dNdxi; % MATRIZ JACOBIANA
291 invJ0=inv(J0);
292 dNdx=dNdxi*invJ0;
293
294 % MATRIZ B
295 % FLEXAO
296 B_b1=zeros(3,7*nn);
297 B_b1(1,nn+1:2*nn) = dNdx(:,1)’;
298 B_b1(2,2*nn+1:3*nn) = dNdx(:,2)’;
299 B_b1(3,nn+1:2*nn) = dNdx(:,2)’;
300 B_b1(3,2*nn+1:3*nn) = dNdx(:,1)’;
301
302 B_b2=zeros(3,7*nn);
303 B_b2(1,3*nn+1:4*nn) = dNdx(:,1)’;
304 B_b2(2,4*nn+1:5*nn) = dNdx(:,2)’;
305 B_b2(3,3*nn+1:4*nn) = dNdx(:,2)’;
306 B_b2(3,4*nn+1:5*nn) = dNdx(:,1)’;
236 13 Uma teoria layerwise

307
308 B_b3=zeros(3,7*nn);
309 B_b3(1,5*nn+1:6*nn) = dNdx(:,1)’;
310 B_b3(2,6*nn+1:7*nn) = dNdx(:,2)’;
311 B_b3(3,5*nn+1:6*nn) = dNdx(:,2)’;
312 B_b3(3,6*nn+1:7*nn) = dNdx(:,1)’;
313
314
315 % membrana - FLEXAO
316 B_mb3=zeros(3,7*nn);
317 B_mb3(1,3*nn+1:4*nn) = h2/2*dNdx(:,1)’;
318 B_mb3(2,4*nn+1:5*nn) = h2/2*dNdx(:,2)’;
319 B_mb3(3,3*nn+1:4*nn) = h2/2*dNdx(:,2)’;
320 B_mb3(3,4*nn+1:5*nn) = h2/2*dNdx(:,1)’;
321
322 B_mb3(1,5*nn+1:6*nn) = h3/2*dNdx(:,1)’;
323 B_mb3(2,6*nn+1:7*nn) = h3/2*dNdx(:,2)’;
324 B_mb3(3,5*nn+1:6*nn) = h3/2*dNdx(:,2)’;
325 B_mb3(3,6*nn+1:7*nn) = h3/2*dNdx(:,1)’;
326
327 B_mb1=zeros(3,7*nn);
328 B_mb1(1,nn+1:2*nn) = -h1/2*dNdx(:,1)’;
329 B_mb1(2,2*nn+1:3*nn) = -h1/2*dNdx(:,2)’;
330 B_mb1(3,nn+1:2*nn) = -h1/2*dNdx(:,2)’;
331 B_mb1(3,2*nn+1:3*nn) = -h1/2*dNdx(:,1)’;
332
333 B_mb1(1,3*nn+1:4*nn) = -h2/2*dNdx(:,1)’;
334 B_mb1(2,4*nn+1:5*nn) = -h2/2*dNdx(:,2)’;
335 B_mb1(3,3*nn+1:4*nn) = -h2/2*dNdx(:,2)’;
336 B_mb1(3,4*nn+1:5*nn) = -h2/2*dNdx(:,1)’;
337
338 stress_camada3(e,q,:)=C3b*B_mb3*U(indiceB)+h3/2*C3b*B_b3*U(indiceB);
339 stress_camada2(e,q,:)=C3b*B_mb3*U(indiceB)-h3/2*C3b*B_b3*U(indiceB);
340 stress_camada1(e,q,:)=h2/2*C2b*B_b2*U(indiceB);
341
342 end
343 end % of element loop
344
345
346
347 %%%% ..............................
348
349 % tensoes de corte
350
351 shear_camada1=zeros(numelem,1,2);
352 shear_camada2=zeros(numelem,1,2);
353 shear_camada3=zeros(numelem,1,2);
354
355 % quadratura de 1 ponto
13.2 Laminado sandwich com 3 camadas 237

356
357
358 Q=[0 0];
359 W=[4];
360
361
362 for e=1:numelem
363
364 indice=element(e,:);
365 indiceB=[ indice indice+numnode indice+2*numnode ...
366 indice+3*numnode indice+4*numnode indice+5*numnode indice+6*numnode];
367 nn=length(indice);
368
369 for q=1:size(W,1)
370 pt=Q(q,:);
371 wt=W(q);
372 xi=pt(1);
373 eta=pt(2);
374 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
375 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
376 (1+xi)*(1+eta);(1-xi)*(1+eta)];
377 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
378 1+eta, 1+xi;-(1+eta), 1-xi];
379 J0=node(indice,:)’*dNdxi;
380 invJ0=inv(J0);
381 dNdx=dNdxi*invJ0;
382
383 % CORTE
384 B_s1=zeros(2,7*nn);
385 B_s1(1,1:nn) = dNdx(:,1)’;
386 B_s1(2,1:nn) = dNdx(:,2)’;
387 B_s1(1,nn+1:2*nn) = N;
388 B_s1(2,2*nn+1:3*nn)= N;
389
390 B_s2=zeros(2,7*nn);
391 B_s2(1,1:nn) = dNdx(:,1)’;
392 B_s2(2,1:nn) = dNdx(:,2)’;
393 B_s2(1,3*nn+1:4*nn) = N;
394 B_s2(2,4*nn+1:5*nn)= N;
395
396 B_s3=zeros(2,7*nn);
397 B_s3(1,1:nn) = dNdx(:,1)’;
398 B_s3(2,1:nn) = dNdx(:,2)’;
399 B_s3(1,5*nn+1:6*nn) = N;
400 B_s3(2,6*nn+1:7*nn)= N;
401
402
403 shear_camada1(e,q,:)=C1s*B_s1*U(indiceB);
404 shear_camada2(e,q,:)=C2s*B_s2*U(indiceB);
238 13 Uma teoria layerwise

405 shear_camada3(e,q,:)=C3s*B_s3*U(indiceB);
406
407 end
408 end % of element loop
409 format
410 [ abs(min(U1(ws))*0.999781/thickness), abs(min(stress_camada3(:,3,1))),...
411 abs(min(stress_camada2(:,3,1))), abs(min(stress_camada1(:,3,1))),...
412 max(shear_camada2(:,:,1)),max(shear_camada1(:,:,1))]
14
Teoria de placa de primeira ordem para
laminados

14.1 Introdução
Considera-se aqui teoria de deformação de corte de primeira ordem, que neces-
sita de factor de correcção de corte, para a análise de laminados compósitos.

14.1.1 Campo de deslocamentos

Considere-se a teoria de placa de primeira ordem de Mindlin, onde o desloca-


mento transversal w é constante através da espessura da placa, na forma

u(x, y, z) = u0 (x, y) + zθx (x, y)


v(x, y, z) = v0 (x, y) + zθy (x, y)
w(x, y, z) = w0 (x, y) (14.1)

onde θx , θy são as rotações de primeira ordem. Os deslocamentos do plano


médio são u0 , v0 , w0 , segundo os três eixos coordenados.

14.1.2 Campo de deformações

Podemos encontrar as deformações pelas relações deformação-deslocamento,


na forma
240 14 Teoria de placa de primeira ordem para laminados
 
 ∂u 
 
∂x

 


 


 

∂v

 


 

 
  

 ∂y 

xx
  
 

   
 yy   ∂u ∂v 

 
 
 

γxy = + (14.2)
∂y ∂x 
γxz 

  

  
 

    
γyz
 
 ∂u ∂w 

 

 ∂z + ∂x 

 
 


 


 

 ∂v ∂w 

 
+
 

 
∂z ∂y
ou por
 m  f 
    xx 
 
 xx 

 xx  
   
   
  
 = yy = m yy + z fyy (14.3)
γxy
    
 
 


 m  
 f  
γxy γxy
   
 
(0)
   γxz 
γxz

γ= = (14.4)
γyz γ (0) 
 
yz

onde as componentes de deformação são descritas por


   

 ∂u0 
 
 ∂θx 

∂x ∂x
 m     f   
 
 
 
 


 xx 
  
 
 
 xx 
  
 


   
    

  
m
∂v 0
 
f
  ∂θ y

yy = ; yy =

 
   ∂y 
 
     ∂y 


 m    
  f     

γxy γ
       
∂u ∂v ∂θ ∂θ
   
 0 0
 xy  x y

+ +

  
 
   
∂y ∂x ∂y ∂x

(14.5)

∂w
 
 0 + θx 
 
(0) 
γxz 

   ∂x
 

γ0 = =
γ (0) 
  ∂w 
 0 + θy 
  
yz  
∂y
(14.6)
14.1 Introdução 241

Tendo em conta a abordagem de placa, ou seja, desprezando a tensão


normal transversa, σz , podem definir-se as relações tensão-deformação
E E
 
2
ν 0
    1−ν 1 − ν2   
 σx     x 
σ = σy =
 E E 
y = D (14.7)
 ν 2 2
0
τxy  1−ν 1−ν  γxy
  
 
0 0 G
    
τxz K1 G 0 γxz
τ = = = Dc γ (14.8)
τyz 0 K2 G γyz
Note-se que nesta teoria são necessários os factores de correcção de corte,
K1 , K 2 .
Nas interfaces das camadas exige-se a continuidade das tensões de corte
transverso, sendo que a deformação de corte transverso é considerada cons-
tante na teoria de placa de priomeira ordem ( o que é uma aproximação
grosseira para a evolução parabólica).
Assumindo uma placa livre de tensões tangenciais, pode escrever-se a
equação de equilibrio na direcção x
∂σx ∂τxy ∂τxz
+ + =0 (14.9)
∂x ∂y ∂z
Assumindo flexão cilindrica,

Z z Z z Z z
∂σx ∂Mx D1 (z) Qx Qx
τxz = − dz = − zdz = − D1 (z)zdz = g(z)
−h/2 ∂x −h/2 ∂x R1 R1 −h/2 R1
(14.10)
Z h/2
onde Qx representa a força de corte no plano xz; R1 = D1 (z)z 2 dz
−h/2
representa a rigidezZda placa na direcção x; z é a coordenada através da
z
espessura; g(z) = − D1 (z)zdz representa a função de forma do corte.
−h/2
Esta função g(z) que representa o diagrama da tensão de corte torna-se a
função parabólica g(z) = [D1 h2 /8][1 − 4(z/h)2 ] para secções homogéneas.
A componente de energia de deformação é dada por
h/2 2 h/2
Q2 g 2 (z)
Z Z
τxz
ws = dz = x2 dz (14.11)
−h/2 G13 (z) R1 −h/2 G13 (z)
242 14 Teoria de placa de primeira ordem para laminados

onde G13 (z) é o módulo de corte, variável através da espessura, no plano


xz. Supondo energia de deformação de corte constante, a componente de de-
formação é dada por
h/2
Q2x Q2x
Z
ws = γ xz G13 (z)γ xz dz = 2 hG1 = (14.12)
−h/2 h2 G 1 hG1
onde Z h/2
hG1 = G13 (z)dz (14.13)
−h/2

e onde γ xz é o valor médio das deformações de corte. É então agora possı́vel


calcular o factor de correcção de corte transverso k1 no plano xz na forma

ws R12
k1 = = h/2
(14.14)
ws
Z
2
hG1 g (z)/G13 (z)dz
−h/2

Para o factor k2 procede-se de forma idêntica. Esta formulação para cálculo


dos factores de correcção de corte foi inicialmente apresentada por Joaquim
Figueiras na sua tese de doutoramento [3].

14.2 Matriz de rigidez


Tomando a matriz de rigidez, a partir da energia de deformação, podemos
escrever
Z
1
U= T σ + γ T τ dV (14.15)
2 V
ou

Z iT
1  m T   h h i
U=  + zf D m + zf + γ (0) Dc γ (0) dV (14.16)
2 V

Substituindo as deformações e as tensões nesta expressão da energia, ob-


temos então a matriz de rigidez do elemento, na forma
(e)
K(e) = K(e) (e)
mm + Kf f + Kcc (14.17)
(e) (e)
onde Kmm representa a matriz de rigidez de membrana, Kf f representa a
(e)
matriz de rigidez de flexão com termos de primeira ordem, Kcc representa a
matriz de rigidez de corte. De seguida apresentam-se todas essas componentes
da matriz de rigidez.
14.3 Matrizes de deformação-deslocamento B 243
Z Z h/2 Z Z h/2 Z
K(e)
mm = Tm σdzdA = Tm Dm dzdA =h Tm Dm dA
A −h/2 A −h/2 A
(14.18)

h/2 h/2
h3
Z Z Z Z Z
(e)
Kf f = zTf σdzdA = z 2 Tf Df dzdA = Tf Df dA
A −h/2 A −h/2 12 A
(14.19)
Z Z h/2 Z
K(e)
cc = γ T0 Dc γ 0 dzdA = h γ T0 Dc γ 0 dA (14.20)
A −h/2 A

14.3 Matrizes de deformação-deslocamento B


Em função das componentes da matriz de rigidez, é possı́vel construir as
matrizes de deformação-deslocamento B, nas componentes de membrana
 
∂N
 ∂x 0 0 0 0 
 
 
(e)
 ∂N 
Bm = 0 0 0 0 (14.21)

∂y

 
 
 
 ∂N ∂N 
000
∂y ∂x
de flexão de primeira ordem
 
∂N
0 0 0 ∂x 
 
 
(e)
 ∂N 
Bf = 0 0 0 0 (14.22)
 
∂y 


 
 
 ∂N ∂N 
000
∂y ∂x
e de corte
∂N
 
0 0 N 0
(e)
 ∂x 
Bc0 = (14.23)
 

 ∂N 
00 0 N
∂y
Por simplicidade (seguramente com custos computacionais superiores),
optou-se por construir todas as matrizes com 5 colunas, correspondentes a 5
graus de liberdade, ou seja, uT = [u0 , v0 , w0 , θx , θy ]. Naturalmente seria mais
adequado construir matrizes mais pequenas e afectar os graus de liberdade
244 14 Teoria de placa de primeira ordem para laminados

adequados no processo de assemblagem. Deixa-se ao leitor a interpretação do


código, sendo de notar a organização dos graus de liberdade (para aproveitar
a compactação do MATLAB), na forma

uT = [w1 · · · wN , θx1 · · · θxN , θy1 · · · θyN , · · · u1 · · · uN , v1 · · · vN ] (14.24)

14.4 Laminado sandwich com 3 camadas


Considera-se um laminado sandwich com três camadas, simplesmente apoiado
em todos os bordos, sob carga uniforme transversal. Este exemplo, formulado
por Srinivas [131], considera as seguintes propriedades materiais para o núcleo
 
0.999781 0.231192 0 0 0
 0.231192 0.524886 0 0 0 
 
Qcore =   0 0 0.262931 0 0 

 0 0 0 0.266810 0 
0 0 0 0 0.159914
As propriedades materiais das peles são obtidas das do núcleo multiplicando-
as por um factor R:

Qskin = RQcore
Neste exemplo, normalizam-se os resultados na forma

0.999781
w = w(a/2, a/2, 0)
hq
(1) (1) (2)
σx (a/2, a/2, −h/2) 2 σx (a/2, a/2, −2h/5) σx (a/2, a/2, −2h/5)
σ 1x = ; σx = ; σ 3x =
q q q
(1) (1) (2)
σy (a/2, a/2, −h/2) 2 σy (a/2, a/2, −2h/5) σy (a/2, a/2, −2h/5)
σ 1y = σy = ; σ 3y =
q q q
(2) (2)
τxz (0, a/2, 0) 2 τxz (0, a/2, −2h/5)
τ 1xz = ; τ xz =
q q
Para diferentes valores de R, apresentam-se nas tabelas seguintes os re-
sultados na forma de deslocamentos transversais, tensões normais e tensões
de corte transverso. Comparam-se os resultados com os obtidos por soluções
analiticas de terceira ordem de Pandya [129], uma formulação de elementos
finitos de casca de primeira ordem de Ferreira [126] e com uma formulação
sem malha de Ferreira e colegas [103]. A qualidade da formulação presente é
evidente, à excepção das tensões de corte transverso.
Regista-se a necessidade de corrigir posteriormente as tensões de corte
transverso, na forma
14.4 Laminado sandwich com 3 camadas 245

cor g(z)
τxz = Ḡ13 γxz (14.25)

onde
Z h/2
ḡ = − g(z)dz (14.26)
−h/2

Em alternativa, haveria que calcular as tensões de corte transverso através


das equações de equilibrio.

Método w σ 1x σ 2x σ 3x τ 1xz τ 2xz


HSDT [129] 256.13 62.38 46.91 9.382 3.089 2.566
FSDT [129] 236.10 61.87 49.50 9.899 3.313 2.444
CLT 216.94 61.141 48.623 9.783 4.5899 3.386
Ferreira [126] 258.74 59.21 45.61 9.122 3.593 3.593
Ferreira (N=15) [103] 257.38 58.725 46.980 9.396 3.848 2.839
exacto [131] 258.97 60.353 46.623 9.340 4.3641 3.2675
HSDT [127] (N=11) 253.6710 59.6447 46.4292 9.2858 3.8449 1.9650
HSDT [127] (N=15) 256.2387 60.1834 46.8581 9.3716 4.2768 2.2227
HSDT [127] (N=21) 257.1100 60.3660 47.0028 9.4006 4.5481 2.3910
presente (4 × 4 elementos Q4) 260.0321 54.6108 43.6887 8.7377 2.3922 11.9608
presente (10 × 10 elementos Q4) 259.3004 58.4403 46.7523 9.3505 2.9841 14.9207
presente (20 × 20 elementos Q4) 259.2797 58.9507 47.1606 9.4321 3.1980 15.9902
Tabela 14.1. Placa quadrada sandwich sob pressão uniforme- R = 5

Método w σ 1x σ 2x σ 3x τ 1xz τ 2xz


HSDT [129] 152.33 64.65 51.31 5.131 3.147 2.587
FSDT [129] 131.095 67.80 54.24 4.424 3.152 2.676
CLT 118.87 65.332 48.857 5.356 4.3666 3.7075
Ferreira [126] 159.402 64.16 47.72 4.772 3.518 3.518
Ferreira (N=15) [103] 158.55 62.723 50.16 5.01 3.596 3.053
exacto [131] 159.38 65.332 48.857 4.903 4.0959 3.5154
HSDT [127] (N=11) 153.0084 64.7415 49.4716 4.9472 2.7780 1.8207
HSDT[127] (N=15) 154.2490 65.2223 49.8488 4.9849 3.1925 2.1360
HSDT[127] (N=21) 154.6581 65.3809 49.9729 4.9973 3.5280 2.3984
presente (4 × 4 elementos Q4) 162.2395 58.1236 46.4989 4.6499 1.5126 15.1261
presente (10 × 10 elementos Q4) 159.9120 62.3765 49.9012 4.9901 1.8995 18.9954
presente (20 × 20 elementos Q4) 159.6820 62.9474 50.3580 5.0358 2.0371 20.3713
Tabela 14.2. Placa quadrada sandwich sob pressão uniforme- R = 10
246 14 Teoria de placa de primeira ordem para laminados

Método w σ 1x σ 2x σ 3x τ 1xz τ 2xz


HSDT [129] 110.43 66.62 51.97 3.465 3.035 2.691
FSDT [129] 90.85 70.04 56.03 3.753 3.091 2.764
CLT 81.768 69.135 55.308 3.687 4.2825 3.8287
Ferreira [126] 121.821 65.650 47.09 3.140 3.466 3.466
Ferreira (N=15) [103] 121.184 63.214 50.571 3.371 3.466 3.099
exact [131] 121.72 66.787 48.299 3.238 3.9638 3.5768
Third-order [127] (N=11) 113.5941 66.3646 49.8957 3.3264 2.1686 1.5578
Third-order [127] (N=15) 114.3874 66.7830 50.2175 3.3478 2.6115 1.9271
Third-order [127] (N=21) 114.6442 66.9196 50.3230 3.3549 3.0213 2.2750
presente (4 × 4 elementos Q4) 125.2176 58.4574 46.7659 3.1177 1.0975 16.4621
presente (10 × 10 elementos Q4) 122.3318 62.8602 50.2881 3.3525 1.3857 20.7849
presente (20 × 20 elementos Q4) 122.0283 63.4574 50.7659 3.3844 1.4872 22.3084

Tabela 14.3. Placa quadrada sandwich sob pressão uniforme - R = 15

Apresenta-se o código (placaFSDTQ4DOF5SRINIVAS.m) para a solução de


problemas de placa laminada encastrada ou simplesmente apoiada, recorrendo
à teoria de placa de primeira ordem (exemplo de Srinivas).
1 colordef white
2 tic
3 % propriedades material
4 E0 = 10920; % mdulo Young
5 nu0 = 0.30; % coef. Poisson
6 rho=1;
7 % geometria
8 L = 1; % lado
9 thickness=0.1;
10 I=thickness^3/12;
11 %carga
12 P=-1;
13 numy = 20; % # elementos em xx
14 numx = 20; % # elementos em xx
15
16 %%% SRINIVAS EXAMPLE
17
18 dd=zeros(2);d=zeros(3);
19 % factor de multiplicacao de propriedades materiais
20 rf=15;
21
22 h=thickness;
23 % matrix [D]
24 dmat(1,1)=0.999781;dmat(1,2)=0.231192;
25 dmat(2,1)=0.231192;dmat(2,2)=0.524886;
26 dmat(1,3)=0;dmat(3,1)=0;dmat(2,3)=0;dmat(3,2)=0;
27 dmat(3,3)=0.262931;dm(1,1)=0.26681;dm(2,2)=0.159914;
14.4 Laminado sandwich com 3 camadas 247

28
29 nc=3; ttt=0;ttt1=0; th(1)=ttt;th(2)=ttt1;th(3)=ttt1;
30 z1(1)=-2*h/5;z1(2)=2*h/5;z1(3)=h/2;
31 z2(1)=-h/2;z2(2)=-2*h/5;z2(3)=2*h/5;
32
33 thick(1:nc)=z1(1:nc)-z2(1:nc);
34
35 % coefe: factores de correccao ao corte (k1 e k2)
36
37 coefe(1:2)=0.0;gbarf(1:2)=0.0;rfact(1:2)=0.0;
38 sumla(1:2)=0.0;trlow(1:2)=0.0;upter(1:2)=0.0;
39
40 % posicao do eixo neutro de flexao...............................
41 dsumm=0.0;
42 for ilayr=1:nc
43 dzeta=z1(ilayr)-z2(ilayr);
44 zheig=dsumm+dzeta/2.0;
45 for i=1:2
46 dindx(i)=rf*dmat(i,i);
47 if(ilayr==2)
48 dindx(i)=dmat(i,i);
49 end
50 upter(i)=upter(i)+dindx(i)*zheig*dzeta;
51 trlow(i)=trlow(i)+dindx(i)*dzeta;
52 end
53 dsumm = dsumm+dzeta;
54 end
55
56 zeta2(1:2)=-upter(1:2)./trlow(1:2);
57
58 % calculo dos factores de correccao ao corte.
59
60 for ilayr=1:nc
61 diff1=z1(ilayr)-z2(ilayr);
62 d1=rf*dmat(1,1);
63 d2=rf*dmat(2,2);
64 d3=rf*dm(1,1);
65 d4=rf*dm(2,2);
66 if(ilayr==2)
67 d1=dmat(1,1);
68 d3=dm(1,1);
69 d4=dm(2,2);
70 d2=dmat(2,2);
71 end
72 index=10;
73 for i=1:2
74 zeta1(i)=zeta2(i);
75 zeta2(i)=zeta1(i)+diff1;
76 diff2(i)=zeta2(i)^2-zeta1(i)^2;
248 14 Teoria de placa de primeira ordem para laminados

77 diff3(i)=zeta2(i)^3-zeta1(i)^3;
78 diff5(i)=zeta2(i)^5-zeta1(i)^5;
79 if(i==1)
80 dindx(i)=d1;
81 gindx(i)=d3;
82 else
83 dindx(i)=d2;
84 gindx(i)=d4;
85 end
86
87 gbarf(i)=gbarf(i)+gindx(i)*diff1/2.0;
88 rfact(i)=rfact(i)+dindx(i)*diff3(i)/3.0;
89
90 term1 = sumla(i)*sumla(i)*diff1;
91 term2 = dindx(i)*(zeta1(i)^4)*diff1/4.0;
92 term3 = dindx(i)*diff5(i)/20.0;
93 term4 =-dindx(i)*zeta1(i)*zeta1(i)*diff3(i)/6.0;
94 term5 = sumla(i)*zeta1(i)*zeta1(i)*diff1;
95 term6 =-sumla(i)*diff3(i)/3.0;
96 coefe(i)= coefe(i)+(term1+dindx(i)*...
97 (term2+term3+term4+term5+term6))/gindx(i);
98 index = index+1;
99 sumla(i)= sumla(i)-dindx(i)*diff2(i)/2.0;
100 end
101 end
102
103 coefe(1:2)=rfact(1:2).*rfact(1:2)./(2.0*gbarf(1:2).*coefe(1:2));
104
105 disp(’coefe 1, 2’)
106 coefe(1)
107 coefe(2)
108 kapa=coefe(1);
109
110 a11=0;a22=0;a12=0;a33=0;
111 for i=1:nc
112 theta=th(i);
113 q11=rf*dmat(1,1);q12=rf*dmat(1,2);q22=rf*dmat(2,2);q33=rf*dmat(3,3);
114 cs=cos(theta);ss=sin(theta);ss11=rf*dm(1,1)*kapa;ss22=rf*dm(2,2)*kapa;
115 if i==2
116 q11=dmat(1,1);q12=dmat(1,2);q22=dmat(2,2);q33=dmat(3,3);
117 cs=cos(theta);ss=sin(theta);
118 ss11=dm(1,1)*kapa;ss22=dm(2,2)*kapa;
119 end
120 dd(1,1)=dd(1,1)+(ss11*cos(theta)^2+ss22*sin(theta)^2)*(z1(i)-z2(i));
121 dd(2,2)=dd(2,2)+(ss11*sin(theta)^2+ss22*cos(theta)^2)*(z1(i)-z2(i));
122 d(1,1)=d(1,1)+(q11*cs^4+2*(q12+2*q33)*ss*ss*cs*cs+...
123 q22*ss^4)*(z1(i)^3-z2(i)^3)/3;
124 d(2,2)=d(2,2)+(q11*ss^4+2*(q12+2*q33)*ss*ss*cs*cs+...
125 q22*cs^4)*(z1(i)^3-z2(i)^3)/3;
14.4 Laminado sandwich com 3 camadas 249

126 d(1,2)=d(1,2)+((q11+q22-4*q33)*ss*ss*cs*cs+...
127 q12*(ss^4+cs^4))*(z1(i)^3-z2(i)^3)/3;
128 d(3,3)=d(3,3)+((q11+q22-2*q12-2*q33)*ss*ss*cs*cs+...
129 q33*(ss^4+cs^4))*(z1(i)^3-z2(i)^3)/3;
130 a11=a11+q11*thick(i);
131 a22=a22+q22*thick(i);
132 a33=a22+q33*thick(i);
133 a12=a12+q12*thick(i);
134
135 qbarra(1,1,i)=q11;
136 qbarra(1,2,i)=q12;
137 qbarra(2,2,i)=q22;
138 qbarra(3,3,i)=q33;
139 qbarra(4,4,i)=ss11;
140 qbarra(5,5,i)=ss22;
141
142 end %nc
143
144 A44=dd(2,2);
145 A55=dd(1,1);
146 D11=d(1,1);
147 D12=d(1,2);
148 D22=d(2,2);
149 D66=d(3,3);
150 A11=a11;
151 A12=a12;
152 A66=a33;
153 A22=a22;
154
155 AMatrix=[A11,A12,0;A12,A22,0;0,0,A66]
156 %srinivas case (su+ymmetric)
157 BMatrix=zeros(3);
158 %BMatrix=[B11,B12,0;B12,B22,0;0,0,B66]
159 DMatrix=[D11,D12,0;D12,D22,0;0,0,D66]
160 SMatrix=[A44,0;0,A55]
161
162 %malha
163 [node, element] = MalhaRectangular(L, L, numx, numy);
164 %
165 xx=node(:,1); yy=node(:,2);
166
167 numnode=size(node,1); % numero nos
168 numelem=size(element,1); % numero elementos
169
170 % inicializacao
171 K=zeros(5*numnode,5*numnode); % matriz de rigidez
172 M=zeros(5*numnode,5*numnode); % matriz de massa
173 f=zeros(5*numnode,1); % vector de carga
174 U=zeros(5*numnode,1); % vector de deslocamentos
250 14 Teoria de placa de primeira ordem para laminados

175
176 % calculo de MATRIZ DE RIGIDEZ
177
178 % quadratura de 2 pontos
179 Q=[ -0.577350269189626 -0.577350269189626;
180 0.577350269189626 -0.577350269189626;
181 0.577350269189626 0.577350269189626;
182 -0.577350269189626 0.577350269189626];
183 W=[ 1;1;1;1];
184 % rigidez de flexao
185 for e=1:numelem
186
187 indice=element(e,:);
188 indiceB=[ indice indice+numnode indice+2*numnode ...
189 indice+3*numnode indice+4*numnode];
190 nn=length(indice);
191 for q=1:size(W,1) % CICLO QUADRATURA
192 pt=Q(q,:); % PONTO
193 wt=W(q); % PESO
194 xi=pt(1);
195 eta=pt(2);
196 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
197 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
198 (1+xi)*(1+eta);(1-xi)*(1+eta)];
199 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
200 1+eta, 1+xi;-(1+eta), 1-xi];
201
202 J0=node(indice,:)’*dNdxi; % MATRIZ JACOBIANA
203 invJ0=inv(J0);
204 dNdx=dNdxi*invJ0;
205
206 % MATRIZ B
207 % FLEXAO 0
208 B_b=zeros(3,5*nn);
209 B_b(1,nn+1:2*nn) = dNdx(:,1)’;
210 B_b(2,2*nn+1:3*nn) = dNdx(:,2)’;
211 B_b(3,nn+1:2*nn) = dNdx(:,2)’;
212 B_b(3,2*nn+1:3*nn) = dNdx(:,1)’;
213
214 B_m=zeros(3,5*nn);
215 B_m(1,3*nn+1:4*nn) = dNdx(:,1)’;
216 B_m(2,4*nn+1:5*nn) = dNdx(:,2)’;
217 B_m(3,3*nn+1:4*nn) = dNdx(:,2)’;
218 B_m(3,4*nn+1:5*nn) = dNdx(:,1)’;
219
220
221 % RIGIDEZ E MASSA NO PONTO DE QUADRATURA
222 K(indiceB,indiceB)=K(indiceB,indiceB)+...
223 B_b’*DMatrix*B_b*W(q)*det(J0);
14.4 Laminado sandwich com 3 camadas 251

224
225 K(indiceB,indiceB)=K(indiceB,indiceB)+...
226 B_m’*AMatrix*B_m*W(q)*det(J0);
227
228 K(indiceB,indiceB)=K(indiceB,indiceB)+...
229 B_m’*BMatrix*B_b*W(q)*det(J0);
230 K(indiceB,indiceB)=K(indiceB,indiceB)+...
231 B_b’*BMatrix*B_m*W(q)*det(J0);
232
233
234 % VECTOR DE CARGA NO PONTO DE QUADRATURA
235 f(indice)=f(indice)+N*P*det(J0)*wt;
236 end
237 end
238
239 % MATRIZ DE RIGIDEZ (CORTE)
240 % quadratura de 1 ponto
241 Q=[0 0];
242 W=[4];
243
244 for e=1:numelem
245 indice=element(e,:);
246 indiceB=[ indice indice+numnode indice+2*numnode indice+3*numnode...
247 indice+4*numnode ];
248 nn=length(indice);
249 for q=1:size(W,1)
250 pt=Q(q,:);
251 wt=W(q);
252 xi=pt(1);
253 eta=pt(2);
254 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
255 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
256 (1+xi)*(1+eta);(1-xi)*(1+eta)];
257 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
258 1+eta, 1+xi;-(1+eta), 1-xi];
259 J0=node(indice,:)’*dNdxi;
260 invJ0=inv(J0);
261 dNdx=dNdxi*invJ0;
262
263 % CORTE
264 B_s=zeros(2,5*nn);
265 B_s(1,1:nn) = dNdx(:,1)’;
266 B_s(2,1:nn) = dNdx(:,2)’;
267 B_s(1,nn+1:2*nn) = N;
268 B_s(2,2*nn+1:3*nn)= N;
269
270 K(indiceB,indiceB)=K(indiceB,indiceB)+...
271 B_s’*SMatrix*B_s*W(q)*det(J0);
272
252 14 Teoria de placa de primeira ordem para laminados

273 end
274 end
275
276 % BC
277 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
278 |xx==max(node(:,1))|yy==min(node(:,2)));
279 %next two lines: simply supported case
280 fixedNodeTX =find(yy==max(node(:,2))|yy==min(node(:,2)));
281 fixedNodeTY =find(xx==max(node(:,1))| xx==min(node(:,1)));
282 fixedNodeU =find(xx==min(node(:,1)));
283 fixedNodeV =find(yy==min(node(:,2)));
284
285 %next two lines: clamped case
286 % fixedNodeTX =fixedNodeW;
287 % fixedNodeTY =fixedNodeTX;
288 % fixedNodeU =fixedNodeTX;
289 % fixedNodeV =fixedNodeTX;
290
291 % condicoes fronteira
292 dofs=[fixedNodeW;fixedNodeTX+numnode;fixedNodeTY+2*numnode;...
293 fixedNodeU+3*numnode;fixedNodeV+4*numnode];
294
295 activeDof=setdiff([1:5*numnode]’,[dofs]);
296 U=K([activeDof],[activeDof])\f([activeDof]);
297 U1=zeros(5*numnode,1);
298 U1(activeDof)=U;
299 U=U1;
300
301 ws=1:numnode;
302 D1=E0*thickness^3/12/(1-nu0^2);
303 format long
304 %min(U1(ws))*D1/L^4% normalizacao para solucao de placa fina
305 min(U1(ws))*0.999781/h% normalizacao para solucao de SRINIVAS
306 figure (1)
307 plot3(xx,yy,U(ws),’.’)
308
309
310 %%%% ..............................
311
312 % tensoes normais
313
314 stress_camada1=zeros(numelem,4,3);
315 stress_camada2=zeros(numelem,4,3);
316 stress_camada3=zeros(numelem,4,3);
317 % quadratura de 2 pontos
318 Q=[ -0.577350269189626 -0.577350269189626;
319 0.577350269189626 -0.577350269189626;
320 0.577350269189626 0.577350269189626;
321 -0.577350269189626 0.577350269189626];
14.4 Laminado sandwich com 3 camadas 253

322 W=[ 1;1;1;1];


323
324 for e=1:numelem
325
326 indice=element(e,:);
327 indiceB=[ indice indice+numnode indice+2*numnode ...
328 indice+3*numnode indice+4*numnode];
329 nn=length(indice);
330
331 for q=1:size(W,1) % CICLO QUADRATURA
332 pt=Q(q,:); % PONTO
333 wt=W(q); % PESO
334 xi=pt(1);
335 eta=pt(2);
336 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
337 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
338 (1+xi)*(1+eta);(1-xi)*(1+eta)];
339 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
340 1+eta, 1+xi;-(1+eta), 1-xi];
341
342 J0=node(indice,:)’*dNdxi; % MATRIZ JACOBIANA
343 invJ0=inv(J0);
344 dNdx=dNdxi*invJ0;
345
346 % MATRIZ B
347 % FLEXAO 0
348 B_b=zeros(3,5*nn);
349 B_b(1,nn+1:2*nn) = dNdx(:,1)’;
350 B_b(2,2*nn+1:3*nn) = dNdx(:,2)’;
351 B_b(3,nn+1:2*nn) = dNdx(:,2)’;
352 B_b(3,2*nn+1:3*nn) = dNdx(:,1)’;
353
354 B_m=zeros(3,5*nn);
355 B_m(1,3*nn+1:4*nn) = dNdx(:,1)’;
356 B_m(2,4*nn+1:5*nn) = dNdx(:,2)’;
357 B_m(3,3*nn+1:4*nn) = dNdx(:,2)’;
358 B_m(3,4*nn+1:5*nn) = dNdx(:,1)’;
359
360 stress_camada1(e,q,:)=2*h/5*qbarra(1:3,1:3,2)*B_b*U(indiceB)+...
361 qbarra(1:3,1:3,2)*B_m*U(indiceB);
362 stress_camada2(e,q,:)=2*h/5*qbarra(1:3,1:3,3)*B_b*U(indiceB)+...
363 qbarra(1:3,1:3,3)*B_m*U(indiceB);
364 stress_camada3(e,q,:)= h/2*qbarra(1:3,1:3,3)*B_b*U(indiceB)+...
365 qbarra(1:3,1:3,3)*B_m*U(indiceB);
366 end
367 end % of element loop
368
369
370 %
254 14 Teoria de placa de primeira ordem para laminados

371 %%%% ..............................


372
373 % tensoes de corte
374
375 shear_camada1=zeros(numelem,1,2);
376 shear_camada2=zeros(numelem,1,2);
377
378 % quadratura de 1 ponto
379
380
381 Q=[0 0];
382 W=[4];
383
384
385 for e=1:numelem
386
387 indice=element(e,:);
388 indiceB=[ indice indice+numnode indice+2*numnode...
389 indice+3*numnode indice+4*numnode];
390 nn=length(indice);
391
392 for q=1:size(W,1)
393 pt=Q(q,:);
394 wt=W(q);
395 xi=pt(1);
396 eta=pt(2);
397 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
398 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
399 (1+xi)*(1+eta);(1-xi)*(1+eta)];
400 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
401 1+eta, 1+xi;-(1+eta), 1-xi];
402 J0=node(indice,:)’*dNdxi;
403 invJ0=inv(J0);
404 dNdx=dNdxi*invJ0;
405
406 % CORTE
407 B_s=zeros(2,5*nn);
408 B_s(1,1:nn) = dNdx(:,1)’;
409 B_s(2,1:nn) = dNdx(:,2)’;
410 B_s(1,nn+1:2*nn) = N;
411 B_s(2,2*nn+1:3*nn)= N;
412
413 shear_camada1(e,q,:)=qbarra(4:5,4:5,1)*B_s*U(indiceB);
414 shear_camada2(e,q,:)=qbarra(4:5,4:5,2)*B_s*U(indiceB);
415
416
417 end
418 end % of element loop
419 format
14.4 Laminado sandwich com 3 camadas 255

420 [ abs(min(U1(ws))*0.999781/thickness), abs(min(stress_camada3(:,3,1))),...


421 abs(min(stress_camada2(:,3,1))), abs(min(stress_camada1(:,3,1))),...
422 max(shear_camada2(:,:,1)),max(shear_camada1(:,:,1))]
15
Análise de sólidos tridimensionais

15.1 Introdução
A maior parte dos problemas de engenharia são tridimensionais. Em muitos
casos não é possı́vel ou desejável adoptar as simplificações de estado plano
de tensão ou outros. Neste capı́tulo realiza-se a análise por elementos finitos
de problemas tridimensionais. Depois de apresentar os principais vectores e
matrizes de interesse para o problema, formulam-se os elementos tetraédrico
de 4 nós e o elemento hexaédrico de 8 nós.
Neste capı́tulo apresenta-se também um programa de elementos finitos em
MATLAB, que serve para resolver o problema duma barra prismática em
tracção.

15.2 Campo de deslocamentos


O campo de deslocamentos é dado por

uT = [u, v, w] (15.1)
onde u, v, w são os deslocamentos segundo os três eixos cartesianos x, y, z.

15.3 Campo de deformações


As deformações são obtidas por derivação dos deslocamentos, na forma

T = [x , y , z , γxy , γxz , γyz ] (15.2)


onde
258 15 Análise de sólidos tridimensionais
 
∂u ∂v ∂w ∂u ∂v ∂u ∂w ∂v ∂w
[x , y , z , γxy , γxz , γyz ] = , , , + , + , +
∂x ∂y ∂z ∂y ∂x ∂z ∂x ∂z ∂y
(15.3)
ou

 = Bd (15.4)
onde B representa a chamada matriz de deformações, essencial para o cálculo
de elementos finitos, que é composta apenas por derivadas. Tendo em conta
a necessidade de transformações de eixos naturais e cartesianos, em muitos
casos, como por exemplo em sólidos 3D ou em cascas genéricas, esta matriz
pode ser de cálculo complexo e representar uma boa parte da dificuldade do
problema.

15.4 Campo de tensões


Tendo em conta um material isotrópico, com matriz de elasticidade

 
1−ν ν ν 0 0 0
 ν 1−ν ν 0 0 0 
 
E  ν ν 1 − ν 0 0 0 
D=   (15.5)
 0
(1 + ν)(1 − 2ν)  0 0 0.5 − ν 0 0  
 0 0 0 0 0.5 − ν 0 
0 0 0 0 0 0.5 − ν

a relação entre tensões e deformações é dada por

σ = D (15.6)
onde

σ T = [σx , σy , σz , τxy , τxz , τyz ] (15.7)

15.5 Elemento tetraédrico de 4 nós


Considere-se o elemento tetraédrico de 4 nós conforme ilustrado na figura 15.1.
Considere-se agora o elemento padrão na figura 15.2 onde se definem as funções
de forma Lagrangianas N1 , N2 , N3 e N4 , na forma

N1 = ξ; N2 = η; N3 = ζ; N4 = 1 − ξ − η (15.8)
Os deslocamentos u, v, w podem agora ser calculados em termos dos desloca-
mentos nodais
15.5 Elemento tetraédrico de 4 nós 259

Figura 15.1. Elemento tetraédrico de 4 nós

3 (0,0,1)

4 (0,0,0) ν

2 (0,1,0)

1 (1,0,0)

ξ
Figura 15.2. Elemento padrão para funções de forma
260 15 Análise de sólidos tridimensionais

U = Nu (15.9)
onde a matriz de funções de forma N é dada por
 
N1 0 0 N2 0 0 N3 0 0 N4 0 0
 
 
N =  0 N1 0 0 N2 0 0 N3 0 0 N4 0 

 (15.10)
 
0 0 N1 0 0 N2 0 0 N3 0 0 N4
Note-se que esta matriz de funções de forma pode também interpolar a geome-
tria da mesma forma que realiza a interpolação dos deslocamentos (formulação
isoparamétrica).
Assim, podem obter-se as coordenadas

x = N1 x1 + N2 x2 + N3 x3 + N4 x4

y = N 1 y1 + N 2 y2 + N 3 y3 + N 4 y4 (15.11)

z = N 1 z1 + N 2 z2 + N 3 z3 + N 4 z4
Usando agora a notação xij = xi − xj , yij = yi − yj , zij = zi − zj , obtemos

x = x4 + x14 ξ + x24 η + x34 ζ

y = y4 + y14 ξ + y24 η + y34 ζ (15.12)

z = z4 + z14 ξ + z24 η + z34 ζ


Usando a regra da cadeia para derivadas parciais, por exemplo, para u, obte-
mos
∂u 
 
∂u 
 


 ∂ξ  
 








 ∂x 


 
 
 


 ∂u  
 ∂u  
=J (15.13)

 ∂η 
 
 ∂y 

 
 
 

   
 ∂u   ∂u 

  
 
 
  

 
∂ζ ∂z
onde a matriz jacobina J da transformação é expressa por
∂x ∂y ∂z
 
 ∂ξ ∂ξ ∂ξ   
  x14 y14 z14
 
 ∂x ∂y ∂z   
  
J= = x y z (15.14)

  24 24 24 

 ∂η ∂η ∂η   

 
x34 y34 z34
 
 ∂x ∂y ∂z 
∂ζ ∂ζ ∂ζ
15.5 Elemento tetraédrico de 4 nós 261

Note-se também que

detJ = x14 (y24 z34 − y34 z24 ) + y14 (z24 x34 − z34 x24 ) + z14 (x24 y34 − x34 y24 )
(15.15)
O volume do elemento finito é obtido por
Z Z
1 1−ξ Z 1−ξ−η
Ve = detJdξdηdζ (15.16)

0 0 0
Dado que det J é constante, podemos escrever
Z 1 Z 1−ξ Z 1−ξ−η
Ve = |detJ| dξdηdζ (15.17)
0 0 0
Usando a fórmula
Z 1 Z 1−ξ Z 1−ξ−η
m!n!p!
ξ m η n ζ p dξdηdζ = (15.18)
0 0 0 (m + n + p + 3)!
podemos finalmente obter
1
|detJ|
Ve = (15.19)
6
Escrevendo uma relação inversa da de (15.13),
∂u 
 
∂u 
 
 
 





∂x 





 ∂ξ 



 
 
 

 ∂u 
  
 ∂u  
−1
=J (15.20)

 ∂y 
 
 ∂η 

 
 
 

   
∂u ∂u

 
 
 


 
 
 

 
∂z ∂ζ
onde a inversa da matriz jacobiana é expressa por
 
y24 z34 − y34 z24 y34 z14 − y14 z34 y14 z24 − y24 z14
 
−1 1  
J =  z24 x34 − z34 x24 z34 x14 − z14 x34 z14 x24 − z24 x14  (15.21)
detJ 
 

x24 y34 − x34 y24 x34 y14 − x14 y34 x14 y24 − x24 y14
Podemos agora obter a matriz de deformações B. Chamando A = J−1 ,

A11 0 0 A12 0 0 A13 0 0 −Ã1 0 0


 
 0
 A21 0 0 A22 0 0 A23 0 0 −Ã2 0  
 0 0 A31 0 0 A32 0 0 A33 0 0 −Ã3 
B=  (15.22)
 0
 A31 A21 0 A32 A22 0 A33 A23 0 −Ã3 −Ã2 

A
31 0 A11 A32 0 A12 A33 0 A13 −Ã3 0 −Ã1 
A21 A11 0 A22 A12 0 A23 A13 0 −Ã2 −Ã1 0
262 15 Análise de sólidos tridimensionais

onde Ã1 = A11 + A12 + A13 , Ã2 = A21 + A22 + A23 , Ã3 = A31 + A32 + A33 .
Note-se que sendo todos os termos da matriz B constantes, as deformações
são portanto constantes no interior do elemento.

15.5.1 Matriz de rigidez

Sendo B e D constantes, a matriz de rigidez é portanto obtida por


1
Ke = BT DBVe = BT DB detJ (15.23)
6

15.5.2 Vector de força equivalente

O termo do vector de força equivalente às forças de corpo é o seguinte


Z Z
uT f dV = uT NT f detJdξdηdζ (15.24)
Ve Ve

Usando (15.18) pode então chegar-se a


Ve
f= [fx , fy , fz , ..., fx , fy , fz ]T (15.25)
4
cujo vector tem uma dimensão 12 × 1. Considere-se agora uma tracção unifor-
memente distribuida na superficie de fronteira, que neste caso é um triângulo.
Tomando A como a área da superficie onde a força é aplicada formada pelos
nós 1, 2 e 3, então
Ae
Te = [Tx , Ty , Tz , Tx , Ty , Tz , Tx , Ty , Tz , 0, 0, 0]T (15.26)
3

15.5.3 Cálculo de tensões

Depois de calculados os deslocamentos nodais, podem calcular-se as de-


formações através de  = Bd e as tensões por

σ = D = DBd (15.27)

15.6 Elemento hexaédrico lagrangiano recto de 8 nós


As funções de forma do elemento hexaédrico lagrangiano recto de 8 nós (B8),
que é um dos elementos 3D mais simples, são dadas por
1
Ni (ξ, η, ζ) =
(1 + ξi ξ)(1 + ηi η)(1 + ζi ζ) (15.28)
8
O código MATLAB possı́vel para o cálculo das funções de forma e suas deri-
vadas em ordem às coordenadas naturais ξ, η, ζ é apresentado a seguir.
15.7 Exemplo: Barra em tracção 263

xi=coord(1); eta=coord(2); zeta=coord(3);


I1=1/2-coord/2;
I2=1/2+coord/2;
N=[ I1(1)*I1(2)*I1(3);
I2(1)*I1(2)*I1(3);
I2(1)*I2(2)*I1(3);
I1(1)*I2(2)*I1(3);
I1(1)*I1(2)*I2(3);
I2(1)*I1(2)*I2(3);
I2(1)*I2(2)*I2(3);
I1(1)*I2(2)*I2(3) ];
dNdxi=[ -1+eta+zeta-eta*zeta -1+xi+zeta-xi*zeta -1+xi+eta-xi*eta;
1-eta-zeta+eta*zeta -1-xi+zeta+xi*zeta -1-xi+eta+xi*eta;
1+eta-zeta-eta*zeta 1+xi-zeta-xi*zeta -1-xi-eta-xi*eta;
-1-eta+zeta+eta*zeta 1-xi-zeta+xi*zeta -1+xi-eta+xi*eta;
-1+eta-zeta+eta*zeta -1+xi-zeta+xi*zeta 1-xi-eta+xi*eta;
1-eta+zeta-eta*zeta -1-xi-zeta-xi*zeta 1+xi-eta-xi*eta;
1+eta+zeta+eta*zeta 1+xi+zeta+xi*zeta 1+xi+eta+xi*eta;
-1-eta-zeta-eta*zeta 1-xi+zeta-xi*zeta 1-xi+eta-xi*eta ]/8;

15.6.1 Matriz de rigidez

A diferença fundamental para o elemento tetraédrico prende-se com o cálculo


do volume do elemento que precisa de ser calculado numericamente. A ex-
pressão da matriz de rigidez é agora
Z 1 Z 1 Z 1
Ke = BT DBdetJdξdηdζ (15.29)
−1 −1 −1

Este elemento é bastante bom para problemas em que os esforços de com-


pressão ou tracção predominem, mas relativamente pouco preciso em esforços
de flexão.

15.7 Exemplo: Barra em tracção


Considera-se uma barra prismática (2 × 2 × 9) sujeita a tracção uniforme, com
carga tractiva P = 4, encastrada no plano x = 0. O deslocamento na ponta
PL
livre é dado por , onde L = 9 é o comprimento da barra, E = 160GPa
EA
é o módulo de elasticidade do material, ν = 0.3 representa o coeficiente de
Poisson e A = 2 × 2 é a área (constante) da secção transversal.
Para este problema, com a malha indicada na figura 15.3, o erro é de 2.4%,
o que pode ser considerado satisfatório, tendo em conta o tipo de elemento e
a malha grosseira usada. Nesta figura apresenta-se a deformada obtida com 3
elementos prismáticos B8, conforme código MATLAB apresentado a seguir.
264 15 Análise de sólidos tridimensionais

!2 0
0 2
2
4
4
6
8

!2

!1

Figura 15.3. Barra prismática sujeita à tracção uniforme

15.8 Programa para analisar barra 3D em tracção


Apresenta-se o código (barraTraccao3D.m) para a solução de problemas trid-
mensionais, com elementos cúbicos de 8 nós.
1 % viga 3D em traccao, forca uniforme = 4
2 % elementqos quadrilateros (cubicos) -B8-
3 %
4 clear
5 colordef white
6 state = 0;
7 tic
8 % material
9 E0 = 160; % modulo de Young, GPa
10 nu0 = 0.27; % coef. Poisson
11
12 % malha
13 quadType=’GAUSS’;
14 quadOrder=2;
15
16 node=[
17 0.0 0.0 0.0;
18 0.0 2.0 0.0;
19 0.0 2.0 2.0;
20 0.0 0.0 2.0;
21 3.0 0.0 0.0;
22 3.0 2.0 0.0;
15.8 Programa para analisar barra 3D em tracção 265

23 3.0 2.0 2.0;


24 3.0 0.0 2.0;
25 6.0 0.0 0.0;
26 6.0 2.0 0.0;
27 6.0 2.0 2.0;
28 6.0 0.0 2.0;
29 9.0 0.0 0.0;
30 9.0 2.0 0.0;
31 9.0 2.0 2.0;
32 9.0 0.0 2.0];
33
34 element=[1 5 6 2 4 8 7 3;
35 5 9 10 6 8 12 11 7;
36 9 13 14 10 12 16 15 11]
37
38
39 plot_mesh(node,element,’B8’,’r-’)
40
41 numnode=size(node,1); % # de nos
42 numelem=size(element,1); % # de elementos
43
44 us=1:numnode
45 vs=us+numnode
46 ws=vs+numnode
47
48
49 % matriz de elasticidade
50 C=zeros(6,6);
51 C(1:3,1:3)=E0/(1+nu0)/(1-2*nu0)*[ 1-nu0 nu0 nu0;
52 nu0 1-nu0 nu0;
53 nu0 nu0 1-nu0 ];
54 C(4:6,4:6)=E0/(1+nu0)*eye(3);
55
56 %
57 K=sparse(3*numnode,3*numnode); % matriz de rigidez
58 f=zeros(3*numnode,1); % vector de carga
59
60
61 %f(13)=1.0;f(14)=1.0;f(15)=1.0;f(16)=1.0;
62 %f(45)=-1.0;f(46)=-1.0;f(47)=-1.0;f(48)=-1.0;%
63 f_nodes=find(node(:,1)==9);
64 f(f_nodes)=1.0;
65
66 disp([num2str(toc),’ matriz de rigidez’])
67
68 quadorder=2;n=1;sdim=3;
69 quadpoint=zeros(quadorder^sdim ,sdim);
70 quadweight=zeros(quadorder^sdim,1);
71
266 15 Análise de sólidos tridimensionais

72 r1pt=zeros(quadorder,1); r1wt=zeros(quadorder,1);
73
74 r1pt(1) = 0.577350269189626;
75 r1pt(2) =-0.577350269189626;
76
77 r1wt(1) = 1.000000000000000;
78 r1wt(2) = 1.000000000000000;
79
80
81 for i = 1:quadorder
82 for j = 1:quadorder
83 for k = 1:quadorder
84 quadpoint(n,:) = [ r1pt(i), r1pt(j), r1pt(k) ];
85 quadweight(n) = r1wt(i)*r1wt(j)*r1wt(k);
86 n = n+1;
87 end
88 end
89 end
90
91 Q=quadpoint;
92 W=quadweight;
93
94
95 nn=size(element,2);
96 for e=1:numelem % ciclo elemento
97
98 sctr=element(e,:); % conectividades
99 sctrB0=[ sctr sctr+numnode sctr+2*numnode ]; % para matriz B
100
101 for q=1:size(W,1) % ciclo de quadratura
102 coord=Q(q,:); % ponto de quadratura
103 wt=W(q); % peso de quadratura
104
105 xi=coord(1); eta=coord(2); zeta=coord(3);
106 I1=1/2-coord/2;
107 I2=1/2+coord/2;
108 N=[ I1(1)*I1(2)*I1(3);
109 I2(1)*I1(2)*I1(3);
110 I2(1)*I2(2)*I1(3);
111 I1(1)*I2(2)*I1(3);
112 I1(1)*I1(2)*I2(3);
113 I2(1)*I1(2)*I2(3);
114 I2(1)*I2(2)*I2(3);
115 I1(1)*I2(2)*I2(3) ];
116 dNdxi=[ -1+eta+zeta-eta*zeta -1+xi+zeta-xi*zeta -1+xi+eta-xi*eta;
117 1-eta-zeta+eta*zeta -1-xi+zeta+xi*zeta -1-xi+eta+xi*eta;
118 1+eta-zeta-eta*zeta 1+xi-zeta-xi*zeta -1-xi-eta-xi*eta;
119 -1-eta+zeta+eta*zeta 1-xi-zeta+xi*zeta -1+xi-eta+xi*eta;
120 -1+eta-zeta+eta*zeta -1+xi-zeta+xi*zeta 1-xi-eta+xi*eta;
15.8 Programa para analisar barra 3D em tracção 267

121 1-eta+zeta-eta*zeta -1-xi-zeta-xi*zeta 1+xi-eta-xi*eta;


122 1+eta+zeta+eta*zeta 1+xi+zeta+xi*zeta 1+xi+eta+xi*eta;
123 -1-eta-zeta-eta*zeta 1-xi+zeta-xi*zeta 1-xi+eta-xi*eta ]/8;
124
125
126 J0=node(sctr,:)’*dNdxi; % matriz jacobiana
127 invJ0=inv(J0);
128 dNdx=dNdxi*invJ0;
129 detJ0=det(J0);
130
131 if (detJ0 <= 0)
132 disp([’ERRO: jacobiano negativo no elemento : ’,num2str(e)]);
133 end
134
135 % matriz B
136 B0=zeros(6,3*nn);
137 B0(1,1:nn) = dNdx(:,1)’;B0(2,nn+1:2*nn) = dNdx(:,2)’;
138 B0(3,2*nn+1:3*nn) = dNdx(:,3)’;
139
140 B0(4,2*nn+1:3*nn) = dNdx(:,2)’;B0(4,nn+1:2*nn) = dNdx(:,3)’;
141
142 B0(5,1:nn) = dNdx(:,3)’;B0(5,2*nn+1:3*nn) = dNdx(:,1)’;
143
144 B0(6,nn+1:2*nn) = dNdx(:,1)’;B0(6,1:nn) = dNdx(:,2)’;
145
146 % rigidez
147 K(sctrB0,sctrB0)=K(sctrB0,sctrB0)+B0’*C*B0*wt*detJ0;
148
149 end % quadratura
150 end % elemento
151
152 % Condicoes fronteira
153 disp([num2str(toc),’ Condicoes fronteira’])
154 bcwt=mean(diag(K)); % para melhorar o condicionamento
155 %da matriz de coeficientes
156
157 % nos na fronteira de deslocamentos
158 fixedNodeX=find(node(:,1)==0.0);
159 fixedNodeY=fixedNodeX;
160 fixedNodeZ=fixedNodeX;
161 %
162 uFixed=zeros(size(fixedNodeX));
163 vFixed=zeros(size(fixedNodeY));
164 wFixed=zeros(size(fixedNodeZ));
165
166 udofs = fixedNodeX
167 vdofs = fixedNodeY+numnode;
168 wdofs =fixedNodeY+2*numnode;
169
268 15 Análise de sólidos tridimensionais

170
171 f=f-K(:,udofs)*uFixed; f=f-K(:,vdofs)*vFixed; f=f-K(:,wdofs)*wFixed;
172 f(udofs)=uFixed; f(vdofs)=vFixed; f(wdofs)=wFixed;
173 K(udofs,:)=0; K(vdofs,:)=0; K(wdofs,:)=0;
174 K(:,udofs)=0; K(:,vdofs)=0; K(:,wdofs)=0;
175 K(udofs,udofs) =bcwt*speye(length(udofs));
176 K(vdofs,vdofs) =bcwt*speye(length(vdofs));
177 K(wdofs,wdofs) =bcwt*speye(length(wdofs));
178
179
180 % solucao
181 disp([num2str(toc),’ SOLVING SYSTEM’])
182 U1=K\f; % deslocamentos
183 % I=16/12;P=1;
184 % exacto=P*9^3/3/E0/I;
185 % disp([num2str(exacto),’ flecha exacta’])
186 % disp([num2str(U(48)),’ flecha no 13’])
187
188 I=16/12;P=4;
189 exacto=P*9/E0/4;
190 disp([num2str(exacto),’ displa. exact’])
191 disp([num2str(U1(16)),’ displ. calc.’])
192
193 plot_mesh(node,element,’B8’,’r.-’);
194 plot_mesh(node+10*[U1(us) U1(vs) U1(ws)],element,’B8’,’b.-’);
195
16
Análise de cascas com elementos planos

16.1 Introdução
A análise de cascas por elementos finitos pode fazer-se através de elemen-
tos planos ou curvos, diferindo bastante na formulação e na estratégia de
resolução.
A solução de problemas de casca através de eleemntos planos consiste na
junção de elementos de estado plano de tensão com elementos de placa. Os
primeiros asseguram a deformação de membrana enquanto que os segundos
asseguram a contribuição da flexão.
Quando uma casca tem raio de curvatura infinito, torna-se uma placa.
Quando se divide uma casca num número de elementos finitos, cada um des-
tes elementos pode ser uma placa, conforme figura 16.1. A combinação de ele-
mentos planos de tensão e elementos de placa compreende os seguintes graus
de liberdade locais: u0 , v 0 para elementos planos e w0 , θx0 θy0 para elementos de
placa, conforme ilustrado na figura 16.2.

y, v

z, w

x, u

Figura 16.1. Divisão duma casca curva em elementos de placa


270 16 Análise de cascas com elementos planos
y0 , v0 y0
0 0 0
z z ,w
θx0

θy 0
x0 , u0
y0 , v0 x0
z 0 , w0
θx0

=
θy 0

x0 , u0

Figura 16.2. Graus de liberdade locais do elemento de casca plana

16.2 Graus de liberdade locais e globais


A relação entre os graus de liberdade locais e globais pode ser expressa na
forma
    

 u l11 l12 l13 0 0 0   u 
v l l l 0 0 0 v 
   
21 22 23

 
   
 
     
w  l31 l32 l33 0 0 0  w 
  
=  (16.1)
 θx 
   0 0 0 l11 l12 l13  
 θx 
 
 θy   0 0 0 l11 l12 l13   θy 

   
   
  
 
θz local 0 0 0 l11 l12 l13 θz global
 

ou
dlocal = Tdglobal (16.2)
onde (θz )local representa uma rotação que pretende simular o facto duma
rotação de flexão dum elemento representar uma rotação segundo o eixo z 0
noutro elemento. Nesta perspectiva, pode escrever-se em termos locais
    
Km 0 0  dm   fm 
 0 Km 0  df = ff (16.3)
0 0 0 θz 0
   

onde os indices m e f representam os termos de membrana e flexão, res-


pectivamente. para cada nó dum elemento finito de casca de 4 nós, temos de
estabelecer a relação (16.2). Para este elemento temos então
16.3 Código para solução de problema de casca plana 271
 
T 0 0 0
0 T 0 0
T=
  (16.4)
0 0 T 0
0 0 0 T
A matriz de rigidez no sistema global é então obtida através de (16.4) e da
matriz de rigidez local, na forma

Kglobal = TT Klocal T (16.5)

enquanto que o vector de forças global é obtido por

fglobal = TT flocal (16.6)

Quando a casca se torna completamente plana, resultando portanto numa


placa, a matriz de rigidez torna-se singular, sendo necessário introduzir um
pequeno escalar em (16.7) para (ficticiamente) resolver o sistema de equações,
ficando a equação de equilibrio na forma
    
Km 0 0  dm   fm 
 0 Km 0  df = ff (16.7)
0 0 α θz 0
   

onde α é um valor pequeno. No código que se apresenta a seguir, usamos


α = 10e − 5.

16.3 Código para solução de problema de casca plana


Considere-se o exemplo da figura 16.3, onde um casca cilindrica é sujeita a
uma carga distribuida q = 90, correspondente ao peso próprio. Pretende-se
obter o deslocamento em B, comparando-o com a referência 1 . O deslocamento
no ponto B é e 0.3894 para uma malha de 2 × 2 elementos e 0.2979 para uma
malha de 4 × 4 elementos. O valor exacto (da referência) é 0.3024.
Apresentam-se os códigos (MindlinShellEx4elem.m) e rotinas (MindlinShellElem.m)
(ShellDirectionCosines.m) para a solução de problemas de casca plana (exemplo
da figura 1).
1 % casca cilidrica, 2 x 2 elementos
2 % h=espessura
3 % e=modulo de elasticidade
4 % nu=coeficiente de Poisson
5 % q1 = pressao segundo xx, q2 e q3 idem, yy e zz
6 % node = coordenadas dos nos (x,y,z)
7 % element = conectividadees (numeros dos nos em elementos)
8 % gdlElemento = numeracao dos graus de liberdade em cada elemento
1
R. H. MacNeal, R. L. Harder, A proposed standard set of problems to test finite
elements, Finite Elements in Analysis and Design, Vol. 1, 1985, 3-20
272 16 Análise de cascas com elementos planos
y, v

L=50
z, w R=25
A t=0.25
sim E=4.32e8
sim
ν=0
C q=90

B
Livre
θ
D
L
Parede rigida
R 40◦
u = w = θs = 0
x, u

Figura 16.3. Exemplo de aplicação para elementos de casca plana

9 % condFronteira = numeracao dos graus de liberdade prescritos


10 % K = matriz de rigidez em eixos globais
11 % R = vector de forcas nodais em eixos globais
12
13 h=0.25; e = 4.32*10^8; nu = 0; q1 = 0; q2=0; q3=-36.7347*9.8*0.25;
14 node = [0, 0, 25; 25*sin(pi/9), 0, 25*cos(pi/9);
15 25*sin((2*pi)/9), 0, 25*cos((2*pi)/9);
16 0, 25/2, 25; 25*sin(pi/9), 25/2, 25*cos(pi/9);
17 25*sin((2*pi)/9), 25/2, 25*cos((2*pi)/9);
18 0, 25, 25; 25*sin(pi/9), 25, 25*cos(pi/9);
19 25*sin((2*pi)/9), 25, 25*cos((2*pi)/9)];
20 element = [1, 2, 5, 4; 2, 3, 6, 5; 4, 5, 8, 7; 5, 6, 9, 8];
21 ne = size(element,1); nd = length(node); dof = 6*nd;
22 gdlElemento = zeros(ne,24);
23 for i=1:ne
24 lm1 = [6*element(i,1)-5, 6*element(i,1)-4, 6*element(i,1)-3,...
25 6*element(i,1)-2, 6*element(i,1)-1, 6*element(i,1)];
26 lm2 = [6*element(i,2) - 5, 6*element(i,2) - 4, 6*element(i,2)-3,...
27 6*element(i,2)-2, 6*element(i,2)-1, 6*element(i,2)];
28 lm3 = [6*element(i,3) - 5, 6*element(i,3) - 4, 6*element(i,3)-3,...
29 6*element(i,3)-2, 6*element(i,3)-1, 6*element(i,3)];
30 lm4 = [6*element(i,4) - 5, 6*element(i,4) - 4, 6*element(i,4)-3,...
31 6*element(i,4)-2, 6*element(i,4)-1, 6*element(i,4)];
32 gdlElemento(i,:) = [lm1, lm2, lm3, lm4];
33 end
34 condFronteira = [1, 3, 5, 6, 7, 9, 12, 13, 15, 18, 19, 23, 24, 37, 38, ...
35 40, 41, 42, 44, 46, 48, 50, 52, 54];
36 K=zeros(dof); R = zeros(dof,1);
37 % calcula K e R para cada elemento e assembla
38 rotzStiffFactor = 0.00001;
39 for i=1:ne
16.3 Código para solução de problema de casca plana 273

40 con = element(i,:);
41 lm = gdlElemento(i,:);
42 [k,r] = MindlinShellElem(node(con,:), h, e, nu, q1, q2, q3,...
43 ’Global’, rotzStiffFactor);
44 K(lm, lm) = K(lm, lm) + k;
45 R(lm) = R(lm) + r;
46 end
47 % Solucoes (deslocamentos)
48
49 activeDof=setdiff([1:dof]’,[condFronteira]);
50 U=K([activeDof],[activeDof])\R([activeDof]);
51 U1=zeros(dof,1);
52 U1(activeDof)=U;
53 d=U1;
54 d(8*6+3) % deslocamento transverso no n B

1 function [ke, re] = MindlinShellElem(gcoord, h, e, nu, q1, q2, q3,...


2 dir, rotzStiffFactor)
3 % [ke, re] = MindlinShellElem(gcoord, h, e, nu, q1, q2, q3, dir)
4 % calculo da matriz de rigidez do elemento e do vector de carga equivalente
5 % gcoord = coordenadas globais dos nos do elemento
6 % dir = direccaao de carga externa, se for dir = "Local" entao as cargas
7 % distribuidas sao locais, se nao sao consideradas como globais
8 % rotzStiffFactor = factor de rigidez rotacional
9 % ke = rigidez do elemento, re = vector de carga equivalente.
10
11 elemArea = 0;
12 % cosenos directores
13 H = ShellDirectionCosines(gcoord);
14 coord=gcoord;
15 for i=1:size(gcoord,1)
16 coord(i,:) = (H*gcoord(i,:)’)’;
17 end
18 qlocal = [q1; q2; q3];
19 if strcmp(dir,’Global’)
20 qlocal = H*qlocal;
21 end
22 qs = qlocal(1); qt = qlocal(2); qr=qlocal(3);
23 % matriz de transformacao de coordenadas (T)
24 T = zeros(24);
25 for i=1:3:24
26 T(i:i+2,i:i+2)=H;
27 end
28 % matriz constitutiva
29 g = e/(2*(1 + nu)); d = e*h^3/(12*(1 - nu^2));
30 dp = e*h /(1 - nu^2);
31 c = [1, nu, 0; nu, 1, 0; 0, 0, (1 - nu)/2];
32 % Gauss point locations and weights
33 pt = 1/sqrt(3);
274 16 Análise de cascas com elementos planos

34 Q = [-pt, -pt; pt, -pt; -pt, pt; pt, pt];


35 W = [1, 1, 1, 1];
36
37 % componente de flexao
38 dof = 24;
39 ke=zeros(dof); re=zeros(dof,1);
40 k1=zeros(8); k2=zeros(12);
41 for i=1:size(Q,1)
42 s = Q(i, 1); t = Q(i, 2); w = W(i);
43 n = [(1/4)*(1 - s)*(1 - t), (1/4)*(s + 1)*(1 -t), ...
44 (1/4)*(s + 1)*(t + 1), (1/4)*(1 - s)*(t + 1)];
45 dns=[(-1 + t)/4, (1 - t)/4, (1 + t)/4, (-1 - t)/4];
46 dnt=[(-1 + s)/4, (-1 - s)/4, (1 + s)/4, (1 - s)/4];
47 x = n*coord(:,1); y = n*coord(:,2);
48 dxs = dns*coord(:,1); dxt = dnt*coord(:,1);
49 dys = dns*coord(:,2); dyt = dnt*coord(:,2);
50 J = [dxs, dxt; dys, dyt];
51 detJ = det(J);
52 bx = (J(2, 2)*dns - J(2, 1)*dnt)/detJ;
53 by = (-J(1, 2)*dns + J(1, 1)*dnt)/detJ;
54 b = [bx(1),0,bx(2),0,bx(3),0,bx(4),0;
55 0,by(1),0,by(2),0,by(3),0,by(4);
56 by(1),bx(1),by(2),bx(2),by(3),bx(3),by(4),bx(4)];
57 k1 = k1 + dp*detJ*w*b’*c*b;
58 b = [0,0,-bx(1),0,0,-bx(2),0,0,-bx(3),0,0,-bx(4);
59 0,by(1),0,0,by(2),0,0,by(3),0,0,by(4),0;
60 0,bx(1),-by(1),0,bx(2),-by(2),0,bx(3),-by(3),0,bx(4),-by(4)];
61 k2 = k2 + d*detJ*w*b’*c*b;
62 re = re + detJ*w*[qs*n(1),qt*n(1),qr*n(1),0,0,0,...
63 qs*n(2),qt*n(2),qr*n(2),0,0,0,...
64 qs*n(3),qt*n(3),qr*n(3),0,0,0,...
65 qs*n(4),qt*n(4),qr*n(4),0,0,0]’;
66 elemArea = elemArea + detJ*w;
67 end
68 % componente de corte transverso
69 pt = 0;
70 Q = [[pt, pt]];
71 W = [4];
72
73 for i=1:size(Q,1)
74 s = Q(i, 1); t = Q(i, 2); w = W(i);
75 n = [(1/4)*(1 - s)*(1 - t), (1/4)*(s + 1)*(1 -t), ...
76 (1/4)*(s + 1)*(t + 1), (1/4)*(1 - s)*(t + 1)];
77 dns=[(-1 + t)/4, (1 - t)/4, (1 + t)/4, (-1 - t)/4];
78 dnt=[(-1 + s)/4, (-1 - s)/4, (1 + s)/4, (1 - s)/4];
79 x = n*coord(:,1); y = n*coord(:,2);
80 dxs = dns*coord(:,1); dxt = dnt*coord(:,1);
81 dys = dns*coord(:,2); dyt = dnt*coord(:,2);
82 J = [dxs, dxt; dys, dyt];
16.3 Código para solução de problema de casca plana 275

83 detJ = det(J);
84 bx = (J(2, 2)*dns - J(2, 1)*dnt)/detJ;
85 by = (-J(1, 2)*dns + J(1, 1)*dnt)/detJ;
86 b = [bx(1),0,n(1),bx(2),0,n(2),bx(3),0,n(3),bx(4),0,n(4);
87 by(1),-n(1),0,by(2),-n(2),0,by(3),-n(3),0,by(4),-n(4),0];
88 k2 = k2 + 5/6*g*h*detJ*w* b’*eye(2)*b;
89 end
90 % colocar a rigidez na ordem habitual (u,v,w,theta_x, theta_y, theta_z)
91 nlm = [1, 2, 7, 8, 13, 14, 19, 20];
92 ke(nlm, nlm) = k1;
93 nlm = [3, 4, 5, 9, 10, 11, 15, 16, 17, 21, 22, 23];
94 ke(nlm, nlm) = k2;
95 rotzStiff = rotzStiffFactor*e*h*elemArea;
96 % elemento adicional (ficticio) para cascas complanares
97 for i=6:6:24
98 ke(i, i) = rotzStiff;
99 end
100 % local -> global
101 ke = T’*ke*T;
102 re = T’*re;
103 end

1 function H = ShellDirectionCosines(nodes)
2 % H = ShellDirectionCosines(nodes)
3 n1 = nodes(1,:);
4 n2 = nodes(2,:);
5 n3 = nodes(3,:);
6 L = sqrt((n2 - n1)*(n2 - n1)’);
7 ex = (n2 - n1)/L;
8 ezz = cross(n2 - n1, n3 - n1);
9 Lt = sqrt(ezz*ezz’);
10 ez = ezz/Lt;
11 ey = cross(ez, ex);
12 H = [ex; ey; ez];
13 end
17
Análise de vibrações livres

17.1 Introdução
Neste capı́tulo faz-se a análise de vibrações livres de vários tipos de estruturas,
através do método dos elementos finitos. Apresenta-se uma explicação teórica
do método, com cálculo das matrizes de massa e de rigidez para vários tipos de
elementos e apresentam-se vários programas MATLAB que resolvem alguns
problemas tipicos.

17.2 Equações de movimento


Considere-se o principio de Hamilton que estabelece
Z t2
(δ(T − U ) + δW )dt = 0 (17.1)
t1

onde U é a energia potencial do sistema, T é a energia cinética e W o


trabalho das forças não conservativas. Consideram-se neste capı́tulo a energia
potencial enquanto energia de deformação elástica.
A tı́tulo de exemplo, considere-se o sistema de massa simples e mola da
figura 17.1.
Podemos usar o principio de Hamilton para derivar as equações de movi-
mento do sistema, onde
1 2
U= ku (17.2)
2
1
T = mu̇2 (17.3)
2

δW = f δu (17.4)
278 17 Análise de vibrações livres

u(t), f (t)
m

Figura 17.1. Sistema de massa e mola

du
Note-se que u̇ representa a primeira derivada em ordem ao tempo, u̇ = .
dt
Substituindo em (17.1), obtemos
Z t2 Z t2
1 1
δ( mu̇2 − ku2 )dt + f δudt = 0 (17.5)
t1 2 2 t1
1
ou seja Z t2
(mu̇δ u̇ − kuδu + f δu)dt = 0 (17.6)
t1

Integrando por partes o primeiro termo, obtemos

Z t2 Z t2 Z t2
t
mu̇δ u̇dt = [mu̇δu]t21 − müδudt = − müδudt (17.7)
t1 t1 t1

porque δu é nulo em t1 e t2 .
Substituindo (17.7) em (17.6), obtemos então
Z t2
(−mü − ku + f )δudt = 0 (17.8)
t1

Dado que δu é arbitrário, a equação (17.8) só pode ser satisfeita se

mü + ku = f (17.9)
o que representa a equação de movimento do sistema, sem termos
dissipativos.
Tomando agora o sistema da figura 17.2, a energia cinética do sistema é
dada por
1 1
m1 u̇21 + m2 u̇22
T = (17.10)
2 2
e a energia de deformação é obtida por

1
Note-se que aqui δ u̇ = δ(du/dt) = d/dt(δu)
17.2 Equações de movimento 279
u1 u2

f2
m1 m2

k1 k2

Figura 17.2. Sistema de massa e mola, com 2 graus de liberdade

1 1 1 1
U= k1 u21 + k2 (u2 − u1 )2 = (k1 + k2 )u21 − k2 u1 u2 + k2 u22 (17.11)
2 2 2 2
O trabalho realizado pelas forças exteriores é obtido por

δW = f2 δu2 (17.12)
As equações de Lagrange são expressas, para sistemas com vários graus de
liberdade, na forma (desprezando os termos dissipativos)
 
d ∂T ∂U
+ = Qj , j = 1, 2, ..., n (17.13)
dt ∂ q̇j ∂qj
sendo qj , q̇j os deslocamentos e velocidades generalizadas e Qj as forças gene-
ralizadas.
Aplicando então as equações de Lagrange a (17.10)-(17.12), obtem-se

m1 ü1 + (k1 + k2 )u1 − k2 u2 = 0, m2 ü2 − k2 u1 + k2 u2 = f2 (17.14)

ou, na forma matricial


       
m1 0 ü1 k1 + k2 −k2 u1 0
+ = (17.15)
0 m2 ü2 −k2 k2 u2 f2
ou ainda

Mq̈ + Kq = Q (17.16)
onde M representa a matriz de massa do sistema, K a matriz de rigidez do
sistema, q o vector de deslocamentos, q̈ o vector de acelerações e Q o vector
de forças externas aplicadas no sistema estrutural.
Note-se que podemos escrever ainda, na forma matricial,
1 T 1
T= q̇ Mq̇; U = qT Kq (17.17)
2 2
onde q̇ representa o vector de velocidades do sistema.
280 17 Análise de vibrações livres

17.3 Elemento de barra


Considere-se o elemento de barra da figura 17.3, com secção constante de área
A e comprimento 2a. Considera-se ainda que a única componente de tensão
não nula é σx , uniforme em cada secção transversal.

x = −a dx x=a
x

u
Figura 17.3. Elemento de barra no sistema de coordenadas local

O trabalho realizado numa das faces do incremento dx é σx A, sendo ainda


x a componente de deformação axial.
O trabalho realizado é então
1
σx Ax dx
dW = (17.18)
2
O trabalho armazenado como energia de deformação dU é
1
σx x Adx
dU = (17.19)
2
sendo ainda possivel obter a energia de deformação total como

1 a
Z
U= σx x Adx (17.20)
2 −a
Assumindo um comportamento linear elástico do material da barra,

σx = Ex (17.21)
onde E representa o módulo de elasticidade do material, podemos substi-
tuir (17.21) em (17.20)

1 a
Z
U= EA2x dx (17.22)
2 −a
A relação entre a deformação x e o deslocamento axial u é
du
x = (17.23)
dx
Podemos então substituir (17.23) em (17.22) obtendo finalmente
17.3 Elemento de barra 281

Z a  2
1 du
U= EA dx (17.24)
2 −a dx
A energia cinética dum pequeno incremento dx, é dada por 1/2u̇2 ρAdx,
onde ρ é a massa por unidade de volume do material da barra. A energia
cinética do elemento é então definida por

1 a
Z
T = ρAu̇2 dx (17.25)
2 −a
Caso ocorra uma força aplicada p, por unidade de comprimento, a força
no incremento dx é pdx e o trabalho realizado num deslocamento virtual δu
é pδudx. O trabalho virtual para o elemento é então
Z a
δW = pδudx (17.26)
−a

Considere-se o elemento finito de barra de 2 nós, conforme ilustrado na


figura 17.4, cujo campo de deslocamentos axiais é dado por

u = N1 (ξ)u1 + N2 (ξ)u2 (17.27)


onde
1
(1 + ξj ξ)
Nj (ξ) = (17.28)
2
sendo ξj a coordenada natural do nó j, ξj ∈ [−1, +1].

x = −a, ξ = −1 x = a, ξ = 1

1 2 ξ x
L = 2a

Figura 17.4. Elemento de barra de 2 nós

Em termos matriciais podemos escrever (17.27) na forma


 
 u1
= Nue

u = N1 N2 (17.29)
u2
Para um dado elemento e podemos exprimir a energia cinética

Z a Z 1 Z 1
1 2 1 1
T = ρAu̇ dx = ρAu̇ adξ = u̇eT ρAa
2
NT Ndξ u̇e (17.30)
2 −a 2 −1 2 −1
282 17 Análise de vibrações livres

ou ainda
1 eT e e
u̇ M u̇ T = (17.31)
2
onde Me representa a matriz de massa do elemento, neste caso obtida por
Z 1
e
M = ρAa NT Ndξ (17.32)
−1

Considerando as funções de forma do elemento de barra,


1 1
(1 − ξ) ; N2 (ξ) = (1 + ξ)
N1 (ξ) = (17.33)
2 2
podemos calcular explicitamente a matriz de massa do elemento de barra,
na forma2

1
Z(1 − ξ) 
1  
2 ρAa 2 1
Me = ρAa  1 (1 − ξ) 1


2 2 (1 + ξ) dξ = (17.34)
−1 1 (1 + ξ) 3 12
2

Podemos agora exprimir a energia de deformação do elemento, na forma

Z a  2 Z 1  2 Z 1
1 du 1 EA du 1 eT EA 0 T 0
U= EA dx = adξ = u N N dξue
2 −a dx 2 −1 a2 dξ 2 −1 a
(17.35)
du
onde N0 = . A energia de deformação é assim obtida por

1
U = ueT Ke ue (17.36)
2
onde Ke representa a matriz de rigidez do elemento, neste caso obtida por
Z 1
EA T
Ke = N0 N0 dξ (17.37)
a −1

Para este elemento de barra, as derivadas das funções de forma são


dN1 1 dN2 1
=− ; = (17.38)
dξ 2 dξ 2
e portanto a matriz de rigidez pode ser definida explicitamente como
Z 1 − 12
 
 
EA   − 1 1 dξ = EA 1 −1
Ke =
 
(17.39)
a −1 1 2 2 2a −1 1
2
2
note-se que somando os elementos da matriz de massa se obtem a massa total do
elemento, ρA2a
17.3 Elemento de barra 283

Note-se que fazendo L = 2a se obtem a mesma expressão que já foi ante-
riormente obtida pelo principio dos trabalhos virtuais.
Note-se ainda que a soma dos termos em cada linha da matriz é zero, o
que mostra que se o elemento se movimentar como corpo rigido, as forças de
recuperação elástica são nulas.
O trabalho realizado pelas forças distribuidas é definido por
Z a Z 1 Z 1
δW e = pδudx = pδuadξ = δueT a pNT dξ (17.40)
−a −1 −1
ou

δW e = δueT f e (17.41)
onde o vector de forças nodais equivalentes a forças distribuidas, para um
elemento de 2 nós e supondo uma força constante p, é dado por
Z 1
ap 1 1 − ξ
Z    
e T 1
f =a pN dξ = dξ = ap (17.42)
−1 2 −1 1 + ξ 1
Para uma barra composta por vários elementos, as expressões das energias
são obtidas pela soma (espalhamento) das energias de todos os elementos
individuais.
Considere-se, a tı́tulo de exemplo, a barra da figura 17.5, dividida em 4
elementos finitos e 5 nós.

No
1 2 3 4 5

1 2 3 4 Elemento

Figura 17.5. Barra dividida em 4 elementos de 2 nós

Neste exemplo o vector de deslocamentos da estrutura é

uT = u1
 
u2 u3 u4 u5 (17.43)
3
Somando a contribuição de todos os elementos, obtemos
4
1 TX e 1
T = u̇ M u̇ = u̇T Mu̇ (17.44)
2 e=1
2

3
tendo em conta a numeração dos graus de liberdade
284 17 Análise de vibrações livres
4
1 TX e 1
U= u K u = u̇T Ku̇ (17.45)
2 e=1
2
4
X
δW = uT f e = u̇T f (17.46)
e=1

onde M, K e f são, respectivamente, a matriz de massa, a matriz de rigidez


e o vector de forças da estrutura.
Verifica-se então que a matriz de massa da estrutura é obtida por

 

 

      
2 1 00 0 0 0 00 0 2100 0

 


 


1 2 00 0 0 2 10 0

 1 4 1 0 0
ρAa 

0
    ρAa  
M= 0 00 0 + 0
 1 20 0 +... = 3 0 1 4 1
 0 (17.47)
3 
0



 0 00 0 0 0 00 0 


0 0 1 4 1
0 0 00 0 0 0 00 0 0001 2

 


 


| {z } | {z } 

elemento 1 elemento 2

De igual modo, a matriz de rigidez da estrutura é obtida por


 
1 −1 0 0 0
−1 2 −1 0 0 
EA   0 −1 2 −1 0 

K= (17.48)
2a  
0 0 −1 2 −1
0 0 0 −1 2
e o vector de forças nodais equivalentes às forças distribuidas expresso por
 
1
2
 
2
f = ap  (17.49)

2
1

As expressões (17.47) a (17.49) são agora substituidas nas equações de


Lagrange

Mü + Ku = f (17.50)
Tendo em conta a análise de vibrações livres (δW = 0), assumindo um
movimento harmónico do tipo

u(t) = Asenωt (17.51)


onde A são as amplitudes de vibração e ω a frequência de vibração. Subs-
tituindo (17.51) em (17.50) obtem-se o problema generalizado de valores e
vectores próprios
17.3 Elemento de barra 285

K − ω2 M A = 0
 
(17.52)
que tem solução não trivial se o determinante for nulo, ou seja

K − ω 2 M = 0

(17.53)
Considere-se, então, a barra encastrada da figura 17.6, para a qual quere-
mos calcular as frequências e os modos de vibração.

F (t)

x=0 x=L

Figura 17.6. Barra encastrada

A solução exacta pelo método de Rayleigh-Ritz4 para as frequências na-


turais ou livres é referenciada como

Modo 1: ω̄ = 1.571; Modo 2: ω̄ = 4.712 (17.54)


onde a frequência normalizada ω̄ é obtida como
r
ρL2
ω̄ = ω (17.55)
E
sendo L o comprimento da barra.
Usando uma solução com apenas um elemento finito, obtemos
  
1  ρAL 2 1 u̇1
T = u̇1 u̇2 (17.56)
2 6 1 2 u̇2
  
1  ρAL 1 −1 u1
U= u1 u2 (17.57)
2 6 −1 1 u2
Impondo a condição fronteira u1 = 0 e substituindo, obtemos
 
EA 2 ρAL
.1 − ω .2 A2 = 0 (17.58)
L 6
4
Ver M. Petyt, Introduction to finite element vibration analysis, Cambridge Press,
1990
286 17 Análise de vibrações livres
q
E
cuja solução é ω1 = 1.732 ρL 2.

Usando uma solução com 2 elementos finitos, cada um com comprimento


L/2, obtemos o seguinte sistema de equações (impondo u1 = 0)
      
2EA 2 −1 2 ρAL 4 1 A1
−ω =0 (17.59)
L −1 1 12 1 2 A2
Este sistema de equações tem como solução analitica
s s
E E
ω1 = 1.610 ; ω2 = 5.628 (17.60)
ρL2 ρL2
com os modos de vibração
   
0 0
0.707 e −0.707
1.0 1.0

Na tabela 17.1 compara-se a solução por elementos finitos com os valores


exactos para as frequências normalizadas

Modo Solução EF Solução exacta


1 ele. 2 elem.
1 1.732 1.610 1.571
2 - 5.628 4.712
Tabela 17.1. Comparação de frequências aproximadas por elementos finitos com
soluções exactas

17.4 Programa MATLAB para barra encastrada


Na listagem a seguir apresentada resolve-se o problema de vibrações livres
da barra encastrada. Registe-se que o MATLAB permite resolver o problema
de valores e vectores próprios com o comando eig(K,M) , sendo K,M as
matrizes de rigidez e massa do sistema. Note-se que de facto só se calculam
os valores e vectores próprios para os graus de liberdade activos (todos os que
não são prescritos nos apoios), fazendo
[V,D]=eig(K(activeDof,activeDof),M(activeDof,activeDof));
Note-se ainda que para o cálculo dos modos de vibração podem ser incluidos
(como nulos) os valores nos apoios. Não se usa essa técnica neste código, mas
usa-se noutros códigos, em particular onde se pretende desenhar os modos
17.4 Programa MATLAB para barra encastrada 287

de vibração. Note-se aqui o uso de duas técnicas MATLAB interessantes. A


primeira é find que pretende encontrar os nós que respeitam uma dada
condição, o que é muito útil para impor condições fronteira. A segunda é
setdiff que nos permite rapida e concisamente definir quais os nós activos
(todos excepto os nós de fronteira).
Com este código, obtiveram-se os resultados apresentados na tabela 17.2.

Modo Solução Elementos Finitos Solução exacta


1 ele. 2 elem. 5 elem. 10 elem. 20 elem. 50 elem.
1 1.7321 1.6114 1.5773 1.5724 1.5712 1.5709 1.571
2 - 5.6293 4.8881 4.7561 4.7233 4.7141 4.712
Tabela 17.2. Comparação de frequências aproximadas por elementos finitos com
soluções exactas, usando o código barraVibracoes.m

Apresenta-se o código (barraVibracoes.m).


1 clear all;tic
2 E = 1; % mdulo E
3 L = 1; % comprimento de barra
4 A=1;EA=E*A;rho=1;
5 numx = 50;
6 P = 1; % pressao uniforme (caso exista)
7 % malha
8 node=linspace(0,L,numx+1);xx=node;
9 for i=1:numx; element(i,1)=i; element(i,2)=i+1;end
10 numnode=size(node,2); % num. nos
11 numelem=size(element,1); % num. elementos
12
13 K=zeros(numnode,numnode);
14 M=zeros(numnode,numnode);
15 % rigidez
16
17 W=zeros(2); Q=zeros(2);
18
19 Q(1) = 0.577350269189626;
20 Q(2) =-0.577350269189626;
21
22 W(1) = 1.; W(2) = 1.;
23
24 for e=1:numelem;
25 indice=element(e,:); nn=length(indice);
26 length_element=xx(indice(2))-xx(indice(1));
27 detJ0=length_element/2;invJ0=1/detJ0;
28 for q=1:size(W,1) ;
29 pt=Q(q,:); wt=W(q);
288 17 Análise de vibrações livres

30 pt=pt(1);
31 N=([1-pt,1+pt]/2)’;
32 dNdxi=[-1;1]/2;
33 dNdx=dNdxi*invJ0;
34 % B
35 B=zeros(1,nn); B(1:nn) = dNdx(:);
36 % K
37 K(indice,indice)=K(indice,indice)+B’*B*W(q)*detJ0*EA;
38 M(indice,indice)=M(indice,indice)+N*N’*W(q)*detJ0*rho*A;
39 end
40 end
41 fixedNodeW =find(xx==min(node(:)))’; dofs=[fixedNodeW]
42 activeDof=setdiff([1:numnode]’,[dofs]);
43
44 % eigenproblem
45
46 [V,D]=eig(K(activeDof,activeDof),M(activeDof,activeDof));
47 D = diag(sqrt(D))*sqrt(rho*L*L/E);
48 D = sort(D);
49

17.5 Viga de Euler-Bernoulli


Considere-se o elemento de viga da figura 17.7, onde se assume que a vibração
ocorre no plano principal xy da viga, que possui secção transversal constante
de área A.

y, w

x, u
z

x = −a dx x=a

Figura 17.7. Elemento de viga recto de 2 nós no sistema de coordenadas local

Assume-se, pela teoria de vigas de Euler-Bernoulli, que as secções pla-


nas indeformadas permanecem rectas e perpendiculares ao plano médio após
deformação.
Assim, o deslocamento u, a uma distância y do eixo médio da viga é dado
por
17.5 Viga de Euler-Bernoulli 289

dw
u = −y (17.61)
dx
sendo w o deslocamento transverso (flecha).
As componentes de deformação são obtidas por

∂u ∂2w ∂u ∂w
x = = −y 2 ; γxy = + =0 (17.62)
∂x ∂x ∂y ∂x
A energia de deformação é dada por
Z Z
1 1
U= σx x dV = E2x dV (17.63)
2 V 2 V
Assumindo dV = dAdx, integrando na direcção z, obtemos
a 2
∂2w
Z 
1
U= EIz dx (17.64)
2 −a ∂x2
onde Iz é o momento de inércia da secção transversal da viga.
A energia cinética num incremento pequeno dx é 1/2ẇ2 ρAdx, sendo a
energia cinética no elemento dada por

1 a
Z
T = ρAẇ2 dx (17.65)
2 −a
Havendo uma força distribuida por unidade de comprimento, p, a força
no incremento dx é pdx. O trabalho realizado num incremento virtual δw é
pδwdx, sendo o trabalho virtual para o elemento completo dado por
Z a
δW = pδwdx (17.66)
−a

dw
Tendo em conta que é necessário tomar w e como graus de liberdade
dx
para cada nó do elemento de viga, temos 4 graus de liberdade para um ele-
mento finito de 2 nós. Podemos usar funções de forma de Hermite, onde

w = N(ξ)we (17.67)
onde
 
eT dw1 dw2
w = w1 w2 (17.68)
dx dx
sendo
290 17 Análise de vibrações livres

1
N1 (ξ) = (2 − 3ξ + ξ 2 ) (17.69)
4
1
N2 (ξ) = (1 − ξ − ξ 2 + ξ 3 ) (17.70)
4
1
N3 (ξ) = (2 + 3ξ − ξ 2 ) (17.71)
4
1
N4 (ξ) = (−1 − ξ + ξ 2 + ξ 3 ) (17.72)
4
Tendo em conta as expressões das energias para o elemento de viga de
Euler-bernoulli e substituindo (17.67) e (17.69), podemos escrever

Z a Z 1 Z 1
1 1 2 1
T = ρAẇ dx = ρAẇ adξ = ẇeT ρAa
2
NT Ndξ ẇe (17.73)
2 −a 2 −1 2 −1

onde a matriz de massa do elemento é obtida por

 
78 22a 27 −13a
1 2
13a −6a2 
Z
ρAa 
 22a 8a
Me = ρAa NT Ndξ =  (17.74)
−1 105  27 13a 78 −22a
−13a −6a2 −22a 8a2

A energia de deformação é obtida por

a 2 1 2
∂2w ∂2w
Z  Z 
1 1 EIz
U= EIz dx = adξ
2 −a ∂x2 2 −1 a4 ∂ξ 2
Z 1
1 EIz T
= weT 3 N00 N00 dξwe (17.75)
2 a −1

d2 N
onde N00 = , sendo a matriz de rigidez do elemento da viga dado por
dξ 2
 
Z 1 3 3a −3 3a
EIz EIz  2 2
Ke = 3
T
N00 N00 dξ =  3a 4a −3a 2a  (17.76)
a −1 2a3 −3 −3a 3 −3a
3a 2a2 −3a 4a2

O trabalho realizado pelas forças distribuidas é definido por


Z a Z 1 Z 1
δW e = pδwdx = pδwadξ = weT a pNT dξ (17.77)
−a −1 −1

O vector de forças nodais equivalentes é então


17.5 Viga de Euler-Bernoulli 291
 
3
Z 1
ap 
a
f e = ap NT dξ =

(17.78)
−1 3  3 
−a
O processo de obtenção das frequências naturais ou livres e dos modos de vi-
bração para o elemento de viga é idêntico ao do elemento de barra. Considere-
se a tı́tulo de exemplo a viga encastrada da figura 17.8, para a qual se pre-
tendem estudar as frequências naturais.

x=0
x=L

Figura 17.8. Viga encastrada

Usando uma solução com 1 elemento finito, colocando as condições fron-


teira correspondentes ao encastramento, w1 = w10 = 0, obtemos o seguinte
sistema de equações
      
EIz 12 −6L 2 ρAL 78 −11L w2
− ω =0 (17.79)
L3 −6L 4L2 210 −11L 2L2 θ2
Obtemos então as frequências naturais
s
EIz
ω1 = 3.533 (17.80)
ρAL4
s
EIz
ω2 = 34.807 (17.81)
ρAL4
com as soluções exactas de Rayleigh-Ritz
s
EIz
ω1 = 3.516 (17.82)
ρAL4
s
EIz
ω2 = 22.035 (17.83)
ρAL4
Embora haja alguma discrepância para a segunda frequência, isso poderá
ser melhorado aumentando o número de elementos.
292 17 Análise de vibrações livres

17.6 Código MATLAB para vibrações livres de vigas


finas
Na listagem a seguir apresentada resolve-se o problema de vibrações livres da
viga encastrada. Com este código, obtiveram-se os resultados apresentados na
tabela 17.3.

Modo Solução Elementos Finitos Solução exacta


1 ele. 2 elem. 5 elem. 10 elem.
1 3.5327 3.5177 3.5161 3.5160 3.516
2 34.8069 22.2215 22.0455 22.0352 22.035
Tabela 17.3. Comparação de frequências aproximadas por elementos finitos com
soluções exactas, usando o código vigaBernoulliVibracoes.m

Apresenta-se o código (vigaBernoulliVibracoes.m).


1 clear all
2 %material, seccao, ...
3 rho=1;A=1; E=1; I=1; EI=E*I;
4 % malha
5 numx=10;
6 node=linspace(0,1,numx+1)’;xx=node;L=max(node);
7 % rigidez, massa
8 for i=1:numx; element(i,1)=i; element(i,2)=i+1;end
9 numnode=size(node,1); numelem=size(element,1);
10 K=zeros(2*numnode,2*numnode);
11 M=zeros(2*numnode,2*numnode);
12 for e=1:numelem ;
13 index=element(e,:) ;
14 indexB=[ 2*(index(1)-1)+1 2*(index(2)-1) ...
15 2*(index(2)-1)+1 2*(index(2)-1)+2];
16 ll=xx(index(2))-xx(index(1));
17 k1=EI/(ll)^3*[12 6*ll -12 6*ll;
18 6*ll 4*ll^2 -6*ll 2*ll^2;
19 -12 -6*ll 12 -6*ll ;
20 6*ll 2*ll^2 -6*ll 4*ll^2];
21 a=ll/2;
22 m1=rho*A*a/105*[78 22*a 27 -13*a;
23 22*a 8*a*a 13*a -6*a*a;
24 27 13*a 78 -22*a;
25 -13*a -6*a*a -22*a 8*a*a];
26
27 K(indexB,indexB)=K(indexB,indexB)+k1;
28 M(indexB,indexB)=M(indexB,indexB)+m1;
29 end
17.7 Vibrações livres de vigas Timoshenko 293

30
31 % condicoes fronteira
32
33 % encastrado em ambos os bordos
34 %fixedNodeU =[1 2*numx+1]’; fixedNodeV =[2 2*numx+2]’;
35 % simplesmente apoiado em ambos os bordos
36 %fixedNodeU =[1 2*numx+1]’; fixedNodeV =[]’;
37
38 % encastrado em x=0
39 fixedNodeU =[1]’; fixedNodeV =[2]’;
40 dofs=[fixedNodeU;fixedNodeV];
41 activos=setdiff([1:2*numnode]’,[dofs]);
42
43 % problema de vibracoes livres
44
45 [V,D]=eig(K(activos,activos),M(activos,activos));
46 D = diag(sqrt(D)*L*L*sqrt(rho*A/E/I));
47 D = sort(D);
48
49

17.7 Vibrações livres de vigas Timoshenko


O elemento de viga espessa ou viga de Timoshenko considera efeitos de es-
forços de corte transverso, ao contrário do que acontecia com a viga de Euler-
Bernoulli. Em vigas espessas, as ondas de flexão têm velocidades bem menores
que as ondas de membrana, pelo que se tornam relevantes os efeitos de corte
transverso na energia de deformação, bem como a consideração da rotação da
secção na energia cinética.
Embora se continue a assumir que as secções transversais permaneçam
planas, elas não ficam necessariamente normais ao eixo neutro da viga. Desta
forma, o deslocamento u é obtido por

u = −yθz (17.84)
onde θz (x) é a rotação da secção transversal numa dada posição do eixo dos
x.
As deformações não nulas x e γxy são definidas por
∂u ∂θz
x = = −y (17.85)
∂x ∂x
∂u ∂w ∂w
γxy = + = −θx + (17.86)
∂y ∂x ∂x
sendo w o deslocamento transversal da viga, segundo o eixo dos y.
A energia de deformação no elemento é a soma das energias de flexão e de
corte transverso,
294 17 Análise de vibrações livres

Z Z
1 1
U= σx x dV + τxy γxy dV (17.87)
2 V 2 V
onde a tensão normal é dada por

σx = Ex (17.88)
e a tensão de corte transverso é obtida por

τxy = kGγxy (17.89)


sendo G o módulo de corte
E
G= (17.90)
2(1 + ν)
e k é habitualmente designado por factor de correcção ao corte, tipicamente
5/6 ou π 2 /12 em vibrações livres. Este factor aparece pelo facto desta teoria
desprezar a variação parabólica da deformação através da secção transversal.
Substituindo estas expressões na energia de deformação, considerando dV =
dAdx e integrando através da espessura, obtem-se

Z Z
1 1
U= E2x dV + 2
kGγxy dV =
2 V 2 V
Z a  2 Z a  2
1 ∂θz 1 ∂w
EIz dx + kAG − θz dx (17.91)
2 −a ∂x 2 −a ∂x

A energia cinética da viga é composta de duas partes, uma relativa à


translação, outra relativa à rotação, na forma

1 a 1 a
Z Z
2
T = ρAẇ dx + ρIz θ̇z2 dx (17.92)
2 −a 2 −a
A expressão para o trabalho das forças exteriores é idêntica à das vigas de
Euler-Bernoulli, ou seja Z a
δW = pδwdx (17.93)
−a

Considerando agora um elemento finito de 2 nós, representado na figura


17.9, onde cada nó possui 2 graus de liberdade independentes, w e θz .
A interpolação de deslocamentos é agora independente, ou seja,

w = Nwe (17.94)

θz = Nθze (17.95)
onde
17.8 Código MATLAB para vibrações de vigas Timoshenko 295

1 2 x

θz1 θz2

w1 w2
L = 2a

x = −a x=a

Figura 17.9. Elemento de viga espessa de dois nós

1 1

N= 2 (1 − ξ) 2 (1 + ξ) (17.96)
em coordenadas naturais ξ ∈ [−1, +1].
Tal como anteriormente, podemos calcular as matrizes de rigidez e massa
do elemento, na forma

Z 1  T   Z 1  T  
EIz dN dN 1 dN 1 dN
Ke = adξ+ kGA −N − N adξ
−1 a2 dξ dξ −1 a dξ a dξ
(17.97)
Z 1 Z 1
e T
M = ρAN N adξ + ρIz N T N adξ (17.98)
−1 −1

17.8 Código MATLAB para vibrações de vigas


Timoshenko
No código MATLAB a seguir listado resolve-se o problema da viga encastrada
fina, conforme ilustrado na figura 17.8. Para o efeito, considerou-se L = 1, h =
0.001, bem como uma adimensionalização
r
ρA
ω̄ = ωL2 (17.99)
EIz
Os resultados para este exemplo de viga fina encastrada, em termos da
frequência adimensional são apresentados na tabela 17.4.
Apresenta-se o código (vigaTimoshenkoVibracoes.m).
1 clear all;clf;
2 %
3 E0 = 10e7; % mdulo E
4 nu0 = 0.30; % Poisson
5 %
6 L = 1; % comprimento
7 thickness=0.001;
296 17 Análise de vibrações livres

Modo Solução Elementos Finitos Solução exacta


1 ele. 2 elem. 5 elem. 10 elem. 50 elem.
1 3.4639 3.5915 3.5321 3.5200 3.5159 3.516
2 588390 40.3495 24.2972 22.5703 22.0439 22.035
Tabela 17.4. Comparação de frequências aproximadas por elementos finitos com
soluções exactas, de viga fina encastrada, usando o código vigaTimoshenkoVi-
bracoes.m

8 rho=1;
9 I=thickness^3/12;% momento de inercia
10 A=1*thickness;
11 %
12 numx = 40;
13 %
14 P = 1; % pressao uniforme
15 % matriz constitutiva
16 G=E0/2/(1+nu0);
17 C=[ I*E0 0; 0 5/6*thickness*G];
18 %
19 % malha
20 node=linspace(0,L,numx+1);xx=node;x=node;
21 %
22 for i=1:size(node,2)-1
23 element(i,1)=i;
24 element(i,2)=i+1
25 end
26 %
27 numnode=size(node,2); % num. nos
28 numelem=size(element,1); % num. elementos
29 %
30 K=zeros(2*numnode,2*numnode);
31 M=zeros(2*numnode,2*numnode);
32 % rigidez
33 W=zeros(2); Q=zeros(2);
34
35 Q(1) = 0.577350269189626;
36 Q(2) =-0.577350269189626;
37
38 W(1) = 1.; W(2) = 1.;
39
40 for e=1:numelem
41 indice=element(e,:);
42 indiceB=[ indice indice+numnode];
43 indiceR=indice+numnode;
44 nn=length(indice);
45 length_element=xx(indice(2))-xx(indice(1));
17.8 Código MATLAB para vibrações de vigas Timoshenko 297

46 detJ0=length_element/2;invJ0=1/detJ0;
47 for q=1:size(W,1) ;
48 pt=Q(q,:); wt=W(q);
49 pt=pt(1);
50 N=([1-pt,1+pt]/2)’;
51 dNdxi=[-1;1]/2;
52 dNdx=dNdxi*invJ0;
53 % B
54 B=zeros(2,2*nn); B(1,nn+1:2*nn) = -dNdx(:)’;
55 % K
56 K(indiceB,indiceB)=K(indiceB,indiceB)+B’*B*W(q)*detJ0*C(1,1);
57 M(indiceR,indiceR)=M(indiceR,indiceR)+N*N’*W(q)*I*rho*detJ0;
58 M(indice,indice)=M(indice,indice)+N*N’*W(q)*thickness*rho*detJ0;
59 end
60 end
61 %
62 W=zeros(1); Q=zeros(1);
63
64 Q(1) = 0.;
65
66 W(1) = 2.;
67
68 for e=1:numelem
69 indice=element(e,:);
70 indiceB=[ indice indice+numnode];
71 nn=length(indice);
72 length_element=xx(indice(2))-xx(indice(1));
73 detJ0=length_element/2;invJ0=1/detJ0;
74 for q=1:size(W,1) ;
75 pt=Q(q,:); wt=W(q);
76 pt=pt(1);
77 N=([1-pt,1+pt]/2)’;
78 dNdxi=[-1;1]/2;
79 dNdx=dNdxi*invJ0;
80 % B
81 B=zeros(2,2*nn);
82 B(2,1:nn) = dNdx(:)’;
83 B(2,nn+1:2*nn) = -N;
84 % K
85 K(indiceB,indiceB)=K(indiceB,indiceB)+B’*B*W(q)*detJ0*C(2,2);
86 end
87 end
88 % BC
89 bcwt=mean(diag(K));
90 % condicoes fronteira (meia viga com simetria)
91 %fixedNodeW =find(xx==max(node(:)))’;
92 %fixedNodeW =find(xx==max(node(:))|xx==min(node(:)))’;
93 %fixedNodeTX=find(xx==min(node(:)))’;;
94 %fixedNodeTX=find(xx==L/2)’;
298 17 Análise de vibrações livres

95 %fixedNodeTX=fixedNodeW;
96 %
97 % encastrado ambos os bordos
98 %fixedNodeW =find(xx==min(node(:)) | xx==max(node(:)))’;
99 %fixedNodeTX=fixedNodeW;
100
101 % encastrado em x=0
102 fixedNodeW =find(xx==min(node(:)))’;
103 fixedNodeTX=fixedNodeW;
104
105 % simplesmente apoiado
106 %fixedNodeW =find(xx==min(node(:)) | xx==max(node(:)))’;
107 %fixedNodeTX=[];
108 %
109 dofs=[fixedNodeW;fixedNodeTX+numnode]
110 % exemplo livro
111 activeDof=setdiff([1:2*numnode]’,[dofs]);
112 [V,D]=eig(K(activeDof,activeDof),M(activeDof,activeDof));
113
114 D = diag(sqrt(D)*L*L*sqrt(rho*A/E0/I));
115 [D,ii] = sort(D);
116
117
118 % lee,schultz paper
119 modeNumber=4;
120 % [V,D]=eig(K(activeDof,activeDof),M(activeDof,activeDof));
121 % D = diag(sqrt(D)*L*L*sqrt(rho*thickness/E0/I));D=sqrt(D) ;
122 % [D,ii] = sort(D); V = V(:,ii);
123
124 V1=zeros(2*numnode,1);
125 V1(activeDof,1:modeNumber)=V(:,1:modeNumber);
126
127 clf
128 for j=1:modeNumber
129 u=[V1(1:numnode,j)];
130 xx = 0:.01:1; subplot(modeNumber+1,1,j);
131 plot(x’,u,’.’,’markersize’,12), grid on
132 uu = polyval(polyfit(x’,V1(1:numnode,j),numnode),xx);
133 line(xx,uu)%, axis off
134 end
135
136
137
138

Na figura 17.10 ilustram-se os primeiros 4 modos de vibração da viga


encastrada, tal como calculado pelo código vigaTimoshenkoVibracoes.m.
17.9 Exemplo de Lee e Schultz 299

100

!100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
100

!100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
100

!100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
100

!100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 17.10. Primeiros 4 modos de vibração para uma viga encastrada em x = 0


(ν = 0.3)

17.9 Exemplo de Lee e Schultz


No próximo código MATLAB, considera-se um exemplo ilustrado no artigo
de Lee e Schultz5 . Consideram-se vigas encastradas e simplesmente apoiadas
nos dois apoios (x = 0, x = L).
As frequências são adimensionalizadas na forma referida na expressão
(17.99). Considera-se um factor de correcção ao corte transverso de 5/6.
Os resultados estão ilustrados nas tabelas (17.5) e (17.6). Os resultados
comparam de forma excelente com os apresentados por Lee e Schultz.
Nas figuras 17.11 e 17.12 ilustram-se os modos de vibração uma viga en-
castrada e duma viga simplesmente apoiada, respectivamente, considerando
40 nós.
O código (vigaTimoshenkoVibracoesLeeSchultz.m) está listado a seguir, de-
vendo o leitor trocar apenas as condições fronteira.
1 clear all;clf;
2 %
3 E0 = 10e7; % mdulo E
4 nu0 = 0.30; % Poisson
5 %
6 L = 1; % comprimento
5
J. Lee and W. W. Schultz, Eigenvalue analysis of Timoshenko beams and axisym-
metric Mindlin plates by the pseudospectral method, Journal of Sound and Vi-
bration, 269 (2004), 609–621.
300 17 Análise de vibrações livres

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
5

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
5

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
5

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 17.11. Primeiros 4 modos de vibração para uma viga encastrada (ν = 0.3)

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
5

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
5

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
5

!5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 17.12. Primeiros 4 modos de vibração para uma viga simplesmente apoiada
(ν = 0.3)
17.9 Exemplo de Lee e Schultz 301

Modo Teoria clássica h/L


0.002 0.01 0.1
1 4.73004 4.7345 4.7330 4.5835
2 7.8532 7.8736 7.8675 7.3468
3 10.9956 11.0504 11.0351 9.8924
4 14.1372 14.2526 14.2218 12.2118
5 17.2788 17.4888 17.4342 14.3386
6 20.4204 20.7670 20.6783 16.3046
7 23.5619 24.0955 23.9600 18.1375
8 26.7035 27.4833 27.2857 19.8593
9 29.8451 30.9398 30.6616 21.4875
10 32.9867 34.4748 34.0944 23.0358
11 36.1283 38.0993 37.5907 24.5141
12 39.2699 41.8249 41.1574 25.9179
13 42.4115 45.6642 44.8016 26.2929
14 45.5531 49.6312 48.5306 26.8419
15 48.6947 53.7410 52.3517 27.3449
Tabela 17.5. Frequência adimensional ω̄ para viga Timoshenko encastrada nos dois
apoios, ν = 0.3, α = 5/6, N = 40)

Modo Teoria clássica h/L


0.002 0.01 0.1
1 3.14159 3.1428 3.1425 3.1169
2 6.28319 6.2928 6.2908 6.0993
3 9.42478 9.4573 9.4503 8.8668
4 12.5664 12.6437 12.6271 11.3984
5 15.7080 15.8596 15.8267 13.7089
6 18.8496 19.1127 19.0552 15.8266
7 21.9911 22.4113 22.3186 17.7811
8 25.1327 25.7638 25.6231 19.5991
9 28.2743 29.1793 28.9749 21.3030
10 31.4159 32.6672 32.3806 22.9117
11 34.5575 36.2379 35.8467 24.4404
12 37.6991 39.9022 39.3803 25.9017
13 40.8407 43.6721 42.9883 26.0647
14 43.9823 47.5605 46.6780 26.2782
15 47.1239 51.5816 50.4566 26.8779
Tabela 17.6. Frequência adimensional ω̄ para viga Timoshenko simplesmente apoi-
ada nos dois apoios, ν = 0.3, α = 5/6, N = 40)
302 17 Análise de vibrações livres

7 thickness=0.1;
8 rho=1;
9 I=thickness^3/12;% momento de inercia
10 A=1*thickness;
11 %
12 numx = 40;
13 %
14 P = 1; % pressao uniforme
15 % matriz constitutiva
16 G=E0/2/(1+nu0);
17 C=[ I*E0 0; 0 5/6*thickness*G];
18 %
19 % malha
20 node=linspace(0,L,numx+1);xx=node;x=node;
21 %
22 for i=1:size(node,2)-1
23 element(i,1)=i;
24 element(i,2)=i+1
25 end
26 %
27 numnode=size(node,2); % num. nos
28 numelem=size(element,1); % num. elementos
29 %
30 K=zeros(2*numnode,2*numnode);
31 M=zeros(2*numnode,2*numnode);
32 % rigidez
33 W=zeros(2); Q=zeros(2);
34
35 Q(1) = 0.577350269189626;
36 Q(2) =-0.577350269189626;
37
38 W(1) = 1.; W(2) = 1.;
39
40 for e=1:numelem
41 indice=element(e,:);
42 indiceB=[ indice indice+numnode];
43 indiceR=indice+numnode;
44 nn=length(indice);
45 length_element=xx(indice(2))-xx(indice(1));
46 detJ0=length_element/2;invJ0=1/detJ0;
47 for q=1:size(W,1) ;
48 pt=Q(q,:); wt=W(q);
49 pt=pt(1);
50 N=([1-pt,1+pt]/2)’;
51 dNdxi=[-1;1]/2;
52 dNdx=dNdxi*invJ0;
53 % B
54 B=zeros(2,2*nn); B(1,nn+1:2*nn) = -dNdx(:)’;
55 % K
17.9 Exemplo de Lee e Schultz 303

56 K(indiceB,indiceB)=K(indiceB,indiceB)+B’*B*W(q)*detJ0*C(1,1);
57 M(indiceR,indiceR)=M(indiceR,indiceR)+N*N’*W(q)*I*rho*detJ0;
58 M(indice,indice)=M(indice,indice)+N*N’*W(q)*thickness*rho*detJ0;
59 end
60 end
61 %
62 W=zeros(1); Q=zeros(1);
63
64 Q(1) = 0.;
65
66 W(1) = 2.;
67
68 for e=1:numelem
69 indice=element(e,:);
70 indiceB=[ indice indice+numnode];
71 nn=length(indice);
72 length_element=xx(indice(2))-xx(indice(1));
73 detJ0=length_element/2;invJ0=1/detJ0;
74 for q=1:size(W,1) ;
75 pt=Q(q,:); wt=W(q);
76 pt=pt(1);
77 N=([1-pt,1+pt]/2)’;
78 dNdxi=[-1;1]/2;
79 dNdx=dNdxi*invJ0;
80 % B
81 B=zeros(2,2*nn);
82 B(2,1:nn) = dNdx(:)’;
83 B(2,nn+1:2*nn) = -N;
84 % K
85 K(indiceB,indiceB)=K(indiceB,indiceB)+B’*B*W(q)*detJ0*C(2,2);
86 end
87 end
88 % BC
89 bcwt=mean(diag(K));
90 % condicoes fronteira (meia viga com simetria)
91 %fixedNodeW =find(xx==max(node(:)))’;
92 %fixedNodeW =find(xx==max(node(:))|xx==min(node(:)))’;
93 %fixedNodeTX=find(xx==min(node(:)))’;;
94 %fixedNodeTX=find(xx==L/2)’;
95 %fixedNodeTX=fixedNodeW;
96 %
97 % encastrado ambos os bordos
98 %fixedNodeW =find(xx==min(node(:)) | xx==max(node(:)))’;
99 %fixedNodeTX=fixedNodeW;
100
101 % encastrado em x=0
102 fixedNodeW =find(xx==min(node(:)))’;
103 fixedNodeTX=fixedNodeW;
104
304 17 Análise de vibrações livres

105 % simplesmente apoiado


106 %fixedNodeW =find(xx==min(node(:)) | xx==max(node(:)))’;
107 %fixedNodeTX=[];
108 %
109 dofs=[fixedNodeW;fixedNodeTX+numnode]
110 % exemplo livro
111 activeDof=setdiff([1:2*numnode]’,[dofs]);
112 % [V,D]=eig(K(activeDof,activeDof),M(activeDof,activeDof));
113 %
114 % D = diag(sqrt(D)*L*L*sqrt(rho*A/E0/I));
115 % [D,ii] = sort(D);
116
117
118 % lee,schultz paper
119 modeNumber=4;
120 [V,D]=eig(K(activeDof,activeDof),M(activeDof,activeDof));
121 D = diag(sqrt(D)*L*L*sqrt(rho*thickness/E0/I));D=sqrt(D) ;
122 [D,ii] = sort(D); V = V(:,ii);
123
124 V1=zeros(2*numnode,1);
125 V1(activeDof,1:modeNumber)=V(:,1:modeNumber);
126
127 clf
128 for j=1:modeNumber
129 u=[V1(1:numnode,j)];
130 xx = 0:.01:1; subplot(modeNumber+1,1,j);
131 plot(x’,u,’.’,’markersize’,12), grid on
132 uu = polyval(polyfit(x’,V1(1:numnode,j),numnode),xx);
133 line(xx,uu)%, axis off
134 end
135
136
137
138

17.10 Vibrações livres de placas Mindlin


Para o elemento de placa de Mindlin, consideram-se as seguintes expressões
para as energias

h3 h3
Z  
1
Te = ρ hẇ2 + θ̇x2 + θ̇y2 dA (17.100)
2 A 12 12
h3 T
Z Z
1 1
Ue = χ DχdA + khγ T Dc γdA (17.101)
2 A 12 2 A
onde χ representa o vector de curvaturas da placa
17.10 Vibrações livres de placas Mindlin 305
 
∂θy


 ∂x

 
 ∂θx 
χ= (17.102)
 
∂y

 
 
 
 ∂θx ∂θy 

∂x ∂y
e
∂w
 
θ
 y +
∂x 
γ= (17.103)
 

 ∂w 
−θx +
∂y
As matrizes constitutivas do material em flexão, D e corte, Dc são, res-
pectivamente obtidas por
 
E E
 1−ν ν1−ν 0 
 
 
 E E 
D = ν 0 (17.104)
 
 1−ν 1−ν


 
 
 E 
0 0
2(1 + ν)
e
 
G 0
Dc = (17.105)
0 G
O vector de forças nodais equivalentes é dado por
Z
δW = pδwdA (17.106)
A
Tendo em conta uma interpolação independente para cada grau de liberdade,
obtem-se

w = Nwe (17.107)

θ x = Nθ ex (17.108)

θ y = Nθ ey (17.109)
onde a matriz de funções de forma do elemento Q4 é dada por
306 17 Análise de vibrações livres

1
Nj =
(1 + ξj ξ)(1 + ηj η) (17.110)
4
onde ξj , ηj são as coordenadas naturais no bi-quadrado [−1, +1].
Estas funções são naturalmente distintas para outros elementos, como o
Q9 (lagrangiano de 9 nós) ou o T3 (triângulo de 3 nós).
Para o elemento lagrangiano de 4 nós, Q4, definem-se os seguintes graus
de liberdade

ueT = w1
 
θx1 θy1 w2 θx2 θy2 ··· w4 θx4 θy4 (17.111)

podendo definir-se

uT = w θy = Nue
 
θx (17.112)
onde  
N1 0 0 · · · N4 0 0
N =  0 N1 0 · · · 0 N4 0  (17.113)
0 0 N1 · · · 0 0 N4
Substituindo nas expressões das energias, obtém-se as matrizes de rigidez e
massa do elemento de placa espessa seguindo a teoria de Mindlin

h3 f T
Z Z
Ke = B DBf dA + khBcT Dc Bc dA (17.114)
A 12 A

h 0 0
 
Z
3
Me = ρNT  0 h12 0  NdA (17.115)
A h3
0 0 12
onde

Bf = Bf1 Bf2 Bf3 Bf4


 
(17.116)
e
 
∂Ni
0 0 −

 ∂x 
 
 ∂N 
f 0 i
Bi =  0  (17.117)
 ∂y


 
 
 ∂Ni ∂Ni 
0 −
∂x ∂y

Bc = Bc1 Bc2 Bc3 Bc4


 
(17.118)
17.11 Exemplo de vibrações livres de placa 307

∂Ni
 

 ∂x 0 N i 
Bci =  (17.119)
 

 ∂Ni 
−Ni 0
∂y
Note-se que o código respeita os mesmos principios, mas organiza as ma-
trizes de forma diferente, para poder aproveitar as capacidades do MATLAB.

17.11 Exemplo de vibrações livres de placa


Considera-se uma placa quadrada, com lado a, razão espessura/lado h/a =
0.01 e 0.1. A frequência adimensional é definida por
r
ρ
λ̄ = λmn a ,
G
onde λ representa a frequência, ρ é a massa por unidade de volume, G
é o módulo de corte, G = E/(2(1 + ν)), E o módulo de elasticidade e ν
o coeficiente de Poisson. Os indices m e n representam as semi-ondas dos
modos de vibração nas direcções x e y, respectivamente.
Consideram-se placas isotrópicas, encastradas (CCCC) e simplesmente
apoiadas (SSSS) em torno dos seus 4 bordos. Consideram-se ainda placas
SCSC e CCCF, onde o indice F representa bordo livre. Para as placas CCCC
e CCCF usa-se k = 0.8601, para as SCSC k = 0.822 e para as SSSS, k = 5/6.
Na tabela 17.7 apresenta-se a convergência da frequência fundamental nor-
malizada para placa encastrada h/a = 0.01, k = 0.8601, ν = 0.3 . Compara-se
com a solução analitica, que pode ser consultada num artigo de Dawe6 . Como
se pode verificar, usando quer o elemento Q4 quer o Q9 chega-se a bons re-
sultados.

10 × 10 Q4 0.1800 5 × 5 Q9 0.1905 Solução analitica: 0.1754


15 × 15 Q4 0.1774 10 × 10 Q9 0.1785
20 × 20 Q4 0.1765 15 × 15 Q9 0.1765
25 × 25 Q4 0.1761
Tabela 17.7. Convergência da frequência fundamental normalizada para placa en-
castrada h/a = 0.01, k = 0.8601, ν = 0.3

Da mesma forma, na tabela 17.8 apresenta-se a convergência da frequência


fundamental normalizada para placa simplesmente apoiada h/a = 0.01, k =
0.8333, ν = 0.3. Os resultados são mais próximos da solução analitica que
para o caso CCCC, o que se verifica quase sempre. para placas CCCC, são
6
D. J. Dawe and O. L. Roufaeil, Rayleigh-Ritz vibration analysis of Mindlin plates,
Journal of Sound and Vibration, 69 (3) (1980), 345–359.
308 17 Análise de vibrações livres

habitualmente necessárias mais graus de liberdade. Quer nesta tabela, quer


na anterior considera-se uma placa fina, com h/a = 0.01, enquanto que nas
próximas duas tabelas se estudam os mesmos casos, mas com espessura supe-
rior, h/a = 0.1.

10 × 10 Q4 0.0973 5 × 5 Q9 0.0971 Solução analitica: 0.0963


15 × 15 Q4 0.0968 10 × 10 Q9 0.0965
20 × 20 Q4 0.0965 15 × 15 Q9 0.0963
25 × 25 Q4 0.0965
Tabela 17.8. Convergência da frequência fundamental normalizada para placa sim-
plesmente apoiada h/a = 0.01, k = 0.8333, ν = 0.3

10 × 10 Q4 1.6259 5 × 5 Q9 1.6132 Solução analitica: 1.5940


15 × 15 Q4 1.6063 10 × 10 Q9 1.5927
20 × 20 Q4 1.5996 15 × 15 Q9 1.5914
Tabela 17.9. Convergência da frequência fundamental normalizada para placa en-
castrada h/a = 0.1, k = 0.8601, ν = 0.3

10 × 10 Q4 0.9399 5 × 5 Q9 0.9319 Solução analitica: 0.930


15 × 15 Q4 0.9346 10 × 10 Q9 0.9304
20 × 20 Q4 0.9327 15 × 15 Q9 0.9303
Tabela 17.10. Convergência da frequência fundamental normalizada para placa
simplesmente apoiada h/a = 0.1, k = 0.8333, ν = 0.3

Na tabela 17.11 estudam-se as frequências naturais duma placa SSSS com


h/a = 0.1, k = 0.833, ν = 0.3. Comparando com uma solução analitica tri-
dimensional, ou com uma solução analitica seguindo a teoria de Mindlin, o
presente código produz resultados de grande qualidade. De igual modo, na
tabela 17.12 os resultados são igualmente bons.
Nas tabelas 17.13 e 17.14 comparam-se as frequências naturais com uma
solução analitica de Rayleygh-Ritz e uma solução numérica de Liew7 , em que
os resultados obtidos são muito bons.
Nas tabelas 17.15 e 17.16 estudam-se frequências naturais duma placa
SCSC com h/a = 0.1, k = 0.822, ν = 0.3 e com h/a = 0.1, k = 0.822, ν =
0.3, respectivamente. Note-se que SCSC quer dizer que todos os bordos são
encastrados, à excepção dos bordos x = 0; L, que são simplesmente apoiados.
7
K. M. Liew, J. Wang, T. Y. Ng and M. J. Tan, Free vibration and buckling
analyses of shear-deformable plates based on FSDT meshfree method, Journal of
Sound and Vibration, 276 (2004), 997–1017.
17.11 Exemplo de vibrações livres de placa 309

Modo no. m n 10 × 10 Q9 3D * Mindlin *


1 1 1 0.9304 0.932 0.930
2 2 1 2.2209 2.226 2.219
3 1 2 2.2209 2.226 2.219
4 2 2 3.4077 3.421 3.406
5 3 1 4.1594 4.171 4.149
6 1 3 4.1594 4.171 4.149
7 3 2 5.2142 5.239 5.206
8 2 3 5.2142 5.239 5.206
9 4 1 6.5559 - 6.520
10 1 4 6.5559 - 6.520
11 3 3 6.8560 6.889 6.834
12 4 2 7.4781 7.511 7.446
13 2 4 7.4781 7.511 7.446
Tabela 17.11. Frequências naturais duma placa SSSS com h/a = 0.1, k =
0.833, ν = 0.3 (* - solução analitica)

Modo no. m n 10 × 10 Q9 Mindlin *


1 1 1 0.0965 0.0963
2 2 1 0.2428 0.2406
3 1 2 0.2428 0.2406
4 2 2 0.3875 0.3847
5 3 1 0.4934 0.4807
6 1 3 0.4934 0.4807
7 3 2 0.6353 0.6246
8 2 3 0.6353 0.6246
9 4 1 0.8587 0.8156
10 1 4 0.8587 0.8156
11 3 3 0.8798 0.8640
12 4 2 0.9971 0.9592
13 2 4 0.9971 0.9592
Tabela 17.12. Frequências naturais duma placa SSSS com h/a = 0.01, k =
0.833, ν = 0.3 (* - solução analitica)

Nas tabelas 17.17 e 17.18 estudam-se frequências naturais duma placa


CCCF com h/a = 0.1, k = 0.822, ν = 0.3 e com h/a = 0.1, k = 0.822, ν =
0.3, respectivamente. Note-se que CCCF quer dizer que todos os bordos são
encastrados, à excepção do bordo x = L, que é livre (Free).
Na figura 17.13 apresentam-se algumas malhas e uma deformada tipica.
Na figura 17.14 apresentam-se os modos de vibração para placa encastrada,
h/a = 0.1, elemento Q4, 10 × 10.
Na figura 17.15 apresentam-se os modos de vibração para placa simples-
mente apoiada, h/a = 0.1, elemento Q4, 10 × 10.
Na figura 17.16 apresentam-se os modos de vibração para placa SCSC
apoiada, h/a = 0.01, elemento Q4, 15 × 15.
310 17 Análise de vibrações livres

Modo no. m n 10 × 10 Q9 Rayleygh-Ritz [107] Liew et al. [108]


1 1 1 1.5927 1.5940 1.5582
2 2 1 3.0454 3.0390 3.0182
3 1 2 3.0454 3.0390 3.0182
4 2 2 4.2712 4.2650 4.1711
5 3 1 5.0462 5.0350 5.1218
6 1 3 5.0462 5.0780 5.1594
7 3 2 6.1002 6.0178
8 2 3 6.1002 6.0178
9 4 1 7.4696 7.5169
10 1 4 7.4696 7.5169
11 3 3 7.7062 7.7288
12 4 2 8.3113 8.3985
13 2 4 8.3879 8.3985
Tabela 17.13. Frequências naturais duma placa CCCC com h/a = 0.1, k =
0.8601, ν = 0.3

Modo no. m n 10 × 10 Q9 Rayleygh-Ritz [107] Liew et al. [108]


1 1 1 0.1785 0.1754 0.1743
2 2 1 0.3699 0.3576 0.3576
3 1 2 0.3699 0.3576 0.3576
4 2 2 0.5457 0.5274 0.5240
5 3 1 0.6819 0.6402 0.6465
6 1 3 0.6847 0.6432 0.6505
7 3 2 0.8468 0.8015
8 2 3 0.8468 0.8015
9 4 1 1.1312 1.0426
10 1 4 1.1312 1.0426
11 3 3 1.1324 1.0628
12 4 2 1.2834 1.1823
13 2 4 1.2877 1.1823
Tabela 17.14. Frequências naturais duma placa CCCC com h/a = 0.01, k =
0.8601, ν = 0.3

Na figura 17.16 apresentam-se os modos de vibração para placa CCCF


apoiada, h/a = 0.1, elemento Q4, 15 × 15.
17.12 Código MATLAB para exemplo de placa 311

Modo no. m n 15 × 15 Q4 Mindlin (Solução analitica)


1 1 1 1.2940 1.302
2 2 1 2.3971 2.398
3 1 2 2.9290 2.888
4 2 2 3.8394 3.852
5 3 1 4.3475 4.237
6 1 3 5.1354 4.936
7 3 2 5.5094
8 2 3 5.8974
9 4 1 6.9384
10 1 4 7.2939
11 3 3 7.7968
12 4 2 7.8516
13 2 4 8.4308
Tabela 17.15. Frequências naturais duma placa SCSC com h/a = 0.1, k =
0.822, ν = 0.3

Modo no. m n 15 × 15 Q4 Mindlin (Solução analitica)


1 1 1 0.1424 0.1411
2 2 1 0.2710 0.2668
3 1 2 0.3484 0.3377
4 2 2 0.4722 0.4608
5 3 1 0.5191 0.4979
6 1 3 0.6710 0.6279
7 3 2 0.7080
8 2 3 0.7944
9 4 1 0.8988
10 1 4 1.0228
11 3 3 1.0758
12 4 2 1.1339
13 2 4 1.2570
Tabela 17.16. Frequências naturais duma placa SCSC com h/a = 0.1, k =
0.822, ν = 0.3

17.12 Código MATLAB para exemplo de placa


Apresenta-se um código de placa (vibracoesPlacaMindlinQ4.m), usando apenas
o elemento Q4, estando o autor certo que a curiosidade do leitor irá despertar
interesse para a programação de outros elementos.
1 colordef white
2 % propriedades material
3 E0 = 10920; % mdulo Young
4 nu0 = 0.30; % coef. Poisson
5 rho=1;
6 % geometria
7 L = 1; % lado
312 17 Análise de vibrações livres

Modo no. m n 15 × 15 Q4 Mindlin (Solução analitica)


1 1 1 1.0923 1.089
2 2 1 1.7566 1.758
3 1 2 2.7337 2.673
4 2 2 3.2591 3.216
5 3 1 3.3541 3.318
6 1 3 4.6395 4.615
7 3 2 4.9746
8 2 3 5.4620
9 4 1 5.5245
10 1 4 6.5865
11 3 3 6.6347
12 4 2 7.6904
13 2 4 8.1626
Tabela 17.17. Frequências naturais duma placa CCCF com h/a = 0.1, k =
0.8601, ν = 0.3

Modo no. m n 15 × 15 Q4 Mindlin (Solução analitica)


1 1 1 0.1180 0.1171
2 2 1 0.1967 0.1951
3 1 2 0.3193 0.3093
4 2 2 0.3830 0.3740
5 3 1 0.4031 0.3931
6 1 3 0.5839 0.5695
7 3 2 0.6387
8 2 3 0.7243
9 4 1 0.8817
10 1 4 0.9046
11 3 3 1.0994
12 4 2 1.1407
13 2 4 1.1853
Tabela 17.18. Frequências naturais duma placa CCCF com h/a = 0.01, k =
0.8601, ν = 0.3

8 thickness=0.1;
9 I=thickness^3/12;
10 kapa=0.8601; % cccc / cccf
11 %kapa=0.822; % scsc
12 kapa=5/6; % ssss
13 numy = 10; % # elementos em xx
14 numx = 10; % # elementos em xx
15 numberOfModes=12;
16 % matriz elasticidade (duas partes)
17 % parte flexao
18 C_bending=I*E0/(1-nu0^2)*[ 1 nu0 0 0 0;
19 nu0 1 0 0 0;
17.12 Código MATLAB para exemplo de placa 313

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0
0 0.2 0.4 0.6 0.8 1

Figura 17.13. Malha de elementos finitos, elemento Q9, 15 × 15, elemento Q4,
10 × 10 e deformada tipica

20 0 0 (1-nu0)/2 0 0;
21 0 0 0 0 0;
22 0 0 0 0 0];
23
24 % parte corte
25 C_shear=...
26 kapa*thickness*E0/2/(1+nu0)*[ 0 0 0 0 0;
27 0 0 0 0 0;
28 0 0 0 0 0;
29 0 0 0 1 0;
30 0 0 0 0 1];
31
32 %malha
33 [node, element] = MalhaRectangular(L, L, numx, numy)
34 %
35 xx=node(:,1); yy=node(:,2);
36
37 numnode=size(node,1); % numero nos
38 numelem=size(element,1); % numero elementos
39
40 % inicializacao
314 17 Análise de vibrações livres

eig = 1.625867068959 eig = 3.202810229390


1 1

0.5 0.5

0 0

!0.5 !0.5

!1 !1
!1 !0.5 0 0.5 1 !1 !0.5 0 0.5 1

eig = 3.202810229390 eig = 4.468574738939


1 1

0.5 0.5

0 0

!0.5 !0.5

!1 !1
!1 !0.5 0 0.5 1 !1 !0.5 0 0.5 1

Figura 17.14. Modos de vibração para placa encastrada, h/a = 0.1, elemento Q4,
10 × 10

41 K=zeros(3*numnode,3*numnode); % matriz de rigidez


42 M=zeros(3*numnode,3*numnode); % matriz de massa
43
44 % calculo de MATRIZ DE RIGIDEZ e Matriz de Massa
45
46 % quadratura de 2 pontos
47 Q=[ -0.577350269189626 -0.577350269189626;
48 0.577350269189626 -0.577350269189626;
49 0.577350269189626 0.577350269189626;
50 -0.577350269189626 0.577350269189626]
51 W=[ 1;1;1;1];
52
53 for e=1:numelem
54
55 indice=element(e,:);
56 indiceB=[ indice indice+numnode indice+2*numnode];
57 nn=length(indice);
17.12 Código MATLAB para exemplo de placa 315

eig = 0.939934553599 eig = 2.299781880509


1 1

0.5 0.5

0 0

!0.5 !0.5

!1 !1
!1 !0.5 0 0.5 1 !1 !0.5 0 0.5 1

eig = 2.299781880509 eig = 3.527287828177


1 1

0.5 0.5

0 0

!0.5 !0.5

!1 !1
!1 !0.5 0 0.5 1 !1 !0.5 0 0.5 1

Figura 17.15. Modos de vibração para placa simplesmente apoiada, h/a = 0.1,
elemento Q4, 10 × 10

58 for q=1:size(W,1) % CICLO QUADRATURA


59 pt=Q(q,:); % PONTO
60 wt=W(q); % PESO
61 xi=pt(1);
62 eta=pt(2);
63 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
64 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
65 (1+xi)*(1+eta);(1-xi)*(1+eta)];
66 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
67 1+eta, 1+xi;-(1+eta), 1-xi];
68
69 J0=node(indice,:)’*dNdxi; % MATRIZ JACOBIANA
70 invJ0=inv(J0);
71 dNdx=dNdxi*invJ0;
72
73 % MATRIZ B
74 % FLEXAO
316 17 Análise de vibrações livres
eig % &'()*+,-.,(./.
(

&'0

&

!&'0

!(
!( !&'0 & &'0 (

!"#$%$&'()*&+*,(-&(- !"#$%$&'+.&*+)*-,&/+
) )

&'( &'(

& &

!&'( !&'(

!) !)
!) !&'( & &'( ) !) !&'( & &'( )

!"#$%$&'.&.*0-,.0,,- !"#$%$&'.*-,*,(0)++-
) )

&'( &'(

& &

!&'( !&'(

!) !)
!) !&'( & &'( ) !) !&'( & &'( )

Figura 17.16. Modos de vibração para placa SCSC, h/a = 0.01, elemento Q4,
15 × 15 (apenas os contornos)

75 B_b=zeros(5,3*nn);
76 B_b(1,nn+1:2*nn) = dNdx(:,1)’; B_b(2,2*nn+1:3*nn)= dNdx(:,2)’;
77 B_b(3,nn+1:2*nn) = dNdx(:,2)’; B_b(3,2*nn+1:3*nn)= dNdx(:,1)’;
78
79 % CORTE
80 B_s=zeros(5,3*nn);
81 B_s(4,1:nn) = dNdx(:,1)’; B_s(5,1:nn) = dNdx(:,2)’;
82 B_s(4,nn+1:2*nn) = N; B_s(5,2*nn+1:3*nn)= N;
83
84 % RIGIDEZ E MASSA NO PONTO DE QUADRATURA
85 K(indiceB,indiceB)=K(indiceB,indiceB)+B_b’*C_bending*B_b*W(q)*det(J0);
86
87 M(indice,indice)=M(indice,indice)+N*N’*thickness*rho*W(q)*det(J0);
88 M(indice+numnode,indice+numnode)=M(indice+numnode,indice+numnode)+...
89 N*N’*I*rho*W(q)*det(J0);
90 M(indice+2*numnode,indice+2*numnode)=M(indice+2*numnode,indice+2*numnode)+...
91 N*N’*I*rho*W(q)*det(J0);
17.12 Código MATLAB para exemplo de placa 317
eig = 1.092330699490 eig = 1.756645221669
1 1

0.5 0.5

0 0

!0.5 !0.5

!1 !1
!1 !0.5 0 0.5 1 !1 !0.5 0 0.5 1

eig = 2.733677737330 eig = 3.259086767279


1 1

0.5 0.5

0 0

!0.5 !0.5

!1 !1
!1 !0.5 0 0.5 1 !1 !0.5 0 0.5 1

Figura 17.17. Modos de vibração para placa CCCF, h/a = 0.1, elemento Q4,
15 × 15 (apenas os contornos)

92
93 % VECTOR DE CARGA NO PONTO DE QUADRATURA
94 % f(indice)=f(indice)+N*P*det(J0)*wt;
95
96 end
97 end
98
99 % MATRIZ DE RIGIDEZ (CORTE)
100 % quadratura de 1 ponto
101 Q=[0 0];
102 W=[4];
103
104 for e=1:numelem
105 indice=element(e,:);
106 indiceB=[ indice indice+numnode indice+2*numnode];
107 nn=length(indice);
108 for q=1:size(W,1)
318 17 Análise de vibrações livres

109 pt=Q(q,:);
110 wt=W(q);
111 xi=pt(1);
112 eta=pt(2);
113 % FUNCOES DE FORMA E DERIVADAS COORDENADAS NATURAIS
114 N=1/4*[ (1-xi)*(1-eta);(1+xi)*(1-eta);
115 (1+xi)*(1+eta);(1-xi)*(1+eta)];
116 dNdxi=1/4*[-(1-eta), -(1-xi);1-eta, -(1+xi);
117 1+eta, 1+xi;-(1+eta), 1-xi];
118 J0=node(indice,:)’*dNdxi;
119 invJ0=inv(J0);
120 dNdx=dNdxi*invJ0;
121 % [B]flexao
122 B_b=zeros(5,3*nn);
123 B_b(1,nn+1:2*nn) = dNdx(:,1)’; B_b(2,2*nn+1:3*nn)= dNdx(:,2)’;
124 B_b(3,nn+1:2*nn) = dNdx(:,2)’; B_b(3,2*nn+1:3*nn)= dNdx(:,1)’;
125 % [B]corte
126 B_s=zeros(5,3*nn);
127 B_s(4,1:nn) = dNdx(:,1)’; B_s(5,1:nn) = dNdx(:,2)’;
128 B_s(4,nn+1:2*nn) = N; B_s(5,2*nn+1:3*nn)= N;
129 %
130 K(indiceB,indiceB)=K(indiceB,indiceB)+B_s’*C_shear *B_s*W(q)*det(J0);
131 end
132 end
133
134 % BC
135 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
136 |xx==max(node(:,1))|yy==min(node(:,2)));
137 %next two lines: simply supported case
138 fixedNodeTX =find(yy==max(node(:,2))|yy==min(node(:,2)));
139 fixedNodeTY =find(xx==max(node(:,1))| xx==min(node(:,1)));
140
141 %next two lines: clamped case
142 %fixedNodeTX =fixedNodeW;
143 %fixedNodeTY =fixedNodeTX;
144
145 %next line: scsc case
146 %fixedNodeTX =find(xx==max(node(:,2))|xx==min(node(:,2)));
147 %fixedNodeTY=[];
148
149 %next 3 line3: cccf case
150 %fixedNodeW=find(yy==max(node(:,2))|xx==min(node(:,1))|yy==min(node(:,2)));
151 %fixedNodeTX =fixedNodeW;
152 %fixedNodeTY =fixedNodeTX;
153 dofs=[fixedNodeW;fixedNodeTX+numnode;fixedNodeTY+2*numnode]
154 activeDof=setdiff([1:3*numnode]’,[dofs]);
155 %
156 G=E0/2.6;
157 % V : mode shape
17.12 Código MATLAB para exemplo de placa 319

158 % D : frequency
159 %
160 activeDof=setdiff([1:3*numnode]’, ...
161 [fixedNodeW;fixedNodeTX+numnode;fixedNodeTY+2*numnode]);
162 [V,D] = eig(K(activeDof,activeDof),M(activeDof,activeDof));
163 D = diag(sqrt(D)*L*sqrt(rho/G));
164 [D,ii] = sort(D); ii = ii(1:numberOfModes); VV = V(:,ii);
165 activeDofW=setdiff([1:numnode]’,[fixedNodeW]);NNN=size(activeDofW);
166 %
167 VVV(1:numnode,1:numberOfModes)=0;
168 for i=1:numberOfModes
169 VVV(activeDofW,i)=VV(1:NNN,i);
170 end
171 %
172 NN=numnode;N=sqrt(NN);
173 x=linspace(-L,L,numx+1);
174 y=linspace(-L,L,numy+1);
175 % desenho de modos de vibracao
176 figure
177 [xx,yy] = meshgrid(x,y);
178 fine = -1:.02:1;
179 [xxx,yyy] = meshgrid(fine,fine);
180 uu = zeros(NN,NN);
181 [ay,ax] = meshgrid([.56 .04],[.1 .5]);
182 for i = 1:4
183 uu = reshape(VVV(1:NN,i),N,N);
184 uu = uu/norm(uu(:),inf);
185 uuu = interp2(xx,yy,uu,xxx,yyy,’cubic’);
186 subplot(’position’,[ax(i) ay(i) .38 .38])
187 contour(fine,fine,uuu,-0.9:.2:.9)
188 colormap(1e-6*[1 1 1]); axis square
189 title([’eig = ’ num2str(D(i),’%18.12f’)])
190 end
191 %
192 figure
193 [xx,yy] = meshgrid(x,y);
194 fine = -1:.02:1;
195 [xxx,yyy] = meshgrid(fine,fine);
196 uu = zeros(NN,NN);
197 [ay,ax] = meshgrid([.56 .04],[.1 .5]);
198 for i = 5:8
199 uu = reshape(VVV(1:NN,i),N,N);
200 uu = uu/norm(uu(:),inf);
201 uuu = interp2(xx,yy,uu,xxx,yyy,’cubic’);
202 subplot(’position’,[ax(i-4) ay(i-4) .38 .38])
203 contour(fine,fine,uuu,-0.9:.2:.9)
204 colormap(1e-6*[1 1 1]); axis square
205 title([’eig = ’ num2str(D(i),’%18.12f’)])
206 end
320 17 Análise de vibrações livres

207 %
208 figure
209 [xx,yy] = meshgrid(x,y);
210 fine = -1:.02:1;
211 [xxx,yyy] = meshgrid(fine,fine);
212 uu = zeros(NN,NN);
213 [ay,ax] = meshgrid([.56 .04],[.1 .5]);
214 for i = 9:12
215 uu = reshape(VVV(1:NN,i),N,N);
216 uu = uu/norm(uu(:),inf);
217 uuu = interp2(xx,yy,uu,xxx,yyy,’cubic’);
218 subplot(’position’,[ax(i-8) ay(i-8) .38 .38])
219 contour(fine,fine,uuu,-0.9:.2:.9)
220 colormap(1e-6*[1 1 1]); axis square
221 title([’eig = ’ num2str(D(i),’%18.12f’)])
222 end
223 %
224 figure
225 % Reshape them to 2D grid, interpolate to finer grid, and plot:
226 [xx,yy] = meshgrid(x,y);
227 fine_x = -1:.02:1;fine_y = -1:.02:1; [xxx,yyy] = meshgrid(fine_x,fine_y);
228 uu = zeros(NN,NN);
229 [ay,ax] = meshgrid([.56 .04],[.1 .5]); clf
230 for i = 1:4
231 uu = reshape(VVV(1:NN,i),N,N);
232 uu = uu/norm(uu(:),inf);
233 uuu = interp2(xx,yy,uu,xxx,yyy,’cubic’);
234 subplot(2,2,i)
235 meshc(xxx,yyy,uuu)
236 title([’eig = ’ num2str(real(D(i)),’%18.12f’)])
237 end

17.13 Elemento Q4γ


A análise de vibrações livres com o elemento de placa Q4γ segue de muito
perto o que foi apresentado para o elemento Q4, dado que a matriz de massa
se calcula exactamente da mesma forma. Apresenta-se de seguida a listagem
completa do código e alguns resultados com este elemento.
Considera-se uma placa quadrada, com lado a, razão espessura/lado h/a =
0.01 e 0.1. A frequência adimensional é definida por
r
ρ
λ̄ = λmn a ,
G
onde λ representa a frequência, ρ é a massa por unidade de volume, G
é o módulo de corte, G = E/(2(1 + ν)), E o módulo de elasticidade e ν
17.13 Elemento Q4γ 321

o coeficiente de Poisson. Os indices m e n representam as semi-ondas dos


modos de vibração nas direcções x e y, respectivamente.
Consideram-se placas isotrópicas, encastradas (CCCC) e simplesmente
apoiadas (SSSS) em torno dos seus 4 bordos. Consideram-se ainda placas
SCSC e CCCF, onde o indice F representa bordo livre. Para as placas CCCC
e CCCF usa-se k = 0.8601, para as SCSC k = 0.822 e para as SSSS, k = 5/6.
Na tabela 17.19 apresenta-se a convergência da frequência fundamen-
tal normalizada para placa encastrada h/a = 0.01, k = 0.8601, ν = 0.3 .
Compara-se com a solução analitica, que pode ser consultada num artigo de
Dawe8 . Como se pode verificar, usando o elemento Q4γ chega-se a bons re-
sultados.

10 × 10 0.1801 Solução analitica: 0.1754


15 × 15 0.1774
20 × 20 0.1765
25 × 25 0.1761
35 × 35 0.1756
Tabela 17.19. Elemento Q4γ. Convergência da frequência fundamental normali-
zada para placa encastrada h/a = 0.01, k = 0.8601, ν = 0.3

Da mesma forma, na tabela 17.20 apresenta-se a convergência da frequência


fundamental normalizada para placa simplesmente apoiada h/a = 0.01, k =
0.8333, ν = 0.3. Os resultados são mais próximos da solução analitica que para
o caso CCCC.

10 × 10 Q4 0.0973 Solução analitica: 0.0963


15 × 15 Q4 0.0968
20 × 20 Q4 0.0965
25 × 25 Q4 0.0965
35 × 35 Q4 0.0964
Tabela 17.20. Elemento Q4γ. Convergência da frequência fundamental normali-
zada para placa simplesmente apoiada h/a = 0.01, k = 0.8333, ν = 0.3

Apresenta-se um código de placa (q4gammaMindlin1.m).


1 clear all
2 colordef white
3 tic
4 % propriedades material
5 E0 = 10920; % mdulo Young
6 nu0 = 0.30; % coef. Poisson
8
D. J. Dawe and O. L. Roufaeil, Rayleigh-Ritz vibration analysis of Mindlin plates,
Journal of Sound and Vibration, 69 (3) (1980), 345–359.
322 17 Análise de vibrações livres

7 rho=1;
8 % geometria
9 L = 1; % lado
10 thickness=0.01;
11 I=thickness^3/12;
12 P=-1;
13 % correcao de corte
14 kapa=0.8601; % cccc / cccf
15 %kapa=0.822; % scsc
16 kapa=5/6; % ssss
17 numy = 10; % # elementos em xx
18 numx = 10; % # elementos em xx
19 %malha
20 [node, element] = MalhaRectangular(L, L, numx, numy);
21 figure
22 plot_mesh(node,element,’Q4’,’k’)
23 axis off
24 %
25 xx=node(:,1); yy=node(:,2);
26 numnode=size(node,1); % numero nos
27 numelem=size(element,1); % numero elementos
28 % matriz elasticidade (duas partes)
29 vh=E0*thickness^3/12/(1-nu0^2)*[1 nu0 0; nu0 1 0; 0 0 (1-nu0)/2];
30 vhc=kapa*E0/2/(1+nu0)*thickness*[1 0; 0 1];
31 %
32 disp([num2str(toc),’ dados ’])
33 U=zeros(3*numnode,1); % vector de deslocamentos nodais
34 f=zeros(3*numnode,1); % vector de carga externa
35 K=sparse(3*numnode,3*numnode); % matriz de rigidez
36 M=sparse(3*numnode,3*numnode); % matriz de rigidez
37
38 % rigidez
39 % quadratura
40 ih=3;ihc=2;
41 pg=.577350269189626; pg1=-.577350269189626;
42 vpg=[pg1,pg,pg,pg1;pg1,pg1,pg,pg];vwg=[1 1 1 1];
43
44 for e=1:numelem
45 indice=element(e,:);
46 indiceB=[ indice(1)*3-2 indice(1)*3-1 indice(1)*3 ...
47 indice(2)*3-2 indice(2)*3-1 indice(2)*3 ...
48 indice(3)*3-2 indice(3)*3-1 indice(3)*3 ...
49 indice(4)*3-2 indice(4)*3-1 indice(4)*3];
50 nn=length(indice);
51
52 vcore(1:2:7)=node(indice,1);
53 vcore(2:2:8)=node(indice,2);
54 %
55 [vjnx,vjny]=jacnd4(vcore) ;
17.13 Elemento Q4γ 323

56 vke=zeros(12);
57 for ig=1:4 % ponto de gauss
58 [vn,vksi,veta] =nq4(vpg(1,ig),vpg(2,ig)) ;
59 [vji,detj] =jac2d(vksi,veta,vcore) ;
60 [vb,vbc] =bq4gam(vji,vksi,veta,vjnx,vjny) ;
61 %
62 K(indiceB,indiceB)=K(indiceB,indiceB)+vb’*vh*detj*vwg(ig)*vb;
63 K(indiceB,indiceB)=K(indiceB,indiceB)+vbc’*vhc*detj*vwg(ig)*vbc;
64 %
65 f(indice*3-2)=f(indice*3-2)+vn*P*detj*vwg(ig);
66 %
67 M(indice*3-2,indice*3-2)=M(indice*3-2,indice*3-2)+...
68 vn*vn’*thickness*rho*detj*vwg(ig);
69 M(indice*3-1,indice*3-1)=M(indice*3-1,indice*3-1)+...
70 vn*vn’*I*rho*detj*vwg(ig);
71 M(indice*3,indice*3)=M(indice*3,indice*3)+...
72 vn*vn’*I*rho*detj*vwg(ig);
73 end % ponto de gauss
74 end
75
76 %noCentral=find(node(:,1)==L/2 & node(:,2)==L/2);
77 %f(noCentral*3-2)=-1.0;
78
79 % BC
80
81 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
82 |xx==max(node(:,1))|yy==min(node(:,2)));
83
84 %next two lines: simply supported case
85 fixedNodeTX =find(yy==max(node(:,2))|yy==min(node(:,2)));
86 fixedNodeTY =find(xx==max(node(:,1))| xx==min(node(:,1)));
87
88 %next two lines: clamped case
89 %fixedNodeTX =fixedNodeW;
90 %fixedNodeTY =fixedNodeTX;
91
92 dofs=[fixedNodeW*3-2;fixedNodeTX*3-1;fixedNodeTY*3];
93 activeDof=setdiff([1:3*numnode]’,[dofs]);
94
95 U=K(activeDof,activeDof)\f(activeDof);
96 U1=zeros(3*numnode,1);
97 U1(activeDof)=U;
98
99 figure
100 plot3(xx,yy,U1(1:3:3*numnode),’.’)
101 format long
102 D1=E0*thickness^3/12/(1-nu0^2);
103 %min(U1(1:3:3*numnode))*D1/L^2
104 min(U1(1:3:3*numnode))*D1/L^4
324 17 Análise de vibrações livres

105 %
106 numberOfModes=24;
107 G=E0/2.6;
108 % VV : mode shape
109 % D : frequency
110 [V,D] = eigs(K(activeDof,activeDof),M(activeDof,activeDof),numberOfModes,0);
111 D = diag(sqrt(D)*L*sqrt(rho/G));
112 [D,ii] = sort(D); ii = ii(1:numberOfModes); VV = V(:,ii);
113 D(1:10)

17.14 Elemento DKT


Lista-se agora a rotina (bdkm.m) que permite calcular a matriz de massa deste
elemento.
1 function [vm]=bdkm(rho,espessura,detj)
2
3 % % massa ..................................
4 c=espessura*detj*rho/(24.d0) ;
5 % deslocamento transverso ..................................
6 ii=1 ;
7 for i=1:3
8 jj=1 ;
9 for j=1:3
10 vm(ii,jj)=c;
11 jj=jj+3 ;
12 end
13 vm(ii,ii)=c+c;
14 ii=ii+3 ;
15 end
16 % rotacoes ..................................
17 ch=espessura*espessura/12;
18 ii=1 ;
19 for i=1:3
20 jj=1 ;
21 for j=1:3
22 c=vm(ii,jj)*ch ;
23 vm(ii+1,jj+1)=c ;
24 vm(ii+2,jj+2)=c ;
25 jj=jj+3 ;
26 end
27 ii=ii+3 ;
28 end
29
bem como o código completo (dkt.m) para a análise de vibrações livres de
placas usando o elemento DKT.
1 clear all
17.14 Elemento DKT 325

2 colordef white
3 tic
4 % propriedades material
5 E0 = 10920; % mdulo Young
6 nu0 = 0.30; % coef. Poisson
7 rho=1;
8 % geometria
9 L = 1; % lado
10 thickness=0.01;
11 I=thickness^3/12;
12 P=-1;
13 % malha
14 numy = 20; % # elementos em xx
15 numx = 20; % # elementos em xx
16 %malha
17 nnx=numx+1;
18 nny=numy+1;
19 node=square_node_array([0 0],[L 0],[L L],[0 L],nnx,nny);
20
21 node_pattern1=[ 1 2 nnx+1 ];
22 node_pattern2=[ 2 nnx+2 nnx+1 ];
23 inc_u=1;
24 inc_v=nnx;
25
26 element=[make_elem(node_pattern1,numx,numy,inc_u,inc_v);
27 make_elem(node_pattern2,numx,numy,inc_u,inc_v) ];
28 %
29 xx=node(:,1); yy=node(:,2);
30 numnode=size(node,1); % numero nos
31 numelem=size(element,1); % numero elementos
32 % matriz elasticidade (duas partes)
33 vh=E0*thickness^3/12/(1-nu0^2)*[1 nu0 0; nu0 1 0; 0 0 (1-nu0)/2];
34 %
35 disp([num2str(toc),’ dados ’])
36 U=zeros(3*numnode,1); % vector de deslocamentos nodais
37 f=zeros(3*numnode,1); % vector de carga externa
38 K=sparse(3*numnode,3*numnode); % matriz de rigidez
39 M=sparse(3*numnode,3*numnode); % matriz de rigidez
40
41 % rigidez
42 % quadratura
43 ih=3;ihc=2;
44 pg= .166666666666666;
45 pg1= .666666666666666;
46 vpg=[pg ,pg1 ,pg;pg ,pg ,pg1];vwg=[pg pg pg];
47 idle=9;ike=81;innel=3;ipg=3;ih=3;
48
49 for e=1:numelem
50 indice=element(e,:);
326 17 Análise de vibrações livres

51 indiceB=[ indice(1)*3-2 indice(1)*3-1 indice(1)*3 ...


52 indice(2)*3-2 indice(2)*3-1 indice(2)*3 ...
53 indice(3)*3-2 indice(3)*3-1 indice(3)*3 ];
54
55 vcore(1:2:5)=node(indice,1); vcore(2:2:6)=node(indice,2);
56 [vcos,vl]=t3cos(vcore);
57 %
58 % determinante J
59 detj=( vcore(3)-vcore(1) )*( vcore(6)-vcore(2) ) ...
60 -( vcore(2)-vcore(4) )*( vcore(1)-vcore(5) );
61 % inversa da matriz jacobiana
62 vji(2,2)= ( vcore(3)-vcore(1) )/detj ;
63 vji(2,1)= ( vcore(1)-vcore(5) )/detj ;
64 vji(1,2)= ( vcore(2)-vcore(4) )/detj ;
65 vji(1,1)= ( vcore(6)-vcore(2) )/detj ;
66 % inicializao K, M
67 vke=zeros(9);
68 vm=zeros(9);
69 %
70 for ig=1:3 % ponto de gauss
71
72 [vb]=bdkt(vl,vcos,vji,vpg(1,ig),vpg(2,ig));
73 %
74 K(indiceB,indiceB)=K(indiceB,indiceB)+vb’*vh*detj*vwg(ig)*vb;
75 end % ponto de gauss
76 f(indice*3-2)=f(indice*3-2)+P*detj/6;
77 [vm]=bdkm(rho,thickness,detj) ;
78 M(indiceB,indiceB)=M(indiceB,indiceB)+vm;
79
80 end
81
82 %noCentral=find(node(:,1)==L/2 & node(:,2)==L/2);
83 %f(noCentral*3-2)=-1.0;
84 % BC
85
86 fixedNodeW =find(yy==max(node(:,2))|xx==min(node(:,1))...
87 |xx==max(node(:,1))|yy==min(node(:,2)));
88
89 %next two lines: simply supported case
90 fixedNodeTX =find(yy==max(node(:,2))|yy==min(node(:,2)));
91 fixedNodeTY =find(xx==max(node(:,1))| xx==min(node(:,1)));
92
93 %next two lines: clamped case
94 %fixedNodeTX =fixedNodeW;
95 %fixedNodeTY =fixedNodeTX;
96
97
98 dofs=[fixedNodeW*3-2;fixedNodeTX*3-1;fixedNodeTY*3];
99 activeDof=setdiff([1:3*numnode]’,[dofs]);
17.14 Elemento DKT 327

100
101 U=K(activeDof,activeDof)\f(activeDof);
102 U1=zeros(3*numnode,1);
103 U1(activeDof)=U;
104
105 figure
106 plot3(xx,yy,U1(1:3:3*numnode),’.’)
107 format long
108 D1=E0*thickness^3/12/(1-nu0^2);
109 %min(U1(1:3:3*numnode))*D1/L^2
110 min(U1(1:3:3*numnode))*D1/L^4
111 %
112 G=E0/2.6;
113 % V : mode shape
114 % D : frequency
115 [V,D] = eigs(K(activeDof,activeDof),M(activeDof,activeDof),24,0);
116 D = diag(sqrt(D)*L*sqrt(rho/G));
117 [D,ii] = sort(D);
118 D(1:10)

A análise de vibrações livres com o elemento de placa DKT é aqui exami-


nada.
Considera-se uma placa quadrada, com lado a, razão espessura/lado h/a =
0.01 e 0.1. A frequência adimensional é definida por
r
ρ
λ̄ = λmn a ,
G
onde λ representa a frequência, ρ é a massa por unidade de volume, G
é o módulo de corte, G = E/(2(1 + ν)), E o módulo de elasticidade e ν
o coeficiente de Poisson. Os indices m e n representam as semi-ondas dos
modos de vibração nas direcções x e y, respectivamente.
Consideram-se placas isotrópicas, encastradas (CCCC) e simplesmente
apoiadas (SSSS) em torno dos seus 4 bordos.
Na tabela 17.21 apresenta-se a convergência da frequência fundamen-
tal normalizada para placa encastrada h/a = 0.01, k = 0.8601, ν = 0.3 .
Compara-se com a solução analitica, que pode ser consultada num artigo de
Dawe9 . Como se pode verificar, usando o elemento Q4γ chega-se a bons re-
sultados.
Da mesma forma, na tabela 17.22 apresenta-se a convergência da frequência
fundamental normalizada para placa simplesmente apoiada h/a = 0.01, k =
0.8333, ν = 0.3. Os resultados são mais próximos da solução analitica que para
o caso CCCC.
9
D. J. Dawe and O. L. Roufaeil, Rayleigh-Ritz vibration analysis of Mindlin plates,
Journal of Sound and Vibration, 69 (3) (1980), 345–359.
328 17 Análise de vibrações livres

10 × 10 0.1772 Solução analitica: 0.1754


15 × 15 0.1763
20 × 20 0.1760
25 × 25 0.1758
35 × 35 0.1757
Tabela 17.21. Elemento DKT. Convergência da frequência fundamental normali-
zada para placa encastrada h/a = 0.01, ν = 0.3

10 × 10 Q4 0.0975 Solução analitica: 0.0963


15 × 15 Q4 0.0968
20 × 20 Q4 0.0966
25 × 25 Q4 0.0965
35 × 35 Q4 0.0964
Tabela 17.22. Elemento DKT. Convergência da frequência fundamental normali-
zada para placa simplesmente apoiada h/a = 0.01, k = 0.8333, ν = 0.3

17.15 Listagem do gerador de malhas rectangulares


Apresenta-se a listagem do gerador de malhas rectangulares, que se torna útil
para gerar problemas de geometria simples (MalhaRectangular.m).
1 function [node, element] = ...
2 MalhaRectangular(comprimentoX, comprimentoY, nelemX, nelemY)
3
4 % [node, element] = MalhaRectangular(5, 10, 4, 8)
5 % malha rectangular com elementos ’Q4’
6
7 deltaX = comprimentoX/nelemX;
8 deltaY = comprimentoY/nelemY;
9
10 nodesX = nelemX+1;
11 nodesY = nelemY+1;
12
13 % coordenadas nos
14 node=[];
15 for j=1:nodesY; for i=1:nodesX
16 x = (i-1)*deltaX; y = (j-1)*deltaY;
17 node=[node; x y];
18 end;end
19
20 % connectividades
21 element=[];
22 for j=1:nelemY;for i=1:nelemX
23 i1 = i+(j-1)*nodesX;i2 = i1+1;
24 i3 = i2+nodesX;i4 = i1+nodesX;
25 element=[element; i1 i2 i3 i4];
26 end;end
17.15 Listagem do gerador de malhas rectangulares 329

27
28
A
Conceitos básicos de MATLAB

A.1 Introdução
O MATLAB 1 é uma ferramenta de programaçãao interactiva baseada em
cálculo matricial. Foi desenvolvida pela MathWorks para cálculo cientifico e
apoio a engenharia.
Pretende-se neste capı́tulo ilustrar algumas das capacidades do MATLAB.
Sugere-se a consulta de livros de MATLAB e de consulta ao (muito útil) help
do MATLAB.

A.2 Matrizes
Talvez o elemento mais importante do MATLAB seja a matriz rectangular,
onde os vectores são considerados como matrizes linha ou coluna e os escalares
como matrizes 1 × 1.
As matrizes podem ser introduzidas em MATLAb de várias formas:
• por uma lista de elementos
• por funções ou expressões do próprio MATLAB
• por valores vindos de ficheiros externos
Considere-se o ambiente de trabalho, na janela MATLAB ilustrada na figura
A.1.
Seja, a tı́tulo de exemplo, a expressão A = [1 2 3; 4 5 6; 7 8 9], que
produzirá a matriz 3 por 3, sendo a esta matriz afectada a variável A. Note-se
que se pode separar os elementos duma linha por espaço, mas deve colocar-se
o ponto e vı́rgula para mudar de linha.
>> A = [1 2 3; 4 5 6; 7 8 9]

1
MATLAB é uma marca registada da The MathWorks, Inc., USA
332 A Conceitos básicos de MATLAB

Figura A.1. Ambiente tipico MATLAB

A =

1 2 3
4 5 6
7 8 9

>>
Note-se também que os elementos das matrizes podem ser complexos, o que
não será aqui abordado, dada a sua irrelevância na maior parte das aplicações
de elementos finitos (senão mesmo em todas). Caso existam valores tabela-
dos num file externo, digamos dados.dat, o comando load dados.dat faz a
leitura de todos os valores e poderá colocá-los na variável que se entender útil.
Podem criar-se matrizes directamente usando algumas das matrizes já in-
cluidas no MATLAB, por exemplo, pelas funções rand ou hilb. O comando
rand(n) produz uma matriz de dimensão n com elementos gerados de forma
aleatória, como se pode ver a seguir

>> rand(3)

ans =

0.9501 0.4860 0.4565


0.2311 0.8913 0.0185
0.6068 0.7621 0.8214
A.3 Operações com matrizes 333

>>

Podem também criar-se do mesmo modo matrizes rectangulares, usando


rand(m,n), onde m, n representam o número de linhas e colunas, respecti-
vamente.

>> rand(2,3)

ans =

0.4447 0.7919 0.7382


0.6154 0.9218 0.1763

>>

O comando hilb(m,n) produz uma matriz mal-condicionada, por exemplo

>> hilb(3)

ans =

1.0000 0.5000 0.3333


0.5000 0.3333 0.2500
0.3333 0.2500 0.2000

Podemos ainda criar matrizes através de ciclos FOR/END, a ver adiante.

A.3 Operações com matrizes


Em MATLAB estão disponı́veis as seguintes operações:
+ adição
− subtracção
∗ multiplicação
potência
0
transposta
\ divisão à esquerda
/ divisão à direita
Note-se que se pode aplicar estas operações a escalares. Deve ainda tomar-
se cuidado para respeitar as dimensões das matrizes envolvidas, por forma a
ser possı́vel realizar as operações matriz-matriz.
Em particular, note-se a divisão. Seja A uma matriz não singular quadrada
e b um vector coluna compatı́vel. Então x = A\b representa a solução de
A ∗ x = b, bem como x = b/A é a solução de x ∗ A = b.
334 A Conceitos básicos de MATLAB

Na divisão à esquerda, usa-se a eliminação Gaussiana para matrizes qua-


dradas e outras técnicas para matrizes rectangulares, como a ortogonalização
de Householder.
Note-se que as operações ∗, , \, e / devem ser precedidas por ponto, ou
seja, [1,2,3].*[1,2,3] ou [1,2,3].^2 produzem
>> [1,2,3].*[1,2,3]

ans =

1 4 9
>> [1,2,3].^2

ans =

1 4 9

A.4 Expressões e variáveis


O MATLAB é uma linguagem interpretativa, onde cada expressão do tipo
variável = express~ ao ou simplesmente express~ao.
As expressões são compostas por operadores, funções ou variáveis, produ-
zindo sempre uma matriz que poderá ser usada para futuros cálculos.
Exemplos
>> a=3

a =

3
>> 3

ans =

>> ans*4

ans =

12
Note-se que o eco para o écran poderá ser suprimido se se colocar no final
da expressão o ponto e vı́rgula. Podemos ainda colocar várias expressões numa
mesma linha, desde que separadas por ponto e vı́rgula.
A.5 Funções de construção de matrizes 335

>> a=3;b=cos(10);c=20;
>>
O MATLAB é ”case-sensitive”, ou seja as variáveis a e A são interpretadas
distintamente.
Alguns comandos importantes são o who e whos que listam as variáveis no
espaço de trabalho,
>> who

Your variables are:

A a ans b c

>>
Podemos apagar todas as variáveis (não permanentes) do espaço de trabalho,
fazendo clear all ou apagar apenas uma dada variável, fazendo clear A,
por exemplo.
A variável permanente eps dá-nos uma ideia do ”roundoff”da máquina, o
que pode ser interessante para estudos de tolerância, por exemplo, em proces-
sos iterativos. Na máquina que produziu este texto (um ibook de 12 polega-
das), aparece
>> eps

ans =

2.2204e-16

>>
Pode-se parar o cálculo fazendo CTRL-C ou maçã-C (no MAC).

A.5 Funções de construção de matrizes


Algumas funções para construção de matrizes:
eye matriz identidade
zeros matriz de zeros
ones matriz de ”uns”
diag cria ou extrai diagonais
triu matriz triangular superior
tril matriz triangular superior
rand matriz aleatória
hilb matriz de Hilbert
magic matriz quadrada ”magic”
toeplitz matriz Toepliz
336 A Conceitos básicos de MATLAB

Podemos obter informaçãao sobre estas matrizes, fazendo, por exemplo


help eye, obtendo
>> help eye
EYE Identity matrix.
EYE(N) is the N-by-N identity matrix.

EYE(M,N) or EYE([M,N]) is an M-by-N matrix with 1’s on


the diagonal and zeros elsewhere.

EYE(SIZE(A)) is the same size as A.

EYE with no arguments is the scalar 1.

EYE(M,N,CLASSNAME) or EYE([M,N],CLASSNAME) is an M-by-N matrix with 1’s


of class CLASSNAME on the diagonal and zeros elsewhere.

Example:
x = eye(2,3,’int8’);

See also speye, ones, zeros, rand, randn.

Reference page in Help browser


doc eye

>>
Alguns exemplos do que foi aqui apresentado:
>> eye(3)

ans =

1 0 0
0 1 0
0 0 1

>> diag(eye(3))

ans =

1
1
1

>> magic(4)

ans =
A.5 Funções de construção de matrizes 337

16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1

>> ones(3,2)

ans =

1 1
1 1
1 1

>>
Podemos construir matrizes por blocos, por exemplo

>> B = [A, zeros(3,2); zeros(2,3), ones(2)]

B =

1 2 3 0 0
4 5 6 0 0
7 8 9 0 0
0 0 0 1 1
0 0 0 1 1

>>

construindo assim de forma fácil uma matriz 5 por 5.


For, while, if — and
O fluxo de informação pode ser controlado de várias formas. Algumas das funções
ou relações mais úteis são discutidas a seguir.

A.5.1 For/End

Para um dado n, digamos n = 4, podemos escrever

>> x = []; for i = 1:4, x=[x,i^2], end

x =

x =

1 4
338 A Conceitos básicos de MATLAB

x =

1 4 9

x =

1 4 9 16
e agora em ordem inversa
>> x = []; for i = 4:-1:1, x=[x,i^2], end

x =

16

x =

16 9

x =

16 9 4

x =

16 9 4 1

Note-se a anulação da matriz x = []. Em geral, deve-se sempre anular as matrizes


antes dos ciclos FOR/END.
>> for i = 1:3
for j = 1:4
H(i, j) = 1/(i+j-1);
end
end
>> H

H =

1.0000 0.5000 0.3333 0.2500


0.5000 0.3333 0.2500 0.2000
0.3333 0.2500 0.2000 0.1667

>>
A.5 Funções de construção de matrizes 339

While.
A forma geral do ciclo while é while relação expressões end
As expressões são executadas repetidamente enquanto a relação for verdadeira.
Por exemplo, para um dado número a, o código a seguir indicado calcula e mostra
o menor inteiro não negativo n tal que 2n ≥ a:
n = 0; while 2n < a n = n + 1; end n
com o resultado

>> n = 0;
while 2^n < a
n = n + 1;
end
n

n =

If.
A forma geral da expressão if é if relação expressões end As expressões serão
executadas apenas se a relação for verdadeira. Podemos ter ciclos if dentro de
outros, por exemplo
if n < 0 parity = 0; elseif rem(n,2) == 0 parity = 2; else parity = 1;
end
relações.
Os operadores relacionais em MATLAB são
< menor que
> maior que
<= menor ou igual a
>= maior ou igual a
== igual
∼= diferente.
Note-se a diferença entre a igualdade “=” e a igualdade de relação “==” . As relações
podem ainda ser quantificadas pelos operadores lógicos

& e
| ou
∼ não.
As relações produzem o valor 0 ou 1, quando aplicados a escalares, como por
exemplo

>> 3 < 5, 3 > 5, 3 == 5,

ans =

1
340 A Conceitos básicos de MATLAB

ans =

ans =

O mesmo acontece nas matrizes, como por exemplo,

>> a = rand(5), b = triu(a), a == b

a =

0.4057 0.0579 0.2028 0.0153 0.4186


0.9355 0.3529 0.1987 0.7468 0.8462
0.9169 0.8132 0.6038 0.4451 0.5252
0.4103 0.0099 0.2722 0.9318 0.2026
0.8936 0.1389 0.1988 0.4660 0.6721

b =

0.4057 0.0579 0.2028 0.0153 0.4186


0 0.3529 0.1987 0.7468 0.8462
0 0 0.6038 0.4451 0.5252
0 0 0 0.9318 0.2026
0 0 0 0 0.6721

ans =

1 1 1 1 1
0 1 1 1 1
0 0 1 1 1
0 0 0 1 1
0 0 0 0 1

A relação entre matrizes é um pouco mais peculiar. Por exemplo, se queremos


usar a relação A = B, fazemos
if A == B expressão end
enquanto que se se quiser usar A = B, devemos usar
if any(any(A ∼= B)) expressão end ou if A == B else expressão end
Note-se que
if A ∼= B, expressão, end não produzirá o feito desejado, dado que expressão
só será executado se cada um dos elementos correspondentes de A e B diferirem. As
funções any e all podem ser usadas para reduzir as relações matriciais a vectores e
escalares. Note-se que são necessários dois any porque any é uma operação vectorial.
A.8 Funções de matrizes 341

A.6 Funções escalares


Algumas funções do MATLAB são destinadas a escalares e funcionam em cada
elemento de matriz, quando necessário. Algumas dessas funções são

sin asin exp abs round cos acos log (log natural) sqrt floor tan atan rem
(resto) sign ceil

A.7 Funções vectoriais


Outras funções do MATLAB operam essencialmente num vector linha ou coluna.
Essas operações actuam numa matriz em cada coluna, produzindo um vector linha
com o resultado de cada coluna. Algumas dessas funções são
max sum median any
min prod mean all
sort std
O máximo elemento de A será calculado como max(max(A)) em vez de max(A),
ou seja

>> A

A =

1 2 3
4 5 6
7 8 9

>> max(max(A))

ans =

>> max(A)

ans =

7 8 9

>>

A.8 Funções de matrizes


Muita da capacidade do MATLAB vem das funções para matrizes, algumas das
quais são
342 A Conceitos básicos de MATLAB

eig valores e vectores próprios


chol factorização de cholesky
svd decomposição de singular value
inv inversa
lu factorização LU
qr factorização QR
hess forma hessenberg
schur decomposição schur
rref forma reduzida de matriz
expm matriz exponencial
sqrtm raiz quadrada da matriz
poly polinómio caracteristico
det determinante
size tamanho
norm 1-norm, 2-norm, F-norm, ∞-norm
cond número de condicionamento da 2-norm
rank caracteristica
Estas funções possuem muitas vezes mais do que um argumento de saı́da, por exem-
plo y = eig(A), ou apenas eig(A)
>> y = eig(A)

y =

16.1168
-1.1168
-0.0000
produzindo um vector coluna com os valores próprios de A enquanto que
[U,D] = eig(A)

>> [U,D] = eig(A)

U =

-0.2320 -0.7858 0.4082


-0.5253 -0.0868 -0.8165
-0.8187 0.6123 0.4082

D =

16.1168 0 0
0 -1.1168 0
0 0 -0.0000

produz uma matriz U cujas colunas são os vectores próprios de A e uma matriz
diagonal D com os valores próprios de A na sua diagonal.
A.9 Submatrizes 343

A.9 Submatrizes
Em MATLAB é possivel manipular os vectores e submatrizes, por forma a conseguir
ganhos de computação ou compactação de código. Por exemplo, a expressão 1:5
produz o vector [1 2 3 4 5]. Esta vectorização é altamente eficiente e não necessita
de usar apenas inteiros, como por exemplo 0.2:0.2:1.2 que produz [0.2, 0.4,
0.6, 0.8, 1.0, 1.2], e 5:-1:1 que produz [5 4 3 2 1]. A expressão seguinte
produz uma tabela de senos:

>> x = [0.0:0.5:2.0]
y = sin(x);
[x’ y’]

x =

0 0.5000 1.0000 1.5000 2.0000

ans =

0 0
0.5000 0.4794
1.0000 0.8415
1.5000 0.9975
2.0000 0.9093

Note-se que o vector y é gerado a partir do vector x.


A notação : pode também ser usada para aceder a submatrizes duma matriz
qualquer, como por exemplo, A(1:4,3) que produz o vector coluna das primeiras
quatro entradas da terceira coluna de A. Usa-se também esta notação para definir
uma linha ou coluna inteira, por exemplo A(:,3) representa a terceira coluna de A,
e A(1:4,:) as suas primeiras 4 colunas. Podemos também usar: A(:,[2 4]) para
definir as colunas 2 e 4 de A. Podemos também usar operações do tipo A(:,[2 4
5]) = B(:,1:3) para substituir as colunas 2,4,5 de A com as três primeiras colunas
de B. Podemos multiplicar as colunas 2 e 4 de A à direita pela matriz [1 2;3 4]:
A(:,[2,4]) = A(:,[2,4])*[1 2;3 4]
Seja x um vector coluna. Note-se o efeito de x = x(n:-1:1):

>> x=A(2,:)’

x =

4
5
6

>> x = x(end:-1:1)

x =
344 A Conceitos básicos de MATLAB

6
5
4

A.10 M-files
O MATLAB pode executar uma sequência de expressões guardadas em ficheiros, que
terminam em ”.m”. Existem dois grandes tipos de M-files, os scripts e as functions.
Scripts.
Um ficheiro de scripts consiste numa sequência normal de comandos, que são
executados uns atrás dos outros, com variáveis globais. Uma M-file pode chamar
um conunto de outras M-files, tornando assim a programação muito organizada.
Como exemplo veja-se o file1.m, que tem o seguinte conjunto de instruções

% exemplo de m-file

a=1
b=a*3

produzindo o resultado

a =

b =

Functions.
As funções são ficheiros que contém subrotinas, funções que são usadas várias
vezes num programa ou simplesmente para tornar o programa mais legı́vel.
Note-se que as variáveis numa função são locais. Podem ser no entanto tornadas
globais.
Veja-se o seguinte exemplo
We first illustrate with a simple example of a function file.

function [a,b,c] = antonio(m,n,p)


a = hilb(m);
b= magic(n);
c= eye(m,p);

que pode ser chamada


>> [a,b,c]=antonio(2,3,4)
produzindo
A.11 Formato de saı́da 345

>> [a,b,c]=antonio(2,3,4)

a =

1.0000 0.5000
0.5000 0.3333

b =

8 1 6
3 5 7
4 9 2

c =

1 0 0 0
0 1 0 0
Note-se que se pode omitir alguns dos parâmetros de saı́da, por exemplo
>> [a,b]=antonio(2,3,4)

a =

1.0000 0.5000
0.5000 0.3333

b =

8 1 6
3 5 7
4 9 2
O simbolo % indica que o resto da linha é um comentário e não representa
instruções para serem executadas.

A.11 Formato de saı́da


Embora os cálculos em MATLAB sejam sempre em dupla precisão, podemos escolher
o formato de saı́da, com os seguintes comandos

format short 4 casas decimais (por defeito)


format long 14 casas decimais
format short e 4 casas decimais em notação cientifica
format long e 15 casas decimais em notação cientifica
format hex formato hexadecimal
format + +, -, em branco
346 A Conceitos básicos de MATLAB

Quando são chamados, estes formatos mantém-se até que apareça outro.

A.12 Gráficos
Gráficos 2D.
O comando plot cria gráficos x-y lineares, desde que x e y sejam vectores da
mesma dimensão, como por exemplo x = -4:.01:4; y = sin(x); plot(x,y),
que produz a figura A.2

0.8

0.6

0.4

0.2

!0.2

!0.4

!0.6

!0.8

!1
!4 !3 !2 !1 0 1 2 3 4

Figura A.2. Forma seno

Se quisermos vários graficos em várias figuras, podemos usar o comando figure(2)


(ou apenas figure) que abrirá uma segunda figura, etc.
2
Veja-se agora o caso do gráfico de y = e−x no intervalo -1.5 a 1.5 na forma:
x = -1.5:.01:1.5; y = exp(-x.2); plot(x,y) . Note-se o periodo para se poder
executar a função elemento a elemento (figura A.3).
É ainda possı́vel criar uma função, por exemplo, expnormal.m

function y = expnormal(x) y = exp(-x.2);


e depois usar o comando fplot(’expnormal’, [-1.5,1.5]) para produzir o gráfico.
Pode-se ainda definir curvas parametricamente, por exemplo t=0:.001:2*pi;
x=cos(3*t); y=sin(2*t); plot(x,y), ilustrado a seguir (figura A.4)
Os gráficos podem ter tı́tulo, legendas, etc, conforme se indica a seguir.
title tı́tulo
xlabel legenda do eixo x
ylabel legenda do eixo y
A.12 Gráficos 347

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1
!1.5 !1 !0.5 0 0.5 1 1.5

Figura A.3. Forma exponencial

0.8

0.6

0.4

0.2

!0.2

!0.4

!0.6

!0.8

!1
!1 !0.8 !0.6 !0.4 !0.2 0 0.2 0.4 0.6 0.8 1

Figura A.4. Curvas definidas parametricamente


348 A Conceitos básicos de MATLAB

O comando title(’Curvas paramétricas’) dá um tı́tulo ao gráfico.


O comando grid coloca uma grelha (rede) no gráfico corrente. Podemos modi-
ficar a escala dos eixos coordenados, pelo comando axis. Algumas caracteristicas
deste comando são
axis([xmin ,xmax ,ymin ,ymax ]) definir limites para os eixos
axis auto limites definidos automaticamente
axis square mesma escala em ambos os eixos
axis equal mesma escala em ambos os eixos
axis off anula escalamento dos eixos
axis on retoma escalamento nos eixos
O comando axis deve ser colocado depois do comando plot.
Podem construir-se gráficos múltiplos, numa única imagem, como por exemplo
x=0:.01:2*pi;y1=sin(x);y2=sin(2*x);y3=sin(4*x);plot(x,y1,x,y2,x,y3), obtendo-
se a figura A.5.

0.8

0.6

0.4

0.2

!0.2

!0.4

!0.6

!0.8

!1
0 1 2 3 4 5 6 7

Figura A.5. Curvas múltiplas num mesmo gráfico

O comando hold on congela a figura actual até que novos gráficos possam ser
sobrepostos neste.
Podemos ainda modificar linhas, cores, pontos etc, por exemplo (figura A.6
x=0:.01:2*pi; y1=sin(x); y2=sin(2*x); y3=sin(4*x);
plot(x,y1,’--’,x,y2,’:’,x,y3,’+’)
A linhas e marcas podem ser construidas por
linhas: solido (-), tracejado (--). pontilhado (:), traço ponto (-.) marcas: ponto
(.), mais (+), estrela (*), cı́rculo (o), marca x(x)
Podemos ainda especificar as cores para as linhas ou marcas, fazendo
Cores: amarelo (y), castanho (m), vermelho (r) verde (g), azul (b), branco (w),
preto (k)
A.12 Gráficos 349

0.8

0.6

0.4

0.2

!0.2

!0.4

!0.6

!0.8

!1
0 1 2 3 4 5 6 7

Figura A.6. Modificação de cores, pontilhado, etc

Por exemplo, plot(x,y,’r--’) desenha uma linha tracejada a vermelho.


O comando subplot pode ainda ser usado para dividir o écran em vários gráficos
mais pequenos, para produzir uma única figura. Veja-se o seguinte exemplo

income = [3.2 4.1 5.0 5.6];


outgo = [2.5 4.0 3.35 4.9];
subplot(2,1,1); plot(income)
subplot(2,1,2); plot(outgo)

que produz a figura A.7.


Outro exemplo seria (figura A.8)

income = [3.2 4.1 5.0 5.6];


outgo = [2.5 4.0 3.35 4.9];
subplot(2,2,1); plot(income)
subplot(2,2,2); plot(outgo)
subplot(2,2,3); plot(outgo)
subplot(2,2,4); plot(outgo)

Outras funções para desenhar gráficos são via help are: polar, bar, hist,
quiver, compass, feather, rose, stairs, fill
Na figura A.9 ilustra-se o efeito dos comandos

t = 0:.01:2*pi;
polar(t,sin(2*t).*cos(2*t),’--r’)

Da mesma forma, os comandos


350 A Conceitos básicos de MATLAB

5.5

4.5

3.5

3
1 1.5 2 2.5 3 3.5 4

4.5

3.5

2.5
1 1.5 2 2.5 3 3.5 4

Figura A.7. Vários gráficos numa mesma figura

6 5

5.5 4.5
5
4
4.5
3.5
4

3.5 3

3 2.5
1 2 3 4 1 2 3 4

5 5

4.5 4.5

4 4

3.5 3.5

3 3

2.5 2.5
1 2 3 4 1 2 3 4

Figura A.8. Vários gráficos numa mesma figura


A.12 Gráficos 351

subplot(3,1,1), bar(rand(10,5),’stacked’), colormap(cool)


subplot(3,1,2), bar(0:.25:1,rand(5),1)
subplot(3,1,3), bar(rand(2,3),.75,’grouped’)

produzem a figura A.10.

90
0.5
120 60
0.4

0.3
150 30
0.2

0.1

180 0

210 330

240 300
270

Figura A.9. Função polar


352 A Conceitos básicos de MATLAB

0
1 2 3 4 5 6 7 8 9 10

0.5

0
!0.2 0 0.2 0.4 0.6 0.8 1 1.2

0.5

0
1 2

Figura A.10. Função bar

Gráficos 3-D.
da mesma forma que o comando plot produz gráficos em duas dimensões, o co-
mando plot3 produz curvas em três dimensões, tendo em conta x, y, e z vectores de
idêntica dimensão. Estes vectores podem ser definidos parametricamente, conforme
os comandos

t=.01:.01:20*pi; x=cos(t); y=sin(t); z=t.^3; plot3(x,y,z)

que produzem a figura A.11, correspondente a uma hélice comprimida junto ao


plano x-y.
Malhas 3-D e desenhos de superficies.
Os desenhos de superficies podem ser conseguidos de várias formas, por exemplo
através do comando mesh. O comando mesh(z) produz uma perspectiva 3D dos
elementos da matriz z, acima duma malha rectangular no plano x-y plane. A tı́tulo
de exempolo, o comando mesh(eye(10)) produz a figura A.12.
Outra forma de apresentar as superficies seria através de desenho das facetas,
como em surf(eye(10)), representado na figura A.13.
Para desenhar um gráfico duma dada função z = f (x, y) definida num rec-
tangulo, definem-se primeiro os vectores xx e yy. Com a função meshgrid cria-se
então uma matriz x, em que cada linha é igual a xx e cada coluna tem o com-
primento de yy, e identicamente uma matriz y, em que cada coluna é igual a yy,
na forma [x,y] = meshgrid(xx,yy);. Seguidamente define-se a matriz z, para a
2 2
qual se usa então mesh ou surf, como por exemplo para a função z = e−x −y
no quadrado [−2, 2] × [−2, 2] com os comandos xx = -2:.2:2; yy = xx; [x,y] =
meshgrid(xx,yy); z = exp(-x.2 - y.2); mesh(z) que produzem a figura A.14.
O comando view pode ser usado para especificar em coordenadas esféricas ou
cartesianas o ponto de vista segundo o qual o objecto pode ser visto.
A.12 Gráficos 353

5
x 10

2.5

1.5

0.5

0
1
0.5 1
0 0.5
0
!0.5
!0.5
!1 !1

Figura A.11. Gráfico 3D

0.8

0.6

0.4

0.2

0
10
8 10
6 8
4 6
4
2 2
0 0

Figura A.12. Gráfico mesh(eye(10))


354 A Conceitos básicos de MATLAB

0.8

0.6

0.4

0.2

0
10
8 10
6 8
4 6
4
2 2
0 0

Figura A.13. Gráfico surf(eye(10))

0.8

0.6

0.4

0.2

0
25
20 25
15 20
10 15
10
5 5
0 0

Figura A.14. Gráfico3D


A.13 Matrizes esparsas 355

A.13 Matrizes esparsas


Se a matriz não for densa, antes for esparsa, pode poupar-se bastantes operações
aritméticas e tempo de cálculo. Da mesma forma pode poupar-se espaço de memória,
pelo facto de se guardarem apenas os termos não nulos. Os dois modos de armaze-
namento podem ser invocados fazendo full e sparse que permite a conversão entre
um modo e outro. Por exemplo, a criação duma matriz tridiagonal
F = floor(10*rand(3)); F = triu(tril(F,1),-1); produz

>> F = floor(10*rand(3)); F = triu(tril(F,1),-1);


>> F

F =

5 2 0
8 0 2
0 4 9

O comando S = sparse(F) converte F para modo esparsa. O comando F =


full(S) retoma S em modo denso.
Uma matriz esparsa bandeada pode ser criada por spdiags através da espci-
ficação das diagonais, como em

>> m = 6; n = 6; e = ones(n,1); d = -2*e;


T = spdiags([e,d,e],[-1,0,1],m,n)

T =

(1,1) -2
(2,1) 1
(1,2) 1
(2,2) -2
(3,2) 1
(2,3) 1
(3,3) -2
(4,3) 1
(3,4) 1
(4,4) -2
(5,4) 1
(4,5) 1
(5,5) -2
(6,5) 1
(5,6) 1
(6,6) -2

Pode retomar-se T , fazendo full(T) obtém-se

>> full(T)

ans =
356 A Conceitos básicos de MATLAB

-2 1 0 0 0 0
1 -2 1 0 0 0
0 1 -2 1 0 0
0 0 1 -2 1 0
0 0 0 1 -2 1
0 0 0 0 1 -2

Análogamente aos comandos eye, zeros, ones, and randn para matrizes densas,
para matrizes esparsas existem os comandos speye, sparse, spones, sprandn.
O comando sparse(m,n) cria uma matriz esparsa nula.

A.14 Referência
Algumas funções tipicas que se podem usar no MATLAB.

Comandos e funções de gestão


help ajuda
what listagem das M-files
lookfor procura nos files de help
which localiza funções e ficheiros
path controle do caminho do MATLAB
info informação sobre o MATLAB e a empresa The MathWorks

Gestão de variáveis
who lista variáveis correntes
whos lista variáveis correntes, forma longa
save guarda variáveis para disco
load recupera variáveis do disco
clear apaga variáveis e funções da memória
pack consolida a memória
size tamanho de uma matriz
length comprimento de um vector
disp mostra matriz ou texto

Gestão de ficheiros
cd muda o directório corrente
pwd mostra o directório corrente
dir, ls listagem do directório corrente
delete apaga ficheiro
getenv recupera variável do ambiente
diary guarda texto da sessão MATLAB
A.14 Referência 357

Controle da janela de comandos (Command Window)


clc apaga a janela de comando
home envia o cursor para o topo da página
format define o formato de saı́da
echo faz eco dos comandos dentro do script

Operações com matrizes


+ adição
− subtracção
∗ multiplicação
potência
/ divisão à direita
\ divisão à esquerda
’ transposta
kron Produto tensorial de Kronecker

Operações relacionais e lógicas


< menos que & e
<= menos que ou igual | ou
> maior que ∼ não
>= maior que ou igual xor ou exclusivo
== igual
∼= diferente

Caracteres especiais
= comando de afectação
[] usado para formar vectores e matrizes
, separa comandos e funções
; final de linhas ou supressão de impressão
% comentários
: geração de vectores

Variáveis especiais
ans resposta quando expressão não é afectada
eps precisão de vı́rgula flutuante
realmax maior número de vı́rgula flutuante
reammin menor número positivo de vı́rgula flutuante
pi π
i, j imaginários
inf infinito
NaN ”Not-a-Number”
flops contador de operações de vı́rgula flutuante
nargin número de argumentos de entrada de funções
nargout número de argumentos de saı́da de funções
computer tipo de computador
358 A Conceitos básicos de MATLAB

Tempo e data
date data corrente
clock informação de relógio
tic, toc funções de controlo do tempo entre operações
cputime tempo de CPU

Matrizes especiais
zeros matriz de zeros
ones matriz de uns
eye identitdade
diag diagonal
toeplitz Toeplitz
magic quadrada ”magic”
linspace vectores linearmente espaçadas
logspace vectores espaçados logaritmicamente
meshgrid matrizes para gráficos 3-D
rand números aleatórios uniformemente distribuidos
randn normally distributed randon numbers
hilb Hilbert
invhilb Hilbert inversa
vander Vandermonde
pascal Pascal
hadamard Hadamard
hankel Hankel
rosser matriz de teste para valores próprios simétricos
wilkinson matriz de teste para valores próprios de Wilkinson
gallery duas matrizes de teste pequenas

Manipulação de matrizes
diag cria ou extrai diagonais
rot90 roda a matriz 90 graus
fliplr muda a matriz da esquerda para a direita
flipud muda a matriz de cima para baixo
reshape mudar tamanho
tril matriz triangular inferior
triu matriz triangular superior
.’ transposta
: converte matriz para coluna simples; A(:)
A.14 Referência 359

Funções lógicas
exist verifica se as funções ou variáveis existem
any verdadeiro se algum elemento do vector verificar
all verdadeiro se todos os elementos do vector verificarem
find encontra indices dos elementos não nulos
isnan verdadeiro para NaNs
isinf verdadeiro para elementos infinitos
finite verdadeiro para elementos finitos
isempty verdadeiro para matriz vazia
issparse verdadeiro para matriz esparsa
isstr verdadeiro para variável de texto
strcmp compara variáveis de texto

Controle do fluxo
if comandos de execução de condições
else usado com if
elseif usado com if
end termina if, for, while
for repete comandos um determinado número de vezes
while repete comandos enquanto a condição for verdadeira
break termina a execução de ciclos for ou while
return retorno da função invocada
error mostra mensagem e aborta função

Funções matemáticas elementares


abs valor absoluto
angle ângulo de fase
sqrt raı́z quadrada
real parte real
imag parte imaginária
conj conjugado complexo
gcd maior divisor comum
lcm minimo multiplo comum
round arredondamento ao próximo inteiro
fix arredonadamento para zero
floor arredonadamento para −∞
ceil rarredonadamento para ∞
rem resto
exp base exponencial e
log logaritmo natural
log10 logaritmo de base 10
360 A Conceitos básicos de MATLAB

Funções trigonométricas
sin, asin, sinh, asinh seno, arco de seno, seno hiperbólico, arco de seno hiperbólico
cos, acos, cosh, acosh coseno, arco de coseno, coseno hiperbólico, arco de seno hiperbólico
tan, atan, tanh, atanh tangente, arco de tangente, tangente hiperbólica, arco de tangente hiperbólica
cot, acot, coth, acoth cotangente, arco de cotangente, cotangente hiperbólica, arco de cotangente hiperbólica
sec, asec, sech, asech secante, arco de secante, secante hiperbólica, arco de secante hiperbólica
csc, acsc, csch, acsch cosecante, arco de cosecante, cosecante hiperbólica, arco de cosecaante hiperbólica

Funções especiais
bessel função bessel
beta função beta
gamma função gamma
rat aproximação racional
rats saı́da racional
erf função de erro
erfinv função de erro inversa
ellipke integral eliptico completo
ellipj integral eliptico Jacobiano
expint integral exponencial

Decomposições e factorizações de matrizes


inv inversa
lu factores da eliminação de Gauss
chol factorização de Cholesky
qr decomposição ortogonal-triangular
nnls minimos quadrados não negativos
null espaço nulo
orth ortogonalização
eig valores e vectores próprios
hess forma de Hessenberg
schur decomposição de Schur
qz valores próprios generalizados
svd decomposição ”singular value”
pinv pseudoinversa

Condicionamento de matriz
cond número de condicionamento na 2-norm
norm normas 1-norm,2-norm,F-norm,∞-norm
rank caracteristica
A.14 Referência 361

Funções matriciais elementares


expm matriz exponencial
expm1 implementação por M-file de expm
expm2 matriz exponencial via séries de Taylor
expm3 matriz exponencial via valores e vectores próprios
logm matriz logaritmo
sqrtm matriz de raiz quadrada
funm calcula uma função matricial geral
poly polinómio caracteristico
det determinante
trace traço

Polinómios
poly constrói polinómio com raizes especificas
roots raı́zes polinomiais
roots1 raı́zes polinomiais — método de Laguerre
polyval calcula o polinómio
conv multiplica polinómios
deconv divide polinómios
residue resı́duos
polyfit ajustar polinómios aos dados
polyder derivação de polinómios

Análise de dados por colunas


max maior componente
min menor componente
mean valor médio
median mediana
std desvio padrão
sort ordenação em ordem ascendente
sum soma de elementos
prod produto de elementos
cumsum soma cumulativa de elementos
cumprod produto cumulativo de elementos
hist histograma
Referências

1. Courant, R., Variational methods for the solution of problems of equilibrium


and vibration, Bull. Am. Math. Soc., 49 (1943), 1–23
2. Bathe, K., Finite Element Procedures in Engineering Analysis, Prentice-Hall,
Englewood Cliffs, New Jersey, 1982.
3. J. A. Figueiras, ultimate load analysis of anisotropic and reinforced concrete
plates and shells, Tese de Doutoramento, University of Wales, 1983.
4. Onate, E., Calculo de estruturas por el metodo de elementos finitos, CIMNE,
Barcelona, 1995.
5. Hinton, E., Numerical methods and software for dynamic analysis of plates and
shells, Pineridge Press, Swansea, (1988).
6. Argyris, J. H., Matrix displacement analysis of anisotropic shells by triangular
elements, J. Roy. Aero. Soc., 69 (1965), 801–805.
7. Clough, R. W., The finite element method in plane stress analysis, Proc. 2nd
A.S.C.E. Conf. in Electronic Computation, Pittsburgh, Pa., 1960.
8. Zienkiewicz, O. C., Cheung, Y. K., The finite element method for analysis of
elastic isotropic and anisotropic slabs, Proc.Inst. Civ. Eng., 28, (1964), 471–488.
9. O. C. Zienkiewicz, R. L. Taylor, The finite element method, McGraw-Hill, 4th
edition, 1989
10. Logan, D. L. A First Course in the Finite Element Method, 1986, 1992
11. Mohr, G. A. and Milner H. R. A Microcomputer Introduction to the Finite
Element Method, 1987
12. Cheung, Y. K. and Yeo, M. F. A Practical Introduction to Finite Element
Method, 1979
13. Owen, D. R. J. and Hinton, E. A Simple Guide to Finite Elements, 1980
14. Hinton, E. and Owen, D. R. J. An Introduction to Finite Element Computations,
1979
15. Reddy, J. N. An Introduction to the Finite Element Method, 1984, 1993
16. Brown, D. K. An Introduction to the Finite Element Method Using BASIC
Programs, 1984, 1990
17. White, R. E. An Introduction to the Finite Element Method With Applications
to Nonlinear Problems, 1985
18. Akin, J. E. Application and Implementation of Finite Element Methods, 1982
19. Segerlind, L. J. Applied Finite Element Analysis, 1976, 1984
364 Referências

20. Cooke, J. R. and Davis, D. C. Applied Finite Element Analysis- An Apple II


Implementation, 1986
21. Stasa, F. L. Applied Finite Element Analysis for Engineers, 1985
22. Adam, J. BASIC-Programme zur Methode der Finiten Elemente, 1986
23. Cook, R. D. Concepts and Applications of Finite Element Analysis, 1974, 1981,
1989
24. Britto, A. M. and Gunn, M. J. Critical State Soil Mechanics via Finite Elements,
1987
25. Breitschuh, U. and Jurisch, R. Die Finite-Element-Methode, 1993
26. Zimmer, A. and Groth, P. Elementmethode der Elastostatik- Programmierung
und Anwendung, 1970
27. Beltzer, A. I. Engineering Analysis With Maple, 1995
28. Fenner, D. N. Engineering Stress Analysis- A Finite Element Approach With
FORTRAN 77 Software, 1987
29. Marsal, D. Finite Differenzen und Elemente- Numerische Losung von Variati-
onsproblemen und partiellen Differentialgleichungen, 1989
30. Hsu, T. R. and Sinha, D. K. Finite Element Analysis by Microcomputers, 1988
31. Huang, H. C. and Usmani, A. S. Finite Element Analysis for Heat Transfer,
1994
32. Burnett, D. S. Finite Element Analysis- From Concepts to Applications, 1987
33. Chung, T. J. Finite Element Analysis in Fluid Dynamics, 1978
34. Comini, G. et al. Finite Element Analysis in Heat Transfer: Basic Formulation
and Linear Problems, 1994
35. Champion, E. R. Finite Element Analysis in Manufacturing Engineering: A PC-
Based Approach, 1992
36. Krishnamoorthy, C. S. Finite Element Analysis- Theory and Programming,
1987, 1994
37. Cheung, Y. K. et al. Finite Element Implementation, 1995
38. Zienkiewicz, O. C. and Taylor, R. L. Finite Element Method- Basic Formulation
and Linear Problems, Vol. 1, 1989
39. Hughes, T.J.R. Finite Element Method- Linear Static and Dynamic Finite Ele-
ment Analysis, 1987
40. Pironneau, O. Finite Element Methods for Fluids, 1989
41. Sabonnadiere, J. C. and Coulomb, J. L. Finite Element Methods in CAD, 1987
42. Cheung, Y. K. and Leung, A. Y. T. Finite Element Methods in Dynamics, 1991
43. Ross, C. T. F. Finite Element Methods in Engineering Science, 1990
44. Gruber, R. and Rappaz, J. Finite Element Methods in Linear Ideal Magnetohy-
drodynamics, 1985
45. Kikuchi, N. Finite Element Methods in Mechanics, 1986
46. Ross, C. T. F. Finite Element Methods in Structural Mechanics, 1985
47. Cook, R. D. Finite Element Modeling for Stress Analysis, 1995
48. Rowe, G. W. et al. Finite Element Plasticity and Metalforming Analysis, 1991
49. Hinton, E. and Owen, D. R. J. Finite Element Programming, 1977
50. Taylor, C. and Hughes, T. G. Finite Element Programming of the Navier-Stokes
Equations, 1981
51. Miller, J. J. H., ed. Finite Element Programming With Special Emphasis on
Semiconductor Device and Processing Modelling, 1983
52. Ross, C. T. F. Finite Element Programs for Axisymmetric Problems in Engine-
ering, 1984
Referências 365

53. Ross, C. T. F. Finite Element Programs in Structural Engineering and Conti-


nuum Mechanics, 1996
54. Hinton, E. and Owen, D. R. J. Finite Element Software for Plates and Shells,
1984
55. Yang, T. Y. Finite Element Structural Analysis, 1986
56. Kazda, I. Finite Element Techniques in Groundwater Flow Studies, 1990
57. Hinton, E. et al. Finite Elemente Programme fur Platten und Schalen, 1990
58. Von Fischer, U. et al. Finite Elemente Programme in der Festkorpermechanik-
Temperaturfeld-, Verschiebungs- und Spannungsberechnungen, 1986
59. Livesley, R. K. Finite Elements- An Introduction for Engineers, 1983
60. Akin, J. E. Finite Elements for Analysis and Design, 1994
61. Silvester, P. P. and Ferrari, R. L. Finite Elements for Electrical Engineers, 1983
62. Weaver, W. and Johnston, P. R. Finite Elements for Structural Analysis, 1984
63. Owen, D.R.J. and Hinton, E. Finite Elements in Plasticity- Theory and Practice,
1980
64. Kleiber, M. et al. Finite Elements in Structural Mechanics: An Introduction
With Turbo Pascal Programs for Micro Computers, 1993
65. Portela, A. and Charafi, A. Finite Elements Using Maple, 2002
66. Schwarz, H. R. FORTRAN-Programme zur Methode der finiten Elemente, 1981,
1988
67. Gawehn, W. FORTRAN IV/77 Programm zur Finite-Elemente-Methode, 1985
68. Bhatti, M. A. Fundamental Finite Element Analysis and Applications: With
Mathematica and Matlab Computations, 2005
69. Grandin, H. Fundamentals of the Finite Element Method, 1986
70. Heinrich, J. C. and Pepper, D. W. Intermediate Finite Element Method: Fluid
Flow and Heat Transfer Applications, 1999
71. Pozrikidis, C. Introduction to Finite and Spectral Element Methods Using MA-
TLAB, 2005
72. Thompson, E. G. Introduction to the Finite Element Method: Theory, Program-
ming and Applications, 2004
73. Kattan, P. MATLAB Guide to Finite Elements: An Interactive Approach, 2003
74. Mukhopadhyay, M. Matrix, Finite Element, Computer and Structural Analysis,
1984, 1987
75. Batoz, J. L. and Dhatt, G. Modelisation des Structures par Elements Finis, 1990
76. Villa, A. et al. Nonlinear Finite Element Techniques Using an Object-Oriented
Code, 1995
77. Mackie, R. I. Object Oriented Methods and Finite Element Analysis, 2000
78. Topping, B. H. V. and Khan, A. I. Parallel Finite Element Computations, 1995
79. Smith, I. M. and Griffith, D. V. Programming the Finite Element Method, 1982,
1988, 1998
80. Beauquet, G. and Pogu, M. Programming the Finite Elements, 1987
81. Brebbia, C. A., ed. Software for Engineering Workstations- Finite Element Co-
des, 1987
82. Waszczyszyn, Z. et al. Stability of Structures by Finite Element Methods, 1994
83. Weaver, W. and Johnston, P. R. Structural Dynamics by Finite Elements, 1987
84. Irons, B. and Ahmad, S. Techniques of Finite Elements, 1980
85. Heinrich, J. C. and Pepper, D. W. The Finite Element Method: Advanced Con-
cepts, 1996
86. Pepper, D. and Heinrich, J. The Finite Element Method: Basic Concepts and
Applications, 1992
366 Referências

87. Dhatt, G. and Touzot, G. The Finite Element Method Displayed, 1984
88. Rao, S. S. The Finite Element Method in Engineering, 1982, 1989
89. Lewis, R. W. and Schrefler, B. A. The Finite Element Method in the Deforma-
tion and Consolidation of Porous Media, 1987
90. Hsu, T. R. The Finite Element Method in Thermodynamics, 1986
91. Kwon, Y. W. and Bang, H. The Finite Element Method Using MATLAB, 1996,
2000
92. Kleiber, M. and Hien, T. D. The Stochastic Finite Element Method, Basic Per-
turbation Technique and Computer Implementation, 1992
93. Beltzer, A. I. Variational and Finite Element Methods, A Symbolic Computation
Approach, 1990
94. P. A. A. Laura and R. H. Gutierrez, Analysis of vibrating Timoshenko beams
using the method of differential quadrature, Shock and Vibration, 1 (1) (1993),
89–93.
95. C. W. Bert and M. Malik, Differential quadrature method in computational
mechanics: a review, Applied Mechanics Review, 49 (1) (1996), 1–28.
96. K. M. Liew, J. B. Han and Z. M. Xiao, Vibration analysis of circular Mindlin
plates using differential quadrature method, Journal of Sound and Vibration,
205 (5) (1997), 617–630.
97. K. M. Liew, K. C. Hung and M. K. Lim, Vibration of Mindlin plates using
boundary characteristic orthogonal polynomials, Journal of Sound and Vibra-
tion, 182 (1) (1995), 77–90.
98. K. Bathe, Finite Element Procedures in Engineering Analysis, Prentice-Hall,
Englewood Cliffs, New Jersey, 1982.
99. W. Weaver and P. Johnson, Structural Dynamics by Finite Elements, Englewood
Cliffs, New Jersey, 1987.
100. J. N. Reddy, Introduction to the Finite Element Method, McGraw-Hill, New
York, 1993.
101. A. J. M. Ferreira, Free vibration analysis of Timoshenko beams and Min-
dlin plates by radial basis functions, International Journal of Computational
Methods, Vol. 2 (1), 2005, 15-31.
102. A. J. M. Ferreira, C. M. C. Roque and P. A. L. S. Martins, Radial basis
functions and higher-order theories in the analysis of laminated composite beams
and plates, Composite Structures, 66 (2004), 287–293.
103. A. J. M. Ferreira, A formulation of the multiquadric radial basis function
method for the analysis of laminated composite plates, Composite Structures,
59 (2003), 385–392.
104. A. J. M. Ferreira, C. M. C. Roque and P. A. L. S. Martins, Analysis of com-
posite plates using higher-order shear deformation theory and a finite point for-
mulation based on the multiquadric radial basis function method, Composites:
Part B, 34 (2003), 627–636.
105. A. J. M. Ferreira, Thick composite beam analysis using a global meshless ap-
proximation based on radial basis functions, Mechanics of Advanced Materials
and Structures, 10 (2003), 271–284.
106. L.N. Trefethen, Spectral Methods in Matlab, SIAM, Philadelphia, PA, (2000).
107. D. J. Dawe and O. L. Roufaeil, Rayleigh-Ritz vibration analysis of Mindlin
plates, Journal of Sound and Vibration, 69 (3) (1980), 345–359.
108. K. M. Liew, J. Wang, T. Y. Ng and M. J. Tan, Free vibration and buckling
analyses of shear-deformable plates based on FSDT meshfree method, Journal
of Sound and Vibration, 276 (2004), 997–1017.
Referências 367

109. E. Hinton, Numerical methods and software for dynamic analysis of plates and
shells, Pineridge Press, Swansea, (1988).
110. R. J. Melosh, A stiffness matriz for the analysis of thin plates in bending, J.
of Aerospace Science, 28 (1) (1961), 34-42
111. O. C. Zienkiewicz, Y. K. Cheung, The finite element method for analysis of
elastic isotropic and anisotropic slabs, Proc. Inst. Civ. Eng., 28 (1964), 471-488
112. F. K. Bogner, R. L. Fox, L. A. Schmidt, The generation of interelement com-
patible stiffness and mass matrices by the use of interpolation formulae, Proc.
Conf. Matrix Methos in Struct. Mech., Air Force Inst. of Tech., Wright Patterson
A. F. Base, Ohio, 1965
113. G. P. Bazeley, Y. K. Cheung, B. M. Irons, O. C. Zienkiewicz, triangular ele-
ments bending-conforming and non conforming solution, Proc. Conf. Matrix
Methos in Struct. Mech., Air Force Inst. of Tech., Wright Patterson A. F. Base,
Ohio, 1965
114. T. J. R. Hughes, M. Cohen, The Heterosis finite element for plate bending,
Computers and structures, 9 (1978), 445-450
115. K. J. Bathe, E. N. Dvorkin, A four-node plate bending element based on
Mindlin-Reissner plate theory and a mixed interpolation, International Jour-
nal of Numerical Methods in Engineering, 21 (1985), 367-383
116. K. J. Bathe, E. N. Dvorkin, A formulation of general shell elements - the use of
mixed interpolation of tensorial components, International Journal of Numerical
Methods in Engineering, 22 (1986), 697-722
117. J. L. Batoz, G. Dhatt, Modelisation des Structures par Elements Finis, Hermés,
1990
118. G. Prathap, B. R. Somashekar, Field- and edge-consistency synthesis of a 4-
noded quadrilateral plate bending element, International Journal of Numerical
Methods in Engineering, 26 (1988), 1693-1708
119. T. J. R. Hughes, T. E. Tezduyar, Finite elements based upon Mindlin plate
theory with particular reference to the four-node bilinear isoparametric element,
Journal of applied mechanics, 48 (1986), 587-596
120. J. L. Batoz, K. J. Bathe, L. W. Ho, A study of three-node triangular plate
bending elements, International Journal of Numerical Methods in Engineering,
15 (1980), 1771-1812
121. B. Irons, S. Ahmad, Techniques of Finite Elements, Ellis Horwood, 1980
122. Finite Element Method- Linear Static and Dynamic Finite Element Analysis,
Prentice Hall, 1987
123. D. L. Logan, A First Course in the Finite Element Method, Brooks/Cole, 2002
124. A. J. M. Ferreira, Analysis of composite plates using a layerwise deforma-
tion theory and multiquadrics discretization, Mech. Adv. Mater. Struct., 12 (2),
(2005), 99-112.
125. A. J. M. Ferreira, R. C. Batra, C. M. C. Roque, L. F. Qian and P. A. L. S. Mar-
tins, Static analysis of functionally graded plates using third-order shear defor-
mation theory and a meshless method, Composite Structures, 69 (2005), 449–
457.
126. A. J. M. Ferreira, Tese de doutoramento, FEUP, 1997
127. A. J. M. Ferreira, C. M. C. Roque and P. A. L. S. Martins, Analysis of com-
posite plates using higher-order shear deformation theory and a finite point for-
mulation based on the multiquadric radial basis function method, Composites:
Part B, 34 (2003), 627–636.
368 Referências

128. A. J. M. Ferreira, C. M. C. Roque and P. A. L. S. Martins, Radial basis


functions and higher-order theories in the analysis of laminated composite beams
and plates, Composite Structures, 66 (2004), 287–293.
129. B. N. Pandya, T. Kant, Higher-order shear deformable theories for flexure
of sandwich plates-finite element evaluations, Int. J. Solids and Structures, 24
(1988), 419–451.
130. J. N. Reddy, A simple higher-order theory for laminated composite plates, J.
Appl. Mech., 51 (1984), 745–752.
131. S. Srinivas, A refined analysis of composite laminates, J. Sound and Vibration,
30 (1973), 495–507.
132. T. Kant, D. R. L. Owen, O. C. Zienkiewicz, A refined higher-order C 0 plate
bending element, Computers and Structures, 30 (1982), 177–183.

2[
Índice

]
barra inclinada, 73
barras, 73

campo de deslocamentos, 135


colapso de elementos, 152
condições de fronteira essenciais, 133
condições de fronteira naturais, 134
condições fronteira, 29, 31
condições fronteira essenciais, 29, 30
condições fronteira naturais, 29
coordenadas de área, 154
coordenadas locais, 94
coordenadas naturais, 143, 159
cossenos directores, 74

deformações de corte transverso, 186, 190


degeneração de elementos quadriláteros em elementos triangulares, 152
determinante do jacobiano, 146
domı́nio, 131

elemento de 9 nós de Lagrange, 138


elemento de barra, 53, 159
elemento de placa fina, 188
elemento hexaédrico, 212
elemento isoparamétrico, 161
elemento quadrilátero, 137
elemento quadrilátero de 4 nós, 137
elemento tetraédrico de 4 nós, 208
elemento triangular com 3 nós, 154
elemento triangular de 6 nós, 156
elemento triangular de deformação constante, 154
elementos de linha de 2 nós, 137
elementos finitos isoparamétricos, 53
370 Índice

elementos quadriláteros, 161


elementos triangulares, 152, 154, 156
elementos triangulares baseados em coordenadas de área, 154
energia de deformação, 75, 191
energia de deformação de elemento de Bernoulli, 92
energia potencial, 134
equações de equilibrio, 187
equações de equilibrio , 133
esforços de corte, 187
esforços resultantes, 186
estado plano de tensão, 131, 147

factor de correcção de corte transverso, 190


forças nodais equivalentes, 150
fronteira, 131
funções de forma, 53–58, 136, 142, 156
funções de forma de Lagrange, 137
funcional, 29

Galerkin, 89
galerkin, 36
grelhas, 115

Hermite, 90

integração numérica, 143


integração por partes, 31, 33, 41
interpolação dos deslocamentos, 145

jacobiano, 54, 141, 161

Kirchhoff, 185

método de colocação, 37
método dos deslocamentos, 40
métodos variacionais, 29
módulo de corte, 191
matriz constitutiva, 186
matriz de deformação-deslocamento, 141
matriz de deformações, 207, 211
matriz de elasticidade de sólidos 3D, 208
matriz de massa, 48, 148
matriz de rigidez, 142, 158
matriz de rigidez de barra inclinada, 75
matriz de rigidez do elemento bidimensional, 145
matriz de rigidez do elemento de pórtico plano, 94
matriz jacobiana, 210
Mindlin-Reissner, 185, 190
minimos quadrados, 37
momentos flectores, 186
Índice 371

pórticos planos, 89
pesos de integração, 142
placa de Mindlin, 190, 191, 193
plano médio, 131
pontos de integração, 142
potencial, 29
princı́pio dos trabalhos virtuais, 40, 41, 43, 44, 47
problemas tridimensionais, 207

quadratura de Gauss, 143

regra da cadeia, 140


relações constitutivas, 191
representação isoparamétrica, 137
resı́duos pesados, 36
rigidez à flexão, 187
Ritz, 40

sistema de coordenadas locais, 94

teorema da divergência, 45
tracções de superficie, 134
treliças, 73

vector de carga equivalente, 93


vector de cargas nodais equivalentes, 148
vector de forças nodais equivalentes, 193
viga de Bernoulli, 89, 90, 93
viga fina, 89, 90

Você também pode gostar