Procedimentos para cálculo e verificação de seções
Transcrição
Procedimentos para cálculo e verificação de seções
UNIVERSIDADE FEDERAL DE SÃO CARLOS CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA DEPARTAMENTO DE ENGENHARIA CIVIL Procedimentos para cálculo e verificação de seções transversais de concreto protendido no estado limite último e de serviço para flexão normal José Filho de Sousa Cunha Trabalho de Conclusão de Curso apresentado ao Departamento de Engenharia Civil da Universidade Federal de São Carlos como parte dos requisitos para a conclusão da graduação em Engenharia Civil Orientador: Prof. Dr. Roberto Chust Carvalho São Carlos 2012 RESUMO Trata-se da elaboração de programa que faz o dimensionamento de seções submetidas a protensão com aderência. O programa será composto por várias rotinas elaboradas em linguagem object pascal. Até o presente momento foi desenvolvido praticamente toda a parte teórica necessária para o desenvolvimento das rotinas que é o objetivo principal deste trabalho. O programa será elaborado de forma que intuitivamente o usuário possa fornecer os dados necessários de entrada e também consiga interpretar de maneira rápida e sucinta os dados de saída. Palavras-chave: Protensão, aderência, rotinas. ABSTRACT ABSTRACT It drafting program that makes the design of sections subjected to prestressing with grip. The program will consist of several routines compiled object Pascal language. At this writing was developed almost everywhere theoretical developments necessary for the routines which is the main objective of this work. The program is designed so that the user can intuitively provide the necessary data input and also can play quickly and succinctly output data. Key-words: Prestressing, adherence, routines. LISTA DE ILUSTRAÇÕES Figura 1: Seção "T" dividida em duas seções retangulares ...................................................... 32 Figura 2: Seção com geometria qualquer e armadura Ap ......................................................... 33 Figura 3: Seção da figura dividida em tiras e pedaço da tira transformada em retângulo ........ 33 Figura 4: Posições de linha neutra para a seção dada ............................................................... 33 Figura 5: Tela principal do programa ....................................................................................... 37 Figura 6: Interface para cálculo no ELU seção retangular ....................................................... 38 Figura 7: Verificação no ELS no tempo infinito ...................................................................... 40 Figura 8: Seção geometrica e propriedades - laje alveolar ....................................................... 41 Figura 9: Interface para cálculo no ELU seção genérica .......................................................... 41 Figura 10: Interface características da seção ............................................................................ 43 LISTA DE TABELAS Tabela 1: Coeficientes das ações diretas separadamente.......................................................... 19 Tabela 2 : Ações variáveis consideradas separadamente ......................................................... 19 Tabela 3: Combinações de serviço para ELS. .......................................................................... 21 Tabela 4: Valores dos coeficientes de combinação e de redução para cargas variáveis .......... 22 Tabela 5: Exigências dos níveis de protensão segundo a NBR 6118:2003 .............................. 23 Tabela 6 : Características físicas e mecânicas de fios e cordoalhas produzidos pela ArcelorMittal. ................................................................................................................... 25 Tabela 7: Tensão no aço sd (MPa) .......................................................................................... 30 . SUMÁRIO 1. 2. CAPÍTULO ........................................................................................................................ 8 1.1 Introdução ................................................................................................................. 8 1.2 Objetivo ..................................................................................................................... 8 1.3 Justificativa ............................................................................................................... 9 1.4 Metodologia ............................................................................................................. 10 1.5 Apresentação do Trabalho..................................................................................... 10 CAPÍTULO ...................................................................................................................... 12 2.1 3. Revisão Bibliográfica.............................................................................................. 12 CAPÍTULO ...................................................................................................................... 16 3.1 Conceitos e fundamentos do concreto protendido ............................................... 16 3.2 Vantagens e desvantagens do concreto protendido ............................................. 17 3.2.1 Vantagens ............................................................................................................. 17 3.2.2 Desvantagens ........................................................................................................ 17 3.3 Estados limite Último (ELU) ................................................................................. 18 3.3.1 Combinações últimas............................................................................................ 18 3.4 Estados limites de Serviço (ELS)........................................................................... 20 3.4.1 Combinações de serviço ....................................................................................... 20 4. 3.5 Tipos de protensão .................................................................................................. 22 3.6 Aços de protensão ................................................................................................... 24 3.7 Valores limites para operação da protensão ........................................................ 25 CAPÍTULO ...................................................................................................................... 27 4.1 Cálculo e verificação do Estado Limite Ultimo (ELU) ........................................ 27 4.2 Seção retangular ..................................................................................................... 28 4.2.1 Fundamentos teóricos ........................................................................................... 28 4.3 Seção Tê ................................................................................................................... 31 4.3.1 Fundamentos teóricos ........................................................................................... 31 4.4 Seção genérica ......................................................................................................... 32 4.4.1 Fundamentos teóricos ........................................................................................... 32 5. C APÍTULO ..................................................................................................................... 36 5.1 Apresentação da tela principal do programa....................................................... 36 5.2 Seção retangular ..................................................................................................... 37 5.2.1 Verificação no tempo zero .................................................................................... 39 5.2.2 Verificação no tempo infinito ............................................................................... 39 6. 5.3 Seção genérica ......................................................................................................... 40 5.4 Características da seção ......................................................................................... 42 CAPÍTULO ...................................................................................................................... 44 6.1 Considerações finais ............................................................................................... 44 7. REFERÊNCIAS .............................................................................................................. 45 8. BIBLIOGRAFIA ............................................................................................................. 46 9. ANEXO ............................................................................................................................ 47 9.1 Formulário - Tela Principal ................................................................................... 47 9.2 Formulário - Estado Limite Ultimo (ELU) .......................................................... 47 9.3 Formulário - Característica da seção ................................................................... 54 9.4 Formulário seção genérica ..................................................................................... 57 8 1. 1.1 CAPÍTULO INTRODUÇÃO O sistema de protensão iniciou-se pelo engenheiro norte americano P.A. Jackson no ano de 1872. Mas foi Eugene Freyssinet que desenvolveu e aplicou as propriedades da protensão de maneira significativa, construindo seis pontes de concreto protendido sobre o rio Marne (Ponte de Luzancy) logo após o final da segunda guerra mundial. O surgimento da protensão no concreto tinha objetivo eliminar as tensões de tração que pudesse ocorrer em diversas situações de combinações das ações. Atualmente o concreto protendido permite tensão de tração, dentro de certos limites, que são definidos em função da durabilidade da peça estrutural. Desta forma têm-se as recomendações normativas (NBR6118: 2007) que devem ser atendidos de acordo com o tipo de protensão utilizada e dos fatores como a classe de agressividade e o tipo de construção. O trabalho apresenta métodos de procedimento para cálculo e verificação nas seções transversais de elementos submetidos à flexão, bem como, a conceituação dos sistemas de protensão e o desenvolvimento de exemplos práticos. Opta-se por calcular a armadura longitudinal no estado limite último e verifica-la no estado limite de serviço, seguindo sempre as normas vigentes. Para melhor entendimento dos conceitos e organização das informações, fez-se uma revisão bibliográfica considerando os principais autores que já abordaram o assunto. 1.2 OBJETIVO Este trabalho tem como objetivo o desenvolvimento de uma rotina em linguagem object pascal, programada em Delphi, que auxilie no cálculo de armaduras longitudinais em seções submetidas à flexão normal. A rotina será elaborada com base em teorias de cálculo e recomendações normativas inerentes a elementos protendidos já abordados em obras por autores. Pretende-se que a rotina retorne como resultados os seguintes itens: Área de armadura ativa; 9 Momento resistente no estado limite último; Verificação do estado limite de serviço no tempo zero e no tempo infinito; Características no estádio I e II; Momento de fissuração. Com base na interpretação dos resultados de saída da rotina o usuário conseguirá dimensionar a seção de forma a atender tanto os estado limite último quanto ao de serviços, que são as condições imposta pela norma para o dimensionamento de seções submetido à protensão. 1.3 JUSTIFICATIVA O dimensionamento de seções protendidas consiste em um processo interativo demandando trabalho repetitivo que quando usado com simplificações pode gerar imprecisões de cálculo. Desta forma o desenvolvimento de uma ferramenta que contenha procedimentos precisos pode otimizar o tempo despendido em projeto bem como a precisão dos resultados. Por outro lado as verificações no estado limite de serviço e último são relativamente complexas, pois além das considerações feitas com teoria de concreto armado requerem o conhecimento do esforço de protensão em tempos distintos (tempo zero- introdução da protenção- e tempo infinito). Portanto uma rotina que realize o cálculo da área de armadura e ao mesmo tempo em que faz as verificações das tensões limites e de grande importância no auxílio de projeto em concreto protendido. E ainda um projeto diferenciado, visto que, atualmente não se encontra no mercado nenhum tipo de software que faz o cálculo da armadura necessária e a verificação das tensões limites impostas na NBR 6118:2007. Portanto o desenvolvimento desta rotina se justifica em razão de propiciar aos projetistas de concreto protendido resultados mais precisos no cálculo de seções, redução do tempo gasto nas verificações das seções e finalmente por integrar o cálculo da área de aço necessária com a verificação das tensões limites, conforme a norma 6118:2003, nas seções de elementos protendidos. 10 1.4 METODOLOGIA Este trabalho trata-se de uma pesquisa aplicada monodiciplinar, que para se atingir os objetivos será adotada a seguinte metodologia: 1. Revisão bibliográfica: procurará reunir informações, em diversas obras relacionadas sobre o assunto inclusive na norma 6118:2007, para o entendimento das teorias envolvidas no dimensionamento de seções de elementos submetidos a protensão; 2. Apresentação dos procedimentos de cálculos: serão apresentados os procedimentos de cálculos, elaborados por autores referenciados e de acordo com as recomendações normativas, que deverá ser programado no desenvolvimento da rotina. Os procedimentos de cálculos deverão comtemplar: o cálculo da armadura no estado limite último no tempo infinito; na verificação da seção, com armadura dada no estado limite último, no tempo infinito no domínio 2 e 3; na verificação de seção, com armadura dada no estado limite último, no tempo zero domínio 2 e 3 e no cálculo e verificações de durabilidade considerando a protensão limitada e completa; 3. Desenvolvimento da rotina computacional: elaboração da rotina em linguagem object pascal, programadas em Delphi, que realize os cálculos de acordo com procedimentos de cálculos explanados no item anterior. Ainda a rotina deverá fornecer o cálculo das propriedades geométricas no estádio I e II (sem fissuração e com o elemento fissurado) e o momento de fissuração. Com estas informações o usuário poderá alimentar outros programas que verificam a flecha; 4. Apresentação das telas do programa e resolução de exemplos: pretende-se que as telas de inserção de dados da rotina assim como os de saídas sejam autoexplicativas. Porém, como estratégia metodológica entende-se necessário o calculo de exemplos apresentando ilustrações das telas facilitando a compreensão. 1.5 APRESENTAÇÃO DO TRABALHO O trabalho será apresentado em sete capítulos de maneira que cada capítulo abordará os temas inerentes. O capítulo 1 é composto pela introdução, objetivos, justificativas e a metodologia adotada. No capítulo 2 consiste na revisão bibliográfica feita, que relaciona as principais obras sobre o assunto. 11 No capítulo 3 são apresentados as conceituações gerais, definindo cada tipo de protensão e indicando como são analisados os estados limites de cálculo, juntamente com as combinações de ações e os fatores que nelas interferem. No capítulo 4 são abordados os fundamentos teóricos para as seções retangulares, Te e genérica. Para cada uma das seções é abordado equacionamento para a determinação da armadura longitudinal. Apresentados os temas referentes ao Estado Limite Último (ELU), onde descrevem as fases que ocorre na seção até o colapso, as hipótese de cálculo, o dimensionamento e equacionamento para a determinação das armaduras longitudinais nas seções retangulares e na forma de “T”. Também aborda os temas referentes ao Estado Limite de Serviço (ELS). Por fim terá os procedimentos de cálculos usados na programação. No capítulo 5 além da apresentação das telas do programa também tem a resolução de exemplo pratico para seção retangular e seção genérica. O exemplo contempla o dimensionamento da área de aço (ELU) bem e verificações no tempo zero e infinito. Na verificação no tempo zero é evidenciada, em função do não atendimento a tração e a intensidade, a opção de inserir armadura ativa ou armadura passiva na parte superior. Por fim no capítulo 6 terá as Considerações finais e as sugestões para trabalhos futuros e a finalizando do trabalho listando as referências bibliográficas utilizadas. Nos anexos serão apresentados os algoritmos usados no desenvolvimento do programa, sendo divididos de acordo com os formulários gerados. 12 2. 2.1 CAPÍTULO REVISÃO BIBLIOGRÁFICA Historicamente a primeira prática do uso da protensão ocorreu no ano de 1872 quando o engenheiro americano P.A. Jackson, desenvolveu um sistema que consistia em passar hastes de ferro através de blocos e apertá-los com porcas. Até o início do século XX a técnica de protenção era essencialmente empírica, visto que, eram desconhecidos os efeitos de retração e a fluência do concreto, responsáveis pelas perdas de protensão. Esses efeitos causadores de perdas na protensão só foram comprovados no início do século XX, através dos estudos e ensaios realizados por Koenem e Morsch. Contudo, o uso de aço de baixa resistência, ainda resultava em perdas insatisfatórias no concreto protendido, quando considerado as perdas lentas (Schimid, 2008). Para Carvalho (2010), as primeiras tentativas de protensão esbarraram sempre na impossibilidade de se garantir tensões de compressão permanentes no concreto. Os efeitos de retração e da deformação lenta do concreto – estudada pro Koenem e Morsch – acabavam por anular o efeito do estiramento prévio (esforço de compressão dada pelo aço) da armadura. Somente com os ensaios feitos por Eugene Freyssinet é que foi possível entender que seria necessário o uso de aços que permitissem grandes deformações de estiramento, mesmo que perdessem esse estiramento em função da retração e fluência do concreto, ao longo do tempo, parte do estiramento ainda sim transfeririam esforços de compressão ao concreto, ou seja, seria necessário o uso de aço de alta resistência. A difusão do concreto protendido segundo Schimid (2008) só veio ocorrer no final da década de 40 quando a escassez de aço, provocado pela II Guerra Mundial, abriu caminho para a protensão em virtude de que com protensão permitissem a construção de maior número de estruturas comparadas com o aço comum (concreto armado). Faleiros Junior (2010) evidencia-se que Eugene Freyssinet, construiu seis pontes de concreto protendido sobre o rio Marne (Pont de Luzancy), que venciam 55 metros de vão, logo após o término da segunda Guerra Mundial. 13 No Brasil a primeira obra em concreto protendido, 1948 no Rio Janeiro projetada também por Freyssinet, foi à construção da ponte do galeão com 380 m de comprimento – considerada a maior da época, nesta obra foram empregados aço de 12 fios com diâmetro de cinco milímetros. Sintetizando os conceitos do concreto protendido utilizados, França (2004) diz que inicialmente o uso da protensão procurava-se eliminar totalmente as tensões normais de tração com a (protensão completa). Atualmente, existe a tendência em utilizar a protensão parcial onde, em situações de combinações extremas de ações, permite-se a fissuração da peça como ocorre no concreto armado. Desta forma tem-se, hoje, a unificação do concreto armado com concreto protendido constituindo o concreto estrutural. O uso do sistema protendido oferece algumas vantagens, comparado com o concreto armado. Em Faleiros Junior (2010), traz algumas vantagens oferecidas pelo sistema de protensão. Já na obra de França (2004) além das vantagens também cita algumas desvantagens do sistema protendido. Para Carvalho (2010), o princípio do concreto protendido é primeiramente diminuir a fissuração do concreto, através da introdução de tensões normais de compressão em regiões, onde devido a outras ações, existem tensões de tração. Desta forma o concreto protendido deve ser projetado quando submetido a diversas combinações de ações, as tensões sejam apenas de compressão ou de pequena intensidade de tração. Ou ainda conforme o lema “onde houver tração que se leve a compressão ou a protensão”. Também em Carvalho (2010), faz se uma síntese dos aspectos a serem observados na elaboração de um projeto em concreto protendido. Primeiramente o engenheiro projetista deve está atento para uma série de informações que servirão como parâmetro de projeto. O primeiro parâmetro é a classe de agressividade ambiental (CAA) que é definido na NBR 6118:2007 segundo as condições de exposição total ou parcial da estrutura. Definido a CAA são então estabelecidos os parâmetros de valores máximos da relação A/C (água/cimento), do valor mínimo da resistência característica do concreto e do mínimo cobrimento necessário às armaduras. Com a classe de agressividade o projetista deve escolher o tipo de protensão a ser usada (pré ou pós-tração) e qual a intensidade de protensão (protensão parcial, limitada ou completa). Com todas essas informações a Norma recomenda qual o tipo de verificação que deverá ser feito e qual a combinações de ações devem ser consideradas. Em Mandarás (1993), faz comparações de entre vigas de concreto armado e concreto protendido concluindo que armaduras de concreto armado (CA-50 e CA-60), quando usados em no concreto protendido, causam perdas inevitáveis que praticamente 14 anulam o efeito da protensão. Faz também o cálculo de seções submetidas a flexão. Para isso, o autor faz um pré-dimensionamento considerando todos os esforços solicitantes da estrutura e ressalva que quando a diferença do peso próprio for superior a 5% refaz todos os procedimentos de cálculo considerando o novo carregamento do próprio da estrutura. Posteriormente há determinação dos esforços o autor dimensiona uma viga, de ferrovia com protensão completa, partindo do principio do calculo no estado limite de utilização e por ultimo faz-se a verificação no estado limite último. O autor ainda sugere que quando o estado limite ultimo não for atendido então poderia adotar as seguintes providencias: 1Adicionar armadura suplementar (passiva), como colaborante na seção resistente; 2- Adotar para o concreto, uma maior resistência característica a compressão (fck); 3- Acrescentar armadura de protensão a armadura inicial e por fim, 4- Modificar a geometria da seção transversal. Em Vasconcelos (1980), faz o dimensionamento de seções retangulares de concreto protendido, seguindo o mesmo roteiro usado em concreto armado. Inicialmente faz o dimensionamento no estado limite último e posteriormente, apenas para constatar a durabilidade da estrutura, mediante as prescrições normativas, é que se faz a verificação no estado limite de serviço. Esta sistemática de cálculo só foi possível devido aos resultados, da tensão na armadura, obtidos de ensaio realizados pelo fabricante de aço. França (2004) desenvolve uma sistemática de calculo diferenciado. O autor desenvolve um método interativo de cálculo partindo do princípio do dimensionamento da seção no (ELU). Para isto inicialmente e adota um valor para a relação (x/d) que resulta na determinação da linha neutra. Posteriormente consegue-se determinar a deformações especificas no concreto e por compatibilidade consegue-se também a do aço. Com base nas deformações específicas pode se então determinar as tensões tanto na armadura passiva como na armadura ativo, caso haja a simultaneidade das duas na seção. Encontrada as tensões, determinam-se as forças resultantes no concreto e no aço e com esta calcula se os esforços resistentes da seção. O processo é refeito, com uma nova relação (x/d), caso o valor encontrado esforços resistente da seção seja inferior ao esforço solicitante, isso interativamente ate o processo convergir. Caso o esforço solicitante seja menor que o esforço resistente da seção então se pode determinar a área de aço de armadura ativa e passiva na seção. Seguindo o desenvolvimento deste trabalho esta revisão será gradativamente complementada a medida que for desenvolvida os procedimentos para o cálculo e verificação de seções protendidas. Cabe ressaltar ainda que este trabalho comtempla o dimensionamento e a verificação de seções protendidas, processo esse ainda, não executado nem pelos programas comercias existentes. 15 16 3. 3.1 CAPÍTULO CONCEITOS E FUNDAMENTOS DO CONCRETO PROTENDIDO A diferença entre o concreto armado e o concreto protendido está no tipo de armadura utilizada. No concreto armado a armadura e do tipo passiva, ou seja, só resiste quando mobilizada pela deformação imposta pelo concreto, a partir do momento que o concreto adquire resistência e que é retirado seu escoramento. Já no concreto protendido a armadura é do tipo ativa, neste caso, a armadura já está submetida a uma tensão independentemente do concreto. Para isso é necessário que a armadura seja pré-tracionada ou distendida de forma a transferir os esforços de compressão na estrutura de concreto. Tanto as estruturas de concreto armado como as de concreto protendido são abordados pela mesma norma (NBR 6118:2007) a qual trata as particularidades de cada sistema quando necessário, principalmente no que se refere ao sistema construtivo, ao tipo de aço e as verificações necessárias. A NBR 6118:2007 define o concreto protendido como: “Aquele na qual parte da armadura é previamente alongada por equipamentos especiais de protensão com a finalidade de, em condições de serviço, impedir ou limitar a fissuração e os deslocamentos da estrutura e propiciar melhor aproveitamento de aços de alta resistência no estado limite ultimo (ELU)”. Devido a fase de operação da protenção, que pode ocorrer antes ou depois do lançamento do concreto, o concreto protendido é classificado em dois grandes grupos. O primeiro é o concreto protendido com armadura aderente, que é subdividido em aderência inicial (pré-tração) e aderência posterior (pós-tração). A segunda classificação refere-se ao concreto protendido com armadura sem aderência. No texto da NBR 6118:2007 traz-se o conceito para cada situação: Aderência inicial (pré-tração): “Concreto protendido em que o pré-alongamento da armadura ativa é feito utilizando-se apoios independentes do elemento estrutural, antes do lançamento do concreto, sendo a ligação da armadura de protensão com os referidos apoios desfeita após o endurecimento do concreto; a ancoragem no concreto realiza-se por aderência”. 17 Aderência posterior (pós-tração): “Concreto protendido em que o pré-alongamento da armadura ativa é realizado após o endurecimento do concreto, sendo utilizadas, como apoios, partes do próprio elemento estrutural, criando posteriormente aderência com o concreto de modo permanente, através da injeção de natas nas bainhas”. Sem aderência (pós-tração): “Concreto protendido em que o pré-alongamento da armadura ativa é realizado após o endurecimento do concreto, sendo utilizados, como apoios, partes do próprio elemento estrutural, mas não sendo criada aderência com o concreto, ficando a armadura ligada ao concreto apenas em pontos localizados”. 3.2 VANTAGENS E DESVANTAGENS DO CONCRETO PROTENDIDO 3.2.1 VANTAGENS Reduz as tensões de tração provocadas pela flexão e pelos esforços cortantes; Reduz a incidência de fissuras: Com a protensão é possível melhorar a capacidade de utilização da peca estrutural e controlar de modo mais eficiente a fissuração, podendo, em alguns casos, até eliminá-la; A seção de concreto comprimida tende a uma maior resistência aos alongamentos gerados pela flexão, provocando menores tensões de fissuração; O controle das fissuras está diretamente relacionado com a durabilidade das estruturas, pois aumenta a protensão da armadura contra corrosão, bem como a estanqueidade do concreto; Reduz as quantidades necessárias de concreto e de aço, devido ao emprego eficiente de matérias de maior resistência; Permite vencer vãos maiores que o concreto armado convencional, reduzindo a armadura necessária na viga; 3.2.2 Diminuição da flecha; DESVANTAGENS Corrosão do aço de protensão. Como nos aços de concreto armado as armaduras de protensão também sofrem com a corrosão eletrolítica. No entanto nas armaduras de protendidas apresenta outro tipo de corrosão – denominada de corrosão sobtensão (stress-corrosion) – fragilizando a seção da armadura, além de propiciar a ruptura frágil. Por esse motivo a armadura protendida deve ser muito bem protegida; 18 Perdas de protensão. São todas as perdas verificadas nos esforços aplicados nos cabos de protensão. As perdas são classificadas em perdas imediatas (perda por atrito, ancoragem e encurtamento elástico do concreto) e perdas ao longo do tempo (perdas por retração e fluência do concreto e relaxação do aço). Qualidade da injeção de nata nas bainhas e da capa engraxada nas cordoalhas engraxadas; Forças altas nas ancoragens; Controle de execução mais rigoroso; Cuidados especiais em estruturas hiperestáticas. 3.3 ESTADOS LIMITE ÚLTIMO (ELU) Corresponde ao esgotamento da capacidade de resistência estrutural, ou seja, a partir desse ponto a estrutura entra em colapso. 3.3.1 COMBINAÇÕES ÚLTIMAS As combinações no ELU são feitas majorando as ações permanentes que provocam efeitos desfavoráveis e minoram-se as ações que provoca efeitos favoráveis a segurança da estrutura. Os coeficientes de ponderação e apresentado na NBR 8681:2003, a qual faz se a analise dos coeficientes separadamente e também em conjunto. A Tabela 1 mostra os coeficientes para as ações permanentes, analise separadamente, em função do tipo de combinação. 19 Tabela 1: Coeficientes das ações diretas separadamente. Fonte: NBR 8681:2003. Para as ações variadas também se tem o mesmo raciocínio da permanente, ou seja, a análise pode ser considerando as ações separadamente ou em conjunto, na Tabela 2 apresenta os coeficientes de ponderação considerando a atuação separadamente para as ações variáveis. Tabela 2 : Ações variáveis consideradas separadamente Fonte: Item 5.1.4.2 da NBR8681: 2003. 20 3.4 ESTADOS LIMITES DE SERVIÇO (ELS) O ELS está relacionado ao desempenho mínimo que o empreendimento, no seu total, deve apresentar quando submetidos a condições de uso. Portanto, deve-se garantir a durabilidade da estrutura, aparência, conforto do usuário e a boa utilização funcional. A norma NBR 6118: 2007 definem vários estados limites a fim de garantir a durabilidade e as especificações nos projetos. Estado limite de abertura de fissuras (ELS-W): Estado em que as fissuras apresentam com aberturas iguais aos máximos especificados. O cálculo é feito considerando as tensões nas barras da armadura de tração no estádio II (concreto fissurado à tração e comportamento elástico linear dos materiais). A verificação deve ser feita para cada grupo de elementos de armaduras passivas e ativa, desconsiderando neste ultimo caso a protensão sem aderência. Estado limite de formação de fissuras (ELS-F): Estado em que se inicia a formação de fissuras. Admite-se que este estado limite é atingido quando a tensão de tração transversal for igual a: √ (3.1) Estado limite de descompressão (ELS-D): Estado na qual em um ou mais pontos da seção transversal à tensão normal é nula, não havendo tração no restante da seção. Verificação comum no concreto protendido. 3.4.1 COMBINAÇÕES DE SERVIÇO O tipo de combinações de serviço e apresentado abaixo e faz referência a probabilidade das ações atuar durante a vida útil da estrutura. Abaixo, Tabela 3, apresenta-se o quadro descritivo com as combinações no Estado Limite de Serviço (ELS) a serem consideradas. 21 Tabela 3: Combinações de serviço para ELS. COMBINAÇÕES DE SERVIÇO DESCRIÇÃO Nas QUASE PERMANENTE CÁLCULO DAS SOLICITAÇÕES combinações quase permanentes de serviço, todas as ações variáveis ∑ são ∑ consideradas com seus valores quase permanentes ᴪ2Fqk. Nas combinações frequentes de serviço, a ação variável principal Fq1 é tomada com FREQUENTES seu valor frequente ᴪ1Fq1k e todas as demais ações ∑ ∑ variáveis são tomadas com seus valores quase permanentes ᴪ2Fqk. Nas combinações serviço, a ação raras de variável principal Fq1 é tomada com RARAS seu valor característico Fq1k e ∑ ∑ todas as demais ações são tomadas com seus valores frequentes ᴪ1Fqk. ᴪ1 é o fator de redução de combinações frequente para ELS ᴪ2 é o fator de redução de combinações quase permanente para ELS Estes coeficientes estão na NBR 8681:2003. Fonte: NBR 6118:2003. Os coeficientes de ponderação estão na NBR 8681:2003 e apresentado na Tabela 4. 22 Tabela 4: Valores dos coeficientes de combinação e de redução para cargas variáveis Fonte: NBR 8681:2003. 3.5 TIPOS DE PROTENSÃO A protensão pode ocorrer em três diferentes níveis de intensidade da força, que são definidos na NBR 6118:2007 em protensão completa, limitada e protensão parcial. A escolha adequada de nível de protensão irá depender de critérios pré-estabelecidos levando-se em conta o tipo de construção e a classe de agressividade do meio ambiente. Vale ressaltar que em função da intensidade de protensão a área de aço calculada será diferente, sendo que na protensão completa consumirá mais aço que na protensão parcial, pois esta permite tensões de tração. Pode se concluir que quanto maior a agressividade ambiental e por consequente maior risco de corrosão da armadura, maior será a necessidade de protensão, pois desta forma reduz ou elimina-se a formação de fissuras no concreto e, portanto o risco de corrosão na armadura. Acrescenta-se ainda, que na NBR 71979, as estruturas de pontes ferroviárias ou vigas de pontes rolantes, só eram admitidas protensão com aderência e o concreto protendido sem aderência só era admitido 23 em casos especiais e sempre com protensão completa. Na nova norma (NBR 6118:2007) o texto não traz nenhuma consideração quanto a protensão sem aderência. Em Carvalho (2010), faz se uma síntese dos aspectos a serem levados em consideração na elaboração de um projeto em concreto protendido. Primeiramente o engenheiro projetista deve está atento para uma série de informações que servirão como parâmetro de projeto. O primeiro parâmetro é a classe de agressividade ambiental (CAA) que é definido na NBR 6118:2007 segundo as condições de exposição total ou parcial da estrutura. Definido a CAA são então estabelecidos os parâmetros de valores máximos da relação A/C (água/cimento), do valor mínimo da resistência característica do concreto e do mínimo cobrimento necessário às armaduras. Com a classe de agressividade o projetista deve escolher o tipo de protensão a ser usada (pré ou pós-tração) e qual a intensidade de protensão (protensão parcial, limitada ou completa). Com todas essas informações a Norma recomenda qual o tipo de verificação que deverá ser feito e qual a combinações de ações devem ser consideradas. Abaixo na Tabela 5 apresenta resumidamente as recomendações normativas (NBR 6118: 2003) a serem adotados na elaboração de um projeto de concreto protendido. Tabela 5: Exigências dos níveis de protensão segundo a NBR 6118:2003 TIPOS DE AGRESSIVIDADE PROTENSÃO AMBIENTE COMBINAÇÕES EXIGÊNCIA DE AÇÕES A CONSIDERAR Pré-tração CAA I ELS-W ≤ 0,2 mm Frequente Pré-tração CAA II ELS-F Frequente Pós-tração CAA III e IV ELS-D Quase permanente ELS-F Rara ELS-D Frequente Protensão parcial Pós-tração CAA I e II Protensão limitada Protensão completa Pré-tração CAA III e IV Fonte: NBR 6118:2003 Em função do nível de protensão, mostrados acima, e então definido o estado limite de serviço que a peça deverá atender. 24 3.6 AÇOS DE PROTENSÃO Os aços de protensão são caracterizados por terem altas resistências, pela ausência de um patamar de escoamento e são identificados pela sigla CP (concreto protendido) seguido do valor, em kgf/mm², da tensão de ruptura e também pelas siglas RN ou RB que indica se o aço é de relaxação normal ou baixa. Exemplos de aços de protensão produzido no Brasil são: CP145RB, CP150RB, CP170RN, CP175RB, CP175RN e CP190RB. Estes aços de protensão fabricados são fornecidos em barras, fios e cordoalhas. Barras de aço: liga de alta resistência, laminadas a quente, com diâmetro superior a 12 mm Fornecidos em segmentos retos de comprimento normalmente compreendido entre 10 e 12 m; Fios: com diâmetro em geral não maior que 12 mm, fornecidos em rolos ou bobinas. A trefilação produz o encruamento do aço, aumento sua resistência, desta forma obtém-se resistências mais elevadas para fios de menor diâmetro; Cordoalhas: Formados por fios enrolados em forma de hélice. As mais comuns são constituídas de três e sete fios; Cordoalhas engraxadas e plastificadas: Cordoalhas com características idênticas a cordoalhas convencionais, porém possui em sua superfície uma camada de graxa que e revestida por um plástico (polietileno de alta densidade- PEDAD). Este plástico permite o movimento livre da cordoalha em seu interior; Cordoalhas especiais para estruturas estaiadas: Produzidas com três camadas protetoras contra a corrosão: Galvanização dos fios a quente antes do encordoamento e da estabilização; filme de cera de petróleo e são encapadas com plásticos resistentes a raio ultravioleta. A diferenciação dos aços de relaxação normal (RN) e o de baixa relaxação (RB) se dá no tratamento dado no alívio de tensões internas devido ao processo de produção dos fios por trefilação - tratamento térmico a qual os fios são passados em chumbo derretido entre, 250 a 500 0C, resultando na melhora da linearidade do diagrama Tensão x Deformação. Nos aços de tipo RB, além do tratamento inicial também faz se um alongamento de aproximadamente 1%, isso faz com que aços de RB apresentem melhores características elásticas e menores perdas de tensão por relaxação comparada aos aços do tipo RN. Os aços de tipo RB são os mais utilizados, devido principalmente, a constância da produção. 25 Atualmente no Brasil existe apenas um fabricante de aço especial para o concreto protendido que produz os mesmo fios e cordoalhas que eram produzidos na década de 60. Até 1974 no Brasil só eram produzidos os do tipo RN Abaixo Tabela 6 apresenta a tabela disponibilizada pelo fabricante, com as características e propriedades mecânicas de fios e cordoalhas. Tabela 6 : Características físicas e mecânicas de fios e cordoalhas produzidos pela ArcelorMittal. Fonte: https://www.belgo.com.br/produtos/construcao_civil/fios_cordoalhas/pdf/fios_cordoalhas.pdf 3.7 VALORES LIMITES PARA OPERAÇÃO DA PROTENSÃO As forças de protensão são obtidas utilizando-se armaduras de alta resistência (armaduras ativas). Para a execução da protensão a NBR 6118:2007, estabelece valores 26 que limitam a tensão inicial no aço e que varia de acordo com o tipo de aço (RN ou RB) e da tipologia do sistema empregado (pós ou pré-tração). Para as armaduras pré-tracionadas deve-se adotar o menor valor da tensão inicial (σpi) entre: { (3.2) { (3.3) Para as armaduras pós-tracionadas deve-se adotar o menor valor da tensão inicial (σpi) entre: { (3.4) { (3.5) Onde: . Estes limites devem ser atendidos para evitar problemas como “boca de jacaré” que surgem quando a resistência do concreto não e suficiente para garantir a completa ancoragem da armadura. 27 4. 4.1 CAPÍTULO CÁLCULO E VERIFICAÇÃO DO ESTADO LIMITE ULTIMO (ELU) Diferente do concreto armado em que o dimensionamento das seções ocorre no Estado Limite Ultimo (ELU) e depois se faz a verificação no Estado Limite de Serviço (ELS), no concreto protendido o dimensionamento não implica necessariamente na mesma ordem, ou seja, pode-se dimensionar inicialmente no ELS e depois verificar no ELU sendo também o contrário correto. O que a norma NBR 6118:2003 define e que ambos os estados (ELU e ELS) sejam verificados no dimensionamento da seção. Neste trabalho o dimensionamento ocorrerá a partir do ELU e posteriormente verificação das tensões no ELS. Para o dimensionamento de peças protendidas no ELU as hipóteses de cálculo segue as mesma para o concreto armado que estão descritas no item 17.2 da NBR 6118:2003. Resumidamente tem se seguir as hipóteses: a) Em peças isostáticas deve-se considerar, além das solicitações que a peça teria se não fosse protendida, o efeito das ancoragens, mudanças de direção dos cabos de protensão e os valores destas considerados com suas perdas; b) Nas estruturas hiperestáticas além das solicitações citadas anteriormente os efeitos hiperestáticos de protensão; c) As seções transversais resistentes são compostas pelas seções de concreto, da armadura de protensão e de eventual armadura passiva existente e não é necessário reduzir, no cálculo dos esforços normais, a área dos furos correspondentes às bainhas dos cabos de protensão, se esta área não ultrapassa 2% da área da seção transversal geométrica da peça; d) As resistências de cálculo no escoamento e na ruptura da armadura são dadas por fpyd= fpyk/1,15 e fptd= fptk/1,15, respectivamente. 28 4.2 4.2.1 SEÇÃO RETANGULAR FUNDAMENTOS TEÓRICOS O dimensionamento da seção retangular em protendido utiliza o diagrama parábolaretângulo e considera o domínio 2 subdividido de 2a e 2b. O sub-domínio 2a corresponde à deformação do concreto até -2‰ e o sub-domínio 2b indo de -2‰ ao limite de -3,5‰. Os domínios de deformações podem ser caracterizados pelo coeficiente KX, que determina a altura da linha neutra, pela relação abaixo: Kx cd x cd sd d (4.1) cd é a deformação específica de cálculo do concreto, sd é a deformação específica de cálculo do aço, x a altura da linha neutra e d a altura útil de concreto. Em Santos (1983), apresenta-se as equações constitutivas do concreto correspondentes ao diagrama parábola-retângulo. Kx lim é o parâmetro que define o limite do domínio 3 e 4. Sub-domínio 2a: 0 Kx 1 6 5k x2 (3 8k x ) d 3(1 k x ) 2 kz 12 9k x (4 k x ) 4(3 8k x ) (4.2) (4.3) (4.4) Sub-domínio 2b: 1 Kx 3,5 6 13,5 (4.5) 16k x 1 15 (4.6) d 171k x2 342k x 21 kz 20(16k x 1) Domínio 3: (4.7) 29 3,5 Kx Kx lim 13,5 d 17k x 21 kz 1 99k x 238 (4.8) (4.9) (4.10) Domínio 4: Kx Kx lim d 17k x 21 kz 1 99k x 238 (4.11) (4.12) (4.13) O momento resistido pela seção pode ser considerado como a resultante de compressão no concreto multiplicada pelo braço de alavanca, ou seja: M Rcc z (4.14) Rcc d cd bw d (4.15) z kz d (4.16) Das equações 4.15 e 4.16 em 4.14 tem-se: M Rcc z d . cd .bw .d .k z .d d .k z . cd .bw .d 2 (4.17) M d .k z cd .bw .d 2 (4.18) Assim, dos valores de k x limites expressos por meio da equação 4.18 aplicados às equações dos parâmetros adimensionais d e k z , tem que: Sub-domínio 2a: 0 d k z 0,1041667 Sub-domínio 2b: 0,1041667 d k z 0,1872428 Domínio 3: 0,1872428 d k z d ,lim k z ,lim Domínio 4: d k z d ,lim k z ,lim 30 em que d ,lim 17 99 k x ,lim e k z ,lim 1 k x ,lim 21 238 Desta forma, conhecidos o valor de M , pode-se determinar qual domínio de cd .bw .d 2 deformação se encontra a seção, por meio da comparação com as inequações apresentadas acima. E ainda, por um processo numérico, determinar o k x , já que d e k z são expressos em função dele. Obtendo-se o valor de k x , obtêm-se as deformações no aço e no concreto. Se domínio 2 (a ou b) tem-se cd kx 1 kx 0.010 e sd 0.010 se domínio 3, sd 0.0035 1 kx kx e cd 0.0035 . Uma vez determinado o valor da deformação sd , busca-se o valor de p , que é a deformação de protensão obtida em função da tensão no tempo infinito. A referida tensão é aquela aplicada nas cordoalhas descontadas as perdas ao longo do tempo. A deformação total do aço é obtida pela seguinte soma: t sd p (4.19) Com o valor de t , utiliza-se Tabela 7 para encontrar por interpolação o valor da tensão utilizada para determinação da armadura da seção, sd . Conhecido o valor do k z , calcula-se a armadura: Tabela 7: Tensão no aço sd (MPa) (%o) 5,25 CP175 1025 CP190 1025 (%o) 20,00 CP175 1407 CP190 1527 Ap 6,794 7,438 8,167 9,000 9,962 10,00 12,50 15,00 17,5 1264 1316 1344 1365 1368 1368 1378 1388 1397 1314 1411 1459 1482 1486 1486 1496 1507 1517 22,50 1416 1538 Md K z d sd 25,00 1426 15,48 27,5 1436 1559 30,00 1445 1569 32,50 1455 1579 35,00 1464 1590 37,50 14,74 1600 40,00 1484 1611 (4.20) Quando da protenção, a única ação existente no elemento protendido é o peso próprio. Isso pode implicar em tração nas fibras superiores das peças que, se inferiores a 31 1,2 fct,m , podem ser admitidas desde que se coloque armadura passiva. No estado limite último no ato da protensão, as tensões de compressão nas fibras inferiores não podem superar o limite de 0,7 fckj, sendo o fckj a resistência prevista do concreto na data da aplicação da protensão. No caso da existência de tração com valor superior ao limite de 1,2 fct,m , pode-se utilizar cabos na face superior para reduzir a tração ao limite ou a zero. No caso de redução da tração para um valor admissível e diferente de zero, pode-se considerar os cabos de protensão como parte ou totalidade da quantidade de armadura passiva necessária, já que as tensões nos cabos são baixas. 4.3 4.3.1 SEÇÃO TÊ FUNDAMENTOS TEÓRICOS Para as seções de formato T, utilizou-se do diagrama bloco-retangular para a programação, pois julgou-se desnecessário a busca por um rigor que seria facilmente mascarado pelas imprecisões na determinação da largura de mesa colaborante, de forma que o cálculo em vez de mais preciso, se tornaria apenas mais trabalhoso. Analogamente ao explicado para as seções retangulares tem-se: M d Fc z (4.21) Fc 0,85 f cd b w 0,8 x (4.22) z d 0,4 x (4.23) M d 0,68 x d 0,272 x 2 b w f cd (4.24) 2 Dividindo-se ambos os membros da equação 4.24 por bw d f cd tem-se: Md 0,68 x d 0,272 x 2 bw f cd x x2 0 , 68 0 , 272 bw d 2 f cd bw d 2 f cd d d 2 (4.25) Fazendo: Md = KMD bw d 2 f cd e x KX d a equação 4.25 torna-se: (4.26) (4.27) 32 KMD 0,68 (KX) 0,272 (KX) 2 (4.28) Deste modo, pode-se encontrar o valor de KX resolvendo-se a equação de segundo grau acima. Nas seções de formato T, duas possibilidades devem ser consideradas: funcionamento como seção retangular ou como seção T, propriamente dito. A análise da posição da linha neutra, passando na mesa ou na alma, mostrará qual seção deve ser considerada nos cálculos. Nas situações em que a linha neutra passa pela alma da seção, o cálculo se dá em duas etapas, como mostra a Figura 1 a seguir: calcula-se inicialmente o momento resistido pelas abas; o momento restante é absorvido pela nervura (alma). Figura 1: Seção "T" dividida em duas seções retangulares Fonte: Carvalho e Figueiredo (2007) Obtido o valor de KX, pode-se encontrar a deformação no aço e de forma análoga ao apresentado para seções retangulares, calcular a armadura necessária. As considerações sobre a verificação no ato da protensão são iguais as apresentadas nos fundamentos teóricos das seções retangulares. 4.4 4.4.1 SEÇÃO GENÉRICA FUNDAMENTOS TEÓRICOS O dimensionamento da armadura longitudinal de uma seção qualquer consiste em um processo interativo, a qual variando a posição da linha neutra ao longo da seção calculase o momento resistente (Mu) e caso este seja maior ou igual ao momento de calculo (Md), tem-se a solução da posição da linha neutra. Conhecida a linha neutra e a força resultante de compressão determina a área de aço (Ap). O cálculo de armadura Ap de uma seção qualquer pode ser feita por iterações. O procedimento é feito fazendo a divisão da seção transversal em elementos com pequenos 33 valores de altura que serão chamadas de tiras. Um exemplo de seção deste tipo é dado na Figura 2 e sua discretização é indicada na Figura 3. Figura 2: Seção com geometria qualquer e armadura Ap Ap No passo posterior os trechos são transformados em retângulos. Figura 3: Seção da figura dividida em tiras e pedaço da tira transformada em retângulo Depois disto é possível considerar diversas posições de linha neutra como as indicadas na Figura 4. Figura 4: Posições de linha neutra para a seção dada 34 Para cada posição de linha neutra x calcula para cada tira (retângulo) comprimido o valor de deformação do concreto c, m no seu ponto médio (de altura) e através deste calcula c correspondente e a força Fci correspondente desta tira (equação 4.29). Fci bw,i hi ci (4.29) O valor c e obtido de forma condicional. Para isto inicialmente fixa-se o valor de si 0,01 calcula-se ci , (Equação 4.30). Caso o valor de ci 0,002 calcula-se ci (Equação 4.32), caso ci 0,002 a tensão ci é calculada conforme a (Equação 4.35). Até o presente a seção trabalha no domínio 2a ou 2b. Caso ci 0,0035 tem se a seção no domínio 3 e neste caso fixa ci 0,002 e calcula-se si 0,01 (Equação 4.37) a tensão no concreto mantem constante. Por ultimo pode se ter si s ,lim , s ,lim e calculado conforme (Equação 4.42), corresponde a seção no domínio 4. Abaixo tem as deformações e tensões no concreto para cada domínio. Domínio 2a: ci s x (x d ) 0 c 0,002 (4.30) s 0,01 (4.31) 2 cm ci 0,85 f cd 1 1 0,002 (4.32) Domino 2b: ci s x (x d ) 0,002 c 0,0035 (4.33) s 0,01 (4.34) ci 0,85 f cd (4.35) Domino 3: c 0,0035 si c ( d x) x (4.36) 0,01 s s ,lim (4.37) 35 ci 0,85 f cd (4.38) Domínio 4: c 0,0035 si (4.39) c (d x) x s s ,lim ci 0,85 f cd (4.40) (4.41) Sedo s ,lim dado por: s ,lim c (1 x lim) d x lim d (4.42) A distância do centro desta tira até o cg da armadura é conhecida e chamada de zi. Assim, já é possível calcular a parcela de momento resistente devido esta tira. M R Fci zi (4.43) Depois disto, basta repetir a operação para todos os retângulos comprimidos que se obterá a resultante de força de compressão e o momento resistido dado pelas equações (4.31 e 4.32) respectivamente. Fc F i 1..n MR M i 1..n (4.44) ci Ri (4.45) Estes correspondem a uma posição de linha x. Para cada posição de linha neutra existirá um valor de Fc e um valor de momento resistido de MR. Caso M R M d a linha neutra em questão é solução do problema e o valor da armadura é dada pela equação abaixo. AP Fc pd (4.46) 36 5. 5.1 C APÍTULO APRESENTAÇÃO DA TELA PRINCIPAL DO PROGRAMA O programa, produto deste trabalho, tem como objetivo o cálculo da armadura longitudinal em seções de concreto protendido, com forma retangular, Te e seção genérica, submetidas à flexão normal. Para atingir o objetivo, adotou-se o procedimento de cálculo agrupando os assuntos nos tópicos apresentados logo abaixo: Área de armadura ativa; Momento resistente no estado limite último; Verificação do estado limite de serviço no tempo zero e no tempo infinito; Características no estádio I e II; Momento de fissuração. Portanto, para cada tipo de seção os procedimentos de cálculos abordam os assuntos dos tópicos acima. Diante disto a apresentação inicial do programa ocorre como mostra a Figura 5, onde tem se os ícones “botões” que faz a ligação com outras janelas (interfaces). 37 Figura 5: Tela principal do programa Fonte: Do autor (2012) Há consideração de implementar novas seções ou comandos, o que possivelmente pode ser feito editando o formulário que representa a interface desejada. Isto permite um fluxo continuo de melhorias no programa. 5.2 SEÇÃO RETANGULAR Quando o usuário ao clicar com o botão do mouse no ícone ELU correspondente a seção retangular tem se a janela ilustrada na Figura 6. Nela são inseridos os dados necessários para o cálculo e posteriormente ao se clicar no ícone “calcular” a rotina retorna como resultados: o momento de cálculo, o momento resistente da seção, domínio considerando x necessária. d lim Com como o limite entre o domínio 3 e 4 e finalmente o valor da área de aço a análise destes valores o projetista consegue rapidamente dimensionamento a seção. A fim de exemplificar melhor o funcionamento do programa, Figura 6: Interface para cálculo no ELUFigura 6, faz-se a resolução do seguinte problema. Qual a armadura necessária para uma seção com base bw= 0,70m altura útil dt= 1,45m resistência característica do concreto fck= 30 MPa aço CP190 e tensão σinfito= 1000MPa considerando o carregamento permanente de 3540 kN. m e acidental de 2798kN.m? 38 Figura 6: Interface para cálculo no ELU seção retangular Dados de Saída Dados de entrada Verificação tempo Zero e infinito Fonte: Do autor (2012). Considerando a perda inicial de 5% e total de 26%, a área de aço calculada foi de 54cm², sendo a altura mínima de 1,36m a qual esta próxima da altura adotado no inicio do cálculo de 1,45m. Com isso conclui-se que a seção esta dimensionada considerando melhor situação que e o domínio 3. Depois de feita a análise dos resultados faz-se então a verificação no ELS. Esta ocorre em dois momentos distintos. A primeiro, verificação no tempo zero, faz consideração ao momento posterior a ação da protensão, sendo considerado apenas o carregamento devido ao peso próprio e as perdas imediatas. Já a segunda, verificação no tempo infinito, refere-se ao momento em todos os carregamentos estejam efetivamente agindo sobre a seção considerando também todas as perdas (perdas imediatas mais as perdas diferidas). Neste trabalho as perdas, imediatas e diferidas, são valores que o usuário deverá fornecer podendo ser implementado em outro momento uma rotina que faz este cálculo. Isto resultaria em um programa preciso que através do método de calculo interativo, resultaria valores precisos. 39 5.2.1 VERIFICAÇÃO NO TEMPO ZERO A verificação no tempo zero corresponde ao momento em que seção esta submetida apenas aos esforços do peso próprio. Neste caso, quando da protensão o concreto com a resistência fictícia deverá ter resistência tal que não cause compressão excessiva (esmagamento do concreto) ou esforços de tração na peça. Caso tenha-se esforço de tração e esta esteja dentro do limite, pode-se como medida de controle fazer o calculo de armadura passiva para combater o surgimento da fissura. Caso tensão de tração seja superior como medida de controle pose-se alterar a dimensões da seção ou ainda pode considerar o efeito de um cabo de protensão na parte superior eliminando assim a tração. No exemplo as tensões que sugiram na seção foram inferiores a tensão limite estando, portanto a seção verificada em vazio. 5.2.2 VERIFICAÇÃO NO TEMPO INFINITO A norma estabelece quais os estados limites devem ser atendidos levando em consideração a classe de agressividade ambiental (CAA) e o sistema de protensão (pós ou pré- tração). Com a entrada destes dados o programa retorna de forma resumida quais as verificações e consequente combinação deve ser atendida. No exemplo, Figura 7, o programa verificou a o ELS-F (Estado Limite de Formação de Fissura) com a combinação frequente e o ELS-D (Estado Limite de descompressão) para a combinação quase permanente. Com a análise dos resultados conclui-se que para o ELS-F as tensões surgidas então dentro dos limites assim como para o ELS-D. Na parte inferior esquerda da tela do programa apresenta a informação fornecida pelo programa que confere o status da seção. No caso do exemplo a seção está verificada e atende ao ELS no tempo infinito e no tempo zero, assim como no ELU. 40 Figura 7: Verificação no ELS no tempo infinito Análise dos resultados Dados de entrada Fonte: Do autor (2012). Para a seção Te, a apresentação do programa e similar ao da seção retangular, portando não será feita apresentação das telas do programa. Também a forma de entrada dos dados ocorre como o da seção retangular inicialmente informa a geometria da seção e as propriedades mecânicas e física do concreto e aço resultando na área de aço e posteriormente faz a verificações no tempo zero e posteriormente no tempo infinito. 5.3 SEÇÃO GENÉRICA Para o calculo da armadura longitudinal de uma seção genérica, o usuário deverá informar a quantidade de retângulos a qual discretiza a seção. Cabe ressaltar que quanto maior a quantidade de retângulos maior será a precisão do cálculo. Apesar de se fazer o calculo de seções genéricas, o programa também faz o cálculo de seções retangulares e Te, bastando que sejam informados 1(um) ou 2 (dois) retângulos na entrada dos dados. No processamento, a rotina faz a divisões de cada retângulo em novos retângulos com altura não superior a 0,5 cm. Isso quer dizer que a linha neutra varia em torno de 0,5 cm. Com a linha neutra variando de 0,5 cm o procedimento de cálculo consiste na 41 determinação momento resistente para cada posição de linha neutra, sendo no instante em que o momento resistente seja igual ou maior que o momento atuante tem se a solução. Para melhor compreensão do programa faz-se o dimensionamento do seguinte exemplo adaptado de Faleiros Junior. Calcular a área de aço necessária para a laje alveolar com h=20cm simplesmente apoiada com vão livre de 6m . Considera-se Fck=30MPa; CP190RB; Mg1=16,07; Mg2=18,27; Mqmax=28,13. Abaixo Figura 8, tem-se a seção. Figura 8: Seção geometrica e propriedades - laje alveolar Fonte: Faleiros Junior. Na Figura 9 tem a interface do programa com dados com dados inseridos e os resultados. Figura 9: Interface para cálculo no ELU seção genérica Dados de entrada RESULTADOS = 0,035 m 42 Na parte superior tem se os dados de entrada e nos demais campos têm os dados processados e os resultados. No centro tem se os dados referente a linha neutra na posição 0,035m: Deformação média no concreto (Ec) - valor da deformação do concreto considerando o centro de aplicação da força no centro de gravidade de cada uma das tiras, retângulos; Tensão no concreto ( ci ) – valores da tensão calculada de acordo o descrito no fundamento teórico Cap4; Força resistente de compressão ( Fci ) – obtida através da multiplicação de ci Areai . O somatório de Fci será apresentado em F resultante na posição da linha neutra igual a 0,035; Momento resistente ( M Ri ) – obtido pela multiplicação de M R Fci z i . O somatório de M Ri será o valor do momento resultante da seção e também a condição em que quando maior que o momento atuante tem a solução da seção; Fresult e Mresult – São os somatórios de Fci e M Ri para cada posição de linha neutra. No exemplo para LN = 0,035 tem se Mr = 97,116 kN.m. Os dados acima são meramente para analise do processamento interno do programa. Por ultimo tem se os resultados esperados, sendo apresentado o domínio da seção o momento de calculo resistente e resistente máximo (quando LN esta no limite entre os domínios 3 e 4) a precisão do calculo a tensão no aço posição da linha neutra e a área de aço necessária que no exemplo e de 3,44 cm². 5.4 CARACTERÍSTICAS DA SEÇÃO O programa faz o cálculo das características de sacão retangular e em Tê, considerando os estádios I, estádio I homogêneo e estádio II. O estádio I compreende a seção no estado bruto, ou seja, é desconsiderada a presença da área de aço na seção bem como o efeito da fissuração. Já no estádio I homogêneo é considerado a área de aço na seção, resultando valores superiores ao do estádio I. O estádio II faz a consideração do efeito da fissuração, ou seja, uma vez que a seção esteja submetida esforço de momento superior ao momento resistente de fissuração, a peça fissura. Para a consideração deste efeito é desconsiderada área de concreto a na 43 região tracionada (parte da seção fissurada) resultando em valores de área e inércia inferior aos do estádio I. Na Figura 10 é apresentada a interface do programa com os campos devidamente preenchidos e resultados retornado pelo programa. Figura 10: Interface características da seção Fonte: Do autor (2012). 44 6. 6.1 CAPÍTULO CONSIDERAÇÕES FINAIS Mostrou-se que o dimensionamento de seções protendidas, principalmente seções genéricas, e uma tarefa extremamente trabalhosa para ser realizada na mão, visto que que são inúmeras as variáveis e também as condições que devem ser atendidas. Portanto a utilização deste programa tem uma grande importância na precisão de resultados e também na minimização de tempo na elaboração de projetos. O programa oferece uma interface intuitiva facilitando o entendimento e entrada dos dados necessários. Também adverte o usuário em situações que o calculo não e atendido melhorando assim a compreensão da analise dos resultados. Como sugestão para trabalhos futuros pode se feito o modulo para calcular as perdas inicial e final e compara com os valores atribuídos nesta programa. Isso possibilitaria o dimensionamento de uma seção com todos os dados previamente calculados. 45 7. REFERÊNCIAS CARVALHO, R. C. Estruturas em concreto protendido: cálculo e detalhamento. 2010. São Paulo. Pini, 2012. FALEIROS JUNIOR, J. H. Procedimentos de cálculos, verificação e detalhamento de armaduras longitudinais na seção transversal em elementos protendidos. 2010. 179 F. Dissertação (Mestrado) - Universidade Federal de São de Carlos, São Carlos. FRANÇA, R. L. S., ISHITANI, H.; GRAZIANO, F. Concreto protendido: conceitos fundamentais. São Paulo: USP/ Escola Politécnica/ Departamento de Engenharia de Estruturas e Fundações, 2004. Revisão1. INFORSATO, T. B. Consideração sobre o projeto cálculo e detalhamento de vigas préfabricadas protendidas com aderência inicial em pavimentações de edificações. 2009. Dissertação (Mestrado) - Universidade Federal de São Carlos, São Carlos. MADARÁS, E. Curso de concreto protendido. 1973 v.1. Departamento de Engenharia Civil/ Universidade Santa Cecília dos Bandeirantes. Santos. SCHIMID, M. R. L. Um pouco da história do uso do aço no concreto protendido no Brasil e no mundo. IBRACON- Aço na construção civil, Rio de Janeiro, p. 50-55, 2008. VASCONCECELOS, A. C. Manual prático para a correta utilização dos aços no concreto protendido em obediência as normas utilizadas. Belo Horizonte: Livros técnicos e científicos; Companhia Siderúrgica Belgo- Mineira 1980. 46 8. BIBLIOGRAFIA COLLINS, M. P. Prestressed concrete structures. Ontario: Response, 1997. KLEIN, R. Dimensionamento por computador de vigas simplesmente apoiada de concreto protendido pós-tracionada. 2002. Dissertação (Mestrado) - Universidade Federal de Santa Catarina, Florianópolis. MELO, C. E. G. Manual munte de projetos pré-fabricados de concreto. São Paulo: Pini, 2004. MELLO, A. L. V. Calculo de lajes lisas com protenção parcial e limitada. 2005. 128 p. Dissertação (Mestrado) - Universidade Federal de São Carlos, São Carlos. NAWY, E. G. Prestressed concrete. 2 Ed. New Jersey. 1995. PRECAST CONCRETE INSTITUTE/ PRESTRESSED - PCI-2004: PCI design handbook precast and prestressed concrete. 6. Ed. Chicago, 2004. ROCHA, A. M. Novo curso prático de concreto armado e concreto protendido. 2. Ed. Rio de Janeiro: Científica, 1972. SANTOS, L. M. Calculo de concreto armado. Vol. 1. São Paulo, 1977. VERRÍSSIMO, G. S.; CESÁR JR.; KLÉOS M. L. Concreto protendido- fundamentos básicos e perdas de protenção. 4. Ed. Viçosa: Universidade Federal de Viçosa, 1998. 47 9. 9.1 ANEXO FORMULÁRIO - TELA PRINCIPAL unit Unit5; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls; type TForm5 = class(TForm) Panel1: TPanel; Panel2: TPanel; BitBtn2: TBitBtn; Panel3: TPanel; Panel4: TPanel; Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; Memo1: TMemo; GroupBox1: TGroupBox; Label1: TLabel; Label2: TLabel; Image2: TImage; Image3: TImage; Button5: TButton; Button6: TButton; Panel5: TPanel; StatusBar1: TStatusBar; Timer1: TTimer; procedure Button1Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button5Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form5: TForm5; implementation uses UniCOP, Unit2, Unit3, Unit6, Unit8; {$R *.dfm} procedure TForm5.Button1Click(Sender: TObject); begin Application.CreateForm(TForm1, Form1); Form1.ShowModal; Form1.Free; end; procedure TForm5.Button3Click(Sender: TObject); begin Application.CreateForm(TForm2, Form2); Form2.ShowModal; Form2.Free; end; procedure TForm5.Button4Click(Sender: TObject); begin Application.CreateForm(TForm2, Form2); Form2.ShowModal; Form2.Free; end; procedure TForm5.Button5Click(Sender: TObject); begin Application.CreateForm(TForm8, Form8); Form8.ShowModal; Form8.Free; end; procedure TForm5.FormCreate(Sender: TObject); begin StatusBar1.Panels[1].Text:= 'HORA: '+timetostr(time); StatusBar1.Panels[2].Text:= 'DATA: '+datetostr(date); end; procedure TForm5.Button2Click(Sender: TObject); begin Application.CreateForm(TForm6, Form6); Form6.ShowModal; Form6.Free; end; end. 9.2 FORMULÁRIO - ESTADO LIMITE ULTIMO (ELU) unit UniCOP; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm1 = class(TForm) Panel1: TPanel; Panel2: TPanel; 48 Label1: TLabel; edtmg1: TEdit; edtmqmax: TEdit; ComboBox1: TComboBox; edtbw: TEdit; ComboBox2: TComboBox; edth: TEdit; edtdt: TEdit; edtfck: TEdit; edtpi: TEdit; edtpt: TEdit; edtmg2: TEdit; edtmqmin: TEdit; Panel3: TPanel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Label7: TLabel; Label8: TLabel; Label10: TLabel; Label11: TLabel; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label9: TLabel; Label24: TLabel; Label28: TLabel; Label29: TLabel; Label31: TLabel; Label33: TLabel; Label21: TLabel; Label22: TLabel; Label23: TLabel; Label25: TLabel; BitBtn1: TBitBtn; Label26: TLabel; Label15: TLabel; edtgamac: TEdit; Label16: TLabel; Label17: TLabel; BitBtn2: TBitBtn; ComboBox3: TComboBox; ComboBox4: TComboBox; ComboBox5: TComboBox; ComboBox6: TComboBox; edtsigmapmax: TEdit; Label20: TLabel; edtsigmapescolhido: TEdit; Label27: TLabel; Label30: TLabel; Label32: TLabel; Button1: TButton; edtNOTA: TEdit; Label18: TLabel; edtEPSS: TEdit; edtKX: TEdit; edtKZ: TEdit; edtsigmapd: TEdit; edtet: TEdit; edtasp: TEdit; Label35: TLabel; Label36: TLabel; Label37: TLabel; Label38: TLabel; Label39: TLabel; Label41: TLabel; Label34: TLabel; Label40: TLabel; Label42: TLabel; Label43: TLabel; Label44: TLabel; Label45: TLabel; Label47: TLabel; Label46: TLabel; Button2: TButton; Bevel5: TBevel; Bevel6: TBevel; GroupBox1: TGroupBox; ComboBox7: TComboBox; edtmpp: TEdit; edtexc: TEdit; Label48: TLabel; Label49: TLabel; Label50: TLabel; Label51: TLabel; Button5: TButton; edtDMIN: TEdit; Label52: TLabel; Label53: TLabel; edtfcj: TEdit; Label54: TLabel; Label55: TLabel; edtNOTA2: TEdit; edttenss: TEdit; edttensi: TEdit; Label56: TLabel; Label57: TLabel; Button4: TButton; Label68: TLabel; Label69: TLabel; Label19: TLabel; Label70: TLabel; Label73: TLabel; Label74: TLabel; Label75: TLabel; Label76: TLabel; Label6: TLabel; Label77: TLabel; Label78: TLabel; Label79: TLabel; Label80: TLabel; Label81: TLabel; Label82: TLabel; edtmdmax: TEdit; Label71: TLabel; Label83: TLabel; edtmd: TEdit; Label84: TLabel; Label85: TLabel; 49 Label60: TLabel; edtlims: TEdit; edtlimi: TEdit; Label58: TLabel; Label59: TLabel; Label61: TLabel; Button3: TButton; edtASlinha: TEdit; Label62: TLabel; Label63: TLabel; Label64: TLabel; ComboBox8: TComboBox; edtdlinha: TEdit; Label65: TLabel; Label66: TLabel; edtAplinha: TEdit; Label67: TLabel; Label72: TLabel; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox4Change(Sender: TObject); procedure ComboBox5Change(Sender: TObject); procedure ComboBox6Change(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure ComboBox3Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure ComboBox7Change(Sender: TObject); procedure Button5Click(Sender: TObject); procedure ComboBox8Change(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; sigmapmax,fptk,KXLIM,KX,KZ,DMIN,MDLIM, MDLIMs,gamac:real; bw,fck,h,dt,gamafg1,gamafg2,gamafq,sigmap:real; MD,MDs,mg1, mg2, mqmax,mqmin, pi,pt,A:real; Asp,et,exc,EPSC,EPSS, sigmap0, sigmapd, sigmapi:real; I,Wi,Ws,Wi2,Ws2,sigmapt0,Np,Npp,prot, tenss,tensi,limi,lims,tensslinha,fcj:real; AplinhaminC, AplinhaminT:real; E:array[1..19]of real; CP190:array[1..19]of real; CP175:array[1..19]of real; k:integer; x,Rt,xi:real; Aslinha, dtlinha, Aplinhamax,Aplinhamin:real; function DuasDecimais(a:real):real; function TresDecimais(b:real):real; function QuatroDecimais(c:real):real; implementation uses Unit4, Unit2, Unit3; {$R *.dfm} function DuasDecimais(a:real):real; begin a:=a*100; a:=round(a); a:=a/100; Result:=a; end; function TresDecimais(b:real):real; begin b:=b*1000; b:=round(b); b:=b/1000; Result:=b; end; function QuatroDecimais(c:real):real; begin c:=c*10000; c:=round(c); c:=c/10000; Result:=c; end; procedure TForm1.BitBtn1Click(Sender: TObject); begin close; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin close; end; procedure TForm1.ComboBox1Change(Sender: TObject); begin begin if combobox1.Text= 'CP190' then begin fptk:= 1900; combobox3.enabled:=true; end; end; begin if combobox1.Text= 'CP175' then begin combobox3.enabled:=true; fptk:= 1750; end; end; end; procedure TForm1.ComboBox4Change(Sender: TObject); 50 begin if combobox4.text='1,3' then gamafg1:=1.3 else if combobox4.text='1,4' then gamafg1:=1.4 else gamafg1:=strtofloat(combobox4.text); end; procedure TForm1.ComboBox5Change(Sender: TObject); begin if combobox5.text='1,5' then gamafg2:=1.5 else if combobox5.text='1,3' then gamafg2:=1.3 else if combobox5.text='1,4' then gamafg2:=1.4 else gamafg2:=strtofloat(combobox5.text); end; procedure TForm1.ComboBox6Change(Sender: TObject); begin if combobox6.text='1,5' then gamafq:=1.5 else if combobox6.text='1,3' then gamafq:=1.3 else if combobox6.text='1,4' then gamafq:=1.4 else gamafq:=strtofloat(combobox6.text); end; procedure TForm1.ComboBox2Change(Sender: TObject); begin begin if combobox2.Text= '0,628' then KXLIM:= 0.6283; end; begin if combobox2.Text= '0,5' then KXLIM:= 0.5; end; begin if combobox2.Text= '0,4' then KXLIM:= 0.4; end; end; procedure TForm1.ComboBox3Change(Sender: TObject); begin begin if combobox3.Text= 'Pré-tração' then begin prot:=1; if fptk=1900 then sigmapmax:=1453.5 else if fptk=1750 then sigmapmax:= 1343 end; end; begin if combobox3.Text= 'Pós-tração' then begin prot:=0; if fptk=1900 then sigmapmax:=1402.2 else if fptk=1750 then sigmapmax:= 1295 end; end; edtsigmapmax.text:= floattostr(sigmapmax); end; ////////////////////////////////////////////// procedure TForm1.Button1Click(Sender: TObject); var NETA, NETALIM, N1, N2, N3, N4, ERRO, ep: real; i,j:integer; begin bw:=StrToFloat(edtbw.Text); dt:=StrToFloat(edtdt.Text); h:=StrToFloat(edth.Text); mg1:=StrToFloat(edtmg1.Text); mg2:=StrToFloat(edtmg2.Text); mqmax:=StrToFloat(edtmqmax.Text); mqmin:=StrToFloat(edtmqmin.Text); fck:=StrToFloat(edtfck.Text); gamac:=StrToFloat(edtgamac.Text); pi:=strtofloat(edtpi.Text); pt:=strtofloat(edtpt.text); sigmapi:=strtofloat(edtsigmapescolhido.text); A:=bw*h; MD:=mg1*gamafg1+mg2*gamafg2+mqmax*gama fq; NETALIM:=(17/21)*KXLIM*(1(99/238)*KXLIM); MDLIM:=NETALIM*0.85*fck*1000/gamac*bw*s qr(dt); DMIN:=sqrt(MD/(bw*NETALIM*0.85*fck*1000/ gamac)); DMIN:=DuasDecimais(DMIN); edtDMIN.text:=floattostr(DMIN); MDs:=duasdecimais(MD); edtmd.Text:=floattostr(MDs); MDLIMs:=duasdecimais(MDLIM); edtmdmax.Text:=floattostr(MDLIMs); panel3.Visible:=false; edtmpp.Text:=' '; edtexc.Text:=' '; edtfcj.Text:=' '; edtNOTA2.Text:=' '; if MD>MDLIM then BEGIN edtNOTA.Text:='Domínio 4: aumente o d'; edtEPSS.text:=' '; edtKX.Text:=' '; edtsigmapd.Text:=' '; 51 edtKZ.Text:=' '; edtet.Text:=' '; edtAsp.Text:=' '; end else Begin NETA:= MD/(0.85*fck*1000/gamac*bw*sqr(dt)); ////////// Domínio 2a if (0<=NETA) AND (NETA<=0.1041667) then begin edtNOTA.Text:='Sub-domínio 2a'; N1:=0; N2:=1/6; N4:=0; ERRO:=NETA-N4; while ERRO > 0.00001 do begin N3:= (N1+N2)/2; N4:= ((5*sqr(N3)*(3-8*N3))/(3*sqr(1N3)))*((12-9*N3*(4-N3))/(4*(3-8*N3))); if N4 < NETA then N1:=N3 //N2 é mantido else N2:=N3; //N1 é mantido ERRO:=abs(NETA-N4); end; KZ:= (12-9*N3*(4-N3))/(4*(3-8*N3)); KX:=N3; EPSS:=0.010; EPSC:=KX*0.010/(1-KX); end; ///////////// Domínio 2b if (NETA>0.1041667) AND (NETA<0.1872428) then begin edtNOTA.Text:='Sub-domínio 2b'; N1:=1/6; N2:=3.5/13.5; N4:=0; ERRO:=NETA-N4; while ERRO > 0.00001 do begin N3:= (N1+N2)/2; N4:= ((16*N3-1)/15)*((342*N3-171*sqr(N3)21)/(20*(16*N3-1))); if N4 < NETA then N1:=N3 //N2 é mantido else N2:=N3; //N1 é mantido ERRO:=abs(NETA-N4); end; KZ:= (342*N3-171*sqr(N3)-21)/(20*(16*N31)); KX:=N3; EPSS:=0.010; EPSC:=KX*0.010/(1-KX); end; //////////////// Domínio 3 if (NETA>=0.1872428) AND (NETA<=NETALIM) then begin edtNOTA.Text:='Domínio 3'; N1:=3.5/13.5; N2:=KXLIM; N4:=0; ERRO:=NETA-N4; while ERRO > 0.00001 do begin N3:= (N1+N2)/2; N4:=(17/21)*N3*(1-(99/238)*N3); if N4 < NETA then N1:=N3 //N2 é mantido else N2:=N3; //N1 é mantido ERRO:=abs(NETA-N4); end; KZ:=(1-(99/238)*N3); KX:=N3; EPSC:=0.0035; EPSS:=(1-KX)*EPSC/KX; end; E[1]:=5.250 ;E[2]:=6.794 ;E[3]:=7.438 ;E[4]:=8.167 ;E[5]:=9 ;E[6]:=9.962 ;E[7]:=10 ;E[8]:=12.5 ; E[9]:=15 ;E[10]:=17.5 ;E[11]:=20 ;E[12]:=22.5 ;E[13]:=25 ;E[14]:=27.5 ;E[15]:=30 ;E[16]:=32.5 ; E[17]:=35 ;E[18]:=37.5 ;E[19]:=40 ; CP190[1]:= 1025 ; CP190[2]:= 1314 ;CP190[3]:= 1411 ; CP190[4]:= 1459 ;CP190[5]:= 1482 ; CP190[6]:=1486 ; CP190[7]:= 1486 ; CP190[8]:=1496 ;CP190[9]:=1507 ; CP190[10]:=1517 ;CP190[11]:= 1527 ; CP190[12]:=1538 ; CP190[13]:=1548 ; CP190[14]:=1559 ;CP190[15]:=1569 ; CP190[16]:= 1579 ;CP190[17]:= 1590 ;CP190[18]:=1600 ; CP190[19]:= 1611 ; CP175[1]:=1025 ;CP175[2]:=1264 ; CP175[3]:=1316 ;CP175[4]:=1344 ;CP175[5]:=1365 ;CP175[6]:=1368 ; CP175[7]:= 1368 ;CP175[8]:=1378 ;CP175[9]:=1388 ;CP175[10]:=1397 ;CP175[11]:=1407 ;CP175[12]:=1416 ; CP175[13]:=1426 ;CP175[14]:=1436 ;CP175[15]:=1445 ;CP175[16]:=1455 ;CP175[17]:=1464 ;CP175[18]:=1474 ; CP175[19]:=1484 ; sigmap0:=sigmapi*(1-pt/100); i:=1; if fptk=1900 then begin while sigmap0 > CP190[i] do i:=i+1; j:=i-1; if j<>0 then begin 52 ep:= E[j] + (sigmap0-CP190[j])*(E[i]E[j])/(CP190[i]-CP190[j]); et:=ep+EPSS*1000; end else begin ep:=sigmap0/200; //regime linear = sigmap0 < 1025 et:=ep+EPSS*1000; end; i:=1; while et > E[i] do i:=i+1; j:=i-1; if j<>0 then sigmapd:= CP190[j] - (CP190[i]CP190[j])*(et-E[j])/(E[i]-E[j]) else sigmapd:=200000*et/1000; end; i:=1; if fptk=1750 then begin while sigmap0 > CP175[i] do i:=i+1; j:=i-1; if j<>0 then begin ep:= E[j] + (sigmap0-CP175[j])*(E[i]E[j])/(CP175[i]-CP175[j]); et:=ep+EPSS*1000; end else begin ep:=sigmap0/200; //regime linear = sigmap0 < 1025 et:=ep+EPSS*1000; end; i:=1; while et > E[i] do i:=i+1; j:=i-1; if j<>0 then sigmapd:= CP175[j] - (CP175[i]CP175[j])*(et-E[j])/(E[i]-E[j]) else sigmapd:=200000*et/1000; end; EPSS:=EPSS*1000; EPSS:=TresDecimais(EPSS); edtEPSS.text:=floattostr(EPSS); et:=tresdecimais(et); edtet.text:=floattostr(et); Asp:=MD/(KZ*dt*sigmapd/10); Asp:=DuasDecimais(Asp); edtasp.text:=floattostr(Asp); sigmapd:=duasdecimais(sigmapd); edtsigmapd.text:=floattostr(sigmapd); KZ:=tresdecimais(KZ); edtKZ.Text:=FloatToStr(KZ); KX:=tresdecimais(KX); edtKX.Text:=FloatToStr(KX); end; end; /////////////////////////////////////////////////////////////////////////// ///////// procedure TForm1.Button2Click(Sender: TObject); begin panel3.Visible:=true; button5.enabled:=false; label48.Enabled:=false; label50.Enabled:=false; label49.Enabled:=false; label51.Enabled:=false; edtmpp.Enabled:=false; edtexc.Enabled:=false; edttenss.Text:=' '; edttensi.Text:=' '; edtlimi.Text:=' '; edtlims.Text:=' '; edtNOTA2.Text:=' '; end; procedure TForm1.ComboBox7Change(Sender: TObject); begin label48.Enabled:=true; label50.Enabled:=true; label49.Enabled:=true; label51.Enabled:=true; edtmpp.Enabled:=true; edtexc.Enabled:=true; button5.Enabled:=true; if combobox7.Text= 'Meio do vão' then begin mg1:=strtofloat(edtmg1.Text); edtmpp.Text:=floattostr(mg1); exc:=dt-h/2; edtexc.Text:=floattostr(exc); edtmpp.ReadOnly:=true; edtexc.ReadOnly:=true; end; if combobox7.Text= 'Outra seção (introduzir dados)' then begin edtmpp.Text:=' '; edtexc.Text:=' '; edtmpp.ReadOnly:=false; edtexc.ReadOnly:=false; end; end; procedure TForm1.Button5Click(Sender: TObject); begin fcj:=strtofloat(edtfcj.Text); mg1:=strtofloat(edtmpp.Text); exc:=strtofloat(edtexc.text); I:=(bw*h*sqr(h))/12; Wi:= 2*I/h; Ws:= Wi; Wi2:= QUATRODECIMAIS(Wi); Ws2:= QUATRODECIMAIS(Ws); 53 sigmapt0:=sigmapi*(1-pi/100); //tempo zero Asp:=strtofloat(edtasp.Text); Np:=Asp*0.1*sigmapt0; //asp em metros e sigma em kN/m2 if prot=0 then Npp:=Np*1.1 else Npp:=Np; // (+) compressão // fibras superiores tenss:= Npp/(bw*h)-Npp*exc/Ws + mg1/Ws; tensi:= Npp/(bw*h)+Npp*exc/Wi - mg1/Wi; limi:=0.7*fcj*1000; lims:=(-1)*1.2*0.3*exp(2/3*ln(fcj))*1000; tenss:= duasdecimais(tenss); tensi:= duasdecimais(tensi); limi:=duasdecimais(limi); lims:=duasdecimais(lims); edttenss.Text:=floattostr(tenss); edttensi.Text:=floattostr(tensi); edtlims.Text:=floattostr(lims); edtlimi.Text:=floattostr(limi); if tensi > limi then begin edtNOTA2.Text:='Compressão excessiva'; label62.Visible:=false; label63.Visible:=false; edtAslinha.Visible:=false; label67.Visible:=false; label72.Visible:=false; edtAplinha.Visible:=false; button3.Visible:=false; label64.Visible:=false; label65.Visible:=false; label66.Visible:=false; combobox8.Visible:=false; edtdlinha.Visible:=false; end else begin if tenss > 0 then begin edtNOTA2.Text:='Não há tração nas fibras superiores'; label62.Visible:=false; label63.Visible:=false; edtAslinha.Visible:=false; label67.Visible:=false; label72.Visible:=false; edtAplinha.Visible:=false; button3.Visible:=false; label64.Visible:=false; label65.Visible:=false; label66.Visible:=false; combobox8.Visible:=false; edtdlinha.Visible:=false; button4.Visible:=true; end; if (lims < tenss) and (tenss < 0) then begin edtNOTA2.Text:='Tensão de tração inferior a 1,2fct,m'; x:=h*(sqrt(sqr(tenss)))/(sqrt(sqr(tenss))+ tensi); Rt:=x*bw*(sqrt(sqr(tenss)))/2; Aslinha:= Rt/(25/1.15); //250 MPa Aslinha:=DUASDECIMAIS(Aslinha); edtASlinha.Text:= floattostr(Aslinha); label62.Visible:=true; label63.Visible:=true; edtAslinha.Visible:=true; label67.Visible:=false; label72.Visible:=false; edtAplinha.Visible:=false; button3.Visible:=false; label64.Visible:=false; label65.Visible:=false; label66.Visible:=false; combobox8.Visible:=false; edtdlinha.Visible:=false; button4.Visible:=true; end; if tenss < lims then begin edtNOTA2.Text:='Alterar seção ou colocar cabos superiores'; label64.Visible:=true; label65.Visible:=true; label66.Visible:=true; edtdlinha.Visible:=true; combobox8.Visible:=true; label62.Visible:=false; label63.Visible:=false; edtASlinha.Visible:=false; label67.Visible:=false; label72.Visible:=false; edtAplinha.Visible:=false; button3.Visible:=false; end; end; end; procedure TForm1.ComboBox8Change(Sender: TObject); begin if combobox8.Text='Não Permitir Tração' then begin dtlinha:=strtofloat(edtdlinha.Text); AplinhaminC:=(Npp*exc/Ws - Npp/(bw*h)mg1/Ws)/(sigmapt0*1000/(bw*h)+sigmapt0*1000/ Ws*(h/2-dtlinha)); Aplinhamin:=AplinhaminC*10000; button3.Visible:=true; end else begin dtlinha:=strtofloat(edtdlinha.Text); AplinhaminT:=(lims + Npp*exc/Ws Npp/(bw*h)mg1/Ws)/(sigmapt0*1000/(bw*h)+sigmapt0*1000/ Ws*(h/2-dtlinha)); 54 Aplinhamin:=AplinhaminT*10000; button3.Visible:=true; end; end; procedure TForm1.Button4Click(Sender: TObject); begin Application.CreateForm(TForm2, Form2); Form2.edtmg1.Text:=edtmg1.Text; Form2.edtmg2.Text:=edtmg2.Text; Form2.edtmqmax.Text:=edtmqmax.Text; Form2.edtmqmin.Text:=edtmqmin.Text; Form2.edtfck.Text:=edtfck.Text; Form2.edtpt.Text:=edtpt.Text; Form2.edtap.Text:=edtasp.Text; Form2.edtexc.Text:=edtexc.Text; Form2.edtwi.Text:=floattostr(Wi2); Form2.edtws.Text:=floattostr(Ws2); Form2.edtA.Text:=floattostr(A); Form2.ComboBox3.Enabled:=true; if tenss < lims then // => cabos begin Form2.edtAPLINHA.VISIBLE:=true; Form2.edtAPLINHA.text:=edtAplinha.text; Form2.Label35.visible:=true; Form2.Label36.visible:=true; Form2.Label37.visible:=true; Form2.Label38.visible:=true; Form2.edtexclinha.VISIBLE:=true; end else begin Form2.edtAPLINHA.VISIBLE:=false; Form2.Label35.visible:=false; Form2.Label36.visible:=false; Form2.Label37.visible:=false; Form2.Label38.visible:=false; Form2.edtexclinha.VISIBLE:=false; end; Form2.ShowModal; Form2.Free; end; procedure TForm1.Button3Click(Sender: TObject); begin if combobox8.Text= 'Permitir Tração' then begin tensi:= Npp/(bw*h) + Npp*exc/Wi - mg1/Wi + Aplinhamin*sigmapt0*1000/(bw*h) Aplinhamin*sigmapt0*1000/Wi*(h/2-dtlinha); x:=h*(sqrt(sqr(lims)))/(sqrt(sqr(lims))+ tensi); Rt:=x*bw*(sqrt(sqr(lims)))/2; Aslinha:= Rt/(25/1.15); //250 MPa Aslinha:=DUASDECIMAIS(Aslinha); Aslinha:= Aslinha - Aplinhamin; Aplinhamin:=DUASDECIMAIS(Aplinhamin); if Aslinha < 0 then edtASlinha.Text:= '0' else edtASlinha.Text:= floattostr(Aslinha); edtAplinha.Text:=floattostr(Aplinhamin); end else begin edtASlinha.Text:= '0'; edtAplinha.Text:=floattostr(Aplinhamin); end; Label62.Visible:=true; Label63.Visible:=true; Label67.Visible:=true; Label72.Visible:=true; edtASlinha.Visible:=true; edtAplinha.Visible:=true; button4.Visible:=true; end; end. 9.3 FORMULÁRIO CARACTERÍSTICA DA SEÇÃO unit Unit8; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Buttons; type TForm8 = class(TForm) Panel1: TPanel; Panel2: TPanel; Panel3: TPanel; edtfck: TEdit; edtes: TEdit; edtAS: TEdit; edth: TEdit; edtbw: TEdit; StaticText1: TStaticText; edtd: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label6: TLabel; Label7: TLabel; Panel4: TPanel; Panel5: TPanel; edtdlinha: TEdit; Label8: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; edtA1: TEdit; edtYS1: TEdit; edtYI1: TEdit; edtI1: TEdit; edtA2: TEdit; edtYS2: TEdit; edtYI2: TEdit; edtI2: TEdit; edtA3: TEdit; 55 edtYS3: TEdit; edtYI3: TEdit; edtI3: TEdit; Label16: TLabel; edtASLINHA: TEdit; Label5: TLabel; ComboBox1: TComboBox; edtmr: TEdit; Label17: TLabel; btnA: TButton; btnYS: TButton; btnYI: TButton; btnI: TButton; StaticText2: TStaticText; BitBtn1: TBitBtn; Button1: TButton; ComboBox2: TComboBox; Image1: TImage; Image2: TImage; edtbf: TEdit; edthf: TEdit; Label18: TLabel; Label19: TLabel; StaticText3: TStaticText; Label12: TLabel; edtgamac: TEdit; Label13: TLabel; Label14: TLabel; Label15: TLabel; Edit1: TEdit; Label20: TLabel; Label21: TLabel; procedure ComboBox1Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure btnAClick(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure btnYSClick(Sender: TObject); procedure btnYIClick(Sender: TObject); procedure btnIClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form8: TForm8; fck,Ec,es,n,bw,h,Ast,Astlinha,Mr,bf,hf,d, dlinha:real; A1,A2,A3,I1,I2,I3,YS1,YS2,YS3,YI1,YI2,YI3: real; aux1, aux2:integer; c1,c2,c3, fctm, alfa:real; implementation {$R *.dfm} procedure TForm8.ComboBox1Change(Sender: TObject); begin if combobox1.Text='Simples' then begin aux1:=1; edtAS.Visible:=true; Label7.Visible:=true; Panel4.Visible:=false; Panel5.Visible:=false; edtASLINHA.visible:=false; Label5.Visible:=false; end; if combobox1.Text='Dupla' then begin aux1:=2; edtASLINHA.visible:=true; Label5.Visible:=true; edtAS.Visible:=true; Label7.Visible:=true; Panel4.Visible:=false; Panel5.Visible:=false; end; btnA.enabled:=false; btnYS.enabled:=false; btnYI.enabled:=false; btnI.enabled:=false; end; procedure TForm8.Button1Click(Sender: TObject); begin Panel4.Visible:=true; Panel5.Visible:=true; Tedit(edtA1).text:=' '; Tedit(edtA2).text:=' '; Tedit(edtA3).text:=' '; Tedit(edtYS1).text:=' '; Tedit(edtYS2).text:=' '; Tedit(edtYS3).text:=' '; Tedit(edtYI1).text:=' '; Tedit(edtYI2).text:=' '; Tedit(edtYI3).text:=' '; Tedit(edtI1).text:=' '; Tedit(edtI2).text:=' '; Tedit(edtI3).text:=' '; bw:=StrToFloat(edtbw.Text); h:=StrToFloat(edth.Text); if aux2=1 then begin //seção retangular bf:=bw; hf:=0; end; if aux2=2 then //seção Tê begin bf:=StrToFloat(edtbf.Text); hf:=StrToFloat(edthf.Text); end; if aux1=1 then //armadura simples begin Ast:=StrToFloat(edtAS.Text); end; if aux1=2 then //armadura dupla begin Ast:=StrToFloat(edtAS.Text); Astlinha:=StrToFloat(edtAslinha.Text); 56 end; //gamac:=strtofloat(edtgamac.Text); es:=StrToFloat(edtes.Text); fck:=StrToFloat(edtfck.Text); d:=Strtofloat(edtd.Text); dlinha:=StrToFloat(edtdlinha.Text); Ec:=0.85*5600*sqrt(fck); n:=es/Ec; bw:=bw*100; h:=h*100; hf:=hf*100; bf:=bf*100; d:=d*100; if hf=0 then bf:=bw; c1:=bw/2; c2:=hf*(bf-bw)+(n-1)*Astlinha+n*Ast; c3:=dlinha*(1-n)*Astlinha-d*n*Ast0.5*hf*hf*(bf-bw); YS3:=(0-c2+sqrt(c2*c2-4*c1*c3))/(2*c1); if hf<>0 then begin if YS3>hf then begin I3:=((hf*hf*hf)/12)*(bf-bw)+hf*(bfbw)*sqr(YS3-hf/2)+(bw*YS3*sqr(YS3))/3; I3:=I3+(n-1)*Astlinha*sqr(YS3dlinha)+n*Ast*sqr(YS3-d); end; if YS3<hf then begin I3:=(bf*YS3*sqr(YS3))/3+(n1)*Astlinha*sqr(YS3-dlinha)+n*Ast*sqr(YS3-d); end; end; if hf=0 then begin I3:=(bf*YS3*sqr(YS3))/3+(n1)*Astlinha*sqr(YS3-dlinha)+n*Ast*sqr(YS3-d); end; btnA.enabled:=true; fctm:= ln(0.3)+2/3*ln(fck); fctm:=exp(fctm); A1:=(bw*h + (bf-bw)*hf); YI1:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(hhf/2))/A1; YS1:=((bf-bw)*sqr(hf)/2+bw*sqr(h)/2)/A1; I1:= (bf-bw)*hf*sqr(hf)/12 + bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS1-hf/2) +bw*h*sqr(YI1-h/2); Mr:=alfa*fctm*1000*I1*0.00000001/(YI1/100); Mr:=Mr*100; Mr:=round(Mr); Mr:=Mr/100; edtmr.text:=floattostr(Mr); ////////////////////////// sub dominio 2a end; procedure TForm8.ComboBox2Change(Sender: TObject); begin Label1.Visible:= true; Label2.Visible:= true; Label3.Visible:= true; Label8.Visible:= true; edtbw.Visible:=true; edth.Visible:=true; edtd.Visible:=true; edtdlinha.Visible:=true; Tedit(edtA1).text:=' '; Tedit(edtA2).text:=' '; Tedit(edtA3).text:=' '; Tedit(edtYS1).text:=' '; Tedit(edtYS2).text:=' '; Tedit(edtYS3).text:=' '; Tedit(edtYI1).text:=' '; Tedit(edtYI2).text:=' '; Tedit(edtYI3).text:=' '; Tedit(edtI1).text:=' '; Tedit(edtI2).text:=' '; Tedit(edtI3).text:=' '; if combobox2.Text='Seção Retangular' then begin Image1.Visible:=true; Image2.Visible:=false; aux2:=1; alfa:=1.5; hf:=0; bf:=0; panel4.Visible:=false; Label18.visible:=false; Label19.visible:=false; edtbf.Visible:=false; edthf.Visible:=false; end; if combobox2.Text='Seção Tê' then begin panel4.Visible:=false; Image2.Visible:=true; Image1.Visible:=false; Label18.visible:=true; Label19.visible:=true; edtbf.Visible:=true; edthf.Visible:=true; aux2:=2; alfa:=1.2; end; btnA.enabled:=false; btnYS.enabled:=false; btnYI.enabled:=false; btnI.enabled:=false; end; procedure TForm8.btnAClick(Sender: TObject); begin A1:=(bw*h + (bf-bw)*hf); if aux1=2 then //armadura dupla begin A2:= bw*h + (bf-bw)*hf + Ast*(n-1)+ Astlinha*(n-1); A3:= bw*YS3+Ast*n+ Astlinha*(n-1); 57 end else begin A2:= bw*h + (bf-bw)*hf +Ast*(n-1); A3:= bw*YS3+Ast*n; end; A1:=A1*100; A1:=round(A1); A1:=A1/100; edtA1.Text:=FloatToStr(A1); A2:=A2*100; A2:=round(A2); A2:=A2/100; edtA2.Text:=FloatToStr(A2); A3:=A3*100; A3:=round(A3); A3:=A3/100; edtA3.Text:=FloatToStr(A3); btnYS.enabled:=true; end; procedure TForm8.btnYSClick(Sender: TObject); begin YS1:=((bf-bw)*sqr(hf)/2+bw*sqr(h)/2)/A1; if aux1=2 then YS2:=((bf-bw)*hf*hf/2+bw*h*h/2+Ast*(n1)*d)/A2 else YS2:=((bf-bw)*hf*hf/2+bw*h*h/2+Ast*(n1)*d+Astlinha*(n-1)*dlinha)/A2; YS1:=YS1*100; YS1:=round(YS1); YS1:=YS1/100; edtYS1.Text:=FloatToStr(YS1); YS2:=YS2*100; YS2:=round(YS2); YS2:=YS2/100; edtYS2.Text:=FloatToStr(YS2); YS3:=YS3*100; YS3:=round(YS3); YS3:=YS3/100; edtYS3.Text:=FloatToStr(YS3); btnYI.enabled:=true; end; procedure TForm8.btnYIClick(Sender: TObject); begin YI1:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(h-hf/2))/A1; if aux1=2 then begin YI2:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(hhf/2)+Ast*(n-1)*(h-d)+Astlinha*(n-1)*(hdlinha))/A2; YI3:=h-YS3; end else begin YI2:=(bw*(h-hf)*(h-hf)/2+(hf*bf)*(hhf/2)+Ast*(n-1)*(h-d))/A2; YI3:=h-YS3; end; YI1:=YI1*100; YI1:=round(YI1); YI1:=YI1/100; edtYI1.Text:=FloatToStr(YI1); YI2:=YI2*100; YI2:=round(YI2); YI2:=YI2/100; edtYI2.Text:=FloatToStr(YI2); YI3:=YI3*100; YI3:=round(YI3); YI3:=YI3/100; edtYI3.Text:=FloatToStr(YI3); btnI.enabled:=true; end; procedure TForm8.btnIClick(Sender: TObject); begin I1:= (bf-bw)*hf*sqr(hf)/12 + bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS1-hf/2) +bw*h*sqr(YI1-h/2); if aux1=2 then I2:= (bf-bw)*hf*sqr(hf)/12 + bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS2-hf/2) +bw*h*sqr(YS2-h/2)+Ast*(n-1)*sqr(YS2-d)+ Astlinha*(n-1)*sqr(YI2-dlinha) else I2:=(bf-bw)*hf*sqr(hf)/12 + bw*h*sqr(h)/12+(bf-bw)*hf*sqr(YS2-hf/2) +bw*h*sqr(YS2-h/2)+Ast*(n-1)*sqr(YS2-d); I1:=I1*100; I1:=round(I1); I1:=I1/100; edtI1.Text:=FloatToStr(I1); I2:=I2*100; I2:=round(I2); I2:=I2/100; edtI2.Text:=FloatToStr(I2); I3:=I3*100; I3:=round(I3); I3:=I3/100; edtI3.Text:=FloatToStr(I3); end; end. 9.4 FORMULÁRIO SEÇÃO GENÉRICA unit Unit1_Secao_Generica; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) 58 RadioButton1: TRadioButton; RadioButton2: TRadioButton; ComboBoxAco: TComboBox; edtsigmamax: TEdit; edtsigmap: TEdit; Label18: TLabel; Label19: TLabel; Label1: TLabel; Label2: TLabel; edtperdainicial: TEdit; edtperdafinal: TEdit; Button1: TButton; Label26: TLabel; Label3: TLabel; edtmg2: TEdit; edtmg1: TEdit; edtmqmin: TEdit; edtmqmax: TEdit; Label76: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; Label7: TLabel; Label9: TLabel; Label10: TLabel; Label8: TLabel; ComboBox1: TComboBox; ComboBox2: TComboBox; ComboBox3: TComboBox; Label15: TLabel; Label16: TLabel; edtmd: TEdit; Label17: TLabel; edtfck: TEdit; Label21: TLabel; edtgamac: TEdit; Label20: TLabel; Label22: TLabel; edtd: TEdit; Label23: TLabel; ComboBox4: TComboBox; Label24: TLabel; edtdiv: TEdit; Label25: TLabel; Memob: TMemo; Label27: TLabel; Memoh: TMemo; Label28: TLabel; Label29: TLabel; Memo4: TMemo; Memo5: TMemo; Label31: TLabel; Memo6: TMemo; Label32: TLabel; MemoMr: TMemo; Label33: TLabel; MemoFc: TMemo; Label34: TLabel; MemoEcdMedio: TMemo; Label35: TLabel; MemoTensaoConcreto: TMemo; Label36: TLabel; Memo1: TMemo; Label37: TLabel; Label38: TLabel; Memo2: TMemo; Label41: TLabel; edtI: TEdit; Label44: TLabel; MemoForcaResult: TMemo; MemoMomentoResult: TMemo; Label39: TLabel; Label46: TLabel; edtDiferenca: TEdit; edtLN: TEdit; edtEc: TEdit; edtEs: TEdit; Label50: TLabel; Label48: TLabel; edtMucd: TEdit; Label49: TLabel; Label51: TLabel; Label52: TLabel; Label53: TLabel; edtDominio: TEdit; edtSigmapd: TEdit; edtAp: TEdit; Label42: TLabel; Label43: TLabel; Label54: TLabel; Label30: TLabel; edtEt: TEdit; Label12: TLabel; Label13: TLabel; Label14: TLabel; Label11: TLabel; Label56: TLabel; Label57: TLabel; GroupBox2: TGroupBox; RadioGroup1: TRadioGroup; 59 GroupBox3: TGroupBox; GroupBox4: TGroupBox; Label59: TLabel; Panel1: TPanel; Label58: TLabel; Panel2: TPanel; Memo3: TMemo; Label47: TLabel; RadioGroup2: TRadioGroup; Panel3: TPanel; Label40: TLabel; GroupBox1: TGroupBox; Label45: TLabel; edtMrmaximo: TEdit; procedure ComboBoxAcoChange(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox2Change(Sender: TObject); procedure ComboBox3Change(Sender: TObject); procedure Button1Click(Sender: TObject); procedure ComboBox4Change(Sender: TObject); private { Private declarations } public { Public declarations } end; type TDeformacaoResultado = record tipo: string; dominio: string; valor: real; end; var Form1: TForm1; ndiv, i, j: integer; bw2, bw, bw11, h, area, x2, x, x11, LN, z, ycg, CG, tensaoC, Ecmed: array [1 .. 1000] of real; Esd, Ecd, Fcd, Mucd, Mrcd, Mrmaximo: array [1 .. 1000] of real; Fc, Mu, tensaoConcreto, EcdMed: array [1 .. 1000, 1 .. 1000] of real; FcSoma, MuSoma: array [1 .. 1000] of real; E: array [1 .. 19] of real; CP190: array [1 .. 19] of real; CP175: array [1 .. 19] of real; ep, et, Ap: real; somaLN, somaCG: real; d: real; LnPosicao, contador, condicao: integer; menorValor, maiorValor, diferenca: real; nrec, iout, jout, encontrou: integer; Mui, LNFinal, EcFinal: real; QDominio: array [1 .. 1000] of string; repete, k1, valor: real; nRepete, k: integer; k2: string; x1: real; result1: TDeformacaoResultado; DeformacaoArray: array [1 .. 1000] of TDeformacaoResultado; n, Percentual: real; function menor(a, b: real): real; function DuasDecimais(a: real): real; function TresDecimais(b: real): real; function CincoDecimais(b: real): real; function Deformacao(x, d, xlim: real): TDeformacaoResultado; implementation a, b, fptk: real; mg1, mg2, mqmax, mqmin, md, gamag1, gamag2, gamaq, gamac: real; fck, xlim: real; Sigmapmaximo, sigmad, sigmap0, sigmapd, perdainicial, perdafinal: real; {$R *.dfm} function menor(a, b: real): real; begin if a < b then 60 Result := a else Result := b; end; function DuasDecimais(a: real): real; begin a := a * 100; a := round(a); a := a / 100; Result := a; end; function TresDecimais(b: real): real; begin b := b * 1000; b := round(b); b := b / 1000; Result := b; end; function CincoDecimais(b: real): real; begin b := b * 100000; b := round(b); b := b / 100000; Result := b; end; function Deformacao(x, d, xlim: real): TDeformacaoResultado; var Es, Eslim, Ec, valor1: real; tipo1, dominio1: string; DeformacaoResultado: TDeformacaoResultado; begin if (x <> d ) then begin Es := 0.01; Ec := ((-1) * Es * x) / (x - d); if (Ec <= 0.002) then dominio1 := 'Dominio 2a' else dominio1 := 'Dominio 2b'; valor1 := Ec; tipo1 := 'Ec'; if (Ec >= 0.0035) then begin Ec := 0.0035; Eslim := (Ec / xlim) - Ec; Es := (Ec * (d - x)) / x; if (Es >= Eslim) then dominio1 := 'Dominio 3' else dominio1 := 'Dominio 4'; valor1 := Es; tipo1 := 'Es'; end; end; if (x = d) then begin dominio1 := 'Dominio 4'; valor1 := 0; tipo1 := 'Es'; end; with DeformacaoResultado do begin tipo := tipo1; dominio := dominio1; valor := valor1; end; Result := DeformacaoResultado; end; { **********************coeficientes de majoração************************** ** } procedure TForm1.Button1Click(Sender: TObject); begin mg1 := strtofloat(edtmg1.Text); mg2 := strtofloat(edtmg2.Text); mqmax := strtofloat(edtmqmax.Text); mqmin := strtofloat(edtmqmin.Text); md := (mg1 * gamag1) + (mg2 * gamag2) + (mqmax + mqmin) * gamaq; md := DuasDecimais(md); edtmd.Text := floattostr(md); fck := strtofloat(edtfck.Text); gamac := strtofloat(edtgamac.Text); d := strtofloat(edtd.Text); 61 sigmad := strtofloat(edtsigmap.Text); perdainicial := strtofloat(edtperdainicial.Text); perdafinal := strtofloat(edtperdafinal.Text); x[j]:=0.9*x[j]; somaLN := 0; for i := 1 to ndiv do begin // d=100 ndiv := strtoint(edtdiv.Text); /// /////////// discretização da seçao Memo1.Clear; Memo2.Clear; Memo3.Clear; MemoEcdMedio.Clear; MemoTensaoConcreto.Clear; MemoFc.Clear; MemoMr.Clear; MemoForcaResult.Clear; MemoMomentoResult.Clear; Memo4.Clear; Memo5.Clear; Memo6.Clear; for i := 1 to ndiv do begin bw2[i] := strtofloat(Memob.Lines[i - 1]); x2[i] := strtofloat(Memoh.Lines[i - 1]); end; j := 0; for i := 1 to ndiv do begin repete := x2[i] / 0.005; k1 := trunc(repete); k2 := floattostr(k1); nRepete := strtoint(k2); valor := x2[i] / nRepete; for k := 0 to (nRepete - 1) do begin j := j + 1; x[j] := valor; bw[j] := bw2[i]; end; end; ndiv := j; somaLN := somaLN + x[i]; // //10 30 60 100 LN[i] := somaLN; // Linha neutra area[i] := bw[i] * x[i]; // Area ycg[i] := x[i] / 2; // Cg //5 10 15 20 CG[i] := LN[i] - ycg[i]; z[i] := d - LN[i] + ycg[i]; // Z 80 55 20 //95 area[i] := TresDecimais(area[i]); Memo5.Lines.Add(floattostr(area[i])); LN[i] := CincoDecimais(LN[i]); Memo4.Lines.Add(floattostr(LN[i])); z[i] := TresDecimais(z[i]); Memo6.Lines.Add(floattostr(z[i])); end; /// /////// Determinacao das deformacao especifica para cada LN for i := 1 to ndiv do begin result1 := Deformacao(LN[i], d, xlim); if (result1.dominio = 'Dominio 2a') then begin QDominio[i] := 'Dominio 2a'; Esd[i] := 0.01; Ecd[i] := result1.valor; end; if (result1.dominio = 'Dominio 2b') then begin QDominio[i] := 'Dominio 2b'; Esd[i] := 0.01; Ecd[i] := result1.valor; end; if (result1.dominio = 'Dominio 3') then begin QDominio[i] := 'Dominio 3'; Esd[i] := result1.valor; Ecd[i] := 0.0035; end; 62 if (result1.dominio = 'Dominio 4') then begin QDominio[i] := 'Dominio 4'; Esd[i] := result1.valor; Ecd[i] := 0.0035; end; DeformacaoArray[i] := result1; end; /// Calcula o Mr da secao a posicao de LN /// EcdMed[1, 1] := Ecd[1] * (LN[1] CG[1]) / LN[1]; if (EcdMed[1, 1] < 0.002) then tensaoConcreto[1, 1] := (0.85 * fck * 1000) / gamac * (1 - sqr(1 - (EcdMed[1, 1] / 0.002))); if (EcdMed[1, 1] >= 0.002) then tensaoConcreto[1, 1] := (0.85 * fck * 1000) / gamac; Fcd[1] := tensaoConcreto[1, 1] * area[1]; Mucd[1] := Fcd[1] * z[1]; /// // Caso LN na primeira posicao nao resulte em Mr maior que MD if Mucd[1] < md then begin for i := 2 to ndiv do begin MuSoma[i] := 0; FcSoma[i] := 0; for j := 1 to i do begin EcdMed[i, j] := Ecd[i] * (LN[i] CG[j]) / LN[i]; if (EcdMed[i, j] < 0.002) then tensaoConcreto[i, j] := (0.85 * fck * 1000) / gamac * (1 - sqr(1 - (EcdMed[i, j] / 0.002))); if (EcdMed[i, j] >= 0.002) then tensaoConcreto[i, j] := (0.85 * fck * 1000) / gamac; Fc[i, j] := tensaoConcreto[i, j] * area[j]; FcSoma[i] := FcSoma[i] + Fc[i, j]; Fcd[i] := FcSoma[i]; // Força Resultante Mu[i, j] := Fc[i, j] * z[j]; MuSoma[i] := MuSoma[i] + Mu[i, j]; Mucd[i] := MuSoma[i]; // Resultante Momento resistente end; /// fim loop interno end; /// fim loop externo /// //////////////////////////////////////////////////////// /// obtêm o valor de Mr e a possicao da LN for i := 1 to ndiv do if (Mucd[i] < md) or (Mucd[i] = 0) then begin Mrcd[i] := Mucd[i]; Mrcd[i] := 10000000000000000; end else Mrcd[i] := Mucd[i]; menorValor := Mrcd[1]; for i := 2 to ndiv do if menorValor > Mrcd[i] then menorValor := Mrcd[i]; for i := 1 to ndiv do if (Mucd[i] = menorValor) then LnPosicao := i; // Maximo momento resistente for i := 1 to ndiv do if (QDominio[i] <> 'Dominio 4') then begin Mrmaximo[i] := Mucd[i]; end else Mrmaximo[i] := 0; maiorValor := Mrmaximo[1]; for i := 2 to ndiv do if maiorValor < Mrmaximo[i] then maiorValor := Mrmaximo[i]; 63 /// ///Escreve os valores de Mr e Fc tensao e deformacao for i := 1 to ndiv do begin Ecd[i] := CincoDecimais(Ecd[i]); Esd[i] := CincoDecimais(Esd[i]); Fcd[i] := TresDecimais(Fcd[i]); Mucd[i] := TresDecimais(Mucd[i]); Memo1.Lines.Add(floattostr(Ecd[i])); Memo2.Lines.Add(floattostr(Esd[i])); Memo3.Lines.Add(QDominio[i]); MemoForcaResult.Lines.Add(floattostr(Fc d[i])); MemoMomentoResult.Lines.Add(floattost r(Mucd[i])); end; for i := 1 to LnPosicao do begin Fc[LnPosicao, i] := TresDecimais(Fc[LnPosicao, i]); Mu[LnPosicao, i] := TresDecimais(Mu[LnPosicao, i]); tensaoConcreto[LnPosicao, i] := TresDecimais(tensaoConcreto[LnPosicao, i]); EcdMed[LnPosicao, i] := CincoDecimais(EcdMed[LnPosicao, i]); MemoTensaoConcreto.Lines.Add(floattost r(tensaoConcreto[LnPosicao, i])); MemoFc.Lines.Add(floattostr(Fc[LnPosica o, i])); MemoMr.Lines.Add(floattostr(Mu[LnPosi cao, i])); MemoEcdMedio.Lines.Add(floattostr(Ecd Med[LnPosicao, i])); end; /// /// Analise dos resultados condicao := 0; edtDominio.Text := ''; edtMrmaximo.Text := ''; edtMucd.Text := ''; edtDiferenca.Text := ''; edtLN.Text := ''; edtEc.Text := ''; edtEs.Text := ''; edtDominio.Text := ''; edtSigmapd.Text := ''; edtEt.Text := ''; edtAp.Text := ''; begin if Mrcd[LnPosicao] = 10000000000000000 then // caso momemento restente seja menor que o momento atuante begin showmessage( '/// Momento Resistente (Mr) da seção menor que o Momento Atuante (Md) ///'); edtDominio.Text := ''; edtMrmaximo.Text := ''; edtMucd.Text := ''; edtDiferenca.Text := ''; edtLN.Text := ''; edtEc.Text := ''; edtEs.Text := ''; edtDominio.Text := ''; edtI.Text := ''; end else // caso momento resitente seja maior que o momento atuanete begin if QDominio[LnPosicao] = 'Dominio 4' then // caso momento resitente ocorra com a secao no dominio 4 begin maiorValor := DuasDecimais(maiorValor); edtMrmaximo.Text := floattostr(maiorValor); edtMucd.Text := ''; edtDiferenca.Text := ''; edtLN.Text := ''; edtEc.Text := ''; 64 edtEs.Text := ''; edtDominio.Text := 'Domínio 4, aumetar altura d'; edtI.Text := ''; end else // caso o momento resitente ocorra com a secao diferente do domino 4, tem se a solucao begin maiorValor := DuasDecimais(maiorValor); edtMrmaximo.Text := floattostr(maiorValor); Mucd[LnPosicao] := DuasDecimais(Mucd[LnPosicao]); edtMucd.Text := floattostr(Mucd[LnPosicao]); diferenca := ((Mucd[LnPosicao] md) * 100) / Mucd[LnPosicao]; diferenca := TresDecimais(diferenca); edtDiferenca.Text := floattostr(diferenca); LN[LnPosicao] := TresDecimais(LN[LnPosicao]); edtLN.Text := floattostr(LN[LnPosicao]); Ecd[LnPosicao] := TresDecimais(Ecd[LnPosicao]); edtEc.Text := floattostr(Ecd[LnPosicao]); edtEs.Text := floattostr(Esd[LnPosicao]); edtDominio.Text := QDominio[LnPosicao]; edtI.Text := floattostr(LnPosicao); end; end; end; end; if Mucd[1] >= md then // Caso o Momento Resistente do primeiro retangulo seja superior a Md begin edtMrmaximo.Text := ''; Mucd[1] := DuasDecimais(Mucd[1]); edtMucd.Text := floattostr(Mucd[1]); diferenca := ((Mucd[1] - md) * 100) / Mucd[1]; diferenca := TresDecimais(diferenca); edtDiferenca.Text := floattostr(diferenca); LN[LnPosicao] := TresDecimais(LN[1]); edtLN.Text := floattostr(LN[1]); Ecd[LnPosicao] := TresDecimais(Ecd[1]); edtEc.Text := floattostr(Ecd[1]); edtEs.Text := floattostr(Esd[1]); edtDominio.Text := QDominio[1]; edtI.Text := ''; end; /// /////////// encontrar o valor da tensao sigmapd E[1]:=5.250 ;E[2]:=6.794 ;E[3]:=7.438 ;E[4]:=8.167 ;E[5]:=9 ;E[6]:=9.962 ;E[7]:=10 ;E[8]:=12.5 ; E[9]:=15 ;E[10]:=17.5 ;E[11]:=20 ;E[12]:=22.5 ;E[13]:=25 ;E[14]:=27.5 ;E[15]:=30 ;E[16]:=32.5 ; E[17]:=35 ;E[18]:=37.5 ;E[19]:=40 ; CP190[1]:= 1025 ; CP190[2]:= 1314 ;CP190[3]:= 1411 ; CP190[4]:= 1459 ;CP190[5]:= 1482 ; CP190[6]:=1486 ; CP190[7]:= 1486 ; CP190[8]:=1496 ;CP190[9]:=1507 ; CP190[10]:=1517 ;CP190[11]:= 1527 ; CP190[12]:=1538 ; CP190[13]:=1548 ; CP190[14]:=1559 ;CP190[15]:=1569 ; CP190[16]:= 1579 ;CP190[17]:= 1590 ;CP190[18]:=1600 ; CP190[19]:= 1611 ; CP175[1]:=1025 ;CP175[2]:=1264 ; CP175[3]:=1316 ;CP175[4]:=1344 ;CP175[5]:=1365 ;CP175[6]:=1368 ; CP175[7]:= 1368 ;CP175[8]:=1378 ;CP175[9]:=1388 ;CP175[10]:=1397 ;CP175[11]:=1407 ;CP175[12]:=1416 ; 65 CP175[13]:=1426 ;CP175[14]:=1436 ;CP175[15]:=1445 ;CP175[16]:=1455 ;CP175[17]:=1464 ;CP175[18]:=1474 ; CP175[19]:=1484 ; sigmap0:= sigmad * (1 - (perdafinal / 100)); i := 1; if fptk = 1900 then begin while sigmap0 > CP190[i] do i := i + 1; j := i - 1; if j <> 0 then begin ep := E[j] + (sigmap0 - CP190[j]) * (E[i] - E[j]) / (CP190[i] - CP190[j]); et := ep + Esd[LnPosicao] * 1000; end else begin ep := sigmap0 / 200; // regime linear = sigmap0 < 1025 et := ep + Esd[LnPosicao] * 1000; end; i := 1; while et > E[i] do i := i + 1; while sigmap0 > CP175[i] do i := i + 1; j := i - 1; if j <> 0 then begin ep := E[j] + (sigmap0 - CP175[j]) * (E[i] - E[j]) / (CP175[i] - CP175[j]); et := ep + Esd[LnPosicao] * 1000; end else begin ep := sigmap0 / 200; // regime linear = sigmap0 < 1025 et := ep + Esd[LnPosicao] * 1000; end; i := 1; while et > E[i] do i := i + 1; j := i - 1; if j <> 0 then sigmapd := CP175[j] - (CP175[i] CP175[j]) * (et - E[j]) / (E[i] - E[j]) else sigmapd := 200000 * et / 1000; end; end; if QDominio[LnPosicao] <> 'Dominio 4' then begin sigmapd:=DuasDecimais(sigmapd); edtSigmapd.Text:=floattostr(sigmapd); et:=DuasDecimais(et); edtEt.Text:=floattostr(et); /// calculo da area de aço Ap:=Fcd[LnPosicao]/(sigmapd/10); Ap:=DuasDecimais(Ap); edtAp.Text:=floattostr(Ap); i := 1; end; j := i - 1; if j <> 0 then sigmapd := CP190[j] - (CP190[i] CP190[j]) * (et - E[j]) / (E[i] - E[j]) else sigmapd := 200000 * et / 1000; if fptk = 1750 then begin // Edit1.Text:=floattostr(menorValor); end; 66 end; { ********************************** ********************************** ********* } /// ///////////////////////////////////// /// //////////////////////////////////// { **********************coeficientes de majoração************************** ** } procedure TForm1.ComboBox1Change(Sender: TObject); begin if ComboBox1.Text = '1,3' then gamag1 := 1.3 else if ComboBox1.Text = '1,4' then gamag1 := 1.4 else gamag1 := strtofloat(ComboBox1.Text); end; procedure TForm1.ComboBox2Change(Sender: TObject); begin if ComboBox2.Text = '1,3' then gamag2 := 1.3 else if ComboBox2.Text = '1,4' then gamag2 := 1.4 else if ComboBox2.Text = '1,5' then gamag2 := 1.5 else gamag2 := strtofloat(ComboBox2.Text); end; procedure TForm1.ComboBox3Change(Sender: TObject); begin if ComboBox3.Text = '1,3' then gamaq := 1.3 else if ComboBox3.Text = '1,4' then gamaq := 1.4 else if ComboBox3.Text = '1,5' then gamaq := 1.5 else gamag1 := strtofloat(ComboBox3.Text); { ********************************** ********************************** ******** } /// ///////////////// /// //////////////// { **********************limite dominio 3 4********************************* *} procedure TForm1.ComboBox4Change(Sender: TObject); begin if ComboBox4.Text = '0,4' then xlim := 0.4 else if ComboBox4.Text = '0,5' then xlim := 0.5 else if ComboBox4.Text = '0,628' then xlim := 0.628 else if ComboBox4.Text = '1' then xlim := 1 else xlim := strtofloat(ComboBox4.Text); end; { ********************************** ********************************** ******** } /// ///////////////// /// //////////////// { **********************Limite protensão*************************** ********* } procedure TForm1.ComboBoxAcoChange(Sender: TObject); begin if ComboBoxAco.Text = 'CP 190RN' then begin if RadioButton1.Checked then begin fptk := 1900; a := 0.77 * fptk; b := 0.90 * 0.90 * fptk; Sigmapmaximo := menor(a, b); 67 end; if RadioButton2.Checked then begin fptk := 1900; a := 0.74 * fptk; b := 0.87 * 0.90 * fptk; Sigmapmaximo := menor(a, b); end; end else if ComboBoxAco.Text = 'CP 190RB' then begin if RadioButton1.Checked then begin fptk := 1900; a := 0.77 * fptk; b := 0.85 * 0.90 * fptk; Sigmapmaximo := menor(a, b); end; if RadioButton2.Checked then begin fptk := 1900; a := 0.74 * fptk; b := 0.82 * 0.90 * fptk; Sigmapmaximo := menor(a, b); end; end else if ComboBoxAco.Text = 'CP 175RN' then begin if RadioButton1.Checked then begin fptk := 1750; a := 0.77 * fptk; b := 0.90 * 0.90 * fptk; Sigmapmaximo := menor(a, b); end; if RadioButton2.Checked then begin fptk := 1750; a := 0.74 * fptk; b := 0.87 * 0.90 * fptk; Sigmapmaximo := menor(a, b); end; end else if ComboBoxAco.Text = 'CP 175RB' then begin if RadioButton1.Checked then begin fptk := 1750; a := 0.77 * fptk; b := 0.85 * 0.90 * fptk; Sigmapmaximo := menor(a, b); end; if RadioButton2.Checked then begin fptk := 1750; a := 0.74 * fptk; b := 0.82 * 0.90 * fptk; Sigmapmaximo := menor(a, b); end; end else begin edtsigmamax.Text := ''; exit; end; edtsigmamax.Text := floattostr(Sigmapmaximo); end; { ********************************** ********************************** ******** } end.