Вы находитесь на странице: 1из 371

Antonio Joaquim Mendes Ferreira

ELEMENTOS FINITOS em
MATLAB
5 de Novembro de 2007
Prefacio
Este texto tem por objectivo fornecer os conhecimentos basicos sobre a teoria
de elementos nitos e a sua implementacao em programas MATLAB. Este
texto compreende as seguintes materias:
sistemas discretos
formulacao variacional e metodo dos resduos pesados
formulacao basica pelo metodo dos elementos nitos
formulacao de varios elementos (barras, vigas, placas, etc)
programacao MATLAB
ilustracao de alguns temas atraves de programas MATLAB
Este texto segue uma visao de engenharia, ou seja, apresenta apenas os con-
ceitos matematicos mnimos para poder estabelecer os programas de calculo
e poder estudar alguns exemplos praticos.
Os codigos MATLAB que aqui se incluem podem ser obtidos gratuitamente
do autor, bastando para isso um pedido por email para: ferreira@fe.up.pt
Estes codigos foram elaborados pelo autor, `a excepcao de algumas rotinas
de geracao de malha e visualizacao de resultados que podem ser encontradas
na internet gratuitamente.
Dedicatoria
`
A minha esposa e `a minha lha.
Conte udo
1 Sistemas discretos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2 Alguns conceitos basicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3 Elementos de mola e barra. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4 Equilibrio nos nos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.5 Etapas basicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.6 Problema de molas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.7 Codigo MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.7.1 Passos de programacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 Condicoes fronteira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.8.1 Metodo da penalidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.9 Programacao alternativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2 Introducao ao metodo dos elementos nitos. . . . . . . . . . . . . . . . 31
2.1 Sistema contnuos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.2 Formulacao diferencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3 Formulacao variacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.4 Obtencao de equacoes diferenciais a partir de funcionais . . . . . . 34
2.5 Metodos de resduos pesados e metodo de Ritz . . . . . . . . . . . . . . 40
2.5.1 Metodo de Galerkin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.2 Metodo de mnimos quadrados . . . . . . . . . . . . . . . . . . . . . . 42
2.5.3 Metodo de colocacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.5.4 Metodo de sub-domnios . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.5.5 Metodo de Ritz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.6 Formulacao pelo metodo dos deslocamentos . . . . . . . . . . . . . . . . . 47
2.7 Formulacao geral das equacoes de equilbrio . . . . . . . . . . . . . . . . . 48
2.8 Princpio dos trabalhos virtuais . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.9 Equacoes de elementos nitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8 Conte udo
3 Elementos nitos isoparametricos e elementos de barra . . . . 59
3.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.2 Elemento de barra de 2 nos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
3.3 PTV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.4 Funcoes de forma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.5 Integracao numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.6 Codigo para problema de barra. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
4 Analise de barras inclinadas (trelicas) . . . . . . . . . . . . . . . . . . . . . 71
4.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.2 Trelicas no plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.3 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4.4 Calculo de tensoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.5 Problema de trelica plana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.6 Outro problema de trelica bidimensional . . . . . . . . . . . . . . . . . . . . 77
4.7 Exemplo de trelica com mola . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.8 Trelicas tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.8.1 Exemplo de tipo trelica 3D . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.9 Resultados do exemplo de trelica 3D . . . . . . . . . . . . . . . . . . . . . . . 90
5 Vigas de Bernoulli e porticos planos . . . . . . . . . . . . . . . . . . . . . . . 91
5.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.2 Formulacao de viga de Bernoulli . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.3 Formulacao de elementos nitos . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.4 Vector de carga equivalente a carga distribuida . . . . . . . . . . . . . . 95
5.5 Exemplo de viga em exao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.6 Portico plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
5.7 Exemplo de portico plano . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.8 Programa para exemplo de portico plano . . . . . . . . . . . . . . . . . . . 102
5.9 Portico plano inclinado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
6 Analise de porticos tridimensionais . . . . . . . . . . . . . . . . . . . . . . . . 107
6.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.2 Matriz de rigidez e vector de forcas . . . . . . . . . . . . . . . . . . . . . . . . 108
6.3 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.4 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7 Analise de grelhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.2 Exemplo 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3 Exemplo 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Conte udo 9
8 Formulacao de elementos de viga Timoshenko . . . . . . . . . . . . . 131
8.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.2 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.3 Campo de deformacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.4 Campo de tensoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
8.5 Equacoes de equilbrio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.6 Elementos isoparametricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.7 Programa MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
9 Estado plano de tensao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.2 Variaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
9.3 Condicoes fronteira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.4 Energia potencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
9.5 Equacoes de elementos nitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.6 Interpolacao de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
9.7 Energia no elemento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.8 Equacoes para rigidez e forca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
9.9 Elementos quadril ateros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
9.10 Integracao numerica em duas dimensoes . . . . . . . . . . . . . . . . . . . . 148
9.10.1 Elementos triangulares (formados por colapso de
elementos quadrilateros . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
9.10.2 Elementos triangulares baseados em coordenadas de
area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
9.11 Problema: placa em traccao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
10 Placas de Kirchho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.2 Teoria de placas de Kirchho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
10.2.1 Campo de deslocamentos, deformacoes e tensoes. . . . . . . 159
10.2.2 Principio dos trabalhos virtuais . . . . . . . . . . . . . . . . . . . . . 161
10.3 Elementos nitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
10.3.1 Elemento rectangular nao conforme MCZ. . . . . . . . . . . . . 161
10.3.2 Elemento rectangular conforme BFS . . . . . . . . . . . . . . . . . 167
10.3.3 Elemento triangular BCIZ . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.4 Constricoes de Kirchho. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
11 Elementos nitos de placa de Mindlin . . . . . . . . . . . . . . . . . . . . . 183
11.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
11.2 Teoria de placa de Mindlin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
11.2.1 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
11.2.2 Campo de deformacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
11.2.3 Campo de tensoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
11.3 Elementos nitos de placa espessa . . . . . . . . . . . . . . . . . . . . . . . . . 186
11.4 Exemplo de placa quadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10 Conte udo
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 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
12.1.1 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
12.1.2 Campo de deformacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
12.2 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
12.3 Matrizes de deformacao-deslocamento B. . . . . . . . . . . . . . . . . . . . 215
12.4 Exemplo de placa quadrada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
13 Uma teoria layerwise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
13.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
13.2 Laminado sandwich com 3 camadas . . . . . . . . . . . . . . . . . . . . . . . . 227
14 Teoria de placa de primeira ordem para laminados . . . . . . . . . 239
14.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
14.1.1 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
14.1.2 Campo de deformacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239
14.2 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
14.3 Matrizes de deformacao-deslocamento B. . . . . . . . . . . . . . . . . . . . 243
14.4 Laminado sandwich com 3 camadas . . . . . . . . . . . . . . . . . . . . . . . . 244
15 Analise de solidos tridimensionais. . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.2 Campo de deslocamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.3 Campo de deformacoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
15.4 Campo de tensoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
15.5 Elemento tetraedrico de 4 nos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
15.5.1 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.5.2 Vector de forca equivalente . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.5.3 Calculo de tensoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
15.6 Elemento hexaedrico lagrangiano recto de 8 nos . . . . . . . . . . . . . 262
15.6.1 Matriz de rigidez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
15.7 Exemplo: Barra em traccao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
15.8 Programa para analisar barra 3D em traccao . . . . . . . . . . . . . . . . 264
16 Analise de cascas com elementos planos. . . . . . . . . . . . . . . . . . . . 269
16.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
16.2 Graus de liberdade locais e globais . . . . . . . . . . . . . . . . . . . . . . . . . 270
16.3 Codigo para solucao de problema de casca plana. . . . . . . . . . . . . 271
Conte udo 11
17 Analise de vibracoes livres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
17.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
17.2 Equacoes 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 Codigo MATLAB para vibracoes livres de vigas nas . . . . . . . . 292
17.7 Vibracoes livres de vigas Timoshenko . . . . . . . . . . . . . . . . . . . . . . 293
17.8 Codigo MATLAB para vibracoes de vigas Timoshenko . . . . . . . 295
17.9 Exemplo de Lee e Schultz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
17.10Vibracoes livres de placas Mindlin . . . . . . . . . . . . . . . . . . . . . . . . . 304
17.11Exemplo de vibracoes livres de placa . . . . . . . . . . . . . . . . . . . . . . . 307
17.12Codigo MATLAB para exemplo de placa . . . . . . . . . . . . . . . . . . . 311
17.13Elemento Q4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
17.14Elemento DKT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
17.15Listagem do gerador de malhas rectangulares . . . . . . . . . . . . . . . 328
A Conceitos basicos de MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
A.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
A.2 Matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
A.3 Operacoes com matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
A.4 Expressoes e variaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334
A.5 Funcoes de construcao de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . 335
A.5.1 For/End . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
A.6 Funcoes escalares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
A.7 Funcoes vectoriais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
A.8 Funcoes de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
A.9 Submatrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
A.10 M-les . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
A.11 Formato de sada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
A.12 Gracos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
A.13 Matrizes esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
A.14 Referencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
Referencias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

Indice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
1
Sistemas discretos
1.1 Introducao
Hoje em dia, o metodo dos elementos nitos e uma realidade cada vez mais
presente em aplicacoes industriais e na analise de engenharia em geral. O
metodo dos elementos nitos e utilizado na analise de solidos e estruturas,
bem como na mecanica de uidos e transferencia de calor.
O metodo dos elementos nitos teve um grande impacto apos o apare-
cimento dos computadores que permitiram a solucao rapida e eciente de
sistemas de equacoes algebricas resultantes da aplicacao do metodo a um de-
terminado problema de engenharia.
A origem do metodo dos elementos nitos remonta aos anos 50 e 60, com
os trabalhos de Courant [1], Argyris [6] e Clough [7]. Aparentemente, o termo
elemento nito foi introduzido por Clough [7]. As contribuicoes iniciais de
Zienkiewicz e Cheung [8] e Argyris [6] sao consideradas muito signicativas
para o desenvolvimento do metodo. Apos os anos 60, tem-se vericado uma
crescente atencao para este metodo, resultando num n umero muito elevado
de publicacoes. Registe-se alguns livros de referencia obrigatoria: Reddy [100],
Onate [4], Zienkiewicz e Taylor [9], Hughes [122], Hinton [5], entre outros. No
captulo nal, apresenta-se uma lista de livros que os leitores devem consultar
sobre o metodo dos elementos nitos, em particular aqueles que possuem
alguma programacao.
O metodo dos elementos nitos representa uma aproximacao dum mo-
delo matematico que representa o mais elmente possvel o problema fsico.
Registe-se que o metodo nao pode fornecer mais informacao que aquela que e
fornecida pelo modelo matematico.
Neste captulo pretende-se ilustrar alguns conceitos basicos, atraves da
solucao de elementos discretos, com molas, tipicamente.
14 1 Sistemas discretos
1.2 Alguns conceitos basicos
Para analisar um determinado problema fsico ou de engenharia, ha que ide-
alizar um sistema eventualmente com solucao, a formulacao do modelo ma-
tematico e a sua solucao, bem como a interpretacao dos resultados obtidos.
Alguns metodos classicos para modelos matematicos sao baseados em sis-
temas discretos e sistemas contnuos. Num modelo contnuo a resposta e ba-
seada em equacoes diferenciais. Num modelo discreto, a resposta do sistema
baseia-se numa solucao com um n umero nito de variaveis.
A solucao exacta das equacoes diferenciais satisfazendo todas as condicoes
fronteira e possvel apenas para um n umero muito limitado de modelos ma-
tematicos, sendo habitualmente necessario o recurso a metodos numericos para
a solucao destas equacoes. Em geral, os metodos numericos reduzem o pro-
blema contnuo num problema discreto que pode entao resolver-se na forma
dum sistema de equacoes algebricas.
Pretende-se resolver matematicamente um sistema, pressupondo que este
pode ser descrito por um n umero nito de variaveis, tendo em conta as se-
guintes etapas:
1. idealizacao do sistema enquanto contribuicao de varios elementos
2. estabelecimento de equilbrio em cada elemento em termos das variaveis
de interesse
3. contabilizacao da contribuicao de todos os elementos, tendo em conta as
ligacoes entre elementos para as variaveis do problema
4. calculo da resposta, tendo em conta a solucao do sistema de equacoes
obtendo-se as variaveis do problema. Podem obter-se outras informacoes,
para alem destas variaveis, para cada elemento.
1.3 Elementos de mola e barra
Considere-se para cada elemento de mola de 2 nos, dois graus de liberdade,
correspondentes a 2 deslocamentos u
(e)
1
, u
(e)
2
e duas forcas nodais R
(e)
1
, R
(e)
2
(ver gura 1.1). Para se calcular as relacoes forca-deslocamento, faz-se uso
dum elemento de barra de comprimento L, sujeito unicamente a forcas axiais,
com seccao constante A e modulo de elasticidade E.
2
(e)
L
(e)
u
(e)
2
R
(e)
2
u
(e)
1
R
(e)
1
1
Figura 1.1. Elemento nito de 2 nos (barra ou mola)
1.4 Equilibrio nos nos 15
A deformacao da barra e dada por
=
u
2
u
1
L
(e)
(1.1)
enquanto que a tensao (obtida pela lei de Hooke) e denida por
= E
(e)
= E
(e)
u
2
u
1
L
(e)
(1.2)
O esforco axial e entao calculado por integracao atraves da espessura das
tensoes, sendo igual a
N = A
(e)
= (EA)
(e)
u
2
u
1
L
(e)
(1.3)
Tendo em conta o equilibrio de forcas axiais R
(e)
1
e R
(e)
2
, na forma
R
(e)
2
= R
(e)
1
= N = (EA)
(e)
u
2
u
1
L
(e)
(1.4)
ou
R
(e)
2
= R
(e)
1
= N = k
(e)
(u
(e)
2
u
(e)
1
) (1.5)
(onde k
(e)
=
EA
L
), podemos entao rearranjar as relacoes na forma
q
(e)
=
_
R
(e)
1
R
(e)
2
_
= k
(e)
_
1 1
1 1
_
_
u
(e)
1
u
(e)
2
_
= K
(e)
a
(e)
(1.6)
onde K
(e)
representa a matriz de rigidez do elemento de barra (ou mola),
a
(e)
o vector de deslocamentos e q
(e)
o vector de forcas nodais.
Caso existam forcas distribuidas aplicada sobre a barra, torna-se necessario
transformar essas forcas em forcas equivalentes nos nos, obtendo-se entao
q
(e)
= k
(e)
_
1 1
1 1
_
_
u
(e)
1
u
(e)
2
_

(bl)
(e)
2
_
1
1
_
= K
(e)
a
(e)
f
(e)
(1.7)
sendo f
(e)
o vector de forcas nodais equivalentes `as forcas distribuidas b.
1.4 Equilibrio nos nos
A relacao forca-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, convem
lembrar a lei de equilibrio em cada no, ou seja a soma das forcas num dado
no, relativas `as diferentes barras, e igual `a forca exterior aplicada nesse no,
ou
16 1 Sistemas discretos
ne

e=1
R
(e)
= R
(e)
j
(1.8)
(onde n
e
representa o n umero de elementos da estrutura), obtendo-se entao
uma equacao matricial de equilibrio global, contando com todas as contri-
buicoes dos elementos (espalhada de forma consistente com a numeracao dos
graus de liberdade)
_

_
K
11
K
12
. . . K
1n
K
21
K
22
. . . K
2n
.
.
.
.
.
.
.
.
.
K
n1
K
n2
. . . K
nn
_

_
_

_
u
1
u
2
.
.
.
u
n
_

_
=
_

_
f
1
f
2
.
.
.
f
n
_

_
ou ainda, de forma mais compacta
Ka = f (1.9)
1.5 Etapas basicas
Em qualquer problema de elementos nitos, as seguintes etapas devem ser
tidas em conta:
denicao duma malha de elementos discretos (barras) ligadas entre si nos
nos
denicao das matrizes de rigidez K
(e)
e de forcas nodais equivalentes
f
(e)
de cada elemento do sistema
assemblagem das contribuicoes de cada elemento no sistema global Ka =
f
impor condicoes fronteira em termos de deslocamentos (condicoes
fronteira essenciais)
calcular os deslocamentos nodais a
a partir dos valores das incognitas nos nos, calcular deformacoes e
tensoes
1.6 Problema de molas
Considere-se agora um problema de barras, para o qual se pretende estabelecer
uma solucao por elementos nitos e o respectivo primeiro codigo MATLAB.
Condidere-se a gura 1.2 onde se estabelece que o movimento do no 2 e o
mesmo, qualquer que seja o elemento de mola considerado, dado que a barra
que liga as tres molas e suposta ser uma barra rigida. Assim, o nosso primeiro
problema considera 3 elementos nitos e 4 nos, sendo que tres destes estao
encastrados, logo os seus deslocamentos (globais) sao u
1
= u
3
= u
4
= 0.
1.6 Problema de molas 17
2
k
1
k
2
k
3
P
x
1
3
2
2
2
3
4
1
Barra rigida
Figura 1.2. Problema de molas
Para cada uma das molas, pode escrever-se o equilibrio (local), na forma
Mola 1:
_
R
(1)
1
R
(1)
2
_
= k
(1)
_
1 1
1 1
_
_
u
(1)
1
u
(1)
2
_
Mola 2:
_
R
(2)
1
R
(2)
2
_
= k
(2)
_
1 1
1 1
_
_
u
(2)
1
u
(2)
2
_
Mola 3:
_
R
(3)
1
R
(3)
2
_
= k
(3)
_
1 1
1 1
_
_
u
(3)
1
u
(3)
2
_
Pode ainda impor-se a relacao entre os deslocamentos no sistema local
ou do elemento e no sistema global ou da estrutura, na forma (Condicoes de
compatibilidade):
u
(1)
1
= u
1
; u
(1)
2
= u
2
; u
(2)
1
= u
2
; u
(2)
2
= u
3
; u
(3)
1
= u
2
; u
(3)
2
= u
4
(1.10)
Tendo em conta o equilibrio de forcas nos nos 1 a 4, podemos escrever:
No 1:
3

e=1
R
(e)
= F
1
R
(1)
1
= F
1
(1.11)
No 2:
3

e=1
R
(e)
= P R
(1)
2
+R
(2)
1
+R
(3)
1
= P (1.12)
No 3:
3

e=1
R
(e)
= F
3
R
(3)
2
= F
3
(1.13)
18 1 Sistemas discretos
No 4:
3

e=1
R
(e)
= F
4
R
(4)
2
= F
4
(1.14)
Encontrando assim a equacao global de equilibrio estatico na forma
_

_
k
1
k
1
0 0
k
1
k
1
+k
2
+k
3
k
2
k
3
0 k
2
k
2
0
0 k
3
0 k
3
_

_
_

_
u
1
u
2
u
3
u
4
_

_
=
_

_
F
1
P
F
3
F
4
_

_
(1.15)
Note-se que sabendo u
1
= u
3
= u
4
= 0, tambem se poderia ter escrito de
imediato as condicoes fronteira na forma
_

_
k
1
k
1
0 0
k
1
k
1
+k
2
+k
3
k
2
k
3
0 k
2
k
2
0
0 k
3
0 k
3
_

_
_

_
0
u
2
0
0
_

_
=
_

_
F
1
P
F
3
F
4
_

_
(1.16)
Note-se tambem que as forcas F
1
, F
3
, F
4
sao as reaccoes dos apoios sobre
a estrutura, nao sendo possvel calcula-los nesta fase, apenas depois de serem
conhecidos os deslocamentos globais. Tendo em conta o conhecimento de u
1
=
u
3
= u
4
= 0, podemos eliminar as linhas e colunas respectivas e reduzir o
sistema de equacoes global a apenas uma equacao
(k
1
+k
2
+k
3
)u
2
= P
obtendo-se depois as reaccoes na forma
k
1
u
2
= F
1
; k
2
u
2
= F
3
; k
3
u
2
= F
4
Note-se que a matriz de rigidez foi calculada tendo em conta a contribuicao
de cada elemento nas linhas e colunas correspondentes aos graus de liberdade
respectivos. Por exemplo, para o elemento 1, obtem-se
K
(1)
=
_

_
k
1
k
1
0 0
k
1
k
1
0 0
0 0 0 0
0 0 0 0
_

_
(1.17)
associado aos seus graus de liberdade globais (1 e 2), enquanto que para o
elemento tres, com graus de liberdade globais (2 e 4), se obtem como
1
K
(3)
=
_

_
0 0 0 0
0 k
3
0 k
3
0 0 0 0
0 k
3
0 k
3
_

_
(1.18)
1
Note-se o posicionamento da matriz de rigidez (2 2) do elemento, na matriz de
rigidez (44) da estrutura. Por exemplo, K
(3)
e posicionada nas linhas e colunas
2 e 4.
1.7 Codigo MATLAB 19
1.7 Codigo MATLAB
Para resolver o problema ilustrado na gura 1.2, apresenta-se um primeiro
programa MATLAB (LivroMola1.m) e a sua descricao. Muitos dos conceitos
aqui apresentados em termos de programacao sao usados em diferentes pro-
blemas. Para resolver este problema, considera-se que a forca exterior aplicada
e 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 programacao
Comeca-se por apagar toda a memoria, fazendo
clear all
Em seguida denem-se os nos para cada elemento, na matriz element, ou
seja
element=[1 2;2 3;2 4];
Note-se que a primeira linha da matriz element, esta representada por 1 e 2,
ou seja os nos associados ao elemento 1 e assim sucessivamente linha a linha.
20 1 Sistemas discretos
O n umero de linhas desta matriz corresponde ao n umero total de elementos
do sistema, pelo que a instrucao MATLAB seguinte permite determinar o
n umero total de elementos
numelem=size(element,1);
O n umero de nos e aqui xo em 4, na instrucao
numnode=4;
Tendo em conta que o n umero de nos corresponde (apenas aqui
2
) ao
n umero de graus de liberdade, o problema global e denido pelo n umero de
nos. Devemos entao anular as matrizes globais, por forma a resolver o sistema
mais tarde. Note-se que a matriz de rigidez e denida por n n onde n e
o n umero de graus de liberdade. Esta matriz e simetrica 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 dimensao com
os seus elementos todos nulos, o que vai ser particularmente importante para
a matriz de rigidez tendo em conta que ela e formada pela somade contri-
buicoes de varios elementos. A este processo tambem se chama inicializacao
das matrizes.
O vector de forcas nodais esta ja todo formado por zeros, pelo que se pode
agora colocar a forca P = 10 no grau de liberdade 2,
f(2)=10.0;
Executamos agora o calculo 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
identicamos quais os nos que pertencem ao elemento e, na instrucao
index=element(e,:) ;
2
Note-se que cada no tem aqui apenas 1 grau de liberdade, pelo que ha uma
identicacao do n umero de nos com o n umero de graus de liberdade, o que nao
acontecera com outros problemas mais adiante
1.7 Codigo 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 e cons-
tante
k
(e)
=
_
1 1
1 1
_
(1.19)
Colocamos entao esta matriz 2 2, nas linhas e colunas respeitantes aos
graus de liberdade associados ao elemento e , ou seja, nas linhas e colunas
identicadas por index .
Isso consegue-se nas duas linhas de codigo seguintes
k=[1 -1;-1 1];
K(index,index)=K(index,index)+k;
Note-se que esta codicacao permite fazer, de forma bastante compacta,
a assemblagemou espalhamentoda matriz de rigidez. Claro que seria
possvel 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 ja denida a matriz de rigidez do sistema e o seu vector de forcas
(segundo membro), estamos em condicoes de alterar o sistema de equacoes
(ainda impossivel de calcular, porque a matriz de rigidez e ainda singular)
por introducao das condic oes fronteira. Tendo em conta que as condicoes
fronteira sao homogeneas (do tipo u
3
= 0), podemos anular as linhas e as
colunas correspondentes aos graus de liberdade que estao prescritos como nu-
los (apoios). Note-se que esta tecnica de imposicao de condicoes fronteira nao
e universal, estando limitada a condicoes fronteira homogeneas. Iremos falar
mais adiante doutras tecnicas mais gerais para imposicao geral de condicoes
fronteira. Lista-se entao a parte do codigo correspondente `a aplicacao de
condicoes fronteira e solucao do sistema de equacoes.
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 codigo denem-se os graus de liberdade
a xar como sendo os graus 1, 3 e 4, na matriz dofs .
Em seguida denem-se os graus de liberdade activos (nao prescritos) que
serao denidos pela diferen ca ( 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 e igual a 2, o unico grau de liberdade prescrito. Na
ultima linha calcula-se o sistema de equacoes 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 codigo permite apenas calcular u
2
, pelo que deveremos apre-
sentar os resultados considerando tambem 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 e agora um vector de 4 posicoes com toda a solucao, in-
cluindo os valores prescritos.
Podemos agora calcular novamente todo o vector de segundo membro,
ja que temos o vector solucao, fazendo F=K.U. Como so temos interesse nas
reaccoes nos apoios usamos antes
F=K*U;
reaccoes=F(dofs);
ou seja usamos apenas a parte do vector F que contem as posicoes dos
valores prescritos, porque e nesses nos que se obtem as reaccoes.
As restantes instruccoes do codigo servem apenas para apresentar resul-
tados, como se pode vericar no command window, onde se pediu a in-
formacao sobre a matriz de rigidez, do vector de forcas e se obteve tambem o
vector de deslocamentos e o vector de reaccoes.
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 Condicoes fronteira 23
reaccoes
ans =
1.0000 -3.3333
3.0000 -3.3333
4.0000 -3.3333
1.8 Condicoes fronteira
Nos scripts anteriores, as condicoes fronteira (homogeneas) foram aplicadas
de forma simples, pela eliminacao das linhas e colunas associadas aos graus de
liberdade prescritos (onde o deslocamento prescrito e nulo). No entanto, em
muitos casos, podera haver necessidade de prescrever deslocamentos nao nulos
(condicoes de fronteira nao homogeneas). Nestes casos, teremos de modicar
o sistema de equacoes, conforme o codigo (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 equacoes global, formado por
Ku = f (1.20)
torna-se necessario introduzir as condicoes de fronteira essenciais, dado que
a matriz de coecientes inicial e singular. Basicamente pretende-se introduzir
as condicoes
u
n
= u
n
(1.21)
Uma forma simples de colocar estas condicoes essenciais e o de modicar a
linha da matriz correspondente ao grau de liberdade n, na forma
K
nm
=
nm
(1.22)
para todos os m = 1 : N, sendo N a dimensao da matriz de rigidez e modi-
cando tambem o segundo membro na forma
f
n
= u
n
(1.23)
Infelizmente, esta abordagem destroi a simetria da matriz de rigidez. Uma
forma possvel de obviar este contratempo e o de modicar tambem a coluna
correspondente ao grau de liberdade, fazendo
K
mn
=
nm
(1.24)
para todos os m = 1 : N.

E tambem necessario modicar o segundo membro
na forma
f
m
= K
mn
u
n
(1.25)
Isto equivale a tomar uma nova equacao, na forma
K
k1
u
1
+K
k2
u
2
+... +K
k(n1)
u
n1
+K
k(n+1)
u
n+1
+K
kN
u
N
= f
k
K
kn
u
n
(1.26)
Em MATLAB podemos escrever esta formula 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 Condicoes fronteira 25
sendo dofs um vector com os ndices onde d e restringido, ufixed e um
vector com o valor de restricao e bcwt um factor que pretende melhorar o
condicionamento da matriz de rigidez.
A solucao e agora facilmente obtida atraves do comando U = K\f.
Repare-se na simplicidade (sem menosprezo pela ecacia e pela qualidade da
solucao).
As reaccoes sao agora calculadas, enquanto forcas nos nos associados a nos
onde existam restricoes, 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 e a matriz de rigidez original e nao
aquela que e modicada atendendo `as condicoes fronteira. De qualquer
forma so se calculm as reaccoes nos nos restringidos, usando o comando
reaccoes=F(dofs);.
1.8.1 Metodo da penalidade
O metodo da penalidade e um outro metodo possvel para impor condicoes
fronteira. Consiste basicamente na afectacao de um escalar muito grande na
matriz de coecientes e no segundo membro, para o indice do deslocamento
que queremos impor. Seja por exemplo a imposicao da condicao fronteira,
u
2
= u
2
. O sistema de equacoes original, ainda sem imposicao de condicoes
fronteira e descrito por
K
11
u
1
+K
12
u
2
+K
13
u
3
+. . . +K
1n
u
n
= f
1
K
21
u
1
+K
22
u
2
+K
23
u
3
+. . . +K
2n
u
n
= f
2
K
31
u
1
+K
32
u
2
+K
33
u
3
+. . . +K
3n
u
n
= f
3
.
.
.
K
n1
u
1
+K
n2
u
2
+K
n3
u
3
+. . . +K
nn
u
n
= f
n
(1.27)
No termo 22 da matriz de coecientes e no segundo membro da segunda
linha, vamos introduzir uma modicacao, por forma a que a equacao resultante
seja (aproximadamente) u
2
= u
2
. Assim, obtem-se a equacao
26 1 Sistemas discretos
K
11
u
1
+K
12
u
2
+K
13
u
3
+. . . +K
1n
u
n
= f
1
K
21
u
1
+ (1 +)K
22
u
2
+K
23
u
3
+. . . +K
2n
u
n
= K
22
u
2
K
31
u
1
+K
32
u
2
+K
33
u
3
+. . . +K
3n
u
n
= f
3
.
.
.
K
n1
u
1
+K
n2
u
2
+K
n3
u
3
+. . . +K
nn
u
n
= f
n
(1.28)
Na segunda equacao, dado o elevado valor de , na pratica obtemos
K
22
u
2
= K
22
u
2
(1.29)
ou seja, obtemos u
2
= u
2
. O codigo seguinte resolve o problema da gura
1.2, pelo metodo 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 Programacao alternativa
Uma forma alternativa e mais conveniente de programar consiste em usar
funcoes e chamar essas funcoes (ou rotinas), sempre que forem necessarias.
o codigo torna-se mais legvel e mais modular, sendo ainda mais facilmente
1.9 Programacao alternativa 27
expandido. O programa e agora modicado, conforme se indica a seguir ( Li-
vroMola1Alternativo.m). Basta chamar o programa como mola1(penalidade),
para correr este problema com o metodo 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 Programacao 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
Introducao ao metodo dos elementos nitos
2.1 Sistema contnuos
Embora a solucao de problemas contnuos tenha muitas semelhancas com
a dos problemas discretos, aqueles baseiam-se em equacoes diferenciais que
incorporam requisitos de continuidade dos elementos, relacoes constitutivas e
equilbrio de elementos.
As equacoes diferenciais obtidas desta forma tem de ser denidas em todo
o domnio do corpo (sistema), complementadas por condicoes fronteira e por
condicoes iniciais, em problemas dinamicos.
Basicamente, podemos gerar as equacoes diferenciais por duas abordagens:
um metodo directo e um metodo variacional. Note-se que o metodo va-
riacional apresentado pode ser considerado como precursor do metodo dos
elementos nitos.
2.2 Formulacao diferencial
Nas equacoes diferenciais estabelecem-se requisitos de equilbrio e de con-
tinuidade interelementar. No entanto, estas equacoes diferenciais devem, em
geral, ser complementadas com equacoes que descrevem as condicoes fronteira
e condicoes iniciais para analise dinamica.
Em termos do tipo de equacao diferencial a resolver, considere-se a equacao
diferencial de segunda ordem no domnio x, y
A(x, y)

2
u
x
2
+ 2B(x, y)

2
u
xy
+C(x, y)

2
u
y
2
= (x, y, u,
u
x
,
u
y
) (2.1)
onde u e uma variavel desconhecida. Em funcao dos parametros A, B e C,
denem-se as equacoes diferenciais como:
32 2 Introducao ao metodo dos elementos nitos
B
2
4AC
_

_
< 0 elpticas
= 0 parabolicas
> 0 hiperbolicas
(2.2)
Exemplos destas equacoes sao, respectivamente, a equacao de Laplace, a
equacao de calor e a equacao de onda.
A equacao de Laplace tem a forma generica
k
_

x
2
+

2

y
2
_
= 0 (2.3)
onde e, por exemplo, o potencial e k a permeabilidade, em problemas de
movimentos de agua em solos.
A equacao de conducao de calor pode tomar a forma
k

x
2
= c

t
(2.4)
onde representa a temperatura, k a conductividade, a densidade e c a
capacitancia por unidade de massa.
A equacao de onda pode assumir a forma

x
2
=
1
c
2

2
u
t
2
, c =

(2.5)
b) elemento diferencial
x
u(x, t)
R0
R(t)
R0
dx
A|x A|x+dx
a) Carregamento
Figura 2.1. Barra sujeita a carga s ubita
onde E representa o modulo de elasticidade e a densidade.
2.3 Formulacao variacional 33
Considere-se, a ttulo de exemplo, a gura 2.1 , onde se pretende discutir
a equacao de onda. Usando o principio dAlembert, podemos estabelecer o
equilbrio de forcas num elemento diferencial tpico, na forma
A|
x
+A

x
|
x
A|
x
= A

2
u
t
2
|
x
dx (2.6)
A relacao constitutiva escreve-se como
= E = E
u
x
(2.7)
onde E representa o m odulo de elasticidade, e sao a tensao e a de-
formacao e u o deslocamento axial, sendo ainda t a variavel tempo. Combi-
nando as equacoes anteriores, temos entao
EA

2
u
x
2
= A

2
u
t
2
(2.8)
ou

2
u
x
2
=
1
c
2

2
u
t
2
(2.9)
Dado assumir-se que a func ao e contnua, nao sao precisas constricoes para a
continuidade de elementos.
As condicoes fronteira exprimem-se como
u(0, t) = 0; EA
u
x
(L, t) = R
0
; t > 0 (2.10)
enquanto que as condicoes iniciais se denem como
u(x, 0) = 0;
u
t
(x, 0) = 0 (2.11)
A formulacao ca assim completa com as equacoes (2.9) a (2.11).
Os problemas envolvendo equacoes elpticas sao muitas vezes denominadas
de problemas de fronteira, enquanto que as equacoes parabolicas e hiperbolicas
sao chamadas problemas de valores iniciais.
2.3 Formulacao variacional
A formulacao variacional baseia-se no calculo do potencial total do sistema,
, e do calculo da sua variacao e minimizacao
= 0 (2.12)
em relacao `as variaveis do problema.
O potencial total e tambem chamado o funcional do problema. Assuma-
se que no problema do funcional a maior derivada da variavel em relacao `as
34 2 Introducao ao metodo dos elementos nitos
coordenadas espaciais e de ordem m. Trata-se entao dum problema variacio-
nal C
m1
. As condicoes fronteira podem ser do tipo essencial ou natural.
As condicoes essenciais ou geometricas correspondem `a prescricao de deslo-
camentos ou rotacoes em mecanica de solidos ou estruturas. A ordem das
derivadas nas condicoes essenciais, num problema C
m1
, e no maximo m1.
As condicoes de fronteira naturais (tambem chamadas de forca tendo em
conta a prescricao de momentos e forcas na mecanica de solidos e estrutural)
possuem maior derivada de ordem m a 2m1.
Nesta formulacao usamos um smbolo variacional, . Assuma-se entao uma
funcao F para dado valor de x que depende de v (a variavel a determinar) e
de
v
x
, ...,

p
v
v
p
, para p = 1, 2, ....
A primeira variacao de F esta denida como
F =
F
v
v +
F
(dv/dx)
(dv/dx) +... +
F
(d
p
v/dx
p
)
(d
p
v/dx
p
) (2.13)
Pode mostrar-se que
d
n
v
dx
n
=
_
d
n
v
dx
n
_
(2.14)
ou seja, a variacao da derivada de v e igual `a derivada da variacao em v.
Pode tambem exprimir-se
(F +Q) = F +Q (2.15)
(FQ) = (F)Q+F(Q) (2.16)
(F)
n
= n(F)
n1
F (2.17)
e tambem

