ANÁLISE TRIDIMENSIONAL AUTOMÁTICA DE BLOCOS DE COROAMENTO Sandro Martins Gomes 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
ANÁLISE TRIDIMENSIONAL AUTOMÁTICA DE BLOCOS DE COROAMENTO Sandro Martins Gomes 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: 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. RIO DE JANEIRO, RJ - BRASIL MARÇO DE 2015
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 i
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. ii
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 iii
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 iv
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 v
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 vi
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 1
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 2
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. 3
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: 4
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. 5
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). 6
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: n V = k zi. z i=1 Onde: V: força vertical aplicada ao bloco; k zi: 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. 2.1 Figura 2.2 - Deslocamento pela carga vertical (Adaptado de Alves (2014)). A componente vertical, F zi, da força axial em cada estaca é dada por: V F zi = - k zi. z = - k zi. n i=1 k zi (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. k z = E. A. cos 2 α (2.3) L 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. 7
Figura 2.3 - Rigidez vertical de estaca inclinada (Retirada de Alves (2014)). Finalmente, o esforço axial em cada estaca (N i ), provocado por uma força vertical, é calculado pela expressão (2.4), com valor positivo para compressão: N i = k zi. V cos i. n i=1 k zi (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: k xi = E. A L. sen 2 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. 8
Figura 2.4 - Rigidez horizontal de estaca inclinada (Retirada de Alves (2014)). Por equilíbrio das forças horizontais no bloco: n H x = k xi. x i=1 (2.6) F xi = - k xi. x = - k xi. H x (2.7) k x onde: H x : força horizontal aplicada ao bloco na direção x, k xi : 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 F xi : 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: N i = ± k xi. H x sen( xi ). n i=1 k xi (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 9
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): n M y = N i. r xi i=1 n 2 = k i. y. r xi i=1 (2.9) k i. M y. r xi N i = ± n i=1 (k i. r 2 xi ) sendo: M y : momento solicitante na direção y. y : Rotação de corpo rígido do bloco na direção y. k i : rigidez axial da estaca i. (2.10) 10
r xi : 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. N i = k zi.v cos i. k zi ± k xi.h x sen( xi ). k xi ± k yi.h y ± k i.m x.r yi sen( yi ). k yi (k i.r 2 yi ) ± k i.m y.r xi (k i.r 2 xi ) (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 11
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 (x 0,y 0 ) 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 (x 0,y 0 ), por: x 0 = (k i.x 0i ) e y k 0 = (k i.y 0i ) (2.12) i k i onde: x 0i e y 0i : coordenadas de cada estaca em relação ao sistema original; x 0 e y 0 : 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: x i = x 0i - x 0 e y i = y 0i - y 0 (2.13) M x = M x0 - V.y 0 e M y = M y0 + V.x 0 (2.14) sendo: x i e y i : coordenadas de cada estaca no sistema com origem no centro de rigidez; M x0 e M y0 : momentos no sistema de coordenadas original; M x e M y : são os momentos no sistema de coordenadas com origem no centro de rigidez. 12
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: x i = x i.cos() + y i.sen() e y i = - x i.sen() + y i.cos() (2.15) M x = M x.cos() + M y.sen() e M y = - M x.sen() + M y.cos() (2.16) com : = 1 2 k i. x i. y 2 tg-1 i k i. x 2 i - k i. y 2 i (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; M x e M y : 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 x i, y i e z i. 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. 13
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 = p x1 p x2 p xn p y1 p y2 p yn p z1 p z2 p zn p a1 p a2 p an p b1 p b2 p bn p c1 p c2 p cn (2.17) onde: p x = cos (componente segundo x); p y = cos (componente segundo y); p z = cos (componente segundo z); p a = y p z z p y (momento em torno do eixo x); p b = z p x x p z (momento em torno do eixo y); p c = x p y y p x (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: 14
R = R x R y R z R a R b R c (2.18) onde: R x : força solicitante na direção x; R y : força solicitante na direção y; R z : força solicitante na direção z; R a : momento solicitante em torno do eixo x; R b : momento solicitante em torno do eixo y; R c : 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: k i = E i.a i L i (2.19) Em seguida, define-se uma matriz diagonal com essas rijezas: D = k 1 0 0 0 0 k 2 0 0................ 0 0 0 k n (2.20) A matriz de rigidez do estaqueamento (K) é obtida pela seguinte transformação: K = P.D.P T (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.P T.V (2.23) Substituindo (2.22) em (2.23), tem-se: N = D.P T.K -1.R (2.24) 15
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 1 N 2 N = N n (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. 16
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 17
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. 18
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). (a) (b) (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 19
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 20
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: f cd1 = 0,85. v2. f cd (3.1) Regiões fissuradas, com tensões de tração transversal e em regiões nodais onde confluem dois ou mais tirantes: onde: f cd2 = 0,60. v2. f cd (3.2) Regiões nodais onde conflui um tirante tracionado: f cd3 = 0,72. v2. f cd (3.3) v2 = 1 - f ck 250 (com f ck expresso em MPa); f cd : 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: A s = F Sd (3.4) f yd onde: A s é a soma das áreas das seções transversais das barras que compõem a armadura; F Sd é o valor de cálculo da força de tração no tirante obtida no modelo; f yd é a tensão de escoamento de cálculo do aço. 21
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: w 2 = w 1 cosθ + w 3 senθ (3.5) Figura 3.3 Exemplo da região nodal de um nó CCC. 22
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. 23
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 F i l i i (3.6) onde: F i é a força na biela ou tirante i; l i é o comprimento do elemento i; i é a deformação axial do elemento i. Como o aço é muito mais deformável que o concreto (E s /E c 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: 24
mínimo F ti l ti (3.7) onde: F ti é a força no tirante i; l ti é 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). (a) (b) Figura 3.6 - (a) Modelo "adequado"; (b) Modelo não adequado. (Adaptado de Wight (2012)) 25
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) 26
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 + NET.NCT + NCT.(NCT-1) 2 + NEC.NET + NEC.NCT + NET.(NET-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 27
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. 28
CARGAS DE COMPRESSÃO NÓS NO TOPO DO BLOCO CARGAS DE TRAÇÃO NÓS PROJETADOS NO TOPO ESTACAS COMPRIMIDAS NÓS NO FUNDO DO BLOCO ESTACAS TRACIONADAS NÓS PROJETADOS NO FUNDO NÓS NO TOPO DO BLOCO NÓS NO FUNDO DO BLOCO CARGAS DE COMPRESSÃO CARGAS DE TRAÇÃO NÓS PROJETADOS NO TOPO ESTACAS COMPRIMIDAS ESTACAS TRACIONADAS NÓS PROJETADOS NO FUNDO 1... NCC 1... NCT 1... NET 1... NEC 1... NET 1... NCT NCC(NCC-1)/2 3 2 2 2 1 NCC*NCT NCC*NET NCC*NEC NCC*NET NCC*NCT... NCC NCT(NCT-1)/2 2 só conectar se estaca tracionada 1 1 NCT*NET NCT*NEC coincidir com carga de NCT... tração no topo NCT NET(NET-1)/2 2 1 2 1 NET*NEC NET NET*NCT... NET NEC(NEC-1)/2 3 1 NEC*NET NEC*NCT... NEC 1 - TIRANTES OBRIGATÓRIOS NET(NET-1)/2 1 EXCLUIR ELEMENTOS SOBREPOSTOS NET*NCT... 2 - BIELAS OPCIONAIS LIMITAR ÂNGULO ENTRE BIELAS E TIRANTES NET IMPOSSIBILITAR BIELAS SE CRUZANDO FORA DOS NÓS NCT(NCT-1)/2 1 3 - LIGAÇÕES OPCIONAIS NOS PLANOS IMPOSSIBILITAR NÓS COM TODOS OS ELEMENTOS COPLANARES... NCT Figura 4.1 - Matriz de conexão de nós 29
Figura 4.2 - Fluxograma geral do programa - parte 1 30
Figura 4.3 - Fluxograma geral do programa - parte 2 31
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 (h BLOCO ). 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 = - h BLOCO ). 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: 32
C = x est,1 y est,1 - h BLOCO x est,1 y est,1 - h BLOCO x est,n y est,n - h BLOCO x car,1 y car,1 0 x car,1 y car,2 0 x car,m y car,m 0 (4.6) onde : C: matriz de coordenadas dos nós; x est,i e y est,i : coordenadas do centro da cabeça da estaca i ; x car,i e y car,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 = N est1 N est2 N estn N car1 N car1 N carm (4.7) onde: N esti : espaço reservado para armazenar a reação da estaca i que será, posteriormente, calculada. N cari : força vertical aplicada no ponto de introdução de carga i. k est1 k matriz de rijezas das estacas = est2 (4.8) k est,n sendo, k esti 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. 33
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. n+m V = matriz de forças externas (i) (4.9) i=n+1 n+m M x = matriz de forças externas (i) i=n+1 n+m M y = matriz de forças externas (i) i=n+1 onde: V: força vertical solicitante; M x : momento solicitante na direção x; M y : momento solicitante na direção y. x C(i,2) (4.10) x C(i,1) (4.11) A soma das rijezas relativas de todas as estacas é determinada em função do valor de referência: n k total = matriz de rijezas das estacas (i) i=1 (4.12) Como o estaqueamento não é necessariamente simétrico, deve-se calcular as coordenadas do centro de rigidez do mesmo. x 0 = n i=1 matriz de rijezas (i) x C (i,1) k total (4.13a) 34
y 0 = n i=1 matriz de rijezas (i) x C (i,2) k total (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 = Ci,1 - x 0 e C ' i,2 = Ci,2 - y 0 (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 = M x - V y 0 e M' y = M y - V x 0 (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: I xx = matriz das rijezas i x C' (i,2) 2 (4.16) I yy = matriz das rijezas i x C' (i,1) 2 (4.17) I xy = 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 I xy I xx + I yy (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() C (i,2) = - C (i,1) sen() + C (i,2) cos() M x = M x cos() + M y sen() (4.20a) (4.20b) (4.21a) 35
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, I xx, I yy e I xy 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. N V (i) = matriz de rijezas i k total V (4.22) N Mx (i)= N My (i)= matriz de rijezas i k total matriz de rijezas i k total x M'' x C'' (i,2) I' xx (4.23) x M'' y C'' (i,1) I' yy (4.24) matriz de forças externas (i) = N V (i) + N Mx (i) + N My 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. 36
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. (a) (b) 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. 37
(a) (b) 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). 38
n de elementos = C 2 n 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). x 1 y 1 1 A = x 2 y 2 1 (4.28) x 3 y 3 1 sendo, x i e y i, 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) 39
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 = C b a = 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: 40
matriz de combinações = 4.8 Equilíbrio dos nós 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 10 1 2 3 4 5 6 7 9 10 1 2 3 4 5 6 8 9 10 1 2 3 4 5 7 8 9 10 1 2 3 4 6 7 8 9 10 1 2 3 5 6 7 8 9 10 1 2 4 5 6 7 8 9 10 1 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 10 (4.34) 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 = x i1 - x f1 y i1 - y f1 z i1 - z f1 x i2 - x f2 y i2 - y f2 z i2 - z f2 x i3 - x f3 y i3 - y f3 z i3 - z f3 x in - x fn y in - y fn z in - z fn (4.35) onde: n: o número de elementos possíveis; x i, y i, z i : coordenadas do nó inicial de cada elemento; x f, y f, z f : coordenadas do nó final de cada elemento. 41
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. 42
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: 43
T R = C x C y C z -C x C y C 2 2 x +C z -C y C z C x 2 +C z 2 -C z C x 2 +C z 2 0 C 2 2 x +C z C x C 2 2 x +C z (4.36) sendo C x, C y, C z, 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: C x = C y = matriz de vetores diretores (i,1) L i matriz de vetores diretores (i,2) L i matriz de vetores diretores (i,3) C z = L i onde: (4.37a) (4.37b) (4.37c) L i = 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 = T R 0 0 T R (4.39) A matriz de rigidez, no referencial local (k L ), de um elemento de treliça espacial tem a seguinte forma: k L = E A L - E A L 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - E A 0 0 L 0 0 0 0 0 0 E A 0 0 L 0 0 0 0 0 0 (4.40) Onde: E: módulo de elasticidade do material A: área da seção transversal da barra L: comprimento da barra 44
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 (k G ), faz-se a seguinte transformação: k G = R T k L 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: 3 n do nó i - 1 + 1 3 n do nó i - 1 + 2 ngd = 3 n do nó i - 1 + 3 3 n do nó f - 1 + 1 3 n do nó f - 1 + 2 3 n do nó f - 1 + 3 onde: i e f: nó inicial e nó final do elemento, respectivamente; ngd: vetor de transformação do deslocamento local para o global. (4.42) 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)) + k G (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 45
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 L máx (4.44) Com i variando de um até o número total de deslocamentos e L má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 (u G ): u G (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 (u L ) 46
u L = R u G (4.48) O vetor das forças de extremidade do elemento (f L ) é 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)). f L = k L u L (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) = f Li,j (4) (4.50) sendo f Lij, 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. k vetor de energia (i) = matriz geral dos esforços (i,j) (se > 0) 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 é 47
atendida, o valor da energia é alterado para um valor relativamente alto (10 7 ). Posteriormente, somente modelos cuja energia de deformação seja menor que 10 7 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: x= x i1 +C x1 t 1 x= x i2 +C x2 t 2 r 1 = y= y i1 +C y1 t 1 r 2 = y= y i2 +C y2 t 2 (4.53) z= z i1 +C z1 t 1 z= z i2 +C z2 t 2 onde: 48
x i, y i,z i: as coordenadas dos nós iniciais de cada elemento; C x, C y e C z : 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 (t 1 e t 2 ). Determina-se, assim, o valor de t 1, 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. 49
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. 50
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. 51
Figura 4.11 Exemplo de modelo que seria descartado pelo programa. 52
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. 53
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 F i : Tabela 5.1 - Resumo do cálculo do estaqueamento. estaca x i (m) x i ² (m²) V/n (kn) -My.xi/Sxi² (kn) F i (kn) E1-0,75 0,563-785 166,7 618,3 E2 0,75 0,563-785 -166,7 951,7 E3-0,75 0,563-785 166,7 618,3 E4 0,75 0,563-785 -166,7 951,7 soma - 2,25-3140 0 3140 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: V 1 = - 3140 2 + 500 0,4 = - 320 kn V 2 = - 3140 2-500 0,4 = - 2820 kn Por simplificação, as cargas V 1 e V 2 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. 54
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. 55
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 B 1 e o tirante T 1 (mesmo válido para biela B 3 e tirante T 2 ): θ 1 = arccos 0,55 0,75² + 0,55² + 0,65² = 61 Ângulo entre a biela B 1 e o tirante T 3 (mesmo válido para biela B 3 e tirante T 3 ): θ 2 = arccos 0,75 0,75² + 0,55² + 0,65² = 49 Ângulo entre a biela B 2 e o tirante T 1 : θ 3 = arccos 0,95 0,75² + 0,95² + 0,65² = 46 Ângulo entre a biela B 2 e o tirante T 3 : θ 4 = arccos 0,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. 56
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 B 3 e nos tirantes T 2 e T 3 A Figura 5.4 ilustra as forças que se equilibram neste nó. B 3 = 951,7 senθ 2 = Figura 5.4 - Equilíbrio do nó sobre a estaca E4. 951,7 sen 34,95 = 1661,3 kn T 2 = 951,7 senθ 1 tgθ 2 = T 3 = 951,7 cosθ 2 tgθ 1 = 951,7 sen 53,75 tg 34,95 951,7 cos 53,75 tg 34,95 = 1098,1 kn = 805,2 kn A seguir, calculam-se as forças nas bielas B 1 e B 4 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. 57
B 1 = 320 2 cosθ 1 = 320 2 cos 55,05 = 279,3 kn B 4 = - 2 279,3 sen θ 1 cos θ 2 = - 2 279,3 sen 55,05 cos 126,25 = 270,6 kn Por ultimo, determinam-se as forças no tirante T 1 e na biela B 2, 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. B 2 = 618,3 - B 1senθ 3 senθ 1 = 618,3-279,3 sen 34,95 sen 28,24 = 968,6 kn T 1 = B 1 cos θ 3 sen θ 4 + B 2 cos θ 1 sen θ 2 = = 279,3 cos 34,95 sen 53,75 + 968,6 cos 28,24 sen 38,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) B 1-279,3 B 2-968,6 B 3-1661,3 B 4-270,6 T 1 713,4 T 2 1098,1 T 3 805,2 58
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 59
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 60
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 (C 6 2 ), 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 (C 15 12 ) 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. 61
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. 62
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 N manual (kn) N auto (kn) B 1-279,3-278,7/-279,7 B 2-968,6-969,3/-969,9 B 3-1661,3-1660,8/-1661,8 B 4-270,6-271,2 T 1 713,4 713,2 T 2 1098,1 1097,8 T 3 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: V 1 = - 3140 2 V 2 = - 3140 2 + 1000 0,4-1000 0,4 = 930 kn = - 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 63
-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 ----------------------------------------------------------------------------- 64
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... 65
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 (C 2 7 ), 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 (C 20 15 ). 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. 66
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. 67
(A) (B) (C) (D) (E) (F) (G) Figura 5.12 - Arranjos de elementos possíveis para modelos do bloco do exemplo de validação. (H) 68
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. 69
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. 70
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, temse 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 é 2 32-1 -1 = 2147483647. Uma das sugestões de continuidade do trabalho, que seria de grande importância para aplicação prática do 71
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. 72
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. 73
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. 74
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, & 75
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 & & & 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 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 76
! 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 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)! Definição da soma das rijezas de todas as estacas. ktot = 0 DO i = 1,nest ktot = ktot + mkest(i)! 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)! Cálculo das coordenadas em relação ao eixo principal. 77
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)! 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! 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)! 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! 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 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 78
! 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! 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! 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 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.!!! 79
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 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 ELSE DO i=1,nelemposs IF (((mnos(i,1) == no2).and. (mnos(i,2) == no3)).or. & mnos(i,1)= 1 END IF END IF! 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) mnos(j,1) = 0 mnos(j,2) = 0 ((mnos(i,1) == no3).and. (mnos(i,2) == no2))) 80 & &
nelemposs = nelemposs 1 nelemiso = nelemiso 1 nelemtotal = nelemtotal 1 END IF! 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!! ft2=1 combinacoes = 1 DO i=1,(a b) combinacoes = combinacoes*(b+i)/i! ft2 = ft2*i! 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 OPEN (5,file="COMB.txt") 81
! Primeira combinação j = 0 DO i = 1,ntirobrig WRITE(5,5) i j = j + 1 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 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() aux(i) = aux(i) + 1 DO j = (i+1),(k 1) aux(j) = aux(i) + j i! Impressão da combinação j = 0 DO i = 1,ntirobrig WRITE(5,5) i j = j + 1 DO i = 0,(k 1) WRITE(5,5) aux(i) + ntirobrig j = j + 1 IF (j == 30) THEN j = 0 WRITE (5,*) END IF WRITE (5,*) 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) READ(5,'(i3)') mcomb(i,nelemiso+ntirobrig) CLOSE (5) END SUBROUTINE SUBROUTINE verifica2 (C,nnosprim,nelemiso,nelemtotal,ntirobrig,mnos,ncomb,mcomb, & ocomb,menerg) IMPLICIT NONE 82
!!! 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)! 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 IF (k < 3) menerg(ocomb) = 1E7! 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! 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! Reordenação da matriz de vetores normais DO k = 1,(nelemtotal 1) DO j = 1,nelemtotal 83
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) mvetnormal(w,1) = 0 mvetnormal(w,2) = 0 mvetnormal(w,3) = 0 END IF! 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 & & & & IF (teste == 1) menerg(ocomb) = 1E7 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) 84
IF (comp > compmax) THEN compmax = comp END IF! Aplicação de molas com baixa rigidez DO i = 1,ntotaldesl K(i,i) = K(i,i) + 0.0001/compmax! 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)! 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 85
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)! Transposição da matriz de rigidez. DO i=1,6 DO j=1,6 Rtransp(i,j) = R(j,i)! 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 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 86
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 IF 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 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 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 IF 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 IF 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 87
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)) 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 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)!cálculo da média dos esforços nos elementos. esfmedio = 0 DO i = 1,(nelemiso+ntirobrig) esfmedio = esfmedio + mgeralesf(ocomb,i) 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) 88
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 IF!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!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 IF & 89
!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! 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) 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) 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 90
WRITE (6,26) i, reacoes(i) 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) 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) 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) WRITE (8,55) mcomb(i,ntirobrig+nelemiso) 55 FORMAT (i5) END IF REWIND (7) CLOSE (7) END SUBROUTINE SUBROUTINE graficos (C,nnostotal,ncomb,nelemiso,ntirobrig,mnos,mcomb,mgeralesf, menerg,omodelotim,nmodelok) & 91
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) 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) 92
!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) 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 IF (teste == 0) THEN!Esforços axiais nos elementos. DO i = 1,(nelemiso+ntirobrig) 93
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) 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 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))) 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)!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) 94
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 SUBROUTINE 95