Upload
vuongdang
View
214
Download
0
Embed Size (px)
Citation preview
Sandro Martins Gomes
ANÁLISE TRIDIMENSIONAL AUTOMÁTICA DE BLOCOS DE COROAMENTO
Projeto de Graduação apresentado ao Curso de
Engenharia Civil da Escola Politécnica,
Universidade Federal do Rio de Janeiro, como
parte dos requisitos necessários à obtenção do
título de Engenheiro.
Orientadores:
Ricardo Valeriano Alves
Mayra Soares Pereira Lima Perlingeiro
Rio de Janeiro
Março de 2015
Sandro Martins Gomes
ANÁLISE TRIDIMENSIONAL AUTOMÁTICA DE BLOCOS DE COROAMENTO
PROJETO DE GRADUAÇÃO SUBMETIDO AO CORPO DOCENTE DO CURSO
DE ENGENHARIA CIVIL DA ESCOLA POLITÉCNICA DA UNIVERSIDADE
FEDERAL DO RIO DE JANEIRO COMO PARTE DOS REQUISITOS
NECESSÁRIOS PARA A OBTENÇÃO DO GRAU DE ENGENHEIRO CIVIL.
Examinada por:
RIO DE JANEIRO, RJ - BRASIL
MARÇO DE 2015
Prof. Ricardo Valeriano Alves, D.Sc.
Prof.ª Mayra Soares Pereira Lima Perlingeiro, D.Sc.
Prof. Fernando Celso Uchôa Cavalcanti, M.Sc.
Prof. Sérgio Hampshire de Carvalho Santos, D.Sc.
i
Gomes, Sandro Martins
Análise tridimensional automática de blocos de
coroamento/ Sandro Martins Gomes. – Rio de Janeiro: UFRJ/
Escola Politécnica, 2015.
VI, 95 p.: il.; 29,7 cm
Orientadores: Ricardo Valeriano Alves, Mayra Soares
Pereira Lima Perlingeiro
Projeto de Graduação – UFRJ/ Escola Politécnica/ Curso
de Engenharia Civil, 2015.
Referências Bibliográficas: p. 73-74.
1. Biela e Tirante. 2. Bloco de coroamento. I. Alves,
Ricardo Valeriano et. al. II. Universidade Federal do Rio de
Janeiro, Escola Politécnica, Curso de Engenharia Civil. III.
Análise tridimensional automática de blocos de coroamento
ii
AGRADECIMENTOS
Agradeço,
Em primeiro lugar, a Deus por ter me dado essa (infelizmente) rara
oportunidade de acesso a ensino de alta qualidade. Oportunidade essa que passou
por muito trabalho e dedicação dos meus pais: Cristina e Saulo.
A eles, por terem me proporcionado uma infância e uma juventude que não
poderia imaginar melhor, permitindo assim, que eu alcançasse mais esse objetivo.
A minha “mãe duas vezes", Luzia, por toda paciência e carinho.
A minha noiva, Rafaela Leal Coutinho, pela compreensão de todas as vezes
que não pude lhe dar a atenção merecida por estar me dedicando ao curso que estou
prestes a concluir.
Aos meus colegas de faculdade, André, Filipe, Guilherme, José Carlos, Paulo,
Pedro, Rafael, Ruan, Lucas, Vinícius, Vitor e todos os outros que me incentivaram e
proporcionaram momentos de descontração que também são muito importantes.
Aos meus amigos tupiniquins de Louvain-la-Neuve que não me deixaram
morrer de saudades do Brasil enquanto estive por lá.
Aos ótimos professores que tive nessa Escola, especialmente, aos meus
orientadores Prof. Ricardo e Prof. Mayra, pela atenção e pelo interesse em me ajudar
neste trabalho.
iii
Resumo do Projeto de Graduação apresentado à Escola Politécnica/UFRJ como parte
dos requisitos necessários para obtenção do grau de Engenheiro Civil.
ANÁLISE TRIDIMENSIONAL AUTOMÁTICA DE BLOCOS DE COROAMENTO
Sandro Martins Gomes
Março/2015
Orientadores: Ricardo Valeriano Alves, Mayra Soares Pereira Lima Perlingeiro
Curso: Engenharia Civil
O presente trabalho trata da automatização da modelagem e análise, pelo método das
bielas e tirantes, de blocos de coroamento rígidos apoiados em estacas verticais. Para
tal, um programa foi desenvolvido contemplando as seguintes etapas: cálculo do
estaqueamento, geração e análise de treliça espacial e adequação das treliças para
respeitarem os critérios do método das bielas e tirantes. Todos os modelos que
respeitam os critérios adotados são fornecidos como resultado, com os esforços em
cada elemento já calculados. A energia de deformação de cada modelo é fornecida
para auxiliar o engenheiro na escolha de qual arranjo de forças internas utilizar. Um
exemplo de validação é resolvido manualmente e seus resultados são comparados
com os obtidos pelo programa. Ao final, um estudo de sensibilidade de um bloco a
imperfeições do estaqueamento, utilizando os resultados obtidos pelo programa, é
apresentado.
Palavras chave: Biela e tirante, Bloco de coroamento, Concreto armado
iv
Abstract of Undergraduate Project presented to POLI/UFRJ as a partial fulfillment of
the requirements for the degree of Engineer.
AUTOMATIC TRIDIMENSIONAL ANALYSIS OF PILE CAPS
Sandro Martins Gomes
March/2015
Advisors: Ricardo Valeriano Alves, Mayra Soares Pereira Lima Perlingeiro
Course: Civil Engineering
This work concerns the automation of the modeling and analysis of vertical pile caps by
the Strut-and-Tie Method. The developed program executes the following steps:
analysis of pile groups, conception and analysis of a tridimensional truss and adequacy
of these trusses to respect the rules of the strut-and-tie method. All the models that
respect the chosen prescriptions are shown as results, with the elements forces
calculated. The deformation energy of each model is provided to help the engineer to
choose the internal forces arrangement to use. A validation example is manually solved
and its results are compared with the ones generated by the program. In the end, a
study of a cap sensitivity to geometrical imperfections, using the program results, is
developed.
Keywords: Strut-and-tie, Pile cap, Reinforced concrete
v
SUMÁRIO
1 INTRODUÇÃO .......................................................................................................... 1
1.1 OBJETIVO DO PROJETO ........................................................................................ 2
1.2 ORGANIZAÇÃO DO TRABALHO ............................................................................... 2
2 CÁLCULO DO ESTAQUEAMENTO ........................................................................ 4
2.1 HIPÓTESES BÁSICAS DOS MÉTODOS SIMPLESMENTE ESTÁTICOS ............................. 4
2.2 PRINCIPAIS ABORDAGENS DE CÁLCULO ................................................................. 5
2.2.1 Método de Culmann ...................................................................................... 5
2.2.2 Método de Nökkentved ................................................................................. 6
2.2.3 Método de Schiel ......................................................................................... 13
3 MODELOS DE BIELAS E TIRANTES .................................................................... 17
3.1 REGIÕES DE DESCONTINUIDADE ......................................................................... 17
3.2 MODELAGEM DO COMPORTAMENTO DE REGIÕES DE DESCONTINUIDADE ................ 18
3.3 ELEMENTOS DO MODELO: MODOS DE RUPTURA E DIMENSIONAMENTO ................... 20
3.3.1 Bielas ........................................................................................................... 20
3.3.2 Tirantes ....................................................................................................... 21
3.3.3 Nós e regiões nodais................................................................................... 22
3.4 OTIMIZAÇÃO DO MODELO .................................................................................... 24
4 IMPLEMENTAÇÃO COMPUTACIONAL ................................................................ 26
4.1 MATRIZ DE CONEXÃO DE NÓS ............................................................................. 26
4.2 FLUXOGRAMA GERAL ......................................................................................... 28
4.3 DADOS DE ENTRADA .......................................................................................... 32
4.4 ANÁLISE DO ESTAQUEAMENTO ............................................................................ 33
4.5 DEFINIÇÃO DOS ELEMENTOS ............................................................................... 36
4.6 ELEMENTOS SOBREPOSTOS ............................................................................... 39
4.7 COMBINAÇÕES DE ELEMENTOS ........................................................................... 39
4.8 EQUILÍBRIO DOS NÓS .......................................................................................... 41
4.9 ANÁLISE ESTRUTURAL DA TRELIÇA ...................................................................... 43
4.9.1 Matriz de rigidez da treliça .......................................................................... 43
4.9.2 Condições de contorno ............................................................................... 45
4.9.3 Deslocamentos ............................................................................................ 46
4.9.4 Solicitações axiais ....................................................................................... 46
4.10 MATRIZ DAS SOLICITAÇÕES ................................................................................ 47
4.11 VETOR DE ENERGIA ............................................................................................ 47
4.12 CRUZAMENTO DE BIELAS .................................................................................... 48
vi
4.13 INCLINAÇÃO ENTRE BIELAS E TIRANTES ............................................................... 49
4.14 TIRANTES DIAGONAIS ......................................................................................... 51
5 EXEMPLOS DE APLICAÇÃO ................................................................................ 53
5.1 EXEMPLO DE VALIDAÇÃO .................................................................................... 53
5.1.1 Dados do bloco estudado ........................................................................... 53
5.1.2 Cálculo de estaqueamento ......................................................................... 53
5.1.3 Modelo de bielas e tirantes ......................................................................... 54
5.1.4 Análise pelo programa desenvolvido .......................................................... 59
5.1.5 Comparação dos resultados ....................................................................... 62
5.2 EXEMPLO DOIS .................................................................................................. 63
5.3 COMENTÁRIO SOBRE A VARIAÇÃO DA ENERGIA DE DEFORMAÇÃO .......................... 67
6 CONCLUSÃO E SUGESTÕES DE CONTINUIDADE ............................................ 71
REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................... 73
APÊNDICE 1 – LISTAGEM DO PROGRAMA ................................................................... 75
1
1 INTRODUÇÃO
Qualquer estrutura tem como função básica transmitir os carregamentos que a
solicitam até seus apoios. No caso de edificações ou obras de arte, esses apoios são
as camadas resistentes do solo sobre o qual a construção se situa. Os elementos
responsáveis pela transmissão dessas solicitações para o terreno são as fundações.
Estas são, usualmente, divididas em dois grandes grupos: fundações superficiais e
fundações profundas.
No caso das fundações superficiais, a estrutura se conecta diretamente ao
elemento de fundação, caracterizando-se, geralmente, por pilares apoiados sobre
blocos, sapatas ou radiers.
Para fundações profundas, o caso mais comum se configura por várias estacas
que transmitem para o terreno as cargas vindas de um pilar. Portanto, é necessário
um elemento que solidarize as estacas e distribua essas solicitações entre elas. Esse
componente é chamado de bloco de coroamento.
Além dessa função primordial, o bloco de coroamento funciona, também, como
elemento de compatibilização entre as imperfeições geométricas das fundações e da
estrutura. O processo de execução de estacas implica em uma tolerância de erros que
seriam inaceitáveis em uma estrutura, seja ela de concreto armado, aço ou madeira.
Por isso, mesmo em um pilar apoiado sobre uma estaca, faz-se um bloco de
coroamento.
Preferencialmente, os blocos de coroamento são idealizados para serem
relativamente rígidos, não tendo dimensões preponderantes. Assim, não podem ser
incluídos no grupo de elementos lineares nem no grupo dos elementos planos.
Existem duas maneiras pelas quais se dimensiona um bloco rígido. Na
primeira, é feita a verificação ao cisalhamento e o dimensionamento da armadura à
flexão em uma seção pré-definida (abordagem seccional). Na segunda, é gerada uma
treliça simulando o arranjo de forças internas da peça fissurada. São verificadas,
então, as tensões nos elementos comprimidos e nos nós e definidas as armaduras
para as barras tracionadas, caracterizando um modelo de bielas e tirantes.
Ainda não há um único método definido como ideal. Porém, a modelagem em
bielas e tirantes, além de ser mais racional, vem se mostrando mais confiável para o
dimensionamento deste tipo de bloco quando se compara seus resultados com os
2
obtidos em ensaios, conforme Adebar e Zhou (1996). Por essa razão, o método de
bielas e tirantes foi escolhido para este trabalho.
Uma primeira motivação para a automatização, aqui proposta, é auxiliar o
engenheiro na modelagem e análise, pelo método das bielas e tirantes, de blocos com
configuração mais complexa. Dependendo do estaqueamento, ou da presença de
mais de um pilar, uma abordagem computacional pode ser de grande auxílio.
Além disso, é comum, após finalizado o estaqueamento, verificar o
deslocamento excessivo em alguma estaca. A rotina automática auxiliaria na rapidez
da verificação.
1.1 Objetivo do projeto
O principal objetivo desse trabalho é elaborar um programa que execute a
modelagem e a análise em bielas e tirantes de um bloco de coroamento. Partindo de
dados básicos, como a posição das estacas e as reações de apoio da estrutura, uma
rotina foi elaborada abrangendo várias áreas de conhecimento. O programa executa o
cálculo do estaqueamento, em seguida a análise de uma estrutura reticulada para
então validar um modelo de bielas e tirantes, com auxílio da geometria analítica. O
resultado final são as forças internas na estrutura de concreto armado plastificada para
diversos modelos possíveis, permitindo o dimensionamento no estado limite último
(ELU).
A linguagem de programação escolhida para implementação computacional foi
o FORTRAN. Porém, este trabalho expõe as etapas de cálculo de maneira geral, que
podem ser aplicadas a qualquer processo de automatização.
1.2 Organização do trabalho
Os capítulos dois e três visam revisar e apresentar os conceitos fundamentais
para o dimensionamento de um bloco de coroamento rígido. Calcula-se o
estaqueamento, distribuindo as cargas do pilar entre as estacas e apresenta-se a
teoria da modelagem das forças internas em uma peça fissurada de concreto armado,
por bielas e tirantes.
O capítulo quatro mostra a aplicação das teorias apresentadas na
automatização da modelagem de blocos. Todas as etapas do programa elaborado são
explicitadas.
Ao final, no capítulo cinco, um bloco de coroamento, tomado como exemplo, é
analisado pela teoria clássica e os seus resultados são comparados com os obtidos
3
pelo programa. Além disso, o estudo de sensibilidade a imperfeições geométricas
desse mesmo bloco é, brevemente, exposto.
No Apêndice 1, encontra-se a listagem do programa na linguagem FORTRAN.
4
2 CÁLCULO DO ESTAQUEAMENTO
A distribuição das cargas entre as estacas de um mesmo bloco é chamada
cálculo de estaqueamento. De maneira geral, as solicitações do pilar sobre o bloco
podem ser forças e momentos nas três direções, quando geram esforços nas estacas
que podem ser de compressão, tração, flexão, cortante e torção.
Existem diversos métodos propostos por diferentes autores para efetuar o
cálculo de um estaqueamento. Poulos (1980) agrupou os métodos em três grupos:
Métodos simplesmente estáticos que ignoram a presença do solo e
consideram o conjunto bloco-estacas como um sistema puramente
estrutural;
Métodos que reduzem o conjunto bloco-estaca a um sistema estrutural, mas
levam em conta alguma influência do solo pela determinação do
comprimento de engastamento das estacas;
Métodos que consideram o solo como um meio elástico contínuo e a
interação entre estacas é inteiramente considerada.
Os dois primeiros têm a restrição de considerar a interação entre estacas
apenas pelo bloco de coroamento. O terceiro método permite essa consideração,
também, pelo solo que envolve as estacas.
Os métodos do primeiro grupo, apesar de terem mais considerações
simplificadoras, ainda são largamente utilizados. Segundo Maria (2007), eles são,
geralmente, conservadores conduzindo a esforços máximos maiores, se comparados
com métodos mais sofisticados. Entretanto, dependendo da geometria do
estaqueamento e do perfil do subsolo, os erros podem ser consideráveis.
Como o objetivo principal do presente estudo é a análise dos blocos de
coroamento, utiliza-se um dos métodos do primeiro grupo para estudo e
desenvolvimento no programa. Ressalta-se que é um método de simples
implementação computacional e de resultados conservadores.
2.1 Hipóteses básicas dos métodos simplesmente estáticos
Os métodos simplesmente estáticos apresentam as seguintes hipóteses
básicas:
5
O bloco de coroamento é infinitamente rígido. Esta simplificação é aceitável
se os deslocamentos das estacas forem muito maiores que as deformações
do bloco. Na prática, a altura do bloco deve ser considerável se comparada
com as dimensões em planta;
As estacas são consideradas como barras birotuladas. Há vários fatores
como tipo de solo, esbeltez da estaca, distância entre estacas e forças
horizontais que podem fazer com que essa consideração não retrate bem o
comportamento estrutural. Entretanto, para os casos correntes, ela é
aceitável e muito conveniente para aplicação da maioria dos métodos de
cálculo. Essa simplificação faz com que as estacas estejam solicitadas
apenas por esforços axiais;
Um comportamento elástico linear é assumido e a força transmitida para
cada estaca é proporcional ao deslocamento do seu topo;
Não se considera a contribuição do bloco agindo como fundação direta.
A primeira hipótese se adequa bem aos blocos para os quais, normalmente, se
utilizam o método de bielas e tirantes. Para blocos flexíveis, apesar de não existir
impedimento à utilização deste último, o dimensionamento por esforços seccionais é
mais comumente aplicado.
A segunda simplificação impede o surgimento de momento no topo das
estacas, evitando a utilização de mais de uma força por estaca para formar um binário
representando o momento.
2.2 Principais abordagens de cálculo
2.2.1 Método de Culmann
A primeira forma de cálculo, desenvolvida ainda no século XIX, soluciona
problemas planos de forma gráfica, evitando fórmulas e sistemas de equações, já que
na época não estavam disponíveis calculadoras. Essa abordagem ficou conhecida
como método de Culmann, mas caiu em desuso.
A Figura 2.1 ilustra a aplicação do método de Culmann para um bloco plano de
quatro estacas. Como se pode observar, o equilíbrio estático é representado de forma
gráfica.
6
Figura 2.1 - Método gráfico de Culman (Adaptado de Poulos (1980)).
2.2.2 Método de Nökkentved
Posteriormente, expressões práticas foram desenvolvidas para a resolução do
sistema estático e foram aplicadas, também, em problemas tridimensionais. Para cada
componente das solicitações, é calculada a distribuição das forças pelas estacas e ao
final, as parcelas são somadas. A solução por tais fórmulas ficou conhecida como
método de Nökkentved.
Por tradição, no cálculo de estaqueamentos, o eixo vertical é adotado como
positivo para baixo. Neste método, o eixo vertical será chamado de z, respeitando a
convenção utilizada por Alves (2014).
7
2.2.2.1 Distribuição das forças verticais
Como o bloco é considerado infinitamente rígido, para uma carga vertical
aplicada no centro elástico (calculado no item 2.2.2.5), o deslocamento vertical do topo
de todas as estacas tem que ser igual. O equilíbrio vertical pode ser expresso pela
equação que segue, com as grandezas ilustradas na Figura 2.2:
V = kzi .z
n
i=1
2.1
Onde:
V: força vertical aplicada ao bloco;
kzi: a rigidez vertical de cada estaca;
z: o deslocamento de corpo rígido do bloco na vertical;
n: número de estacas que compões o bloco.
Figura 2.2 - Deslocamento pela carga vertical (Adaptado de Alves (2014)).
A componente vertical, Fzi, da força axial em cada estaca é dada por:
Fzi = - kzi .z = - kzi.V
∑ kzini=1
(2.2)
No caso de estacas inclinadas, seu impedimento ao movimento vertical será
reduzido. A Figura 2.3 ilustra a decomposição da rigidez axial para se obter a rigidez
vertical de uma estaca inclinada. A expressão (2.3) pode ser usada como regra geral
para cálculo dessa rigidez.
kz = E .A
L .cos2 α (2.3)
sendo:
E: módulo de elasticidade do material;
A: área da seção transversal da estaca;
L: comprimento da estaca;
: menor ângulo que o eixo da estaca faz com a direção vertical.
8
Figura 2.3 - Rigidez vertical de estaca inclinada (Retirada de Alves (2014)).
Finalmente, o esforço axial em cada estaca (Ni), provocado por uma força vertical, é
calculado pela expressão (2.4), com valor positivo para compressão:
Ni = kzi . V
cos i . ∑ kzini=1
(2.4)
2.2.2.2 Distribuição das forças horizontais
Como as estacas são consideradas birotuladas (sem contenção lateral do
solo), forças horizontais só podem ser absorvidas por estacas inclinadas.
A rigidez, em uma direção horizontal (x, por exemplo), de uma estaca é
definida pela expressão (2.5), sendo x, o ângulo de inclinação projetado no plano x-z:
kxi = E.A
L. sen2 xi (2.5)
A Figura 2.4 ilustra a decomposição da rigidez de uma estaca inclinada para
obter sua rigidez a uma força horizontal.
9
Figura 2.4 - Rigidez horizontal de estaca inclinada (Retirada de Alves (2014)).
Por equilíbrio das forças horizontais no bloco:
Hx = kxi .x
n
i=1
(2.6)
Fxi = - kxi .x =- kxi .Hx
∑ kx(2.7)
onde:
Hx: força horizontal aplicada ao bloco na direção x,
kxi: rigidez na direção horizontal de cada estaca (expressão 2.5),
x: deslocamento de corpo rígido do bloco na direção x e
Fxi: componente da reação de cada estaca, também nessa direção.
A força axial de cada estaca, provocada por uma força horizontal, é então:
Ni = ± kxi . Hx
sen(xi). ∑ kxini=1
(2.8)
O sentido da força de cada estaca é facilmente obtido ao se observar o sentido
da força aplicada e a configuração do estaqueamento nos dois planos verticais
adotados (x-z e y-z). Um exemplo pode ser visto na Figura 2.5, na qual dada uma
força horizontal com sentido da esquerda pra direita, as estacas da direita trabalham a
compressão e as estacas da esquerda a tração.
Deve ser lembrado que, devido às simplificações adotadas, o estaqueamento
só pode absorver forças horizontais passando pelo centro de rotação. Este pode ser
definido pelo baricentro do prolongamento dos eixos das estacas (caso existam várias
estacas inclinadas, um eixo representando um grupo é tomado, como ilustrado na
10
Figura 2.5). Por essa simplificação, a força deve ser transferida do topo do bloco para
esse centro causando um momento devido a essa translação da força.
Figura 2.5 - Distribuição das forças horizontais (Adaptado de Alves (2014)).
2.2.2.3 Distribuição das forças para equilíbrio de momentos
Caso o bloco seja solicitado por momentos fletores, causando sua rotação,
verifica-se a contribuição das reações das estacas no equilíbrio, conforme ilustra a
Figura 2.6. O sentido de cada reação pode ser facilmente observado. Ressalta-se que
as estacas alinhadas com o centro de rotação não resistem ao momento aplicado.
O equilíbrio no centro de rotação pode ser expresso pela seguinte equação
(para direção y, por exemplo):
My = Ni .rxi
n
i=1
= ki .y .rxi2
n
i=1
(2.9)
Ni = ± ki . My . rxi
∑ (ki . rxi2)n
i=1 (2.10)
sendo:
My: momento solicitante na direção y.
y: Rotação de corpo rígido do bloco na direção y.
ki: rigidez axial da estaca i.
11
rxi: a distância do eixo da estaca i ao eixo, de mesma direção, que foi tomado como
referência para determinação do centro de rotação. Essa distância é tomada, sempre,
perpendicular aos eixos;
Figura 2.6 - Distribuição das forças de equilíbrio dos momentos (Adaptado de Alves (2014)).
2.2.2.4 Esforços axiais
Ao final, somam-se as forças axiais obtidas pelas expressões (2.4), (2.8) e
(2.10) para cada estaca e cada direção. Como os referenciais podem ser adaptados
para cada caso, os sentidos das forças de reação obtidas devem ser observados para
cada solicitação e cada plano.
Ni = kzi.V
cos i .∑ kzi ±
kxi.Hx
sen(xi).∑ kxi ±
kyi.Hy
sen(yi).∑ kyi ±
ki.Mx.ryi
∑ (ki.ryi2 )
± ki.My.rxi
∑ (ki.rxi2 )
(2.11)
2.2.2.5 Centro de rigidez e eixos principais
Para estaqueamentos não simétricos, é preciso antes da aplicação das
expressões vistas anteriormente, calcular a posição do centro de rigidez do
estaqueamento e as direções dos eixos principais. E em seguida, transladar e rodar o
12
sistema de coordenadas, sempre considerando a mudança nos momentos provocada
por isso.
A Figura 2.7 ilustra a translação do sistema de coordenadas iniciais (x0,y0) para
o centro de rigidez (x,y) e a rotação dos eixos para coincidirem com os eixos principais
(x,y) do estaqueamento.
Figura 2.7 - Translação e rotação do sistema de coordenadas (Alves (2014)).
A localização do centro de rigidez do estaqueamento, é expressa, em função
de um sistema de coordenadas inicial (x0,y0), por:
x0= ∑ (ki.x0i)∑ ki
ey0= ∑ (ki.y0i)
∑ ki(2.12)
onde:
x0i e y0i: coordenadas de cada estaca em relação ao sistema original;
x0 e y0: coordenadas do centro de rigidez em relação ao sistema original.
Procede-se, então, à translação das coordenadas com os respectivos
momentos, utilizando as expressões a seguir:
xi = x0i - x0 e yi = y0i - y0 (2.13)
Mx=Mx0-V.y0 e My=My0
+V.x0(2.14)
sendo:
xi e yi: coordenadas de cada estaca no sistema com origem no centro de rigidez;
Mx0 e My0
: momentos no sistema de coordenadas original;
Mx e My: são os momentos no sistema de coordenadas com origem no centro de
rigidez.
13
Após a translação dos eixos iniciais para o centro de rigidez de estaqueamento,
faz-se a rotação para as direções principais:
xi = xi.cos() + yi.sen() e yi = - xi.sen() + yi.cos() (2.15)
Mx = Mx.cos() + My.sen() e My = - Mx.sen() + My.cos() (2.16)
com :
= 1
2tg-1 2∑ ki. xi. yi
∑ ki. xi2 - ∑ ki. yi
2 (2.17)
sendo:
: ângulo de rotação entre as direções dos eixos originais e as direções dos eixos
principais;
x e y: coordenadas de cada estaca em relação ao sistema de coordenadas final, com
origem no centro de rigidez e eixos nas direções principais;
Mx e My: são os momentos solicitantes em relação aos eixos do sistema de
coordenadas final.
2.2.3 Método de Schiel
Com o desenvolvimento de programas computacionais, a formulação matricial,
desenvolvida para a análise de blocos com estaqueamentos complexos, pôde ser
desenvolvida. O método de Schiel, como é conhecido, propõe que se ignore o solo e
considere a estaca birotulada, simplificando a sua formulação, pois o número de
incógnitas reduz drasticamente.
Para esse método, seguindo as convenções propostas por Velloso e Lopes,
(2010) o sistema de coordenadas terá o eixo x como vertical. O sentido positivo
continua sendo para baixo.
As coordenadas do centro do topo de cada estaca são denominadas de xi, yi e
zi. Os ângulos que as estacas fazem com os eixos do sistema de coordenadas são
chamados de i, i e i e estão ilustrados na Figura 2.8.
14
Figura 2.8 - Sistema de coordenadas usual para aplicação do método de Schiel (Adaptado de Velloso e Lopes (2010)).
Inicialmente, é formada uma matriz com os dados geométricos do
estaqueamento chamada matriz das estacas. As informações de um vetor com origem
no topo de cada estaca e que seguem em direção à ponta da mesma são organizados
conforme a seguinte matriz:
P=
px1 px2 … pxnpy1 py2 … pynpz1 pz2 … pznpa1 pa2 … panpb1 pb2 … pbnpc1 pc2 … pcn
(2.17)
onde:
px = cos (componente segundo x);
py = cos (componente segundo y);
pz = cos (componente segundo z);
pa = y pz – z py (momento em torno do eixo x);
pb = z px – x pz (momento em torno do eixo y);
pc = x py – y px (momento em torno do eixo z);
n: número de estacas.
As resultantes do carregamento, R, são escritas no vetor carregamento,
sempre respeitando as direções definidas dos eixos:
15
R=
Rx
Ry
Rz
Ra
Rb
Rc
(2.18)
onde:
Rx: força solicitante na direção x;
Ry: força solicitante na direção y;
Rz: força solicitante na direção z;
Ra: momento solicitante em torno do eixo x;
Rb: momento solicitante em torno do eixo y;
Rc: momento solicitante em torno do eixo z.
Em seguida, é necessário calcular a matriz de rigidez do estaqueamento para
obter o deslocamento do topo de cada estaca. O primeiro passo para isso é o cálculo
da rigidez axial de cada estaca, dada por:
ki = Ei.Ai
Li(2.19)
Em seguida, define-se uma matriz diagonal com essas rijezas:
D =
k1 0 0 … 00 k2 0 … 0.. .. .. … .... .. .. … ..
0 0 0 … kn
(2.20)
A matriz de rigidez do estaqueamento (K) é obtida pela seguinte
transformação:
K = P.D.PT (2.21)
Finalmente, o vetor com os deslocamentos de corpo rígido do bloco (V) e o
vetor com os esforços normais nas estacas (N) são obtidos pelas expressões (2.22) e
(2.23):
V = K-1.R (2.22)
N = D.PT.V (2.23)
Substituindo (2.22) em (2.23), tem-se:
N = D.PT.K-1.R (2.24)
16
O vetor N fica com a aparência da expressão (2.25), com os esforços de
compressão com sinal positivo e os esforços de tração com sinal negativo:
N=
N1
N2⋮
Nn
(2.25)
Como citado anteriormente, a formulação matricial se torna especialmente
vantajosa para casos de estaqueamento complexos. Por exemplo, se existirem
estacas inclinadas nas duas direções, e solicitações com componentes em todas as
direções, inclusive com momentos de torção do pilar, a resolução pelas fórmulas de
Nökkentved se tornaria muito trabalhosa.
17
3 MODELOS DE BIELAS E TIRANTES
Por muito tempo, o dimensionamento em certas regiões de elementos
estruturais de concreto armado apresentava certa imprecisão. Isso motivou os autores
Schlaich et. al. (1987) a organizar e apresentar um método mais racional de
dimensionamento, com foco nessas regiões estruturais denominadas regiões de
descontinuidades.
O método desenvolvido, dos modelos de bielas e tirantes, é uma generalização
e adaptação da analogia da treliça clássica desenvolvido por Ritter (1889) e Mörsch
(1912). A ideia é simular o arranjo de forças internas em uma peça de concreto
armado já fissurada e plastificada por bielas (elementos comprimidos da treliça) e
tirantes (elementos tracionados da treliça) ligados por nós.
O dimensionamento por modelos de bielas e tirantes é considerado, hoje, como
o método mais adequado quando se trata de regiões de descontinuidade (definidas no
item 3.1), podendo ser aplicado em qualquer parte de um elemento estrutural de
concreto. As prescrições para sua aplicação estão presentes nas principais normas de
concreto armado, incluindo a norma brasileira ABNT NBR6118:2014 e a norma
americana ACI 318-14 .
3.1 Regiões de descontinuidade
Uma região de descontinuidade em uma estrutura de concreto armado é
qualquer parte de um elemento, ou mesmo um elemento estrutural inteiro, onde a
hipótese de Bernoulli de distribuição linear de deformações na seção não se aplica.
Essas zonas são também chamadas de regiões D. As regiões onde a hipótese de
Bernoulli, das seções planas, é válida são denominadas de regiões B.
A divisão da estrutura em dois tipos de regiões pode ser feita com auxílio do
princípio de Saint Venant, no qual um sistema de forças aplicado em uma dada
superfície de um corpo elástico é substituído por outro estaticamente equivalente.
Assim, descontinuidades de tensões no corpo só podem ocorrer em regiões próximas
à força aplicada. Em pontos cuja distância ao ponto de aplicação da força seja de
ordem de grandeza maior que as dimensões da superfície, a influência da distribuição
das forças é desprezível.
Na prática, sugere-se que a partir de uma distância do ponto de
descontinuidade igual à altura do elemento, pode-se aplicar a hipótese de Bernoulli. A
18
Figura 3.1 mostra, em um pórtico, exemplos de regiões de descontinuidade,
representadas por hachuras.
Exemplos clássicos de regiões D são: zonas de introdução de carga
concentrada, regiões de variação brusca de seção, vigas-parede, consolos, nós de
pórtico, aberturas, sapatas e blocos de coroamento.
Figura 3.1 - Exemplos de regiões de descontinuidade (Adaptado de Santos (2014)).
3.2 Modelagem do comportamento de regiões de descontinuidade
Para qualquer estrutura de concreto armado solicitada por um conjunto de
ações, o comportamento antes da ruptura pode ser dividido em três fases (ou
estádios).
No primeiro estádio, ainda não ocorreram fissuras no concreto e este apresenta
um campo de tensões elásticas. Nesse caso, para as regiões B podem ser usadas as
fórmulas de Resistência dos Materiais em função da área e do momento de inércia da
seção homogênea. Para as regiões D, uma análise elástica ou por elementos finitos
pode ser empregada para obtenção das tensões no ponto desejado.
19
Quando a resistência à tração do concreto é ultrapassada pelas tensões
solicitantes, as fissuras interrompem os campos de tensões e o arranjo das forças
internas muda drasticamente. O comportamento da compressão no concreto ainda
pode ser considerado como elástico, mas, as trações são totalmente absorvidas pelo
aço. Essa configuração corresponde ao chamado Estádio II.
Se as solicitações aumentarem ainda mais, o concreto começa a se plastificar
e a distribuição das tensões de compressão é alterada até atingir a capacidade
máxima da zona de concreto comprimida ou o escoamento do aço da armadura. Esse
é o Estádio III e a obtenção das forças internas pode ser feita por um modelo de treliça
contínua para regiões B ou por um modelo de treliça discreta (bielas e tirantes) para
uma região D. Nesses modelos, os campos de compressão são concentrados e
representados por bielas. Já as armaduras, que resistem às forças de tração onde o
concreto já fissurou, são representadas por tirantes.
Qualquer modelo de bielas e tirantes, concebido adequadamente, satisfaz o
teorema do limite inferior da plasticidade, que pode ser descrito segundo Santos
(2014): “Um campo de tensões (forças) que satisfaz às condições de equilíbrio e não
viola o critério de escoamento em nenhum ponto, se constitui em uma estimativa do
limite inferior da capacidade resistente de elementos estruturais constituídos de
materiais elastoplásticos perfeitos”.
A Figura 3.2 ilustra o campo de tensões de um elemento estrutural
representado por um modelo de bielas e tirantes. Apresentam-se as trajetórias de
tensões quando da aplicação da carga em um ponto da estrutura (a). Em seguida,
idealiza-se um modelo complexo de bielas e tirantes (b), para em seguida, definir o
modelo representativo que será analisado (c).
Figura 3.2 – Comportamento típico de bielas e tirantes.
A treliça adotada como modelo deve, primeiramente, equilibrar as forças
externas. Além disso, o sistema estrutural interno deve ser escolhido de tal forma que
(a) (b) (c)
20
represente o mais próximo possível, o campo de tensões elásticas. Isso ajuda a evitar
que os limites de deformações de fissuração sejam atingidos antes da plastificação.
Por isso, muitas vezes, antes de se elaborar um modelo de bielas e tirantes de uma
estrutura, é feita uma análise por elementos finitos para definir o “caminho natural das
cargas”.
Além disso, outras recomendações devem ser seguidas para modelagem em
bielas e tirantes e que são importantes no Capítulo 4,Erro! Fonte de referência não
encontrada. para automatização da escolha dos modelos adequados, que são:
A impossibilidade do cruzamento de bielas fora dos nós. Isso leva a tensões
na região do cruzamento não bem representadas pelo modelo. Ao contrário,
uma biela pode ser cruzada por um tirante e também não há problemas se
isto ocorrer com dois tirantes.
A inclinação entre as bielas e tirantes é limitada para não provocar
problemas de compatibilidade de deslocamentos entre regiões próximas
nem abertura excessiva de fissuras. Os limites variam segundo cada autor
ou norma consultada. A NBR6118:2014 define um ângulo de inclinação das
bielas cuja tangente esteja entre 0,57 e 2,0. Já a ACI 318-14 prescreve que
esse ângulo entre bielas e tirantes não seja inferior a 25°.
Outra importante consideração é o cuidado com o grau de hiperestaticidade
da treliça usada no modelo. Caso esta não seja isostática, a distribuição das
forças entre os elementos dependerá das propriedades físicas (módulo de
elasticidade) e geométricas de cada um (área da seção transversal e
comprimento). Essas características das bielas e tirantes deveriam ser
utilizadas na análise, aumentando muito o seu grau de complexidade. Além
disso, esse tipo de análise requer um processo iterativo para definição das
dimensões exatas dos nós, conforme relatam Chantelot e Mathern (2010).
Por essa razão, é aconselhável (mas não teoricamente necessário) que o
modelo de bielas e tirantes seja isostático.
3.3 Elementos do modelo: modos de ruptura e dimensionamento
3.3.1 Bielas
As bielas representam a concentração do campo de tensões de compressão e,
apesar de serem representadas por um prisma, sua seção transversal raramente é
constante. Geralmente, os campos de tensões de compressão no concreto tendem a
se espraiar ao se distanciar dos nós, como ilustrado na Figura 3.2b. Esse
21
espraiamento causa tensões de tração transversais à direção da biela e pode provocar
uma ruptura antes do esmagamento.
Para considerar esse perda de resistência por fissuração paralela à biela, a
tensão resistente deve ser reduzida se houver tração transversal. A NBR6118:2014
define, em seu item 22.1, a resistência de compressão a ser utilizada na verificação
pelo Método das Bielas e Tirantes:
Regiões não fissuradas, com tensões de compressão transversal ou sem
tensões de tração transversal e em nós com barras comprimidas:
fcd1 = 0,85 . v2 . fcd (3.1)
Regiões fissuradas, com tensões de tração transversal e em regiões nodais
onde confluem dois ou mais tirantes:
fcd2 = 0,60 . v2 . fcd (3.2)
Regiões nodais onde conflui um tirante tracionado:
fcd3 = 0,72 . v2 . fcd (3.3)
onde:
v2 = 1 - fck
250(com fck expresso em MPa);
fcd: tensão resistente de compressão de cálculo do concreto.
3.3.2 Tirantes
Os tirantes representam as armaduras passivas ou ativas. Esses devem ter
sempre a mesma direção e estar, aproximadamente, no centro geométrico das barras
de aço da armadura simulada.
O dimensionamento é feito diretamente por:
As = FSd
fyd(3.4)
onde:
As é a soma das áreas das seções transversais das barras que compõem a armadura;
FSd é o valor de cálculo da força de tração no tirante obtida no modelo;
fyd é a tensão de escoamento de cálculo do aço.
22
3.3.3 Nós e regiões nodais
Os pontos de encontros de bielas e tirantes são chamados de nós, e a região
de concreto que o rodeia é chamada de região nodal. Os nós são modelados como
ligações pontuais (nós de treliça), que representam variações de direção das forças
internas na estrutura que ocorrem por um determinado comprimento e com uma
determinada largura.
Os tipos de nós são comumente referidos pelos elementos que neles se ligam
por C para bielas e T para tirantes. Por exemplo, um nó onde confluem duas bielas e
que é equilibrado por um tirante é classificado como CCT.
O dimensionamento de regiões nodais passa por três etapas sugeridas por
Schlaich (1987):
Etapa 1 - Adaptação da geometria da região nodal:
A geometria da região nodal varia conforme os elementos se interceptam neste
ponto. A equação 3.5 pode ser empregada, de maneira geral, para obtenção das
dimensões em regiões nodais de modelos planos com as dimensões ilustradas na
Figura 3.3:
w2 = w1 cosθ + w3 senθ (3.5)
Figura 3.3 – Exemplo da região nodal de um nó CCC.
23
Muitas vezes, é conveniente dividir uma região nodal em duas, como
exemplificado na Figura 3.4. A dimensão da biela de ligação horizontal pode ser
ajustada para se alcançar a tensão de compressão resistente na mesma.
Figura 3.4 - Exemplo de uma região nodal de um nó CCC dividida.
Quando um tirante intercepta o nó, sua componente na região nodal equivale a
de uma biela entrando na face oposta, como ilustrado na Figura 3.5:
Figura 3.5 – Exemplo da região nodal de um nó CCT.
24
A geometria de regiões nodais em modelos espaciais é mais complexa e pouco
tratada na literatura e nas normas até agora. Como a verificação das tensões no
modelo não é o foco deste trabalho, apenas expõe-se a geometria das regiões nodais
em modelos planos. Uma abordagem por faces poligonais pode ser vista em Chantelot
(2010) e outra por faces elípticas em Alves (2014).
Etapa 2 – Verificação das tensões nas faces da região nodal:
Geralmente, a verificação das tensões na região nodal é crítica. Uma zona de
descontinuidade pode ser considerada segura se as tensões em todos os nós
estiverem abaixo dos limites estabelecidos no item 3.3.1 e os tirantes armados
adequadamente.
Etapa 3 – Garantir a ancoragem dos tirantes nos nós:
As ancoragens devem ser adotadas como as prescritas pela norma utilizada e
podem ser realizadas por aderência, gancho ou dispositivos mecânicos. A ACI 318-14,
no seu anexo A, sugere que ancoragem da armadura comece a partir de uma seção
crítica definida pela região nodal estendida, como ilustrada na Figura 3.5.
3.4 Otimização do modelo
Não existe um único modelo correto de bielas e tirantes, bem como há vários
arranjos do sistema de forças internas de um elemento estrutural. A posição dos
tirantes deve ser definida para facilitar a construção.
Um modelo pode ser considerado mais eficiente quando as cargas usarem um
caminho que provocar menores forças internas e deformações. Considerando a
energia mínima de deformação, conclui-se que a escolha do modelo “ótimo” pode ser
resumida pela seguinte expressão:
mínimo Filii (3.6)
onde:
Fi é a força na biela ou tirante i;
li é o comprimento do elemento i;
i é a deformação axial do elemento i.
Como o aço é muito mais deformável que o concreto (Es/Ec ≈ 7), a contribuição
das bielas é, geralmente, omitida. Além disso, considerando que todos os tirantes
alcançam a sua resistência de cálculo (mesma tensão), a deformação axial também é
a mesma para todos, o que conduz a expressão 3.7:
25
mínimo Ftilti (3.7)
onde:
Fti é a força no tirante i;
lti é o comprimento do tirante i.
A Figura 3.6 ilustra duas maneiras distintas de modelar, por bielas e tirantes, as
forças internas em uma viga parede. Fica claro que o modelo (a) gera menos energia
de deformação que o modelo (b).
Figura 3.6 - (a) Modelo "adequado"; (b) Modelo não “adequado”. (Adaptado de Wight (2012))
(a) (b)
26
4 IMPLEMENTAÇÃO COMPUTACIONAL
A definição de um modelo estrutural em bielas e tirantes é um processo que
requer sensibilidade e experiência do engenheiro. Dada uma região de
descontinuidade com certo conjunto de cargas externas, é necessário determinar um
arranjo de elementos de treliça posicionados de forma a representar as principais
trajetórias de forças internas. Esse arranjo deve ser inspirado no campo de tensões,
obtido, por exemplo, em uma análise elástica. Além disso, os elementos tracionados
devem estar concebidos de forma a permitir uma disposição viável das armaduras.
Essa compatibilização de condições faz com que o processo não seja de fácil
automatização, ainda mais quando se trata de uma estrutura com dimensões
consideráveis nas três direções. No caso de blocos de coroamento, é possível assumir
que todos os nós do modelo estão situados em dois planos: no fundo e no topo do
bloco.
Para blocos suficientemente rígidos, nos quais a biela de compressão possa
chegar à estaca mais distante sem ter que ser suspensa, os nós do modelo são
prontamente definidos. No plano do fundo do bloco, tem-se para cada estaca, sempre,
um nó. No plano de topo do bloco, são considerados tantos nós quantos necessários
para decompor os esforços seccionais da base do pilar em forças verticais.
4.1 Matriz de conexão de nós
A automatização da definição dos nós do modelo de treliça é baseada na, aqui
denominada, matriz de conexão de nós. Nesta matriz, são previstas todas as possíveis
ligações, representadas pelas bielas e tirantes, geralmente adotadas para blocos de
coroamento. Essa matriz de conexões de nós é a base para concepção da
metodologia de automatização proposta e se encontra ilustrada na Figura 4.1.
Essas conexões são divididas em três grupos: ligações entre nós da base,
ligações entre nós do topo e ligação entre planos. A princípio, não há restrições para
os elementos dos dois primeiros grupos e o número de conexões possíveis para cada
um é a combinação simples do número de nós no plano de dois em dois. Para ilustrar,
a combinação entre ligações dos nós do topo do bloco é discretizada em seguida, e os
valores finais podem ser observados na matriz:
n° de conexões = NCC + NCT + NET !
NCC + NCT + NET - 2 ! . 2! (4.1a)
27
n° de conexões = NCC + NCT + NET . NCC + NCT + NET - 1
2(4.1b)
n° de conexões = NCC.(NCC-1)
2 + NCC.NCT + NCC.NET +
NCT.(NCT-1)
2
+ NCT.NET + NET.(NET-1)
2 (4.1c)
onde:
NCC: nós de introdução de cargas de compressão;
NCT: nó de introdução de carga de tração;
NET: projeção dos nós de estacas tracionadas. A força de cada estaca tracionada
deve ser suspensa até o topo do bloco, necessitando assim, de um nó correspondente
neste plano.
Uma discretização análoga pode ser feita para os nós da base do bloco.
n° de conexões = NEC.(NEC-1)
2 + NEC.NET + NEC.NCT +
NET.(NET-1)
2
+ NET.NCT + NCT.(NCT-1)
2 (4.2)
onde:
NEC: nós de estacas comprimidas;
NET: nós de estacas tracionadas;
NCT: projeção dos nós de carga de tração. Cada carga de tração aplicada deve ser
levada até o fundo do bloco, necessitando assim, de um nó correspondente neste
plano.
As conexões entre planos requerem um pouco mais de atenção e serão
ilustradas a partir dos nós do plano superior do bloco. Os nós de carga de compressão
podem se conectar a qualquer nó da base, resultando nas seguintes possibilidades:
n° de conexões = NCC . (NEC + NET + NCT) (4.3a)
n° de conexões = NCC . NEC + NCC . NET + NCC . NCT (4.3a)
Teoricamente, não existem impedimentos em se definir um modelo de bielas e
tirantes de um bloco de coroamento com tirantes não verticais entre planos. Porém,
isso dificultaria muito a colocação da armadura. Por esse motivo, sempre que existe
uma carga externa de tração no bloco, tende-se a transferir esta carga para a face
28
oposta por tirantes verticais, que corresponderiam a estribos ou a continuação das
armaduras longitudinais dos pilares ou estacas.
Por esse motivo, cada nó de carga de tração é ligado obrigatoriamente por um
elemento a um nó projetado no fundo. Além disso, as cargas de tração podem ser
conectadas a estacas comprimidas, já que dependendo do arranjo de forças do
modelo, esse elemento de ligação pode vir a ser uma biela. Portanto, o numero de
conexões possíveis para um carga de tração é o seguinte:
n° de conexões = NCT + NCT . NEC (4.4)
Para estacas tracionadas, a mesma transferência de carga, por um tirante
obrigatório, é executada. Os nós projetados no topo, além das estacas tracionadas
correspondentes, podem se ligar, também, às estacas comprimidas e aos nós de
cargas de tração projetados no fundo do bloco. O número de ligações para esses nós
fica da seguinte maneira:
n° de conexões = NET + NET . NEC + NET . NCT (4.5)
Todas as conexões por elementos descritas até aqui, nas expressões (4.1) a
(4.5), estão ilustradas na matriz de conexões da Figura 4.1. As combinações entre
elas servem de base para a automatização proposta.
Além disso, o modelo gerado deve ser verificado para atender a algumas
restrições dos modelos de bielas e tirantes e ao equilíbrio da treliça deve ser
garantido.
4.2 Fluxograma geral
A automatização visou permitir que vários modelos de treliças fossem formados
a partir dos tirantes obrigatórios, variando os elementos opcionais. Verificações
geométricas são feitas para todos os modelos gerados, sendo analisados somente
aqueles que atenderem a tais condições. Os modelos são ainda verificados para
certas condições que dependem do elemento ser biela ou tirante. Os modelos que
passarem por todas as verificações podem ser considerados como arranjos
consistentes de bielas e tirantes e os resultados são apresentados.
O fluxograma geral do programa se encontra nas Figuras 4.2 e 4.3, sendo as
etapas explicadas nos itens que seguem.
29
Figura 4.1 - Matriz de conexão de nós
1...
NC
C1
...N
CT
1...
NET
1...
NEC
1...
NET
1...
NC
T
32
22
1
NC
C*N
CT
NC
C*N
ETN
CC
*NEC
NC
C*N
ETN
CC
*NC
T...
NC
C
2só
con
ecta
r se
esta
ca tr
acio
nada
11
NC
T*N
ETN
CT*
NEC
coin
cidir
com
car
ga d
eN
CT
...
traçã
o no
topo
NC
T
21
21
NET
*NEC
NET
NET
*NC
T... NET
31
NEC
*NET
NEC
*NC
T... NEC
1 - T
IRAN
TES
OBR
IGAT
ÓR
IOS
1
EXC
LUIR
ELE
MEN
TOS
SOBR
EPO
STO
SN
ET*N
CT
...
2 - B
IELA
S O
PCIO
NAI
SLI
MIT
AR Â
NG
ULO
EN
TRE
BIEL
AS E
TIR
ANTE
SN
ET
IMPO
SSIB
ILIT
AR B
IELA
S SE
CR
UZA
ND
O F
OR
A D
OS
NÓ
S1
3 - L
IGAÇ
ÕES
OPC
ION
AIS
NO
S PL
ANO
S... NC
T
IMPO
SSIB
ILIT
AR N
ÓS
CO
M T
OD
OS
OS
ELEM
ENTO
S C
OPL
ANAR
ES
NÓ
S PR
OJE
TAD
OS
NO
TO
PO
NÓS NO TOPO DO BLOCO
CARGAS DE COMPRESSÃO
CARGAS DE TRAÇÃO
NÓS PROJETADOS
NO TOPO
NÓS NO FUNDO DO BLOCO
ESTACAS COMPRIMIDAS
ESTACAS TRACIONADAS
NÓS PROJETADOS
NO FUNDO
NC
T(N
CT-
1)/2
NÓ
S N
O T
OPO
DO
BLO
CO
NÓ
S N
O F
UN
DO
DO
BLO
CO
CAR
GAS
DE
CO
MPR
ESSÃ
OC
ARG
AS D
E TR
AÇÃO
NÓ
S PR
OJE
TAD
OS
NO
FU
ND
OES
TAC
AS T
RAC
ION
ADAS
ESTA
CAS
CO
MPR
IMID
AS
NC
C(N
CC
-1)/2
NC
T(N
CT-
1)/2
NET
(NET
-1)/2
NEC
(NEC
-1)/2
NET
(NET
-1)/2
32
4.3 Dados de entrada
Os dados de entrada devem respeitar um sistema de coordenadas pré-
estabelecido. No programa elaborado, o plano X-Y com Z igual a zero foi adotado no
topo do bloco. O sentido do eixo Z é de baixo para cima.
As informações fornecidas ao programa são as seguintes:
Altura útil do bloco (hBLOCO). Como descrito no capítulo 3, para uma definição
precisa da altura útil, seria necessário um cálculo iterativo com a verificação
das tensões nos nós e alteração da altura útil até se obter a condição ótima.
Como medida aproximada, pode-se tomar 0,9 d, sendo d a distância entre
uma face horizontal do bloco e o eixo da armadura da face oposta. Essa
redução na altura é feita para considerar a configuração dos nós e das
bielas da face comprimida.
Quantidade de estacas.
Coordenadas de cada estaca no plano horizontal seguidas de um valor
relativo de rigidez axial. A coordenada vertical (Z positivo para cima) é
automaticamente adotada no fundo do bloco (Z = - hBLOCO). Para estacas
iguais, o valor da rigidez relativa informada para cada uma deve ser o
mesmo (mas nunca informar zero). Para estacas diferentes, pode-se adotar
a rigidez de um tipo como referência e as outras como frações desta.
Quantidade de pontos de introdução de carga
Coordenadas, no plano horizontal, dos pontos de introdução de carga e as
forças verticais de cada um. A coordenada vertical é automaticamente
adotada como zero, correspondente ao topo do bloco. Conforme descrito no
inicio deste item, para aplicar uma força de compressão no bloco, o sinal
deve ser negativo.
Por último, são fornecidos os ângulos limites entre bielas e tirantes (min
e max) conforme descrito no item 3.2 para a definição do modelo.
Com os dados fornecidos são montadas três matrizes básicas que serão
utilizadas no decorrer do programa:
33
C =
xest,1 yest,1 - hBLOCO
xest,1 yest,1 - hBLOCO
⋮xest,n yest,n - hBLOCO
xcar,1 ycar,1 0
xcar,1 ycar,2 0
⋮xcar,m ycar,m 0
(4.6)
onde :
C: matriz de coordenadas dos nós;
xest,i e yest,i: coordenadas do centro da cabeça da estaca “i”;
xcar,i e ycar,i: coordenadas do ponto de introdução de carga “i”.
n: número de estacas;
m: número de pontos de introdução de carga.
matriz de forças externas=
Nest1
Nest2⋮
Nestn
Ncar1
Ncar1⋮
Ncarm
(4.7)
onde:
Nesti: espaço reservado para armazenar a reação da estaca “i” que será,
posteriormente, calculada.
Ncari: força vertical aplicada no ponto de introdução de carga “i”.
matriz de rijezas das estacas =
kest1
kest2⋮
kest,n
(4.8)
sendo, kesti a rigidez relativa da estaca “i”.
4.4 Análise do estaqueamento
Como já foi dito no itém 3.2, é necessário conhecer as forças externas para
dimensionar uma região de descontinuidade por bielas e tirantes. Portanto, para um
bloco de coroamento, é necessário o cálculo prévio da distribuição das forças nas
estacas.
34
Como o objetivo principal do programa elaborado é o estudo da possibilidade
de automatização da modelagem e análise do bloco, são consideradas apenas forças
de reação verticais nas estacas. Admitida essa simplificação, o método de
Nökkenteved é de fácil implementação computacional.
Baseando-se nas expressões gerais, apresentadas no item 2.2.2, o método foi
implementado para determinar as reações causadas exclusivamente por forças
verticais e momento horizontais:
Como um modelo de bielas e tirantes aceita apenas forças como cargas
externas, possíveis momentos no pilar são decompostos em conjunto de
cargas verticais na entrada de dados, conforme item 4.3. Para a análise do
estaqueamento, faz-se o processo inverso e todas as cargas serão
transferidas para a origem do sistema de coordenadas com seus respectivos
momentos.
V = matriz de forças externas (i)
n+m
i=n+1
(4.9)
Mx = matriz de forças externas (i)
n+m
i=n+1
x C(i,2) (4.10)
My = matriz de forças externas (i)
n+m
i=n+1
x C(i,1)(4.11)
onde:
V: força vertical solicitante;
Mx: momento solicitante na direção x;
My: momento solicitante na direção y.
A soma das rijezas relativas de todas as estacas é determinada em função
do valor de referência:
ktotal= matriz de rijezas das estacas (i)
n
i=1
(4.12)
Como o estaqueamento não é necessariamente simétrico, deve-se calcular
as coordenadas do centro de rigidez do mesmo.
x0 = ∑ matriz de rijezas (i) x C (i,1)n
i=1
ktotal (4.13a)
35
y0 = ∑ matriz de rijezas (i) x C (i,2)n
i=1
ktotal(4.13b)
O centro do sistema de coordenadas é transladado, sendo as coordenadas
recalculadas para ter como referência o centro de rigidez.
C' i,1 = C i,1 - x0eC' i,2 = C i,2 - y0(4.14)
sendo C’ a matriz com as coordenadas de cada nó em relação ao centro de
rigidez.
Os momentos também devem ser recalculados para considerar a atuação
da carga vertical nesse ponto.
M'x = Mx - Vy0eM'y = My - Vx0(4.15)
sendo, M’x e M’y as componentes horizontais do momento considerando a
translação da carga vertical.
São determinados os momentos de quadráticos do estaqueamento,
referidos aos eixos com direções originais, porém, com origem no centro de
rigidez:
Ixx= matriz das rijezas i x C' (i,2)2 (4.16)
Iyy= matriz das rijezas i x C' (i,1)2 (4.17)
Ixy= matriz das rijezas i x C' (i,1) x C' (i,2) (4.18)
Determina-se, então, a direção dos eixos principais.
α = 1
2 tg-1 2 Ixy
Ixx+Iyy(4.19)
sendo, o ângulo entre as direções dos eixos originalmente adotadas e as
direções principais.
As coordenadas e momentos são, assim, rotacionados para se referenciar
aos eixos das direções principais.
C’’(i,1) = C’(i,1) cos() + C’(i,2) sen() (4.20a)
C’’(i,2) = - C’(i,1) sen() + C’(i,2) cos() (4.20b)
M’’x = M’x cos() + M’y sen() (4.21a)
36
M’’y = - M’x sen() + M’y cos() (4.21b)
onde:
C”: matriz de coordenadas dos nós com origem no centro de rigidez e
direções dos eixos coincidindo com as direções principais;
M’’x e M’’y: as componentes horizontais do momento já levando em conta a
translação da carga vertical e a rotação das direções dos eixos cartesianos.
Os momentos de 2ª ordem do estaqueamento, Ixx, Iyy e Ixy são recalculados
com base nas coordenadas com o centro de rigidez e os eixos principais
corrigidos. As expressões são as expressões (4.16), (4.17) e (4.18) com a
substituição da matriz C’ pela matriz C’’.
As reações de apoio são obtidas separadamente para cada solicitação e
somadas ao final. Como descrito mais adiante neste capítulo, as reações de
apoio obtidas são aplicadas como cargas externas no modelo de treliça
espacial definido pelas bielas e tirantes.
NV(i) = matriz de rijezas i
ktotal V (4.22)
NMx (i)= matriz de rijezas i
ktotal x
M''x C'' (i,2)
I'xx(4.23)
NMy (i)= matriz de rijezas i
ktotal x
M''y C'' (i,1)
I'yy(4.24)
matriz de forças externas (i) = NV (i) + NMx (i) + NMy i (4.25)
A força calculada para cada estaca é, então, adicionada à matriz de forças
externas.
4.5 Definição dos elementos
Para a definição dos elementos que podem ser utilizados pelo modelo de bielas
e tirantes, é gerada uma matriz de nós, com duas colunas na qual cada linha tem o nó
inicial e o nó final do elemento. A princípio, o número de elementos possíveis
corresponde à combinação simples do número de nós (número de estacas mais
número de nós de introdução carga) de dois em dois, mas isso pode mudar se
existirem cargas externas de tração.
Conforme já apresentado no item 4.1, elementos de transferência obrigatórios
são gerados sempre que existir uma carga externa de tração.
37
Para realizar esta transferência no programa, é necessária a criação de um
novo nó para cada nó de introdução de carga de tração ou estaca tracionada.
A Figura 4.4.a ilustra um modelo que não seria adequado do ponto de vista
construtivo. O arranjo de tirantes ilustrado na Figura 4.4.b é mais indicado.
Figura 4.4 - Modelos de bielas e tirantes para cargas externas de tração.
A partir deste ponto, existem dois caminhos pelos quais se pode continuar a
automatização. No primeiro, todos os elementos que se ligariam ao nó primário são
transferidos para o novo nó e cria-se um elemento vertical obrigatório lingando os dois
nós. Esse tirante obrigatório seria o único elemento do nó primário e os outros nós não
poderiam se ligar a este. Essa abordagem não aumenta o número de combinações
possíveis, mas apenas adiciona esse elemento obrigatório a todas as combinações.
Uma segunda opção é inclusão desse novo nó como se fosse outro nó
qualquer, deixando que os outros nós se liguem tanto a ele como ao primário. Isso
aumenta o número de combinações, e gera muitas combinações com tirantes em
diagonais, que posteriormente seriam excluídas.
A Figura 4.5.a exemplifica a primeira abordagem para transferência de carga.
Nesta, o nó inicialmente definido não se conecta aos outros nós e o tirante vertical
apenas transfere a carga de tração externa. Já na Figura 4.5.b, o nó primário, pode se
conectar a outros nós e o tirante vertical participa do arranjo das forças internas,
podendo suspender uma carga maior do que a aplicada externamente.
(a) (b)
38
Figura 4.5 - Comparação entre as abordagens possíveis para transferência de carga.
Por ser mais geral, a segunda abordagem foi escolhida e implementada no
programa da seguinte maneira:
O programa percorre toda a matriz de forças externas e caso algum nó
referente a estacas tenha forças verticais para baixo, é criado um nó com as
mesmas coordenadas x e y no plano do topo do bloco. Esses dois pontos
são adicionados à matriz de nós e um primeiro elemento (tirante obrigatório)
é formado.
O mesmo procedimento é seguido para os nós referentes a introduções de
carga. A matriz de nós então já conta com os todos os elementos que
seriam os tirantes obrigatórios.
A partir daí, os outros elementos são adicionados na matriz de nós
efetuando-se todas as combinações entre nós possíveis. A cada elemento é
verificado se este já não foi previamente definido como tirante obrigatório.
A matriz de nós fica da seguinte maneira:
matriz de nós =
(tirantes obrigatórios)nó1 nó2
nó1 nó3⋮
nó1 nón-1
nó1 nón⋮
nón-2 nón
nón-1 nón
(4.26)
A ordem da linha dessa matriz representa o número do elemento de treliça. Ou
seja, a primeira linha define os nós do elemento 1, a segunda linha define os nós do
elementos 2 e assim por diante.
A expressão (4.27) indica o número possível de elementos, que também será o
número de linhas da matriz de nós da expressão (4.26).
(a) (b)
39
n° de elementos =C2n° de nós =
n° de nós !
2! n° de nós-2 !(4.27)
sendo, o número de nós igual à soma do número de estacas, número de pontos de
introdução de carga e nós que foram eventualmente criados para transferência de
carga.
4.6 Elementos sobrepostos
No caso de existirem três ou mais nós colineares, a matriz de nós contaria com
situações como a ilustrada na Figura 4.6:
Figura 4.6 - Elementos sobrepostos.
Para solucionar esse problema, uma rotina de verificação é executada para o
plano da base e para o plano do topo do bloco. Nesta, o programa percorre cada nó,
fazendo a combinação com todos os pares de outros nós possíveis no mesmo plano e
armazenando as coordenadas em uma matriz 3 x 3 conforme expressão (4.28).
A=
x1 y1 1
x2 y2 1
x3 y3 1 (4.28)
sendo, xi e yi, as coordenadas no plano horizontal de cada um dos três pontos
escolhidos.
Em seguida, é calculado o determinante da matriz A. Sendo este determinante
próximo de zero, é garantido que os três nós estão alinhados e o maior elemento
ligando dois dos três nós é excluído. Ao final, a matriz de nós é reordenada para evitar
uma linha vazia.
4.7 Combinações de elementos
Pelos motivos expostos no item 3.2, os modelos de bielas e tirantes aceitos
pelo programa serão apenas os representados por treliças isostáticas. Para tal, serão
definidas as combinações que contém o número de elementos necessários para que
uma treliça espacial seja internamente isostática.
n° de incógnitas = reações de apoio + esforços normais (4.29)
40
n° de equações = 3 x n° de nós (4.30)
Em uma estrutura estaticamente determinada o número de equações deve ser
igual ao número de incógnitas. Igualando as expressões (4.29) e (4.30) obtém-se a
seguinte relação:
esforços normais = 3 x n° de nós – reações de apoio (4.31)
Tratando-se de uma estrutura espacial, é necessário impedir deslocamentos
nas três direções e rotações também em três direções, resultando em seis reações de
apoio. Disto resulta a seguinte equação para determinação do número de elementos
de uma treliça espacial isostática:
n° de elementos = 3 x n° de nós – 6 (4.32)
Uma treliça espacial com quatro nós não coplanares tem como número de
elementos possíveis exatamente o necessário para ser isostática formando um
tetraedro. Se a treliça possuir mais nós, têm-se mais elementos possíveis do que
elementos necessários para formar uma estrutura estaticamente determinada. O
número de modelos que podemos formar é uma combinação simples, como descrito a
seguir:
Sendo “a” o número de elementos possíveis da expressão (4.27) e “b” o
número de elementos de uma treliça espacial isostática dados na expressão (4.32), o
número de combinações é:
n° de combinações =Cba =
a !
b! a-b !(4.33)
Para posterior verificação e análise de cada modelo, é necessário formar uma
matriz com todas as combinações possíveis. A matriz utilizada no programa tem como
quantidade de colunas o número de elementos de uma treliça isostática e uma linha
para cada combinação.
Como exemplo, considera-se um bloco com um nó de introdução de carga,
quatro estacas e nenhuma força externa de tração. Com esses cinco nós, tem-se,
segundo a equação (4.27), dez elementos possíveis. Para formar um modelo
isostático são necessários nove elementos, conforme a expressão (4.32). Poderíamos
gerar, então, dez combinações para arranjo dos elementos da treliça (expressão 4.33).
A matriz de combinações para este exemplo seria então:
41
matriz de combinações=
1 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 101 2 3 4 5 6 7 9 101 2 3 4 5 6 8 9 101 2 3 4 5 7 8 9 101 2 3 4 6 7 8 9 101 2 3 5 6 7 8 9 101 2 4 5 6 7 8 9 101 3 4 5 6 7 8 9 102 3 4 5 6 7 8 9 10
(4.34)
4.8 Equilíbrio dos nós
Como descrito por Sussekind (1991), a quantidade de elementos para formar
um modelo de treliça espacial internamente isostática é uma condição necessária mas
não suficiente. Com a quantidade de elementos correta, pode-se ter muitas barras
ligadas a um nó enquanto outro fica sem elementos suficientes garantir o equilíbrio.
Se três forças de direções não coplanares se cruzam em um ponto no espaço,
é garantido, que para quaisquer sistemas de eixos cartesianos adotados, têm-se
componentes em todas as direções. Por essa razão, podemos garantir o equilíbrio e a
análise de uma treliça espacial pelas equações da estática se ela atender a duas
condições:
1ª: possuir 3 n - 6 elementos, onde n é o numero de nós, conforme descrito no
item 4.5.
2ª: todos os seus nós devem ligar, pelo menos, três elementos com direções
não coplanares.
No programa elaborado, para cada combinação de elementos, todos os nós
são verificados para atender à segunda condição.
Antes da verificação para garantir o equilíbrio interno de cada combinação é
formada uma matriz com os vetores diretores de todos os elementos possíveis:
matriz de vetores diretores=
xi1-xf1 yi1-yf1 zi1-zf1xi2-xf2 yi2-yf2 zi2-zf2xi3-xf3 yi3-yf3 zi3-zf3
⋮xin-xfn yin-yfn zin-zfn
(4.35)
onde:
n: o número de elementos possíveis;
xi, yi, zi: coordenadas do nó inicial de cada elemento;
xf, yf, zf: coordenadas do nó final de cada elemento.
42
A verificação é então realizada da seguinte maneira, para cada combinação de
elementos:
Primeiramente, verifica-se se nó aparece no mínimo três vezes na matriz de
nós, considerando apenas os elementos daquela combinação. Caso não
apareça, significa que menos de três elementos se ligam ao nó e o modelo
já é descartado.
Atendido o critério anterior, para cada nó, o primeiro elemento a se conectar
a ele tem seu vetor diretor tomado como referência.
Os outros elementos conectados ao nó são percorridos e definem-se os
planos que contem o vetor diretor de cada um e o vetor de referência.
Por simplificação, os planos são definidos apenas pelos seus vetores
normais, sem risco de ocorrerem planos paralelos e não coincidentes já que
estamos analisando ponto a ponto.
Os vetores normais são calculados pelo produto vetorial dos dois vetores
contidos no plano. A Figura 4.7 ilustra um nó com três elementos, além dos
dois planos formados e dos respectivos vetores normais.
Finalmente, vetores normais daquele ponto são comparados. Se todos
forem iguais, significa que todos os elementos ligados ao nó estão no
mesmo plano e o modelo é então descartado.
43
Figura 4.7 - Verificação da coplanaridade dos elementos ligados a um nó.
4.9 Análise estrutural da treliça
Garantindo-se que o modelo de treliça é isostático, as solicitações axiais
podem ser determinadas pelo sucessivo equilíbrio de forças nos nós. Porém, por
facilidade de automatização, cada treliça que respeite a verificação do item 4.8 é
analisada pelo método dos deslocamentos. A implementação para o caso específico é
descrita a seguir.
4.9.1 Matriz de rigidez da treliça
Inicialmente, determina-se da matriz de rigidez da estrutura. Para tal, forma-se
a matriz de rigidez de cada barra no referencial global e as contribuições ao
impedimento de cada deslocamento são adicionadas à matriz da estrutura.
Para cada elemento, os seguintes cálculos são executados:
Obtenção da matriz de rotação do sistema de coordenadas local para o
sistema de coordenadas global, definida por:
44
TR =
Cx Cy Cz
-CxCy
Cx2+Cz
2
Cx2+Cz
2 -CyCz
Cx2+Cz
2
-Cz
Cx2+Cz
2
0Cx
Cx2+Cz
2
(4.36)
sendo Cx, Cy, Cz, os cossenos diretores do vetor com mesma direção do
elemento. Calculados da seguinte forma, a partir dos dados da matriz de
vetores diretores definida no item 4.8:
Cx = matriz de vetores diretores (i,1)
Li (4.37a)
Cy = matriz de vetores diretores (i,2)
Li (4.37b)
Cz = matriz de vetores diretores (i,3)
Li (4.37c)
onde:
Li = mat. vet. dir. (i,1)2 + mat. vet. dir. (i,2)2 +mat. vet. dir. (i,3)2(4.38)
Para rotação dos deslocamentos no nó inicial e no nó final, montamos a
matriz 6 x 6 chamada de matriz de rotação da barra:
R= TR 00 TR
(4.39)
A matriz de rigidez, no referencial local (kL), de um elemento de treliça
espacial tem a seguinte forma:
kL =
E A
L0 0
0 0 00 0 0
-E A
L0 0
0 0 00 0 0
-E A
L0 0
0 0 00 0 0
E A
L0 0
0 0 00 0 0
(4.40)
Onde:
E: módulo de elasticidade do material
A: área da seção transversal da barra
L: comprimento da barra
45
Como a treliça analisada é isostática, podem-se adotar os valores do
módulo de elasticidade e da área da seção transversal iguais para todas as
barras.
Para obter a matriz de rigidez da barra no referencial global (kG), faz-se a
seguinte transformação:
kG= RT kL R(4.41)
Em seguida, para poder adicionar a contribuição de cada barra na matriz de
rigidez da estrutura é necessário conhecer a numeração global de cada
deslocamento. Como em uma treliça espacial cada nó tem três
deslocamentos possíveis, a numeração global dos deslocamentos dos nós
de cada barra é determinada diretamente como:
ngd=
3 n° do nó i-1 +13 n° do nó i-1 +23 n° do nó i-1 +33 n° do nó f-1 +13 n° do nó f-1 +23 n° do nó f-1 +3
(4.42)
onde:
i e f: nó inicial e nó final do elemento, respectivamente;
ngd: vetor de transformação do deslocamento local para o global.
As 36 rijezas de cada barra são adicionadas a matriz de rigidez da estrutura
(K) da seguinte maneira:
K(ngd(i),ngd(j)) = K(ngd(i),ngd(j)) + kG(i,j) (4.43)
com i e j variando de um a seis.
4.9.2 Condições de contorno
Obtida a matriz de rigidez da estrutura, é necessário se definir as condições de
contorno, que são as forças nodais e os impedimentos aos deslocamentos (apoios).
Neste trabalho, se optou pelo cálculo das reações de apoio pelos métodos
típicos de cálculo dos estaqueamentos já apresentados no item 4.4. Por isso, ao invés
de impor impedimentos aos deslocamentos, as reações de apoio previamente
calculadas serão aplicadas como forças externas.
Para evitar a singularidade da matriz de rigidez e os consequentes
deslocamentos de corpo rígido da estrutura, são aplicadas molas flexíveis para todas
46
as direções de cada nó. Para tal, em todos os valores da diagonal principal da matriz
de rigidez é aplicada uma mola com 0,1% da menor rigidez dentre todos os elementos
da treliça:
K(i,i) = K(i,i) 10-4
Lmáx(4.44)
Com i variando de um até o número total de deslocamentos e Lmáx sendo o
comprimento do maior elemento.
4.9.3 Deslocamentos
Como já sabemos as reações de apoio da estrutura, as nossas únicas
incógnitas são os deslocamentos. Estes são determinados resolvendo-se a equação
de equilíbrio, típica do método da rigidez.
K U = F (4.45)
onde:
K é a matriz de rigidez global,
U o vetor de deslocamentos nodais;
F o vetor de forcas nodais.
O vetor global de forças nodais terá como número de linhas, o número total de
deslocamentos da estrutura e será formado pelas cargas aplicadas no bloco e pelas
reações nas estacas. Para cada nó, a expressão (4.46) é executada:
F(ngd(i)) = matriz de forças externas (i) (4.46)
O sistema de equações lineares (4.45), é resolvido por eliminação de Gauss-
Jordan com pivoteamento total baseado em Press (1992).
4.9.4 Solicitações axiais
Após a obtenção do vetor global de deslocamentos nodais da estrutura, o
esforço axial em cada elemento é calculado da seguinte maneira:
Forma-se um vetor de 6 linhas com os deslocamentos dos nós de cada
elemento no sistema de referência global (uG):
uG(i) = U(ngd(i)) (4.47)
Esse vetor é transformado para o sistema de referência local de cada
elemento com a mesma matriz de rotação da barra R da equação (4.39).
Obtém-se, então, o vetor de deslocamentos da barra (uL)
47
uL = R uG (4.48)
O vetor das forças de extremidade do elemento (fL) é calculado a partir de
da matriz de rigidez da barra (expressão 4.40) e do vetor de deslocamentos
da barra (expressão (4.48)).
fL = kL uL (4.49)
No vetor de forças de extremidades obtido, os valores presentes na 1ª e 4ª
linha são os esforços axiais no nó inicial e final, respectivamente. Estes são
iguais em módulo e tem sinais opostos. Para seguir a convenção de tração
positiva e compressão negativa, basta considerar o esforço obtido na 4ª
linha.
4.10 Matriz das solicitações
Para saída dos resultados, é interessante ter uma matriz com os esforços de
todos os elementos de cada combinação. A matriz tem como quantidade de linhas o
número de combinações e tantas colunas quanto elementos de uma treliça isostática.
Para cada modelo analisado, é adicionada uma linha à matriz geral dos esforços com
o esforço de cada elemento:
matriz geral dos esforços(i, j)=fLi,j(4)(4.50)
sendo fLij, o vetor de forças de extremidade o elemento j no modelo i.
4.11 Vetor de energia
Como visto no item 3.4, uma das maneiras de se escolher o melhor entre
vários modelos de bielas e tirantes é o critério de energia de deformação. Para
aplicação de tal critério, o programa percorre cada linha da matriz geral dos esforços
(expressão (4.50)) e soma todos os valores positivos (correspondentes a tirantes). O
valor é armazenado em um vetor de energia com o número de linhas igual ao número
de combinações.
vetor de energia (i) = matriz geral dos esforços (i,j) (se > 0)
k
j = 1
(4.51)
onde i é número do modelo, j é o número elemento, e k o número de elementos da
treliça isostática. Apenas os valores positivos entram no somatório.
Essa matriz também é utilizada para descarte dos modelos que não atendem
as diversas verificações efetuadas pelo programa. Quando uma destas não é
48
atendida, o valor da energia é alterado para um valor relativamente alto (107).
Posteriormente, somente modelos cuja energia de deformação seja menor que 107
serão impressos.
Esse método de descarte faz com que não sejam considerados valores para
solicitações e medidas de comprimento com muitos dígitos. Por exemplo, deve-se
utilizar 250 kN ao invés de 250000 N, para evitar a não impressão de um modelo
adequado.
4.12 Cruzamento de bielas
Como explicado no item 3.2, em um modelo de bielas e tirantes, as bielas só
podem se cruzar nos nós. Uma rotina foi implementada para fazer verificar essa
condição em cada modelo. Para cada par de elementos, procede-se da seguinte
maneira:
É verificado se os elementos possuem um nó em comum. Caso isto ocorra,
a verificação não precisa ser feita já que duas retas só se encontram uma
vez no espaço. Passa-se para o próximo par.
Verifica-se, a partir da matriz geral de esforços, se ambos os elementos
estão comprimidos.
Caso os elementos não se encontrem em um nó e sejam bielas, o programa
confere se pertencem ao mesmo plano. Isso é feito analisando o valor
produto misto de três vetores: os vetores diretores de cada elemento e um
vetor que cruze as duas retas. Caso a expressão a seguir se verifique, os
vetores são coplanares.
u . v x w = 0 (4.52)
onde, v e w são os vetores diretores dos dois elementos e u é o vetor que
passa pelo primeiro nó de cada elemento.
Caso contrário, é impossível o cruzamento dos elementos.
Sendo os elementos coplanares, eles devem ser paralelos ou se cruzarem
em algum lugar no espaço. A localização do ponto de interseção pode ser
determinada da seguinte forma:
São consideradas as equações paramétricas das duas retas:
r1= x= xi1+Cx1t1y= yi1+Cy1t1z= zi1+Cz1t1
r2= x= xi2+Cx2t2y= yi2+Cy2t2z= zi2+Cz2t2
(4.53)
onde:
49
xi, yi ,zi: as coordenadas dos nós iniciais de cada elemento;
Cx, Cy e Cz: cossenos diretores de cada vetor, conforme equação (4.37).
A Figura 4.8 ilustra as grandezas das equações paramétricas.
No ponto de interseção, as três coordenadas das retas devem coincidir. Se
igualarmos as equações de duas coordenadas (por exemplo, x e y) das
duas retas, teremos um sistema com duas equações e duas incógnitas (t1 e
t2).
Determina-se, assim, o valor de t1, por exemplo, e compara-se com o
comprimento do elemento 1. Se este for menor, as retas se cruzam no
trecho dentro da treliça e o modelo deve ser descartado.
Figura 4.8 - Cruzamento de elementos.
4.13 Inclinação entre bielas e tirantes
Como já citado no item 3.2, para que tenhamos um comportamento estrutural
adequado, a inclinação entre bielas e tirantes deve respeitar alguns limites. Os
ângulos mínimo e máximo permitido entre uma biela e um tirante são informados pelo
usuário no arquivo de entrada.
Após a análise da treliça isostática e da verificação do cruzamento de bielas
fora dos nós, é feito um controle dos ângulos entre bielas e tirantes da seguinte forma:
Percorrem-se todos os pares de elementos possíveis. Cada elemento é
comparado com todos os outros elementos de maior numeração.
50
Verifica-se se os elementos tem um nó em comum a partir dos nós inicial e
final de cada um na matriz de nós.
Averígua-se se os sinais de esforços normais são opostos, já que só há
limites para ângulos entre bielas e tirantes e não para ângulos entre duas
bielas ou dois tirantes. Lembrando que os esforços axiais já foram
registrados na matriz geral de esforços.
Calcula-se o ângulo entre os elementos com os dados da matriz de vetores
diretores. Para tal, basta dividir o produto escalar dos vetores pelo produto
do módulo de cada um. Como na expressão (4.54):
cosα = u . v
|u|. |v|(4.54)
com as grandezas ilustradas na Figura 4.9.
Para determinar o menor ângulo, basta adicionar o modulo no numerador,
obtendo, assim, um ângulo sempre entre 0 e 90 °.
cosα = |u . v||u| . |v|
(4.55)
Figura 4.9 - Ângulo entre dois vetores.
Compara-se o cosseno do ângulo obtido com os cossenos dos ângulos
limites informados pelo usuário. Se para algum par de elementos, esses
limites não estejam sendo respeitados, o modelo é descartado.
Nos modelos gerados pelo programa existem alguns elementos que não
necessitam passar por essa verificação, por se tratarem de uma simplificação da
realidade. É o caso de uma carga de momento aplicada por um binário, com uma força
comprimindo o bloco e outra tracionando. O elemento que liga o nó de compressão
com o nó criado para transferir a carga de tração para o fundo do bloco,
provavelmente ficará muito próximo da vertical e não respeitará os limites.
51
Porém, como há estribos na armadura de arranque do pilar, o elemento pode
ser discretizado como mostrado na Figura 4.10. No modelo da esquerda, os ângulo
e estariam fora dos limites, mas discretizando a biela que os forma, chegamos ao
modelo da direita, onde todos os ângulos obedecem aos limites:
Figura 4.10 - Discretização do elemento de arranque do pilar.
Por esta razão, o programa não faz a verificação de inclinação para elementos
ligando nós de introdução de cargas.
4.14 Tirantes diagonais
Como descrito anteriormente, a existência de armaduras não verticais entre os
planos de um bloco de coroamento é indesejável do ponto de vista construtivo. Por
isso, são utilizadas armaduras de suspensão quando necessárias. Dessa maneira,
tem-se tirantes apenas no fundo, no topo do bloco ou verticais nas direções dos
pilares ou estacas.
Essa consideração foi incorporada à automatização e uma rotina para
eliminação dos modelos que usam tirantes diagonais entre planos foi elaborada.
Para cada modelo, o programa calcula os cossenos diretores em z (expressão
(4.32.c)) de todos os elementos. Caso algum dos cossenos diretores seja diferente de
0 ou 1 e o esforço nesse elemento seja positivo (se tratando de um tirante), o modelo
é descartado.
A Figura 4.11 ilustra um modelo que seria excluído pelo programa por conter
tirantes não verticais ligando planos.
53
5 EXEMPLOS DE APLICAÇÃO
Para validar a modelagem e análise realizada pela automatização elaborada,
um exemplo simples de bloco de coroamento de quatro estacas é resolvido e os
resultados são comparados com os obtidos pelo programa. Um segundo exemplo
ilustra a transferência de carga de tração par face oposta. Ao final, é apresentado,
brevemente, um estudo da sensibilidade dos modelos de bielas para e tirantes pra
blocos a imperfeições geométricas.
5.1 Exemplo de validação
5.1.1 Dados do bloco estudado
O bloco, ilustrado na Figura 5.1, tem altura total de 80 cm e transfere as cargas
de um pilar retangular de 40 x 80 cm a quatro estacas circulares de 50 cm de
diâmetro. Os eixos das estacas distam 150 cm entre si.
Figura 5.1 - Elevação e vista superior do bloco exemplo.
5.1.2 Cálculo de estaqueamento
A distribuição das forças nas estacas é calculada pelas expressões do item
2.2.2, segundo o método de Nökkentved. O estaqueamento é duplamente simétrico e
as direções dos eixos principais coincidem com os eixos pré-definidos.
54
Para consideração do peso próprio do bloco, faz-se um acréscimo à carga
vertical aplicada pelo pilar. Considerando o peso específico de concreto armado de 25
kN/m³, tem-se:
V = 3015 + 2,5 x 2,5 x 0,8 x 25 = 3140 kN
As etapas do cálculo de estaqueamento estão resumidas na Tabela 5.1. As
cargas nas estacas estão representadas por Fi:
Tabela 5.1 - Resumo do cálculo do estaqueamento.
5.1.3 Modelo de bielas e tirantes
Para aplicação das cargas no modelo de bielas e tirantes, o momento causado
pelo engastamento do pilar no bloco é transformado em um binário e acrescentado à
força vertical:
V1 = -3140
2+
500
0,4 = -320 kN
V2 = -3140
2 -
500
0,4 = -2820 kN
Por simplificação, as cargas V1 e V2 são aplicadas no centro de cada metade
da seção da base do pilar, conforme ilustra a Figura 5.2. Em uma análise mais precisa,
a configuração das tensões nessa seção para o estado limite último deveria ser
utilizada para obter as posições das cargas.
estaca xi (m) xi² (m²) V/n (kN) -My.xi/Sxi² (kN) Fi (kN)
E1 -0,75 0,563 -785 166,7 618,3E2 0,75 0,563 -785 -166,7 951,7E3 -0,75 0,563 -785 166,7 618,3E4 0,75 0,563 -785 -166,7 951,7
soma - 2,25 -3140 0 3140
55
Figura 5.2 - Cargas aplicadas no modelo de bielas e tirantes
A altura útil do bloco será estimada subtraindo-se da altura total 7,5 cm
correspondentes à distância entre o eixo da armadura inferior e o fundo do bloco, e
mais 7,5 cm para configuração dos nós na face superior do bloco, resultando em 65
cm. Esses valores estimados devem que ser alterados, caso as verificações de
tensões nos nós não sejam atendidas.
Com as cargas no topo do bloco, as reações de apoio das estacas e a altura
útil já estabelecidas, as condições de contorno do modelo estão definidas e as forças
internas podem ser obtidas. A Figura 5.3 ilustra um modelo de bielas e tirantes que
pode ser intuitivamente utilizado. Neste modelo tem-se um binário de forças,
representando as solicitações do topo e as reações do estaqueamento, as linhas
tracejadas representam as bielas comprimias (B) e as linhas cheias os tirantes
tracionados (T).
A partir desse modelo, calculam-se os esforços nos tirantes para o
dimensionamento das armaduras principais que serão dispostas na base do bloco.
Devem ser verificadas as tensões nas regiões nodais sobre as estacas e sob o pilar.
56
Figura 5.3 - Forças externas a serem aplicadas no modelo.
5.1.3.1 Verificação do ângulo entre bielas e tirantes
Ângulo entre a biela B1 e o tirante T1 (mesmo válido para biela B3 e tirante T2):
θ1 = arccos 0,55
0,75² + 0,55² + 0,65² = 61°
Ângulo entre a biela B1 e o tirante T3 (mesmo válido para biela B3 e tirante T3):
θ2 = arccos 0,75
0,75² + 0,55² + 0,65² = 49°
Ângulo entre a biela B2 e o tirante T1:
θ3 = arccos 0,95
0,75² + 0,95² + 0,65² = 46°
Ângulo entre a biela B2 e o tirante T3:
θ4= arccos0,75
0,75²+0,55²+0,65²=59°
Os ângulos estão adequados entre os limites recomendados pela
NBR6118:2014 ou pela ACI 318-11. Como já mencionado no item 3.2, a norma
brasileira limita os ângulos entre bielas e tirantes entre 30 e 63°.
57
5.1.3.2 Cálculo das forças nas bielas e tirantes:
Os esforços axiais nos diversos elementos da treliça são obtidos por
sucessivos equilíbrios dos nós. Iniciando-se pela análise do nó sobre a estaca E4, são
obtidos os seguintes valores para forças na biela B3 e nos tirantes T2 e T3 A Figura 5.4
ilustra as forças que se equilibram neste nó.
Figura 5.4 - Equilíbrio do nó sobre a estaca E4.
B3 = 951,7
senθ2 =
951,7
sen 34,95° = 1661,3 kN
T2 = 951,7 senθ1
tgθ2 =
951,7 sen 53,75°
tg 34,95° = 1098,1 kN
T3 = 951,7 cosθ2
tgθ1 =
951,7 cos 53,75°
tg 34,95° = 805,2 kN
A seguir, calculam-se as forças nas bielas B1 e B4 pelo equilíbrio do nó sobre a
carga de 320 kN. A Figura 5.5 mostra as forças concorrentes deste nó:
Figura 5.5 - Equilíbrio do nó sob a carga de 320 kN.
58
B1 = 320
2 cosθ1 =
320
2 cos 55,05° = 279,3 kN
B4 = - 2 × 279,3 sen θ1cosθ2= - 2 × 279,3 sen 55,05°cos126,25° =270,6 kN
Por ultimo, determinam-se as forças no tirante T1 e na biela B2, pelo equilíbrio
do nó sobre a estaca E3. A Figura 5.6 ilustra as cargas que se equilibram neste nó.
Figura 5.6 - Equilíbrio do nó sobre a estaca E3.
B2 = 618,3 - B1senθ3
senθ1 =
618,3 - 279,3sen34,95°
sen28,24° = 968,6 kN
T1 = B1 cos θ3 sen θ4 + B2cos θ1 sen θ2 =
= 279,3 cos 34,95°sen53,75° + 968,6cos28,24°sen38,29° = 713,4 kN
A Tabela 5.2 apresenta o resumo dos esforços encontrados para todos os
elementos, onde os valores positivos são para esforços de tração:
Tabela 5.2 - Resumo dos esforços nos elementos da treliça.
elemento N (kN)
B1 - 279,3
B2 - 968,6
B3 - 1661,3
B4 - 270,6
T1 713,4
T2 1098,1
T3 805,2
59
5.1.4 Análise pelo programa desenvolvido
Para o mesmo bloco de coroamento, utiliza-se o programa desenvolvido para
elaboração automática do modelo de bielas e tirantes e cálculo das forças nos seus
elementos. A metodologia de cálculo foi apresentada no Capítulo 4. A seguir, serão
apresentados os resultados obtidos para o modelo obtido com menor energia de
deformação e para o modelo com configuração similar ao utilizado no item anterior
para comparação dos resultados.
A seguir, lista-se o arquivo de entrada de dados com as informações do bloco
da Figura . A primeira linha corresponde à altura útil do bloco. Na segunda linha,
informa-se o número de estacas. Em seguida, adiciona-se uma linha para cada
estaca, informando as coordenadas no plano do fundo do bloco e um valor relativo de
rigidez vertical (todas as estacas foram adotadas com a mesma rigidez).
Após os dados do estaqueamento, informa-se o número de nós de introdução
de cargas desejado e a partir daí, uma linha para cada nó contendo as coordenadas
no plano do topo do bloco e as forças verticais aplicadas (com sinal positivo para
cima).
Por último, são estabelecidos os limites inferior e superior desejados para os
ângulos de inclinação entre bielas e tirantes.
;DADOS DE ENTRADA:
;ALTURA ÚTIL DO BLOCO.
0.65
;NÚMERO DE ESTACAS.
4
;COORDENADAS DE CADA ESTACA SEGUIDA DO VALOR RELATIVO DE RIGIDEZ.
-0.75 0.75 1.0
0.75 0.75 1.0
-0.75 -0.75 1.0
0.75 -0.75 1.0
;NÚMERO DE PONTOS DE INTRODUÇÃO DE CARGA.
2
;COORDENADAS DE CADA PONTO DE INTRODUÇÃO DE CARGA SEGUIDA DA FORÇA.
-0.2 0.0 -320.0
0.2 0.0 -2820.0
;LIMITE MÍNIMO E MÁXIMO, RESPECTIVAMENTE, PARA ÂNGULOS ENTRE BIELAS E
;TIRANTES.
30.0 60.0
60
O arquivo de saída com os dados utilizados e com os resultados obtidos no
programa também é apresentado, como se segue:
RESULTADOS ÓBTIDOS DA ELABORAÇÃO E ANÁLISE DE MODELO DE BIELA E TIRANTE
PARA UM BLOCO DE COROAMENTO.
------------------------------------------------------------------------------
DADOS DE ENTRADA:
ALTURA DO BLOCO:
H = 0.65
COORDENADAS DAS ESTACAS NO FUNDO DO BLOCO:
NÓ(ESTACA) X Y
1 -0.75 0.75
2 0.75 0.75
3 -0.75 -0.75
4 0.75 -0.75
COORDENADAS E FORÇAS DOS NÓS CARREGADOS NA FACE SUPERIOR DO BLOCO:
NÓ X Y F
5 -0.20 0.00 -320.00
6 0.20 0.00 -2820.00
------------------------------------------------------------------------------
REAÇÕES DE APOIO:
NÓ(ESTACA) F
1 618.33
2 951.67
3 618.33
4 951.67
------------------------------------------------------------------------------
NÓS DE TRANSFERÊNCIA DE CARGA PARA A FACE OPOSTA:
NÃO HÁ FORÇAS EXTERNAS DE TRAÇÃO NO BLOCO.
------------------------------------------------------------------------------
NÚMERO DE TRELIÇAS ISOSTÁTICAS A SEREM ANÁLISADAS
8
------------------------------------------------------------------------------
ESFORÇOS NOS ELEMENTOS DOS MODELOS IMPRESSOS POR ORDEM DE ENERGIA DE
DEFORMAÇÃO:
ORDEM DO MODELO:
1
ENERGIA DE DEFORMAÇÃO:
5019.3
ELEMENTO ESFORÇO AXIAL
1 317.5
2 333.1
3 70.4
61
4 -601.0
6 909.7
7 785.4
9 -2138.5
10 524.1
11 -284.8
12 -1417.0
14 -1283.2
15 -554.0
...
ORDEM DO MODELO:
3
ENERGIA DE DEFORMAÇÃO:
5131.9
ELEMENTO ESFORÇO AXIAL
1 805.0
2 713.2
3 0.2
4 -279.7
5 -969.9
7 1097.8
9 -1660.8
10 805.0
11 -278.7
12 -969.3
14 -1661.8
15 -271.2
...
Pela quantidade de nós, seria possível gerar quinze elementos (C26), porém
uma treliça internamente isostática de seis nós teria apenas doze (3 x 6 - 6)
elementos. Isso nós dá 455 (C1215) combinações de elementos respeitando o critério do
item 4.7.
Após as verificações para que um treliça represente um bom modelo de bielas
e tirantes, o número de combinações reduz para oito. As condições que devem ser
satisfeitas são as definidas no Capítulo 4. A Figura 5.7 ilustra a saída gráfica do
programa para o modelo com menor energia de deformação obtido.
62
Figura 5.7 - Modelo com menor energia de deformação para o exemplo de validação.
Esse modelo apresentou uma energia de deformação de 5019 kNm para as
solicitações impostas. Porém, geralmente, para um bloco de quatro estacas é
desejável concentrar as armaduras nas quatro arestas paralelas as faces.
O modelo da Figura 5.8 seria o ideal do ponto de vista prático e se assemelha
ao utilizado no item 5.1.3. Esta configuração tem uma energia de deformação de 5132
kNm e corresponde ao 3º melhor modelo, dentre os oito possíveis. Como o
estaqueamento é simétrico, o elemento ligando as estacas E1 e E4 não é solicitado, e
pode, também, estar ligando as estacas E2 e E3, gerando um modelo semelhante.
Figura 5.8 - Modelo com arranjo adequado de armaduras para o exemplo de validação.
5.1.5 Comparação dos resultados
As reações de apoio obtidas pelo programa, mostradas no arquivo de saída,
estão de acordo com as calculadas no item 5.1.2.
63
Os esforços axiais nos elementos da treliça, ilustrados na Figura 5.8 são
confirmados pelos obtidos manualmente no item 5.1.3.2 e apresentados na Tabela
5.3. Observa-se que os valores são praticamente os mesmos. As pequenas diferenças
são devidas ao uso das molas que evitam a hipoestaticidade externa, como já
explicado no item 4.9.2.
Tabela 5.3 - Comparação dos resultados obtidos manual e automaticamente.
Elemento Nmanual (kN) Nauto (kN)
B1 - 279,3 - 278,7/-279,7
B2 - 968,6 - 969,3/-969,9
B3 - 1661,3 - 1660,8/-1661,8
B4 - 270,6 - 271,2
T1 713,4 713,2
T2 1098,1 1097,8
T3 805,2 805,0
5.2 Exemplo dois
Para ilustrar a transferência de cargas de tração para face oposta do bloco, são
mostrados os resultados obtidos para um outro carregamento aplicado no mesmo
bloco do exemplo anterior. O momento solicitante do bloco anterior é aumentado para
1000 kNm. Com isso, as forças a serem aplicadas, já considerando os binários
representando o momento, são:
V1 = -3140
2+
1000
0,4 = 930 kN
V2 = -3140
2 -
1000
0,4 = -4070 kN
São apresentados, a seguir os arquivos de entrada de dados e saída dos
resultados.
;DADOS DE ENTRADA:
;ALTURA ÚTIL DO BLOCO.
0.65
;NÚMERO DE ESTACAS.
4
;COORDENADA DE CADA ESTACA SEGUIDA DO VALOR RELATIVO DE RIGIDEZ.
-0.75 0.75 1.0
0.75 0.75 1.0
64
-0.75 -0.75 1.0
0.75 -0.75 1.0
;NÚMERO DE PONTOS DE INTRODUÇÃO DE CARGA.
2
;COORDENADA DE CADA PONTO DE INTRODUÇÃO DE CARGA SEGUIDA DA FORÇA.
-0.2 0.0 930
0.2 0.0 -4070
;LIMITE MÍNIMO E MÁXIMO, RESPECTIVAMENTE, PARA ÂNGULOS ENTRE BIELAS E
;TIRANTES.
30.0 60.0
Arquivo de saída dos resultados:
RESULTADOS ÓBTIDOS DA ELABORAÇÃO E ANÁLISE DE MODELO DE BIELA E TIRANTE
PARA UM BLOCO DE COROAMENTO.
-----------------------------------------------------------------------------
DADOS DE ENTRADA:
ALTURA DO BLOCO:
H = 0.65
COORDENADAS DAS ESTACAS NO FUNDO DO BLOCO:
NÓ(ESTACA) X Y
1 -0.75 0.75
2 0.75 0.75
3 0.75 -0.75
4 -0.75 -0.75
COORDENADAS E FORÇAS DOS NÓS CARREGADOS NA FACE SUPERIOR DO BLOCO:
NÓ X Y F
5 -0.20 0.00 930.00
6 0.20 0.00 -4070.00
-----------------------------------------------------------------------------
REAÇÕES DE APOIO:
NÓ(ESTACA) F
1 451.67
2 1118.33
3 1118.33
4 451.67
-----------------------------------------------------------------------------
NÓS DE TRANSFERÊNCIA DE CARGA PARA A FACE OPOSTA:
NÓ X Y
7 -0.20 0.00
-----------------------------------------------------------------------------
65
NÚMERO DE TRELIÇAS ISOSTÁTICOS A SEREM ANÁLISADAS
553
-----------------------------------------------------------------------------
ESFORÇOS NOS ELEMENTOS DOS MODELOS IMPRESSOS POR ORDEM DE ENERGIA DE
DEFORMAÇÃO:
ORDEM DO MODELO:
1
ENERGIA DE DEFORMAÇÃO:
5418.1
ELEMENTO ESFORÇO AXIAL
1 1105.4
4 256.2
5 -151.9
6 -216.4
7 -83.2
8 877.5
11 -2260.9
12 1204.0
13 633.0
15 -1525.2
17 -104.4
18 -1233.9
19 636.9
20 -128.8
21 -1335.4
...
ORDEM DO MODELO:
141
ENERGIA DE DEFORMAÇÃO:
6770.2
ELEMENTO ESFORÇO AXIAL
1 950.0
2 946.2
4 919.3
5 -17.0
6 -933.6
7 -493.7
8 1290.5
11 -1951.1
13 945.9
15 -1952.2
17 -16.8
18 -934.0
19 -494.2
20 -16.2
21 -1114.3
...
66
A transferência de carga para face oposta cria um nó adicional e obriga a
existência de um tirante vertical. Com isso, o número de elementos possíveis passou a
ser de 21 (C27), com um permanente, o número de elementos da treliça isostática 15 (3
x 7 -6). O número de combinações aumenta consideravelmente para 15504 (C1520).
Como pode ser visto no arquivo de saída, dentre essas 15504 treliças possíveis,
apenas 553 satisfazem a todas as verificações.
Como no exemplo anterior, o modelo com menor energia de deformação não
tem arranjo de armaduras adequado. A Figura 5.9 ilustra a treliça deste modelo mais
econômico, com os esforços em cada elemento.
Figura 5.9 - Modelo com menor energia de deformação para o exemplo alternativo.
Um modelo com arranjo de armaduras adequado foi encontrado com a 141ª
menor energia de deformação e está ilustrado na Figura 5.10.
Figura 5.10 - Modelo com arranjo adequado de armaduras para o exemplo alternativo.
67
5.3 Comentário sobre a variação da energia de deformação
Uma das mais interessantes aplicações do programa desenvolvido é a análise
de sensibilidade do bloco a erros ocorridos durante a execução do estaqueamento. A
energia de deformação é uma grandeza diretamente ligada à quantidade de aço que
será necessária para armar a estrutura. Por essa razão, ao estudar como essa energia
varia com a imposição de imperfeições geométricas, também estuda-se o impacto
dessas imperfeições na armadura.
Para ilustrar essa ideia, um exemplo simples de estudo de sensibilidade de
blocos de coroamento é aqui exposto. Para tal, o bloco da Figura 5.1 é novamente
estudado, impondo-se quatro deslocamentos, definidos aleatoriamente, em uma das
estacas. A Figura 5.11 ilustra esses deslocamentos que foram impostos à estaca 1
(em metros), levando às configurações que são aqui chamadas de estaqueamentos
imperfeitos.
Os impactos dessas variações na energia de deformação de cada modelo
possível serão mostrados a seguir.
Figura 5.11 - Simulação de imperfeições geométricas para estudo de sensibilidade.
Ressalta-se que para o exemplo de validação, foram gerados oito modelos de
treliças isostáticas que atenderam a todas as verificações. A partir de agora, essas
treliças são designadas por letras, de “A” a “H”, em ordem crescente, considerando a
energia de deformação com o estaqueamento perfeito (sem deslocamentos nas
estacas). A Figura 5.12 mostra os oito modelos possíveis para o bloco em estudo e
que são utilizados para a análise da sensibilidade a imperfeições.
68
Figura 5.12 - Arranjos de elementos possíveis para modelos do bloco do exemplo de validação.
(A) (B)
(C) (D)
(E) (F)
(G) (H)
69
Além da análise realizada no item 5.1.4, o programa foi executado para as
quatro configurações imperfeitas, mostradas na Figura 5.11. Para cada uma dessas
condições a energia de deformação foi registrada.
O histograma da Figura 5.13 mostra a energia de deformação obtida para cada
arranjo de elementos e cada situação de imperfeição geométrica.
Figura 5.13 - Histograma mostrando a variação de energia de deformação para cada situação.
De maneira geral, as configurações imperfeitas 1 e 4, nas quais as estacas se
aproximam mais da borda, geraram energias de deformação superiores à original. As
configurações 2 e 3, nas quais a distância da estaca até o centro diminuiu, fornecendo
energias similares ou menores que o da configuração original.
Se o número de configurações imperfeitas for aumentado e um limite radial de
deslocamento for adotado, pode-se chegar a um dimensionamento resistente aquela
grandeza de imperfeições.
A partir desse histograma é possível, gerar um gráfico que mostra, claramente,
a sensibilidade a deslocamentos de cada modelo. Esse gráfico se encontra na Figura
5.14. As setas, em cinza, mostram a energia de deformação máxima e mínima obtida
para cada modelo, enquanto o traço horizontal mostra a energia para o
estaqueamento perfeito.
70
Figura 5.14 - Gráfico mostrando a sensibilidade de cada modelo a imperfeições geométricas.
Apesar do pequeno número de configurações imperfeitas aqui estudadas, já se
pode diferenciar arranjos de forças internas mais sensíveis para um mesmo bloco de
coroamento. O modelo “H”, além de requerer uma energia de deformação muito maior
que os outros modelos para a situação ideal, também tem uma sensibilidade a
deslocamentos excessiva.
Os resultados da análise elaborada concordam com os resultados de ensaios
expostos por Blévot e Frémy (1967), que indicam que a armação em cruz para blocos
de quatro estacas apresenta capacidade de carga inferior se comparada com a
armação pelas arestas ou uma combinação de ambas.
71
6 CONCLUSÃO E SUGESTÕES DE CONTINUIDADE
A rotina de cálculo proposta cumpre o objetivo de automatizar a modelagem e
análise de um bloco de coroamento pelo método das bielas e tirantes. A partir dos
dados informando a geometria do bloco e das estacas, bem como a força atuante no
pilar, o programa executa o cálculo do estaqueamento, verifica a necessidade da
transferência de cargas aplicadas de tração, forma todos os modelos de bielas e
tirantes possíveis e analisa as treliças de cada um.
Ao final do programa, é necessária a interferência do usuário visto que a
modelagem em bielas e tirantes tem natureza manual. Deve-se escolher o modelo
mais adequado dentre as possibilidades que respeitam os requisitos definidos.
Portanto, o programa fornece ao engenheiro vários modelos possíveis para que o mais
indicado para construção seja escolhido.
Conforme o número de estacas e pontos de introdução de carga aumenta, tem-
se um número expressivo de treliças a serem analisadas. Por isso, devem-se impor
restrições ao programa para reduzir ao máximo o número de opções de modelos para
escolha feita pelo usuário. Na rotina elaborada, foram feitas restrições conceituais
como a obrigatoriedade da treliça ser isostática, o não cruzamento de bielas e a
limitação do ângulo entre bielas e tirantes. Além disso, uma restrição prática foi
imposta, não permitindo a existência de tirantes não verticais, ligando a base e o topo
do bloco.
Outras restrições podem ser adicionadas ao programa. Como por exemplo, o
usuário poderia informar, de antemão, nós que ele deseja ligar por tirantes no fundo do
bloco, criando assim, tirantes obrigatórios que reduzem o número de resultados
expostos ao final. Como um dos interesses primários deste trabalho é o estudo dos
resultados que podem ser obtidos, restrições opcionais foram evitadas e a única
adotada foi a descrita no parágrafo anterior.
Além do excesso de resultados gerados pelo programa, o aumento do número
de nós da treliça causa outro problema. A quantidade de combinações cresce de tal
forma que a partir de nove nós, o número de combinações ultrapassa a maior
dimensão que uma matriz pode ser formada em FORTRAN. No caso do compilador de
32 bits utilizado, esse número é 232-1-1 = 2147483647. Uma das sugestões de
continuidade do trabalho, que seria de grande importância para aplicação prática do
72
programa elaborado, é a resolução desse problema numérico e a otimização da
modelagem.
O critério de energia de deformação para otimização da modelagem foi
implementado. A rotina calcula a energia de cada modelo e exibe os resultados do
modelo mais econômico em ordem crescente. Isso é de grande auxílio para o estudo
de blocos complexos, onde a distribuição de estacas não é usual. Define-se, do
melhor modelo com a menor energia de deformação a ser utilizado.
Propõem-se, ainda, duas outras sugestões de continuidade do trabalho. Uma
primeira é a inclusão do dimensionamento das armaduras e verificação das tensões
nos nós, fazendo uma iteração para ajuste da geometria da treliça. Uma segunda
sugestão é o estudo mais aprofundado de sensibilidade à imperfeições geométricas,
como citado no item 5.2, mostrando o impacto de erros do estaqueamento nas forças
internas do bloco. A utilização da automatização desenvolvida, imprescindível para tal
estudo.
73
REFERÊNCIAS BIBLIOGRÁFICAS
AMERICAN CONCRETE INSTITUTE, ACI 318-14, Building code requirements for
structural concrete. 1 ed. Farmington Hills.
ADEBAR, P., ZHOU, L., 1996, “Design of deep pile caps by strut-and-tie models”. ACI
Structural Journal, v. 32, n. 4 (julho-agosto).
ALVES. R. L., 2014, Fundações profundas. Notas de aula do curso de Estruturas de
Fundações, Escola Politécnica, Universidade Federal do Rio de Janeiro.
ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, ABNT NBR 6118:2014,
Projeto de estruturas de concreto armado – procedimento. 3 ed. Rio de Janeiro.
BOSC, J. L., 2008, Dimensionnement de constructions selon l’Eurocode 2 à l’aide des
modèles bielles et tirants. 1 ed. Paris, Presses de l’École Nationale des Ponts et
Chaussées.
BLÉVOT, J. L., FRÉMY, R., 1967, “Semelles sur pieux”. Institute Technique du
Bâtiment et des Travaux Publics, v. 20, n. 230, pp. 223-295.
CHANTELOT, G., MATHERN, A., 2010, Strut-and-tie modeling of reinforced concrete
pile caps. M.Sc. thesis, Chalmers University of Technology, Göterborg, Sweden.
KLEIN, G. J., 2002, “Pile Cap”. In: Examples for the design of structural concrete with
strut-and-tie model, SP208, American Concrete Institute, pp. 213-224.
MARIA, I. C. S., 2007, Comparação de modelos para avaliação de esforços em
estacas. Projeto de graduação, Escola Politécnica, Universidade Federal do Rio de
Janeiro, Rio de Janeiro, Brasil.
MÖRSCH, E., 1912, Der eisenbetonbau, seine theorie und anwendung (Concreto
armado, teoria e aplicação). Stuttgart, Verlag Konrad Wittwer.
POULOS, H. G., DAVIS E. H., 1980, Pile foundations analysis and design. 1 ed. New
York, John Wiley and Sons Inc.
PRESS, W. H., et al., 1992, Numerical recipes in Fortran 77 – The art of scientific
computing. 2 ed. Cambridge, Cambridge University Press.
74
RITTER, W., 1899, “Die Bauweise Hennebique“ (O sistema Hennebique).
Schweizerische Bauzeitung, v. XXXIII, n. 7 (janeiro).
SANTOS, S. H. C., 2014, Detalhamento de estruturas de concreto armado. Notas de
aula do curso, Escola Politécnica, Universidade Federal do Rio de Janeiro.
SCHLAICH, J., SCHÄFER, K., JENNEWEIN, M., 1987, “Toward a consistent design of
structural concrete”. PCI Journal, v. 32, n. 3 (maio-junho), pp. 74-150.
SORIANO, H. L., 2005, Análise de estruturas – formulação matricial e implementação
computacional. 1 ed. Rio de Janeiro, Editora Ciência Moderna Ltda.
SÜSSEKIND, J. C., 1991, Curso de análise estrutural – v. 1, Estruturas isostáticas. 11
ed. São Paulo, Editora Globo S.A.
VELLOSO, D. A, LOPES, F. R., 2010, Fundações: critérios de projeto, investigação do
subsolo, fundações superficiais, fundações profundas. 1 ed. São Paulo, Oficina de
Textos.
WIGHT, J. K., MACGREGOR, J. G., 2012, Reinforced concrete: mechanics and
design. 6 ed. New Jersey, Person Education.
75
APÊNDICE 1 – LISTAGEM DO PROGRAMA
PROGRAM BT3D IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! BT3D ! ! Programa para automatização da modelagem de bielas e tirantes em um bloco de ! ! coroamento. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! CHARACTER(60) :: arquivo INTEGER(KIND = 8) :: ncomb INTEGER :: nest, nnoscarga, nnosprim, ntotaldesl, nnostotal, nmodelok INTEGER :: ocomb, nelemposs, nelemtotal, nelemiso, ntirobrig, nelemtopo INTEGER :: mnos(190,2) INTEGER, ALLOCATABLE :: mcomb(:,:), omodelotimo(:) REAL :: hbloco, tetamin, tetamax, reacoes(10) REAL :: C(20,3), mforext(20,3), mkest(20) REAL, ALLOCATABLE :: U(:), menerg(:), mgeralesf(:,:) ! Leitura no nome do arquivo de entrada de dados. WRITE(*,*) 'Digite o nome do arquivo:' READ(*,*) arquivo ! Leitura do arquivo de entrada de dados. ! Dados sobre o bloco, estaqueamento e carregamentos. CALL entrada (arquivo,hbloco,nest,C,mkest,nnoscarga,tetamin,tetamax,mforext, & nnosprim) ! Rotina para cálculo do estaqueamento (reações de apoio) pelo método de Scheil. CALL calculo_estaqueamento (nest,nnoscarga,C,mkest,mforext,reacoes) ! Rotina para formação do modelo de treliça espacial e criação dos tirantes de ! transferência das forças de tração para a face oposta do bloco. CALL modelo (hbloco,nest,nnoscarga,C,mforext,nnosprim,nelemposs,mnos, & ntotaldesl,ntirobrig,nelemtotal,nnostotal,nelemiso) ! Rotina para verificação da existência de elementos sobrepostos CALL verifica1 (nest,nnoscarga,C,nnosprim,ntotaldesl,mnos,nelemposs,nelemiso, & nelemtotal,ncomb,nelemtopo) ALLOCATE (U(ntotaldesl)) ALLOCATE (mcomb(ncomb,nelemiso+ntirobrig)) ALLOCATE (menerg(ncomb)) ALLOCATE (mgeralesf(ncomb,nelemiso+ntirobrig)) ! Geração da matriz como todas as combinações de elementos possível para foramr ! um modelo com o número de elementos de uma treliça internamente isostática. CALL combina (nelemposs,ntirobrig,ncomb,nelemiso,mcomb) ! Análise das treliças. mgeralesf = 0 nmodelok = 0 menerg = 0 ! Verificações quanto a geometria da treliça. DO ocomb = 1,ncomb CALL verifica2 (C,nnosprim,nelemiso,nelemtotal,ntirobrig,mnos, &
76
ncomb,mcomb,ocomb,menerg) IF (menerg(ocomb) < 9E4) THEN nmodelok = nmodelok + 1 ! Análise da treliça espacial isostática. CALL deslocamento_trelesp (C,mforext,nnostotal,ntotaldesl,mnos, & nelemiso,ntirobrig,ncomb,mcomb,ocomb,U) CALL esforcos_trelesp (C,mnos,ntotaldesl,nelemiso,ntirobrig,ncomb, & mcomb,U,ocomb,mgeralesf,menerg) ! Verificações quanto aos esforços nos elementos. CALL verifica3 (hbloco,C,nelemiso,nelemtotal,ntirobrig,mnos,ncomb, & mcomb,ocomb,menerg,mgeralesf,nmodelok,tetamin,tetamax,nelemtopo) END IF END DO ALLOCATE (omodelotimo(nmodelok)) ! Impressão dos dados de entrada, de informações da análise e dos resultados em um ! arquivo de texto. CALL relatorio (hbloco,nest,nnoscarga,C,reacoes,mforext,menerg,nelemiso, & ntirobrig,ncomb,mcomb,mgeralesf,nmodelok,omodelotimo) ! Impressão gráfica do modelo na tela. CALL graficos (C,nnostotal,ncomb,nelemiso,ntirobrig,mnos,mcomb,mgeralesf, & menerg,omodelotimo,nmodelok) END PROGRAM
SUBROUTINE entrada (arquivo,hbloco,nest,C,mkest,nnoscarga,tetamin, & tetamax,mforext,nnosprim) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para leitura dos dados de entrada do bloco, do estaquemento e do ! ! carregamento. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! CHARACTER(60) :: arquivo, linha INTEGER :: i, j, nest, nnoscarga, tirdiagonais, nnosprim REAL :: hbloco, C(20,3), mforext(20,3), mkest(20), tetamin, tetamax OPEN (1,file=arquivo) OPEN (2,file='dadosentrada.txt') ! Preparação do arquivo de entrada. DO WHILE (.not. EOF(1)) READ(1,'(A60)') linha IF(linha(:1) /= ";") WRITE(2,'(A60)') linha END DO REWIND(2) ! Leitura da altura do bloco e do número de estacas. READ(2,*) hbloco READ(2,*) nest ! Leitura das coordenadas e da rigidez de cada estaca. DO i=1,nest READ(2,*) C(i,1), C(i,2), mkest(i) C(i,3) = ‐hbloco END DO
77
! Leitura do número de nós carregados e da coordenada de cada nó. mforext=0 READ(2,*) nnoscarga DO i=1,nnoscarga READ(2,*) C(nest+i,1), C(nest+i,2), mforext(NEST+i,3) C(nest+i,3) = 0 END DO nnosprim = nest + nnoscarga ! Leitura dos limites infrior e superior dos ângulos de inclinação entre bielas ! e tirantes. READ(2,*) tetamin, tetamax REWIND(1) REWIND (2) CLOSE(1) CLOSE(2) END SUBROUTINE
SUBROUTINE calculo_estaqueamento(nest,nnoscarga,C,mkest,mforext,reacoes) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para cálculo da distribuição das cargas entre as estacas. ! ! Referências: ! ! Ricardo Valeriano ‐ Notas de aula ‐ Fundações profundas. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i,nest,nnoscarga REAL :: C(20,3), mkest(20), mforext(20,3),reacoes(10) REAL :: centro(2), Caux(20,2), Cprin(20,2) REAL :: v, mx, my, ixx, iyy, ixy, ktot, mxprin, myprin, alfa ! Transformação das forças verticas dos diversos nós de carga em um carregamento ! de força vertical e momentos horizontais no ponto (0,0). v = 0 mx = 0 my = 0 DO i = 1,nnoscarga v = v + mforext(nest+i,3) mx = mx + mforext(nest+i,3)*C(nest+i,2) my = my ‐ mforext(nest+i,3)*C(nest+i,1) END DO ! Definição da soma das rijezas de todas as estacas. ktot = 0 DO i = 1,nest ktot = ktot + mkest(i) END DO ! Definição do centro de rigidez do estaqueamento centro = 0 DO i = 1,nest centro(1) = centro(1) + mkest(i)*C(i,1)/(ktot) centro(2) = centro(2) + mkest(i)*C(i,2)/(ktot) END DO ! Cálculo das coordenadas em relação ao eixo principal.
78
DO i = 1,nest Caux(i,1) = C(i,1) ‐ centro(1) Caux(i,2) = C(i,2) ‐ centro(2) mx = mx ‐ v*centro(2) my = my + v*centro(1) END DO ! Cálculo das inercias do estaqueamento em relação ao centro original. ixy = 0 ixx = 0 iyy = 0 DO i = 1,nest ixy = ixy + mkest(i)/ktot*Caux(i,1)*Caux(i,2) ixx = ixx + mkest(i)/ktot*Caux(i,2)**2 iyy = iyy + mkest(i)/ktot*Caux(i,1)**2 END DO ! Cálculo do ângulo de rotação dos eixos para se tornarem eixos principais. alfa = 0.5*ATAN(2*ixy/(ixx + iyy)) ! Transformação das coordenadas e das componentes do momento para as direções ! principais. DO i = 1,nest Cprin(i,1) = Caux(i,1)*COS(alfa) + Caux(i,2)*SIN(alfa) Cprin(i,2) = ‐Caux(i,1)*SIN(alfa) + Caux(i,2)*COS(alfa) mxprin = mx*COS(alfa) + my*SIN(alfa) myprin = ‐mx*SIN(alfa) + my*COS(alfa) END DO ! Transformação das inercias do estaqueamento. ixx = 0 iyy = 0 DO i = 1,nest ixx = ixx + mkest(i)/ktot*Cprin(i,2)**2 iyy = iyy + mkest(i)/ktot*Cprin(i,1)**2 END DO ! Cálculo das forças nas estacas. DO i=1,nest mforext(i,3) = v + mxprin*Cprin(i,2)/ixx ‐ myprin*Cprin(i,1)/iyy mforext(i,3) = ‐ mkest(i)/ktot*mforext(i,3) reacoes(i) = mforext(i,3) END DO END SUBROUTINE calculo_estaqueamento
SUBROUTINE modelo (hbloco,nest,nnoscarga,C,mforext,nnosprim,nelemposs,mnos, & ntotaldesl,ntirobrig,nelemtotal,nnostotal,nelemiso) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para transferência de cargas aplicadas de tração para a face oposta ! ! do bloco. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, k INTEGER :: nest, nnosprim, nnoscarga, nnostotal, ntotaldesl, nnosnovos INTEGER :: ntirobrig, nelemposs, nelemtotal, nelemiso INTEGER :: mnos(190,2) REAL :: mforext(20,3), C(20,3), hbloco ! Iniciar número de nós novos. nnosnovos = 0
79
! Iniciar número de tirantes obrigatórios. ntirobrig = 0 ! Caso de estacas tracionadas. DO i = 1,nest IF (mforext(i,3) < 0) THEN nnosnovos = nnosnovos + 1 C(nnosprim+nnosnovos,1) = C(i,1) C(nnosprim+nnosnovos,2) = C(i,2) C(nnosprim+nnosnovos,3) = 0 ntirobrig = ntirobrig +1 mnos (ntirobrig,1) = i mnos (ntirobrig,2) = nnosprim + nnosnovos END IF END DO ! Caso de carga aplicada de tração DO i = 1,nnoscarga IF (mforext(nest+i,3) > 0) THEN nnosnovos = nnosnovos +1 C(nnosprim+nnosnovos,1) = C(i+nest,1) C(nnosprim+nnosnovos,2) = C(i+nest,2) C(nnosprim+nnosnovos,3) = ‐hbloco ntirobrig = ntirobrig +1 mnos (ntirobrig,1) = i + nest mnos (ntirobrig,2) = nnosprim + nnosnovos END IF END DO ! Número de nós total. nnostotal = nnosprim + nnosnovos ntotaldesl = 3*nnostotal ! Geração dos elementos possíveis. nelemtotal = ntirobrig DO i = 1,(nnosprim + nnosnovos‐1) DO j = i+1,(nnosprim+nnosnovos) nelemtotal = nelemtotal + 1 mnos(nelemtotal,1) = i mnos(nelemtotal,2) = j DO k = 1,ntirobrig IF((i == mnos(k,1)) .and. (j == mnos(k,2))) nelemtotal = nelemtotal‐1 IF((i == mnos(k,2)) .and. (j == mnos(k,1))) nelemtotal = nelemtotal‐1 END DO END DO END DO nelemposs = nelemtotal‐ntirobrig ! Número de elementos no modelo isostático, além dos tirantes obrigatórios. nelemiso = 3*nnostotal ‐ 6 ‐ ntirobrig END SUBROUTINE
SUBROUTINE verifica1(nest,nnoscarga,C,nnosprim,ntotaldesl,mnos,nelemposs,nelemiso, & nelemtotal,ncomb,nelemtopo) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para verificação da existência de elementos sobreposto e eventual ! ! exclusão de um desses elementos. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐!
80
INTEGER :: i, j, no1, no2, no3, nest, nnoscarga, nnosprim INTEGER :: nelemposs, ntotaldesl, nelemiso, nelemtotal, nelemtopo INTEGER :: mnos(190,2) REAL :: C(20,3), comp1, comp2, comp3, det, delta(3,3) INTEGER(KIND = 8) :: ncomb, combinacoes ! Verificação das superposições no plano do fundo do bloco a cada três nós. DO no1 = 1,nest DO no2 = no1+1,nest DO no3 = no2+1,nest ! Cálculo do determinante da matriz 3x3 definidas pelas coordenadas. ! dos três nós. det = C(no1,1)*C(no2,2)+C(no1,2)*C(no3,1)+C(no2,1)*C(no3,2) det = det ‐ C(no1,1)*C(no3,2)‐C(no1,2)*C(no2,1)‐C(no2,2)*C(no3,1) ! Verificação da colinearidade dos três nós no plano (determinante ! igual a zero). IF (ABS(det) < 1E‐5) THEN ! Exclusão do maior elemento. delta(1,1) = C(no2,1)‐C(no1,1) delta(1,2) = C(no2,2)‐C(no1,2) delta(1,3) = C(no2,3)‐C(no1,3) delta(2,1) = C(no3,1)‐C(no1,1) delta(2,2) = C(no3,2)‐C(no1,2) delta(2,3) = C(no3,3)‐C(no1,3) delta(3,1) = C(no3,1)‐C(no2,1) delta(3,2) = C(no3,2)‐C(no2,2) delta(3,3) = C(no3,3)‐C(no2,3) comp1 = SQRT(delta(1,1)**2 + delta(1,2)**2 + delta(1,3)**2) comp2 = SQRT(delta(2,1)**2 + delta(2,2)**2 + delta(2,3)**2) comp3 = SQRT(delta(3,1)**2 + delta(3,2)**2 + delta(3,3)**2) IF ((comp1 > comp2) .and. (comp1 > comp3)) THEN DO i=1,nelemposs IF (((mnos(i,1) == no1) .and. (mnos(i,2) == no2)) .or. & ((mnos(i,1) == no2) .and. (mnos(i,2) == no1))) & mnos(i,1) = ‐1 END DO ELSE IF ((comp2 > comp1) .and. (comp2 > comp3)) THEN DO i=1,nelemposs IF (((mnos(i,1) == no1) .and. (mnos(i,2) == no3)) .or. & ((mnos(i,1) == no3) .and. (mnos(i,2) == no1))) & mnos(i,1)=‐1 END DO ELSE DO i=1,nelemposs IF (((mnos(i,1) == no2) .and. (mnos(i,2) == no3)) .or. & ((mnos(i,1) == no3) .and. (mnos(i,2) == no2))) & mnos(i,1)=‐1 END DO END IF END IF END DO END DO END DO ! Reordenação da matriz de nós. DO i = 1,nelemposs‐1 IF (mnos(i,1) == ‐1) THEN DO j = i,nelemposs‐1 mnos(j,1) = mnos(j+1,1) mnos(j,2) = mnos(j+1,2) END DO mnos(j,1) = 0 mnos(j,2) = 0
81
nelemposs = nelemposs ‐ 1 nelemiso = nelemiso ‐ 1 nelemtotal = nelemtotal ‐ 1 END IF END DO ! Número de modelos isostáticos. ncomb = combinacoes(nelemposs,nelemiso) ! Número de elementos ligando nós de carga IF (nnoscarga > 2) THEN nelemtopo = combinacoes(nnoscarga,2) ELSE IF (nnoscarga == 1) THEN nelemtopo = 0 ELSE nelemtopo = 1 END IF END SUBROUTINE FUNCTION combinacoes(a,b) ! Função que retorna o número de combinaçãoes de 'a' elementos combinados de ! 'b' em 'b'. INTEGER(KIND = 8) :: i, a, b, combinacoes, ft1, ft2 ! ft1=1 ! DO i=(b+1),a ! ft1 = ft1*i ! END DO ! ft2=1 combinacoes = 1 DO i=1,(a‐b) combinacoes = combinacoes*(b+i)/i ! ft2 = ft2*i END DO ! combinacoes = ft1/ft2 END FUNCTION
SUBROUTINE combina (nelemposs,ntirobrig,ncomb,nelemiso,mcomb) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para geração de matriz com todas as combinações possíveis formando ! ! modelos isostáticos e mantendo os tirantes obrigatórios. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, k, x, w, aux(0:100) INTEGER :: nelemposs, nelemiso, ntirobrig, comb, mcomb(ncomb,nelemiso+ntirobrig) INTEGER(KIND = 8) :: ncomb x = nelemposs k = nelemiso DO i = 1, k aux(i‐1) = i END DO OPEN (5,file="COMB.txt")
82
! Primeira combinação j = 0 DO i = 1,ntirobrig WRITE(5,5) i j = j + 1 END DO DO i = 0,(k‐1) WRITE(5,5) aux(i) + ntirobrig 5 FORMAT (i3,$) j = j + 1 IF (j == 30) THEN j = 0 WRITE(5,*) END IF END DO WRITE (5,*) ! Gerador das demais combinações DO w = 1,(ncomb‐1) i = k ‐ 1 DO WHILE (aux(i) == (x‐k+i+1)) i = i ‐ 1 IF (i < 0) CALL EXIT() END DO aux(i) = aux(i) + 1 DO j = (i+1),(k‐1) aux(j) = aux(i) + j ‐ i END DO ! Impressão da combinação j = 0 DO i = 1,ntirobrig WRITE(5,5) i j = j + 1 END DO DO i = 0,(k‐1) WRITE(5,5) aux(i) + ntirobrig j = j + 1 IF (j == 30) THEN j = 0 WRITE (5,*) END IF END DO WRITE (5,*) END DO REWIND (5) !Leitura dos dados para formação da matriz. DO i = 1,ncomb DO j = 1,nelemiso+ntirobrig‐1 READ(5,'(i3)',advance='no') mcomb(i,j) END DO READ(5,'(i3)') mcomb(i,nelemiso+ntirobrig) END DO CLOSE (5) END SUBROUTINE
SUBROUTINE verifica2 (C,nnosprim,nelemiso,nelemtotal,ntirobrig,mnos,ncomb,mcomb, & ocomb,menerg) IMPLICIT NONE
83
!‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para verificação do equilíbrio de todos os nós e da inclinação das ! ! bielas. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, k, x, w, teste, elem INTEGER :: nnosprim, nelemiso, nelemtotal, ntirobrig, ocomb INTEGER :: mnos(190,2), mcomb(ncomb,nelemiso+ntirobrig) REAL :: C(20,3), deltax, deltay, deltaz, sendirz, comp REAL :: menerg(ncomb), mvet(nelemtotal,3), vetref(3), mvetnormal(nelemtotal,3) INTEGER(KIND = 8) :: ncomb ! Formação da matriz de vetores dos elementos. mvet = 0 DO elem = (ntirobrig+1),nelemtotal mvet(elem,1) = C(mnos(elem,2),1) ‐ C(mnos(elem,1),1) mvet(elem,2) = C(mnos(elem,2),2) ‐ C(mnos(elem,1),2) mvet(elem,3) = C(mnos(elem,2),3) ‐ C(mnos(elem,1),3) END DO ! Verificação do número mínimo de elementos ligados a cada nó (3). DO i = 1,nnosprim k = 0 DO j = (ntirobrig+1),(nelemiso+ntirobrig) elem = mcomb(ocomb,j) IF ((mnos(elem,1) == i).or.(mnos(elem,2) == i)) k = k + 1 END DO IF (k < 3) menerg(ocomb) = 1E7 END DO ! Verificação da existencia de elementos não coplanares ligados ao nó. ! Obtenção do vetor de referência no nó. DO i = 1,nnosprim mvetnormal = 0 x = 0 DO j = (ntirobrig+1),(nelemiso+ntirobrig) elem = mcomb(ocomb,j) IF ((mnos(elem,1) == i).or.(mnos(elem,2) == i)) THEN vetref(1) = mvet(elem,1) vetref(2) = mvet(elem,2) vetref(3) = mvet(elem,3) GO TO 10 END IF END DO ! Obtenção dos vetores normais dos planos de cada um dos outros vetores do nó ! com o vetor de referência. 10 DO k = (j+1),(nelemiso+ntirobrig) elem = mcomb(ocomb,k) IF ((mnos(elem,1) == i).or.(mnos(elem,2) == i)) then mvetnormal(elem,1) = vetref(2)*mvet(elem,3) ‐ vetref(3)*mvet(elem,2) mvetnormal(elem,2) = vetref(3)*mvet(elem,1) ‐ vetref(1)*mvet(elem,3) mvetnormal(elem,3) = vetref(1)*mvet(elem,2) ‐ vetref(2)*mvet(elem,1) comp = SQRT(mvetnormal(elem,1)**2 + mvetnormal(elem,2)**2 & +mvetnormal(elem,3)**2) mvetnormal(elem,1) = mvetnormal(elem,1)/comp mvetnormal(elem,2) = mvetnormal(elem,2)/comp mvetnormal(elem,3) = mvetnormal(elem,3)/comp x = x + 1 END IF END DO ! Reordenação da matriz de vetores normais DO k = 1,(nelemtotal‐1) DO j = 1,nelemtotal
84
IF ((ABS(mvetnormal(k,1)) < 1E‐5).and.(ABS(mvetnormal(k,2)) < 1E‐5)& .and.(ABS(mvetnormal(k,3)) < 1E‐5)) THEN DO w = k,(nelemtotal‐1) mvetnormal(w,1) = mvetnormal(w+1,1) mvetnormal(w,2) = mvetnormal(w+1,2) mvetnormal(w,3) = mvetnormal(w+1,3) END DO mvetnormal(w,1) = 0 mvetnormal(w,2) = 0 mvetnormal(w,3) = 0 END IF END DO END DO ! Comparação dos vetores normais teste = 1 DO k = 1,(x‐1) IF ((ABS(mvetnormal(k,1)‐mvetnormal(k+1,1)) < 1E‐5).and. & (ABS(mvetnormal(k,2)‐mvetnormal(k+1,2)) < 1E‐5).and. & (ABS(mvetnormal(k,3)‐mvetnormal(k+1,3)) < 1E‐5)) THEN teste = teste*1 ELSE IF ((ABS(mvetnormal(k,1)+mvetnormal(k+1,1)) < 1E‐5).and. & (ABS(mvetnormal(k,2)+mvetnormal(k+1,2)) < 1E‐5).and. & (ABS(mvetnormal(k,3)+mvetnormal(k+1,3)) < 1E‐5)) THEN teste = teste*1 ELSE teste = teste*0 END IF END DO IF (teste == 1) menerg(ocomb) = 1E7 END DO END SUBROUTINE
SUBROUTINE deslocamento_trelesp (C,mforext,nnostotal,ntotaldesl,mnos,nelemiso, & ntirobrig,ncomb,mcomb,ocomb,U) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina de análise de uma treliça espacial. ! ! Referências: ! ! Soriano ‐ Análise de Estruturas ‐ Formulaçao matricial ... ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, w, ocomb, elem INTEGER :: nnostotal, ntotaldesl, nelemiso, ntirobrig INTEGER :: mnos(190,2), desl(6), mcomb(ncomb,nelemiso+ntirobrig) REAL :: C(20,3), mforext(20,3), comp, compmax, R(6,6) REAL :: Kelemglobal(6,6), Kelemlocal(6,6) REAL :: K(ntotaldesl,ntotaldesl), F(ntotaldesl), U(ntotaldesl) INTEGER(KIND = 8) :: ncomb ! Formação da matriz de rigidez da treliça espacial. K = 0 compmax = 0 DO w = 1,nelemiso+ntirobrig elem = mcomb(ocomb,w) CALL elemento_trelesp (C,mnos,elem,desl,R,Kelemglobal,Kelemlocal,comp) DO i = 1,6 DO j = 1,6 K(desl(i),desl(j)) = K(desl(i),desl(j)) + Kelemglobal(i,j) END DO
85
END DO IF (comp > compmax) THEN compmax = comp END IF END DO ! Aplicação de molas com baixa rigidez DO i = 1,ntotaldesl K(i,i) = K(i,i) + 0.0001/compmax END DO ! Formação do vetor de forças. F = 0 DO i = 1,nnostotal DO j = 1,3 w = 3*(i‐1)+j F(w) = F(w) + mforext(i,j) END DO END DO ! Inversão da matriz de rigidez CALL gaussjordan(K,ntotaldesl,ntotaldesl) ! Matriz de deslocamentos dos nós. U = MATMUL(K,F) END SUBROUTINE
SUBROUTINE elemento_trelesp (C,mnos,elem,desl,R,Kelemglobal,Kelemlocal,comp) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Rotina para determinação da matriz de rigidez, no sistema de referência ! ! global, do elemento de treliça espacial. ! ! Referências: ! ! Soriano ‐ Análise de Estruturas ‐ Formulaçao matricial ... ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, elem INTEGER :: mnos(190,2), desl(6) REAL :: deltax, deltay, deltaz, comp, cosdirx, cosdiry, cosdirz, cosdirxz REAL :: C(20,3), R(6,6), Rtransp(6,6), Kelemlocal(6,6), Kelemglobal(6,6) ! Númeração global dos deslocamentos dos nós do elemento. desl(1) = 3*(mnos(elem,1)‐1)+1 desl(2) = 3*(mnos(elem,1)‐1)+2 desl(3) = 3*(mnos(elem,1)‐1)+3 desl(4) = 3*(mnos(elem,2)‐1)+1 desl(5) = 3*(mnos(elem,2)‐1)+2 desl(6) = 3*(mnos(elem,2)‐1)+3 ! Projeções, comprimento e cossenos diretores. deltax = C(mnos(elem,2),1)‐C(mnos(elem,1),1) deltay = C(mnos(elem,2),2)‐C(mnos(elem,1),2) deltaz = C(mnos(elem,2),3)‐C(mnos(elem,1),3) comp = SQRT(deltax**2+deltay**2+deltaz**2) cosdirx = deltax/comp cosdiry = deltay/comp cosdirz = deltaz/comp cosdirxz = SQRT(cosdirx**2+cosdirz**2) ! Matriz de rotação do elemento. R = 0 IF (cosdirxz > 0) THEN
86
R(1,1) = cosdirx R(1,2) = cosdiry R(1,3) = cosdirz R(2,1) = ‐cosdirx*cosdiry/cosdirxz R(2,2) = cosdirxz R(2,3) = ‐cosdiry*cosdirz/cosdirxz R(3,1) = ‐cosdirz/cosdirxz R(3,3) = cosdirx/cosdirxz ELSE R(1,2) = cosdiry R(2,1) = ‐cosdiry R(3,3) = 1 END IF DO i = 1,3 DO j = 1,3 R(i+3,j+3) = R(i,j) END DO END DO ! Transposição da matriz de rigidez. DO i=1,6 DO j=1,6 Rtransp(i,j) = R(j,i) END DO END DO ! Matriz de rigidez do elemento no sistema de referência local. Kelemlocal = 0 Kelemlocal(1,1) = 1/comp Kelemlocal(1,4) = ‐1/comp Kelemlocal(4,1) = ‐1/comp Kelemlocal(4,4) = 1/comp ! Matriz de rigidez do elemento no sistema de referência global. Kelemglobal = MATMUL(Rtransp,Kelemlocal) Kelemglobal = MATMUL(Kelemglobal,R) END SUBROUTINE
SUBROUTINE gaussjordan(a,n,np) !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para inversão de uma matriz. ! ! A matriz "a" será substituída pela sua inversa no processo. ! ! Referências: ! ! PRESS et. al. ‐ Numerical recipes in fortran 77. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: n, np, nmax REAL :: a(np,np) PARAMETER (nmax=50) INTEGER :: i, icol, irow, j, k, l, ll, indxc(nmax), indxr(nmax), ipiv(nmax) REAL :: big, dum, pivinv DO j = 1,n ipiv(j) = 0 END DO DO i = 1,n big = 0. DO j = 1,n IF(ipiv(j) .ne. 1) THEN DO k = 1,n IF(ipiv(k) .eq. 0) THEN IF(abs(a(j,k)) .ge. big) THEN
87
big = abs(a(j,k)) irow = j icol = k END IF ELSE IF(ipiv(k) .gt. 1) THEN PAUSE 'matriz singular encontrada' END IF END DO END IF END DO ipiv(icol) = ipiv(icol) + 1 IF (irow.ne.icol) THEN DO l = 1,n dum = a(irow,l) a(irow,l) = a(icol,l) a(icol,l) = dum END DO END IF indxr(i) = irow indxc(i) = icol IF(a(icol,icol) .eq. 0.) PAUSE 'matriz singular encontrada' pivinv = 1./a(icol,icol) a(icol,icol) = 1. DO l = 1,n a(icol,l) = a(icol,l)*pivinv END DO DO ll = 1,n IF(ll .ne. icol) THEN dum = a(ll,icol) a(ll,icol) = 0. DO l = 1,n a(ll,l) = a(ll,l) ‐ a(icol,l)*dum END DO END IF END DO END DO DO l = n,1,‐1 IF (indxr(l) .ne. indxc(l)) THEN DO k = 1,n dum = a(k,indxr(l)) a(k,indxr(l)) = a(k,indxc(l)) a(k,indxc(l)) = dum END DO END IF END DO RETURN END SUBROUTINE
SUBROUTINE esforcos_trelesp (C,mnos,ntotaldesl,nelemiso,ntirobrig,ncomb,mcomb,U, & ocomb,mgeralesf,menerg) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Rotina para cálculo dos esforços normais nos elementos de uma treliça espacial,! ! a partir da matriz de deslocamentos já calculada. Registro das "energias de ! ! deslocamento" de cada modelo. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, x, nelemiso, ntirobrig, ntotaldesl, ocomb, elem INTEGER :: mnos(190,2), desl(6), mcomb(ncomb,nelemiso+ntirobrig) INTEGER(KIND = 8) :: ncomb
88
REAL :: C(20,3), comp, R(6,6) REAL :: Kelemglobal(6,6), U(ntotaldesl), Uelemglobal(6), Kelemlocal(6,6) REAL :: menerg(ncomb), mgeralesf(ncomb,nelemiso+ntirobrig), esf(6) menerg(ocomb) = 0 ! Cálculo dos esforços axias em cada elemento. DO x = 1,(nelemiso+ntirobrig) elem = mcomb(ocomb,x) CALL elemento_trelesp (C,mnos,elem,desl,R,Kelemglobal,Kelemlocal,comp) DO i = 1,6 Uelemglobal(i) = U(desl(i)) END DO esf = MATMUL(R,Uelemglobal) esf = MATMUL(Kelemlocal,esf) ! Cálculo da energia de cada modelo. IF (esf(4) > 0) menerg (ocomb) = menerg(ocomb)+esf(4)*comp mgeralesf(ocomb,x) = esf(4) END DO END SUBROUTINE
SUBROUTINE verifica3 (hbloco,C,nelemiso,nelemtotal,ntirobrig,mnos,ncomb,mcomb, & ocomb,menerg,mgeralesf,nmodelok,tetamin,tetamax,nelemtopo) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! !Rotina para verificação do cruzamento de bielas e da existência de diagonais ! !com tração ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, elem, elem1, elem2, ocomb, nmodelok, tirdiagonais INTEGER :: nelemiso, nelemtotal, ntirobrig, nelemtopo INTEGER :: mnos(190,2), mcomb(ncomb,nelemiso+ntirobrig) REAL :: t, z, w, cosdirz, cosalfa, tetamin, tetamax, esfmedio REAL :: mvet(nelemtotal,3), aux(3), mcomp(nelemtotal) REAL :: hbloco, C(20,3), mgeralesf(ncomb,nelemiso+ntirobrig), menerg(ncomb) INTEGER(KIND = 8) :: ncomb !Formação da matriz de vetores dos elementos. mvet = 0 DO elem = ntirobrig+1,nelemtotal mvet(elem,1) = C(mnos(elem,2),1)‐C(mnos(elem,1),1) mvet(elem,2) = C(mnos(elem,2),2)‐C(mnos(elem,1),2) mvet(elem,3) = C(mnos(elem,2),3)‐C(mnos(elem,1),3) mcomp(elem) = SQRT(mvet(elem,1)**2 + mvet(elem,2)**2 + mvet(elem,3)**2) END DO !Cálculo da média dos esforços nos elementos. esfmedio = 0 DO i = 1,(nelemiso+ntirobrig) esfmedio = esfmedio + mgeralesf(ocomb,i) END DO esfmedio = esfmedio/(nelemiso+ntirobrig) !Verificação do cruzamento das bielas t = 0 DO i = (ntirobrig+1),(nelemiso+ntirobrig‐1) elem1 = mcomb(ocomb,i) IF (mgeralesf(ocomb,i) < ‐10E‐5) THEN DO j = (i+1),(nelemiso+ntirobrig) elem2 = mcomb(ocomb,j)
89
IF (mgeralesf(ocomb,j) < ‐10E‐5) THEN IF ((mnos(elem1,1) == mnos(elem2,1)) .or. (mnos(elem1,2) == & mnos(elem2,1)) .or. (mnos(elem1,2) == mnos(elem2,2))) GO TO 20 aux(1) = C(mnos(elem2,1),1) ‐ C(mnos(elem1,1),1) aux(2) = C(mnos(elem2,1),2) ‐ C(mnos(elem1,1),2) aux(3) = C(mnos(elem2,1),3) ‐ C(mnos(elem1,1),3) w = aux(1)*mvet(elem1,2)*mvet(elem2,3) w = w + aux(2)*mvet(elem1,3)*mvet(elem2,1) w = w + aux(3)*mvet(elem1,1)*mvet(elem2,2) w = w ‐ aux(1)*mvet(elem1,3)*mvet(elem2,2) w = w ‐ aux(2)*mvet(elem1,1)*mvet(elem2,3) w = w ‐ aux(3)*mvet(elem1,2)*mvet(elem2,1) IF (ABS(w) < 10E‐5) THEN t = (C(mnos(elem1,1),2)‐C(mnos(elem2,1),2))*mvet(elem2,1) t = t ‐ (C(mnos(elem1,1),1)‐C(mnos(elem2,1),1))*mvet(elem2,2) t = t/(mvet(elem1,1)*mvet(elem2,2)‐mvet(elem2,1)*mvet(elem1,2)) IF (ABS(t) < mcomp(elem1)) THEN menerg(ocomb) = 1E7 END IF END IF END IF 20 END DO END IF END DO !Verificação de tirantes diagonais DO i = ntirobrig+1,nelemiso+ntirobrig elem = mcomb(ocomb,i) cosdirz = ABS(mvet(elem,3))/mcomp(elem) IF((cosdirz > 10E‐5) .and. (cosdirz < 0.99)) THEN IF (mgeralesf(ocomb,i) > 0) menerg(ocomb) = 1E7 END IF END DO !Verificação da inclinação das bielas DO i = (ntirobrig+1),(nelemiso+ntirobrig‐1) elem1 = mcomb(ocomb,i) IF ((elem1 <= (nelemtotal‐nelemtopo)) .and. & (mgeralesf(ocomb,i) > esfmedio/100)) THEN DO j = (i+1),(nelemiso+ntirobrig) elem2 = mcomb(ocomb,j) IF ((elem2 <= (nelemtotal‐nelemtopo)) .and. & (mgeralesf(ocomb,j) > esfmedio/100)) THEN ! Verificação se os dois elementos tem um nó em comum. IF ((mnos(elem1,1) == mnos(elem2,1)) .or. & (mnos(elem1,2) == mnos(elem2,1)) .or. & (mnos(elem1,2) == mnos(elem2,2))) THEN ! Verificação se os esforços tem sinais opostos. IF ((mgeralesf(ocomb,i)*mgeralesf(ocomb,j)) < ‐1E‐5) THEN ! Cálculo do ângulo entre vetores. cosalfa = mvet(elem1,1)*mvet(elem2,1) cosalfa = cosalfa + mvet(elem1,2)*mvet(elem2,2) cosalfa = cosalfa + mvet(elem1,3)*mvet(elem2,3) cosalfa = ABS(cosalfa)/(mcomp(elem1)*mcomp(elem2)) IF ((cosalfa > COS(3.1416*tetamin/180)) .or. & (cosalfa < COS(3.1416*tetamax/180))) menerg(ocomb) = 1E7 END IF END IF END IF END DO END IF END DO
90
!Diminuição do número de combinações aceitáveis. IF (menerg(ocomb) > 9E4) nmodelok = nmodelok ‐ 1 END SUBROUTINE
SUBROUTINE relatorio (hbloco,nest,nnoscarga,C,reacoes,mforext,menerg,nelemiso, & ntirobrig,ncomb,mcomb,mgeralesf,nmodelok,omodelotimo) IMPLICIT NONE !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Subrotina para a impressão dos dados do bloco e resutados da análise no arquivo! ! de texto RELATORIO.txt. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! INTEGER :: i, j, nest, nnoscarga, nelemiso, ntirobrig INTEGER :: nmodelok, omodelotimo(nmodelok), mcomb(ncomb,nelemiso+ntirobrig) REAL :: hbloco, C(20,3), reacoes(10), mforext(20,3), aux(1) REAL :: menerg(ncomb), menergaux(ncomb), mgeralesf(ncomb,nelemiso+ntirobrig) INTEGER(KIND = 8) :: ncomb ! Verificação se existe modelo que atenda a todas as verifiações. IF (MINVAL(menerg) > (9E4)) THEN PAUSE 'Impóssivel de modelar com os limites de inclinação fornecidos.' END IF ! Localização do modelo que gasta menos energia. menergaux = menerg DO i = 1,nmodelok aux = MINLOC(menergaux) omodelotimo(i) = aux(1) menergaux(omodelotimo(i)) = 10E5 END DO ! Impressão dos dados de entrada OPEN (6,file='RELATORIO.txt') WRITE (6,15) 15 FORMAT('RESULTADOS ÓBTIDOS DA ELABORAÇÃO E ANÁLISE DE MODELO DE BIELA E & TIRANTE'/'PARA UM BLOCO DE COROAMENTO.',///,'DADOS DE ENTRADA:',//,'ALTURA DO BLOCO:',/) WRITE (6,16) ' H = ', hbloco 16 FORMAT(a6,f4.2) WRITE (6,17) 17 FORMAT (//,'COORDENADAS DAS ESTACAS NO FUNDO DO BLOCO:',//,2x,'NÓ(ESTACA)',9x, & 'X',15x,'Y',/) DO i =1 ,nest WRITE (6,18) i, C(i,1), C(i,2) END DO 18 FORMAT (i8,f16.2,f16.2) WRITE (6,19) 19 FORMAT (//,'COORDENADAS E FORÇAS DOS NÓS CARREGADOS NA FACE SUPERIOR DO BLOCO:',& //,6x,'NÓ',13x,'X',15x,'Y',15x,'F',/) DO i=1,nnoscarga WRITE (6,20) i+nest, C(i+nest,1), C(i+nest,2), mforext(i+nest,3) END DO 20 FORMAT (i8,f16.2,f16.2,f16.2) ! Impressão das reações de apoio. WRITE (6,25) 25 FORMAT (//,'REAÇÕES DE APOIO:',//,2x,'NÓ(ESTACA)',9x,'F',/) do i=1,nest
91
WRITE (6,26) i, reacoes(i) END DO 26 FORMAT (i8,f16.2) ! Impressão das coordenadas dos nó de transferência de carga para face oposta ! do bloco. WRITE (6,30) 30 FORMAT (//,'NÓS DE TRANSFERÊNCIA DE CARGA PARA A FACE OPOSTA:'/) IF (ntirobrig == 0) THEN WRITE (6,*) 'NÃO HÁ FORÇAS EXTERNAS DE TRAÇÃO NO BLOCO.' ELSE WRITE (6,31) 31 FORMAT (/,6x,'NÓ',13x,'X',15x,'Y') DO i=1,ntirobrig WRITE (6,32) i+nest+nnoscarga, C(i+nest+nnoscarga,1), & C(i+nest+nnoscarga,2) END DO 32 FORMAT (i8,f16.2,f16.2) END IF ! Impressão do número de combinações de elementos (modelos isóstáticos) a serem ! análisados. WRITE (6,35) 35 FORMAT (//,'NÚMERO DE TRELIÇAS ISOSTÁTICOS A SEREM ANÁLISADAS') WRITE (6,*) nmodelok !Impressão dos esforços axias em cada elemento. WRITE (6,40) 40 FORMAT (//,'ESFORÇOS NOS ELEMENTOS DO MODELO COM MENOS ENERGIA DE DEFORMAÇÃO:' & //,2x,'ELEMENTO',5x,'ESFORÇO AXIAL') DO i = 1,nelemiso+ntirobrig WRITE (6,45,advance='no') mcomb(omodelotimo(1),i) WRITE (6,50) mgeralesf(omodelotimo(1),i) END DO 45 FORMAT (i7) 50 FORMAT (f15.1) REWIND (6) CLOSE (6) ! Impressão de arquivos como todos os elementos de cada combinação e a energia & ! de cada um. OPEN (7,file='ENERGIA.txt') OPEN (8,file='ELEMENTOS.txt') DO i = 1,ncomb IF (menerg(i) > 0) THEN WRITE (7,*) menerg(i) DO j = 1,(ntirobrig+nelemiso‐1) WRITE (8,55,advance='no') mcomb(i,j) END DO WRITE (8,55) mcomb(i,ntirobrig+nelemiso) 55 FORMAT (i5) END IF END DO REWIND (7) CLOSE (7) END SUBROUTINE
SUBROUTINE graficos (C,nnostotal,ncomb,nelemiso,ntirobrig,mnos,mcomb,mgeralesf, & menerg,omodelotim,nmodelok)
92
USE IFQWIN USE IFLPORT implicit none !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! ! Rotina para impressão dos modelos mais prováveis na tela do computador. ! !‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐! TYPE (XYCOORD) xy TYPE (QWINFO) winfo TYPE (WINDOWCONFIG) wc RECORD /VIDEOCONFIG/ video LOGICAL :: result CHARACTER(1) :: tecla CHARACTER(8) :: a8 INTEGER :: i, j, teste, modelo, status, style, width INTEGER :: maxx, maxy, xe, ye, exx, exy, exz, eyx, eyy, eyz INTEGER :: nnostotal, mnos(190,2), nelemiso, ntirobrig INTEGER :: nmodelok, omodelotim(nmodelok), mcomb(ncomb,nelemiso+ntirobrig) INTEGER(KIND = 8) :: ncomb DOUBLE PRECISION xmax, ymax, zmax, xmin, ymin, zmin, esc, xc, yc, a, b, pi, dz INTEGER,ALLOCATABLE :: xt(:), yt(:) DOUBLE PRECISION, ALLOCATABLE :: x0(:), y0(:), z0(:) REAL :: r, xm(20), ym(20), zm(20) REAL :: C(20,3), menerg(ncomb), mgeralesf(ncomb,nelemiso+ntirobrig) ALLOCATE (x0(nnostotal), y0(nnostotal), z0(nnostotal)) ALLOCATE (xt(nnostotal), yt(nnostotal)) pi = 3.1415926 ! Ajuste do modo gráfico. status = SETVIDEOMODE ($MAXRESMODE) call GETVIDEOCONFIG(video) maxx = video.NUMXPIXELS maxy = video.NUMYPIXELS ! Expandindo e alterando o nome da janela. !winfo.TYPE = QWIN$MAX !status = SETWSIZEQQ(QWIN$FRAMEWINDOW,winfo) !status = SETWSIZEQQ(0,winfo) wc%TITLE = "MODELO"C result = SETWINDOWCONFIG(wc) IF (.not.result) result = SETWINDOWCONFIG(wc) ! Montagem do menu de opções. DO i=1,7 result = DELETEMENUQQ(1,0) END DO result = INSERTMENUQQ(1,0,$MENUENABLED,'Arquivo'C,NUL) result = INSERTMENUQQ(1,1,$MENUENABLED,'Abrir'C,NUL) result = INSERTMENUQQ(1,2,$MENUENABLED,'Salvar'C,WINSAVE) result = INSERTMENUQQ(1,3,$MENUENABLED,'Sair'C,WINEXIT) result = INSERTMENUQQ(2,0,$MENUENABLED,'Editar'C,NUL) result = INSERTMENUQQ(2,1,$MENUENABLED,'Copiar'C,WINCOPY) result = INSERTMENUQQ(2,2,$MENUENABLED,'Colar'C,WINPASTE) result = INSERTMENUQQ(3,0,$MENUENABLED,'Tela Cheia'C,WINFULLSCREEN) ! Definição do fundo de tela status = SETBKCOLORRGB(#FFFFFF) status = SETTEXTCOLORRGB(#000000) status = SETCOLORRGB(#000000) CALL CLEARSCREEN($GCLEARSCREEN)
93
!Nova origem no centro da figura DO i = 1,nnostotal xm(i) = C(i,1) ym(i) = C(i,2) zm(i) = C(i,3) END DO xmax = MAXVAL(xm) ymax = MAXVAL(ym) zmax = MAXVAL(zm) xmin = MINVAL(xm) ymin = MINVAL(ym) zmin = MINVAL(zm) xm = xm ‐ (xmax+xmin)/2 ym = ym ‐ (ymax+ymin)/2 zm = zm ‐ (zmax+zmin)/2 xc=0 yc=0 ! Inicializar escala, foco, ângulos da visada e acesso as fontes esc = 0.5*min(maxx/(xmax‐xmin),maxy/(ymax‐ymin)) dz = 5000*(zmax‐zmin) a = ‐3*pi/8 b = 0 ! Plotagem tecla = "5" teste = 1 modelo = 1 DO WHILE (.true.) CALL CLEARSCREEN($GCLEARSCREEN) status = INITIALIZEFONTS() status = SETFONT('t''Arial''h16w8') CALL MOVETO (150,10,xy) CALL OUTGTEXT('GIRO(W S A D) DESL.Y(9 3) DESL.X(0 ,) ZOOM(+ ‐) & FOCO(7 1) (C)ENTRAR VISTAS(X Y Z)') CALL MOVETO (150,30,xy) CALL OUTGTEXT('(E)SFORÇOS NOS ELEMENTOS (N)ÚMERO DOS ELEMENTOS') !Projeção x0 = xm*COS(b) + zm*SIN(b) y0 = ym*COS(a) + SIN(a)*(xm*SIN(b) ‐ zm*COS(b)) z0 = ‐ym*SIN(a) + COS(a)*(xm*SIN(b) ‐ zm*COS(b)) !Perspectiva zmax = MAXVAL(z0); zmin = MINVAL(z0) x0 = x0*(dz + zmax ‐ z0)/(dz + zmax ‐ zmin) y0 = y0*(dz + zmax ‐ z0)/(dz + zmax ‐ zmin) !Translação x0 = x0 ‐ xc y0 = y0 ‐ yc !Coordenadas na tela xt = INT(maxx/2+x0*esc); yt = INT(maxy/2‐y0*esc) !Plotar nós DO i = 1,nnostotal IF (xt(i) > 0.and.xt(i) < maxx.and.yt(i) < maxy.and.yt(i) > 0) THEN status = ELLIPSE($GBORDER, xt(i)‐2,yt(i)‐2,xt(i)+2,yt(i)+2) END IF END DO IF (teste == 0) THEN !Esforços axiais nos elementos. DO i = 1,(nelemiso+ntirobrig)
94
j = mcomb(omodelotim(modelo),i) r = mgeralesf(omodelotim(modelo),i) xe = INT((xt(mnos(j,1))+xt(mnos(j,2)))/2) ye = INT((yt(mnos(j,1))+yt(mnos(j,2)))/2) CALL MOVETO (xe,ye,xy) CALL real_to_character(r,a8) CALL OUTGTEXT(a8) END DO ELSE IF (teste == 1) THEN !Numerar elementos. DO i = 1,nelemiso+ntirobrig j = mcomb(omodelotim(modelo),i) xe = INT((xt(mnos(j,1))+xt(mnos(j,2)))/2) ye = INT((yt(mnos(j,1))+yt(mnos(j,2)))/2) CALL MOVETO (xe,ye,xy) CALL integer_to_character(j,a8) CALL OUTGTEXT(a8) END DO END IF !Plotar elementos DO i = 1,(nelemiso+ntirobrig) j = mcomb(omodelotim(modelo),i) CALL MOVETO (xt(mnos(j,1)),yt(mnos(j,1)),xy) IF (mgeralesf(omodelotim(modelo),i) > 0) THEN status = SETCOLORRGB(#FF0000) style = Z'FFFF' width = 2 ELSE status = SETCOLORRGB(#0000FF) style = Z'EEEE' width = 1 END IF CALL SETLINESTYLE(style) CALL SETLINEWIDTHQQ(width) status = lineto(xt(mnos(j,2)),yt(mnos(j,2))) END DO status = SETTEXTCOLORRGB(#000000) status = SETCOLORRGB(#000000) style =Z'FFFF' CALL SETLINESTYLE(style) !Numerar nós DO i=1,nnostotal CALL MOVETO (xt(i)+3,yt(i),xy) CALL integer_to_character(i,a8) CALL OUTGTEXT(a8) END DO !Eixos exx = INT(60 ‐ 45*COS(b)); eyx = INT(50 + 45*SIN(a)*SIN(b)) exy = 60 ; eyy = INT(50 + 45*COS(a)) exz = INT(60 + 45*SIN(b)); eyz = INT(50 + 45*SIN(a)*COS(b)) CALL MOVETO (50,60,xy); status = LINETO(exx,eyx) CALL OUTGTEXT('X') CALL MOVETO (50,60,xy) ; status = LINETO(exy,eyy) CALL OUTGTEXT('Y') CALL MOVETO (50,60,xy) ; status = LINETO(exz,eyz) CALL OUTGTEXT('Z') !Dados do modelo CALL MOVETO(60,maxy‐80,xy) CALL OUTGTEXT('ORDEM DO MODELO: ') CALL integer_to_character (modelo,a8) CALL OUTGTEXT(a8)
95
CALL MOVETO(60,maxy‐60,xy) CALL OUTGTEXT('ENERGIA DE DESLOCAMENTO DO MODELO: ') CALL real_to_character(menerg(omodelotim(modelo)),a8) CALL OUTGTEXT(a8) ! Tecla de opção tecla = GETCHARQQ() SELECT CASE (tecla) CASE ('c','C'); dz = 2*(zmax‐zmin); a = 3*pi/8; b = 0; xc = 0; yc = 0 CASE ('+'); esc = esc*1.12; esc = esc*1.12 CASE ('‐'); esc = esc/1.125; esc = esc/1.125 CASE ('9'); yc=yc ‐ maxy/40/esc CASE ('3'); yc=yc + maxy/40/esc CASE (','); xc = xc ‐ maxx/40/esc CASE ('0'); xc = xc + maxx/40/esc CASE ('Y','y'); a = PI/2; b = pi/2 CASE ('X','x'); a = 0; b = pi/2 CASE ('Z','z'); a = 0; b=0 CASE ('W','w'); a = a ‐ pi/60 CASE ('S','s'); a = a + pi/60 CASE ('A','a'); b = b ‐ pi/60 CASE ('D','d'); b = b + pi/60 !CASE ('7'); dz = dz/1.2 !CASE ('1'); dz = dz*1.2 CASE ('E','e'); teste = 0 CASE ('N','n'); teste = 1 CASE ('p','P'); modelo = modelo+1 CASE ('o','O'); modelo = modelo‐1 END SELECT IF (modelo == nmodelok+1) modelo = 1 END DO END SUBROUTINE