_
F(x)dx =
_
F(x)dx (2.18)
Uma condicao importante a respeitar e a de que as variacoes das variaveis a
determinar (e das m 1 derivadas) tem de ser zero nas condicoes fronteira
essenciais.
2.4 Obtencao de equacoes diferenciais a partir de
funcionais
Pretende-se agora ilustrar estes conceitos em algums exemplos. algumas das
expressoes usadas serao mais tarde deduzidas ou melhor compreendidas,
2.4 Obtencao de equacoes diferenciais a partir de funcionais 35
mas para efeitos de compreensao dos principios variacionais, elas sao aqui
avancadas.
Considere-se o problema da gura 2.1, descrito pelas equacoes (2.9) a
(2.11), onde uma barra de seccao constante Ae sujeita a uma forca distribuida,
q, ao longo de todo o comprimento, sujeita ainda a uma forca pontual no nal
da barra, R. O funcional e denido por
=
_
L
0
1
2
EA
_
u
x
_
2
dx
_
L
0
uqdx u
L
R (2.19)
e a condicao fronteira (essencial) correspondente ao encastramento por
u
0
= 0 (2.20)
onde u
0
= u(0, t), u
L
= u(L, t) e q a forca vol umica por unidade de compri-
mento da barra. Invocando = 0, obtemos
_
L
0
_
EA
u
x
__

u
x
_
dx
_
L
0
uqdx u
L
R = 0 (2.21)
Tomando
_
u
x
_
=
u
x
, EA=constante, e integrando por partes, obtemos

_
L
0
_
EA

2
u
x
2
+q
_
udx +
_
EA
u
x
|
x=L
R
_
u
L
EA
u
x
|
x=0
u
0
= 0
(2.22)
Tendo em conta que u
0
= 0 e u e arbitrario em todos os (outros) pontos,
obtemos a equacao diferencial
EA

2
u
x
2
+q = 0 (2.23)
e a condicao fronteira natural em x = L
EA
u
x
|
x=L
= R (2.24)
Assumindo q = A

2
u
t
2
obtemos entao a equacao diferencial (2.23) e dada
por
E

2
u
x
2
=

2
u
t
2
(2.25)
que e equivalente a (2.9).
A condicao de fronteira natural foi denida em (2.25). O problema vari-
acional e de classe C
0
, ou seja, m = 1. Note-se que, embora ainda nao seja
aparente, a incorporacao das condicoes fronteira naturais no funcional faz
com que estas condicoes nao sejam depois impostas no metodo dos elementos
nitos.
36 2 Introducao ao metodo dos elementos nitos
L
w
x P
k
Figura 2.2. Coluna sujeita a carga de compressao
Considere-se agora a viga da gura 2.2. O funcional que descreve o com-
portamento desta viga de Euler-Bernoulli, sujeita simultaneamente `a exao e
compressao e dado por
=
_
L
0
1
2
EI
_
d
2
w
dx
2
_
2
dx
P
2
_
L
0
_
d
2
w
dx
2
_
dx +
1
2
kw
2
L
(2.26)
onde k representa a rigidez duma mola em x = L, w e o deslocamento trans-
versalda viga e I o momento de inercia `a exao. Seja ainda w
L
= w|
x=L
com
as seguintes condicoes essenciais:
w|
x=0
= 0;
dw
dx
|
x=0
= 0 (2.27)
Tendo em conta a segunda derivada em w, o problema variacional e da classe
C
1
, podendo escrever-se
= 0
_
L
0
EIw

dx P
_
L
0
w

dx +kw
L
w
L
= 0 (2.28)
onde w

=
dw
dx
, etc. No entanto, regista-se que w

=
d
dx
(w

), sendo EI
constante. Integrando por partes, obtem-se para o primeiro termo do primeiro
membro
_
L
0
EIw

dx = EIw

(0)
L
EI
_
L
0
w

dx (2.29)
Integrando novamente por partes
_
L
0
w

dx, bem como


_
L
0
w

dx,
obtem-se
2.4 Obtencao de equacoes diferenciais a partir de funcionais 37
_
L
0
(EIw

+Pw

) wdx
. .
1
+(EIw

) (L)
. .
2
(EIw

) (0)
. .
3

[(EIw

+Pw

) w](L)
. .
4
+[(EIw

+Pw

) w](0)
. .
5
+kw
L
w
L
. .
6
= 0 (2.30)
Tendo em conta que as variacoes em w

e w tem de ser nulas em todas as


condicoes essenciais, temos w
0
= 0 e w

0
= 0, sendo assim os termos (3) e
(5) nulos.
As variacoes em w e w

sao arbitrarias em todos os outros pontos. Assim,


para satisfazer (2.30), as seguintes equacoes tem de ser validas:
de 1:
EIw
IV
+Pw

= 0 (2.31)
de 2:
EIw

(L) = 0 (2.32)
de 4 e 6:
(EIw

+Pw

kw) (L) = 0 (2.33)


A equacao (2.31) representa a equacao diferencial do problema, enquanto que
as condicoes fronteira naturais sao dadas por (2.32) e (2.33), correspondentes
ao equilbrio de momentos e esforcos de corte em x = L.
Estabeleca-se agora a equacao diferencial de equilbrio do problema da
gura 2.3 e deduzam-se as condicoes de fronteira naturais.
L
K
A(x) = A
0
(2 x/L)
A
0
A(x)
R
x
Figura 2.3. Barra com variacao de seccao (modulo de elasticidade E)
Tomando o funcional
=
_
L
0
1
2
Adx Ru(L) +
1
2
ku
2
(0) (2.34)
ou
38 2 Introducao ao metodo dos elementos nitos
=
_
L
0
1
2
EA
_
du
dx
_
2
dx Ru(L) +
1
2
ku
2
(0) (2.35)
Invocando = 0, obtemos
_
L
0
EAu

dx
. .
1
Ru(L) +kuu(0) = 0 (2.36)
Integrando o termo 1 por partes, a expressao (2.36) toma a forma
EAu

u(0)
L

_
L
0
EAu

udx Ru(L) +kuu(0) = 0 (2.37)


ou

_
L
0
EAu

udx + (EAu

R) u(L) + (ku EAu

) u(0) = 0 (2.38)
Assim, tendo em conta que u e arbitrario, temos
EAu

= 0, 0 < x < L (2.39)


EAu

= R, x = L (2.40)
EAu

= ku, x = 0 (2.41)
sendo (2.39) a equacao diferencial de equilbrio e (2.40),(2.41) as condicoes
fronteira naturais.
Considere-se agora a viga da gura 2.4, sujeita a momento ector na
ponta livre. Determine-se o funcional e as condicoes fronteira essenciais.
Determine-se a equacao diferencial de equilbrio e as condicoes fronteira na-
turais.
Tendo em conta que (na formulacao de Euler-Bernoulli) =
d
2
w
dx
2
= w

, o
funcional pode escrever-se como
=
_
L
0
1
2
EI
_
d
2
w
dx
2
_
2
dx M
dw
dx
(L) (2.42)
com condicoes fronteira essenciais
w(0) =
dw
dx
(0) = 0 (2.43)
Tomando = 0, obtem-se
=
_
L
0
EIw

dx Mw

(L) = 0 (2.44)
2.4 Obtencao de equacoes diferenciais a partir de funcionais 39
z
M
L
x
Figura 2.4. Viga em consola sujeita a momento ector na ponta livre
Torna-se necessario integrar o integral do primeiro membro duas vezes por
partes, obtendo-se na primeira integracao
[EIw

]
L
0

_
L
0
EIw

dx
. .
1
Mw

(L) = 0 (2.45)
e numa segunda integracao por partes no termo 1, obtemos nalmente
(EIw

M) w

(L) (EIw

w) (L) +
_
L
0
EIw

wdx = 0 (2.46)
Note-se que em (2.46) ja nao se consideraram os termos correspondentes a
w

(0) e w(0), tendo em conta as condicoes de fronteira essenciais. Sabendo


que w sao arbitrarios, estabelecem-se nalmente as seguintes equacoes
EIw

= 0, 0 < x < L (2.47)


EIw

= M, x = L (2.48)
EIw

= 0, x = L (2.49)
A equacao (2.47) corresponde `a equacao diferencial de equilbrio, enquanto
que (2.48) e (2.49) correspondem `as condicoes fronteira naturais, ligadas `a
condicao de momento ector e esforco de corte, respectivamente.
Note-se que nos problemas apresentados a equacao diferencial do problema
e as condicoes fronteira naturais podem ser derivadas, invocando a estacio-
nareidade do funcional do problema. As condicoes de fronteira naturais estao
40 2 Introducao ao metodo dos elementos nitos
implicitas no funcional, enquanto as condicoes fronteira essenciais sao impos-
tas separadamente.
Esta forma ou metodo variacional proporciona um meio relativamente ex-
pedito de obtencao das equacoes diferenciais do problema e das condicoes de
fronteira naturais.
2.5 Metodos de resduos pesados e metodo de Ritz
Foram anteriormente discutidas as formulacoes diferencial e variacional que
podem ser resolvidas de forma analtica por tecnicas de integracao.
No entanto, para problemas mais complexos, e mais adequado usar metodos
de aproximacao. Apresentam-se aqui alguns metodos classicos nos quais se usa
uma famlia de funcoes tentativa para se obter uma solucao aproximada. Estes
metodos estao intimamente ligados com o metodo dos elementos nitos.
Considere-se um problema estacionario cuja forma diferencial se apresenta
como
L() = r (2.50)
onde L e um operador diferencial linear, uma variavel do problema e r
uma dada funcao. A solucao do problema deve ainda satisfazer equacoes ou
condicoes fronteira do tipo
B
i
() = q
i
|
Si
, i = 1, 2, .. (2.51)
onde S
i
e uma dada fronteira do problema.
Estamos interessados nos operadores simetricos e denidos positivos, que
satisfazem a condicao de simetria
_
D
L(u)vdD =
_
D
L(v)udD (2.52)
onde D representa o domnio do operador e u, v sao quaisquer funcoes que
satisfazem as condicoes fronteira essenciais e naturais. A condicao de denida
positiva e dada por
_
D
L(u)udD > 0 (2.53)
Considere-se o exemplo da gura 2.1 para uma barra cuja resposta e dada
pela equacao diferencial
EAu

= 0 (2.54)
sujeita `as condicoes fronteira
u(0) = 0; EAu

(L) = R (2.55)
2.5 Metodos de resduos pesados e metodo de Ritz 41
Para este problema
L = EA

2
x
2
, = u, r = 0 (2.56)
B
1
= 1, q
1
= 0 (2.57)
B
2
= EA

x
, q
2
= R
(2.58)
Considere-se o caso R = 0, para vericar da simetria e denida positiva do
operador L:
_
L
0
EAu

vdx = [EAu

v]
L
0
+
_
L
0
EAu

dx =
[EAu

v]
L
0
+EAuv

(0)
L

_
L
0
EAv

udx (2.59)
Como u = v = 0 em x = 0 e u

= v

= 0 em x = L, temos
_
L
0
EAu

vdx =
_
L
0
EAv

udx (2.60)
Sendo entao o operador simetrico. De (2.59) obtemos
_
L
0
EAu

vdx =
_
L
0
EAv

udx (2.61)
que cumpre com a condicao (2.53).
Uma etapa basica dos metodos dos resduos pesados e do metodo de Ritz
consiste na construcao duma solucao aproximada na forma

=
n

i=1
a
i
w
i
(2.62)
onde w
i
sao funcoes tentativa ou de aproximacao linearmente independentes
e a
i
parametros a determinar.
Nos metodos dos resduos pesados, actuamos directamente sobre os opera-
dores diferenciais lineares do domnio e da fronteira (2.50) e (2.51). Escolhemos
entao as funcoes w
i
de (2.62) que satisfacam as condicoes de fronteira (2.51)
e calculamos entao o resduo
42 2 Introducao ao metodo dos elementos nitos
R = r L
_
n

i=1
a
i
w
i
_
(2.63)
Para a solucao exacta temos um resduo nulo. Uma boa aproximacao sera
aquela que possui resduo nulo em todos os pontos do domnio. Os metodos
a seguir apresentados diferem uns dos outros na forma como calculam a
i
por
forma a que R seja o mais pequeno possvel, nomeadamente atraves duma
media ponderada do resduo.
2.5.1 Metodo de Galerkin
No metodo de Galerkin os parametros a
i
sao determinados pelas equacoes
_
D
w
i
RdD = 0, i = 1, 2, ..., n (2.64)
sendo D o domnio da solucao. Note-se que as funcoes w
i
correspondem `as
mesmas funcoes usadas para o calculo do resduo. Esta e alias uma das razoes
pelas quais o metodo dos elementos nitos baseado no metodo de Galerkin e
o preferido.
2.5.2 Metodo de mnimos quadrados
No metodo dos mnimos quadrados os parametros a
i
sao determinados
atraves da minimizacao do quadrado do resduo, em termos de a
i
, ou seja, na
forma

a
i
_
D
R
2
dD = 0, i = 1, 2, ..., n (2.65)
Substituindo de (2.63), obtemos um sistema de n equacoes em termos dos
parametros a
i
, na forma
_
D
RL(w
i
)dD = 0, i = 1, 2, ..., n (2.66)
2.5.3 Metodo de colocacao
No metodo de colocacao os parametros a
i
sao determinados atraves
da anulacao do resduo R em pontos seleccionados (distintos) do domnio,
obtendo-se um sistema de n equacoes em termos dos parametros a
i
, sendo que
a escolha dos pontos inuencia de forma signicativa a qualidade da solucao.
2.5 Metodos de resduos pesados e metodo de Ritz 43
2.5.4 Metodo de sub-domnios
No metodo dos sub-domnios o domnio da solucao e subdividido em n
sub-domnios, sendo anulado o integral do resduo em (2.63) para gerar n
equacoes para os parametros a
i
.
No metodo de Galerkin a matriz dos coecientes e simetrica e positiva
denida se L for um operador simetrico. No metodo dos mnimos quadrados
aquela matriz sera sempre quadrada, enquanto que nos restantes metodos a
matriz sera nao simetrica.
Exemplo
A ttulo de exemplo para estes metodos considere-se o problema de fronteira
com equacao diferencial
u

+xu = 1
e condicoes fronteira:
u(0) = 0; u(1) = 1
Dena-se uma solucao aproximada, onde se satisfazem as condicoes de
fronteira essenciais
u = x +
N

i=1
a
i
sen(ix)
Constroi-se o resduo na forma
u

+xu 1 = x
2
1 +
N

i=1
a
i
(x (i)
2
)sen(ix)
No metodo da colocacao, usando N = 3, com x = 0.25; 0.5; 0.75, para
x (0, 1), impoem-se as seguintes condicoes em termos do erro ou resduo
E(x = 0.25) = 0
E(x = 0.50) = 0
E(x = 0.75) = 0
obtendo-se entao o seguinte sistema de equacoes em termos dos parametros
a
i
_
_
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 entao
a
1
= 0.0918; a
2
= 0.0060; a
3
= 0.0012
Obtem-se nalmente a solucao com 3 termos:
44 2 Introducao ao metodo dos elementos nitos
u
C
= x 0.0918sen(x) 0.0060sen(2x) 0.0012sen(3x)
Usando agora o Metodo dos sub-domnios, com N = 3, onde os varios sub-
domnios sao denidos por [0..1/3]; [1/3..2/3]; [2/3..1], impomos as condicoes
_
1/3
0
E
3
= 0
_
2/3
1/3
E
3
= 0
_
1
2/3
E
3
= 0
obtendo-se o sistema de equacoes
_
_
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 solucao e
a
1
= 0.1019; a
2
= 0.0114; a
3
= 0.0030
Obtem-se para este metodo a solucao com 3 termos:
u
S
= x 0.1019sen(x) 0.0114sen(2x) 0.0030sen(3x)
Considerando agora o metodo dos minmos quadrados, as funcoes de peso sao
obtidos por
w
j
(x) =
E
3
a
j
= [x (j)
2
]sen(jx)
obtendo-se o sistema de equacoes
_
_
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 solucao
a
1
= 0.0954; a
2
= 0.0077; a
3
= 0.0025
Solucao com 3 termos:
u
Q
= x 0.0954sen(x) 0.0077sen(2x) 0.0025sen(3x)
Usando o metodo de Galerkin, as funcoes de peso sao obtidas por
w
j
(x) =
j
(x) = sen(jx)
2.5 Metodos de resduos pesados e metodo de Ritz 45
impondo-se entao as condicoes sobre o resduo na forma
_
1
0
E
3
sen(x) = 0
_
1
0
E
3
sen(2x) = 0
_
1
0
E
3
sen(3x) = 0
com o seguinte sistema de equacoes
_
_
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 solucao
a
1
= 0.0953; a
2
= 0.0077; a
3
= 0.0025
Solucao com 3 termos:
u
G
= x 0.0953sen(x) 0.0077sen(2x) 0.0025sen(3x)
Registe-se que a solucao de Galerkin e identica `a dos mnimos quadrados.
2.5.5 Metodo de Ritz
No metodo de Ritz substituimos as funcoes tentativa ou de aproximacao

em
e geramos n equacoes em termos de a
i
, usando = 0, ou seja,

a
i
= 0, i = 1, 2, ..., n (2.67)
Um aspecto relevante do metodo de Ritz e que neste as funcoes de aproximacao
devem apenas satisfazer as condicoes fronteira essenciais, enquanto que no
metodo de Galerkin todas as condicoes fronteira (essenciais e naturais) devem
ser satisfeitas.
Considerando o problema anterior, temos
_
1
0
jcos(jx)(1 +

ia
i
cos(ix)) xsen(jx)(x +

a
i
sen(ix))+
sen(jx)dx = 0 , j = 1, 2, ..., N
46 2 Introducao ao metodo dos elementos nitos

a
i
_
1
0
jicos(jx)cos(ix)) xsen(jx)sen(ix)dx =
_
1
0
x
2
sen(jx) sen(jx) jcos(ix)dx, j = 1, 2, ..., N
Com N = 3, obtem-se o sistema de equacoes
_
_
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 solucao identica ao metodo de Galerkin.
Exemplo
Considere-se agora o problema da gura 2.2, usando uma aproximacao
w = a
1
x
2
+a
2
x
3
(2.68)
obtendo-se o funcional
=
1
2
_
L
0
EI
_
d
2
w
dx
2
_
2
dx
P
2
_
L
0
_
dw
dx
_
2
dx +
1
2
k(w(L))
2
(2.69)
A funcao em (2.68) satisfaz as condicoes de fronteira essenciais:
w(0) =
dw
dx
(0) = 0 (2.70)
Substituindo (2.68) em (2.69) obtemos entao
=
1
2
_
L
0
EI (2a 1 + 6a 2x)
2
dx

P
2
_
L
0
_
2a
1
x + 3a
2
x
2
_
2
dx +
1
2
k(a
1
L
2
+a
2
L
3
)
2
(2.71)
Invocando agora

a
1
= 0,

a
2
= 0, obtemos
_
2EI
_
2L 3L
2
3L
2
6L
3
_
+kL
4
_
1 L
L L
2
__ _
a
1
a
2
_
PL
3
_
4/3 3L/2
3L/2 9L
2
/5
_ _
a
1
a
2
_
=
_
0
0
_
(2.72)
2.6 Formulacao pelo metodo dos deslocamentos 47
A solucao deste problema K = PB fornece dois valores para P para os
quais w em (2.68) e nao nulo. O valor mais pequeno de P coincide com a
carga critica de encurvadura da coluna.
Tendo em conta que no metodo de Ritz nao e necessario satisfazer as
condicoes de fronteira naturais, o metodo de Galerkin e usado na pratica como
um metodo alternativo que lhe permite usar as mesmas funcoes do metodo de
Ritz. Em mecanica estrutural esta forma alternativa do metodo de Galerkin
e denominada princpio dos deslocamentos virtuais.
2.6 Formulacao pelo metodo dos deslocamentos
A analise linear de estruturas e uma parte importante das aplicacoes do
metodo dos elementos nitos. Foi alias a primeira aplicacao pratica do metodo
e continua a ser hoje muito importante para estudos da qualidade do metodo.
Na solucao por elementos nitos, a formulacao pelo metodo dos desloca-
mentos e ainda hoje uma pr atica habitual. Apresenta-se aqui a formulacao de
elementos nitos pelo principio dos trabalhos virtuais.
Recorrendo `a gura 2.5, onde uma barra e sujeita a uma forca distribuida
q(x) e uma carga concentrada R, podemos apresentar a formulacao diferencial
q(x) = ax
R
q(x) x
L
Figura 2.5. Barra sujeita a uma forca distribuida q(x) e uma carga concentrada R
EA
d
2
u
dx
2
+q(x) = 0, no domnio (2.73)
e condicoes fronteira essenciais
u(0) = 0 (2.74)
e naturais
EA
du
dx
(L) = R (2.75)
Sendo q(x) = ax, obtemos a solucao analitica
u(x) =
1
EA
_
du ax
3
6
_
+
_
R +
1
2
aL
2
_
x (2.76)
a qual corresponde `a solucao exacta.
48 2 Introducao ao metodo dos elementos nitos
Tendo em conta que (2.73) e valido para todos os pontos, entao pode
escrever-se
_
EA
d
2
u
dx
2
+q(x)
_
u = 0 (2.77)
Tendo em conta que u(x) e uma variacao arbitraria com u(x = 0) = 0,
entao tambem se torna valida a expressao
_
L
0
_
EA
d
2
u
dx
2
+q(x)
_
udx = 0 (2.78)
Integrando por partes o primeiro termo do primeiro membro e rearranjando,
obtem-se
_
L
0
EA
du
dx
du
dx
dx =
_
L
0
q(x)udx +
_
EA
du
dx
u
_
L
0
(2.79)
Temos entao a expressao do princpio dos deslocamentos virtuais(ou do
princpio dos trabalhos virtuais), na forma
_
L
0
EA
du
dx
du
dx
dx =
_
L
0
q(x)udx +Ru|
x=L
(2.80)
com
u(x = 0) = 0, u(x = 0) = 0 (2.81)
De (2.80) podemos tambem escrever

_
_
L
0
_
EA
2
_
du
dx
_
2
q(x)u
_
dx Ru|
x=L
_
= 0 (2.82)
que, conjuntamente com (2.81) constitui o princpio dos deslocamentos virtu-
ais para este problema.
2.7 Formulacao geral das equacoes de equilbrio
Tendo em conta uma formulacao tridimensional discute-se o princpio dos
deslocamentos virtuais, aqui usado como base da solucao de elementos nitos.
Considere-se o equilbrio dum corpo tridimensional com um referencial
xo X, Y, Z. O corpo e xo numa regiao S
u
, correspondente a deslocamentos
prescritos U
Su
, sujeito a traccoes superciais f
S
f
, na superfcie S
f
.
O corpo e tambem sujeito a forcas de corpo externas f
B
(forcas por unidade
de volume) e forcas concentradas R
i
C
(onde i e o ponto de aplicacao da carga).
As forcas externas aplicadas podem ser decompostas nas coordenadas X, Y, Z,
na forma:
2.7 Formulacao geral das equacoes de equilbrio 49
f
B
=
_

_
f
B
X
f
B
Y
f
B
Z
_

_
(2.83)
f
S
f
=
_

_
f
S
f
X
f
S
f
Y
f
S
f
Z
_

_
(2.84)
R
i
C
=
_

_
R
i
CX
R
i
CY
R
i
CZ
_

_
(2.85)
Os deslocamentos do corpo na conguracao indeformada apresentam-se no
sistema coordenado X, Y, Z como
U =
_
_
U
V
W
_
_
(2.86)
e U
Su
na superfcie S
u
. As deformacoes associadas a U sao obtidas por
=
_

XX

Y Y

ZZ

XY

Y Z

XZ
_

_
(2.87)
onde

XX
=
U
X
,
Y Y
=
V
Y
,
ZZ
=
W
Z

XY
=
U
Y
+
V
X
,
Y Z
=
V
Z
+
W
Y
,
XZ
=
U
Z
+
W
X
(2.88)
As tensoes correspondentes a sao
50 2 Introducao ao metodo dos elementos nitos
=
_

XX

Y Y

ZZ

XY

Y Z

XZ
_

_
(2.89)
onde
= C (2.90)
sendo C e a matriz de elasticidade, matriz constitutiva do material ou tensao-
deformacao. Nesta fase do texto, assumem-se relacoes constitutivas lineares,
tal que
os deslocamentos sao innitamente pequenos e as equacoes de equilbrio
podem referir-se `a conguracao indeformada
a matriz C nao depende do estado de tensao
2.8 Princpio dos trabalhos virtuais
A solucao por elementos nitos baseada em deslocamentos considera o princpio
dos deslocamentos virtuais, que assume que num corpo em equilbrio, para
quaisquer deslocamentos virtuais (pequenos), que sao nulos para correspon-
dentes deslocamentos prescritos, impostos ao corpo em equilbrio, o trabalho
virtual interno total e igual ao trabalho virtual externo total, ou seja,
_
V

T
dV =
_
V
U
T
f
B
dV +
_
S
f
U
S
f
T
f
S
f
dS +

i
U
T
i
R
i
C
(2.91)
onde U sao os deslocamentos virtuais e as correspondentes deformacoes
virtuais, obtidas por deriva cao dos deslocamentos virtuais.
Para um corpo tridimensional temos um conjunto de equacoes diferenciais
de equilbrio

XX
X
+

XY
Y
+

XZ
Z
+f
B
X
= 0

XY
X
+

Y Y
Y
+

Y Z
Z
+f
B
Y
= 0

XZ
X
+

Y Z
Y
+

ZZ
Z
+f
B
Z
= 0
(2.92)
(ou
ij
, j +f
B
i
= 0), no domnio do corpo, com condicoes naturais (em forcas)
2.8 Princpio dos trabalhos virtuais 51

ij
.n
j
= f
S
f
i
, em S
f
(2.93)
e condicoes essenciais (em deslocamentos)
u
i
= u
Su
i
, em S
u
(2.94)
onde a fronteira S = S
u

S
f
, S
u

S
f
= 0 e n
j
sao as componentes do vector
normal unitario `a superfcie S
f
do corpo.
Considerando os deslocamentos virtuais u
i
satisfazendo
u
i
= 0, em S
u
(2.95)
entao
_

ij
, j +f
B
i
_
u
i
= 0 (2.96)
e
_
V
_

ij
, j +f
B
i
_
u
i
dV = 0 (2.97)
Sendo u
i
arbitrario, (2.94) pode ser satisfeito se e so se a quantidade entre
parentesis em (2.97) desaparecer. Assim, (2.97) e equivalente ao sistema (2.92).
Usando a identidade
(
ij
u
i
) , j =
ij
, ju
i
+
ij
u
i
, j (2.98)
obtendo-se, entao de (2.97)
_
V
_
(
ij
u
i
) , j
ij
u
i
, j +f
B
i
u
i

dV = 0 (2.99)
Usando agora a identidade (decorrente do teorema da divergencia):
_
V
(
ij
u
i
) , jdV =
_
S
(
ij
u
i
) n
j
dS (2.100)
obtemos
_
V
_

ij
u
i
, j +f
B
i
u
i
_
dV +
_
S
(
ij
u
i
) n
j
dS = 0 (2.101)
Tendo em conta (2.93) e (2.95) obtem-se
_
V
_

ij
u
i
, j +f
B
i
u
i
_
dV +
_
S
f
f
S
f
i
u
S
f
i
dS = 0 (2.102)
Tendo em conta a simetria do tensor das tensoes
ij
=
ji
, temos

ij
u
i
, j =
ij
[1/2 (u
i
, j +u
j
, i)] =
ij

ij
(2.103)
Obtendo-se entao de (2.102)
52 2 Introducao ao metodo dos elementos nitos
_
V

ij

ij
dV =
_
V
f
B
i
u
i
dV +
_
S
f
f
S
f
i
u
S
f
i
dS (2.104)
2.9 Equacoes de elementos nitos
Na analise de elementos nitos aproxima-se o corpo como um conjunto de
elementos nitos discretos interligados em pontos nodais nas fronteiras dos
elementos. Os deslocamentos medidos no sistema coordenado local x, y, z,
em cada elemento sao assumidos como funcao dos deslocamentos em n pontos
no elemento. Assim, para cada elemento e, temos
u
(e)
(x, y, z) = N
(e)
(x, y, z)

U (2.105)
onde N
(e)
representa a matriz de interpolacao dos deslocamentos, o supers-
crito e representa o elemento e, sendo ainda

U um vector com tres componen-
tes de deslocamentos globais U
i
, V
i
, W
i
em todos os pontos nodais, ou seja,

U
e um vector com 3N componentes:

U
T
= [U
1
V
1
W
1
U
2
V
2
W
2
... U
N
V
N
W
N
] (2.106)
Mais genericamente podemos escrever

U
T
= [U
1
U
2
... U
N
] (2.107)
onde U
i
possui tres componentes segundo X, Y, Z.
Podemos agora calcular as deformacoes nos elementos como

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

U (2.108)
onde B
(e)
representa a matriz deformacao-deslocamento, cujas linhas sao ob-
tidas por derivacao das linhas de N
(e)
.
As tensoes sao entao calculadas, para cada elemento nito, usando

(e)
= C
(e)

(e)
(2.109)
onde C
(e)
e a matriz de elasticidade do elemento e e
(e)
representa o vector
de tensoes do elemento.
Tendo em conta a suposicao do campo de deslocamentos em cada ele-
mento, podemos agora derivar as equacoes de equilbrio, como uma soma de
integracoes sobre o volume e area de todos os elementos nitos:
2.9 Equacoes de elementos nitos 53

e
_
V
(e)

(e)T

(e)
dV
(e)
=

e
_
V
(e)
u
(e)T
f
B(e)
dV
(e)
+

e
_
S
(e)
1
,S
(e)
2
,...
u
S(e)T
f
S(e)
dS
(e)
+

i
u
(i)T
R
i
C
(2.110)
onde e = 1, 2, ...k, sendo k o n umero maximo de elementos e S
(e)
1
, S
(e)
2
, ...
as diversas superfcies dos elementos que fazem parte da superfcie do corpo
S. Note-se que, em elementos que estejam completamente cercados, nao sao
consideradas estas superfcies, enquanto que para elementos na superfcie do
corpo, podem existir uma ou mais superfcies dos elementos nos integrais de
superfcie. Note-se ainda que em (2.110) os pontos nodais foram colocados em
pontos onde as forcas pontuais sao aplicadas.
As relacoes entre os deslocamentos e as deformacoes virtuais exprimem-se
como
u
(e)
(x, y, z) = N
(e)
(x, y, z)

U (2.111)

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

U (2.112)
Substituindo em (2.110) obtem-se

U
T

e
_
V
(e)
B
(e)T
C
(e)
B
(e)
dV
(e)
=

U
T

e
_
V
(e)
N
(e)T
f
B(e)
dV
(e)
+

U
T

e
_
S
(e)
1
,S
(e)
2
,...
N
S(e)T
f
S(e)
dS
(e)
+

U
T

i
R
i
C
(2.113)
onde N
S(e)
sao as funcoes de forma ou matrizes de interpolacao dos desloca-
mentos na superfcie, tendo em conta coordenadas de superfcie adequadas,
e R
C
e o vector de forcas pontuais aplicadas nos nos apos espalhamento de
matrizes. Note-se que a componente i em R
i
C
corresponde `a componente i em

U.
Atraves de (2.113) podem entao obter-se as equacoes de equilbrio, em
termos dos (desconhecidos) deslocamentos nodais, aplicando o princpio dos
trabalhos virtuais n vezes, impondo deslocamentos virtuais unitarios para
todos os componentes de

U, ou seja,

U = e
1
,

U = e
2
, ..., onde e
i
sao os
elementos da base canonica de R
n
, tal que o resultado e dado por
KU = R (2.114)
e
R = R
B
+R
S
+R
C
(2.115)
Denominemos, em seguida,

U = U, por razoes de conveniencia de escrita.
A matriz de rigidez da estrutura e agora expressa por
54 2 Introducao ao metodo dos elementos nitos
K =

e
_
V
(e)
B
(e)T
C
(e)
B
(e)
dV
(e)
. .
K
(e)
(2.116)
O vector de cargas R inclui as forcas de corpo
R
B
=

e
_
V
(e)
N
(e)T
f
B(e)
dV
(e)
. .
R
(e)
B
(2.117)
as forcas de superfcie
R
S
=

e
_
S
(e)
1
,S
(e)
2
,...
N
S(e)T
f
S(e)
dS
(e)
. .
R
(e)
S
(2.118)
e as forcas concentradas R
C
. Note-se que, tal como para a matriz de rigidez,
tambem para o vector de forcas se adicionam as contribuicoes dos elementos
naquilo a que se designa por metodo da rigidez directa.
Caso as forcas variem com o tempo, os deslocamentos tambem variam com
o tempo, tornando-se necessario incluir termos de inercia. Usando o principio
dAlembert, a contribuicao para o vector de forcas R por parte das forcas de
corpo e
R
B
=

e
_
V
(e)
N
(e)T
_
f
B(e)

(e)
N
(e)

U
_
dV
(e)
(2.119)
onde f
B(e)
nao contem termos de inercia,

U representa as aceleracoes virtuais,
correspondentes `as segundas derivadas em ordem ao tempo e
(e)
e a densidade
do elemento e.
As equacoes de equilbrio dinamico sao neste caso
M

U+KU = R (2.120)
onde agora U e R dependem do tempo.
A matriz de massa da estrutura e agora calculada como
M =

e
_
V
(e)
N
(e)T

(e)
N
(e)
dV
(e)
. .
M
(e)
(2.121)
Caso a energia seja dissipada durante a vibracao, introduzem-se forcas de
amortecimento que constituem contribuicoes adicionais para as forcas de
corpo, na forma:
2.9 Equacoes de elementos nitos 55
R
B
=

e
_
V
(e)
N
(e)T
_
f
B(e)

(e)
N
(e)

Uk
(e)
N
(e)

U
_
dV
(e)
(2.122)
onde

U representa as velocidades nodais e k
(e)
um parametro de amorteci-
mento. As equacoes de equilbrio sao entao dadas por:
M

U+P

U+KU = R (2.123)
sendo P a matriz de amortecimento da estrutura, dada por
P =

e
_
V
(e)
N
(e)T
k
(e)
N
(e)
dV
(e)
. .
P
(e)
(2.124)
Na solucao por elementos nitos, as equacoes de equilbrio nao sao satisfeitas
exactamente em todos os pontos considerados, havendo duas propriedades que
sao satisfeitas em qualquer malha de elementos nitos. A primeira propriedade
refere-se ao equilbrio nos nos, enquanto que a segunda propriedade se refere
ao equilbrio no elemento.
Considere-se a gura 2.6, representando elementos contguos. Na gura
2.7, ilustram-se as duas propriedades referidas.
!
"!# "
!!#
Figura 2.6. Rede de elementos nitos
Considere-se que em cada elemento nito e os vectores de forcas nodais
sao dados por
F
(e)
=
_
V
(e)
B
(e)
T

(e)
dV
(e)
(2.125)
56 2 Introducao ao metodo dos elementos nitos
Equilibram as foras externas aplicadas
q-1 q
e-1 e
Foras F
(e)
em equilibrio
Soma das foras F
(e)
Figura 2.7. Equilbrio de forcas nos nos e em cada elemento
onde
(e)
= C
(e)

(e)
. De acordo com a primeira propriedade, em cada no,
a soma das forcas nodais esta em equilbrio com as forcas externas aplicadas
(incluindo forcas de corpo, de inercia, concentradas e de amortecimento). De
acordo com a segunda propriedade, cada elemento esta em equilbrio sob as
suas forcas F
(e)
. A propriedade 1 e satisfeita, tendo em conta que

e
F
(e)
= KU (2.126)
A propriedade 2 e satisfeita, desde que a matriz de interpolacao N
(e)
satisfaca
requisitos de convergencia (incluindo a condicao que o elemento possa repre-
sentar modos rigidos). Para um elemento e, sujeito a forcas nodais, impoe-se
deslocamentos virtuais correspondentes a movimentos de corpo rigido. Para
cada deslocamento de corpo rigido virtual, ou u , temos
u
T
F
(e)
=
_
V
(e)
_
B
(e)
u
_
T

(e)
dV
(e)
=
_
V
(e)

(eT)

(e)
dV
(e)
= 0 (2.127)
dado que
(e)
= 0. Verica-se entao que para todos os movimentos de corpo
rigido, as forcas F
(e)
estao em equilbrio.
Assim, na analise por elementos nitos
a estrutura e idealizada como um conjunto interligado de elementos dis-
cretos ligados em nos
as forcas externas aplicadas (forcas de corpo, forcas tractivas, forcas de
inercia, forcas concentradas) sao atribuidas a esses nos, usando o princpio
2.9 Equacoes de elementos nitos 57
dos trabalhos virtuais para obter forcas nodais equivalentes `as forcas apli-
cadas
as forcas nodais equivalentes `as forcas externas aplicadas sao equilibradas
pelas forcas nodais equivalentes `as tensoes internas nos elementos, ou seja

e
F
(e)
= R (2.128)
as equacoes de compatibilidade de tensao-deformacao sao satisfeitas exac-
tamente
3
Elementos nitos isoparametricos e elementos
de barra
3.1 Introducao
Conforme ja referido anteriormente, um aspecto muito importante de qualquer
calculo por elementos nitos e o calculo de matrizes de elementos nitos, entre
outras, a matriz de rigidez, a matriz de massa, o vector de cargas nodais
equivalente `as cargas exteriores aplicadas.
Um dos avancos mais signicativos no metodo dos elementos nitos foi
obtido Irons [121], na proposta de elementos nitos isoparametricos.
A ideia basica dos elementos nitos isoparametricos e a de que a relacao
entre os deslocamentos no interior do elemento e os deslocamentos nodais pode
ser directamente estabelecida atraves de funcoes de interpolacao (tambem
chamadas funcoes de forma).
3.2 Elemento de barra de 2 nos
Considere-se o exemplo dum elemento de barra, para a ilustracao do calculo
da matrix de rigidez. Assuma-se que a barra se situa no eixo global X, como
ilustrado na gura 3.1. O primeiro passo reside na relacao entre as coordenadas
globais X e as coordenadas naturais , onde 1 1. A relacao e entao
dada por
X =
1
2
(1 )X
1
+
1
2
(1 +)X
2
(3.1)
ou
X =
2

i=1
N
i
X
i
(3.2)
onde
N
1
=
1
2
(1 ); N
2
=
1
2
(1 +) (3.3)
60 3 Elementos nitos isoparametricos e elementos de barra
representam as funcoes de forma, que traduzem de forma unica a relacao entre
as coordenadas X e na barra.
Os deslocamentos globais da barra sao expressos de forma semelhante `as
coordenadas globais:
U =
2

i=1
N
i
U
i
(3.4)
A interpolacao das coordenadas e dos deslocamentos dos elementos, usando
as mesmas funcoes de forma, denidas no sistema de coordenadas naturais,
constitui a base da formula cao de elementos nitos isoparametricos.
O calculo das deformacoes e estabelecido, usando a regra da cadeia:
=
dU
dX
=
dU
d
d
dX
(3.5)
onde
dU
d
=
U
2
U
1
2
(3.6)
de (3.4) e
dX
d
=
X
2
X
1
2
=
L
2
(3.7)
de (3.1), onde L e o comprimento da barra.
= +1
U1
X1
X2
U2
Z
Y
X, U
= 1

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


Assim, obtem-se
=
U
2
U
1
2
2
L
=
U
2
U
1
L
(3.8)
Tendo em conta a relacao entre deformacoes e deslocamentos = BU, obte-
mos entao a chamada matriz de deformacoes-deslocamento ou matriz B,
3.3 PTV 61
B =
1
L
_
1 1

(3.9)
A matriz de rigidez e entao obtida por
K =
EA
L
2
_
1
1
_
1
1
_
_
1 1

Jd (3.10)
onde J e 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 entao
dX
d
= J =
L
2
(3.12)
Obtemos entao, a matriz de rigidez em (3.10), como
K =
EA
2L
_
1
1
_
1 1
1 1
_
d =
EA
L
_
1 1
1 1
_
(3.13)
3.3 PTV
Note-se que esta matriz de rigidez tambem poderia ser obtida, de outras for-
mas. Aplicando o princpio dos trabalhos virtuais, estabelece-se
A
_
L
0

T
dx =
_
L
0
u
T
fdx +
N

i=1
u
i
F
i
(3.14)
ou
A
_
L
0
u
T
B
T
EBudx =
_
L
0
u
T
fdx +
N

i=1
u
i
F
i
(3.15)
ou ainda
u
T
EA
_
L
0
B
T
Bdxu =
_
L
0
u
T
fdx +
N

i=1
u
i
F
i
(3.16)
onde F
i
representam as forcas pontuais eventualmente actuantes nos nos da
barra e onde f representa uma forca distribuida. Sabendo que dx =
L
2
d, pode
escrever-se o mesmo integral em coordenadas naturais na forma
u
T
EAL
2
_
1
1
B
T
Bdu =
_
1
1
L
2
u
T
fd +
N

i=1
u
i
F
i
(3.17)
62 3 Elementos nitos isoparametricos e elementos de barra
Sendo os deslocamentos virtuais arbitrarios, pode entao escrever-se
_
EAL
2
_
1
1
1
L
2
_
1
1
_
_
1 1

d
_
u =
_
1
1
L
2
N
T
fd +
N

i=1
F
i
(3.18)
ou
K
e
u = f
e
(3.19)
sendo a matriz de rigidez obtida por
K
e
=
EA
2L
_
1
1
_
1
1
_
_
1 1

d (3.20)
Nas equacoes anteriores N representa a matriz de funcoes de forma do
elemento, composta por
N =
_
N
1
N
2

(3.21)
3.4 Funcoes de forma
Note-se que as funcoes de forma possuem algumas propriedades importantes:
sao unitarias no no a que respeitam e nulas nos restantes
possuem a particao da unidade, ou seja,

N
i
= 1
As funcoes de forma devem tabem ser derivaveis no interior do domnio
do elemento nito e contnuas na fronteira dos elementos. A maior parte das
funcoes de forma sao 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 sao usadas funcoes de forma C
1
.
Se no integral da matriz de rigidez forem requeridas derivadas de ordem m,
entao torna-se necessario elementos de classe C
m1
. Caso isto aconteca, diz-
se que os elementos sao compatveis ou conformes. Caso contrario, dizem-se
nao conformes ou incompatveis. As funcoes de forma devem tambem usar
polinomios completos.

E habitual usar-se um conjunto de funcoes de forma de classes ja estabe-


lecidas, por exemplo as que resultam dos polinomios de Lagrange, na forma
N
i
(x) =
n

j=1(j=i)
_
x x
j
x
i
x
j
_
(3.22)
Para um elemento de 2 nos, obtem-se entao as funcoes ja estabelecidas:
N
1
(x) =
x x
2
x
1
x
2
=
x
2
x
L
(3.23)
3.4 Funcoes de forma 63
N
2
(x) =
x x
1
x
2
x
1
=
x x
1
L
(3.24)
Na maior parte das vezes usa-se uma formulacao em coordenadas naturais,
conforme ilustrado na gura 3.1, onde se introduz a coordenada natural
= 2
x x
c
L
(3.25)
onde x
c
representa a coordenada central do elemento. Note-se que [1, 1].
Por analogia pode escrever-se
N
i
() =
n

j=1(j=i)
_

j

i

j
_
(3.26)
Sabendo que
1
= 1 e
2
= 1, podem entao calcular-se as funcoes de forma
em coordenadas naturais para um elemento nito de 2 nos
N
1
() =

2

1

2
=
1
2
(1 ) (3.27)
N
2
() =

1

2

1
=
1
2
(1 +) = 1
2
(3.28)
Para um elemento de 3 nos (
1
= 1,
2
= 0,
3
= 1), obtem-se as correspon-
dentes funcoes de forma, conforme ilustrado na gura 3.2
1
N
1
N
2
N
3
Figura 3.2. Elemento de barra de tres nos. Funcoes de forma quadraticas para
elemento de tres nos
N
1
() =
(
2
)(
3
)
(
1

2
)(
1

3
)
=
1
2
( 1) (3.29)
N
2
() =
(
1
)(
3
)
(
2

1
)(
2

3
)
= (1 +)(1 ) (3.30)
N
3
() =
(
1
)(
2
)
(
3

1
)(
3

3
)
=
1
2
( + 1) (3.31)
64 3 Elementos nitos isoparametricos e elementos de barra
Note-se que se pretende agora estabelecer uma formulacao isoparametrica no
dominio natural, ou seja
u() = N
1
()u
1
+N
2
()u
2
(3.32)
A derivacao de u e obtida atraves da derivacao das funcoes de forma , ou seja,
a deformacao e obtida por
=
du
dx
=
dN
1
dx
u
1
+
dN
2
dx
u
2
(3.33)
A derivacao em ordem `as variaveis reais x faz-se atraves da regra da cadeia
dN
1
dx
=
dN
1
d
d
dx
=
1
2
d
dx
(3.34)
dN
2
dx
=
dN
2
d
d
dx
=
1
2
d
dx
(3.35)
Sendo entao a deformacao obtida por
=
1
2
d
dx
u
1
+
1
2
d
dx
u
2
(3.36)
Note-se tambem que e possvel exprimir a relacao entre deformacoes e deslo-
camentos na forma matricial. Por exemplo, para um elemento nito de dois
nos
=
1
2
d
dx
u
1
+
1
2
d
dx
u
2
=
1
L
u
1
+
1
L
u
2
=
_

1
L
,
1
L
_ _
u
1
u
2
_
(3.37)
onde
B =
_

1
L
,
1
L
_
(3.38)
representa a matriz de deformacoes, muito usual na formulacao de elementos
nitos baseados em deslocamentos.
3.5 Integracao numerica
Na maior parte dos elementos nitos torna-se impraticavel calcular as matri-
zes de rigidez K e vector de cargas f , sem recurso a integracao numerica. Aqui
pretende-se ilustrar os principais conceitos. Apresenta-se apenas a integracao
de Gauss-Legendre, mais conhecida por integracao de Gauss, por ser este
o metodo mais usado nos elementos nitos. Nesta parte do texto apresenta-se
apenas a integracao em dominios unidimensionais, enquanto em breve se apre-
senta a integracao numerica para dominios bidimensionais ou tridimensionais.
3.5 Integracao numerica 65
Considere-se uma funcao f(x), x [1, 1]. Na regra de integracao de
Gauss, o integral
I =
_
1
1
f(x)dx (3.39)
e expresso na forma dum somatorio estendido a p pontos de Gauss (do interior
do elemento nito) onde se multiplica o valor da funcao f nesses pontos p por
pesos, na forma
I =
_
1
1
f(x)dx =
p

i=1
f(x
i
)W
i
(3.40)
onde W
i
representam os pesos correspondentes ao ponto i. Na tabela 3.1
apresentam-se as coordenadas e pesos para a tecnica de integracao de Gauss.
Note-se que esta tecnica de integracao de grau n fornece uma solucao exacta
para um polinomio de grau 2n 1.
Tabela 3.1. Coordenadas e pesos para a tecnica de integracao de Gauss (apenas
ate 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 gura 3.3 ilustram-se as posicoes de alguns pontos de Gauss em elementos
nitos 1D.
3 1
2

1
= 0
a)

1
= 1/

3
2
= 1/

3
b)
Figura 3.3. Integracao de Gauss em dominios unidimensionais
Exemplo 4.1
Considere-se o integral dum polinomio de quarto grau
66 3 Elementos nitos isoparametricos e elementos de barra
I =
_
1
1
_
1 +x +x
2
+x
3
+x
4
_
dx (3.41)
cuja solucao exacta e 3.0666. Usemos agora varios pontos de integracao (gura
3.3), para podermos avaliar da qualidade da tecnica de integracao.
Um ponto de integracao: p = 1; x
1
= 0; W
1
= 2 I = W
1
f(x
1
) = 2
Dois pontos de integracao: p = 2; x
1
, x
2
= 0.57735; W
1
, W
2
= 1 I =
W
1
f(x
1
) +W
2
f(x
2
) = 2.8888
Tres pontos de integrac ao: p = 3; x
1
, x
3
= 0.77459, x
2
= 0.0; W
1
, W
3
=
0.5555, W
2
= 0.8888 I = W
1
f(x
1
) + W
2
f(x
2
) + W
2
f(x
2
) = 3.0666
(valor exacto)
Verica-se assim que uma integracao de grau 2 nao satisfaz a integracao
exacta, porque 221 = 3, sendo que o polinomio e de grau 4.

E necessario,
assim, utilizar um polinomio de grau 3 para poder integrar exactamente um
polinomio de grau 3.
3.6 Codigo para problema de barra
No programa seguinte ilustra-se um programa MATLAB para a solucao do
problema de barra bi-encastrada de seccao constante, ilustrada na gura 3.4,
com modulo de elasticidade E = 30e6, area A = 1.
2 3 4 1
30000
(3) (1) (2)
3@30
Figura 3.4. Barra bi-encastrada sujeita a carga pontual
O primeiro codigo (barra.m) recorre ao calculo 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 Codigo 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 codigo (barraisoparametrica.m) recorre `a for-
mulacao isoparametrica. Note-se que as vantagens da formulacao isoparametrica
sao mais evidentes em dominios bi e tridimensionais. Ambos produzem os mes-
mos resultados em termos de deslocamentos. No primeiro codigo calculam-se
as reaccoes, enquanto que no segundo codigo se calculam as tensoes nos ele-
mentos. Note-se que neste codigo se utilizam elementos de barra de dois nos.
1 function barraisoparametrica(method)
2
3 % problema de barra encastrada, sujeita a forca pontual
4
68 3 Elementos nitos isoparametricos 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 Codigo 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 explicacao detalhada do codigo, pela sua re-
levancia noutros codigos mais adiante. Nas instrucoes seguintes usamos varias
funcoes importantes, em particular o linspace que permite uma divisao re-
gular de coordenadas entre 0 e L,colocando essas coordenadas na variavel
node.
node=linspace(0,L,numelem+1);xx=node;
Na instrucao
for i=1:numelem; element(i,1)=i; element(i,2)=i+1;end
faz-se a geracao dos nos em cada elemento, atraves dum ciclo FOR/END.
Esta forma de gerar as conectividades e interessante se se quiser realizar varios
testes com diferentes n umero de nos. O resultado obtido e
element =
1 2
2 3
3 4
Usamos neste problema uma quadratura de Gauss com um ponto de inte-
gracao, 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 `a integracao de Gauss, ou seja usando um
determinado n umero de pontos de Gauss e cada elemento. A matriz de rigi-
dez e obtida por soma das contribuicoes de cada elemento e de cada ponto
de Gauss, espalhada nas posicoes 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 nitos isoparametricos 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 funcoes de forma N e a matriz de
suas derivadas em ordem `as coordenadas locais (dNdxi) e em relacao `as coor-
denadas globais (dNdx) atraves da inversa do jacobiano (dNdx=dNdxi*invJ0).
O calculo da matriz de rigidez ca entao ligado ao somatorio
K =
ne

e=1
B
T
EABdet(J)W (3.42)
onden
e
representa o n umero total de elementos.
4
Analise de barras inclinadas (trelicas)
4.1 Introducao
Neste captulo apresenta-se um estudo por elementos nitos de barras in-
clinadas (trelicas) para a analise de porticos que suportam apenas cargas
longitudinais. Apresenta-se tambem um codigo MATLAB para o calculo de
deslocamentos, reaccoes e tensoes nas barras.

E efectuado o desenho da malha
e sua deformada.
Uma trelica consiste em membros estruturais que suportam apenas forcas
de compressao ou traccao. Todas as forcas e reaccoes estao aplicadas nos
nos (juntas sem atrito), conforme ilustrado na gura 4.1. Embora se possam
estudar estas estruturas pelo metodo dos nos ou das seccoes, o metodo dos
elementos nitos permite o estudo de estruturas indeterminadas, o que nao e
possvel pelos metodos dos nos ou seccoes.
P1 P
Figura 4.1. Exemplo de trelica bidimensional
72 4 Analise de barras inclinadas (trelicas)
4.2 Trelicas no plano
Tendo em conta a diferente orientacao no espaco bidimensional duma trelica
tipica, conforme ilustrado na gura 4.1, torna-se necessario introduzir um sis-
tema de coordenadas local, ligado a cada barra e um sistema de coordenadas
global, ligado `a estrutura.
Considere-se um elemento de barra inclinada na gura 4.2 denida pelos
seus nos 1 e 2. Ao sistema local x

, y

estao associados os graus de liberdade


(deslocamentos) u

1
, u

2
. No sistema global, no entanto, cada no tem dois graus
de liberdade.

x
y
x

1
u

2
u1
u2
u3
u4
Figura 4.2. Trelica bidimensional
Para cada elemento, os deslocamentos no sistema local sao
u

T
= [u

1
u

2
] (4.1)
enquanto que no sistema global, o campo de deslocamentos e entao denido
por
u
T
= [u
1
u
2
u
3
u
4
] (4.2)
A relacao entre os deslocamentos dos dois sistemas e dada pelas relacoes
u

1
= u
1
cos() +u
2
sin() (4.3)
u

2
= u
3
cos() +u
4
sin() (4.4)
os cossenos directores l e m sao dados por l = cos(), m = sen(), sendo estes
os cossenos dos angulos que o eixo x

faz com os eixos x, y, respectivamente.


Pode entao traduzir-se a relacao entre deslocamentos na forma
u

= Lu (4.5)
sendo a matriz de cossenos directores L dada por
4.3 Matriz de rigidez 73
L =
_
l m 0 0
0 0 l m
_
(4.6)
Estes cossenos directores sao calculados por
l =
x
2
x
1
L
e
; m =
y
2
y
1
L
e
(4.7)
sendo o comprimento do elemento, L
e
, dado por
L
e
=
_
(x
2
x
1
)
2
+ (y
2
y
1
)
2
(4.8)
4.3 Matriz de rigidez
Tomando em conta que a barra inclinada e um elemento unidimensional
quando se considera o sistema local, podemos escrever a matriz de rigidez
no sistema local como
K

=
EA
L
e
_
1 1
1 1
_
(4.9)
onde A e a area do elemento e E o modulo de elasticidade do material da
barra.
No sistema local a energia de deformacao do elemento e denida por
U
e
=
1
2
u

T
K

(4.10)
Substituindo u

= Lu na equacao acima, obtem-se


U
e
=
1
2
u
T
[L
T
K

L]u (4.11)
Podemos entao denir a matriz de rigidez como
K = L
T
K

L (4.12)
Obtendo-se nalmente
K =
EA
L
e
_

_
l
2
lm l
2
lm
lm m
2
lm m
2
l
2
lm l
2
lm
lm m
2
lm m
2
_

_
(4.13)
74 4 Analise de barras inclinadas (trelicas)
4.4 Calculo de tensoes
No sistema local, a tensao no elemento de barra e calculada por = E.
Como a deformacao e a variacao de comprimento por unidade do comprimento
original, pode escrever-se
= E
u

2
u

1
L
e
=
E
L
e
[1 1]
_
u

1
u

2
_
=
E
L
e
[1 1]u

(4.14)
Podemos agora proceder `a transformacao de eixos locais para globais,
=
E
L
e
[1 1]Lu =
E
L
e
[l m l m]u (4.15)
4.5 Problema de trelica plana
Considere-se a trelica da gura 4.3, onde uma forca pontual vertical de 10000
e aplicada no no 1. O modulo de elasticidade e E = 30e6, a area A = 2.
10000
45
45
10
10
1
2
3
4
x
y
Figura 4.3. Problema de trelica plana
O codigo (logan81.m) e 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 trelica 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 Analise de barras inclinadas (trelicas)
Os resultados obtidos conferem com os apresentados no livro de Logan
[123] , pagina 81 (terceira edicao). Os deslocamentos nodais sao os seguintes:
U1 =
0.00414213562373
-0.01585786437627
0
0
0
0
0
0
enquanto que as tensoes (constantes em cada elementos) sao as seguintes:
>> sigma
ans =
1.0e+03 *
3.96446609406726
1.46446609406726
-1.03553390593274
A deformada obtida e ilustrada na gura 4.4.
0 20 40 60 80 100 120
0
20
40
60
80
100
120
Figura 4.4. Deformada para o problema de trelica plana
4.6 Outro problema de trelica bidimensional 77
4.6 Outro problema de trelica bidimensional
Apresenta-se agora um outro problema de trelicas. Este exemplo ilustra uma
das principais diculdades do projectista de elementos nitos, que e a im-
posicao de condicoes fronteira.
Considere-se a trelica da gura 4.5, em que o modulo de elasticidade e
E = 70GPa, area A = 3e 4m
2
, proposto por Logan [123], na pagina 128.
Propoe-se aqui que se calcule os deslocamentos e tensoes nos membros, usando
a estrutura completa e usando condicoes de simetria. O problema reside no
facto do no 1 nao se deslocar em x, o que traz problemas para a condicao de
simetria, dado que se restringirmos o deslocamento em x do no 1, estamos a
assumir que o no 5 tambem nao se desloca em x o que e falso. A referencia
[123] usa esta condicao, que nao e correcta. Os resultados obtidos pelo codigo
MATLAB que juntamos a seguir reproduz esse erro, mas e importante mostrar
o codigo para se vericar as implicacoes de condicoes fronteira erradas. Na
gura 4.6 mostra-se a incorreccao, notando que se assume que o no 1 nao
mexe (correcto), mas implicando que o no 5 tambem nao se move o que e
incorrecto, porque o seu apoio e simples.
1
1
2
3
4
5
6
50kN
100 kN 50 kN
3m
3m
3m
2
3
4
5
6
7
8
9
10
11
Figura 4.5. Trelica do livro de Logan, pagina 128
O codigo (logan128332.m) e 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 Analise de barras inclinadas (trelicas)
restringidos
1
2
3
4
50kN
50 kN
3m
2
3
4
5
6
1
Graus de liberdade
Figura 4.6. Trelica do livro de Logan, pagina 128, Opcao INCORRECTA de
condicoes 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 trelica 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 opcao sao os seguintes:
>> U1
U1 =
0
0
1.50865353300281
-8.65151067585996
0
-14.42728078345209
0
-15.93593431645490
Na gura 4.7 apresenta-se a deformada da estrutura completa. Note-se o
movimento horizontal do n o 5.
O codigo (logan128332completo.m) para a estrutura completa e o seguinte
1 % logan pagina 128, estrutura completa
2
3 clear all
4 colordef white
80 4 Analise de barras inclinadas (trelicas)
! "!!! #!!! $!!! %!!! &!!! '!!!
!"!!!
!&!!
!
&!!
"!!!
"&!!
#!!!
#&!!
$!!!
$&!!
Figura 4.7. Trelica do livro de Logan, pagina 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 trelica 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 sao entao
>> U1
U1 =
0
0
7.14285714285716
-9.03863711864189
5.24707716707241
-16.29649260048689
5.24707716707241
-20.08805255205638
10.49415433414481
0
82 4 Analise de barras inclinadas (trelicas)
3.35129719128766
Como se pode vericar destes resultados o deslocamento vertical do no 4, passa
de cerca de 20 para a estrutura completa para cerca de 15 com as condicoes
de simetria usadas (incorrectas), o que torna a estrutura muito mais rigida,
devido a suposicao de duplo apoio no no 5.
Podemos entao melhorar a condicao de simetria, considerando que o no 1
pode mexer-se em x (gura 4.8). Nao sendo completamente correcto e mais
proximo da realidade da deformada da estrutura.
restringidos
1
2
3
4
50kN
50 kN
3m
2
3
4
5
6
1
Graus de liberdade
Figura 4.8. Trelica do livro de Logan, pagina 128, Opcao melhorada de condicoes
fronteira para simetria
Considere entao o codigo seguinte:
O codigo (logan128melhorado.m) e 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 trelica 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 Analise de barras inclinadas (trelicas)
57 sigma(e)=E/length_element* ...
58 [-cosa -sena cosa sena]*U1(indiceB);
59 end
que produz a deformada da gura 4.9
!!"" " !"" #""" #!"" $""" $!"" %""" %!""
!!""
"
!""
#"""
#!""
$"""
$!""
%"""
Figura 4.9. Trelica do livro de Logan, pagina 128, estrutura com simetria mais
adequada
Os resultados com esta opcao sao os seguintes:
>> U1
U1 =
-5.05076272276106
0
2.09209442009609
-9.23495156295323
0
-17.24438258837926
0
-19.33647700847535
o que produz um deslocamento vertical no no 4 mais adequado (19.33).
4.7 Exemplo de trelica com mola 85
4.7 Exemplo de trelica com mola
Considere-se a estrutura da gura , que contem dois elementos de trelica e
um elemento de mola. Para os elementos de barra, considere-se o modulo de
elasticidade E = 210GPa, area A = 5e 4m
2
. O problema possui 4 nos e tres
elementos. A ideia agora ser a misturar (com atencao aos graus de liberdade de
cada elemento), as matrizes de rigidez dos dois tipos de elementos. Pretende-se
calcular os deslocamentos nodais e as tensoes nos elementos.
3
25kN
10 m
5m
45
o
k=2000kN/m
1
2
3
4
2
1
Figura 4.10. Trelica do livro de Logan, pagina 129
O codigo (logan129.m) e 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 Analise de barras inclinadas (trelicas)
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 e somadanos graus de liberdades 2 e 7,
correspondentes aos movimentos verticais dos nos 1 e 4.
Na gura 4.11 ilustra-se a numeracao dos graus de liberdade.
Os resultados para os deslocamentos do nos 1 sao:
>> U1
U1 =
-1.72413793103448
-3.44827586206897
0
0
0
0
0
4.8 Trelicas tridimensionais 87
(7)
25kN
10 m
5m
45
o
k=2000kN/m
1
2
3
4
2
1
3
(1)
(2)
(3)
(4)
(5)
(6)
Figura 4.11. Trelica do livro de Logan, pagina 129, numeracao dos graus de liber-
dade
e as tensoes nas barras
>> sigma
sigma =
51.20428415488792 -36.20689655172414
Assim, a barra 1 esta em traccao e a barra 2 em compressao.
4.8 Trelicas tridimensionais
Considere-se agora elementos de barra, num contexto tridimensional, con-
forme ilustrado na gura 4.12.
A matriz de rigidez em eixos locais e dada por
K = (
EA
L
)
_

_
C
2
x
C
x
C
y
C
x
C
z
C
2
x
C
x
C
y
C
x
C
z
C
2
y
C
y
C
z
C
x
C
y
C
2
y
C
y
C
z
C
2
z
C
x
C
z
C
y
C
z
C
2
z
C
2
x
C
x
C
y
C
x
C
z
C
2
y
C
y
C
z
simetria C
2
z
_

_
88 4 Analise de barras inclinadas (trelicas)

z
X
Y
Z
x
y
z
1
2
Figura 4.12. Orientacao espacial de trelica tridimensional
onde os cossenos directores sao denidos por
C
x
=
x
2
x
1
L
; C
y
=
y
2
y
1
L
; C
z
=
z
2
z
1
L
executando-se depois uma transformacao de eixos para calcular a matriz
de rigidez e o vector de cargas equivalentes em eixos globais.
4.8.1 Exemplo de tipo trelica 3D
Considere-se o problema ilustrado na gura 4.13, para o qual se elaborou o
programa MATLAB (logan89.m) a seguir descrito.
O codigo (logan89.m) e 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 Trelicas tridimensionais 89
u = v = w = 0
x
y
z
1
4
2
3
v = 0
u = v = w = 0
(1)
(2)
(3)
1000
A
1
= 0.302
A
2
= 0.729
A
3
= 0.187
X
1
= (72, 0, 0)
X
2
= (0, 36, 0)
X
3
= (0, 36, 72)
X
4
= (0, 0, 48)
u = v = w = 0
Figura 4.13. Problema de trelica 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 Analise de barras inclinadas (trelicas)
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 porticos planos
5.1 Introducao
Neste captulo faz-se a analise por elementos nitos de porticos planos, atraves
da combinacao de elementos de barra e de elementos de viga na.
Para situar o problema de forma consistente, apresenta-se em primeiro
lugar a formulacao de viga na, dado que ja foi realizada a formulacao de
barra.
5.2 Formulacao de viga de Bernoulli
Considera-se uma viga na , de comprimento L, sujeita a forcas distribuidas
q, momentos ectores M e cargas pontuais P
i
. Considera-se um material de
modulo de elasticidade E e com uma seccao transversal de area A e momento
de inercia I.
A energia potencial da viga e dada por
=
1
2
_
L
0
EI
_
d
2
w
dx
2
_
2
dx
_
L
0
qwdx

i
P
i
w
i

k
M
k
w

k
(5.1)
onde w corresponde ao deslocamento transversal (echa) da viga, w
i
repre-
senta o deslocamento num ponto discreto i e w

representa a inclinacao da
normal, representada pela primeira derivada do deslocamento.
Tendo em conta uma formulacao de Galerkin, estabelecem-se antes de mais
as equacoes de equilbrio da viga, na forma
dV
dx
= q (5.2)
dM
dx
= V (5.3)
92 5 Vigas de Bernoulli e porticos planos
sendo V o esforco transverso.
Quando se combinam estas duas equacoes, obtem-se uma unica equacao
de equilbrio, dada por
d
2
dx
2
_
EI
d
2
w
dx
2
_
q = 0 (5.4)
Para uma solucao aproximada segundo o metodo de Galerkin, usamos uma
solucao aproximada w, tal que
_
L
0
_
d
2
dx
2
_
EI
d
2
w
dx
2
_
q
_
dx = 0 (5.5)
onde e uma funcao arbitraria que usa as mesmas funcoes de forma de w.
Integrando por partes esta expressao, obtem-se a expressao
_
L
0
EI
d
2
w
dx
2
d
2

dx
2
dx
_
L
0
qdx

i
P
i

k
M
k

k
= 0 (5.6)
5.3 Formulacao de elementos nitos
O elemento nito de viga na, gura 5.1, tem como graus de liberdade em
cada no um deslocamento transversal w e a sua primeira derivada w

=
dw
dx
.
O vector de deslocamentos do elemento e assim
u
T
= [w
1
,
dw
1
dx
, w
2
,
dw
2
dx
] (5.7)
w
2
e
1
2
w

1
w

2
w
1
Figura 5.1. Graus de liberdade da viga de Bernoulli
Dado que o vector de deslocamentos e composto simultaneamente por desloca-
mentos e suas derivadas, ha necessidade de usar funcoes de forma de Hermite,
que satisfazem a continuidade de funcao e de sua inclinacao. Cada funcao de
forma, de ordem c ubica, e representada por
5.3 Formulacao de elementos nitos 93
H
i
= a
i
+b
i
+c
i

2
+d
i

3
, i = 1, 2, 3, 4 (5.8)
As funcoes assim dadas devem satisfazer as condicoes ilustradas na tabela 5.1.
Tabela 5.1. Condicoes a satisfazer para funcoes de Hermite
H1 H

1
H2 H

2
H3 H

3
H4 H

4
=-1 1 0 0 1 0 0 0 0
=1 0 0 0 0 1 0 0 1
Os coecientes a
i
, .., d
i
podem agora ser calculados, atraves da imposicao das
condicoes da tabela 5.1, obtendo-se entao as funcoes de forma de Hermite
H
1
=
1
4
(1 )
2
(2 +) =
1
4
(2 3 +
3
) (5.9)
H
2
=
1
4
(1 )
2
( + 1) =
1
4
(1
2
+
3
) (5.10)
H
3
=
1
4
(1 +)
2
(2 ) =
1
4
(2 + 3
3
) (5.11)
H
4
=
1
4
(1 +)
2
( 1) =
1
4
(1 +
2
+
3
) (5.12)
Usando as funcoes de forma, pode escrever-se a interpolacao para o desloca-
mento transversal, na forma
w() = H
1
w
1
+H
2
_
dw
d
_
1
+H
3
w
2
+H
4
_
dw
d
_
2
(5.13)
A relacao entre as coordenadas cartesianas e naturais e obtida por
x =
1
2
x
1
+
1 +
2
x
2
=
x
1
+x
2
2
+
x
2
x
1
2
(5.14)
sabendo que l
e
= x
2
x
1
, obtem-se
dx
d
=
l
e
2
(5.15)
Pela regra da cadeia obtem-se
dw
d
=
dw
dx
dx
d
=
l
e
2
dw
dx
(5.16)
obtendo-se assim
w() = H
1
u
1
+
l
e
2
H
2
u
2
+H
3
u
3
+
l
e
2
H
4
u
4
(5.17)
ou
94 5 Vigas de Bernoulli e porticos planos
w = Hu (5.18)
sendo
H = [H
1
,
l
e
2
H
2
, H
3
,
l
e
2
H
4
] (5.19)
Sabendo que
dw
dx
=
2
l
e
dw
d
,
d
2
w
dx
2
=
4
l
2
e
d
2
w
d
2
(5.20)
Substituindo w = Hu, obtemos entao
_
d
2
w
dx
2
_
2
= u
T
16
l
4
e
_
d
2
H
d
2
_
T
_
d
2
H
d
2
_
u (5.21)
_
d
2
H
d
2
_
=
_
3
2
,
1 + 3
2
l
e
2
,
3
2
,
1 + 3
2
l
e
2
_
(5.22)
Tendo em conta que dx = l
e
/2d e tomando a energia de deformacao do
elemento
U
e
=
1
2
EI
_
Le
0
_
d
2
w
dx
2
_
2
dx (5.23)
obtemos
U
e
=
1
2
u
T
8EI
l
3
e
_
1
1
_

_
9
4

2
3
8
(1 + 3)l
e

9
4

2
3
8
(1 + 3)l
e
_
1 + 3
4
_
2
l
2
e

3
8
(1 + 3)l
e
1 + 9
2
16
l
2
e
9
4

3
8
(1 + 3)l
e
sim.
_
1 + 3
4
_
2
l
2
e
_

_
du
(5.24)
Sabendo que
_
1
1

2
d =
2
3
,
_
1
1
2d = 0,
_
1
1
d = 2 (5.25)
obtemos
U
e
=
1
2
u
T
K
e
u (5.26)
5.5 Exemplo de viga em exao 95
onde a matriz (simetrica) de rigidez do elemento, K
e
e dada por
K
e
=
EI
l
3
e
_

_
12 6l
e
12 6l
e
4l
2
e
6l
e
2l
2
e
12 6l
e
sim. 4l
2
e
_

_
(5.27)
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
_
le
qwdx =
_
ql
e
2
_
1
1
Hd
_
u (5.28)
Substituindo H e integrando, obtem-se
_
le
qwdx = f
eT
u (5.29)
onde
f
e
=
_
ql
e
2
,
ql
2
e
12
,
ql
e
2
,
ql
2
e
12
_
T
(5.30)
Este vector de carga e equivalente a uma carga nos nos representada na gura
5.2.
5.5 Exemplo de viga em exao
Considere-se a viga de Bernoulli, sujeita a carga distribuida, com apoios sim-
ples ou encastrados, conforme ilustrado na gura 5.4.
O codigo que resolve este problema e listado a seguir. Note-se que contem
a parte de vibracoes livres que so sera tratada mais tarde. Os resultados para
a echa central sao exactos `a setima casa decimal para apoios simples e `a
sexta casa decimal para apoios encastrados.
O codigo (bernoulliBeam.m) e 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 porticos planos
ql/2
e
1
2
q
ql
2
/12 ql
2
/12
ql/2
Figura 5.2. Forcas nos nos correspondentes a carga distribuida no elemento de viga
de Bernoulli
exacto =
5PL
4
384EI
L = 1
P = 1()
EI = 1
exacto =
PL
4
384EI
L = 1
P = 1()
EI = 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 exao 97
Figura 5.4. Resultados para SS: 0.0130208(exacto e numerico); Resultados para
CC: 0.002604(exacto e numerico)
98 5 Vigas de Bernoulli e porticos 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 Portico plano
Consideram-se agora porticos planos, cujo elemento e representado na gura
5.5, onde se combinam elementos de barra e elementos de viga indicados an-
teriormente.
O vector de deslocamentos nodais global e o seguinte
u
T
= [u
1
, u
2
, u
3
, u
4
, u
5
, u
6
] (5.31)
Dene-se tambem um sistema de coordenadas locais, com cosenos directores
l, m, relativos a um angulo entre os eixos x

e x. O vector de deslocamentos
neste sistema local e dado por
5.6 Portico plano 99
Figura 5.5. Elemento de portico plano
u

T
= [u

1
, u

2
, u

3
, u

4
, u

5
, u

6
] (5.32)
Lembrando que u

3
= u
3
, u

6
= u
6
, podemos obter a matriz de transformacao
local-global, na forma
u

= Lu (5.33)
L =
_

_
l m 0 0 0 0
m l 0 0 0 0
0 0 1 0 0 0
0 0 0 l m 0
0 0 0 m l 0
0 0 0 0 0 1
_

_
(5.34)
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 portico plano, em coordenadas locais
100 5 Vigas de Bernoulli e porticos planos
K
e
=
_

_
EA
L
0 0
EA
L
0 0
12EI
L
3
6EI
L
2
0
12EI
L
3
6EI
L
2
4EI
L
0
6EI
L
2
2EI
L
EA
L
0 0
12EI
L
3

6EI
L
2
sim.
4EI
L
_

_
(5.35)
A matriz de rigidez em coordenadas globais e obtida, tendo em conta a energia
de deformacao no elemento,
U
e
=
1
2
u

T
K

=
1
2
u
T
L
T
K

Lu = u
T
Ku (5.36)
onde
K = L
T
K

L (5.37)
Caso haja forcas distribuidas no elemento, para alem das forcas axiais, podem
calcular-se as forcas nodais equivalentes em coordenadas locais, `a imagem do
que foi feito atras e transforma-las para coordenadas globais, na forma
f = L
T
f

(5.38)
5.7 Exemplo de portico plano
Considere-se o problema ilustrado na gura 5.6, onde um portico plano, en-
castrado nos apoios e carregado com uma forca pontual horizontal e uma forca
uniformemente distribuida vertical.
Tendo em conta o programa MATLAB que se apresenta a seguir, obtem-se
um deslocamento segundo x no no 1 de 0.092 in. Lembrar que o vector de
forcas equivalentes a forca distribuida e de
f
T
= [0, 3000, 72000, 0, 3000, 72000]
tendo em conta a relacao (de 1 para 12) entre ft. e in..
O resultado obtido pelos elementos nitos coincide com a solucao analitica.
A numeracao usada no codigo MATLAB e indicada na gura 5.7.
O resultado completo obtido para os deslocamentos e o seguinte
5.7 Exemplo de portico plano 101
3
3000 lb
500 lb/ft
8ft
12 ft
1
2
3 4
y
x
1
2
Figura 5.6. Portico plano sujeito a duas forcas
12
2
4
y
x
1
2
3
4
5
6
7 8
9
10
11
Figura 5.7. Numeracao global para o exemplo de portico plano
102 5 Vigas de Bernoulli e porticos 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 portico plano
O codigo (porticoPlano1.m) e 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 Portico 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 Portico plano inclinado
Considere-se o portico plano indicado na gura 5.8, onde o material tem um
modulo de elasticidade E = 30000, area A = 100, momento de inercia I =
1000, com dimensoes indicadas na gura, sujeita a uma forca uniformemente
distribuida de 12000.
O codigo que resolve este problema e listado a seguir ( porticoplanoReddy-
pag184Smanual.m). Os resultados para os deslocamentos nao prescritos sao
U =
0.0033
-0.0097
-0.0033
O codigo (porticoPlano2.m) e a seguir apresentado:
104 5 Vigas de Bernoulli e porticos planos
45
0
y
x
12000
480
360
1
2
3
1
2
Figura 5.8. Portico plano inclinado sujeito a forca 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 Portico plano inclinado 105
33 plot_mesh(node+5000*[U(us) U(vs)],element,L2,g.-);
34 plot_mesh(node,element,L2,b.-);
6
Analise de porticos tridimensionais
6.1 Introducao
O elemento de portico tridimensional de 2 nos considera tres deslocamentos
(translaccoes) e tres rotacoes em torno dos eixos locais. Considere-se o ele-
mento da gura 6.1 com eixos locais e globais, com angulos
Xx
,
Y x
e
Zx
,
medidos dos eixos globais X, Y e Z, relativamente ao eixo local x.
L
X
Y
Z
x
j
i
Figura 6.1. Elemento de portico tridimensional de 2 nos
108 6 Analise de porticos tridimensionais
6.2 Matriz de rigidez e vector de forcas
A matriz de rigidez no sistema local e obtida por
K
e
=
2
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
EA
L
0 0 0 0 0
EA
L
0 0 0 0 0
12EIz
L
3
0 0 0
6EIz
L
2
0
12EIz
L
3
0 0 0
6EIz
L
2
12EIy
L
3
0
6EIy
L
2
0 0 0
12EIy
L
3
0
6EIy
L
2
0
GJ
L
0 0 0 0 0
GJ
L
0 0
4EIy
L
0 0 0
6EIy
L
2
0
2EIy
L
4EIz
L
0
6EIz
L
2
0 0 0
2EIz
L
EA
L
0 0 0 0 0
12EIz
L
3
0 0 0
6EIz
L
2
12EIy
L
3
0
6EIy
L
2
GJ
L
0 0
4EIy
L
0
sim.
4EIz
L
3
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
(6.1)
A matriz de rigidez no sistema global e obtida por transformacao na forma
K = R
T
K

R
onde a matriz de rotacao e dada por
R =
_

_
r 0 0 0
0 r 0 0
0 0 r 0
0 0 0 r
_

_
(6.2)
sendo
r =
_
_
C
Xx
C
Y x
C
Zx
C
Xy
C
Y y
C
Zy
C
Xz
C
Y z
C
Zz
_
_
(6.3)
onde
C
Xx
= cos
Xx
6.3 Exemplo 1 109
Verica-se que o elemento de portico tridimensional de dois nos tem
seis graus de liberdade por no, pelo que a matriz de rigidez global assem-
bladapossui uma dimensao 6n, sendo n o n umero de nos do problema.
Depois de calcular os deslocamentos nodais e possivel calcular as reaccoes
nos nos de apoio, fazendo
F = KU (6.4)
onde K e U sao a matriz de rigidez da estrutura e o vector de deslo-
camentos nodais da estrutura, respectivamente. Note-se que estamos apenas
interessados nas reaccoes dos apoios, por isso deve usar-se o comando F(dofs),
sendo dofs os graus de liberdade prescritos.
Calculados os deslocamentos nodais e tambem possivel calcular as forcas
em cada elemento, atraves da transformacao de eixos
f
e
= k
e
RU
e
(6.5)
6.3 Exemplo 1
Considere o problema, ilustrado na gura 6.2, no qual se considera E = 210
GPa, G = 84 GPa, A = 2 10
2
m
2
, I
y
= 10 10
5
m
4
, I
z
= 20 10
5
m
4
,
J = 5 10
5
m
4
, o programa portico3D1.m a seguir ilustrado, calcula os
deslocamentos nodais, reac coes nos apoios e forcas em cada elemento.
3m
Y
X
Z
20 kN
10 kN
1
2
3
4
4m
3m
Figura 6.2. Exemplo de problema de portico tridimensional
O codigo (portico3D1.m) e 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 Analise de porticos 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 Analise de porticos 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 Analise de porticos 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 gura 6.3, no qual se considera E = 210
GPa, G = 84 GPa, A = 2 10
2
m
2
, I
y
= 10 10
5
m
4
, I
z
= 20 10
5
m
4
,
J = 5 10
5
m
4
, o programa portico3D2.m a seguir ilustrado, calcula os
deslocamentos nodais, reac coes nos apoios e forcas em cada elemento.
O codigo (portico3D2.m) e 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
15kN
X
Z
Y
1
2
3
4
5
6
7
8
4m
4m
5m
Figura 6.3. Exemplo de problema de portico 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 Analise de porticos 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 Analise de porticos 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 Analise de porticos 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
Analise de grelhas
7.1 Introducao
Apresenta-se agora a analise por elementos nitos de grelhas. Uma grelha e
uma estrutura tipo portico plano, mas onde as forcas sao aplicadas normais
ao seu plano, ao contrario do que acontece com os porticos planos onde as
forcas sao aplicadas no seu plano. Uma grelha tipica e ilustrada na gura 7.1.
F
4
y
x
z
F
1
F
2
F
3
Figura 7.1. Grelha tipica
Considera-se para cada no um deslocamento transversal e duas rotacoes
segundo os eixos na direcc ao do plano (X e Z, respectivamente, conforme
ilustrado na gura 7.2. A matriz de rigidez do elemento de grelha em eixos
locais e dada por
122 7 Analise de grelhas
k
e
=
_

_
12EI
l
3
e
0
6EI
l
2
e

12EI
l
3
e
0
6EI
l
2
e
0
GJ
le
0 0
GJ
le
0
6EI
l
2
e
0
4EI
le

6EI
l
2
e
0
2EI
le

12EI
l
3
e
0
6EI
l
2
e
12EI
l
3
e
0
6EI
l
2
e
0
GJ
le
0 0
GJ
le
0
6EI
l
2
e
0
2EI
le

6EI
l
2
e
0
4EI
le
_

_
(7.1)
onde E e o modulo de elasticidade, I o momento de inercia `a exao, J o
momento de inercia polar e G o modulo de corte, sendo ainda L = l
e
o
comprimento do elemento.
1
y
z
2
x
L

z1

x1

x2
w
1
w
2

z2
Figura 7.2. Elemento de grelha
Considere-se C = cos e S = sen, sendo o angulo entre o eixo X e
o eixo x, contado no sentido contrario ao ponteiro do relogio. A matriz de
rotacao e dada por
R =
_

_
1 0 0 0 0 0
0 C S 0 0 0
0 S C 0 0 0
0 0 0 1 0 0
0 0 0 0 C S
0 0 0 0 S C
_

_
(7.2)
A matriz de rigidez em eixos globais e entao dada por
K
e
= R
T
k
e
R (7.3)
Verica-se que o elemento de grelha de dois nos tem seis graus de liberdade,
pelo que a matriz de rigidez global assembladapossui uma dimensao 3n,
sendo n o n umero de nos do problema.
Depois de calcular os deslocamentos nodais e possivel calcular as reaccoes
nos nos de apoio, fazendo
F = KU (7.4)
7.2 Exemplo 1 123
onde K e U sao a matriz de rigidez da estrutura e o vector de deslo-
camentos nodais da estrutura, respectivamente. Note-se que estamos apenas
interessados nas reaccoes dos apoios, por isso deve usar-se o comando F(dofs),
sendo dofs os graus de liberdade prescritos.
Calculados os deslocamentos nodais e tambem possivel calcular as forcas
em cada elemento, atraves da transformacao de eixos
f
e
= k
e
RU
e
(7.5)
7.2 Exemplo 1
Considere-se o problema da gura 7.3. A grelha e constituida por duas barras,
com geometria, forcas e apoios ilustrados na gura. Dados E = 210 GPa,
G = 84 GPa, I = 20 10
5
m
4
, J = 5 10
5
m
4
, o programa GRID1.M, a
seguir ilustrado, calcula os deslocamentos nodais, reaccoes nos apoios e forcas
em cada elemento.
(2)
X
Y
Z
3m
3m
4m
10 kN
1
2
3
(1)
Figura 7.3. Exemplo 1
O codigo (grid1.m) e 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 Analise 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 e 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 Analise de grelhas
5.0000 -5.0000
0.8876 -0.8876
-24.3343 0.6657
7.3 Exemplo 2
Considere-se o problema da gura 7.4. A grelha e constituida por tres barras,
com geometria, forcas e apoios ilustrados na gura. Dados E = 210 GPa,
G = 84 GPa, I = 2010
5
m
4
, J = 510
5
m
4
, o programa grid2.m, a seguir
ilustrado, calcula os deslocamentos nodais, reaccoes nos apoios e forcas em
cada elemento.
Y
X
Z
4m
4m
P
1
2
3
4
Figura 7.4. Exemplo 2
O codigo (grid2.m) e 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 Analise de grelhas
66 end
67
68 disp(forcas nos elementos )
69 EF
70
O resultado obtido e 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
Formulacao de elementos de viga Timoshenko
8.1 Introducao
A formulacao de elementos de viga e 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 e mais geral, embora possa produzir efeitos de re-
tencao de corte (locking), com o seguinte campo de deslocamentos
u = z; w = w
0
(8.1)
onde z representa a coordenada na direccao da espessura, uma rotacao da
normal ao eixo medio da viga e w
0
o deslocamento transversal (echa) dum
qualquer ponto do eixo da viga.
8.3 Campo de deformacoes
As deformacoes de exao e corte sao obtidas por

xx
= z
d
dx
;
xz
= +
dw
0
dx
(8.2)
8.4 Campo de tensoes
As tensoes de exao e corte sao entao obtidas por
132 8 Formulacao de elementos de viga Timoshenko

xx
= E
xx
= zE
d
dx
;
xz
= kG
xz
= kG
_
+
dw
0
dx
_
(8.3)
onde k e um factor de correccao ao corte (5/6 habitualmente).
8.5 Equacoes de equilbrio
Aplicando o princpio dos trabalhos virtuais ao elemento de viga, obtem-se
_
V
dV =
_
L
0
pwdx +
_
L
0
Mdx (8.4)
ou
EI
_
L
0
d
dx
d
dx
dx+GAk
_
L
0
_
dw
dx

__
dw
dx

_
dx =
_
L
0
pwdx+
_
L
0
Mdx
(8.5)
onde p e M sao as cargas transversais e momentos por unidade de compri-
mento.
8.6 Elementos isoparametricos
Podemos agora usar uma interpolacao isoparametrica (para um elemento de
3 nos, por exemplo, ilustrado na gura 8.1), na forma
w =
3

i=1
N
i
w
i
; =
3

i=1
N
i

i
(8.6)

w
1
w
2
w
3

2

3
Figura 8.1. Elemento de viga Timoshenko de 3 nos
ou
w = N
w
u; = N

u (8.7)
8.7 Programa MATLAB 133
e
dw
dx
= B
w
u;
d
dx
= B

u (8.8)
onde
u
T
=
_
w
1
w
2
w
3

1

2

3

(8.9)
e
N
w
=
_
N
1
N
2
N
3
0 0 0

(8.10)
e
N

=
_
0 0 0 N
1
N
2
N
3

(8.11)
bem como
B
w
= J
1
_
dN
1
d
dN
2
d
dN
3
d
0 0 0
_
(8.12)
e
B

= J
1
_
0 0 0
dN
1
d
dN
2
d
dN
3
d
_
(8.13)
onde J =
dx
d
. Para um elemento simples, podemos encontrar a matriz de
rigidez e o vector de forcas nodais consistentes como
K = EI
_
1
1
B
T

det Jd +GAk
_
1
1
(B
w
N

)
T
(B
w
N

) det Jd
(8.14)
e
R =
_
1
1
N
T
w
pdet Jd +
_
1
1
N
T

Mdet Jd (8.15)
Caso a matriz de massa seja necessaria, obtem-se como
M =
_
1
1
_
N
w
N

_
T
_
_
bh 0
0
bh
3
12
_
_
_
N
w
N

_
det Jd (8.16)
8.7 Programa MATLAB
Nesta seccao apresenta-se a listagem dum programa em MATLAB para a
analise linear de vigas Timoshenko em exao. Em particular, este codigo ana-
lisa uma viga simplesmente apoiada em exao, sujeita a carga uniforme P,
com comprimento L, conforme ilustrado na gura 8.2. A solucao analitica
(para viga na) e
134 8 Formulacao de elementos de viga Timoshenko
w
max
=
5PL
4
384EI
(8.17)
sendo E o modulo de elasticidade e I o momento de inercia. Verica-se que o
maximo valor do deslocamento, obtido por
max(U(ws))
e 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 e calculada em duas etapas, uma correspondente `a contribuicao de
exao e outra correspondente `a contribuicao de corte, atendendo `a necessidade
de realizar a integracao numerica de forma distinta.
2L
P
Figura 8.2. Viga em exao, sujeita a carga uniformemente distribuida
Na gura 8.3 ilustra-se a deformada da viga em exao.
O codigo (VigaTimoshenko.m) e 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
0 0.5 1 1.5 2 2.5 3 3.5 4
100
90
80
70
60
50
40
30
20
10
0
Figura 8.3. Viga em exao, sujeita a carga uniformemente distribuida: ilustracao
da deformada dos nos (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 Formulacao 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 tensao
9.1 Introducao
Consideram-se aqui elementos bidimensionais para estado plano de tensao
(problemas onde a espessura e desprezavel em relacao `as outras coordenadas).
Considere-se uma placa na, com espessura h, conforme ilustrado na gura
9.1. A direccao normal `a placa z, e tambem chamada direccao transversal `a
placa. Consideram-se ainda os dois eixos globais x, y. Considera-se que a placa
esta em estado plano de tensao ou estado de membrana, quando:
todas as cargas aplicadas actuam no plano medio da placa, sendo ainda
simetricas relativamente a este
todas as condicoes de apoio sao simetricas relativamente ao plano medio
os deslocamentos do plano, as deformacoes e as tensoes sao consideradas
uniformes relativamente ao plano medio
as tensoes normal e de corte segundo a direccao z sao desprezadas, por
serem muito pequenas quando comparadas com as outras componentes.
Considera-se tambem que o material e homogeneo, sendo a placa assim
chamada de transversalmente isotropica.
Considera-se entao para efeitos de desenvolvimento do problema variaci-
onal e do problema de fronteira um plano medio, com um dominio e uma
fronteira , conforme ilustrado na gura 9.2. Considera-se que todas as enti-
dades relacionadas com a terceira dimensao sao funcoes de x e de y, integradas
na direccao da espessura.
A geometria do problema e denida pela sua fronteira , a espessura e
representada por h, o material e isotropico e as forcas de volume (por exemplo
peso da placa) sao consideradas actuantes no interior do domnio . As forcas
tractivas actuantes nas faces sao referidas ao plano medio da placa.
9.2 Variaveis
As variaveis do problema s ao os seus deslocamentos
140 9 Estado plano de tensao
z
h
P1
P2
P3
P4
P5
x
y
Figura 9.1. Estado plano de tensao: cargas aplicadas
x
y

Figura 9.2. Estado plano de tensao: plano medio, domnio () e fronteira ()


u(x, y) =
_
u(x, y)
v(x, y)
_
(9.1)
enquanto que as deformacoes sao obtidas por derivacao dos deslocamentos
(x, y) =
_
_

xy
_
_
=
_

_
u
x
v
y
u
y
+
v
x
_

_
(9.2)
Tendo em conta as equacoes da elasticidade linear, podem obter-se as
tensoes na forma
9.4 Energia potencial 141
=
_
_

xy
_
_
=
_

_
E
1
2
E
1
2
0
E
1
2
E
1
2
0
0 0 G =
E
2(1 +)
_

_
_
_

xy
_
_
(9.3)
onde E e o modulo de elasticidade do material e o coeciente de Poisson.
As equacoes de equilibrio estatico deste problema sao obtidas por reducao das
equacoes de equilibrio tridimensional a duas dimensoes, na forma

x
x
+

xy
y
+b
x
= 0 (9.4)

xy
x
+

y
y
+b
y
= 0 (9.5)
sendo b
x
, b
y
forcas de volume aplicadas em todo o corpo.
9.3 Condicoes fronteira
As condicoes fronteira (essenciais) sao aplicadas em termos dos deslocamentos,
na fronteira
u
, na forma
u = u (9.6)
ou em termos de traccoes superciais (naturais) na fronteira
t
, na forma

n
=

t (9.7)
sendo

t as traccoes de supercie por unidade de area e
n
o vector de
tensao normal `a placa,
As componentes de
n
em coordenadas cartesianas podem ser obtidas por
formulas de Cauchy
=
_

x
n
x
+
xy
n
y

xy
n
x
+
y
n
y
_
=
_
n
x
0 n
y
0 n
y
n
x
_
_
_

xy
_
_
(9.8)
9.4 Energia potencial
Pode escrever-se a energia potencial na forma habitual
= U W (9.9)
142 9 Estado plano de tensao
sendo U a energia elastica de deformacao, obtida por
U =
1
2
_

h
T
d =
1
2
_

h
T
Cd (9.10)
sendo C a matriz constitutiva elastica, obtida por
C =
_

_
E
1
2
E
1
2
0
E
1
2
E
1
2
0
0 0
E
2(1 +)
_

_
(9.11)
A energia produzida pelas forcas externas e dada por
W =
_

hu
T
bd +
_
t
hu
T

td (9.12)
9.5 Equacoes de elementos nitos
Considerando uma discretizacao de elementos nitos, denindo um dominio
para o elemento
e
e uma fronteira do elemento
e
, o elemento nito generico
com n nos possui 2n graus de liberdade que podem ser organizados de muitas
formas, como por exemplo
u
e
=
_
u
1
v
1
u
2
v
2
... u
n
v
n

T
(9.13)
9.6 Interpolacao de deslocamentos
O campo de deslocamentos u em cada elemento e agora interpolado atraves
dos deslocamentos nodais, usando uma interpolacao identica para as duas
componentes de deslocamento, na forma
u =
n

i=1
N
e
i
u
i
; v =
n

i=1
N
e
i
v
i
(9.14)
onde N
e
i
sao as funcoes de forma do elemento. Esta expressao pode obter-se
na forma matricial como
u =
_
_
N
e
1
0 0 N
e
2
0 ... N
e
n
0
0 N
e
1
0 0 N
e
2
0 ... N
e
n
_
_
u
e
= Nu
e
(9.15)
9.8 Equacoes para rigidez e forca 143
Derivando este campo de deslocamentos, podemos obter o vector de de-
formacoes, na forma
=
_

_
N
e
1
x
0
N
e
2
x
0 ...
N
e
n
x
0
0
N
e
1
y
0
N
e
2
y
0 ...
N
e
n
y
N
e
1
y
N
e
1
x
N
e
2
y
N
e
2
x
...
N
e
n
y
N
e
n
x
_

_
u
e
= Bu
e
(9.16)
onde B representa a matriz de deformacoes-deslocamentos, obtida apenas
por derivadas das funcoes de forma, com dimensao 32n. Esta matriz tambem
e util, porque permite calcular, em cada elemento, o vector de tensoes na forma
= C = CBu
e
.
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
U
e
=
1
2
_

e
h
T
d
e
=
1
2
_

e
h
T
Cd
e
(9.18)
e
W
e
=
_

e
hu
T
bd
e
+
_

e
hu
T

td
e
(9.19)
Note-se que aqui
t
foi tomada identica, no elemento, a
e
, como con-
sequencia do facto das condicoes fronterira essenciais (em deslocamentos) se-
rem aplicadas apos a assemblagem, a uma estrutura livre.
9.8 Equacoes para rigidez e forca
Podemos agora introduzir as equacoes de deslocamentos, deformacoes e tensoes
na energia potencial do elemento, obtendo-se uma forma quadratica

e
=
1
2
u
eT
K
e
u
e
u
eT
f
e
(9.20)
onde a matriz de rigidez do elemento e obtida por
144 9 Estado plano de tensao
K
e
=
_

e
hB
T
CBd
e
(9.21)
e o vector de forcas nodais por
f
e
=
_

e
hN
T
bd
e
+
_

e
hN
T

td
e
(9.22)
9.9 Elementos quadrilateros
Considere-se o elemento quadrilatero, conforme ilustrado na gura 9.4. O ele-
mento possui 4 nos, denidos em coordenadas locais (, ) no quadrado biu-
nitario. Pretende-se relacionar estas coordenadas locais com as coordenadas
reais (x, y) atraves duma representacao isoparametrica
x =
n

i=1
N
i
x
i
; y =
n

i=1
N
i
y
i
(9.23)
sendo N
i
as funcoes de forma da familia de Lagrange, obtidas por
N
i
(, ) = l()l() (9.24)
onde
l() =
n

j=1,j=i

j

i

j
(9.25)
Assim, pode obter-se para o elemento quadrilatero de 4 nos as funcoes de
forma
N
1
(, ) = l
1
()l
1
() =
1
4
(1 )(1 ) (9.26)
N
2
(, ) = l
2
()l
1
() =
1
4
(1 +)(1 ) (9.27)
N
3
(, ) = l
2
()l
2
() =
1
4
(1 +)(1 +) (9.28)
N
4
(, ) = l
1
()l
2
() =
1
4
(1 )(1 +) (9.29)
Note-se que estas funcoes de forma sao obtidas por multiplicacao das
funcoes de Lagrange de elementos de linha de 2 nos, em cada direccao (-
gura 9.3).
Outros elementos quadrilateros podem ser usados, por exemplo o elemento
de 9 nos de Lagrange, cujas funcoes de forma sao obtidas por
N
1
(, ) =
1
4
( 1)( 1) (9.30)
9.9 Elementos quadrilateros 145

1 2
3
4
1 2
1
2
=
x

Figura 9.3. Elemento de 4 n os: funcoes de interpolacao bidimensionais obtidas por


multiplicacao de funcoes de forma unidimensionais

e
1 2
3
4

Elemento de
referencia
1
2
3
4
(1,-1)
(x2, y2)
Elemento real
x
y
Figura 9.4. Elemento de 4 nos e ordenacao de nos. Elemento parente e elemento
real; transformaacao de coordenadasl
146 9 Estado plano de tensao
para um no de canto,
N
5
(, ) =
1
2
(1
2
)( 1) (9.31)
para um no de meio lado e
N
9
(, ) = (1
2
)(1
2
) (9.32)
para o no central.
Note-se que:
os elementos podem ter fronteiras curvas
os elementos podem ter qualquer n umero de nos entre o mnimo e o
maximo
os elementos devem ter geometria o mais rectangular possvel (2D)
os nos centrais nos lados devem estar o mais proximo dos pontos medios
Os deslocamentos nos elementos podem agora ser interpolados da mesma
forma que para as coordenadas, na forma
u =
n

i=1
N
i
u
i
; v =
n

i=1
N
i
v
i
(9.33)
onde u, v sao os deslocamentos locais em qualquer ponto do elemento e
u
i
, v
i
; i = 1, ..., n sao os correspondentes deslocamentos nos nos.
Tendo em conta a necessidade de encontrar as derivadas

x
,

y
, na forma

x
=

x
+

x
(9.34)
e assim, sucessivamente, usa-se a regra da cadeia para se obter
_

_
=
_

_
x

_
_

y
_

_
(9.35)
ou em forma matricial

= J

x
(9.36)
onde J e um operador Jacobiano relacionando as derivadas das coordenadas
naturais com as derivadas das coordenadas globais. Pode tambem obter-se

x
= J
1

(9.37)
9.9 Elementos quadrilateros 147
supondo que J
1
exista, o que sera verdade se houver uma relacao injectiva
entre as coordenadas locais e naturais do elemento. Em elementos muito dis-
torcidos, podem ocorrer singularidades nesta transformacao do jacobiano.
Pode entao calcula-se a matriz de deformacao-deslocamento, atraves da
matriz B, com
= B u (9.38)
onde u representa o vector dos deslocamentos nodais. A matriz de rigidez do
elemento, correspondente aos graus de liberdade locais e obtida como
K =
_
V
B
T
CBdV (9.39)
Note-se que B e dependente de , , as coordenadas naturais em 2D do ele-
mento. Assim, o elemento de volume dV pode ser expresso em funcao de , ,
como
dV = h detJdrds (9.40)
onde detJ e o determinante da matriz Jacobiana e h a espessura da placa.
O calculo da matriz de rigidez e habitualmente feita numericamente, como
iremos ver mais adiante em pormenor. No entanto, podera indicar-se desde ja
que
K = h
_
A
Fdd (9.41)
onde F = B
T
CBdetJ sendo a integracao realizada em termos de coordenadas
naturais do elemento. A matriz de rigidez e entao calculada como
K =

i,j,k
F
i,j

i,j
(9.42)
onde F
i,j
representa a matriz F nos pontos (
i
,
j
) e
i,j
e uma dada constante
que depende dos valores de (
i
,
j
). Os pontos de integracao (
i
,
j
) da funcao e
os correspondentes pesos
i,j
sao escolhidos para se obter a maxima qualidade
na integracao, que aumenta com o n umero de pontos de integracao.
Escrevendo agora
u(, ) = N u (9.43)
onde N e a matriz de funcoes de interpolacao (funcoes de forma), obtendo-se
agora as restantes matrizes de elementos nitos:
M =
_
V
N
T
NdV (9.44)
R
B
=
_
V
N
T
f
B
dV (9.45)
148 9 Estado plano de tensao
R

=
_
S
N
T
f
S
dS (9.46)
de forma semelhante `a matriz de rigidez, por exemplo, recorrendo a
F = N
T
f
B
detJ (9.47)
no calculo de R
B
.
9.10 Integracao numerica em duas dimensoes
Tal como na integracao numerica a uma dimensao, o objectivo da integracao
numerica a duas dimensoes e a solucao dos integrais da matriz de rigidez,
vector de forcas nodais equivalente e matriz de massa, atraves da quadratura
de Gauss, embora se pudesse usar outra quadratura, como por exemplo, a de
Newton-Cotes.
O integral duma funcao em coordenadas naturais pode entao ser substi-
tuido por dois somatorios contendo produtos dos pesos de Gauss e funcao nos
pontos de Gauss respectivos, atraves de
_
1
1
_
1
1
F(, )dd =
p

i=1
q

j=1
w
i
w
j
F(
i
,
j
) (9.48)
onde p, q sao o n umero de pontos na direccao , , respectivamente e w
i
, w
j
os
respectivos pesos, tal como vimos anteriormente na integracao unidimensional,
conforme ilustrado na gura 9.5, para varias ordens de integracao.
Figura 9.5. Pontos de integracao (pontos de Gauss) para elementos quadrilateros
bidimensionais
Em particular para a matriz de rigidez, podemos calcular o integral da
seguinte forma
K
e
=
_

e
hB
T
CBd
e
=
_
1
1
_
1
1
hB
T
CBdetJdd (9.49)
9.10 Integracao numerica em duas dimensoes 149
9.10.1 Elementos triangulares (formados por colapso de elementos
quadrilateros
Uma das formas mais obvias de gerar elementos triangulares e a de colapsar
elementos quadrilateros para a forma triangular, como se ilustra na gura 9.6.
Partindo das funcoes de forma do elemento de 4 nos,

1 2
3 4
2 cm
2 cm
y
x
y
x
2 cm
3 4
1,2

Figura 9.6. Degeneracao de elementos quadrilateros em elementos triangulares


x =
1
4
(1+)(1+)x
1
+
1
4
(1)(1+)x
2
+
1
4
(1)(1)x
3
+
1
4
(1+)(1)x
4
(9.50)
y =
1
4
(1+)(1+)y
1
+(1)(1+)y
2
+
1
4
(1)(1)y
3
+(1+)(1)y
4
(9.51)
e colapsando (x
1
= x
2
; y
1
= y
2
) obtem-se
x =
1
4
(1 )(1 +)x
2
+
1
4
(1 )(1 )x
3
+
1
4
(1 +)(1 )x
4
(9.52)
y =
1
2
(1 +)y
2
+
1
4
(1 )(1 )y
3
+
1
4
(1 +)(1 )y
4
(9.53)
Com
x =
1
2
(1 +)(1 ), y = 1 + (9.54)
x

=
1
2
(1 ),
y

= 0 (9.55)
x

=
1
2
(1 +),
y

= 1 (9.56)
150 9 Estado plano de tensao
J =
1
2
_
_
1 0
1 2
_
_
; J
1
=
1
1
_
_
2 0
1 + 1
_
_
(9.57)
Usando o conceito de isoparametrismo, obtem-se
u =
1
4
(1 )(1 +)u
2
+
1
4
(1 )(1 )u
3
+
1
4
(1 +)(1 )u
4
(9.58)
v =
1
2
(1 +)v
2
+
1
4
(1 )(1 )v
3
+
1
4
(1 +)(1 )v
4
(9.59)
u

=
1
4
(1 )u
3
+
1
4
(1 )u
4
(9.60)
v

=
1
4
(1 )v
3
+
1
4
(1 )v
4
(9.61)
u

=
1
2
u
2

1
4
(1 )u
3
+
1
4
(1 +)u
4
(9.62)
v

=
1
2
v
2

1
4
(1 )v
3
+
1
4
(1 +)v
4
(9.63)
_

y
_

_
= J
1
_

_
(9.64)
Assim,
_

_
u
x
u
y
_

_
=
1
1
_
_
2 0
1 + 1
_
_
_
_
0 0
1
4
(1 ) 0
1
4
(1 ) 0
1
2
0
1
4
(1 ) 0
1
4
(1 +) 0
_
_
_

_
u
1
v
1
u
2
v
2
u
3
v
3
u
4
v
4
_

_
(9.65)
ou
9.10 Integracao numerica em duas dimensoes 151
_

_
u
x
u
y
_

_
=
_
_
0 0
1
2
0
1
2
0
1
2
0
1
2
0 0 0
_
_
_

_
u
1
v
1
u
2
v
2
u
3
v
3
u
4
v
4
_

_
(9.66)
Da mesma forma se obtem
_

_
v
x
v
y
_

_
=
_
_
0 0 0
1
2
0
1
2
0
1
2
0
1
2
0 0
_
_
_

_
u
1
v
1
u
2
v
2
u
3
v
3
u
4
v
4
_

_
(9.67)
obtendo-se assim
=
_

_
0 0
1
2
0
1
2
0
0
1
2
0
1
2
0 0
1
2
0
1
2

1
2
0
1
2
_

_
_

_
u
1
v
1
u
2
v
2
u
3
v
3
u
4
v
4
_

_
(9.68)
O vector de deformacao e entao constante, para quaisquer valores de u
2
, v
2
, ..., v
4
e independente de e (elemento triangular de deformacao constante). Note-
se que em, = 1, a matriz J e singular. Assim, devem calcular-se as tensoes
(alias constantes no elemento) no centro do elemento ( = = 0).
9.10.2 Elementos triangulares baseados em coordenadas de area
Para alem do metodo do colapso, podemos construir elementos triangulares
atraves de coordenadas de area. Para o triangulo da gura 9.7, a posicao dum
ponto P, do interior do elemento, com coordenadas x e y e denida pelas
coordenadas de area
L
1
=
A
1
A
; L
2
=
A
2
A
; L
3
=
A
3
A
(9.69)
De (9.69) encontra-se L
1
+L
2
+L
3
= 1. As coordenadas cartesianas sao obtidas
por
152 9 Estado plano de tensao
Coordenadas cartesianas
P
1
2
3 (x3, y3)
(x1, y1)
(x2, y2)
x
y
Area A2 Area
A1
Area A3

(0, 1)
(1, 0) (0, 0)
1 2
3 ( = 1)
( = 1)
Coordenadas isoparametricas
Figura 9.7. Descricao dum elemento triangular com 3 nos
x = L
1
x
1
+L
2
x
2
+L
3
x
3
; y = L
1
y
1
+L
2
y
2
+L
3
y
3
(9.70)
Podemos entao escrever o sistema
_
_
1
x
y
_
_
=
_
_
1 1 1
x
1
x
2
x
3
y
1
y
2
y
3
_
_
_
_
L
1
L
2
L
3
_
_
(9.71)
que produz
L
i
=
1
2A
(a
i
+b
i
x +c
i
y), i = 1, 2, 3 (9.72)
onde
2A = x
1
y
2
+x
2
y
3
+x
3
y
1
y
1
x
2
y
2
x
3
y
3
x
1
(9.73)
e
a
1
= x
2
y
3
y
2
x
3
; a
2
= x
3
y
1
y
3
x
1
; a
3
= x
1
y
2
y
1
x
2
(9.74)
b
1
= y
2
y
3
; b
2
= y
3
y
1
; b
3
= y
1
y
2
(9.75)
c
1
= x
3
x
2
; c
2
= x
1
x
3
; c
3
= x
2
x
1
(9.76)
Temos entao a seguinte interpolacao
u =
3

i=1
N
i
u
i
; v =
3

i=1
N
i
v
i
(9.77)
x =
3

i=1
N
i
x
i
; y =
3

i=1
N
i
y
i
(9.78)
onde N
i
= L
i
, i = 1, 2, 3. Em vez de se usarem funcoes de forma em termos de
x e y, podem usar-se as fun coes de forma em termos de coordenadas naturais
9.11 Problema: placa em traccao 153
N
1
= 1 ; N
2
= ; N
3
= (9.79)
A integracao em varia entre 0 e 1, enquanto que a integracao em varia
entre 0 e 1 .
9.11 Problema: placa em traccao
Considera-se um problema duma viga na (em estado plano de tensao), sujeita
a carga distribuida uniforme nos seus extremos. Na gura 9.8 apresenta-se a
ilustracao do problema, enquanto que na gura 9.9 se ilustram as condicoes
fronteira. Na gura 9.10 apresenta-se a malha de elementos nitos. Na gura
9.11 e na gura 9.12 apresentam-se, respectivamente, a deformada e as tensoes
em xx. Como sao uniformes, nao se ve o valor da tensao na barra de cores.
P
y
P
x
Figura 9.8. Traccao de placa: geometria e cargas
O codigo (vigaTraccaoLivroQ4.m) e 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 tensao
v = 0
y
x
u = 0
Figura 9.9. Traccao de placa: condicoes fronteira
Figura 9.10. Traccao de placa: malha de elementos nitos
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 traccao 155
0 2 4 6 8 10 12 14 16 18
!6
!4
!2
0
2
4
6
DEFORMada na direcao X
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
x 10
!7
Figura 9.11. Traccao de placa: deformada
0 2 4 6 8 10 12 14 16 18
!6
!4
!2
0
2
4
6
tensao (na deformada), componente XX
1
1
1
1
1
1
1
1
1
1
Figura 9.12. Traccao de placa: tensoes
156 9 Estado plano de tensao
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 traccao 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 tensao
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 Kirchho
10.1 Introducao
Neste captulo apresenta-se a formulacao de elementos nitos para a analise
de placas nas, seguindo as suposicoes de Kirchho. A teoria de Kirchho
estabelece que as normais, rectas, ao plano medio indeformado, permanecem
normais ao plano medio deformado.
Com base nesta suposicao, desprezam-se os efeitos de corte transverso e
torna-se possvel formular um conjunto de elementos nitos que satisfazem
estas condicoes de Kirchho.
10.2 Teoria de placas de Kirchho
Com base na placa da gura 10.1, onde se considera que a espessura da placa
e muito inferior `as outras dimensoes e se considera que as cargas sao aplicadas
normais ao plano medio da placa, estabelecem-se as seguintes hipoteses:
nos pontos do plano medio u = v = 0
todos os pontos da normal ao plano medio possuem o mesmo deslocamento
transversal
a tensao
x
e desprezavel
as rectas normais ao plano medio indeformado permanecem rectas e nor-
mais ao plano medio apos deformacao
10.2.1 Campo de deslocamentos, deformacoes e tensoes
Com base nas suposicoes de Kirchho, dene-se a rotacao da normal ao plano
medio como primeira derivada da echa, ou seja,
160 10 Placas de Kirchho
u = z
w
x
(10.1)
v = z
w
y
(10.2)
w = w
0
(10.3)

y
z, w
y, v
x, u

x
Figura 10.1. Graus de liberdade e orientacoes das rotacoes
Com base neste campo de deslocamentos, onde o vector de deslocamentos
para cada no do elemento e
u
T
= [w,
w
x
,
w
y
] (10.4)
podem denir-se as deformacoes nao nulas

x
= z

2
w
x
2
(10.5)

y
= z

2
w
y
2
(10.6)

xy
= 2z

2
w
xy
(10.7)
O vector de tensoes associado e entao denido por
_
_
_

xy
_
_
_
=
E
1
2
_

_
1 0
1 0
0 0
1
2
_

_
_
_
_

xy
_
_
_
(10.8)
10.3 Elementos nitos 161
10.2.2 Principio dos trabalhos virtuais
Podemos escrever o principio dos trabalhos virtuais na forma
_
V

T
dV =
_
A
wqdA+

i
w
i
F
i
(10.9)
onde q representa a caraga distribuida por unidade de area e F
i
um con-
junto de forcas pontuais.
Operando sobre os integrais e substituindo as deformcoes e tensoes, obte-
mos a forma da energia de deformacao
U =
_
A
_

2
w
x
2
M
x
+

2
w
y
2
M
y
+ 2

2
w
xy
M
xy
_
dA (10.10)
onde M
i
representam os momentos ectores, obtidos por integracao das
tensoes atraves da espessura da placa, ou seja
M
i
=
_
h/2
h/2

i
zdz, i = x, y, xy (10.11)
Note-se que devido `as segundas derivadas presentes no integral, necessitamos
de considerar elementos nitos de continuidade C
1
, ou seja, continuidade da
funcao e suas primeiras derivadas.
10.3 Elementos nitos
Considera-se, em geral que os elementos nitos possuem, em cada no, os se-
guintes graus de liberdade w
i
,
_
w
x
_
i
,
_
w
y
_
i
. Para o efeito necessitaamos dum
polinomio de grau 3 n umero de nos, na forma
w =
1
+
2
x +
3
y +
4
x
2
+
5
xy +... (10.12)
Impondo as condicoes
w
i
= (w)
i
;
xi
=
_
w
x
_
i
;
yi
=
_
w
y
_
i
(10.13)
obtemos o polinomio de interesse. No entanto, nem sempre e facil saber
quais os termos do polinomio a reter.
10.3.1 Elemento rectangular nao conforme MCZ
O elemento rectangular de 4 nos de Melosh [110] e Zienkiewicz e Cheung [111]
nao contem os termos todos do polinomio, por isso se designa nao conforme.
Antes usa a seguinte aproximacao
162 10 Placas de Kirchho
w =
1
+
2
x+
3
y+
4
x
2
+
5
xy+
6
y
2
+
7
x
3
+
8
x
2
y+
9
xy
2
+
10
y
3
+
11
x
3
y+
12
xy
3
(10.14)
Conseguem-se calcular as variaveis nodais e garantir a continuidade em cada
lado do elemento. As constantes
i
calculam-se usando as condicoes 10.13,
obtendo-se
a
e
= A (10.15)
onde
a
eT
=
_
w
1
_
w
x
_
1
_
w
y
_
1
... w
4
_
w
x
_
4
_
w
y
_
4
_
(10.16)
e
A =
_

_
1 x
1
y
1
x
2
1
x
1
y
1
y
2
1
x
3
1
x
2
1
y
1
+x
1
y
2
1
y
3
1
0 1 0 2x
1
y
1
0 3x
2
1
2x
1
y
1
+y
2
1
0
0 0 1 0 x
1
2y
1
0 x
2
1
+ 2x
1
y
1
3y
2
1
1 x
2
y
2
x
2
2
x
2
y
2
y
2
2
x
3
2
x
2
2
y
2
+x
2
y
2
2
y
3
2
0 1 0 2x
2
y
2
0 3x
2
2
2x
2
y
2
+y
2
2
0
0 0 1 0 x
2
2y
2
0 x
2
2
+ 2x
2
y
2
3y
2
2
1 x
3
y
3
x
2
3
x
3
y
3
y
2
3
x
3
3
x
2
3
y
3
+x
2
y
2
3
y
3
3
0 1 0 2x
3
y
3
0 3x
2
3
2x
3
y
3
+y
2
3
0
0 0 1 0 x
3
2y
3
0 x
2
3
+ 2x
3
y
3
3y
2
3
_

_
(10.17)
Podemos entao calcular
= A
1
a
e
(10.18)
e estabelecer
w = P
T
= P
T
A
1
a
e
= Na
e
(10.19)
onde N = P
T
A
1
representa a matriz de funcoes de forma e
P
T
= [1, x, y, x
2
, xy, y
2
, x
3
, x
2
y, xy
2
, y
3
, x
3
y, xy
3
] (10.20)
Podemos encontrar uma forma explicita da matriz de rigidez e do vector
de forcas nodais equivalentes, o que e apresentado no codigo mcz.m ,
function [ke, re] = mcz(coord, h, e, nu, q)
% coord = coordenadas dos nos 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 nitos 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 Kirchho
-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 vericar a qualidade deste elemento na analise de placas, considere-
se uma placa quadrada, simplesmente apoiada ou encastrada em todos os
bordos, sujeita a uma forca distribuida P, com lado a, modulo de elasticidade
E e coeciente de Poisson . Considere-se a echa normalizadas
w = w
D
Pl
4
(10.21)
sendo D a rigidez a ex ao, obtida por
D =
Eh
3
12(1
2
)
(10.22)
sendo h a espessura da placa.
10.3 Elementos nitos 165
O codigo que a seguir se apresenta ( mczExemplo.m ) pode considerar
apoios simples ou encastramentos.
clear all
colordef white
tic
% propriedades material
E0 = 10920; % modulo 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 Kirchho
% 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, obtem-se os seguintes resultados normalizados para a
echa maxima (no 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 cao 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 nitos 167
10.3.2 Elemento rectangular conforme BFS
O elemento rectangular de 4 nos de Bogner, Fox e Schmidt [112] considera a
introducao da segunda derivada

2
w
xy
, usando uma aproximacao polinomial
de 16 termos. Note-se que o vector de graus de liberdade por no e agora de
quatro
a
eT
=
_
w
1
_
w
x
_
1
_
w
y
_
1
_

2
w
xy
_
1
... w
4
_
w
x
_
4
_
w
y
_
4
_

2
w
xy
_
4
_
(10.23)
O codigo bfs.m apresenta o calculo da matriz de rigidez e do vector de
forcas nodais equivalentes para este elemento.
function [ke, re] = bfs(coord, h, e, nu, q)
% coord = coordenadas dos nos 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 Kirchho
-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 nitos 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 Kirchho
(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 nitos 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 Kirchho
(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 nitos 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 vericar a qualidade deste elemento na analise de placas, considere-
se uma placa quadrada, simplesmente apoiada ou encastrada em todos os
bordos, sujeita a uma forca distribuida P, com lado a, modulo de elasticidade
E e coeciente de Poisson . Considere-se a echa normalizadas
w = w
D
Pl
4
(10.24)
sendo D a rigidez a ex ao, obtida por
D =
Eh
3
12(1
2
)
(10.25)
sendo h a espessura da placa.
O codigo que a seguir se apresenta ( bfsExemplo.m ) pode considerar
apoios simples ou encastramentos.
clear all
colordef white
tic
% propriedades material
E0 = 10920; % modulo 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 Kirchho
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 nitos 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, obtem-se os seguintes resultados normalizados para
a echa maxima (no 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 cao 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 tres nos de Bazeley et al [113], designado por BCIZ,
considera um polinomio incompleto de terceiro grau em coordenadas de area
w = a
1
L
1
+a
2
L
2
+a
3
L
3
+a
4
_
L
2
1
L
2
+
L
1
L
2
L
3
2
_
+a
5
_
L
2
2
L
1
+
L
1
L
2
L
3
2
_
+
a
6
_
L
2
2
L
3
+
L
1
L
2
L
3
2
_
+a
7
_
L
2
3
L
2
+
L
1
L
2
L
3
2
_
+
a
8
_
L
2
3
L
1
+
L
1
L
2
L
3
2
_
+a
9
_
L
2
1
L
3
+
L
1
L
2
L
3
2
_
(10.26)
O codigo 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 nos do elemento
% h = espessura
% e = modulo de elasticidade, nu = coeficiente de Poisson
% q = carga distribuida.
176 10 Placas de Kirchho
% 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 nitos 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 Kirchho
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 codigo 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 nitos 179
E0 = 10920; % modulo 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 Kirchho
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, obtem-se os seguintes resultados normalizados para
a echa maxima (no central), conforme ilustrado na tabela 10.3.
10.4 Constricoes de Kirchho 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 cao 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 Constricoes de Kirchho
Existem outros elementos que, partindo da formulacao de placa espessa,
impoem as condicoes de Kirchho localmente. Dado que se baseiam inici-
almente na teoria de Mindlin, carao para outro captulo, em particular o
elemento DKT (discrete Kirchho triangle), desenvolvido por Batoz.
11
Elementos nitos de placa de Mindlin
11.1 Introducao
Neste captulo apresenta-se a formulacao de elementos de placa espessa, se-
gundo a teoria de Mindlin, tambem chamada de Mindlin-Reissner.
Apresenta-se a formulacao baseada em deslocamentos. Tendo em conta
a melhoria do comportamento ao corte transverso, apresenta-se tambem a
formulacao para o elemento Q4 (semelhante ao MITC de Bathe/Dvorkin),
sendo considerado dos melhores elementos para problemas de placa espessa
ou na.
Finalmente, partindo da formulacao de Mindlin, apresenta-se o elemento
DKT, que impoe condicoes de Kirchho em pontos seleccionados do elemento,
conduzindo assim a um elemento de placa na com elevada reputacao.
11.2 Teoria de placa de Mindlin
A teoria de placa de Mindlin (tambem chamada de Mindlin-Reissner ) inclui
os efeitos das deformacoes de corte transverso, de forma semelhante `a teoria de
viga de Timoshenko, indicada em captulo anterior. Aqui, uma recta normal ao
plano medio da placa indeformada permanece recta, mas nao necessariamente
normal ao plano medio da placa deformada. A energia de deformacao deve
incluir termos de exao e de corte transverso, na forma
U =
1
2
_
V

T
f

f
dV +

2
_
V

T
c

c
dV (11.1)
onde

T
f
= [
x

y

xy
] (11.2)

T
f
= [
x

y

xy
] (11.3)
184 11 Elementos nitos de placa de Mindlin
sao as deformacoes de exao e

T
c
= [
xz

yz
] (11.4)

T
c
= [
xz

yz
] (11.5)
sao as tensoes e deformacoes de corte transverso . O parametro , habitual-
mente designado por factor de correccao de corte transverso , toma o valor 5/6.
Este factor e necessario tendo em conta que as deformacoes de corte trans-
verso sao constantes atraves da espessura, o que contraria o perl parabolico
das tensoes de corte transverso reais. Na gura 11.1 ilustra-se a geometria e
os graus de liberdades.
11.2.1 Campo de deslocamentos
Supoe-se um campo de deslocamentos na forma
u = z
x
(11.6)
v = z
y
(11.7)
w = w
0
(11.8)
onde
x
,
y
sao as rotacoes do plano medio em torno dos eixos y e x, respec-
tivamente.
x
x, u
z, w
q
y
h
y, v
Figura 11.1. Geometria de placa de Mindlin . Eixos, graus de liberdade, forca
distribuida aplicada
11.2 Teoria de placa de Mindlin 185
11.2.2 Campo de deformacoes
As deformacoes de exao sao agora obtidas por

x
=
u
x
= z

x
x
(11.9)

y
=
v
y
= z

y
y
(11.10)

xy
=
u
y
+
v
x
= z
_

y
x
+

x
y
_
(11.11)
enquanto que as deformacoes de corte sao obtidas por

xz
=
w
x
+
u
z
=
w
x
+
x
(11.12)

yz
=
w
y
+
v
z
=
w
y
+
y
(11.13)
11.2.3 Campo de tensoes
As relacoes constitutivas sao obtidas por

f
= D
f

f
(11.14)
onde D
f
ja foi anteriormente denido e

c
= D
c

c
(11.15)
sendo
D
c
=
_
G 0
0 G
_
(11.16)
sendo G o modulo de corte, obtido como
G =
E
2(1 +)
(11.17)
Substituindo nos termos de energia de deformacao , obtemos
U =
1
2
_
V

T
f
D
f

f
dV +

2
_
V

T
c
D
c

c
dV (11.18)
186 11 Elementos nitos de placa de Mindlin
11.3 Elementos nitos de placa espessa
Tendo em conta que w e independente de
x
e
y
1
, cada variavel e interpolada
de forma independente, na forma
w =
n

i=1
N
i
(, )w
i
(11.19)

x
=
n

i=1
N
i
(, )
xi
(11.20)

y
=
n

i=1
N
i
(, )
yi
(11.21)
onde N
i
(, ) sao as funcoes de forma dum elemento nito bidimensional com
n nos. Considera-se um elemento nito bilinear (gura 11.2)
2
, onde as de-
formacoes sao obtidas por

f
= zB
f
d
e
(11.22)

c
= B
c
d
e
(11.23)
onde
B
f
=
_

_
0
N
1
x
0 ... 0
N
4
x
0
0 0
N
1
y
... 0 0
N
4
y
0
N
1
y
N
1
x
... 0
N
4
y
N
4
x
_

_
(11.24)
B
c
=
_

_
N
1
x
N
1
0 ...
N
4
x
N
4
0
N
1
y
0 N
1
...
N
4
y
0 N
4
_

_
(11.25)
e
d
eT
= {w
1

x1

y1
. . . w
4

x4

y4
} (11.26)
Obtem-se assim a energia de deformacao para o elemento de placa
U =
1
2
d
eT
_

e
_
z
B
T
f
D
f
B
f
dzd
e
d
e
+

2
d
eT
_

e
_
z
B
T
c
D
C
B
c
dzd
e
d
e
(11.27)
1
ao contrario da teoria de placa na, onde as rotacoes sao derivadas de w
2
designado por Q4 no programa MATLAB a seguir indicado
11.4 Exemplo de placa quadrada 187
1x1 (corte)
2x2 (exao)
Figura 11.2. Elemento bilinear de placa de Mindlin : diferentes quadraturas para
exao e corte transverso
Assim, a matriz de rigidez do elemento de placa de Mindlin pode ser expressa
por
K
e
=
h
3
12
_

e
B
T
f
D
f
B
f
d
e
+h
_

e
B
T
c
D
C
B
c
d
e
(11.28)
ou
K
e
=
h
3
12
_
1
1
_
1
1
B
T
f
D
f
B
f
|J|dd +h
_
1
1
_
1
1
B
T
c
D
C
B
c
|J|dd (11.29)
O vector de forcas nodais equivalentes `a forca distribuida transversal do ele-
mento de placa de Mindlin pode ser expresso por
f
e
=
_
1
1
_
1
1
Nq|J|dd (11.30)
11.4 Exemplo de placa quadrada
Para vericar a qualidade deste elemento na analise de placas, considere-se
uma placa quadrada, simplesmente apoiada ou encastrada em todos os bordos,
sujeita a uma forca distribuida P, com lado a, modulo de elasticidade E e
coeciente de Poisson . Considere-se a echa normalizadas
w = w
D
Pl
4
(11.31)
sendo D a rigidez a exao, obtida por
188 11 Elementos nitos de placa de Mindlin
D =
Eh
3
12(1
2
)
(11.32)
sendo h a espessura da placa.
Utilizam-se elementos quadrilateros Q9.
Consideram-se placas espessas e nas. Na tabela 11.1 apresenta-se a echa
central normalizada para varias espessuras e condicoes fronteira. Para evitar
situacoes de retencao de corte, executa-se sempre a integracao reduzida (3
pontos de Gauss para contribuicoes de exao e 2 pontos de Gauss para con-
tribuicoes de corte transverso). Apresenta-se apenas o codigo (mindlinQ4.m)
para o elemento Q4, deixando ao leitor a sugestao para construir o codigo
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 nitos 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 gura 11.3), obtem-se os seguintes resul-
tados normalizados para a echa maxima (no 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
Solucao 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
Solucao 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 e calculada de forma
distinta nos termos de exao e nos termos de corte.
Na gura 11.4 apresenta-se a deformada tipica de uma placa em exao,
simplesmente apoiada em todos os bordos.
192 11 Elementos nitos de placa de Mindlin
0
0.2
0.4
0.6
0.8
1
0
0.2
0.4
0.6
0.8
1
!5
!4
!3
!2
!1
0
Figura 11.4. Exemplo de deformacao de placa simplesmente apoiada
11.5 Melhoramentos ao corte transverso
Em situacao de placa na os elementos Q4 ou Q9 possuem um fraco comporta-
mento ao corte transverso. Para melhorar o comportamento destes elementos,
varios investigadores sugeriram alternativas, quer atraves da integracao redu-
zida, quer atraves de elementos Heterosis [114].
Mais recentemente, tem tido mais sucesso a chamada formulacao por de-
formacoes de corte assumidas, que sao deformacoes independentes ou de subs-
tituicao, impostas de forma discreta, sob colocacao ou sob forma integral.
Parte-se da forma habitual para a energia de deformacao
U =
1
2
_
A

T
DdA+

2
_
A

T
D
c
dA (11.33)
onde

T
=
_

xz

yz
_
(11.34)
Os elementos mais importantes desenvolvidos neste contexto sao os for-
mulados por Bathe [115, 116] que impoem sob colocacao a condicao

xz
=
xz
;
yz
=
yz
(11.35)
onde

xz
=
w
x
+
x
;
yz
=
w
y
+
y
(11.36)
11.6 Elemento Q4 193
Esta imposicao e feita ` a custa de aproximacoes de
z
;
z
onde os nos
externos possuem 3 graus de liberdade e os nos internos possuem apenas
graus de rotacao. O elemento e habitualmente designado MITC. Nesta seccao
apresentamos uma formula cao e codigo MATLAB para este elemento, aqui
designado sob Q4, conforme apresentado por Batoz [117].
11.6 Elemento Q4
Este elemento possui quatro nos com corte transverso constante em cada lado,
com aproximacao bilinear (Q4).
A matriz de rigidez e, como habitualmente, formada pelas contribuicoes
de exao e corte transverso, na forma
K
(e)
= K
(e)
f
+K
(e)
c
(11.37)
onde o calculo de K
(e)
f
e identica ao anteriormente apresentado para as
placas de Mindlin, mudando a parte de corte transverso, que e agora calculada
na forma
K
(e)
c
=
_
A
B
T
c
D
c
B
c
dA (11.38)
onde a matriz B
c
e calculada por forma a que as aproximacoes de
z
e

z
sejam as mesmas de
w

e
w

, conforme Prathap e Somashekar[118], ou


seja,
=
_

z
_
=
_

_
w

_
= B

(11.39)
onde
u
T

= [ w
i

i

i
] , i = 1, 4 (11.40)
onde
B

=
_

_

N
i


i
N
i

0

N
i

0
i
N
i

_,
i
,
i
= 1 (11.41)
e
_

i
_
= J
i
_

xi

yi
_
(11.42)
Assim obtemos
194 11 Elementos nitos de placa de Mindlin
= B

u, u
T
= [ w
i

xi

yi
] (11.43)
e com
B

=
_

_

N
i


i
N
i

J
i
11

i
N
i

J
i
12


N
i


i
N
i

J
i
21

i
N
i

J
i
22

_

_ (11.44)
donde, nalmente
=
_

xz

yz
_
= J
1

= B
c
u (11.45)
e
B
c
= J
1
B

(11.46)
Note-se que ambas as matrizes K
(e)
f
e K
(e)
c
sao obtidas por integracao de
Gauss 2 2. Este elemento Q4 e de facto semelhante ao MITC de Bathe e
Dvorkin. Para problemas rectangulares e tambem semelhante ao elemento T1
de Hughes e Tezduyar [119], nao tem modos parasitas, nem retencao de corte,
quando
z
=
z
= 0.
11.7 Exemplo de placa com elemento Q4
Para vericar a qualidade deste elemento na analise de placas, considere-se
uma placa quadrada, simplesmente apoiada ou encastrada em todos os bordos,
sujeita a uma forca distribuida P, com lado a, modulo de elasticidade E e
coeciente de Poisson . Considere-se a echa normalizada
w = w
D
Pl
4
(11.47)
sendo D a rigidez `a ex ao, obtida por
D =
Eh
3
12(1
2
)
(11.48)
sendo h a espessura da placa.
Apresenta-se o codigo ( q4gammaMindlin1.m ) para o elemento Q4, que
recorre a outras rotinas parta execucao de algumas tarefas.
1 clear all
2 colordef white
3 tic
4 % propriedades material
5 E0 = 10920; % mdulo Young
11.7 Exemplo de placa com elemento Q4 195
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 % 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 %
196 11 Elementos nitos de placa de Mindlin
55 [vjnx,vjny]=jacnd4(vcore) ;
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
11.7 Exemplo de placa com elemento Q4 197
104 min(U1(1:3:3*numnode))*D1/L^4
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)
Este programa recorre a subrotinas auxiliares (functions no MATLAB),
para executar partes da matriz de rigidez e do vector de cargas, nomeadamente
calculo de funcoes de forma, suas derivadas e construcao da matriz B. Note-se
que o codigo inclui a parte de vibracoes livres que sera mais tarde apresentada.
As rotinas auxiliares sao apresentadas em seguida.
jacnd4.m
1 function [vjnx,vjny]=jacnd4(vcore)
2 % %------- vjnx
3 vjnx(1)=-1/2*(vcore(3)-vcore(1)) ; %-1/2*( x2-x1 )
4 vjnx(2)=-1/2*(vcore(4)-vcore(2)) ; %-1/2*( y2-y1 )
5 vjnx(3)=-vjnx(1) ;
6 vjnx(4)=-vjnx(2) ;
7 vjnx(5)= 1/2*(vcore(5)-vcore(7)) ;
8 vjnx(6)= 1/2*(vcore(6)-vcore(8)) ;
9 vjnx(7)=-vjnx(5);
10 vjnx(8)=-vjnx(6);
11 %%------- vjny
12 vjny(1)=-1/2*(vcore(7)-vcore(1)) ;
13 vjny(2)=-1/2*(vcore(8)-vcore(2)) ;
14 vjny(3)=-1/2*(vcore(5)-vcore(3)) ;
15 vjny(4)=-1/2*(vcore(6)-vcore(4)) ;
16 vjny(5)=-vjny(3) ;
17 vjny(6)=-vjny(4) ;
18 vjny(7)=-vjny(1) ;
19 vjny(8)=-vjny(2) ;
nq4.m
1 function [vn,vksi,veta]=nq4(x,y)
2 % funcoes de forma de Q4 e suas derivadas
3 % em relacao as coordenadas naturais xi e eta
4
5 vn=1/4*[(1.-x)*(1.-y);(1.+x)*(1.-y);(1.+x)*(1.+y) ;(1.-x)*(1.+y) ] ;
6 vksi=[-1/4*(1.-y); 1/4*(1.-y);1/4*(1.+y);-1/4*(1.+y) ];
7 veta=[-1/4*(1.-x); -1/4*(1.+x);1/4*(1.+x);1/4*(1.-x) ];
jac2d.m
198 11 Elementos nitos de placa de Mindlin
1 function [vji,detj]=jac2d(vksi,veta,vcore)
2 % calculo de jacobinao e sua inversa
3 % vji= inversa da matriz jacobiana
4
5 vji=zeros(2);
6
7 c11=vcore(1:2:7)*vksi(1:4);
8 c21=vcore(1:2:7)*veta(1:4);
9 c12=vcore(2:2:8)*vksi(1:4);
10 c22=vcore(2:2:8)*veta(1:4);
11
12 j=[c11 c12;c21 c22];
13 detj =det(j);
14 vji=inv(j);
15
bq4gam.m
1 function [vb,vbc]=bq4gam(vji,vksi,veta,vjnx,vjny)
2
3 % matriz B do elemento Q4 gamma
4
5 vb=zeros(3,12);vbc=zeros(2,12);
6
7 %------- vb: flexao
8
9 vb(1,2:3:11)=vji(1,1)*vksi(1:4)+vji(1,2)*veta(1:4);
10 vb(3,3:3:12)=vb(1,2:3:11);
11
12 vb(2,3:3:12)=vji(2,1)*vksi(1:4)+vji(2,2)*veta(1:4);
13 vb(3,2:3:11)=vb(2,3:3:12);
14
15 %------- vbc: corte transverso
16
17 c11=vji(1,1);c12=vji(1,2);c21=vji(2,1);c22=vji(2,2) ;
18
19 %------- w
20 vbc(1,1:3:10)=c11*vksi(1:4)+c12*veta(1:4) ;
21 vbc(2,1:3:10)=c21*vksi(1:4)+c22*veta(1:4) ;
22
23 ii=0 ;jj=0;
24
25 for i=1:4
26
27 %------- beta-x
28 c1=vksi(i)*vjnx(jj+1) ;
29 c2=veta(i)*vjny(jj+1) ;
30
31 vbc(1,ii+2)=c11 *c1 +c12 *c2;
32 vbc(2,ii+2)=c21 *c1+ c22 *c2;
11.8 Elemento DKT 199
33
34 %------- beta-y
35 c1=vksi(i)*vjnx(jj+2);
36 c2=veta(i)*vjny(jj+2);
37 vbc(1,ii+3)=c11 *c1 +c12 *c2;
38 vbc(2,ii+3)=c21 *c1 +c22 *c2;
39 ii=ii+3 ;jj=jj+2;
40 end
41
Para a placa referida, obtem-se os seguintes resultados normalizados para
a echa maxima (no central), conforme ilustrado na tabela 11.2.
a/h Malha SSSS CCCC
10 2 2 0.003456 0.000267
6 6 0.004239 0.001475
10 10 0.004261 0.001493
20 20 0.004269 0.001501
30 30 0.004271 0.001503
Solucao exacta 0.004270
10000 2 2 0.003188 2.0e-12
6 6 0.004024 0.001239
10 10 0.004049 0.001255
20 20 0.004059 0.001262
30 30 0.004060 0.001264
Solucao exacta 0.004060 0.001260
Tabela 11.2. Flecha normalizada para placa quadrada, sujeita a carga uniforme.
Simplesmente apoiada (SSSS) e encastrada (CCCC)
11.8 Elemento DKT
O elemento DKT (Discrete Kirchho Triangle) desenvolvido por Batoz [120],
pretende desenvolver um elemento de placa na, segundo a teoria de Kir-
chho, por imposicao discreta em alguns pontos do elemento das condicoes
de Kirchho.
Considere-se um elemento triangular de 3 nos (gura 11.5), tal que a apro-
ximacao para as rotacoes sejam do tipo C
0
, sob a forma

x
= N
xn
+P
x
;
y
= N
yn
+P
y
(11.49)
com
x
=
w
x
e
y
=
w
y
e
200 11 Elementos nitos de placa de Mindlin
w;
x
;
y
1
2
3
Figura 11.5. Elemento DKT de 3 nos
N = [1 ] ; = [
4

5

6
] (11.50)

xn
= [
x1

x2

x3
] ;
yn
= [
y1

y2

y3
] (11.51)
P
x
= [(P
k
C
k
k = 4, 6)]; P
x
= [(P
k
S
k
k = 4, 6)];
P
4
= 4(1 ); P
5
= 4; P
6
= 4(1 ) (11.52)
onde C
k
, S
k
sao os cosenos directores do lado k dos nos i e j (k = 4, 5, 6
para ij = 12, 23, 31):
C
k
= x
ji
/L
k
; S
k
= y
ji
/L
k
; L
k
=
_
x
2
ji
+y
2
ji
_
(11.53)
sendo ainda
i
, i = 1, 2, 3 variaveis associadas `a representacao quadratica
de
x
,
y
em cada lado do triangulo. Por exemplo, para o lado 12,
(
x
)
12
= (1 )
x1
+
x2
+ 4 (1 ) C
4

4
;
(
y
)
12
= (1 )
y1
+
y2
+ 4 (1 ) S
4

4
(11.54)
As rotacoes
s
,
n
(gura 11.6) sao tais que:
_

n
_
=
_
C S
S C
_ _

y
_
(11.55)
sao tambem quadraticas para
s
e lineares para
n
:

s
= (1 s

)
s1
+s

s2
+ 4s

(1 s

)
4
;
n
= (1 s

)
n1
+s

n2
(11.56)
11.8 Elemento DKT 201

n
i
j
3
k
z
n
s
s=0
s = L
k

s
Figura 11.6. Elemento DKT de 3 nos, rotacoes nos bordos
onde 0 s

= s/L
k
1 representa a variavel segundo um lado. Note-se que

sk
=
s
(s

= 1/2) =
1
2
(
si
+
sj
) +
k
(11.57)
Para a energia de exao, obtem-se
= B
f
_
u
n

_
; B
f
= [B
f
|B
f
] (11.58)
onde
u
T
n
= [ w
i

xi

yi
i = 1, 3] ;
T
= [
4

5

6
] (11.59)
A hipotese de Kirchho e entao imposta no contorno do elemento na forma
_
j
i

sz
ds =
_
j
i
_
w
s
+
s
_
ds = 0 (11.60)
Pode entao obter-se, por substituicao de (11.56) e (11.55),
w
j
w
i
+
L
k
2
(C
k

xi
+S
k

yi
+C
k

xj
+S
k

yj
) +
2
3
L
k

k
= 0 (11.61)
donde se pode tirar a expressao de
k
em funcao dos nos i e j:

k
=
3
2L
k
(w
j
w
i
)
3
4
(C
k

xi
+S
k

yi
+C
k

xj
+S
k

yj
) , k = 4, 5, 6
(11.62)
Substituindo estas relacoes em (11.49) obtem-se expressoes explicitas das
rotacoes
x
,
y
em funcao das 9 variaveis nodais u,
202 11 Elementos nitos de placa de Mindlin
_

y
_
=
_
N
x
i1
N
x
i2
N
x
i3
N
y
i1
N
y
i2
N
y
i3
_
u
n
; (i = 1, 2, 3) (11.63)
com
N
x
i1
=
3
2L
k
P
k
C
k

3
2L
m
P
m
C
m
; N
x
i2
= N
i

3
4
P
k
C
2
k

3
4
P
m
C
2
m
;
N
x
i3
=
3
4
P
k
C
k
S
k

3
4
P
m
C
m
S
m
N
y
i1
=
3
2L
k
P
k
S
k

3
2L
m
P
m
S
m
; N
y
i2
= N
x
i3
; N
y
i3
= N
i

3
4
P
k
S
2
k

3
4
P
m
S
2
m
(11.64)
onde N
i
, P
k
, P
m
foram anteriormente denidos. Os indices k, m referem-se
aos dois lados que tem i como no comum, conforme tabela 11.3.
No 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 deformacao para um elemento e entao
U
(e)
=
1
2
_
A

T
DdA =
1
2
u
T
Ku (11.65)
com

T
=
_

x
x

y
y

x
y
+

y
x
_
; = Bu (11.66)
com
B =
1
J
_
_
J
22
N
x

J
12
N
x

J
21
N
y

+J
11
N
y

J
21
N
x

+J
11
N
x

+J
22
N
y

J
12
N
y

_
_
(11.67)
onde J
ij
sao os termos da matriz jacobiana, denidos por
11.9 Exemplo de placa com elemento DKT 203
J
11
=
1
4
(x
21
+x
34
+ (x
34
x
21
)) (11.68)
J
12
=
1
4
(y
21
+y
34
+ (y
34
y
21
)) (11.69)
J
21
=
1
4
(x
32
+x
41
+ (x
32
x
41
)) (11.70)
J
22
=
1
4
(y
32
+y
41
+ (y
32
y
41
)) (11.71)
A matriz de rigidez `a exao e entao calculada da forma habitual
K
(e)
=
_
A
B
T
DBJdd (11.72)
11.9 Exemplo de placa com elemento DKT
Para vericar a qualidade deste elemento na analise de placas, considere-
se uma placa quadrada, simplesmente apoiada ou encastrada em todos os
bordos, sujeita a uma forca distribuida P, com lado a, modulo de elasticidade
E e coeciente de Poisson . Note-se que dadas as caracteristicas do elemento
DKT se usam apenas placas nas. Considere-se a echa normalizada
w = w
D
Pl
4
(11.73)
sendo D a rigidez `a ex ao, obtida por
D =
Eh
3
12(1
2
)
(11.74)
sendo h a espessura da placa.
Apresenta-se o codigo (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 nitos 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 nitos 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 codigo ja contem a parte de calculo de vibracoes livres
que sera detalhada em captulo proprio mais adiante.
Para a placa referida, obtem-se os seguintes resultados normalizados para
a echa maxima (no central), conforme ilustrado na tabela 11.4. Note-se que
sendo um elemento de tres nos tem comparativamente menos graus de liber-
dade que o elemento de 4 nos, pelo que necessita de menos graus de liberdade
para chegar a aproximadamente a mesma qualidade de solucao.
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
Solucao 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 nitos 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 Introducao
No captulo anterior apresentou-se a chamada teoria de placa espessa de
Mindlin-Reissner, ou teoria de deformacao de corte de primeira ordem, que
necessita de factor de correccao de corte, para modicar a matriz constitutiva
ao corte, na forma
D
c
= kG
_
1 0
0 1
_
(12.1)
onde k representa o factor de correccao de corte transverso, tipicamente
5/6 para materiais isotropicos.
Este factor de correccao de corte pode ser calculado de varias formas,
nenhuma dela totalmente satisfatoria sob o ponto de vista da mecanica dos
meios contnuos.
Uma alternativa eciente para evitar os factores de correccao de corte e
o de exprimir o campo de deslocamentos como funcao de z e z
3
, traduzindo-
se o empenamento da normal ao plano medio duma funcao mais realista.
Com esta abordagem consegue-se ainda tensoes de corte parabolicas traves
da espessura. A teoria que apresentamos adiante baseia-se na teoria de Kant
e colegas e representa uma boa alternativa `a teoria de Mindlin-Reissner de
primeira ordem, `a custa de dois graus de liberdade por no.
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 possvel, onde
o deslocamento transversal w e constante atraves da espssura da placa, na
forma
212 12 Teorias de placa de ordem superior
u(x, y, z) = u
0
(x, y) +z
x
(x, y) +z
3

x
(x, y)
v(x, y, z) = v
0
(x, y) +z
y
(x, y) +z
3

y
(x, y)
w(x, y, z) = w
0
(x, y) (12.2)
onde
x
,
y
sao as rotacoes de primeira ordem e

x
,

y
as rotacoes de ordem
superior, neste caso de terceira ordem. os deslocamentos do plano medio sao
u
0
, v
0
, w
0
, segundo os tres eixos coordenados.
12.1.2 Campo de deformacoes
Podemos encontrar as deformacoes pelas relacoes deformacao-deslocamento,
na forma
_

xx

yy

xy

xz

yz
_

_
=
_

_
u
x
v
y
u
y
+
v
x
u
z
+
w
x
v
z
+
w
y
_

_
(12.3)
ou por
=
_
_
_

xx

yy

xy
_
_
_
=
_
_
_

m
xx

m
yy

m
xy
_
_
_
+z
_

f
xx

f
yy

f
xy
_

_
+z
3
_

f
xx

f
yy

f
xy
_

_
(12.4)
=
_

xz

yz
_
=
_

(0)
xz

(0)
yz
_

_
+ 3z
2
_

(2)
xz

(2)
yz
_

_
(12.5)
onde as componentes de deformacao sao descritas por
12.2 Matriz de rigidez 213
_

m
xx

m
yy

m
xy
_

_
=
_

_
u
0
x
v
0
y
u
0
y
+
v
0
x
_

_
;
_

f
xx

f
yy

f
xy
_

_
=
_

x
x

y
y

x
y
+

y
x
_

_
;
_

f
xx

f
yy

f
xy
_

_
=
_

x
x

y
y

x
y
+

y
x
_

_
(12.6)

0
=
_

(0)
xz

(0)
yz
_

_
=
_

_
w
0
x
+
x
w
0
y
+
y
_

_
;
2
=
_

(2)
xz

(2)
yz
_

_
=
_

y
_
(12.7)
Tendo em conta a abordagem de placa, ou seja, desprezando a tensao
normal transversa,
z
, podem denir-se as relacoes tensao-deformacao
=
_
_
_

xy
_
_
_
=
_

_
E
1
2

E
1
2
0

E
1
2
E
1
2
0
0 0 G
_

_
_
_
_

xy
_
_
_
= D (12.8)
=
_

xz

yz
_
=
_
G 0
0 G
_ _

xz

yz
_
= D
c
(12.9)
Note-se que nesta teoria nao sao necessarios os factores de correccao de
corte.
12.2 Matriz de rigidez
Tomando a matriz de rigidez, a partir da energia de deformacao, podemos
escrever
U =
1
2
_
V

T
+
T
dV (12.10)
ou
U =
1
2
_
V
_

m
+z
f
+z
3

T
D
_

m
+z
f
+z
3

+
_

(0)
+ 3z
2

(2)
_
T
D
c
_

(0)
+ 3z
2

(2)
_
dV (12.11)
214 12 Teorias de placa de ordem superior
Substituindo as deformacoes e as tensoes nesta expressao da energia, ob-
temos entao a matriz de rigidez do elemento, na forma
K
(e)
= K
(e)
mm
+K
(e)
ff
+K
(e)
ff
+K
(e)
cc
+K
(e)
c2c2
+K
(e)
cc2
+K
(e)
c2c
(12.12)
onde K
(e)
mm
representa a matriz de rigidez de membrana, K
(e)
ff
representa a
matriz de rigidez de exao com termos de primeira ordem, K
(e)
ff
representa a
matriz de rigidez de exao com termos de ordem superior (de terceira ordem),
K
(e)
cc
representa a matriz de rigidez de corte, K
(e)
c2c2
representa a matriz de
rigidez de corte com termos de ordem superior. As componentes da matriz de
rigidez K
(e)
cc2
e K
(e)
c2c
representam termos de acoplamento de corte. De seguida
apresentam-se todas essas componentes da matriz de rigidez.
K
(e)
mm
=
_
A
_
h/2
h/2

T
m
dzdA =
_
A
_
h/2
h/2

T
m
D
m
dzdA = h
_
A

T
m
D
m
dA
(12.13)
K
(e)
ff
=
_
A
_
h/2
h/2
z
T
f
dzdA =
_
A
_
h/2
h/2
z
2

T
f
D
f
dzdA =
h
3
12
_
A

T
f
D
f
dA
(12.14)
K
(e)
ff
=
_
A
_
h/2
h/2
z
3

T
f
dzdA =
_
A
_
h/2
h/2
z
6

T
f
D
f
dzdA =
h
7
448
_
A

T
f
D
f
dA
(12.15)
K
(e)
cc
=
_
A
_
h/2
h/2

T
0
D
c

0
dzdA = h
_
A

T
0
D
c

0
dA (12.16)
K
(e)
c2c2
=
_
A
_
h/2
h/2
3z
2

T
2
D
c
3z
2

2
dzdA = 9
h
5
80
_
A

T
2
D
c

2
dA (12.17)
K
(e)
cc2
=
_
A
_
h/2
h/2

T
0
D
c
3z
2

2
dzdA = 3
h
3
12
_
A

T
0
D
c

2
dA (12.18)
K
(e)
c2c
=
_
A
_
h/2
h/2
3z
2

T
2
D
c

0
dzdA = 3
h
3
12
_
A

T
2
D
c

0
dA (12.19)
12.3 Matrizes de deformacao-deslocamento B 215
12.3 Matrizes de deformacao-deslocamento B
Em funcao das componentes da matriz de rigidez, e possvel construir as
matrizes de deformacao-deslocamento B, nas componentes de membrana
B
(e)
m
=
_

_
N
x
0 0 0 0 0 0
0
N
y
0 0 0 0 0
N
y
N
x
0 0 0 0 0
_

_
(12.20)
de exao de primeira ordem
B
(e)
f
=
_

_
0 0 0
N
x
0 0
0 0 0 0
N
y
0 0
0 0 0
N
y
N
x
0 0
_

_
(12.21)
de exao de terceira ordem
B
(e)
f
=
_

_
0 0 0 0 0
N
x
0 0 0 0 0 0
N
y
0 0 0 0 0
N
y
N
x
_

_
(12.22)
de corte
B
(e)
c0
=
_

_
0 0
N
x
N 0 0 0
0 0
N
y
0 N 0 0
_

_
(12.23)
e de corte de ordem superior
B
(e)
c2
=
_

_
0 0
N
x
0 0 N 0
0 0
N
y
0 0 0 N
_

_
(12.24)
216 12 Teorias de placa de ordem superior
Deixa-se ao leitor a interpretacao do codigo, sendo de notar a organizacao
dos graus de liberdade (para aproveitar a compactacao do MATLAB), na
forma
u
T
= [w
1
w
N
,
x1

xN
,
y1

yN
,

x1

xN
,

y1

yN
, u
1
u
N
, v
1
v
N
]
(12.25)
12.4 Exemplo de placa quadrada
Para vericar a qualidade deste elemento de terceira ordem, na analise de
placas isotropicas, considere-se uma placa quadrada, simplesmente apoiada
ou encastrada em todos os bordos, sujeita a uma forca distribuida P, com
lado a, modulo de elasticidade E e coeciente de Poisson . Considere-se a
echa normalizada
w = w
D
Pl
4
(12.26)
sendo D a rigidez `a ex ao, obtida por
D =
Eh
3
12(1
2
)
(12.27)
sendo h a espessura da placa.
Para a placa referida, obtem-se os seguintes resultados normalizados para
a echa maxima (no central), conforme ilustrado na tabela 12.1.
Apresenta-se o codigo (placaKantQ4DOF5.m) para a solucao de problemas
de placa isotropica encastrada ou simplesmente apoiada, recorrendo `a 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
Solucao 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
Solucao 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
Solucao 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
Solucao 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 Introducao
As teorias de placa de Mindlin e Kant aqui apresentadas recorrem a um campo
de rotacoes da normal identico atraves da direccao da espessura. Segundo uma
normal ao plano medio, qualquer que seja a posicao na direccao da espessua,
esse ponto material possui as mesmas rotacoes que outro ponto nessa direccao.
Imagine-se agora uma estrutura laminada tipo sandwich onde atraves da es-
pessura, as propriedades mecanicas podem variar de forma signicativa. Com
base nesta suposicao, apareceram as chamadas teorias layerwise, que atribuem
rotacoes independentes a camadas matematicas representativas de materiais.
A teoria que se apresenta aqui [124] considera o seguinte campo de deslo-
camentos para a segunda camada (n ucleo da estrutura sandwich), conforme
ilustrado na gura 13.1.
u
(2)
(x, y, z) =u
0
(x, y) +z
(2)

(2)
x
(13.1)
v
(2)
(x, y, z) =v
0
(x, y) +z
(2)

(2)
y
(13.2)
w
(2)
(x, y, z) =w
0
(x, y) (13.3)
onde u
0
e v
0
sao os deslocamentos do plano medio (aqui considerado como
o plano medio do n ucleo), em qualquer ponto (x, y, 0) , w representa a echa
ou deslocamento transverso, sendo ainda
(2)
x
e
(2)
y
as rotacoes das normais
do plano medio segundo os eixos y e x respectivamente, para a camada 2.
Os correspondentes deslocamentos para as camadas superior (3) e inferior
(1), sao, respectivamente,
224 13 Uma teoria layerwise
Figura 13.1. Placa layerwise, graus de liberdade
u
(3)
(x, y, z) =u
0
(x, y) +
h
2
2

(2)
x
+
h
3
2

(3)
x
+z
(3)

(3)
x
(13.4)
v
(3)
(x, y, z) =v
0
(x, y) +
h
2
2

(2)
y
+
h
3
2

(3)
y
+z
(3)

(3)
y
(13.5)
w
(3)
(x, y, z) =w
0
(x, y) (13.6)
u
(1)
(x, y, z) =u
0
(x, y)
h
2
2

(2)
x

h
1
2

(1)
x
+z
(1)

(1)
x
(13.7)
v
(1)
(x, y, z) =v
0
(x, y)
h
2
2

(2)
y

h
1
2

(1)
y
+z
(1)

(1)
y
(13.8)
w
(1)
(x, y, z) =w
0
(x, y) (13.9)
onde h
k
representa a espessura da camada k e onde z
(k)
[h
k
/2, h
k
/2]
representam as coordenadas em z.
As deformacoes para cada camada k sao dadas por
13.1 Introducao 225
_

(k)
xx

(k)
yy

(k)
xy

(k)
xz

(k)
yz
_

_
=
_

_
u
(k)
x
v
(k)
y
u
(k)
y
+
v
(k)
x
u
(k)
z
+
w
(k)
x
v
(k)
z
+
w
(k)
y
_

_
(13.10)
As deformacoes de membrana sao denidas por
_

(k)
xx

(k)
yy

(k)
xy
_

_
=
_

m(k)
xx

m(k)
yy

m(k)
xy
_

_
+z
(k)
_

f(k)
xx

f(k)
yy

f(k)
xy
_

_
+
_

mf(k)
xx

mf(k)
yy

mf(k)
xy
_

_
(13.11)
sendo as deformacoes de corte dadas por
_

(k)
xz

(k)
yz
_

_
=
_

_
w
0
x
+
(k)
x
w
0
y
+
(k)
y
_

_
(13.12)
As componentes de membrana sao dadas por
_

m(k)
xx

m(k)
yy

m(k)
xy
_

_
=
_

_
u
0
x
v
0
y
u
0
y
+
v
0
x
_

_
(13.13)
As componentes sao expressas por
226 13 Uma teoria layerwise
_

f(k)
xx

f(k)
yy

f(k)
xy
_

_
=
_

(k)
x
x

(k)
y
y

(k)
x
y
+

(k)
y
x
_

_
(13.14)
sendo ainda as componentes de acoplamento membrana-exao para as ca-
madas 2,3 e 1, respectivamente dadas por
_

mf(2)
xx

mf(2)
yy

mf(2)
xy
_

_
=
_

_
0
0
0
_

_
(13.15)
_

mf(3)
xx

mf(3)
yy

mf(3)
xy
_

_
=
_

_
h
2
2

(2)
x
x
+
h
3
2

(3)
x
x
h
2
2

(2)
y
y
+
h
3
2

(3)
y
y
h
2
2
_

(2)
x
y
+

(2)
y
x
_
+
h
3
2
_

(3)
x
y
+

(3)
y
x
_
_

_
(13.16)
_

mf(1)
xx

mf(1)
yy

mf(1)
xy
_

_
=
_

h
2
2

(2)
x
x

h
1
2

(1)
x
x

h
2
2

(2)
y
y

h
1
2

(1)
y
y

h
2
2
_

(2)
x
y
+

(2)
y
x
_

h
1
2
_

(1)
x
y
+

(1)
y
x
_
_

_
(13.17)
Desprezando a tensao normal transversa
(k)
z
para cada camada ortotropica,
as relacoes tensao-deformacao no sistema coordenado local (material) podem
ser expressas por
13.2 Laminado sandwich com 3 camadas 227
_

(k)
1

(k)
2

(k)
12

(k)
23

(k)
31
_

_
=
_

_
Q
11
Q
12
0 0 0
Q
12
Q
22
0 0 0
0 0 Q
33
0 0
0 0 0 Q
44
0
0 0 0 0 Q
55
_

_
(k)
_

(k)
1

(k)
2

(k)
12

(k)
23

(k)
31
_

_
(13.18)
onde os indices 1 e 2 representam as direccoes das bras materiais e trans-
versais `as bras, sendo ainda a direccao 3 a direccao normal ao plano. As
componentes de rigidez reduzida, Q
(k)
ij
, sao entao obtidas por
Q
(k)
11
=
E
(k)
1
1
(k)
12

(k)
21
Q
(k)
22
=
E
(k)
2
1
(k)
12

(k)
21
Q
(k)
12
=
(k)
21
Q
(k)
11
Q
(k)
33
= G
(k)
12
Q
(k)
44
= G
(k)
23
Q
(k)
55
= G
(k)
31

(k)
21
=
(k)
12
E
(k)
2
E
(k)
1
onde E
(k)
1
, E
(k)
2
,
(k)
12
, G
(k)
12
, G
(k)
23
e G
(k)
31
sao as propriedades materiais da
camada k.
Por transformacao de coordenadas as relacoes tensao-deformacao no sis-
tema global podem ser obtidas por
_

(k)
xx

(k)
yy

(k)
xy

(k)
yz

(k)
zx
_

_
=
_

_
Q
(k)
11
Q
(k)
12
Q
(k)
16
0 0
Q
(k)
12
Q
(k)
22
Q
(k)
26
0 0
Q
(k)
16
Q
(k)
26
Q
(k)
66
0 0
0 0 0 Q
(k)
44
Q
(k)
45
0 0 0 Q
(k)
45
Q
(k)
55
_

_
_

(k)
xx

(k)
yy

(k)
xy

(k)
yz

(k)
zx
_

_
(13.19)
Considerando como o angulo entre o eixo x e o eixo 1, sendo o eixo 1
o eixo material principal, podendo as componentes Q
(k)
ij
ser calculadas por
transformacao de coordenadas [130].
13.2 Laminado sandwich com 3 camadas
Considera-se um laminado sandwich com tres 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 ucleo
228 13 Uma teoria layerwise
Q
core
=
_

_
0.999781 0.231192 0 0 0
0.231192 0.524886 0 0 0
0 0 0.262931 0 0
0 0 0 0.266810 0
0 0 0 0 0.159914
_

_
As propriedades materiais das peles sao obtidas das do n ucleo multiplicando-
as por um factor R:
Q
skin
= RQ
core
Neste exemplo, normalizam-se os resultados na forma
w = w(a/2, a/2, 0)
0.999781
hq

1
x
=

(1)
x
(a/2, a/2, h/2)
q
;
2
x
=

(1)
x
(a/2, a/2, 2h/5)
q
;
3
x
=

(2)
x
(a/2, a/2, 2h/5)
q

1
y
=

(1)
y
(a/2, a/2, h/2)
q

2
y
=

(1)
y
(a/2, a/2, 2h/5)
q
;
3
y
=

(2)
y
(a/2, a/2, 2h/5)
q

1
xz
=

(2)
xz
(0, a/2, 0)
q
;
2
xz
=

(2)
xz
(0, a/2, 2h/5)
q
Para diferentes valores de R, apresentam-se nas tabelas seguintes os re-
sultados na forma de deslocamentos transversais, tensoes normais e tensoes
de corte transverso. Comparam-se os resultados com os obtidos por solucoes
anaaliticas de terceira ordem de Pandya [129], uma formulacao de elementos
nitos de casca de primeira ordem de [126] e com uma formulacao sem malha
de Ferreira e colegas [103]. A qualidade da formulacao presente e evidente.
Metodo w
1
x

2
x

3
x

1
xz

2
xz
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 pressao uniforme- R = 5
13.2 Laminado sandwich com 3 camadas 229
Metodo w
1
x

2
x

3
x

1
xz

2
xz
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 pressao uniforme- R = 10
Metodo w
1
x

2
x

3
x

1
xz

2
xz
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 pressao uniforme - R = 15
Apresenta-se o codigo (vibracoesPlacaLAYERWISEQ4.m) para a solucao de
problemas de placa laminada encastrada ou simplesmente apoiada, recorrendo
`a 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 Introducao
Considera-se aqui teoria de deformacao de corte de primeira ordem, que neces-
sita de factor de correccao de corte, para a analise de laminados compositos.
14.1.1 Campo de deslocamentos
Considere-se a teoria de placa de primeira ordem de Mindlin, onde o desloca-
mento transversal w e constante atraves da espessura da placa, na forma
u(x, y, z) = u
0
(x, y) +z
x
(x, y)
v(x, y, z) = v
0
(x, y) +z
y
(x, y)
w(x, y, z) = w
0
(x, y) (14.1)
onde
x
,
y
sao as rotacoes de primeira ordem. Os deslocamentos do plano
medio sao u
0
, v
0
, w
0
, segundo os tres eixos coordenados.
14.1.2 Campo de deformacoes
Podemos encontrar as deformacoes pelas relacoes deformacao-deslocamento,
na forma
240 14 Teoria de placa de primeira ordem para laminados
_

xx

yy

xy

xz

yz
_

_
=
_

_
u
x
v
y
u
y
+
v
x
u
z
+
w
x
v
z
+
w
y
_

_
(14.2)
ou por
=
_
_
_

xx

yy

xy
_
_
_
=
_

m
xx

m
yy

m
xy
_

_
+z
_

f
xx

f
yy

f
xy
_

_
(14.3)
=
_

xz

yz
_
=
_

(0)
xz

(0)
yz
_

_
(14.4)
onde as componentes de deformacao sao descritas por
_

m
xx

m
yy

m
xy
_

_
=
_

_
u
0
x
v
0
y
u
0
y
+
v
0
x
_

_
;
_

f
xx

f
yy

f
xy
_

_
=
_

x
x

y
y

x
y
+

y
x
_

_
(14.5)

0
=
_

(0)
xz

(0)
yz
_

_
=
_

_
w
0
x
+
x
w
0
y
+
y
_

_
(14.6)
14.1 Introducao 241
Tendo em conta a abordagem de placa, ou seja, desprezando a tensao
normal transversa,
z
, podem denir-se as relacoes tensao-deformacao
=
_
_
_

xy
_
_
_
=
_

_
E
1
2

E
1
2
0

E
1
2
E
1
2
0
0 0 G
_

_
_
_
_

xy
_
_
_
= D (14.7)
=
_

xz

yz
_
=
_
K
1
G 0
0 K
2
G
_ _

xz

yz
_
= D
c
(14.8)
Note-se que nesta teoria sao necessarios os factores de correccao de corte,
K
1
, K
2
.
Nas interfaces das camadas exige-se a continuidade das tensoes de corte
transverso, sendo que a deformacao de corte transverso e considerada cons-
tante na teoria de placa de priomeira ordem ( o que e uma aproximacao
grosseira para a evolucao parabolica).
Assumindo uma placa livre de tensoes tangenciais, pode escrever-se a
equacao de equilibrio na direccao x

x
x
+

xy
y
+

xz
z
= 0 (14.9)
Assumindo exao cilindrica,

xz
=
_
z
h/2

x
x
dz =
_
z
h/2
M
x
x
D
1
(z)
R
1
zdz =
Q
x
R
1
_
z
h/2
D
1
(z)zdz =
Q
x
R
1
g(z)
(14.10)
onde Q
x
representa a forca de corte no plano xz; R
1
=
_
h/2
h/2
D
1
(z)z
2
dz
representa a rigidez da placa na direccao x; z e a coordenada atraves da
espessura; g(z) =
_
z
h/2
D
1
(z)zdz representa a funcao de forma do corte.
Esta funcao g(z) que representa o diagrama da tensao de corte torna-se a
funcao parabolica g(z) = [D
1
h
2
/8][1 4(z/h)
2
] para seccoes homogeneas.
A componente de energia de deformacao e dada por
w
s
=
_
h/2
h/2

2
xz
G
13
(z)
dz =
Q
2
x
R
2
1
_
h/2
h/2
g
2
(z)
G
13
(z)
dz (14.11)
242 14 Teoria de placa de primeira ordem para laminados
onde G
13
(z) e o modulo de corte, variavel atraves da espessura, no plano
xz. Supondo energia de deformacao de corte constante, a componente de de-
formacao e dada por
w
s
=
_
h/2
h/2

xz
G
13
(z)
xz
dz =
Q
2
x
h
2
G
2
1
hG
1
=
Q
2
x
hG
1
(14.12)
onde
hG
1
=
_
h/2
h/2
G
13
(z)dz (14.13)
e onde
xz
e o valor medio das deformacoes de corte.

E entao agora possvel
calcular o factor de correcc ao de corte transverso k
1
no plano xz na forma
k
1
=
w
s
w
s
=
R
2
1
hG
1
_
h/2
h/2
g
2
(z)/G
13
(z)dz
(14.14)
Para o factor k
2
procede-se de forma identica. Esta formulacao para calculo
dos factores de correccao 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 deformacao, podemos
escrever
U =
1
2
_
V

T
+
T
dV (14.15)
ou
U =
1
2
_
V
_

m
+z
f

T
D
_

m
+z
f

+
_

(0)
_
T
D
c
_

(0)
_
dV (14.16)
Substituindo as deformacoes e as tensoes nesta expressao da energia, ob-
temos entao a matriz de rigidez do elemento, na forma
K
(e)
= K
(e)
mm
+K
(e)
ff
+K
(e)
cc
(14.17)
onde K
(e)
mm
representa a matriz de rigidez de membrana, K
(e)
ff
representa a
matriz de rigidez de exao com termos de primeira ordem, K
(e)
cc
representa a
matriz de rigidez de corte. De seguida apresentam-se todas essas componentes
da matriz de rigidez.
14.3 Matrizes de deformacao-deslocamento B 243
K
(e)
mm
=
_
A
_
h/2
h/2

T
m
dzdA =
_
A
_
h/2
h/2

T
m
D
m
dzdA = h
_
A

T
m
D
m
dA
(14.18)
K
(e)
ff
=
_
A
_
h/2
h/2
z
T
f
dzdA =
_
A
_
h/2
h/2
z
2

T
f
D
f
dzdA =
h
3
12
_
A

T
f
D
f
dA
(14.19)
K
(e)
cc
=
_
A
_
h/2
h/2

T
0
D
c

0
dzdA = h
_
A

T
0
D
c

0
dA (14.20)
14.3 Matrizes de deformacao-deslocamento B
Em funcao das componentes da matriz de rigidez, e possvel construir as
matrizes de deformacao-deslocamento B, nas componentes de membrana
B
(e)
m
=
_

_
N
x
0 0 0 0
0
N
y
0 0 0
N
y
N
x
0 0 0
_

_
(14.21)
de exao de primeira ordem
B
(e)
f
=
_

_
0 0 0
N
x
0 0 0 0
N
y
0 0 0
N
y
N
x
_

_
(14.22)
e de corte
B
(e)
c0
=
_

_
0 0
N
x
N 0
0 0
N
y
0 N
_

_
(14.23)
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, u
T
= [u
0
, v
0
, w
0
,
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 interpretacao do
codigo, sendo de notar a organizacao dos graus de liberdade (para aproveitar
a compactacao do MATLAB), na forma
u
T
= [w
1
w
N
,
x1

xN
,
y1

yN
, u
1
u
N
, v
1
v
N
] (14.24)
14.4 Laminado sandwich com 3 camadas
Considera-se um laminado sandwich com tres 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 ucleo
Q
core
=
_

_
0.999781 0.231192 0 0 0
0.231192 0.524886 0 0 0
0 0 0.262931 0 0
0 0 0 0.266810 0
0 0 0 0 0.159914
_

_
As propriedades materiais das peles sao obtidas das do n ucleo multiplicando-
as por um factor R:
Q
skin
= RQ
core
Neste exemplo, normalizam-se os resultados na forma
w = w(a/2, a/2, 0)
0.999781
hq

1
x
=

(1)
x
(a/2, a/2, h/2)
q
;
2
x
=

(1)
x
(a/2, a/2, 2h/5)
q
;
3
x
=

(2)
x
(a/2, a/2, 2h/5)
q

1
y
=

(1)
y
(a/2, a/2, h/2)
q

2
y
=

(1)
y
(a/2, a/2, 2h/5)
q
;
3
y
=

(2)
y
(a/2, a/2, 2h/5)
q

1
xz
=

(2)
xz
(0, a/2, 0)
q
;
2
xz
=

(2)
xz
(0, a/2, 2h/5)
q
Para diferentes valores de R, apresentam-se nas tabelas seguintes os re-
sultados na forma de deslocamentos transversais, tensoes normais e tensoes
de corte transverso. Comparam-se os resultados com os obtidos por solucoes
analiticas de terceira ordem de Pandya [129], uma formulacao de elementos
nitos de casca de primeira ordem de Ferreira [126] e com uma formulacao
sem malha de Ferreira e colegas [103]. A qualidade da formulacao presente e
evidente, `a excepcao das tensoes de corte transverso.
Regista-se a necessidade de corrigir posteriormente as tensoes de corte
transverso, na forma
14.4 Laminado sandwich com 3 camadas 245

cor
xz
=

G
13

xz
g(z)
g
(14.25)
onde
g =
_
h/2
h/2
g(z)dz (14.26)
Em alternativa, haveria que calcular as tensoes de corte transverso atraves
das equacoes de equilibrio.
Metodo w
1
x

2
x

3
x

1
xz

2
xz
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 pressao uniforme- R = 5
Metodo w
1
x

2
x

3
x

1
xz

2
xz
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 pressao uniforme- R = 10
246 14 Teoria de placa de primeira ordem para laminados
Metodo w
1
x

2
x

3
x

1
xz

2
xz
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 pressao uniforme - R = 15
Apresenta-se o codigo (placaFSDTQ4DOF5SRINIVAS.m) para a solucao de
problemas de placa laminada encastrada ou simplesmente apoiada, recorrendo
`a 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
Analise de solidos tridimensionais
15.1 Introducao
A maior parte dos problemas de engenharia sao tridimensionais. Em muitos
casos nao e possvel ou desejavel adoptar as simplicacoes de estado plano
de tensao ou outros. Neste captulo realiza-se a analise por elementos nitos
de problemas tridimensionais. Depois de apresentar os principais vectores e
matrizes de interesse para o problema, formulam-se os elementos tetraedrico
de 4 nos e o elemento hexaedrico de 8 nos.
Neste captulo apresenta-se tambem um programa de elementos nitos em
MATLAB, que serve para resolver o problema duma barra prismatica em
traccao.
15.2 Campo de deslocamentos
O campo de deslocamentos e dado por
u
T
= [u, v, w] (15.1)
onde u, v, w sao os deslocamentos segundo os tres eixos cartesianos x, y, z.
15.3 Campo de deformacoes
As deformacoes sao obtidas por derivacao dos deslocamentos, na forma

T
= [
x
,
y
,
z
,
xy
,
xz
,
yz
] (15.2)
onde
258 15 Analise de solidos tridimensionais
[
x
,
y
,
z
,
xy
,
xz
,
yz
] =
_
u
x
,
v
y
,
w
z
,
u
y
+
v
x
,
u
z
+
w
x
,
v
z
+
w
y
_
(15.3)
ou
= Bd (15.4)
onde B representa a chamada matriz de deformacoes, essencial para o calculo
de elementos nitos, que e composta apenas por derivadas. Tendo em conta
a necessidade de transformacoes de eixos naturais e cartesianos, em muitos
casos, como por exemplo em solidos 3D ou em cascas genericas, esta matriz
pode ser de calculo complexo e representar uma boa parte da diculdade do
problema.
15.4 Campo de tensoes
Tendo em conta um material isotropico, com matriz de elasticidade
D =
E
(1 +)(1 2)
_

_
1 0 0 0
1 0 0 0
1 0 0 0
0 0 0 0.5 0 0
0 0 0 0 0.5 0
0 0 0 0 0 0.5
_

_
(15.5)
a relacao entre tensoes e deformacoes e dada por
= D (15.6)
onde

T
= [
x
,
y
,
z
,
xy
,
xz
,
yz
] (15.7)
15.5 Elemento tetraedrico de 4 nos
Considere-se o elemento tetraedrico de 4 nos conforme ilustrado na gura 15.1.
Considere-se agora o elemento padrao na gura 15.2 onde se denem as funcoes
de forma Lagrangianas N
1
, N
2
, N
3
e N
4
, na forma
N
1
= ; N
2
= ; N
3
= ; N
4
= 1 (15.8)
Os deslocamentos u, v, w podem agora ser calculados em termos dos desloca-
mentos nodais
15.5 Elemento tetraedrico de 4 nos 259
Figura 15.1. Elemento tetraedrico de 4 nos
4 (0,0,0)

1 (1,0,0)
2 (0,1,0)
3 (0,0,1)
Figura 15.2. Elemento padrao para funcoes de forma
260 15 Analise de solidos tridimensionais
U = Nu (15.9)
onde a matriz de funcoes de forma N e dada por
N =
_

_
N
1
0 0 N
2
0 0 N
3
0 0 N
4
0 0
0 N
1
0 0 N
2
0 0 N
3
0 0 N
4
0
0 0 N
1
0 0 N
2
0 0 N
3
0 0 N
4
_

_
(15.10)
Note-se que esta matriz de funcoes de forma pode tambem interpolar a geome-
tria da mesma forma que realiza a interpolacao dos deslocamentos (formulacao
isoparametrica).
Assim, podem obter-se as coordenadas
x = N
1
x
1
+N
2
x
2
+N
3
x
3
+N
4
x
4
y = N
1
y
1
+N
2
y
2
+N
3
y
3
+N
4
y
4
z = N
1
z
1
+N
2
z
2
+N
3
z
3
+N
4
z
4
(15.11)
Usando agora a notacao x
ij
= x
i
x
j
, y
ij
= y
i
y
j
, z
ij
= z
i
z
j
, obtemos
x = x
4
+x
14
+x
24
+x
34

y = y
4
+y
14
+y
24
+y
34

z = z
4
+z
14
+z
24
+z
34

(15.12)
Usando a regra da cadeia para derivadas parciais, por exemplo, para u, obte-
mos
_

_
u

_
= J
_

_
u
x
u
y
u
z
_

_
(15.13)
onde a matriz jacobina J da transformacao e expressa por
J =
_

_
x

_
=
_

_
x
14
y
14
z
14
x
24
y
24
z
24
x
34
y
34
z
34
_

_
(15.14)
15.5 Elemento tetraedrico de 4 nos 261
Note-se tambem que
detJ = x
14
(y
24
z
34
y
34
z
24
) +y
14
(z
24
x
34
z
34
x
24
) +z
14
(x
24
y
34
x
34
y
24
)
(15.15)
O volume do elemento nito e obtido por
V
e
=

_
1
0
_
1
0
_
1
0
detJddd

(15.16)
Dado que det J e constante, podemos escrever
V
e
= |detJ|
_
1
0
_
1
0
_
1
0
ddd (15.17)
Usando a formula
_
1
0
_
1
0
_
1
0

p
ddd =
m!n!p!
(m+n +p + 3)!
(15.18)
podemos nalmente obter
V
e
=
1
6
|detJ| (15.19)
Escrevendo uma relacao inversa da de (15.13),
_

_
u
x
u
y
u
z
_

_
= J
1
_

_
u

_
(15.20)
onde a inversa da matriz jacobiana e expressa por
J
1
=
1
detJ
_

_
y
24
z
34
y
34
z
24
y
34
z
14
y
14
z
34
y
14
z
24
y
24
z
14
z
24
x
34
z
34
x
24
z
34
x
14
z
14
x
34
z
14
x
24
z
24
x
14
x
24
y
34
x
34
y
24
x
34
y
14
x
14
y
34
x
14
y
24
x
24
y
14
_

_
(15.21)
Podemos agora obter a matriz de deformacoes B. Chamando A = J
1
,
B =
_

_
A
11
0 0 A
12
0 0 A
13
0 0

A
1
0 0
0 A
21
0 0 A
22
0 0 A
23
0 0

A
2
0
0 0 A
31
0 0 A
32
0 0 A
33
0 0

A
3
0 A
31
A
21
0 A
32
A
22
0 A
33
A
23
0

A
3

A
2
A
31
0 A
11
A
32
0 A
12
A
33
0 A
13

A
3
0

A
1
A
21
A
11
0 A
22
A
12
0 A
23
A
13
0

A
2

A
1
0
_

_
(15.22)
262 15 Analise de solidos tridimensionais
onde

A
1
= A
11
+ A
12
+ A
13
,

A
2
= A
21
+ A
22
+ A
23
,

A
3
= A
31
+ A
32
+ A
33
.
Note-se que sendo todos os termos da matriz B constantes, as deformacoes
sao portanto constantes no interior do elemento.
15.5.1 Matriz de rigidez
Sendo B e D constantes, a matriz de rigidez e portanto obtida por
K
e
= B
T
DBV
e
= B
T
DB
1
6
detJ (15.23)
15.5.2 Vector de forca equivalente
O termo do vector de forca equivalente `as forcas de corpo e o seguinte
_
V
e
u
T
f dV = u
T
_
V
e
N
T
f detJddd (15.24)
Usando (15.18) pode entao chegar-se a
f =
V
e
4
[f
x
, f
y
, f
z
, ..., f
x
, f
y
, f
z
]
T
(15.25)
cujo vector tem uma dimensao 121. Considere-se agora uma traccao unifor-
memente distribuida na supercie de fronteira, que neste caso e um triangulo.
Tomando A como a area da supercie onde a forca e aplicada formada pelos
nos 1, 2 e 3, entao
T
e
=
A
e
3
[T
x
, T
y
, T
z
, T
x
, T
y
, T
z
, T
x
, T
y
, T
z
, 0, 0, 0]
T
(15.26)
15.5.3 Calculo de tensoes
Depois de calculados os deslocamentos nodais, podem calcular-se as de-
formacoes atraves de = Bd e as tensoes por
= D = DBd (15.27)
15.6 Elemento hexaedrico lagrangiano recto de 8 nos
As funcoes de forma do elemento hexaedrico lagrangiano recto de 8 nos (B8),
que e um dos elementos 3D mais simples, sao dadas por
N
i
(, , ) =
1
8
(1 +
i
)(1 +
i
)(1 +
i
) (15.28)
O codigo MATLAB possvel para o calculo das funcoes de forma e suas deri-
vadas em ordem `as coordenadas naturais , , e apresentado a seguir.
15.7 Exemplo: Barra em traccao 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 diferenca fundamental para o elemento tetraedrico prende-se com o calculo
do volume do elemento que precisa de ser calculado numericamente. A ex-
pressao da matriz de rigidez e agora
K
e
=
_
1
1
_
1
1
_
1
1
B
T
DBdetJddd (15.29)
Este elemento e bastante bom para problemas em que os esforcos de com-
pressao ou traccao predominem, mas relativamente pouco preciso em esforcos
de exao.
15.7 Exemplo: Barra em traccao
Considera-se uma barra prismatica (229) sujeita a traccao uniforme, com
carga tractiva P = 4, encastrada no plano x = 0. O deslocamento na ponta
livre e dado por
PL
EA
, onde L = 9 e o comprimento da barra, E = 160GPa
e o modulo de elasticidade do material, = 0.3 representa o coeciente de
Poisson e A = 2 2 e a area (constante) da seccao transversal.
Para este problema, com a malha indicada na gura 15.3, o erro e de 2.4%,
o que pode ser considerado satisfatorio, tendo em conta o tipo de elemento e
a malha grosseira usada. Nesta gura apresenta-se a deformada obtida com 3
elementos prismaticos B8, conforme codigo MATLAB apresentado a seguir.
264 15 Analise de solidos tridimensionais
!
"
#
$
%
!"
!
"
#
!"
!&
!
&
"
'
#
Figura 15.3. Barra prismatica sujeita `a traccao uniforme
15.8 Programa para analisar barra 3D em traccao
Apresenta-se o codigo (barraTraccao3D.m) para a solucao de problemas trid-
mensionais, com elementos c ubicos de 8 nos.
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 traccao 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 Analise de solidos 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 traccao 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 Analise de solidos 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
Analise de cascas com elementos planos
16.1 Introducao
A analise de cascas por elementos nitos pode fazer-se atraves de elemen-
tos planos ou curvos, diferindo bastante na formulacao e na estrategia de
resolucao.
A solucao de problemas de casca atraves de eleemntos planos consiste na
juncao de elementos de estado plano de tensao com elementos de placa. Os
primeiros asseguram a deformacao de membrana enquanto que os segundos
asseguram a contribuicao da exao.
Quando uma casca tem raio de curvatura innito, torna-se uma placa.
Quando se divide uma casca num n umero de elementos nitos, cada um des-
tes elementos pode ser uma placa, conforme gura 16.1. A combinacao de ele-
mentos planos de tensao e elementos de placa compreende os seguintes graus
de liberdade locais: u

, v

para elementos planos e w

y
para elementos de
placa, conforme ilustrado na gura 16.2.
x, u
z, w
y, v
Figura 16.1. Divisao duma casca curva em elementos de placa
270 16 Analise de cascas com elementos planos
x

, u

, u

, v

+
z

, w

x
y
=
z

, w

, v

x
y
Figura 16.2. Graus de liberdade locais do elemento de casca plana
16.2 Graus de liberdade locais e globais
A relacao entre os graus de liberdade locais e globais pode ser expressa na
forma
_

_
u
v
w

z
_

_
local
=
_

_
l
11
l
12
l
13
0 0 0
l
21
l
22
l
23
0 0 0
l
31
l
32
l
33
0 0 0
0 0 0 l
11
l
12
l
13
0 0 0 l
11
l
12
l
13
0 0 0 l
11
l
12
l
13
_

_
_

_
u
v
w

z
_

_
global
(16.1)
ou
d
local
= Td
global
(16.2)
onde (
z
)
local
representa uma rotacao que pretende simular o facto duma
rotacao de exao dum elemento representar uma rotacao segundo o eixo z

noutro elemento. Nesta perspectiva, pode escrever-se em termos locais


_
_
K
m
0 0
0 K
m
0
0 0 0
_
_
_
_
_
d
m
d
f

z
_
_
_
=
_
_
_
f
m
f
f
0
_
_
_
(16.3)
onde os indices m e f representam os termos de membrana e exao, res-
pectivamente. para cada no dum elemento nito de casca de 4 nos, temos de
estabelecer a relacao (16.2). Para este elemento temos entao
16.3 Codigo para solucao de problema de casca plana 271
T =
_

_
T 0 0 0
0 T 0 0
0 0 T 0
0 0 0 T
_

_
(16.4)
A matriz de rigidez no sistema global e entao obtida atraves de (16.4) e da
matriz de rigidez local, na forma
K
global
= T
T
K
local
T (16.5)
enquanto que o vector de forcas global e obtido por
f
global
= T
T
f
local
(16.6)
Quando a casca se torna completamente plana, resultando portanto numa
placa, a matriz de rigidez torna-se singular, sendo necessario introduzir um
pequeno escalar em (16.7) para (cticiamente) resolver o sistema de equacoes,
cando a equacao de equilibrio na forma
_
_
K
m
0 0
0 K
m
0
0 0
_
_
_
_
_
d
m
d
f

z
_
_
_
=
_
_
_
f
m
f
f
0
_
_
_
(16.7)
onde e um valor pequeno. No codigo que se apresenta a seguir, usamos
= 10e 5.
16.3 Codigo para solucao de problema de casca plana
Considere-se o exemplo da gura 16.3, onde um casca cilindrica e sujeita a
uma carga distribuida q = 90, correspondente ao peso proprio. Pretende-se
obter o deslocamento em B, comparando-o com a referencia
1
. O deslocamento
no ponto B e e 0.3894 para uma malha de 2 2 elementos e 0.2979 para uma
malha de 4 4 elementos. O valor exacto (da referencia) e 0.3024.
Apresentam-se os codigos (MindlinShellEx4elem.m) e rotinas (MindlinShellElem.m)
(ShellDirectionCosines.m) para a solucao de problemas de casca plana (exemplo
da gura 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 nite
elements, Finite Elements in Analysis and Design, Vol. 1, 1985, 3-20
272 16 Analise de cascas com elementos planos
40

Parede rigida
z, w
x, u
y, v
A
B
D
R
L
Livre
sim
sim
L=50
R=25
t=0.25
E=4.32e8
= 0
q=90
u = w = s = 0
C

Figura 16.3. Exemplo de aplicacao 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 Codigo para solucao 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 Analise 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 Codigo para solucao 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
Analise de vibracoes livres
17.1 Introducao
Neste captulo faz-se a analise de vibracoes livres de varios tipos de estruturas,
atraves do metodo dos elementos nitos. Apresenta-se uma explicacao teorica
do metodo, com calculo das matrizes de massa e de rigidez para varios tipos de
elementos e apresentam-se varios programas MATLAB que resolvem alguns
problemas tipicos.
17.2 Equacoes de movimento
Considere-se o principio de Hamilton que estabelece
_
t2
t1
((T U) +W)dt = 0 (17.1)
onde U e a energia potencial do sistema, T e a energia cinetica e W o
trabalho das forcas nao conservativas. Consideram-se neste captulo a energia
potencial enquanto energia de deformacao elastica.
A ttulo de exemplo, considere-se o sistema de massa simples e mola da
gura 17.1.
Podemos usar o principio de Hamilton para derivar as equacoes de movi-
mento do sistema, onde
U =
1
2
ku
2
(17.2)
T =
1
2
m u
2
(17.3)
W = fu (17.4)
278 17 Analise de vibracoes livres
u(t), f(t)
k
m
Figura 17.1. Sistema de massa e mola
Note-se que u representa a primeira derivada em ordem ao tempo, u =
du
dt
.
Substituindo em (17.1), obtemos
_
t2
t1
(
1
2
m u
2

1
2
ku
2
)dt +
_
t2
t1
fudt = 0 (17.5)
ou seja
1
_
t2
t1
(m u u kuu +fu)dt = 0 (17.6)
Integrando por partes o primeiro termo, obtemos
_
t2
t1
m u udt = [m uu]
t2
t1

_
t2
t1
m uudt =
_
t2
t1
m uudt (17.7)
porque u e nulo em t
1
e t
2
.
Substituindo (17.7) em (17.6), obtemos entao
_
t2
t1
(m u ku +f)udt = 0 (17.8)
Dado que u e arbitrario, a equacao (17.8) so pode ser satisfeita se
m u +ku = f (17.9)
o que representa a equacao de movimento do sistema, sem termos
dissipativos.
Tomando agora o sistema da gura 17.2, a energia cinetica do sistema e
dada por
T =
1
2
m
1
u
2
1
+
1
2
m
2
u
2
2
(17.10)
e a energia de deformac ao e obtida por
1
Note-se que aqui u = (du/dt) = d/dt(u)
17.2 Equacoes de movimento 279
f2
k1
m1
k2
m2
u1 u2
Figura 17.2. Sistema de massa e mola, com 2 graus de liberdade
U =
1
2
k
1
u
2
1
+
1
2
k
2
(u
2
u
1
)
2
=
1
2
(k
1
+k
2
)u
2
1
k
2
u
1
u
2
+
1
2
k
2
u
2
2
(17.11)
O trabalho realizado pelas forcas exteriores e obtido por
W = f
2
u
2
(17.12)
As equacoes de Lagrange sao expressas, para sistemas com varios graus de
liberdade, na forma (desprezando os termos dissipativos)
d
dt
_
T
q
j
_
+
U
q
j
= Q
j
, j = 1, 2, ..., n (17.13)
sendo q
j
, q
j
os deslocamentos e velocidades generalizadas e Q
j
as forcas gene-
ralizadas.
Aplicando entao as equacoes de Lagrange a (17.10)-(17.12), obtem-se
m
1
u
1
+ (k
1
+k
2
)u
1
k
2
u
2
= 0, m
2
u
2
k
2
u
1
+k
2
u
2
= f
2
(17.14)
ou, na forma matricial
_
m
1
0
0 m
2
_ _
u
1
u
2
_
+
_
k
1
+k
2
k
2
k
2
k
2
_ _
u
1
u
2
_
=
_
0
f
2
_
(17.15)
ou ainda
M q +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 aceleracoes e Q o vector
de forcas externas aplicadas no sistema estrutural.
Note-se que podemos escrever ainda, na forma matricial,
T =
1
2
q
T
M q; U =
1
2
q
T
Kq (17.17)
onde q representa o vector de velocidades do sistema.
280 17 Analise de vibracoes livres
17.3 Elemento de barra
Considere-se o elemento de barra da gura 17.3, com seccao constante de area
A e comprimento 2a. Considera-se ainda que a unica componente de tensao
nao nula e
x
, uniforme em cada seccao transversal.
dx
x = a x = a
P
u
x
Figura 17.3. Elemento de barra no sistema de coordenadas local
O trabalho realizado numa das faces do incremento dx e
x
A, sendo ainda

x
a componente de deformacao axial.
O trabalho realizado e entao
dW =
1
2

x
A
x
dx (17.18)
O trabalho armazenado como energia de deformacao dU e
dU =
1
2

x
Adx (17.19)
sendo ainda possivel obter a energia de deformacao total como
U =
1
2
_
a
a

x
Adx (17.20)
Assumindo um comportamento linear elastico do material da barra,

x
= E
x
(17.21)
onde E representa o modulo de elasticidade do material, podemos substi-
tuir (17.21) em (17.20)
U =
1
2
_
a
a
EA
2
x
dx (17.22)
A relacao entre a deformacao
x
e o deslocamento axial u e

x
=
du
dx
(17.23)
Podemos entao substituir (17.23) em (17.22) obtendo nalmente
17.3 Elemento de barra 281
U =
1
2
_
a
a
EA
_
du
dx
_
2
dx (17.24)
A energia cinetica dum pequeno incremento dx, e dada por 1/2 u
2
Adx,
onde e a massa por unidade de volume do material da barra. A energia
cinetica do elemento e entao denida por
T =
1
2
_
a
a
A u
2
dx (17.25)
Caso ocorra uma forca aplicada p, por unidade de comprimento, a forca
no incremento dx e pdx e o trabalho realizado num deslocamento virtual u
e pudx. O trabalho virtual para o elemento e entao
W =
_
a
a
pudx (17.26)
Considere-se o elemento nito de barra de 2 nos, conforme ilustrado na
gura 17.4, cujo campo de deslocamentos axiais e dado por
u = N
1
()u
1
+N
2
()u
2
(17.27)
onde
N
j
() =
1
2
(1 +
j
) (17.28)
sendo
j
a coordenada natural do no j,
j
[1, +1].
x
L = 2a
x = a, = 1 x = a, = 1
1 2

Figura 17.4. Elemento de barra de 2 nos


Em termos matriciais podemos escrever (17.27) na forma
u =
_
N
1
N
2

_
u
1
u
2
_
= Nu
e
(17.29)
Para um dado elemento e podemos exprimir a energia cinetica
T =
1
2
_
a
a
A u
2
dx =
1
2
_
1
1
A u
2
ad =
1
2
u
eT
Aa
_
1
1
N
T
Nd u
e
(17.30)
282 17 Analise de vibracoes livres
ou ainda
T =
1
2
u
eT
M
e
u
e
(17.31)
onde M
e
representa a matriz de massa do elemento, neste caso obtida por
M
e
= Aa
_
1
1
N
T
Nd (17.32)
Considerando as funcoes de forma do elemento de barra,
N
1
() =
1
2
(1 ) ; N
2
() =
1
2
(1 +) (17.33)
podemos calcular explicitamente a matriz de massa do elemento de barra,
na forma
2
M
e
= Aa
_
1
1
_
_
1
2
(1 )
1
2
(1 +)
_
_
_
1
2
(1 )
1
2
(1 +)

d =
Aa
3
_
2 1
1 2
_
(17.34)
Podemos agora exprimir a energia de deformacao do elemento, na forma
U =
1
2
_
a
a
EA
_
du
dx
_
2
dx =
1
2
_
1
1
EA
a
2
_
du
d
_
2
ad =
1
2
u
eT
_
1
1
EA
a
N

T
N

du
e
(17.35)
onde N

=
du
d
. A energia de deformacao e assim obtida por
U =
1
2
u
eT
K
e
u
e
(17.36)
onde K
e
representa a matriz de rigidez do elemento, neste caso obtida por
K
e
=
EA
a
_
1
1
N

T
N

d (17.37)
Para este elemento de barra, as derivadas das funcoes de forma sao
dN
1
d
=
1
2
;
dN
2
d
=
1
2
(17.38)
e portanto a matriz de rigidez pode ser denida explicitamente como
K
e
=
EA
a
_
1
1
_
_

1
2
1
2
_
_
_

1
2
1
2

d =
EA
2a
_
1 1
1 1
_
(17.39)
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 expressao que ja foi ante-
riormente obtida pelo principio dos trabalhos virtuais.
Note-se ainda que a soma dos termos em cada linha da matriz e zero, o
que mostra que se o elemento se movimentar como corpo rigido, as forcas de
recuperacao elastica sao nulas.
O trabalho realizado pelas forcas distribuidas e denido por
W
e
=
_
a
a
pudx =
_
1
1
puad = u
eT
a
_
1
1
pN
T
d (17.40)
ou
W
e
= u
eT
f
e
(17.41)
onde o vector de forcas nodais equivalentes a forcas distribuidas, para um
elemento de 2 nos e supondo uma forca constante p, e dado por
f
e
= a
_
1
1
pN
T
d =
ap
2
_
1
1
_
1
1 +
_
d = ap
_
1
1
_
(17.42)
Para uma barra composta por varios elementos, as expressoes das energias
sao obtidas pela soma (espalhamento) das energias de todos os elementos
individuais.
Considere-se, a ttulo de exemplo, a barra da gura 17.5, dividida em 4
elementos nitos e 5 nos.
Elemento
1 2 3 4
1 2 3 4 5
No
Figura 17.5. Barra dividida em 4 elementos de 2 nos
Neste exemplo o vector de deslocamentos da estrutura e
u
T
=
_
u
1
u
2
u
3
u
4
u
5

(17.43)
Somando
3
a contribuicao de todos os elementos, obtemos
T =
1
2
u
T
4

e=1
M
e
u =
1
2
u
T
M u (17.44)
3
tendo em conta a numerac ao dos graus de liberdade
284 17 Analise de vibracoes livres
U =
1
2
u
T
4

e=1
K
e
u =
1
2
u
T
K u (17.45)
W = u
T
4

e=1
f
e
= u
T
f (17.46)
onde M, K e f sao, respectivamente, a matriz de massa, a matriz de rigidez
e o vector de forcas da estrutura.
Verica-se entao que a matriz de massa da estrutura e obtida por
M =
Aa
3
_

_
_

_
2 1 0 0 0
1 2 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
_

_
. .
elemento 1
+
_

_
0 0 0 0 0
0 2 1 0 0
0 1 2 0 0
0 0 0 0 0
0 0 0 0 0
_

_
. .
elemento 2
+...
_

_
=
Aa
3
_

_
2 1 0 0 0
1 4 1 0 0
0 1 4 1 0
0 0 1 4 1
0 0 0 1 2
_

_
(17.47)
De igual modo, a matriz de rigidez da estrutura e obtida por
K =
EA
2a
_

_
1 1 0 0 0
1 2 1 0 0
0 1 2 1 0
0 0 1 2 1
0 0 0 1 2
_

_
(17.48)
e o vector de forcas nodais equivalentes `as forcas distribuidas expresso por
f = ap
_

_
1
2
2
2
1
_

_
(17.49)
As expressoes (17.47) a (17.49) sao agora substituidas nas equacoes de
Lagrange
M u +Ku = f (17.50)
Tendo em conta a analise de vibracoes livres (W = 0), assumindo um
movimento harmonico do tipo
u(t) = Asent (17.51)
onde A sao as amplitudes de vibracao e a frequencia de vibracao. Subs-
tituindo (17.51) em (17.50) obtem-se o problema generalizado de valores e
vectores proprios
17.3 Elemento de barra 285
_
K
2
M

A = 0 (17.52)
que tem solucao nao trivial se o determinante for nulo, ou seja

K
2
M

= 0 (17.53)
Considere-se, entao, a barra encastrada da gura 17.6, para a qual quere-
mos calcular as frequencias e os modos de vibracao.
F(t)
x = 0
x = L
Figura 17.6. Barra encastrada
A solucao exacta pelo metodo de Rayleigh-Ritz
4
para as frequencias na-
turais ou livres e referenciada como
Modo 1: = 1.571; Modo 2: = 4.712 (17.54)
onde a frequencia normalizada e obtida como
=
_
L
2
E
(17.55)
sendo L o comprimento da barra.
Usando uma solucao com apenas um elemento nito, obtemos
T =
1
2
_
u
1
u
2

AL
6
_
2 1
1 2
_ _
u
1
u
2
_
(17.56)
U =
1
2
_
u
1
u
2

AL
6
_
1 1
1 1
_ _
u
1
u
2
_
(17.57)
Impondo a condicao fronteira u
1
= 0 e substituindo, obtemos
_
EA
L
.1
2
AL
6
.2
_
A
2
= 0 (17.58)
4
Ver M. Petyt, Introduction to nite element vibration analysis, Cambridge Press,
1990
286 17 Analise de vibracoes livres
cuja solucao e
1
= 1.732
_
E
L
2
.
Usando uma solucao com 2 elementos nitos, cada um com comprimento
L/2, obtemos o seguinte sistema de equacoes (impondo u
1
= 0)
_
2EA
L
_
2 1
1 1
_

2
AL
12
_
4 1
1 2
__ _
A
1
A
2
_
= 0 (17.59)
Este sistema de equacoes tem como solucao analitica

1
= 1.610

E
L
2
;
2
= 5.628

E
L
2
(17.60)
com os modos de vibrac ao
_
_
0
0.707
1.0
_
_
e
_
_
0
0.707
1.0
_
_
Na tabela 17.1 compara-se a solucao por elementos nitos com os valores
exactos para as frequencias normalizadas
Modo Solucao EF Solucao exacta
1 ele. 2 elem.
1 1.732 1.610 1.571
2 - 5.628 4.712
Tabela 17.1. Comparacao de frequencias aproximadas por elementos nitos com
solucoes exactas
17.4 Programa MATLAB para barra encastrada
Na listagem a seguir apresentada resolve-se o problema de vibracoes livres
da barra encastrada. Registe-se que o MATLAB permite resolver o problema
de valores e vectores proprios com o comando eig(K,M) , sendo K,M as
matrizes de rigidez e massa do sistema. Note-se que de facto so se calculam
os valores e vectores proprios para os graus de liberdade activos (todos os que
nao sao prescritos nos apoios), fazendo
[V,D]=eig(K(activeDof,activeDof),M(activeDof,activeDof));
Note-se ainda que para o c alculo dos modos de vibracao podem ser incluidos
(como nulos) os valores nos apoios. Nao se usa essa tecnica neste codigo, mas
usa-se noutros codigos, em particular onde se pretende desenhar os modos
17.4 Programa MATLAB para barra encastrada 287
de vibracao. Note-se aqui o uso de duas tecnicas MATLAB interessantes. A
primeira e find que pretende encontrar os nos que respeitam uma dada
condicao, o que e muito util para impor condicoes fronteira. A segunda e
setdiff que nos permite rapida e concisamente denir quais os nos activos
(todos excepto os nos de fronteira).
Com este codigo, obtiveram-se os resultados apresentados na tabela 17.2.
Modo Solucao Elementos Finitos Solucao 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. Comparacao de frequencias aproximadas por elementos nitos com
solucoes exactas, usando o codigo barraVibracoes.m
Apresenta-se o codigo (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 Analise de vibracoes 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 gura 17.7, onde se assume que a vibracao
ocorre no plano principal xy da viga, que possui seccao transversal constante
de area A.
z
x, u
y, w
p
x = a
x = a
dx
Figura 17.7. Elemento de viga recto de 2 nos no sistema de coordenadas local
Assume-se, pela teoria de vigas de Euler-Bernoulli, que as seccoes pla-
nas indeformadas permanecem rectas e perpendiculares ao plano medio apos
deformacao.
Assim, o deslocamento u, a uma distancia y do eixo medio da viga e dado
por
17.5 Viga de Euler-Bernoulli 289
u = y
dw
dx
(17.61)
sendo w o deslocamento transverso (echa).
As componentes de deformacao sao obtidas por

x
=
u
x
= y

2
w
x
2
;
xy
=
u
y
+
w
x
= 0 (17.62)
A energia de deformacao e dada por
U =
1
2
_
V

x
dV =
1
2
_
V
E
2
x
dV (17.63)
Assumindo dV = dAdx, integrando na direccao z, obtemos
U =
1
2
_
a
a
EI
z
_

2
w
x
2
_
2
dx (17.64)
onde I
z
e o momento de inercia da seccao transversal da viga.
A energia cinetica num incremento pequeno dx e 1/2 w
2
Adx, sendo a
energia cinetica no elemento dada por
T =
1
2
_
a
a
A w
2
dx (17.65)
Havendo uma forca distribuida por unidade de comprimento, p, a forca
no incremento dx e pdx. O trabalho realizado num incremento virtual w e
pwdx, sendo o trabalho virtual para o elemento completo dado por
W =
_
a
a
pwdx (17.66)
Tendo em conta que e necessario tomar w e
dw
dx
como graus de liberdade
para cada no do elemento de viga, temos 4 graus de liberdade para um ele-
mento nito de 2 nos. Podemos usar funcoes de forma de Hermite, onde
w = N()w
e
(17.67)
onde
w
eT
=
_
w
1
dw
1
dx
w
2
dw
2
dx
_
(17.68)
sendo
290 17 Analise de vibracoes livres
N
1
() =
1
4
(2 3 +
2
) (17.69)
N
2
() =
1
4
(1
2
+
3
) (17.70)
N
3
() =
1
4
(2 + 3
2
) (17.71)
N
4
() =
1
4
(1 +
2
+
3
) (17.72)
Tendo em conta as expressoes das energias para o elemento de viga de
Euler-bernoulli e substituindo (17.67) e (17.69), podemos escrever
T =
1
2
_
a
a
A w
2
dx =
1
2
_
1
1
A w
2
ad =
1
2
w
eT
Aa
_
1
1
N
T
Nd w
e
(17.73)
onde a matriz de massa do elemento e obtida por
M
e
= Aa
_
1
1
N
T
Nd =
Aa
105
_

_
78 22a 27 13a
22a 8a
2
13a 6a
2
27 13a 78 22a
13a 6a
2
22a 8a
2
_

_
(17.74)
A energia de deformacao e obtida por
U =
1
2
_
a
a
EI
z
_

2
w
x
2
_
2
dx =
1
2
_
1
1
EI
z
a
4
_

2
w

2
_
2
ad
=
1
2
w
eT
EI
z
a
3
_
1
1
N

T
N

dw
e
(17.75)
onde N

=
d
2
N
d
2
, sendo a matriz de rigidez do elemento da viga dado por
K
e
=
EI
z
a
3
_
1
1
N

T
N

d =
EI
z
2a
3
_

_
3 3a 3 3a
3a 4a
2
3a 2a
2
3 3a 3 3a
3a 2a
2
3a 4a
2
_

_
(17.76)
O trabalho realizado pelas forcas distribuidas e denido por
W
e
=
_
a
a
pwdx =
_
1
1
pwad = w
eT
a
_
1
1
pN
T
d (17.77)
O vector de forcas nodais equivalentes e entao
17.5 Viga de Euler-Bernoulli 291
f
e
= ap
_
1
1
N
T
d =
ap
3
_

_
3
a
3
a
_

_
(17.78)
O processo de obtencao das frequencias naturais ou livres e dos modos de vi-
bracao para o elemento de viga e identico ao do elemento de barra. Considere-
se a ttulo de exemplo a viga encastrada da gura 17.8, para a qual se pre-
tendem estudar as frequencias naturais.
w
x
x = L
x = 0
Figura 17.8. Viga encastrada
Usando uma solucao com 1 elemento nito, colocando as condicoes fron-
teira correspondentes ao encastramento, w
1
= w

1
= 0, obtemos o seguinte
sistema de equacoes
_
EI
z
L
3
_
12 6L
6L 4L
2
_

2
AL
210
_
78 11L
11L 2L
2
__ _
w
2

2
_
= 0 (17.79)
Obtemos entao as frequencias naturais

1
= 3.533

EI
z
AL
4
(17.80)

2
= 34.807

EI
z
AL
4
(17.81)
com as solucoes exactas de Rayleigh-Ritz

1
= 3.516

EI
z
AL
4
(17.82)

2
= 22.035

EI
z
AL
4
(17.83)
Embora haja alguma discrepancia para a segunda frequencia, isso podera
ser melhorado aumentando o n umero de elementos.
292 17 Analise de vibracoes livres
17.6 Codigo MATLAB para vibracoes livres de vigas
nas
Na listagem a seguir apresentada resolve-se o problema de vibracoes livres da
viga encastrada. Com este c odigo, obtiveram-se os resultados apresentados na
tabela 17.3.
Modo Soluc ao Elementos Finitos Solucao 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. Comparacao de frequencias aproximadas por elementos nitos com
solucoes exactas, usando o codigo vigaBernoulliVibracoes.m
Apresenta-se o codigo (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 Vibracoes 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 Vibracoes livres de vigas Timoshenko
O elemento de viga espessa ou viga de Timoshenko considera efeitos de es-
forcos de corte transverso, ao contrario do que acontecia com a viga de Euler-
Bernoulli. Em vigas espessas, as ondas de exao tem velocidades bem menores
que as ondas de membrana, pelo que se tornam relevantes os efeitos de corte
transverso na energia de deformacao, bem como a consideracao da rotacao da
seccao na energia cinetica.
Embora se continue a assumir que as seccoes transversais permanecam
planas, elas nao cam necessariamente normais ao eixo neutro da viga. Desta
forma, o deslocamento u e obtido por
u = y
z
(17.84)
onde
z
(x) e a rotacao da seccao transversal numa dada posicao do eixo dos
x.
As deformacoes nao nulas
x
e
xy
sao denidas por

x
=
u
x
= y

z
x
(17.85)

xy
=
u
y
+
w
x
=
x
+
w
x
(17.86)
sendo w o deslocamento transversal da viga, segundo o eixo dos y.
A energia de deformacao no elemento e a soma das energias de exao e de
corte transverso,
294 17 Analise de vibracoes livres
U =
1
2
_
V

x
dV +
1
2
_
V

xy

xy
dV (17.87)
onde a tensao normal e dada por

x
= E
x
(17.88)
e a tensao de corte transverso e obtida por

xy
= kG
xy
(17.89)
sendo G o modulo de corte
G =
E
2(1 +)
(17.90)
e k e habitualmente designado por factor de correccao ao corte, tipicamente
5/6 ou
2
/12 em vibracoes livres. Este factor aparece pelo facto desta teoria
desprezar a variacao parabolica da deformacao atraves da seccao transversal.
Substituindo estas expressoes na energia de deformacao, considerando dV =
dAdx e integrando atraves da espessura, obtem-se
U =
1
2
_
V
E
2
x
dV +
1
2
_
V
kG
2
xy
dV =
1
2
_
a
a
EI
z
_

z
x
_
2
dx +
1
2
_
a
a
kAG
_
w
x

z
_
2
dx (17.91)
A energia cinetica da viga e composta de duas partes, uma relativa `a
translacao, outra relativa `a rotacao, na forma
T =
1
2
_
a
a
A w
2
dx +
1
2
_
a
a
I
z

2
z
dx (17.92)
A expressao para o trabalho das forcas exteriores e identica `a das vigas de
Euler-Bernoulli, ou seja
W =
_
a
a
pwdx (17.93)
Considerando agora um elemento nito de 2 nos, representado na gura
17.9, onde cada no possui 2 graus de liberdade independentes, w e
z
.
A interpolacao de deslocamentos e agora independente, ou seja,
w = Nw
e
(17.94)

z
= N
e
z
(17.95)
onde
17.8 Codigo MATLAB para vibracoes de vigas Timoshenko 295
x = a
L = 2a
x 1 2

z1

z2
w
1
w
2
x = a
Figura 17.9. Elemento de viga espessa de dois nos
N =
_
1
2
(1 )
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
K
e
=
_
1
1
EI
z
a
2
_
dN
d
_
T
_
dN
d
_
ad+
_
1
1
kGA
_
1
a
dN
d
N
_
T
_
1
a
dN
d
N
_
ad
(17.97)
M
e
=
_
1
1
AN
T
Nad +
_
1
1
I
z
N
T
Nad (17.98)
17.8 Codigo MATLAB para vibracoes de vigas
Timoshenko
No codigo MATLAB a seguir listado resolve-se o problema da viga encastrada
na, conforme ilustrado na gura 17.8. Para o efeito, considerou-se L = 1, h =
0.001, bem como uma adimensionalizacao
= L
2
_
A
EI
z
(17.99)
Os resultados para este exemplo de viga na encastrada, em termos da
frequencia adimensional sao apresentados na tabela 17.4.
Apresenta-se o codigo (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 Analise de vibracoes livres
Modo Solucao Elementos Finitos Solucao 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. Comparacao de frequencias aproximadas por elementos nitos com
solucoes exactas, de viga na encastrada, usando o codigo 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 Codigo MATLAB para vibracoes 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 Analise de vibracoes 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 gura 17.10 ilustram-se os primeiros 4 modos de vibracao da viga
encastrada, tal como calculado pelo codigo vigaTimoshenkoVibracoes.m.
17.9 Exemplo de Lee e Schultz 299
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!100
0
100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!100
0
100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!100
0
100
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!100
0
100
Figura 17.10. Primeiros 4 modos de vibracao para uma viga encastrada em x = 0
( = 0.3)
17.9 Exemplo de Lee e Schultz
No proximo codigo MATLAB, considera-se um exemplo ilustrado no artigo
de Lee e Schultz
5
. Consideram-se vigas encastradas e simplesmente apoiadas
nos dois apoios (x = 0, x = L).
As frequencias sao adimensionalizadas na forma referida na expressao
(17.99). Considera-se um factor de correccao ao corte transverso de 5/6.
Os resultados estao ilustrados nas tabelas (17.5) e (17.6). Os resultados
comparam de forma excelente com os apresentados por Lee e Schultz.
Nas guras 17.11 e 17.12 ilustram-se os modos de vibracao uma viga en-
castrada e duma viga simplesmente apoiada, respectivamente, considerando
40 nos.
O codigo (vigaTimoshenkoVibracoesLeeSchultz.m) esta listado a seguir, de-
vendo o leitor trocar apenas as condicoes 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), 609621.
300 17 Analise de vibracoes livres
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
Figura 17.11. Primeiros 4 modos de vibracao para uma viga encastrada ( = 0.3)
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
!5
0
5
Figura 17.12. Primeiros 4 modos de vibracao para uma viga simplesmente apoiada
( = 0.3)
17.9 Exemplo de Lee e Schultz 301
Modo Teoria classica 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. Frequencia adimensional para viga Timoshenko encastrada nos dois
apoios, = 0.3, = 5/6, N = 40)
Modo Teoria classica 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. Frequencia adimensional para viga Timoshenko simplesmente apoi-
ada nos dois apoios, = 0.3, = 5/6, N = 40)
302 17 Analise de vibracoes 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 Analise de vibracoes 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 Vibracoes livres de placas Mindlin
Para o elemento de placa de Mindlin, consideram-se as seguintes expressoes
para as energias
T
e
=
1
2
_
A

_
h w
2
+
h
3
12

2
x
+
h
3
12

2
y
_
dA (17.100)
U
e
=
1
2
_
A
h
3
12

T
DdA+
1
2
_
A
kh
T
D
c
dA (17.101)
onde representa o vector de curvaturas da placa
17.10 Vibracoes livres de placas Mindlin 305
=
_

y
x

x
y

x
x


y
y
_

_
(17.102)
e
=
_

y
+
w
x

x
+
w
y
_

_
(17.103)
As matrizes constitutivas do material em exao, D e corte, D
c
sao, res-
pectivamente obtidas por
D =
_

_
E
1

E
1
0

E
1
E
1
0
0 0
E
2(1 +)
_

_
(17.104)
e
D
c
=
_
G 0
0 G
_
(17.105)
O vector de forcas nodais equivalentes e dado por
W =
_
A
pwdA (17.106)
Tendo em conta uma interpolacao independente para cada grau de liberdade,
obtem-se
w = Nw
e
(17.107)

x
= N
e
x
(17.108)

y
= N
e
y
(17.109)
onde a matriz de funcoes de forma do elemento Q4 e dada por
306 17 Analise de vibracoes livres
N
j
=
1
4
(1 +
j
)(1 +
j
) (17.110)
onde
j
,
j
sao as coordenadas naturais no bi-quadrado [1, +1].
Estas funcoes sao naturalmente distintas para outros elementos, como o
Q9 (lagrangiano de 9 nos) ou o T3 (triangulo de 3 nos).
Para o elemento lagrangiano de 4 nos, Q4, denem-se os seguintes graus
de liberdade
u
eT
=
_
w
1

x1

y1
w
2

x2

y2
w
4

x4

y4

(17.111)
podendo denir-se
u
T
=
_
w
x

y

= Nu
e
(17.112)
onde
N =
_
_
N
1
0 0 N
4
0 0
0 N
1
0 0 N
4
0
0 0 N
1
0 0 N
4
_
_
(17.113)
Substituindo nas expressoes das energias, obtem-se as matrizes de rigidez e
massa do elemento de placa espessa seguindo a teoria de Mindlin
K
e
=
_
A
h
3
12
B
fT
DB
f
dA+
_
A
khB
cT
D
c
B
c
dA (17.114)
M
e
=
_
A
N
T
_
_
h 0 0
0
h
3
12
0
0 0
h
3
12
_
_
NdA (17.115)
onde
B
f
=
_
B
f
1
B
f
2
B
f
3
B
f
4

(17.116)
e
B
f
i
=
_

_
0 0
N
i
x
0
N
i
y
0
0
N
i
x

N
i
y
_

_
(17.117)
B
c
=
_
B
c
1
B
c
2
B
c
3
B
c
4

(17.118)
17.11 Exemplo de vibracoes livres de placa 307
B
c
i
=
_

N
i
x
0 N
i
N
i
y
N
i
0
_

_
(17.119)
Note-se que o codigo respeita os mesmos principios, mas organiza as ma-
trizes de forma diferente, para poder aproveitar as capacidades do MATLAB.
17.11 Exemplo de vibracoes livres de placa
Considera-se uma placa quadrada, com lado a, razao espessura/lado h/a =
0.01 e 0.1. A frequencia adimensional e denida por

=
mn
a
_

G
,
onde representa a frequencia, e a massa por unidade de volume, G
e o modulo de corte, G = E/(2(1 + )), E o modulo de elasticidade e
o coeciente de Poisson. Os indices m e n representam as semi-ondas dos
modos de vibracao nas direccoes x e y, respectivamente.
Consideram-se placas isotropicas, 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 convergencia da frequencia fundamental nor-
malizada para placa encastrada h/a = 0.01, k = 0.8601, = 0.3 . Compara-se
com a solucao analitica, que pode ser consultada num artigo de Dawe
6
. Como
se pode vericar, usando quer o elemento Q4 quer o Q9 chega-se a bons re-
sultados.
10 10 Q4 0.1800 5 5 Q9 0.1905 Solucao 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. Convergencia da frequencia 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 convergencia da frequencia
fundamental normalizada para placa simplesmente apoiada h/a = 0.01, k =
0.8333, = 0.3. Os resultados sao mais proximos da solucao analitica que
para o caso CCCC, o que se verica quase sempre. para placas CCCC, sao
6
D. J. Dawe and O. L. Roufaeil, Rayleigh-Ritz vibration analysis of Mindlin plates,
Journal of Sound and Vibration, 69 (3) (1980), 345359.
308 17 Analise de vibracoes livres
habitualmente necessarias mais graus de liberdade. Quer nesta tabela, quer
na anterior considera-se uma placa na, com h/a = 0.01, enquanto que nas
proximas 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 Solucao 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. Convergencia da frequencia 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 Solucao 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. Convergencia da frequencia 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 Solucao 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. Convergencia da frequencia fundamental normalizada para placa
simplesmente apoiada h/a = 0.1, k = 0.8333, = 0.3
Na tabela 17.11 estudam-se as frequencias naturais duma placa SSSS com
h/a = 0.1, k = 0.833, = 0.3. Comparando com uma solucao analitica tri-
dimensional, ou com uma solucao analitica seguindo a teoria de Mindlin, o
presente codigo produz resultados de grande qualidade. De igual modo, na
tabela 17.12 os resultados sao igualmente bons.
Nas tabelas 17.13 e 17.14 comparam-se as frequencias naturais com uma
solucao analitica de Rayleygh-Ritz e uma solucao numerica de Liew
7
, em que
os resultados obtidos sao muito bons.
Nas tabelas 17.15 e 17.16 estudam-se frequencias 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 sao
encastrados, `a excepcao dos bordos x = 0; L, que sao 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), 9971017.
17.11 Exemplo de vibracoes 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. Frequencias naturais duma placa SSSS com h/a = 0.1, k =
0.833, = 0.3 (* - solucao 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. Frequencias naturais duma placa SSSS com h/a = 0.01, k =
0.833, = 0.3 (* - solucao analitica)
Nas tabelas 17.17 e 17.18 estudam-se frequencias 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 sao
encastrados, `a excepcao do bordo x = L, que e livre (Free).
Na gura 17.13 apresentam-se algumas malhas e uma deformada tipica.
Na gura 17.14 apresentam-se os modos de vibracao para placa encastrada,
h/a = 0.1, elemento Q4, 10 10.
Na gura 17.15 apresentam-se os modos de vibracao para placa simples-
mente apoiada, h/a = 0.1, elemento Q4, 10 10.
Na gura 17.16 apresentam-se os modos de vibracao para placa SCSC
apoiada, h/a = 0.01, elemento Q4, 15 15.
310 17 Analise de vibracoes 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. Frequencias 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. Frequencias naturais duma placa CCCC com h/a = 0.01, k =
0.8601, = 0.3
Na gura 17.16 apresentam-se os modos de vibracao para placa CCCF
apoiada, h/a = 0.1, elemento Q4, 15 15.
17.12 Codigo MATLAB para exemplo de placa 311
Modo no. m n 15 15 Q4 Mindlin (Solucao 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. Frequencias naturais duma placa SCSC com h/a = 0.1, k =
0.822, = 0.3
Modo no. m n 15 15 Q4 Mindlin (Solucao 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. Frequencias naturais duma placa SCSC com h/a = 0.1, k =
0.822, = 0.3
17.12 Codigo MATLAB para exemplo de placa
Apresenta-se um codigo de placa (vibracoesPlacaMindlinQ4.m), usando apenas
o elemento Q4, estando o autor certo que a curiosidade do leitor ira despertar
interesse para a programac ao 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 Analise de vibracoes livres
Modo no. m n 15 15 Q4 Mindlin (Solucao 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. Frequencias naturais duma placa CCCF com h/a = 0.1, k =
0.8601, = 0.3
Modo no. m n 15 15 Q4 Mindlin (Solucao 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. Frequencias 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 Codigo MATLAB para exemplo de placa 313
0 0.2 0.4 0.6 0.8 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 17.13. Malha de elementos nitos, 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 Analise de vibracoes livres
eig = 1.625867068959
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 3.202810229390
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 3.202810229390
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 4.468574738939
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
Figura 17.14. Modos de vibracao 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 Codigo MATLAB para exemplo de placa 315
eig = 0.939934553599
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 2.299781880509
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 2.299781880509
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 3.527287828177
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
Figura 17.15. Modos de vibracao 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 Analise de vibracoes livres
eig = 0.142387681696
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 0.270966305092
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 0.348404924400
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 0.472159567535
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 0.519069354054
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 0.670961943026
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 0.707984378334
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 0.794393581664
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
Figura 17.16. Modos de vibracao 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 Codigo MATLAB para exemplo de placa 317
eig = 1.092330699490
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 1.756645221669
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 2.733677737330
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 3.259086767279
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 3.354085523124
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 4.639498607036
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 4.974616691112
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
eig = 5.461985943929
!1 !0.5 0 0.5 1
!1
!0.5
0
0.5
1
Figura 17.17. Modos de vibracao 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 Analise de vibracoes 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 Codigo 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 Analise de vibracoes 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 analise de vibracoes 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 codigo e alguns resultados com este elemento.
Considera-se uma placa quadrada, com lado a, razao espessura/lado h/a =
0.01 e 0.1. A frequencia adimensional e denida por

=
mn
a
_

G
,
onde representa a frequencia, e a massa por unidade de volume, G
e o modulo de corte, G = E/(2(1 + )), E o modulo de elasticidade e
17.13 Elemento Q4 321
o coeciente de Poisson. Os indices m e n representam as semi-ondas dos
modos de vibracao nas direccoes x e y, respectivamente.
Consideram-se placas isotropicas, 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 convergencia da frequencia fundamen-
tal normalizada para placa encastrada h/a = 0.01, k = 0.8601, = 0.3 .
Compara-se com a solucao analitica, que pode ser consultada num artigo de
Dawe
8
. Como se pode vericar, usando o elemento Q4 chega-se a bons re-
sultados.
10 10 0.1801 Solucao analitica: 0.1754
15 15 0.1774
20 20 0.1765
25 25 0.1761
35 35 0.1756
Tabela 17.19. Elemento Q4. Convergencia da frequencia 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 convergencia da frequencia
fundamental normalizada para placa simplesmente apoiada h/a = 0.01, k =
0.8333, = 0.3. Os resultados sao mais proximos da solucao analitica que para
o caso CCCC.
10 10 Q4 0.0973 Solucao 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. Convergencia da frequencia fundamental normali-
zada para placa simplesmente apoiada h/a = 0.01, k = 0.8333, = 0.3
Apresenta-se um codigo 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), 345359.
322 17 Analise de vibracoes 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 Analise de vibracoes 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 codigo completo (dkt.m) para a analise de vibracoes 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 Analise de vibracoes 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 analise de vibracoes livres com o elemento de placa DKT e aqui exami-
nada.
Considera-se uma placa quadrada, com lado a, razao espessura/lado h/a =
0.01 e 0.1. A frequencia adimensional e denida por

=
mn
a
_

G
,
onde representa a frequencia, e a massa por unidade de volume, G
e o modulo de corte, G = E/(2(1 + )), E o modulo de elasticidade e
o coeciente de Poisson. Os indices m e n representam as semi-ondas dos
modos de vibracao nas direccoes x e y, respectivamente.
Consideram-se placas isotropicas, encastradas (CCCC) e simplesmente
apoiadas (SSSS) em torno dos seus 4 bordos.
Na tabela 17.21 apresenta-se a convergencia da frequencia fundamen-
tal normalizada para placa encastrada h/a = 0.01, k = 0.8601, = 0.3 .
Compara-se com a solucao analitica, que pode ser consultada num artigo de
Dawe
9
. Como se pode vericar, usando o elemento Q4 chega-se a bons re-
sultados.
Da mesma forma, na tabela 17.22 apresenta-se a convergencia da frequencia
fundamental normalizada para placa simplesmente apoiada h/a = 0.01, k =
0.8333, = 0.3. Os resultados sao mais proximos da solucao 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), 345359.
328 17 Analise de vibracoes livres
10 10 0.1772 Solucao analitica: 0.1754
15 15 0.1763
20 20 0.1760
25 25 0.1758
35 35 0.1757
Tabela 17.21. Elemento DKT. Convergencia da frequencia fundamental normali-
zada para placa encastrada h/a = 0.01, = 0.3
10 10 Q4 0.0975 Solucao 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. Convergencia da frequencia 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 util
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 basicos de MATLAB
A.1 Introducao
O MATLAB
1
e uma ferramenta de programacaao interactiva baseada em
calculo matricial. Foi desenvolvida pela MathWorks para calculo cientico e
apoio a engenharia.
Pretende-se neste captulo ilustrar algumas das capacidades do MATLAB.
Sugere-se a consulta de livros de MATLAB e de consulta ao (muito util) help
do MATLAB.
A.2 Matrizes
Talvez o elemento mais importante do MATLAB seja a matriz rectangular,
onde os vectores sao considerados como matrizes linha ou coluna e os escalares
como matrizes 1 1.
As matrizes podem ser introduzidas em MATLAb de varias formas:
por uma lista de elementos
por funcoes ou expressoes do proprio MATLAB
por valores vindos de cheiros externos
Considere-se o ambiente de trabalho, na janela MATLAB ilustrada na gura
A.1.
Seja, a ttulo de exemplo, a expressao A = [1 2 3; 4 5 6; 7 8 9], que
produzira a matriz 3 por 3, sendo a esta matriz afectada a variavel A. Note-se
que se pode separar os elementos duma linha por espaco, mas deve colocar-se
o ponto e vrgula para mudar de linha.
>> A = [1 2 3; 4 5 6; 7 8 9]
1
MATLAB e uma marca registada da The MathWorks, Inc., USA
332 A Conceitos basicos de MATLAB
Figura A.1. Ambiente tipico MATLAB
A =
1 2 3
4 5 6
7 8 9
>>
Note-se tambem que os elementos das matrizes podem ser complexos, o que
nao sera aqui abordado, dada a sua irrelevancia na maior parte das aplicacoes
de elementos nitos (senao mesmo em todas). Caso existam valores tabela-
dos num le externo, digamos dados.dat, o comando load dados.dat faz a
leitura de todos os valores e podera coloca-los na variavel que se entender util.
Podem criar-se matrizes directamente usando algumas das matrizes ja in-
cluidas no MATLAB, por exemplo, pelas funcoes rand ou hilb. O comando
rand(n) produz uma matriz de dimensao n com elementos gerados de forma
aleatoria, 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 Operacoes com matrizes 333
>>
Podem tambem criar-se do mesmo modo matrizes rectangulares, usando
rand(m,n), onde m, n representam o n umero 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 atraves de ciclos FOR/END, a ver adiante.
A.3 Operacoes com matrizes
Em MATLAB estao disponveis as seguintes operacoes:
+ adicao
subtraccao
multiplicacao
potencia

transposta
\ divisao `a esquerda
/ divisao `a direita
Note-se que se pode aplicar estas operacoes a escalares. Deve ainda tomar-
se cuidado para respeitar as dimensoes das matrizes envolvidas, por forma a
ser possvel realizar as operacoes matriz-matriz.
Em particular, note-se a divisao. Seja A uma matriz nao singular quadrada
e b um vector coluna compatvel. Entao x = A\b representa a solucao de
A x = b, bem como x = b/A e a solucao de x A = b.
334 A Conceitos basicos de MATLAB
Na divisao `a esquerda, usa-se a eliminacao Gaussiana para matrizes qua-
dradas e outras tecnicas para matrizes rectangulares, como a ortogonalizacao
de Householder.
Note-se que as operacoes , , \, 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 Expressoes e variaveis
O MATLAB e uma linguagem interpretativa, onde cada expressao do tipo
variavel = express~ao ou simplesmente express~ao.
As expressoes sao compostas por operadores, funcoes ou variaveis, produ-
zindo sempre uma matriz que podera ser usada para futuros calculos.
Exemplos
>> a=3
a =
3
>> 3
ans =
3
>> ans*4
ans =
12
Note-se que o eco para o ecran podera ser suprimido se se colocar no nal
da expressao o ponto e vrgula. Podemos ainda colocar varias expressoes numa
mesma linha, desde que separadas por ponto e vrgula.
A.5 Funcoes de construcao de matrizes 335
>> a=3;b=cos(10);c=20;
>>
O MATLAB e case-sensitive, ou seja as variaveis a e A sao interpretadas
distintamente.
Alguns comandos importantes sao o who e whos que listam as variaveis no
espaco de trabalho,
>> who
Your variables are:
A a ans b c
>>
Podemos apagar todas as variaveis (nao permanentes) do espaco de trabalho,
fazendo clear all ou apagar apenas uma dada variavel, fazendo clear A,
por exemplo.
A variavel permanente eps da-nos uma ideia do roundoda maquina, o
que pode ser interessante para estudos de tolerancia, por exemplo, em proces-
sos iterativos. Na maquina que produziu este texto (um ibook de 12 polega-
das), aparece
>> eps
ans =
2.2204e-16
>>
Pode-se parar o calculo fazendo CTRL-C ou maca-C (no MAC).
A.5 Funcoes de construcao de matrizes
Algumas funcoes para construcao 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 aleatoria
hilb matriz de Hilbert
magic matriz quadrada magic
toeplitz matriz Toepliz
336 A Conceitos basicos de MATLAB
Podemos obter informa caao 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 1s 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 1s
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 Funcoes de construcao 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 facil uma matriz 5 por 5.
For, while, if and
O uxo de informacao pode ser controlado de varias formas. Algumas das funcoes
ou relacoes mais uteis sao 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 =
1
x =
1 4
338 A Conceitos basicos 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 anulacao 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 Funcoes de construcao de matrizes 339
While.
A forma geral do ciclo while e while relacao expressoes end
As expressoes sao executadas repetidamente enquanto a relacao for verdadeira.
Por exemplo, para um dado n umero a, o codigo a seguir indicado calcula e mostra
o menor inteiro nao negativo n tal que 2
n
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 =
2
If.
A forma geral da express ao if e if relacao expressoes end As expressoes serao
executadas apenas se a relac ao 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
relacoes.
Os operadores relacionais em MATLAB sao
< menor que
> maior que
<= menor ou igual a
>= maior ou igual a
== igual
= diferente.
Note-se a diferenca entre a igualdade = e a igualdade de relacao == . As relacoes
podem ainda ser quanticadas pelos operadores logicos
& e
| ou
nao.
As relacoes produzem o valor 0 ou 1, quando aplicados a escalares, como por
exemplo
>> 3 < 5, 3 > 5, 3 == 5,
ans =
1
340 A Conceitos basicos de MATLAB
ans =
0
ans =
0
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 relacao entre matrizes e um pouco mais peculiar. Por exemplo, se queremos
usar a relacao A = B, fazemos
if A == B expressao end
enquanto que se se quiser usar A = B, devemos usar
if any(any(A = B)) expressao end ou if A == B else expressao end
Note-se que
if A = B, expressao, end nao produzira o feito desejado, dado que expressao
so sera executado se cada um dos elementos correspondentes de A e B diferirem. As
funcoes any e all podem ser usadas para reduzir as relacoes matriciais a vectores e
escalares. Note-se que sao necessarios dois any porque any e uma operacao vectorial.
A.8 Funcoes de matrizes 341
A.6 Funcoes escalares
Algumas funcoes do MATLAB sao destinadas a escalares e funcionam em cada
elemento de matriz, quando necessario. Algumas dessas funcoes sao
sin asin exp abs round cos acos log (log natural) sqrt oor tan atan rem
(resto) sign ceil
A.7 Funcoes vectoriais
Outras funcoes do MATLAB operam essencialmente num vector linha ou coluna.
Essas operacoes actuam numa matriz em cada coluna, produzindo um vector linha
com o resultado de cada coluna. Algumas dessas funcoes sao
max sum median any
min prod mean all
sort std
O maximo elemento de A sera 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 =
9
>> max(A)
ans =
7 8 9
>>
A.8 Funcoes de matrizes
Muita da capacidade do MATLAB vem das funcoes para matrizes, algumas das
quais sao
342 A Conceitos basicos de MATLAB
eig valores e vectores proprios
chol factorizacao de cholesky
svd decomposicao de singular value
inv inversa
lu factorizacao LU
qr factorizacao QR
hess forma hessenberg
schur decomposicao schur
rref forma reduzida de matriz
expm matriz exponencial
sqrtm raiz quadrada da matriz
poly polinomio caracteristico
det determinante
size tamanho
norm 1-norm, 2-norm, F-norm, -norm
cond n umero de condicionamento da 2-norm
rank caracteristica
Estas funcoes possuem muitas vezes mais do que um argumento de sada, 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 proprios 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 sao os vectores proprios de A e uma matriz
diagonal D com os valores proprios de A na sua diagonal.
A.9 Submatrizes 343
A.9 Submatrizes
Em MATLAB e possivel manipular os vectores e submatrizes, por forma a conseguir
ganhos de computacao ou compactacao de codigo. Por exemplo, a expressao 1:5
produz o vector [1 2 3 4 5]. Esta vectorizacao e altamente eciente e nao 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 expressao 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 e gerado a partir do vector x.
A notacao : pode tambem 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 tambem esta notacao para denir
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 tambem usar: A(:,[2 4]) para
denir as colunas 2 e 4 de A. Podemos tambem usar operacoes do tipo A(:,[2 4
5]) = B(:,1:3) para substituir as colunas 2,4,5 de A com as tres primeiras colunas
de B. Podemos multiplicar as colunas 2 e 4 de A `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 basicos de MATLAB
6
5
4
A.10 M-les
O MATLAB pode executar uma sequencia de expressoes guardadas em cheiros, que
terminam em .m. Existem dois grandes tipos de M-les, os scripts e as functions.
Scripts.
Um cheiro de scripts consiste numa sequencia normal de comandos, que sao
executados uns atras dos outros, com variaveis globais. Uma M-le pode chamar
um conunto de outras M-les, tornando assim a programacao muito organizada.
Como exemplo veja-se o file1.m, que tem o seguinte conjunto de instrucoes
% exemplo de m-file
a=1
b=a*3
produzindo o resultado
a =
1
b =
3
Functions.
As funcoes sao cheiros que contem subrotinas, funcoes que sao usadas varias
vezes num programa ou simplesmente para tornar o programa mais legvel.
Note-se que as variaveis numa funcao sao locais. Podem ser no entanto tornadas
globais.
Veja-se o seguinte exemplo
We rst illustrate with a simple example of a function le.
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 sada 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 parametros de sada, 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 e um comentario e nao representa
instrucoes para serem executadas.
A.11 Formato de sada
Embora os calculos em MATLAB sejam sempre em dupla precisao, podemos escolher
o formato de sada, com os seguintes comandos
format short 4 casas decimais (por defeito)
format long 14 casas decimais
format short e 4 casas decimais em notacao cientica
format long e 15 casas decimais em notacao cientica
format hex formato hexadecimal
format + +, -, em branco
346 A Conceitos basicos de MATLAB
Quando sao chamados, estes formatos mantem-se ate que apareca outro.
A.12 Gracos
Gracos 2D.
O comando plot cria gracos x-y lineares, desde que x e y sejam vectores da
mesma dimensao, como por exemplo x = -4:.01:4; y = sin(x); plot(x,y),
que produz a gura A.2
!! !" !# !$ % $ # " !
!$
!%&'
!%&(
!%&!
!%&#
%
%&#
%&!
%&(
%&'
$
Figura A.2. Forma seno
Se quisermos varios gracos em varias guras, podemos usar o comando figure(2)
(ou apenas figure) que abrir a uma segunda gura, etc.
Veja-se agora o caso do graco de y = e
x
2
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 funcao elemento a elemento (gura A.3).

E ainda possvel criar uma funcao, 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 graco.
Pode-se ainda denir curvas parametricamente, por exemplo t=0:.001:2*pi;
x=cos(3*t); y=sin(2*t); plot(x,y), ilustrado a seguir (gura A.4)
Os gracos podem ter ttulo, legendas, etc, conforme se indica a seguir.
title ttulo
xlabel legenda do eixo x
ylabel legenda do eixo y
A.12 Gracos 347
!1.5 !1 !0.5 0 0.5 1 1.5
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura A.3. Forma exponencial
!! !"#$ !"#% !"#& !"#' " "#' "#& "#% "#$ !
!!
!"#$
!"#%
!"#&
!"#'
"
"#'
"#&
"#%
"#$
!
Figura A.4. Curvas denidas parametricamente
348 A Conceitos basicos de MATLAB
O comando title(Curvas parametricas) da um ttulo ao graco.
O comando grid coloca uma grelha (rede) no graco corrente. Podemos modi-
car a escala dos eixos coordenados, pelo comando axis. Algumas caracteristicas
deste comando sao
axis([xmin,xmax,ymin,ymax]) denir limites para os eixos
axis auto limites denidos 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 gracos m ultiplos, numa unica 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 gura A.5.
0 1 2 3 4 5 6 7
!1
!0.8
!0.6
!0.4
!0.2
0
0.2
0.4
0.6
0.8
1
Figura A.5. Curvas m ultiplas num mesmo graco
O comando hold on congela a gura actual ate que novos gracos possam ser
sobrepostos neste.
Podemos ainda modicar linhas, cores, pontos etc, por exemplo (gura 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 (:), traco ponto (-.) marcas: ponto
(.), mais (+), estrela (*), crculo (o), marca x(x)
Podemos ainda especicar 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 Gracos 349
0 1 2 3 4 5 6 7
!1
!0.8
!0.6
!0.4
!0.2
0
0.2
0.4
0.6
0.8
1
Figura A.6. Modicacao 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 ecran em varios gracos
mais pequenos, para produzir uma unica gura. 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 gura A.7.
Outro exemplo seria (gura 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 funcoes para desenhar gracos sao via help are: polar, bar, hist,
quiver, compass, feather, rose, stairs, fill
Na gura 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 basicos de MATLAB
1 1.5 2 2.5 3 3.5 4
3
3.5
4
4.5
5
5.5
6
1 1.5 2 2.5 3 3.5 4
2.5
3
3.5
4
4.5
5
Figura A.7. Varios gracos numa mesma gura
1 2 3 4
3
3.5
4
4.5
5
5.5
6
1 2 3 4
2.5
3
3.5
4
4.5
5
1 2 3 4
2.5
3
3.5
4
4.5
5
1 2 3 4
2.5
3
3.5
4
4.5
5
Figura A.8. Varios gracos numa mesma gura
A.12 Gracos 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 gura A.10.
0.1
0.2
0.3
0.4
0.5
30
210
60
240
90
270
120
300
150
330
180 0
Figura A.9. Funcao polar
352 A Conceitos basicos de MATLAB
1 2 3 4 5 6 7 8 9 10
0
2
4
!0.2 0 0.2 0.4 0.6 0.8 1 1.2
0
0.5
1
1 2
0
0.5
1
Figura A.10. Funcao bar
Gracos 3-D.
da mesma forma que o comando plot produz gracos em duas dimensoes, o co-
mando plot3 produz curvas em tres dimensoes, tendo em conta x, y, e z vectores de
identica dimensao. Estes vectores podem ser denidos 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 gura A.11, correspondente a uma helice comprimida junto ao
plano x-y.
Malhas 3-D e desenhos de supercies.
Os desenhos de supercies podem ser conseguidos de varias formas, por exemplo
atraves 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 ttulo
de exempolo, o comando mesh(eye(10)) produz a gura A.12.
Outra forma de apresentar as supercies seria atraves de desenho das facetas,
como em surf(eye(10)), representado na gura A.13.
Para desenhar um graco duma dada funcao z = f(x, y) denida num rec-
tangulo, denem-se primeiro os vectores xx e yy. Com a funcao meshgrid cria-se
entao uma matriz x, em que cada linha e igual a xx e cada coluna tem o com-
primento de yy, e identicamente uma matriz y, em que cada coluna e igual a yy,
na forma [x,y] = meshgrid(xx,yy);. Seguidamente dene-se a matriz z, para a
qual se usa entao mesh ou surf, como por exemplo para a funcao z = e
x
2
y
2
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 gura A.14.
O comando view pode ser usado para especicar em coordenadas esfericas ou
cartesianas o ponto de vista segundo o qual o objecto pode ser visto.
A.12 Gracos 353
!!
!"#$
"
"#$
!
!!
!"#$
"
"#$
!
"
"#$
!
!#$
%
%#$
& !"
$
Figura A.11. Graco 3D
0
2
4
6
8
10
0
2
4
6
8
10
0
0.2
0.4
0.6
0.8
1
Figura A.12. Graco mesh(eye(10))
354 A Conceitos basicos de MATLAB
0
2
4
6
8
10
0
2
4
6
8
10
0
0.2
0.4
0.6
0.8
1
Figura A.13. Graco surf(eye(10))
0
5
10
15
20
25
0
5
10
15
20
25
0
0.2
0.4
0.6
0.8
1
Figura A.14. Graco3D
A.13 Matrizes esparsas 355
A.13 Matrizes esparsas
Se a matriz nao for densa, antes for esparsa, pode poupar-se bastantes operacoes
aritmeticas e tempo de calculo. Da mesma forma pode poupar-se espaco de memoria,
pelo facto de se guardarem apenas os termos nao nulos. Os dois modos de armaze-
namento podem ser invocados fazendo full e sparse que permite a conversao entre
um modo e outro. Por exemplo, a criacao 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 atraves da espci-
cacao 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) obtem-se
>> full(T)
ans =
356 A Conceitos basicos 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
Analogamente 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 Referencia
Algumas funcoes tipicas que se podem usar no MATLAB.
Comandos e funcoes de gestao
help ajuda
what listagem das M-les
lookfor procura nos les de help
which localiza funcoes e cheiros
path controle do caminho do MATLAB
info informacao sobre o MATLAB e a empresa The MathWorks
Gestao de variaveis
who lista variaveis correntes
whos lista variaveis correntes, forma longa
save guarda variaveis para disco
load recupera variaveis do disco
clear apaga variaveis e funcoes da memoria
pack consolida a memoria
size tamanho de uma matriz
length comprimento de um vector
disp mostra matriz ou texto
Gestao de cheiros
cd muda o directorio corrente
pwd mostra o directorio corrente
dir, ls listagem do directorio corrente
delete apaga cheiro
getenv recupera variavel do ambiente
diary guarda texto da sessao MATLAB
A.14 Referencia 357
Controle da janela de comandos (Command Window)
clc apaga a janela de comando
home envia o cursor para o topo da pagina
format dene o formato de sada
echo faz eco dos comandos dentro do script
Operacoes com matrizes
+ adicao
subtraccao
multiplicacao
potencia
/ divisao `a direita
\ divisao `a esquerda
transposta
kron Produto tensorial de Kronecker
Operacoes relacionais e logicas
< menos que & e
<= menos que ou igual | ou
> maior que nao
>= maior que ou igual xor ou exclusivo
== igual
= diferente
Caracteres especiais
= comando de afectacao
[ ] usado para formar vectores e matrizes
, separa comandos e funcoes
; nal de linhas ou supressao de impressao
% comentarios
: geracao de vectores
Variaveis especiais
ans resposta quando expressao nao e afectada
eps precisao de vrgula utuante
realmax maior n umero de vrgula utuante
reammin menor n umero positivo de vrgula utuante
pi
i, j imaginarios
inf innito
NaN Not-a-Number
ops contador de operacoes de vrgula utuante
nargin n umero de argumentos de entrada de funcoes
nargout n umero de argumentos de sada de funcoes
computer tipo de computador
358 A Conceitos basicos de MATLAB
Tempo e data
date data corrente
clock informacao de relogio
tic, toc funcoes de controlo do tempo entre operacoes
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 espacadas
logspace vectores espacados logaritmicamente
meshgrid matrizes para gracos 3-D
rand n umeros aleatorios 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 proprios simetricos
wilkinson matriz de teste para valores proprios de Wilkinson
gallery duas matrizes de teste pequenas
Manipulacao de matrizes
diag cria ou extrai diagonais
rot90 roda a matriz 90 graus
iplr muda a matriz da esquerda para a direita
ipud 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 Referencia 359
Funcoes logicas
exist verica se as funcoes ou variaveis existem
any verdadeiro se algum elemento do vector vericar
all verdadeiro se todos os elementos do vector vericarem
nd encontra indices dos elementos nao nulos
isnan verdadeiro para NaNs
isinf verdadeiro para elementos innitos
nite verdadeiro para elementos nitos
isempty verdadeiro para matriz vazia
issparse verdadeiro para matriz esparsa
isstr verdadeiro para variavel de texto
strcmp compara variaveis de texto
Controle do uxo
if comandos de execucao de condicoes
else usado com if
elseif usado com if
end termina if, for, while
for repete comandos um determinado n umero de vezes
while repete comandos enquanto a condicao for verdadeira
break termina a execucao de ciclos for ou while
return retorno da funcao invocada
error mostra mensagem e aborta funcao
Funcoes matematicas elementares
abs valor absoluto
angle angulo de fase
sqrt raz quadrada
real parte real
imag parte imaginaria
conj conjugado complexo
gcd maior divisor comum
lcm minimo multiplo comum
round arredondamento ao proximo inteiro
x arredonadamento para zero
oor arredonadamento para
ceil rarredonadamento para
rem resto
exp base exponencial e
log logaritmo natural
log10 logaritmo de base 10
360 A Conceitos basicos de MATLAB
Funcoes trigonometricas
sin, asin, sinh, asinh seno, arco de seno, seno hiperbolico, arco de seno hiperbolico
cos, acos, cosh, acosh coseno, arco de coseno, coseno hiperbolico, arco de seno hiperbolico
tan, atan, tanh, atanh tangente, arco de tangente, tangente hiperbolica, arco de tangente hiperbolica
cot, acot, coth, acoth cotangente, arco de cotangente, cotangente hiperbolica, arco de cotangente hiperbolica
sec, asec, sech, asech secante, arco de secante, secante hiperbolica, arco de secante hiperbolica
csc, acsc, csch, acsch cosecante, arco de cosecante, cosecante hiperbolica, arco de cosecaante hiperbolica
Funcoes especiais
bessel funcao bessel
beta funcao beta
gamma funcao gamma
rat aproximacao racional
rats sada racional
erf funcao de erro
erfinv funcao de erro inversa
ellipke integral eliptico completo
ellipj integral eliptico Jacobiano
expint integral exponencial
Decomposicoes e factorizacoes de matrizes
inv inversa
lu factores da eliminacao de Gauss
chol factorizacao de Cholesky
qr decomposicao ortogonal-triangular
nnls minimos quadrados nao negativos
null espaco nulo
orth ortogonalizacao
eig valores e vectores proprios
hess forma de Hessenberg
schur decomposicao de Schur
qz valores proprios generalizados
svd decomposicao singular value
pinv pseudoinversa
Condicionamento de matriz
cond n umero de condicionamento na 2-norm
norm normas 1-norm,2-norm,F-norm,-norm
rank caracteristica
A.14 Referencia 361
Fun coes matriciais elementares
expm matriz exponencial
expm1 implementacao por M-le de expm
expm2 matriz exponencial via series de Taylor
expm3 matriz exponencial via valores e vectores proprios
logm matriz logaritmo
sqrtm matriz de raiz quadrada
funm calcula uma funcao matricial geral
poly polinomio caracteristico
det determinante
trace traco
Polinomios
poly constroi polinomio com raizes especicas
roots razes polinomiais
roots1 razes polinomiais metodo de Laguerre
polyval calcula o polinomio
conv multiplica polinomios
deconv divide polinomios
residue resduos
polyt ajustar polinomios aos dados
polyder derivacao de polinomios
Analise de dados por colunas
max maior componente
min menor componente
mean valor medio
median mediana
std desvio padrao
sort ordenacao em ordem ascendente
sum soma de elementos
prod produto de elementos
cumsum soma cumulativa de elementos
cumprod produto cumulativo de elementos
hist histograma
Referencias
1. Courant, R., Variational methods for the solution of problems of equilibrium
and vibration, Bull. Am. Math. Soc., 49 (1943), 123
2. Bathe, K., Finite Element Procedures in Engineering Analysis, Prentice-Hall,
Englewood Clis, 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 nitos, 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), 801805.
7. Clough, R. W., The nite 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 nite element method for analysis of
elastic isotropic and anisotropic slabs, Proc.Inst. Civ. Eng., 28, (1964), 471488.
9. O. C. Zienkiewicz, R. L. Taylor, The nite 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 Referencias
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 Dierenzen und Elemente- Numerische Losung von Variati-
onsproblemen und partiellen Dierentialgleichungen, 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
Referencias 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 Chara, A. Finite Elements Using Maple, 2002
66. Schwarz, H. R. FORTRAN-Programme zur Methode der niten 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 Grith, 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 Referencias
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 Schreer, 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 dierential quadrature, Shock and Vibration, 1 (1) (1993),
8993.
95. C. W. Bert and M. Malik, Dierential quadrature method in computational
mechanics: a review, Applied Mechanics Review, 49 (1) (1996), 128.
96. K. M. Liew, J. B. Han and Z. M. Xiao, Vibration analysis of circular Mindlin
plates using dierential quadrature method, Journal of Sound and Vibration,
205 (5) (1997), 617630.
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), 7790.
98. K. Bathe, Finite Element Procedures in Engineering Analysis, Prentice-Hall,
Englewood Clis, New Jersey, 1982.
99. W. Weaver and P. Johnson, Structural Dynamics by Finite Elements, Englewood
Clis, 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), 287293.
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), 385392.
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 nite point for-
mulation based on the multiquadric radial basis function method, Composites:
Part B, 34 (2003), 627636.
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), 271284.
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), 345359.
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), 9971017.
Referencias 367
109. E. Hinton, Numerical methods and software for dynamic analysis of plates and
shells, Pineridge Press, Swansea, (1988).
110. R. J. Melosh, A stiness 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 nite 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 stiness 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 nite 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, Hermes,
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 nite point for-
mulation based on the multiquadric radial basis function method, Composites:
Part B, 34 (2003), 627636.
368 Referencias
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), 287293.
129. B. N. Pandya, T. Kant, Higher-order shear deformable theories for exure
of sandwich plates-nite element evaluations, Int. J. Solids and Structures, 24
(1988), 419451.
130. J. N. Reddy, A simple higher-order theory for laminated composite plates, J.
Appl. Mech., 51 (1984), 745752.
131. S. Srinivas, A rened analysis of composite laminates, J. Sound and Vibration,
30 (1973), 495507.
132. T. Kant, D. R. L. Owen, O. C. Zienkiewicz, A rened higher-order C
0
plate
bending element, Computers and Structures, 30 (1982), 177183.
2[

Indice
]
barra inclinada, 73
barras, 73
campo de deslocamentos, 135
colapso de elementos, 152
condicoes de fronteira essenciais, 133
condicoes de fronteira naturais, 134
condicoes fronteira, 29, 31
condicoes fronteira essenciais, 29, 30
condicoes fronteira naturais, 29
coordenadas de area, 154
coordenadas locais, 94
coordenadas naturais, 143, 159
cossenos directores, 74
deformacoes de corte transverso, 186, 190
degeneracao de elementos quadrilateros em elementos triangulares, 152
determinante do jacobiano, 146
domnio, 131
elemento de 9 nos de Lagrange, 138
elemento de barra, 53, 159
elemento de placa na, 188
elemento hexaedrico, 212
elemento isoparametrico, 161
elemento quadrilatero, 137
elemento quadrilatero de 4 nos, 137
elemento tetraedrico de 4 nos, 208
elemento triangular com 3 nos, 154
elemento triangular de 6 nos, 156
elemento triangular de deformacao constante, 154
elementos de linha de 2 nos, 137
elementos nitos isoparametricos, 53
370

Indice
elementos quadrilateros, 161
elementos triangulares, 152, 154, 156
elementos triangulares baseados em coordenadas de area, 154
energia de deformacao, 75, 191
energia de deformacao de elemento de Bernoulli, 92
energia potencial, 134
equacoes de equilibrio, 187
equacoes de equilibrio , 133
esforcos de corte, 187
esforcos resultantes, 186
estado plano de tensao, 131, 147
factor de correccao de corte transverso, 190
forcas nodais equivalentes, 150
fronteira, 131
funcoes de forma, 5358, 136, 142, 156
funcoes de forma de Lagrange, 137
funcional, 29
Galerkin, 89
galerkin, 36
grelhas, 115
Hermite, 90
integracao numerica, 143
integracao por partes, 31, 33, 41
interpolacao dos deslocamentos, 145
jacobiano, 54, 141, 161
Kirchho, 185
metodo de colocacao, 37
metodo dos deslocamentos, 40
metodos variacionais, 29
modulo de corte, 191
matriz constitutiva, 186
matriz de deformacao-deslocamento, 141
matriz de deformacoes, 207, 211
matriz de elasticidade de solidos 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 portico plano, 94
matriz jacobiana, 210
Mindlin-Reissner, 185, 190
minimos quadrados, 37
momentos ectores, 186

Indice 371
porticos planos, 89
pesos de integracao, 142
placa de Mindlin, 190, 191, 193
plano medio, 131
pontos de integracao, 142
potencial, 29
princpio dos trabalhos virtuais, 40, 41, 43, 44, 47
problemas tridimensionais, 207
quadratura de Gauss, 143
regra da cadeia, 140
relacoes constitutivas, 191
representacao isoparametrica, 137
resduos pesados, 36
rigidez `a exao, 187
Ritz, 40
sistema de coordenadas locais, 94
teorema da divergencia, 45
traccoes de supercie, 134
trelicas, 73
vector de carga equivalente, 93
vector de cargas nodais equivalentes, 148
vector de forcas nodais equivalentes, 193
viga de Bernoulli, 89, 90, 93
viga na, 89, 90

Вам также может понравиться