cassiele birck de menezes - coral.ufsm.brcoral.ufsm.br/engcivil/images/pdf/2_2017/tcc_cassiele birck...
TRANSCRIPT
UNIVERSIDADE FEDERAL DE SANTA MARIA
CENTRO DE TECNOLOGIA
CURSO DE ENGENHARIA CIVIL
DEPARTAMENTO DE ESTRUTURAS E CONSTRUÇÃO CIVIL
Cassiele Birck de Menezes
DESENVOLVIMENTO DE FERRAMENTA COMPUTACIONAL PARA
TRAÇADO DOS CABOS E VERIFICAÇÃO DOS ESTADOS LIMITES
DE SERVIÇO DE VIGAS ISOSTÁTICAS PROTENDIDAS
Santa Maria, RS
2017
Cassiele Birck de Menezes
DESENVOLVIMENTO DE FERRAMENTA COMPUTACIONAL PARA TRAÇADO
DOS CABOS E VERIFICAÇÃO DOS ESTADOS LIMITES DE SERVIÇO DE VIGAS
ISOSTÁTICAS PROTENDIDAS
Trabalho de conclusão apresentado ao Curso
de Engenharia Civil, da Universidade Federal
de Santa Maria (UFSM, RS), como requisito
parcial para obtenção do título de Bacharel
em Engenharia Civil.
Orientador: Almir Barros da Silva Santos Neto
Santa Maria, RS
2017
Cassiele Birck de Menezes
DESENVOLVIMENTO DE FERRAMENTA COMPUTACIONAL PARA TRAÇADO
DOS CABOS E VERIFICAÇÃO DOS ESTADOS LIMITES DE SERVIÇO DE VIGAS
ISOSTÁTICAS PROTENDIDAS
Trabalho de conclusão apresentado ao Curso
de Engenharia Civil, da Universidade Federal
de Santa Maria (UFSM, RS), como requisito
parcial para obtenção do título de Bacharel
em Engenharia Civil.
Aprovado em 21 de dezembro de 2017:
_________________________________________________
Almir Barros da Silva Santos Neto, Dr. (UFSM)
(Presidente/ Orientador)
_________________________________________________
André Lubeck, Dr. (UFSM)
_________________________________________________
Alisson Simonetti Milani, Me. (UNIPAMPA)
Santa Maria, RS
2017
AGRADECIMENTOS
Nenhuma batalha é vencida sozinha. Nesses quatro anos e meio, muitas pessoas
estiveram ao meu lado percorrendo esse caminho juntos, me estimulando a buscar essa vitória
e conquistar meu sonho. Essas pessoas acrescentaram tanto na minha vida pessoal quanto na
minha vida profissional, as quais gostaria de agradecer, em especial:
• Meus avós, Leo Beno Birck e Nilva Maria Birck, sempre preocupados com meus
estudos, me estimulando e orientando a continuar após cada visita;
• Minha mãe, Lisete Inês Birck, mulher batalhadora, criou três filhas apesar de todas as
dificuldades, muito obrigada por estar ao meu lado em todos os momentos;
• Minhas irmãs, Samira Birck de Menezes e Rossana Birck de Menezes, me motivaram
mostrando o caminho certo a seguir;
• Minha família materna sempre presente e disposta a ajudar, em especial ao meu primo
Gabriel Birck, que me indicou a utilização do MATLAB, fundamental neste trabalho;
• Meus professores, essenciais na minha formação, em especial aos professores Almir
Barros da Silva Santos Neto, André Lubeck, João Kaminski Junior e Larissa
Degliuomini Kirchhof;
• Meu namorado, Diego Pavani Guimarães, que sempre esteve ao meu lado disposto a
ajudar, com quem compartilhei a experiência de fazer um Trabalho de Conclusão de
Curso;
• Meus colegas de turma, por esses anos maravilhosos de companheirismo que me
proporcionaram, em especial Felipe Hundertmark Batista, Márjory Andrighetto
Ruviaro da Silva e Isabelle Silva Carvalho Monteiro;
• Meus colegas de apartamento, em especial a Andressa Dias da Silva, com quem
partilhei muitos momentos especiais;
• Ao “Suco Selvagem”, grupo que me trouxe muitas alegrias em momentos difíceis;
• Ao grupo PET - Engenharia Civil da UFSM, que me desenvolveu pessoalmente e
profissionalmente ao longo de dois anos e meio de convivência;
• Ao grupo Carancho Aerodesign, que me trouxe experiências e ensinamentos de grande
importância;
• Aos meus amigos, Anderson Silva e Rodrigo Nascimento, por sempre estarem me
auxiliando nos momentos mais difíceis.
Enfim, a todos que passaram por mim e acrescentaram algo, que conheci na minha
vida social, virtual ou acadêmica. A aqueles que acreditaram em mim, muito obrigada!
RESUMO
DESENVOLVIMENTO DE FERRAMENTA COMPUTACIONAL PARA TRAÇADO
DOS CABOS E VERIFICAÇÃO DOS ESTADOS LIMITES DE SERVIÇO DE VIGAS
ISOSTÁTICAS PROTENDIDAS
AUTORA: Cassiele Birck de Menezes
ORIENTADOR: Almir Barros da Silva Santos Neto
Este trabalho apresenta a elaboração e validação de uma ferramenta computacional para o
cálculo de vigas isostáticas protendidas pós-tracionadas. Para seu desenvolvimento, foi
utilizado o App Designer, aplicativo disponível no MATLAB (MATrix LABoratory),
software interativo de alta performance voltado para o cálculo numérico. O software
produzido simula o comportamento da estrutura sob ação de carregamentos externos, sendo
verificados o cálculo da armadura mínima longitudinal, o traçado dos cabos de protensão, o
cálculo das perdas imediatas e progressivas sofridas pela peça, além das verificações para
Estado Limite de Serviço de Descompressão e Formação de Fissuras, segundo recomendação
da NBR 6118:2014, referentes à protensão limitada da peça. Os cabos de protensão são
sugeridos pelo programa, de acordo com a mínima área de aço, e, posteriormente, escolhidos
pelo usuário. Para o traçado dos mesmos, o software fornece os limites inferior e superior a
partir de uma perda de protensão estimada, sendo necessário o usuário informar as
coordenadas de cada cabo. O cálculo de perdas imediatas e progressivas é feito
separadamente por cabo, sendo a viga seccionada em consonância com a necessidade de cada
projeto. Posteriormente, foi executada uma validação da ferramenta desenvolvida,
comparando-se, qualitativamente, resultados obtidos com software semelhante e cálculos
manuais sendo, esses, semelhantes aos obtidos pelo programa.
Palavras-chave: Armadura Ativa. Pós-Tração Aderente. Traçado dos Cabos. Estado Limite
de Serviço. Armadura Mínima.
ABSTRACT
DEVELOPMENT OF COMPUTATIONAL TOOL FOR CABLE TRACTION AND
SERVICE LIMITS STATES VERIFICATION OF PRESTRESSED ISOSTATIC
BEAMS
AUTHOR: Cassiele Birck de Menezes
ADVISOR: Almir Barros da Silva Santos Neto
This work presents the elaboration and validation of a computational tool for the calculation
of post-tensioned prestressed isostatic beams. For its development, it was used the App
Designer, an application available in MATLAB (MATrix LABoratory), interactive software
of high performance oriented to the numerical calculation. The software produced simulates
the behavior of the structure under the action of external loads, being verified the calculation
of the minimum longitudinal reinforcement, the drawing of the post-tensioned cables, the
calculation of the immediate and progressive losses suffered by the part, besides the checks
for State Limit of Service of Decompression and Crack Formation, as recommended by NBR
6118: 2014, regarding the limited design of the part. Post-tensioned cables are suggested by
the program, according to the minimum area of steel, and later, chosen by the user. For the
tracing of these, the software provides the lower and upper limits from an estimated loss of
protension, and the user must inform with the coordinates of each cable. The calculation of
immediate and progressive losses is done separately by cable, the beam being sectioned
according to the need of each project. Subsequently, a validation of the developed tool was
performed, comparing, qualitatively, results obtained with similar software.
Keywords: Active Armor. Post-Traction. Cable’s Trace. Service Limit State. Minimal Armor.
LISTA DE ILUSTRAÇÕES
Figura 1 – Correspondência entre a classe de agressividade e a qualidade do concreto .......... 11
Figura 2 - Valores estimados de módulo de elasticidade em função da resistência
característica à compressão do concreto ................................................................................... 12
Figura 3 - Principais cordoalhas utilizadas em obras de concreto protendido. ........................ 13
Figura 4 - Correspondência entre a classe de agressividade ambiental e o cobrimento nominal
para Δc = 10mm. ...................................................................................................................... 13
Figura 5 - Exigências de durabilidade relacionadas à fissuração e à proteção da armadura, em
função das classes de agressividade ambiental......................................................................... 14
Figura 6 - Combinações de Serviço .......................................................................................... 16
Figura 7 - Perdas no esforço de protensão por atrito ao longo do cabo ................................... 19
Figura 8 - Ancoragem de um cabo de protensão por meio de cunhas cravadas. ...................... 20
Figura 9 - Diagrama da variação da força de protensão (P) por efeito de um deslocamento na
extremidade do cabo ................................................................................................................. 20
Figura 10 - Valores de Ψ1000, em porcentagem ........................................................................ 23
Figura 11 - ELS-F utilizando combinação frequente de ações com protensão limitada .......... 24
Figura 12 - ELS-D utilizando combinação quase permanente de ações com protensão limitada
.................................................................................................................................................. 24
Figura 13 - Estrutura geral da ferramenta computacional ........................................................ 25
Figura 14 - Tela dados iniciais ................................................................................................. 26
Figura 15 - Seções transversais ................................................................................................ 27
Figura 16 - Tela escolha e traçado dos cabos ........................................................................... 29
Figura 17 - Cálculo da área mínima de protensão .................................................................... 30
Figura 18 - Tela de perdas de protensão ................................................................................... 31
Figura 19 - Tela de verificação dos estados limites de serviço ................................................ 32
Figura 20 - Dados iniciais - Exemplo 1 .................................................................................... 33
Figura 21 - Curvas Limite - Exemplo 1 .................................................................................... 34
Figura 22 - Traçado dos cabos - Exemplo 1 ............................................................................. 35
Figura 23 - Cabo equivalente - Exemplo 1 ............................................................................... 35
Figura 24 - Perdas de protensão - Exemplo 1 ........................................................................... 36
Figura 25 - Verificação Estados Limites de Serviço - Exemplo 1 ........................................... 36
Figura 26 - Dados iniciais - Exemplo 2 .................................................................................... 37
Figura 27 - Traçado dos cabos - Exemplo 2 ............................................................................. 38
Figura 28 - Perdas de protensão - Exemplo 2 ........................................................................... 38
SUMÁRIO
1 INTRODUÇÃO ..................................................................................................................... 7
1.1 OBJETIVOS ..................................................................................................................... 8
1.1.1 Objetivo geral ........................................................................................................... 8
1.1.2 Objetivos específicos ................................................................................................ 9
2 REFERENCIAL TEÓRICO .............................................................................................. 10
2.1. FUNDAMENTOS DO CONCRETO PROTENDIDO ................................................. 10
2.2 MATERIAIS ................................................................................................................... 10
2.2.1 Concreto .................................................................................................................. 10
2.2.2 Aço ........................................................................................................................... 12
2.3 NÍVEIS DE PROTENSÃO ............................................................................................ 14
2.4 TIPOS DE PROTENSÃO .............................................................................................. 15
2.5 AÇÕES A CONSIDERAR ............................................................................................. 15
2.6 PRÉ-DIMENSIONAMENTO ........................................................................................ 16
2.6.1 Determinação da Força de Protensão................................................................... 16
2.6.2 Traçado das Cabos ................................................................................................. 17
2.7 PERDAS DE PROTENSÃO .......................................................................................... 18
2.7.1 Perdas Imediatas .................................................................................................... 18
2.7.1.1 Perdas por atrito ............................................................................................... 18
2.7.1.2 Perdas por acomodação das ancoragens .......................................................... 19
2.7.1.3 Perdas por encurtamento elástico ..................................................................... 21
2.7.2 Perdas Progressivas................................................................................................ 22
2.7.2.1 Perdas por retração e fluência do concreto ...................................................... 22
2.7.2.2 Perdas por relaxação do aço ............................................................................ 23
2.8 VERIFICAÇÕES DOS ESTADOS LIMITES DE SERVIÇO ....................................... 24
2.8.1 Estado Limite de Formação de Fissuras .............................................................. 24
2.8.2 Estado Limite de Descompressão.......................................................................... 24
3 IMPLEMENTAÇÃO COMPUTACIONAL ..................................................................... 25
3.1 DADOS INICIAIS .......................................................................................................... 26
3.2 ESCOLHA E TRAÇADO DOS CABOS ....................................................................... 28
3.3 PERDAS DE PROTENSÃO .......................................................................................... 31
3.4 VERIFICAÇÃO DOS ESTADOS LIMITES DE SERVIÇO ........................................ 32
4 VALIDAÇÃO DO PROGRAMA - EXEMPLOS ............................................................. 33
4.1 EXEMPLO 1 ................................................................................................................... 33
4.2 EXEMPLO 2 ................................................................................................................... 37
5 ANÁLISE DOS RESULTADOS ........................................................................................ 40
5.1 PERDA IMEDIATA DE PROTENSÃO ........................................................................ 40
5.2 PERDA TOTAL DE PROTENSÃO .............................................................................. 41
5.3 VERIFICAÇÃO DE TENSÕES ..................................................................................... 42
CONCLUSÕES E RECOMENDAÇÕES ............................................................................ 43
REFERÊNCIAS ..................................................................................................................... 44
APÊNDICE - CÓDIGO-FONTE ......................................................................................... 46
ANEXO A – EXEMPLO 1 ................................................................................................... 107
ANEXO B – EXEMPLO 2 ................................................................................................... 114
7
1 INTRODUÇÃO
Historicamente, a ideia de protensão surgiu praticamente em simultaneidade a do
concreto armado. Porém, inicialmente, eram desconsiderados os efeitos da retração e
deformação do concreto protendido, impossibilitando a garantia de tensões de compressão
permanentes no concreto. Somente após os estudos feitos por Eugene Freyssinet, a partir de
1928, foi possível entender a necessidade de um concreto de muito alta qualidade, com fios de
aço de elevada resistência. A partir da fabricação do aço, o uso da técnica foi difundido.
Em relação ao concreto armado, o concreto protendido apresenta, entre outras, as
seguintes vantagens:
• Reduz as tensões de tração provocadas pela flexão e pelos esforços cortantes;
• Reduz a incidência de fissuras, o que está diretamente relacionado com a durabilidade
das estruturas, pois aumenta a proteção da armadura contra a corrosão, bem como a
estanqueidade do concreto;
• Permite vencer maiores vãos que o concreto armado convencional.
A NBR 6118:2014 define como elementos de protensão "aqueles nos quais parte das
armaduras é 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,
bem como propiciar o melhor aproveitamento de aços de alta resistência no estado-limite
último (ELU)." Pode-se classificar elementos protendidos considerando o mecanismo de
aderência entre a armadura de protensão e o concreto. Desta forma, tem-se os seguintes tipos
de concreto protendido, de acordo com CARVALHO (2012):
• Pré-tração - a aderência entre a armadura e o concreto é iniciada com o lançamento do
mesmo;
• Pós-tração - a aderência entre a armadura e o concreto é iniciada posteriormente a
execução da protensão quando o concreto já está endurecido;
• Pós-tração sem aderência - neste caso a armadura só estará solidária ao concreto junto
às armaduras.
O presente trabalho aborda, exclusivamente, o concreto pós-tracionado, com
aderência, devido a sua larga utilização e flexibilidade, aplicando-se em quase todo o campo
da Construção Civil.
Atualmente, a fim de calcular uma estrutura, é fundamental a utilização de algum
software, tendo-se, assim, maior rapidez e confiabilidade nos cálculos. Os programas
8
computacionais comerciais são programas fechados, não permitindo acesso ao código do
programa. Sendo assim, podem haver simplificações no procedimento do cálculo que são
desconhecidas e imutáveis pelo usuário. Segundo KLEIN (2001): "Uma das razões pelas
quais o concreto protendido não é largamente utilizado é de ordem tecnológica, ou seja,
carência de ferramentas e profissionais de projeto e execução envolvidos com esta técnica."
Diante disso, neste trabalho é desenvolvido um programa para uso educacional, que retorna
como saída de dados o traçado de cabos de protensão para vigas isostáticas pós-tracionadas,
verificando os estados limites de serviço. Para entrada de dados, é necessário dispor das
seguintes características:
• Vigas isostáticas, sem balanços, com seção transversal qualquer e com eixo de
simetria vertical, coincidente com o plano de ação das cargas;
• Cargas uniformemente distribuídas;
• Cabos parabólicos saindo das extremidades das vigas.
Dessa maneira, pretende-se desenvolver o interesse dos estudantes pela técnica, sendo
possível manipular os dados e examinar, assim, a discrepância dos resultados. Aumentando o
número de profissionais capacitados para projetar estruturas em concreto protendido, deve-se
ter, também, um aumento na utilização da técnica. A ferramenta computacional é
desenvolvida para fins educacionais, disponibilizando o código para alunos e professores.
Assim, é possível ter acesso a todas as simplificações propostas. O programa irá calcular o
traçado dos cabos e as verificações do Estado Limite de Serviço (ELS): Estado-limite de
descompressão (ELS-D), e Estado-limite de formação de fissuras (ELS-F).
1.1 OBJETIVOS
1.1.1 Objetivo geral
Desenvolver uma ferramenta computacional para uso educacional, a fim de estudar o
traçado de cabos de protensão para vigas isostáticas pós-tracionadas, de seção transversal com
eixo de simetria vertical, verificando também os estados limites de serviço.
9
1.1.2 Objetivos específicos
• Definir a faixa de traçado dos cabos de protensão;
• Verificar a quantidade de armadura ativa necessária;
• Realizar a verificação dos Estados Limites de Serviço em diferentes seções de vigas;
• Comparação com software comercial;
• Desenvolvimento de exemplos.
10
2 REFERENCIAL TEÓRICO
2.1. FUNDAMENTOS DO CONCRETO PROTENDIDO
As primeiras experiências no uso de concreto protendido, que datam do século
passado, foram tentativas fracassadas devido a desconsideração de perdas com fluência e
retração do concreto, as quais praticamente anulavam as forças iniciais de protensão. Em
1936, o engenheiro Dischinger projetou a primeira ponte protendida, a ponte Aue localizada
na Alemanha. Neste projeto, foram utilizados cabos externos, não havendo, assim, aderência.
Em seguida, foram desenvolvidos equipamentos e ancoragens de protensão, sendo
divulgado e estudado o uso do concreto protendido em obras. A partir disso, foi realizada uma
mudança na concepção do cálculo da força de protensão, conforme ISHITANI (2002):
"Inicialmente, procurava-se eliminar totalmente, as tensões normais de tração com a
protensão (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."
No Brasil, a primeira ponte construída em concreto protendido data de 1949, projetada
pelo engenheiro francês Eugène Freyssinet. Nesta ponte, tudo foi importado: o projeto, as
ancoragens, o equipamento para aplicação da protensão, e também o aço. Diante disso, em
1952, a Companhia Siderúrgica Belgo-Mineira iniciou a fabricação do aço de protensão
denominado "patenting" de diâmetro 5mm. A segunda obra brasileira, a Ponte de Juazeiro, foi
construída com aço brasileiro. Dessa época em diante, o desenvolvimento do concreto
protendido acelerou, principalmente na Europa, em razão da criação de comitês e institutos, o
que se difundiu no mundo todo.
2.2 MATERIAIS
2.2.1 Concreto
Frequentemente em obras de concreto protendido, a resistência característica à
compressão do concreto situa-se na faixa entre 30 e 50MPa, sendo o CP V ARI muito
comum, pois possibilita a aplicação da força de protensão em idades baixas. Para o uso
adequado da classe do concreto e sua relação água/cimento, deve-se atentar às recomendações
da NBR 6118:2014, conforme ilustrado na Figura 1.
11
Figura 1 – Correspondência entre a classe de agressividade e a qualidade do concreto
Fonte: ABNT (NBR 6118:2014, p. 18)
A resistência média à tração do concreto, na falta de ensaios, pode ser calculada pela
Equação (1) para concretos de classes até C50, e pela Equação (2) para concretos de classes
C55 até C90.
𝑓𝑐𝑡,𝑚 = 0,3 . 𝑓𝑐𝑘2/3
(1)
𝑓𝑐𝑡,𝑚 = 2,12. ln (1 + 0,11 . 𝑓𝑐𝑘) (2)
Onde:
fct,m é a resistência média do concreto à tração;
fck é a resistência característica do concreto à compressão aos 28 dias de idade.
É chamado módulo de elasticidade a relação entre tensão e deformação na direção da
carga aplicada, sendo a máxima tensão que o material suporta sem que haja deformação
permanente. Na falta de ensaios, são normatizadas equações para sua obtenção e, para melhor
visualização, a NBR 6118:2014 apresenta a tabela da Figura 2 de valores arredondados que
podem ser utilizados no projeto estrutural.
Em geral, concretos com resistência elevadas são desejáveis por conta de:
• Solicitações elevadas em idades baixas do concreto por conta da força de protensão;
• Permitem a redução das dimensões das peças, em viadutos, por exemplo, pode
acarretar na diminuição do volume aterrado;
• Tem menor deformação imediata, ou seja, menores perdas de protensão devido aos
maiores módulos de elasticidade;
• Normalmente, são mais impermeáveis, o que acarreta na redução da corrosão da
armadura.
12
Figura 2 - Valores estimados de módulo de elasticidade em função da resistência
característica à compressão do concreto
Fonte: ABNT (NBR 6118:2014, p.25)
2.2.2 Aço
A armadura ativa, submetida ao esforço de protensão, é constituída por aço de alta
resistência, podendo ser encontrados das seguintes maneiras:
• Fios isolados trefilados com diâmetro que variam de 3 a 8 mm, fornecidos em bobinas
e rolos;
• Cordoalha: fios enrolados entre si ou ao redor de um fio central. São constituídas com
três ou sete fios de mesmo diâmetro nominal, encordoados juntos de forma helicoidal;
• Barras de aço-liga com diâmetro superior a 12 mm e de comprimento limitado.
Para fios e cordoalhas, o módulo de elasticidade adotado, na falta de dados
específicos, é de 200.000MPa.
Dependendo do tratamento térmico, ainda são classificados em:
• Aços de baixa relaxação, que recebem tratamento termomecânico, tendo reduzida suas
perdas de tensão por relaxação;
• Aços de relaxação normal, que recebem tratamento térmico para alívio de tensões
residuais da trefilação.
Atualmente, são comercializadas diversas categorias de aço, com versatilidade para
cada obra. Elas estão disponíveis em catálogos de acordo com sua resistência à tração. A
Figura 3 ilustra como exemplo o catálogo da ArcelorMittal, para cordoalhas de 3 e 7 fios CP
190 e 7 fios CP 210, com várias opções de diâmetros.
O cobrimento mínimo (cmín) deve ser garantido pelo projeto e a execução para a
devida proteção à corrosão da armadura. Portanto, deve-se considerar o cobrimento nominal
(cnom), que é o cobrimento mínimo acrescido da tolerância de execução Δc, como ilustrado na
Figura 4. Para casos de controle adequado de qualidade e rígidos limites de tolerância da
variabilidade das medidas durante a execução, a NBR 6118:2014 prevê a adoção de Δc =
5mm.
13
Figura 3 - Principais cordoalhas utilizadas em obras de concreto protendido.
Fonte: Catálogo ArcelorMittal, Fios e Cordoalhas para Concreto Protendido – Março 2015
Figura 4 - Correspondência entre a classe de agressividade ambiental e o cobrimento nominal
para Δc = 10mm.
Fonte: ABNT (NBR 6118:2014, p.20)
14
2.3 NÍVEIS DE PROTENSÃO
Os níveis, ou graus de protensão estão relacionados à intensidade da força de
protensão, podendo ser: protensão completa, protensão limitada ou protensão parcial.
Na protensão completa, as tensões de compressão devido a protensão são elevadas, de
modo a dispensar a verificação de tensão de tração na seção transversal, oriundas aos
carregamentos impostos.
Na protensão limitada, as tensões provocadas pela protensão de concreto são de menor
valor, podendo aparecer pequenas tensões de tração no concreto, sob efeito dos
carregamentos, sendo limitadas ao fctk do concreto, não permitindo sua fissuração.
Já na protensão parcial, as tensões provocadas pela protensão são menores em relação
aos demais níveis, podendo aparecer, assim, maiores tensões de tração no concreto. Neste
caso, há fissuração, havendo um valor wk limite para a abertura de fissuras, protegendo o aço
à corrosão.
A escolha do nível de protensão tem relação direta com a classe de agressividade
ambiental que a peça se encontra, sendo maior a força de protensão em classes mais
agressivas, conforme contemplado na NBR 6118:2014.
Figura 5 - Exigências de durabilidade relacionadas à fissuração e à proteção da armadura, em
função das classes de agressividade ambiental
Fonte: ABNT (NBR 6118:2014, p.80)
15
2.4 TIPOS DE PROTENSÃO
Pode-se ter três tipos básicos de protensão: protensão com aderência inicial (pré-
tração), protensão com aderência posterior (pós-tração) e protensão sem aderência (pós-
tração).
Na primeira, o aço é tracionado antes do lançamento do concreto, muito empregado na
fabricação de pré-moldados. Quando o concreto atinge 75% da resistência especificada, as
cordoalhas entre ele e a estrutura da extremidade são cortadas, ocorrendo a transferência da
força das cordoalhas para o concreto, comprimindo-o. Nos demais tipos de protensão, o aço é
tracionado apenas quando o concreto atingir 75% da resistência especificada.
Na protensão com aderência posterior, a aderência é dada através da injeção de
argamassa de cimento entre a armadura e a bainha. Já a protensão sem aderência, pode ser
feita de modo semelhante a anterior, excetuando a injeção da nata de cimento, ou através e
elementos externos de armadura de protensão.
2.5 AÇÕES A CONSIDERAR
A fim de estabelecer regras para combinação das ações, essas são classificadas em
permanentes, variáveis e excepcionais. A diferença entre elas está em sua variabilidade no
tempo, sendo a permanente constante durante praticamente toda a vida útil da construção, a
variável decorrente do uso e ocupação da edificação, apresentando variação significativa em
torno de sua média e, a excepcional, com duração extremamente curta e baixa probabilidade
de ocorrência.
Para facilitar a visualização, as combinações de serviço estão dispostas em uma tabela
na NBR 6118:2014 (Figura 6), os valores de Ψ1 e Ψ2 também estão disponíveis na mesma
norma, a depender do tipo de obra e de peça estrutural.
16
Figura 6 - Combinações de Serviço
Fonte: ABNT (NBR 6118:2014, p.69)
2.6 PRÉ-DIMENSIONAMENTO
2.6.1 Determinação da Força de Protensão
No pré-dimensionamento, a força de protensão depende de:
• Características dos materiais;
• Dados geométricos da seção transversal, definida pelo projetista;
• Esforços devido ao carregamento;
• Grau de protensão a ser utilizado;
• Estimativa das perdas de protensão (em geral, fixadas de 20% a 30% da carga total).
Para a determinação da força de protensão, é feita a verificação dos estados limites de
serviço de descompressão (Equação 3) e formação de fissuras (Equação 4), na metade do vão
da viga. As equações 3 e 4 provém, respectivamente, das Figuras 11 e 12 apresentadas na
sequência. Para as duas verificações, isola-se o P∞ e é considerado o maior valor em módulo,
somando-se as perdas.
𝜎𝐷 = (𝑃∞). (1
𝐴+
𝑒𝑝
𝑊𝑖) −
𝑀𝑔1
𝑊𝑖−
𝑀𝑔2
𝑊𝑖−
𝛹2. 𝑀𝑞
𝑊𝑖= 0 (3)
17
𝜎𝐹 = (𝑃∞). (1
𝐴+
𝑒𝑝
𝑊𝑖) −
𝑀𝑔1
𝑊𝑖−
𝑀𝑔2
𝑊𝑖−
𝛹1𝑀𝑞
𝑊𝑖 (4)
Para seções T ou duplo T:
𝜎𝐹 = 1,2 . 𝑓𝑐𝑡𝑘 (5)
Para seções retangulares:
𝜎𝐹 = 1,5 . 𝑓𝑐𝑡𝑘 (6)
Onde:
A é a área de concreto na seção da viga;
ep é a excentricidade do cabo de protensão em relação ao baricentro da seção transversal, no
centro do vão;
fctk é a resistência característica à tração do concreto;
Mg1 é o momento atuante na peça devido ao peso próprio;
Mg2 é o momento atuante na peça devido a carga permanente;
Mq é o momento atuante na peça devido a carga acidental;
P∞ é a força de protensão após a ocorrência de todas as perdas de protensão;
Wi é o módulo de resistência elástico da seção transversal relativo à borda inferior;
σD é a tensão limite no concreto correspondente ao estado limite de serviço de descompressão;
σF é a tensão limite no concreto correspondente ao estado limite de serviço de formação de
fissuras;
Ψ1 é o fator de redução de ações variáveis para combinações frequentes;
Ψ2 é o fator de redução de ações variáveis para combinações quase-permanentes.
Deve-se considerar, ainda, para peças pós-tracionadas, a tensão da armadura de
protensão no ato, não pode ultrapassar 0,74fptk e 0,82fpyk para aços de relaxação baixa e
0,74fptk e 0,87fpyk para aços de relaxação normal.
2.6.2 Traçado das Cabos
O lançamento dos cabos tem grande importância na configuração final de esforços na
peça dimensionada. Inicialmente, deve ser feito o traçado das curvas limite, que fornecem, de
maneira aproximada, a região em que os cabos de protensão devem estar posicionados para
que as tensões da seção transversal da peça fiquem em determinada faixa de valores. A
limitação de tensões a ser utilizada depende do tipo que protensão adotada para cada obra.
Adotando-se as tensões e combinações de ações adequadas, são realizados os cálculos de
tensões, isolando-se o ep (excentricidade do cabo de protensão equivalente em relação ao
18
baricentro da seção transversal da viga, numa determinada seção) para diversas seções da
viga. Assim, são definidas as curvas limites superior e inferior.
Posteriormente, é feito o lançamento dos cabos. O traçado dos cabos pode ser reto,
curvo ou reto e curvo para vigas pós-tracionadas. Geralmente, os trechos curvos dos cabos são
descritos por equações parabólicas.
2.7 PERDAS DE PROTENSÃO
São denominadas perdas de protensão todas as perdas na força inicial Pi aplicada nos
cabos de protensão. A diminuição dessa força de protensão é causada por uma série de efeitos
provenientes de, entre outros fatores, acionamento dos macacos hidráulicos, liberação dos
cabos de protensão e a transferência dos esforços para a peça.
As perdas imediatas ocorrem na ocasião da protensão, sendo denominadas: perdas por
atrito, perdas por acomodação nas ancoragens e perdas por encurtamento elástico. Já as perdas
progressivas ocorrem num período de vários anos, sendo dependentes dos materiais utilizados
na estrutura, denominadas: perdas por fluência e retração do concreto e perdas por relaxação
do aço.
2.7.1 Perdas Imediatas
2.7.1.1 Perdas por atrito
As perdas por atrito se verificam:
• Nos macacos hidráulicos de protensão, geralmente determinadas experimentalmente;
• Nas ancoragens: no momento em que o cabo é protendido, nos sistemas onde os cabos
sofrem mudança de direção nas placas de ancoragem, há perda por atrito. Essa,
também, determinada experimentalmente, podendo-se adotar um valor médio de 5%;
• Ao longo do cabo: no momento em que os cabos curvos ou poligonais são esticados,
há atrito entre eles e as paredes das bainhas, provocando, assim, perdas por atrito.
Os cálculos de perdas por atrito ao longo do cabo são feitos a partir do esforço de
protensão aplicado na extremidade do cabo (Pmáx). Em uma deflexão dα, um cabo tracionado
com força P, exerce sobre a bainha a força P.dα, com o coeficiente de atrito entre o cabo e a
bainha μ, origina o atrito μ.P.dα. Portanto, com a equação de equilíbrio do cabo, tem-se a
parcela dP de decréscimo de esforço no cabo (Equação 7) que, integrando-se entre o ponto
inicial e um ponto distante x do primeiro é obtida a Equação 8.
19
𝑑𝑃 = − 𝜇. 𝑃. 𝑑𝛼 (7)
𝑃𝑥 = 𝑃𝑚á𝑥. 𝑒−𝜇𝛼 (8)
Sendo os cabos colocados no interior de bainhas, deve-se somar o atrito causado por
desvios das bainhas em relação a sua posição teórica, acrescentando variação angulares (k)
por metro linear de cabo, determinada pela NBR 6118:2014, p.50 (Equação 9). Na Figura 7, é
ilustrado o eixo de um cabo de protensão, com variação angular e comprimento s entre dois
pontos. O comprimento s indica o comprimento real do cabo que, devido as pequenas
inclinações usuais em concreto protendido, é aproximadamente x, função do comprimento
linear da peça.
∆𝑃𝑥 = 𝑃𝑖 . [𝑒−(𝜇 ∑ 𝛼+𝑘𝑥)] (9)
Onde:
ΔPx é a perda de protensão devido ao atrito;
Pi é a força máxima aplicada à armadura de protensão pelo equipamento de tração;
k é o coeficiente da perda por atrito, por metro linear da peça;
μ é o coeficiente de atrito aparente entre cabo de protensão e bainha;
α é a soma dos ângulos verticais e horizontais no trecho considerado.
Figura 7 - Perdas no esforço de protensão por atrito ao longo do cabo
Fonte: PFEIL (1991, p.151)
2.7.1.2 Perdas por acomodação das ancoragens
Segundo Pfeil (1991, p.171), denominam-se perdas nas ancoragens às perdas
verificadas no alongamento dos cabos quando da transferência do esforço do elemento tensor
para a ancoragem. Nos processos com cabos pré-tracionados não há perda por ancoragem,
sendo definido um comprimento em que o concreto absorve o esforço de protensão, por
aderência e atrito. Já nos processos com cabos pós-tracionados, os esforços aplicados nos
macacos são transferidos posteriormente a ancoragens mecânicas. Alguns desses sistemas não
há perda de alongamento do cabo, como: sistemas de grandes blocos de ancoragem em
concreto, sistemas de ancoragem com rosca e porca, e sistemas de ancoragens apoiadas na
20
argamassa ou nata de injeção. Em outros sistemas, em sua maioria baseados em cunhas, há
perdas de alongamento.
Nos sistemas por meio de cunhas, primeiramente, os fios são tracionados por macacos.
A cunha é apertada com um esforço F e o macaco é retirado. Neste instante, a ancoragem
recebe um esforço P (Figura 8), e, consequentemente, o cabo sofre um deslocamento δ.
Figura 8 - Ancoragem de um cabo de protensão por meio de cunhas cravadas.
Fonte: PFEIL (1991, p.172)
O comprimento x, ao longo do qual as tensões do cabo se modificam em decorrência
do descolamento δ, é determinado por uma condição de compatibilidade geométrica: o
encurtamento do cabo provocado pela variação de tensões σp é igual ao deslocamento
ocorrido δ (PFEIL, 1991, p.177). Desta forma, com os dados da Figura 9, tem-se a Equação
10.
Figura 9 - Diagrama da variação da força de protensão (P) por efeito de um deslocamento na
extremidade do cabo
Fonte: KLEIN (2002, p. 42)
𝛿 =1
𝐸𝑠𝑝. 𝐴𝑝. (𝐴𝑟𝑒𝑎𝐴𝑋𝐴′) ∴ 𝐴𝑟𝑒𝑎𝐴𝑋𝐴′ = 𝐸𝑠𝑝. 𝐴𝑝. 𝛿 (10)
Onde:
Ap é a área da seção transversal do cabo de protensão;
Esp é o módulo de elasticidade do aço da armadura ativa;
δ é o deslocamento do cabo de protensão por deslizamento da armadura na ancoragem e
acomodação da ancoragem.
21
2.7.1.3 Perdas por encurtamento elástico
Na execução de uma viga com aderência posterior, geralmente, a protensão é feita
cabo a cabo. Quando um cabo é submetido a uma força de protensão P, há um encurtamento
do concreto, provocando, assim, perda de protensão nos demais cabos já protendidos. No caso
da pós-tração, não há perda por deformação imediata do concreto apenas se todos os cabos da
estrutura forem tracionados ao mesmo tempo.
Segundo a NBR 6118:2014, a perda de tensão média de protensão devido
encurtamento elástico pode ser obtida pela Equação 11. A tensão no concreto na altura do
centro de gravidade da armadura de protensão devido à carga permanente mobilizada na
protensão σcg pode ser obtida pela Equação 12, e a tensão no mesmo ponto anterior devido a
protensão dos n cabos simultaneamente σcp é dada pela Equação 13.
∆𝜎𝑝 =𝛼𝑝. (𝜎𝑐𝑝 + 𝜎𝑐𝑔). (𝑛 − 1)
2𝑛 (11)
𝜎𝑐𝑔 =𝑀𝑔
𝐼𝑐. 𝑒𝑝 (12)
𝜎𝑐𝑝 = 𝑃. (1
𝐴𝑐+
𝑒𝑝2
𝐼𝑐) (13)
Onde:
Ap é a área da seção transversal do cabo de protensão;
ep é a excentricidade do cabo de protensão em relação ao baricentro da seção transversal, no
centro do vão;
fctk é a resistência característica à tração do concreto;
Ic é o momento central de inércia na seção do concreto;
Mg é o momento atuante na peça devido a totalidade da carga permanente;
n é o número de cabos;
P é a força normal de protensão;
αp é a relação entre Ep e Eci (demonstrado na Equação 19);
Δσp é a perda de tensão média por cabo de protensão devido ao encurtamento imediato do
concreto;
σcg é a tensão no concreto ao nível do baricentro da armadura de protensão devido à totalidade
da carga permanente;
22
σcp é a tensão no concreto ao nível do baricentro da armadura de protensão, devido à força
normal de protensão.
2.7.2 Perdas Progressivas
As perdas progressivas são divididas em perdas por retração e fluência do concreto, e
perdas por relaxação do aço. O cálculo das perdas progressivas, em sua totalidade, é realizado
através da Equação 14.
∆𝜎𝑝(𝑡, 𝑡0) =휀𝑐𝑠(𝑡, 𝑡0). 𝐸𝑃 − 𝛼𝑝. 𝜎𝐶,𝑃0𝐺 . 𝜑(𝑡, 𝑡0) − 𝜎𝑃0. 𝜒(𝑡, 𝑡0)
𝜒𝑃 + 𝜒𝐶 . 𝛼𝑃 . 𝜂. 𝜌𝑃 (14)
Sendo:
𝜒(𝑡, 𝑡0) = − ln[1 − 𝜓(𝑡, 𝑡0)] (15)
𝜒𝐶 = 1 + 0,5. 𝜑(𝑡, 𝑡0) (16)
𝜂 = 1 + 𝑒𝑝2.
𝐴𝐶
𝐼𝐶 (17)
𝜌𝑃 =𝐴𝑃
𝐴𝐶 (18)
𝛼𝑃 =𝐸𝑃
𝐸𝐶 (19)
Onde:
σc,pog é a tensão no concreto adjacente ao cabo resultante, provocado pela protensão e pela
carga permanente mobilizada no instante t0, sendo positiva se de compressão, em MPa;
σp0 é a tensão na armadura ativa devida à protensão e à carga permanente mobilizada no
instante t0, positivo se de tração;
χ(t,t0) é o coeficiente de fluência do aço;
ρp é a taxa geométrica da armadura de protensão;
Ap é a área da seção transversal do cabo resultante;
Ac é a área da seção transversal do concreto;
Ic é o momento central de inércia na seção do concreto.
2.7.2.1 Perdas por retração e fluência do concreto
O concreto sofre deformações, de retração e fluência, ao longo do tempo devido a suas
características físico-químicas. A retração ocorre em função da perda de umidade do concreto
para o ambiente externo, diminuindo o volume da peça. A fluência, ou deformação lenta,
provém da atuação de cargas de longa duração. Como o esforço de protensão atua durante
23
toda a vida útil da peça, provocar-se-á um encurtamento do concreto em consequência dos
esforços de compressão na estrutura. Junto a redução do concreto, há o encolhimento dos
cabos protendidos, diminuindo, assim, a força de protensão.
Com caráter informativo, no Anexo A, p. 207, da NBR 6118:2014, consta um método
simplificado de cálculo que pode ser utilizado em determinadas estruturas de concreto
protendido. Em geral, as variáveis que influenciam nesse cálculo são:
• Umidade do ambiente;
• Abatimento do concreto;
• Idade fictícia do concreto no ato da protensão;
• Espessura fictícia;
• Tipo de cimento;
• Tempo.
2.7.2.2 Perdas por relaxação do aço
Segundo Pfeil (1991, p.229), aços de protensão, quando ancorados com comprimento
constante e sob tensão elevada, sofrem uma perda de tensão, fenômeno denominado
relaxação. Os fatores que mais influenciam nessa perda são:
• Tipo de aço;
• Tipo de tratamento térmico;
• Tensão aplicada ao cabo;
• Temperatura ambiente.
Em geral, a relaxação de fios e cordoalhas é medida num espaço de tempo de 1000
horas, a 20ºC (Ψ1000) e para tensões variando de 0,5fptk e 0,8fptk, e disponibilizada no catálogo
dos fabricantes. Para efeito de projeto, a NBR 6118:2014 permite que sejam adotados os
valores da Figura 10.
Figura 10 - Valores de Ψ1000, em porcentagem
Fonte: ABNT (NBR 6118:2014, p.32)
24
2.8 VERIFICAÇÕES DOS ESTADOS LIMITES DE SERVIÇO
Os estados limites de serviço são aqueles que, por sua ocorrência, repetição ou
duração, observa-se efeitos estruturais em discordância com as condições para uso normal da
obra. Estão diretamente relacionados com a durabilidade, conforto do usuário e utilização
funcional da construção.
2.8.1 Estado Limite de Formação de Fissuras
Estado em que se inicia a formação de fissuras. Admite-se que este estado-limite é
atingido quando a tensão de tração máxima na seção transversal for igual a fct,f (NBR
6118:2014, p.5).A verificação do ELS-F para a combinação frequente de ações, dado pela
Equação 4, e ilustrado pela Figura 11.
Figura 11 - ELS-F utilizando combinação frequente de ações com protensão limitada
Fonte: SOUZA (2017, p. 97)
2.8.2 Estado Limite de Descompressão
Estado no qual, em um ou mais pontos da seção transversal, a tensão normal é nula,
não havendo tração no restante da seção (NBR 6118:2014, p.5). A verificação do ELS-D para
a combinação quase permanente de ações, dado pela Equação 3, e ilustrado pela Figura 12.
Figura 12 - ELS-D utilizando combinação quase permanente de ações com protensão limitada
Fonte: SOUZA (2017, p. 98)
25
3 IMPLEMENTAÇÃO COMPUTACIONAL
A estrutura da ferramenta computacional desenvolvida segue, basicamente, a rotina do
dimensionamento manual utilizada no projeto de vigas isostáticas protendidas, pós-
tracionadas. Para melhor organização e compreensão do usuário, ela é dividida nos módulos
ilustrados pela Figura 13, que correspondem a um conjunto de tarefas do projeto da viga.
As funções disponíveis e sua abrangência no programa desenvolvido é limitada ao
dimensionamento da peça a tensões normais nos Estados Limites de Serviço. Deve-se atentar
aos seguintes requisitos da estrutura a ser analisada:
• A mudança de configuração da estrutura deformada é desprezível;
• O material é elástico-linear (segue a Lei de Hooke);
• A seção transversal deve ser constante, simétrica e compatível com as
disponibilizadas na interface gráfica;
• Ações uniformemente distribuídas;
• Aço de protensão ArcellorMittal;
Figura 13 - Estrutura geral da ferramenta computacional
Fonte: Autora
No pré-dimensionamento, com os dados informados pelo usuário, é calculada a força
de protensão necessária na seção do meio do vão para, assim, escolher os cabos de protensão
26
referentes à área mínima que atende a força de protensão determinada. Além disso, é feito o
traçado das curvas limite, de acordo com o número de seções desejadas. Posteriormente, os
cabos de protensão devem ser lançados pelo usuário, sendo necessário informar as
coordenadas em todas as seções para cada cabo, separadamente.
Em seguida, no módulo perdas, são calculadas perdas de protensão, a partir de uma
perda estimada pelo usuário. São discretizadas as perdas imediatas por atrito, por acomodação
de ancoragem, e por deformação imediata do concreto, além das perdas progressivas, que será
a soma das perdas por relaxação do aço, e retração e fluência do concreto. Finalmente, com a
perda de protensão corrigida, são feitas as verificações de tensões no estado limite de serviço
da peça.
3.1 DADOS INICIAIS
Na tela de dados iniciais, ilustrada na Figura 14, são definidas características básicas
da peça: propriedades dos materiais, geometria da viga e ações atuantes na estrutura.
Figura 14 - Tela dados iniciais
Fonte: Autora
Assim que o usuário informar a resistência característica a compressão do concreto aos
28 e j (data da concretagem) dias de idade e clicar em “calcular”, são calculadas a resistência
característica e média do concreto à tração.
27
Deve, ainda, ser definida a geometria da viga, com o comprimento do vão e seção
transversal adotada, podendo ser retangular, T ou I, conforme apresentado na Figura 15.
Figura 15 - Seções transversais
Fonte: Autora
A partir dos dados da seção transversal, quando pressionado o botão “Calcular”, serão
expostas as seguintes informações acerca da seção:
• Área de concreto;
• Momento de inércia no eixo de flexão;
• Altura total da viga;
• Distância entre o centro de gravidade e a base da viga;
• Distância entre o centro de gravidade e o topo da viga;
• Módulo de resistência da seção inferior;
• Módulo de resistência da seção superior;
• Perímetro da seção transversal.
28
Finalmente, tendo como base as ações permanentes e acidentais atuantes na estrutura,
são calculadas as cargas uniformemente distribuídas em toda a peça e os momentos no meio
do vão, para combinação frequente e quase permanente, a partir das Equações 22 a 25.
𝑃𝐶𝐹 = 𝐺0𝑘 + 𝐺1𝑘 + 𝛹1. 𝑄𝑘 (22)
𝑀𝐶𝐹 =𝑃𝐶𝐹 . 𝐿2
8 (23)
𝑃𝐶𝑄𝑃 = 𝐺0𝑘 + 𝐺1𝑘 + 𝛹2. 𝑄𝑘 (24)
𝑀𝐶𝑄𝑃 =𝑃𝐶𝑄𝑃 . 𝐿2
8 (25)
Onde:
G0K é o carregamento permanente principal (peso próprio);
G1K é o carregamento permanente principal secundário;
L é o comprimento da peça;
MCF é o momento no centro do vão proveniente da combinação frequente de ações;
MCQP é o momento no centro do vão proveniente da combinação quase-permanente de ações;
PCF é o valor do cálculo das ações para a combinação frequente;
PCQP é o valor do cálculo das ações para a combinação quase-permanente;
Ψ1 é o fator de redução de ações variáveis para combinações frequentes;
Ψ2 é o fator de redução de ações variáveis para combinações quase-permanentes.
3.2 ESCOLHA E TRAÇADO DOS CABOS
No processo de escolha de cabos, deve-se, primeiramente, definir a área mínima de
armadura necessária na metade do vão, processo feito através da Figura 17.
Posteriormente, ainda com o mesmo comando do usuário, o programa avalia qual
cordoalha, para o fptk informado, tem área mais próxima da mínima, com as seguintes
possibilidades:
• CP 145 RB;
• CP 150 RB;
• CP 170 RB;
• CP 175 RB (A = 27,8mm²);
• CP 175 RB (A = 19,2mm²);
• CP 175 RB (A = 12,3mm²);
29
• CP 170 RN;
• CP 175 RN (A = 27,8mm²);
• CP 175 RN (A = 19,2mm²);
• CP 175 RN (A = 12,3mm²);
• Cord. CP 190 RB 3 x 3,0;
• Cord. CP 190 RB 3 x 3,5;
• Cord. CP 190 RB 3 x 4,0;
• Cord. CP 190 RB 3 x 4,5;
• Cord. CP 190 RB 3 x 5,0;
• Cord. CP 190 RB 9,50;
• Cord. CP 190 RB 12,70;
• Cord. CP 190 RB 15,20;
• Cord. CP 190 RB 15,70;
• Cord. CP 210 RB 12,70;
• Cord. CP 210 RB 15,20.
As áreas referentes a essas possíveis escolhas foram retiradas do catálogo da
ArcelorMittal, sendo utilizada a área mínima especificada.
Figura 16 - Tela escolha e traçado dos cabos
Fonte: Autora
30
Figura 17 - Cálculo da área mínima de protensão
Fonte: Autora
De acordo com a disponibilidade de aço, o usuário poderá, então, escolher qual aço for
mais adequado, além do número de cabos desejados. Assim que for pressionado botão
“Recalcular”, será informada a área de aço adotada e o número de cordoalhas que atendem as
especificidades encontradas.
Para o traçado das curvas limite de protensão, será verificado o estado limite de
tensões considerando:
• Borda superior: força inicial de protensão e atuação apenas do peso-próprio;
• Borda inferior: força final de protensão e combinações frequente e quase-permanente
de ações, sendo escolhida a combinação que resultar em menor excentricidade.
Após a verificação das curvas limite, será disponibilizada, pelo programa, uma tabela
com o número de cabos em função do comprimento da viga, através do número de divisões
escolhido pelo usuário. Por meio dessas seções, serão realizados todos os cálculos decorrentes
(perdas imediatas, progressivas e verificação final de tensões). Para melhor visualização,
estão disponíveis, ainda, os botões “Desenhar Cabos” e “Equivalente” que expõe,
respectivamente, o traçado dos cabos escolhidos e do cabo equivalente.
31
3.3 PERDAS DE PROTENSÃO
Para o cálculo das perdas imediatas de protensão, o usuário deve inserir os seguintes
dados:
• Coeficiente de atrito aparente entre o cabo e a bainha;
• Coeficiente de perda;
• Deslocamento da cunha.
Pressionando o botão “Perdas Imediatas”, serão exibidas tabelas de todas as perdas
imediatas, constando o número de cabos em função do comprimento da viga, podendo ser
observada a diminuição da força inicial de protensão. Os cálculos são feitos com base na NBR
6118:2014, para cabo separadamente.
Figura 18 - Tela de perdas de protensão
Fonte: Autora
Em seguida, escolhidos o perímetro em contato com o ar, umidade relativa, idade
relativa à data de aplicação de carga, e classe do concreto utilizado, são calculadas as perdas
progressivas, podendo, finalmente, ser conhecida a força final de protensão.
32
3.4 VERIFICAÇÃO DOS ESTADOS LIMITES DE SERVIÇO
Calculadas as perdas de prontensão, pode-se fazer a verificação dos estados limites de
serviço a serem considerados em casos de protensão limitada, de formação de fissuras e de
descompressão. Para tanto, faz-se uma nova verificação das tensões na fibra superiores e
inferiores em todas as seções, separando, novamente, para cada cabo. É utilizada a força de
protensão após a ocorrência de todas as perdas (P∞) calculada na seção anterior.
Na Figura 19, é possível observar a presença de três quadros presentes na tela de
verificação de ELS. No primeiro, são exibidas as tensões máximas de resistência do concreto
na base e topo da estrutura, além do momento atuante da estrutura na combinação de ações
indicada. Nos quadros subsequentes, são expostas as tensões atuantes nas bordas superior e
inferior da peça, a serem comparadas com as tensões resistentes pelo usuário.
Figura 19 - Tela de verificação dos estados limites de serviço
Fonte: Autora
33
4 VALIDAÇÃO DO PROGRAMA - EXEMPLOS
Neste capítulo são apresentados dois exemplos de vigas isostáticas protendidas
resolvidos com o programa desenvolvido. O primeiro, está resolvido manualmente no livro
“Comentários e Exemplos de Aplicação da ABNT NBR 6118:2014”, p.355 - p.367. O
segundo está resolvido manualmente na revista “Concreto e Construções”, volumes 78 e 80.
Ambos foram resolvidos também, para posterior comparação, no V-PRO, software da TQS
que auxilia o engenheiro na análise, verificação e projeto de vigas protendidas, e estão com o
relatório emitido pelo programa disponível nos anexos A e B, respectivamente.
4.1 EXEMPLO 1
O exemplo 1 trata de uma viga de 25 metros de vão que compõe a estrutura de uma
passarela de pedestres, com 120cm de altura e seção transversal do tipo T. O concreto
utilizado tem fck de 35 MPa, fck,j de 24 MPa e Eci de 24 GPa. Já o aço empregado é o CP190
RB, com fptk de 190kN/cm², fpyk de 171kN/cm² e Ep de 200GPa. A carga permanente adicional
ao peso próprio é de 6,4 kN/m e variável é 10kN/m. O fator de redução de ações da
combinação frequente Ψ1 = 0,4 e para o fator de redução de ações da combinação quase-
permanente Ψ2 = 0,3, conforme ilustrado na Figura 20.
Figura 20 - Dados iniciais - Exemplo 1
Fonte: Autora
34
Com os dados apresentados, a perda estimada e o cobrimento, o programa já sugere a
mínima área de aço passível de utilização. Foi escolhido CP190 RB 12,70, com 2 cabos de 12
cordoalhas cada, totalizando uma área de 23,76cm².
A peça será dividida em 4 partes, sendo calculada em 5 seções, a cada 6,25m da viga.
São definidas, então, as curvas limite, a partir da limitação das tensões nas bordas inferior e
superior da peça, demostradas na Figura 21. Na Figura 22 já é possível observar a posição os
cabos de protensão informados pelo usuário. A fim de confirmar que os cabos adotados pelo
usuário como solução possuem o cabo equivalente dentro da região delimitada, clicando no
botão “Equivalente” o mesmo será representado. No exemplo em análise, como pode ser
constatado na Figura 23, o cabo equivalente fica dentro da região delimitada pelas curvas
limite.
Em caso de difícil visualização dos limites estabelecidos graficamente, as funções de
aproximar e mover estão habilitadas, sendo indicadas para uso apenas com maior número de
divisões da peça, em que a curva estará melhor estabelecida.
Figura 21 - Curvas Limite - Exemplo 1
Fonte: Autora
35
Figura 22 - Traçado dos cabos - Exemplo 1
Fonte: Autora
Figura 23 - Cabo equivalente - Exemplo 1
Fonte: Autora
Para o cálculo das perdas imediatas de protensão, foi informado o coeficiente de atrito,
0,2, o coeficiente de perda por metro linear, 0,002, e o deslocamento da cunha, 0,6cm. O
perímetro em contato com o ar, já sugerido pelo programa, de 424,8cm, é utilizado para o
cálculo das perdas progressivas. Deve-se, ainda, selecionar a opção mais adequada pra:
36
umidade relativa do ar, 75%, idade relativa à data de aplicação da carga, 30 dias, e classe do
concreto empregado.
Figura 24 - Perdas de protensão - Exemplo 1
Fonte: Autora
Figura 25 - Verificação Estados Limites de Serviço - Exemplo 1
Fonte: Autora
Para o cálculo dos Estados Limites de Serviço, todos os dados necessários já foram
calculados. O usuário deve analisar se a estrutura está respeitando os limites de tensão
37
necessários e, caso desejar alterar alguma configuração, é possível voltar para as demais abas
e recalcular a parte alterada.
4.2 EXEMPLO 2
O exemplo 2 trata de uma viga de 26 metros de vão, com 125cm de altura e seção
transversal do tipo I. O concreto utilizado tem fck de 30MPa, fck,j de 24,6MPa e Eci de 28GPa.
Já o aço empregado é o CP190 RB, com fptk de 190kN/cm², fpyk de 171kN/cm² e Ep de
200GPa. A carga permanente adicional ao peso próprio é de 8 kN/m e variável é 20kN/m. O
fator de redução de ações da combinação frequente Ψ1 = 0,4 e para o fator de redução de
ações da combinação quase-permanente Ψ2 = 0,3, conforme ilustrado na Figura 20.
Figura 26 - Dados iniciais - Exemplo 2
Fonte: Autora
Com os dados apresentados, a perda estimada e o cobrimento, o programa já sugere a
mínima área de aço passível de utilização. Foi escolhido CP190 RB 12,70, com 5 cabos de 7
cordoalhas cada, totalizando uma área de 34,65cm².
A peça será dividida em 10 partes, sendo calculada em 11 seções, a cada 2,60m da
viga. São definidas, então, as curvas limite, a partir da limitação das tensões nas bordas
inferior e superior da peça. Na Figura 27 já é possível observar a posição os cabos de
38
protensão informados pelo usuário. Pode-se perceber, visualmente, que as curvas estão
melhores definidas em relação ao exemplo anterior.
Figura 27 - Traçado dos cabos - Exemplo 2
Fonte: Autora
Figura 28 - Perdas de protensão - Exemplo 2
Fonte: Autora
39
Para o cálculo das perdas imediatas de protensão, foi informado o coeficiente de atrito,
0,2, o coeficiente de perda por metro linear, 0,002, e o deslocamento da cunha, 0,5cm. O
perímetro em contato com o ar, já sugerido pelo programa, de 438,2cm, é utilizado para o
cálculo das perdas progressivas. Deve-se, ainda, selecionar a opção mais adequada pra:
umidade relativa do ar, 75%, idade relativa à data de aplicação da carga, 30 dias, e classe do
concreto empregado.
40
5 ANÁLISE DOS RESULTADOS
Para a validação do programa foi realizada, em paralelo, a comparação dos dois
exemplos do capítulo 4 entre a ferramenta desenvolvida, o cálculo manual, e o V-PRO,
aplicativo da TQS para vigas protendidas.
Observou-se, no cálculo da área de armadura adotada, uma pequena diferença entre os
resultados, por conta da variação de áreas entre os catálogos disponíveis. Isso acarreta uma
variação (de até 1%) na força inicial de protensão, aplicada no macaco hidráulico. Nos demais
dados iniciais e de pré-dimensionamento (propriedades dos materiais e da seção transversal,
combinação de ações), não foram encontradas diferenças significativas de valores.
5.1 PERDA IMEDIATA DE PROTENSÃO
Através da Tabela 1 e Tabela 2 é possível observar que a diferença entre a ferramenta
desenvolvida, o V-PRO e o cálculo manual da força de protensão após as perdas imediatas
não é relevante em termos práticos de engenharia. Percebe-se, também, que os resultados
obtidos se aproximam a medida que o número de seções calculadas aumenta, refletindo a mais
detalhada definição do traçado dos cabos de protensão.
Tabela 1 - Força de protensão após perdas imediatas no Exemplo 1
Ferramenta desenvolvida
Seção x (m) Cabo 1 Cabo 2 Po,média (kN) Po (kN) V-PRO Po (kN) Livro
1 0 2886,7 2867,5 2877,1 2950,78 2908,40
2 6,25 2911 2895 2903 3001,22 2960,38
3 12,5 2943,3 2936,6 2939,95 3057,9 3018,50
4 18,75 2911 2895 2903 3001,22 2960,38
5 25 2886,7 2867,5 2877,1 2950,78 2908,40
Fonte: Autora
Tabela 2 - Força de protensão após perdas imediatas no Exemplo 2
Ferramenta desenvolvida
Seção x (m) Cabo 1 Cabo 2 Cabo 3 Cabo 4 Cabo 5 Po,média
(kN)
Po (kN)
V-PRO Diferença
1 0 4328,4 4338,6 4352,2 4369,3 4379,6 4353,62 4320,41 0,76%
2 2,6 4333,9 4343,4 4357,4 4374,8 4385,5 4359 4354,7 0,10%
3 5,2 4337,9 4348,9 4362,5 4378,9 4392,1 4364,06 4380,3 0,37%
4 7,8 4342,7 4354 4366,6 4386,9 4399,3 4369,9 4404,06 0,78%
5 10,4 4357,3 4374,4 4388,1 4399,7 4398,9 4383,96 4431,31 1,09%
6 13 4412,4 4403,7 4403,7 4405,4 4407,2 4406,12 4465,63 1,34%
7 15,6 4357,3 4374,4 4388,1 4399,7 4398,9 4383,96 4431,31 1,09%
41
8 18,2 4342,7 4354 4366,6 4386,9 4399,3 4369,9 4404,06 0,78%
9 20,8 4337,9 4348,9 4362,5 4378,9 4392,1 4364,06 4380,3 0,37%
10 23,4 4333,9 4343,4 4357,4 4374,8 4385,5 4359 4354,7 0,10%
11 26 4328,4 4338,6 4352,2 4369,3 4379,6 4353,62 4320,41 0,76%
Fonte: Autora
5.2 PERDA TOTAL DE PROTENSÃO
Percebe-se a pequena discrepância entre os resultados dos dois programas, também, no
cálculo da força de protensão após todas as perdas imediatas e progressivas na Tabela 3 e
Tabela 4. Os dados de entrada para o cálculo das perdas progressivas no programa
desenvolvido são diferentes do V-PRO, que solicita os valores de deformação específica e
retração do concreto. Esses dados são calculados automaticamente através de interpolação
linear da tabela 8.2 da NBR 6118:2014, p. 28, na ferramenta computacional elaborada. Por
conta disso, percebe-se um aumento na diferença entre os resultados na Tabela 4, em relação à
etapa anterior.
Tabela 3 - Força de protensão após perdas imediatas e progressivas no Exemplo 1
Ferramenta desenvolvida
Seção x (m) Cabo 1 Cabo 2 P∞,média(kN) P∞ (kN) V-PRO P∞(kN) Livro
1 0 2440,3 2558,1 2499,2 2481,8 2469,85
2 6,25 2454,1 2548,6 2501,35 2463,44 2456,75
3 12,5 2487 2562,7 2524,85 2486,67 2479,85
4 18,75 2454,1 2548,6 2501,35 2463,44 2456,75
5 25 2440,3 2558,1 2499,2 2481,8 2469,85
Fonte: Autora
Tabela 4 - Força de protensão após perdas imediatas e progressivas no Exemplo 2
Ferramenta desenvolvida
Seção x (m) Cabo 1 Cabo 2 Cabo 3 Cabo 4 Cabo 5 P∞,média
(kN)
P∞ (kN)
V-PRO Diferença
1 0 3153,2 3377,1 3494,7 3406,9 3199,9 3326,4 3516,5 5,72%
2 2,6 3318,9 3462,2 3497,2 3406,8 3248,3 3386,7 3518,3 3,89%
3 5,2 3467,9 3514,2 3486,4 3381,3 3247,4 3419,4 3457,8 1,12%
4 7,8 3524,6 3507,2 3428,7 3359,5 3313,4 3426,7 3442,4 0,46%
5 10,4 3471,9 3421,7 3352,4 3327,4 3326,8 3380,3 3452,3 2,14%
6 13 3413,9 3407,3 3342,8 3344,1 3345,3 3372,4 3442,4 2,13%
7 15,6 3471,9 3421,7 3352,4 3327,4 3326,8 3380,3 3452,3 2,14%
8 18,2 3524,6 3507,2 3428,7 3359,5 3313,4 3426,7 3442,4 0,46%
9 20,8 3467,9 3514,2 3486,4 3381,3 3247,4 3419,4 3457,8 1,12%
10 23,4 3318,9 3462,2 3497,2 3406,8 3248,3 3386,7 3518,3 3,89%
11 26 3153,2 3377,1 3494,7 3406,9 3199,9 3326,4 3516,5 5,72%
Fonte: Autora
42
5.3 VERIFICAÇÃO DE TENSÕES
Na verificação das tensões no topo e na base da estrutura, a diferença entre o programa
desenvolvido e o V-PRO continua na mesma ordem de grandeza, conforme é visto na Tabela
5 e Tabela 6.
Para o cálculo das tensões, não foi considerada a ação permanente indireta causada
pela perda de protensão no tempo. Em razão disso, para estruturas com maior força de
protensão, como no exemplo 2, não são gerados resultados satisfatórios.
Tabela 5 - Tensões no estado limite de serviço, formação de fissuras para o Exemplo 1
Estado Limite de Serviço – Formação de Fissuras
Seção x (m) σc,inf (MPa) σc,max (MPa)
V-PRO
σc,inf (MPa)
Livro σc,sup (MPa)
σc,min (MPa)
V-PRO
σc,sup (MPa)
Livro
1 0 -9,209 -9,28 -9,35 -1,548 -1,48 -1,5
2 6,25 -2,755 -2,6 -3,035 -4,509 -4,49 -4,41
3 12,5 -0,794 -0,58 -1,08 -5,462 -5,47 -5,38
4 18,75 -2,755 -2,6 -3,035 -4,509 -4,49 -4,41
5 25 -9,209 -9,28 -9,35 -1,548 -1,48 -1,5 Fonte: Autora
Tabela 6 - Tensões no estado limite de serviço, descompressão para o Exemplo 1
Estado Limite de Serviço - Descompressão
Seção x (m) σc,inf (MPa) σc,max (MPa)
V-PRO
σc,inf (MPa)
Livro σc,sup (MPa)
σc,min (MPa)
VPRO
σc,sup (MPa)
Livro
1 0 -9,209 -9,28 -9,35 -1,548 -1,48 -1,5
2 6,25 -3,319 -3,16 -3,59 -4,250 -4,24 -4,155
3 12,5 -1,544 -1,33 -1,84 -5,117 -5,13 -5,04
4 18,75 -3,319 -3,16 -3,59 -4,250 -4,24 -4,155
5 25 -9,209 -9,28 -9,35 -1,548 -1,48 -1,5 Fonte: Autora
43
CONCLUSÕES E RECOMENDAÇÕES
Tendo em vista os capítulos 4 e 5, constata-se que a ferramenta computacional
desenvolvida aparenta ser muito útil na análise de vigas isostáticas protendidas. É uma
ferramenta simples que apresentou resultados muito satisfatórios, demonstrando que,
incrementando algumas funções, poderá ser utilizada em disciplinas da graduação, facilitando
o aprendizado do discente. Espera-se, também, que através da utilização dessa ferramenta, os
alunos despertem interesse tanto pela área em estudo, quanto pela programação, primordial na
formação de um engenheiro atualmente.
As diferenças encontradas nas perdas imediatas se devem ao traçado do cabo, visto
que, quanto menor é o espaçamento entre as seções calculadas, menor é o erro. Já no caso das
perdas progressivas, o erro ocorreu devido a entrada de dados do programa desenvolvido ser
distinto do V-PRO. Constatou-se, por fim, a necessidade de considerar a ação permanente
indireta referente à perda de protensão para a verificação das tensões. Sem sua consideração,
obteve-se resultados razoáveis apenas para valores baixos de força de protensão.
Propõe-se, para trabalhos futuros, inserir no programa desenvolvido:
• Consideração da ação permanente indireta referente à perda de protensão;
• Cálculo de flechas;
• Estado Limite Último;
• Cabos retos;
• Protensão completa;
• Possibilitar o usuário a fornecer os momentos;
• Seção transversal T + I e caixão.
44
REFERÊNCIAS
ABNT, Associação Brasileira de Normas Técnicas. NBR 6118 - Projeto de Estruturas de
Concreto - Procedimento, 2014.
APARICIO, A. C., CASAS, J. R. e RAMOS, G. Computer aided design of prestressed
concrete highway bridges. Computers & Structures, vol.60, Great Britain, 1996.
ASSAN, A. E. Contribuição ao Cálculo Automático de Vigas Contínuas Protendidas.
Dissertação de Mestrado, Escola de Engenharia de São Carlos – Universidade de São Paulo.
São Carlos, 1974.
ARCELORMITTAL. Fios e Cordoalhas para Concreto Protendido: Aços Longos. Catálogo,
2015. Disponível em: < http://longos.arcelormittal.com.br/pdf/produtos/construcao-civil/fios-
cordoalhas/catalogo-fios-cordoalhas.pdf>. Acesso em: 23 de novembro de 2017.
CARVALHO, R. C. Estruturas em Concreto Protendido: Cálculo e Detalhamento. Editora
Pini, Volume 1. São Paulo, 2012.
DUARTE, P. D; REIS, A; GUIMARÃES, B; FILIZOLA, G. Projeto e cálculo e uma viga
isostática de concreto protendido – Parte I. Concreto e Construções. Revista oficial do
IBRACON, São Paulo, 78ª edição, p.92-101. abr./jun. 2015.
_____. Projeto e cálculo e uma viga isostática de concreto protendido – Parte II. Concreto e
Construções. Revista oficial do IBRACON, São Paulo, 80ª edição, p.143-162. out./dez. 2015.
HANAI, J. B. de. Fundamentos do Concreto Protendido. E-book de apoio para o curso de
Engenharia Civil, Departamento de Engenharia de Estruturas. São Carlos, 2005.
INSTITUTO BRASILEIRO DO CONCRETO. Comentários e Exemplos de Aplicação da
ABNT NBR 6118:2014. São Paulo, 2015.
ISHITANI, H; FRANÇA, R. L. e S. Concreto Protendido. Escola Politécnica – Universidade
de São Paulo, Departamento de Engenharia de Estruturas e Fundações. São Paulo, 2002.
KLEIN, R. Dimensionamento e Detalhamento por Computador de Vigas simplesmente
Apoiadas de Concreto Protendido. Dissertação de Mestrado, Universidade Federal de Santa
Catarina. Florianópolis, 2001.
MATTOS, T. S. Programa para Análise de Superestruturas de Pontes de Concreto Armado e
Protendido. Dissertação de Mestrado, Universidade Federal do Rio de Janeiro. Rio de Janeiro,
2001.
MOURA, M. W. Estudo Sobre o Traçado de Cabos Pós-Tracionados em Vigas Isostáticas.
Dissertação de Mestrado, Universidade Federal de Santa Catarina. Florianópolis, 2004.
PEREIRA, K. R. A; CARPINO, L. C. Verificação dos Estados-Limite de Serviço e Último
para Vigas Protendidas. Trabalho de Conclusão de Curso, Faculdade Integrada Metropolitana
de Campinas. Campinas, 2015.
45
PFEIL, W. Concreto Protendido. Vols. 1, 2, e 3. Livros Técnicos e Científicos. Editora S.A..
Rio de Janeiro. 1984.
_____. Concreto Protendido: processos construtivos, perdas de protensão. 3. ed. Rio de
Janeiro: EDC – Ed. Didática e Científica, 1991.
ROCHA, A. M. da. Nôvo Curso Prático de Concreto Armado. Editora Científica, 5º Volume.
Rio de Janeiro, 1972.
SOUZA, F.A. Dimensionamento de Vigas Protendidas.Notas de Aula. São Paulo, 2017.
46
APÊNDICE - CÓDIGO-FONTE
classdef Tentativa7 < matlab.apps.AppBase % Properties that correspond to app components properties (Access = public) UIFigure matlab.ui.Figure TabGroup matlab.ui.container.TabGroup DADOS_INICIAIS matlab.ui.container.Tab Panel matlab.ui.container.Panel Label matlab.ui.control.Label Label2 matlab.ui.control.Label Fckj matlab.ui.control.NumericEditField EciGPaLabel matlab.ui.control.Label Eci matlab.ui.control.NumericEditField Label4 matlab.ui.control.Label Label5 matlab.ui.control.Label Fck matlab.ui.control.NumericEditField fptkkNcmLabel matlab.ui.control.Label Fptk matlab.ui.control.NumericEditField fpykkNcmLabel matlab.ui.control.Label Fpyk matlab.ui.control.NumericEditField EpGPaLabel matlab.ui.control.Label Ep matlab.ui.control.NumericEditField Label9 matlab.ui.control.Label Fctk matlab.ui.control.NumericEditField materiais matlab.ui.control.Button Label10 matlab.ui.control.Label Fctmj matlab.ui.control.NumericEditField Label45_9 matlab.ui.control.Label Label45_10 matlab.ui.control.Label Label45_13 matlab.ui.control.Label Label45_14 matlab.ui.control.Label Label45_16 matlab.ui.control.Label Label45_17 matlab.ui.control.Label Label45_18 matlab.ui.control.Label Label45_19 matlab.ui.control.Label Label45_20 matlab.ui.control.Label Label45_21 matlab.ui.control.Label Label45_22 matlab.ui.control.Label Label45_23 matlab.ui.control.Label Panel2 matlab.ui.container.Panel Label15 matlab.ui.control.Label Comprimento matlab.ui.control.NumericEditField Label28 matlab.ui.control.Label Label48 matlab.ui.control.Label TabGroup2 matlab.ui.container.TabGroup Tab4 matlab.ui.container.Tab Label23 matlab.ui.control.Label Ac matlab.ui.control.NumericEditField Label21 matlab.ui.control.Label Ic1 matlab.ui.control.NumericEditField Label22 matlab.ui.control.Label h1 matlab.ui.control.NumericEditField
47
Label24 matlab.ui.control.Label y_inf1 matlab.ui.control.NumericEditField Label25 matlab.ui.control.Label y_sup1 matlab.ui.control.NumericEditField Label26 matlab.ui.control.Label W_inf matlab.ui.control.NumericEditField Label27 matlab.ui.control.Label W_sup matlab.ui.control.NumericEditField Label45_2 matlab.ui.control.Label Label45_3 matlab.ui.control.Label Label45_4 matlab.ui.control.Label Label45_5 matlab.ui.control.Label Label45_6 matlab.ui.control.Label Label45_7 matlab.ui.control.Label Label45_8 matlab.ui.control.Label umLabel matlab.ui.control.Label U matlab.ui.control.NumericEditField Label45_24 matlab.ui.control.Label Button matlab.ui.control.StateButton Tab5 matlab.ui.container.Tab hwcmLabel_4 matlab.ui.control.Label h_r matlab.ui.control.NumericEditField retangular matlab.ui.control.Button hf2cmLabel_4 matlab.ui.control.Label NumericEditField11_4 matlab.ui.control.NumericEditField hb1cmLabel_3 matlab.ui.control.Label NumericEditField12_8 matlab.ui.control.NumericEditField hb2cmLabel_3 matlab.ui.control.Label NumericEditField13_7 matlab.ui.control.NumericEditField bfcmLabel_5 matlab.ui.control.Label NumericEditField12_9 matlab.ui.control.NumericEditField bbcmLabel_3 matlab.ui.control.Label NumericEditField12_10 matlab.ui.control.NumericEditField hf1cmLabel_4 matlab.ui.control.Label b3_4 matlab.ui.control.NumericEditField bwcmLabel matlab.ui.control.Label bw_r matlab.ui.control.NumericEditField Button_2 matlab.ui.control.StateButton Tab6 matlab.ui.container.Tab T matlab.ui.control.Button hwcmLabel_3 matlab.ui.control.Label hw_t matlab.ui.control.NumericEditField hf1cmLabel_3 matlab.ui.control.Label hf1_t matlab.ui.control.NumericEditField hf2cmLabel_3 matlab.ui.control.Label hf2_t matlab.ui.control.NumericEditField hb1cmLabel_2 matlab.ui.control.Label NumericEditField12_5 matlab.ui.control.NumericEditField hb2cmLabel_2 matlab.ui.control.Label NumericEditField13_5 matlab.ui.control.NumericEditField bfcmLabel_4 matlab.ui.control.Label bf_t matlab.ui.control.NumericEditField bwcmLabel_6 matlab.ui.control.Label bw_t matlab.ui.control.NumericEditField
48
bbcmLabel_2 matlab.ui.control.Label NumericEditField12_7 matlab.ui.control.NumericEditField Button_3 matlab.ui.control.StateButton Tab7 matlab.ui.container.Tab hwcmLabel_2 matlab.ui.control.Label hw_i matlab.ui.control.NumericEditField hf1cmLabel_2 matlab.ui.control.Label hf1_i matlab.ui.control.NumericEditField hf2cmLabel_2 matlab.ui.control.Label hf2_i matlab.ui.control.NumericEditField hb1cmLabel matlab.ui.control.Label hb1_i matlab.ui.control.NumericEditField hb2cmLabel matlab.ui.control.Label hb2_i matlab.ui.control.NumericEditField bfcmLabel_3 matlab.ui.control.Label bf_i matlab.ui.control.NumericEditField bwcmLabel_5 matlab.ui.control.Label bw_i matlab.ui.control.NumericEditField bbcmLabel matlab.ui.control.Label bb_i matlab.ui.control.NumericEditField I matlab.ui.control.Button Button_4 matlab.ui.control.StateButton Panel3 matlab.ui.container.Panel Label29 matlab.ui.control.Label Label30 matlab.ui.control.Label G1k_ matlab.ui.control.NumericEditField Label31 matlab.ui.control.Label Qk_ matlab.ui.control.NumericEditField Label32 matlab.ui.control.Label Label33 matlab.ui.control.Label G0k_ matlab.ui.control.NumericEditField Label34 matlab.ui.control.Label psi1 matlab.ui.control.NumericEditField Label35 matlab.ui.control.Label psi2 matlab.ui.control.NumericEditField Label37 matlab.ui.control.Label Label41 matlab.ui.control.Label Pc_f matlab.ui.control.NumericEditField Label42 matlab.ui.control.Label Mc_f matlab.ui.control.NumericEditField Label43 matlab.ui.control.Label Pc_qp matlab.ui.control.NumericEditField Label44 matlab.ui.control.Label Mc_qp matlab.ui.control.NumericEditField Label45 matlab.ui.control.Label Label46 matlab.ui.control.Label Label47 matlab.ui.control.Label Label62 matlab.ui.control.Label Label63 matlab.ui.control.Label combinacao matlab.ui.control.Button TRACADO_CABOS matlab.ui.container.Tab Area_aco matlab.ui.container.Panel CalcularButton matlab.ui.control.Button DropDownrel matlab.ui.control.DropDown
49
PerdaestimadaEditFieldLabel matlab.ui.control.Label Perdaestimada matlab.ui.control.NumericEditField reamnimacmLabel matlab.ui.control.Label Areaminima matlab.ui.control.NumericEditField reaadotadacmLabel matlab.ui.control.Label Areadotada matlab.ui.control.NumericEditField AcoAdotado matlab.ui.control.TextArea NmerodecordoalhasLabel matlab.ui.control.Label Numerocordoalhas matlab.ui.control.NumericEditField DropDownrel_2 matlab.ui.control.DropDown NmerodecabosLabel matlab.ui.control.Label NumerodeCabos matlab.ui.control.NumericEditField reaadotadacmLabel_2 matlab.ui.control.Label Areadotada_2 matlab.ui.control.NumericEditField NmerodecordoalhasLabel_2 matlab.ui.control.Label Numerocordoalhas_2 matlab.ui.control.NumericEditField RecalcularButton matlab.ui.control.Button readeaosugeridaLabel matlab.ui.control.Label readeaoescolhidaLabel matlab.ui.control.Label CobrimentocmLabel matlab.ui.control.Label cobrimento matlab.ui.control.NumericEditField TraadodosCabosPanel matlab.ui.container.Panel NmerodedivisesLabel matlab.ui.control.Label Divisoes_viga matlab.ui.control.NumericEditField Traca_Cabos matlab.ui.control.Button UIAxes2 matlab.ui.control.UIAxes UITable matlab.ui.control.Table Traca_Cabos_2 matlab.ui.control.Button ApagarButton matlab.ui.control.Button Label48_2 matlab.ui.control.Label Label48_3 matlab.ui.control.Label EquivalenteButton matlab.ui.control.Button PERDASTab matlab.ui.container.Tab Perdas_Imediatas matlab.ui.container.Panel PerdasporAtritoLabel matlab.ui.control.Label PerdasporAcomodaodeAncoragemLabel matlab.ui.control.Label PerdasporDeformaoImediatadoConcretoLabel_2 matlab.ui.control.Label PerdasProgressivasLabel matlab.ui.control.Label Label_2 matlab.ui.control.Label Ni matlab.ui.control.NumericEditField k1mLabel matlab.ui.control.Label K matlab.ui.control.NumericEditField ccmLabel matlab.ui.control.Label Deslocamento matlab.ui.control.NumericEditField Label48_4 matlab.ui.control.Label Label48_5 matlab.ui.control.Label Label48_6 matlab.ui.control.Label UITable2 matlab.ui.control.Table UITable2_2 matlab.ui.control.Table UITable2_3 matlab.ui.control.Table UITable2_4 matlab.ui.control.Table Label48_7 matlab.ui.control.Label ucmLabel matlab.ui.control.Label Perimetro matlab.ui.control.NumericEditField
50
Label48_8 matlab.ui.control.Label Label48_9 matlab.ui.control.Label UDropDownLabel matlab.ui.control.Label UDropDown matlab.ui.control.DropDown PerdasProgressivasButton matlab.ui.control.Button PerdasImediatasButton matlab.ui.control.Button t0diasDropDownLabel matlab.ui.control.Label t0diasDropDown matlab.ui.control.DropDown Label48_11 matlab.ui.control.Label Label48_12 matlab.ui.control.Label ClasseCPDropDownLabel matlab.ui.control.Label ClasseCPDropDown matlab.ui.control.DropDown VERIFICAODOESTADOLIMITEDESERVIOTab_2 matlab.ui.container.Tab ProtensoLimitadaButton matlab.ui.control.Button TabGroup4 matlab.ui.container.TabGroup ELSFormaodeFissurasTab matlab.ui.container.Tab Combinacao1 matlab.ui.control.TextArea UITable_2 matlab.ui.control.Table UITable_3 matlab.ui.control.Table UITable_4 matlab.ui.control.Table TensescaboacabonabordasuperiorLabel matlab.ui.control.Label TensescaboacabonabordainferiorLabel_2 matlab.ui.control.Label ELSDescompressoTab matlab.ui.container.Tab CombinacaoD matlab.ui.control.TextArea UITable_5 matlab.ui.control.Table UITable_6 matlab.ui.control.Table UITable_7 matlab.ui.control.Table TensescaboacabonabordasuperiorLabel_2 matlab.ui.control.Label TensescaboacabonabordainferiorLabel_3 matlab.ui.control.Label Button_5 matlab.ui.control.Button end methods (Access = private) % Button pushed function: ApagarButton function ApagarButtonPushed(app, event) L= app.Comprimento.Value; h1 = app.h1.Value; ax = app.UIAxes2; ax.XLim = [0 L]; ax.YLim = [0 h1]; hold (ax,'off') plot(app.UIAxes2, 0, 0); end % Callback function function Armadura(app, event) bw_r = app.bw_r.Value; h_r = app.h_r.Value; if (bw_r == 0 & h_r == 0) alfa = 1.2; else alfa = 1.5;
51
end Dropdownrel = app.DropDownrel.Value; switch Dropdownrel case 'Relaxação Normal' coefpyk = 0.87; case 'Baixa Relaxação' coefpyk = 0.82; end 'Dados necessários'; fctk = app.Fctk.Value*1000; W_inf = app.W_inf.Value; A_conc = app.Ac.Value; fptk = app.Fptk.Value * 10; fpyk = app.Fpyk.Value * 10; ep = app.y_inf1.Value - (app.cobrimento.Value/100); P_estimada = app.Perdaestimada.Value / 100; Mc_f = app.Mc_f.Value; Mc_qp = app.Mc_qp.Value; Pinf_ff = ((-alfa *fctk) + (Mc_f / W_inf)) / ((1/A_conc) + (ep/W_inf)); Pinf_qp = (Mc_qp / W_inf)/((1/A_conc) + (ep/W_inf)); if (Pinf_qp > Pinf_ff) Pinf = Pinf_qp; else Pinf = Pinf_ff; end P0 = Pinf / (1 - P_estimada); if ((0.74 * fptk) < (coefpyk * fpyk)) sigma = (0.74 * fptk)/10; else sigma = (coefpyk * fpyk)/10; end 'Área de armadura de protensão'; Aminprot = P0 / sigma; app.Areaminima.Value = Aminprot;
52
switch 1 %%% BAIXA RELAXAÇÃO case coefpyk == 0.82 && fptk < 1450 && fptk > 1350 areamin = 0.636; ncord = ceil(Aminprot/areamin); areadotada = ncord * areamin; app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; app.AcoAdotado.Value = 'CP 145 RB'; case coefpyk == 0.82 && fptk < 1550 && fptk > 1450 areamin = 0.503; ncord = ceil(Aminprot/areamin); areadotada = ncord * areamin; app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; app.AcoAdotado.Value = 'CP 150 RB'; case coefpyk == 0.82 && fptk > 1650 && fptk < 1725 areamin = 0.385; ncord = ceil(Aminprot/areamin); areadotada = ncord * areamin; app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; app.AcoAdotado.Value = 'CP 170 RB'; case coefpyk == 0.82 && fptk > 1725 && fptk < 1825 areamin1 = 0.283; areamin2 = 0.196; areamin3 = 0.126; ncord1 = ceil(Aminprot/areamin1); ncord2 = ceil(Aminprot/areamin2); ncord3 = ceil(Aminprot/areamin3); areadotada1 = ncord1 * areamin1; areadotada2 = ncord2 * areamin2; areadotada3 = ncord3 * areamin3; if areadotada1 < areadotada2 && areadotada1 < areadotada3 areadotada = areadotada1; ncord = ncord1; app.AcoAdotado.Value = 'CP 175 RB (A = 27,8mm²)'; elseif areadotada2 < areadotada1 && areadotada2 < areadotada3 areadotada = areadotada2; ncord = ncord2; app.AcoAdotado.Value = 'CP 175 RB (A = 19,2mm²)'; else areadotada = areadotada3; ncord = ncord3;
53
app.AcoAdotado.Value = 'CP 175 RB (A = 12,3mm²)'; end app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; %%% RELAXAÇÃO NORMAL case coefpyk == 0.87 && fptk > 1650 && fptk < 1725 areamin = 0.385; ncord = ceil(Aminprot/areamin); areadotada = ncord * areamin; app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; app.AcoAdotado.Value = 'CP 170 RN'; case coefpyk == 0.82 && fptk > 1725 && fptk < 1825 areamin1 = 0.283; areamin2 = 0.196; areamin3 = 0.126; ncord1 = ceil(Aminprot/areamin1); ncord2 = ceil(Aminprot/areamin2); ncord3 = ceil(Aminprot/areamin3); areadotada1 = ncord1 * areamin1; areadotada2 = ncord2 * areamin2; areadotada3 = ncord3 * areamin3; if areadotada1 < areadotada2 && areadotada1 < areadotada3 areadotada = areadotada1; ncord = ncord1; app.AcoAdotado.Value = 'CP 175 RB (A = 27,8mm²)'; elseif areadotada2 < areadotada1 && areadotada2 < areadotada3 areadotada = areadotada2; ncord = ncord2; app.AcoAdotado.Value = 'CP 175 RB (A = 19,2mm²)'; else areadotada = areadotada3; ncord = ncord3; app.AcoAdotado.Value = 'CP 175 RB (A = 12,3mm²)'; end app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; case coefpyk == 0.82 && fptk > 1825 && fptk < 2000 areamin1 = 0.22; areamin2 = 0.30; areamin3 = 0.38; areamin4 = 0.47;
54
areamin5 = 0.67; areamin6 = 0.56; areamin7 = 1.01; areamin8 = 1.43; areamin9 = 1.50; ncord1 = ceil(Aminprot/areamin1); ncord2 = ceil(Aminprot/areamin2); ncord3 = ceil(Aminprot/areamin3); ncord4 = ceil(Aminprot/areamin4); ncord5 = ceil(Aminprot/areamin5); ncord6 = ceil(Aminprot/areamin6); ncord7 = ceil(Aminprot/areamin7); ncord8 = ceil(Aminprot/areamin8); ncord9 = ceil(Aminprot/areamin9); areadotada1 = ncord1 * areamin1; areadotada2 = ncord2 * areamin2; areadotada3 = ncord3 * areamin3; areadotada4 = ncord4 * areamin4; areadotada5 = ncord5 * areamin5; areadotada6 = ncord6 * areamin6; areadotada7 = ncord7 * areamin7; areadotada8 = ncord8 * areamin8; areadotada9 = ncord9 * areamin9; areas = [areadotada1 ; areadotada2 ; areadotada3 ; areadotada4 ; areadotada5 ; areadotada6 ; areadotada7 ; areadotada8 ; areadotada9]; area190 = min(areas); if area190 == areadotada1 areadotada = areadotada1; ncord = ncord1; app.AcoAdotado.Value = 'Cord. CP 190 RB 3 x 3,0'; elseif area190 == areadotada2 areadotada = areadotada2; ncord = ncord2; app.AcoAdotado.Value = 'Cord. CP 190 RB 3 x 3,5'; elseif area190 == areadotada3 areadotada = areadotada3; ncord = ncord3; app.AcoAdotado.Value = 'Cord. CP 190 RB 3 x 4,0'; elseif area190 == areadotada4 areadotada = areadotada4; ncord = ncord4; app.AcoAdotado.Value = 'Cord. CP 190 RB 3 x 4,5'; elseif area190 == areadotada5 areadotada = areadotada5; ncord = ncord5; app.AcoAdotado.Value = 'Cord. CP 190 RB 3 x 5,0'; elseif area190 == areadotada6 areadotada = areadotada6; ncord = ncord6; app.AcoAdotado.Value = 'Cord. CP 190 RB 9,50'; elseif area190 == areadotada7 areadotada = areadotada7;
55
ncord = ncord7; app.AcoAdotado.Value = 'Cord. CP 190 RB 12,70'; elseif area190 == areadotada8 areadotada = areadotada8; ncord = ncord8; app.AcoAdotado.Value = 'Cord. CP 190 RB 15,20'; else areadotada = areadotada9; ncord = ncord9; app.AcoAdotado.Value = 'Cord. CP 190 RB 15,70'; end app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; case coefpyk == 0.82 && fptk > 2000 && fptk < 2200 areamin1 = 1.01; areamin2 = 1.43; ncord1 = ceil(Aminprot/areamin1); ncord2 = ceil(Aminprot/areamin2); areadotada1 = ncord1 * areamin1; areadotada2 = ncord2 * areamin2; if areadotada1 < areadotada2 areadotada = areadotada1; ncord = ncord1; app.AcoAdotado.Value = 'Cord. CP 210 RB 12,70'; else areadotada = areadotada2; ncord = ncord2; app.AcoAdotado.Value = 'Cord. CP 210 RB 15,20'; end app.Areadotada.Value = areadotada; app.Numerocordoalhas.Value = ncord; end end % Button pushed function: Traca_Cabos_2 function Cabos(app, event) numerocabos = app.NumerodeCabos.Value; L = app.Comprimento.Value; divisoes = app.Divisoes_viga.Value; h1 = app.h1.Value; xp(1) = 0; ax = app.UIAxes2; ax.XLim = [0 L]; ax.YLim = [0 h1]; hold (ax,'on') for i = 1:(divisoes) xp(i+1) = xp(i) + (L/divisoes); end
56
for i = 3:(numerocabos+2) y(1,:) = app.UITable.Data(i,:); coef=polyfit(xp,y(1,:),2); as=coef(1); bs=coef(2); cs=coef(3); y_pl= as*xp.^2 +bs*xp + cs; plot(app.UIAxes2, xp, y_pl(1,:),'-'); hold (ax,'on') end end % Button pushed function: EquivalenteButton function EquivalenteButtonPushed(app, event) numerocabos = app.NumerodeCabos.Value; L = app.Comprimento.Value; divisoes = app.Divisoes_viga.Value; h1 = app.h1.Value; xp(1) = 0; ax = app.UIAxes2; ax.XLim = [0 L]; ax.YLim = [0 h1]; hold (ax,'on') for i = 1:(divisoes) xp(i+1) = xp(i) + (L/divisoes); end y(1:numerocabos,:) = app.UITable.Data(3:(numerocabos+2),:); yeq = mean(y); handle = plot(app.UIAxes2, xp, yeq,'-'); hold (ax,'on') set(handle, 'LineWidth',2) end % Value changed function: Fck function FckValueChanged(app, event) value = app.Fck.Value; if value == 20 app.Eci.Value = 25; elseif value == 25 app.Eci.Value = 28; elseif value == 30 app.Eci.Value = 31; elseif value == 35 app.Eci.Value = 33; elseif value == 40 app.Eci.Value = 35; elseif value == 45 app.Eci.Value = 38;
57
elseif value == 50 app.Eci.Value = 40; elseif value == 60 app.Eci.Value = 42; elseif value == 70 app.Eci.Value = 43; elseif value == 80 app.Eci.Value = 45; elseif value == 90 app.Eci.Value = 47; else app.Eci.Value = 0; end end % Callback function function IButtonPushed(app, event) 'Propriedades para a seção I'; hw_i = (app.hw_i.Value)/100; hf1_i = (app.hf1_i.Value)/100; hf2_i = (app.hf2_i.Value)/100; hb1_i = (app.hb1_i.Value)/100; hb2_i = (app.hb2_i.Value)/100; bf_i = (app.bf_i.Value)/100; bw_i = (app.bw_i.Value)/100; bb_i = (app.bb_i.Value)/100; app.U.Value = ((hw_i+hf1_i+hb1_i)*2)+ bb_i + bf_i + 2*(((((bf_i - bw_i)/2)^2)+(hf2_i - hf1_i)^2)^0.5) + 2*(((((bb_i - bw_i)/2)^2)+(hb2_i - hb1_i)^2)^0.5); app.Perimetro.Value = (app.U.Value - bf_i)*100; A1_I = bw_i *(hw_i + hf2_i + hb2_i); A2_I = (((bf_i - bw_i) / 2) * hf1_i) * 2; A3_I = ((((bf_i - bw_i) / 2) * (hf2_i - hf1_i)) / 2) * 2; A4_I = (((bb_i - bw_i) / 2) * hb1_i) * 2; A5_I = ((((bb_i - bw_i) / 2) * (hb2_i - hb1_i)) / 2) * 2; app.Ac.Value = A1_I + A2_I + A3_I + A4_I + A5_I; y1_i = (hw_i + hf2_i + hb2_i) / 2; y2_i = hf1_i / 2; y3_i = hf1_i + ((hf2_i - hf1_i) / 3); y4_i = (hw_i + hf2_i + hb2_i) - (hb1_i/2); y5_i = (hw_i + hf2_i) + ((hb2_i - hb1_i) * (2/3)); S_AY = (A1_I * y1_i) + (A2_I * y2_i) + (A3_I * y3_i) + (A4_I * y4_i) + (A5_I * y5_i); y_supi = S_AY / (A1_I + A2_I + A3_I + A4_I + A5_I); y_infi = (hw_i + hf2_i + hb2_i) - y_supi; app.h1.Value = hw_i + hf2_i + hb2_i;
58
app.y_sup1.Value = y_supi; app.y_inf1.Value = y_infi; I1cg_i = bw_i * ((hw_i + hf2_i + hb2_i)^3)/12; I2cg_i = (((bf_i - bw_i) / 2) * (hf1_i ^ 3)) / 6; I3cg_i = (((bf_i - bw_i) / 2) * ((hf2_i - hf1_i)^3)) / 18; I4cg_i = (((bb_i - bw_i) / 2) * (hb1_i ^ 3)) / 6; I5cg_i = (((bb_i - bw_i) / 2) * ((hb2_i - hb1_i)^3)) / 18; I1_i = A1_I * ((((hw_i + hf2_i + hb2_i) / 2) - y_infi) ^ 2); I2_i = A2_I * (((hw_i + hf2_i + hb2_i) - (hf1_i/2) - y_infi) ^ 2); I3_i = A3_I * ((hw_i + hb2_i + ((2/3)*(hf2_i - hf1_i)) - y_infi) ^ 2); I4_i = A4_I * (((hb1_i/2) - y_infi) ^ 2); I5_i = A5_I * ((hb1_i + ((1/3)*(hb2_i - hb1_i)) - y_infi) ^ 2); app.Ic1.Value = I1cg_i + I1_i + I2cg_i + I2_i + I3cg_i + I3_i + I4cg_i + I4_i + I5cg_i + I5_i; Ic1 = app.Ic1.Value; app.W_inf.Value = Ic1/y_infi; app.W_sup.Value = Ic1/y_supi; app.bw_r.Value = 0; app.h_r.Value = 0; app.G0k_.Value = (25 * app.Ac.Value); app.hw_t.Value = 0; app.hf1_t.Value = 0; app.hf2_t.Value = 0; app.bf_t.Value = 0; app.bw_t.Value = 0; end % Button pushed function: PerdasImediatasButton function PerdasImediatasButtonPushed(app, event) format shortg ni = app.Ni.Value; desl = app.Deslocamento.Value; k = app.K.Value; alfa_p = app.Ep.Value/app.Eci.Value; divisoes = app.Divisoes_viga.Value; Ap = app.Areadotada_2.Value; Ep = 100* app.Ep.Value; Dropdownrel = app.DropDownrel.Value; fctk = app.Fctk.Value * 10; fptk = app.Fptk.Value * 10; fpyk = app.Fpyk.Value * 10; L = app.Comprimento.Value; Numerocabos = app.NumerodeCabos.Value;
59
y_inf = app.y_inf1.Value; Ic = app.Ic1.Value*10000000; A_conc = app.Ac.Value*1000; G0k = app.G0k_.Value; G1k = app.G1k_.Value; h = app.h1.Value; cabos(1,1) = 1; for i = 1:Numerocabos-1 cabos(i+1,1) = cabos(i,1) + 1; end 'Obtenção de P_i'; switch Dropdownrel case 'Relaxação Normal' coefptk = 0.74; coefpyk = 0.87; case 'Baixa Relaxação' coefptk = 0.74; coefpyk = 0.82; end if ((coefptk * fptk) > (coefpyk * fpyk)) sigma = (coefptk * fptk)/10; else sigma = (coefpyk * fpyk)/10; end P_i = sigma*Ap; P_i(1:Numerocabos, 1:(divisoes+1)) = P_i(1,1); 'Tabela Perda por Atrito'; app.UITable2 = uitable(app.Perdas_Imediatas); app.UITable2.RowName = cabos; app.UITable2.ColumnEditable = false; app.UITable2.FontName = 'Arial'; app.UITable2.FontSize = 12; app.UITable2.Position = [161 227 321 137]; 'Tabela Perda por Acomodacao'; app.UITable2_4 = uitable(app.Perdas_Imediatas); app.UITable2_4.RowName = cabos; app.UITable2_4.ColumnEditable = false; app.UITable2_4.FontName = 'Arial'; app.UITable2_4.FontSize = 12; app.UITable2_4.Position = [161 33 321 137]; 'Tabela Perda por Deformação Imediata do Concreto'; app.UITable2_3 = uitable(app.Perdas_Imediatas); app.UITable2_4.RowName = cabos; app.UITable2_4.ColumnEditable = false; app.UITable2_4.FontName = 'Arial'; app.UITable2_4.FontSize = 12;
60
app.UITable2_3.Position = [520 227 321 137]; y = zeros(Numerocabos, (divisoes+1)); Pat = zeros(Numerocabos,(divisoes+1)); xp = zeros(Numerocabos, (divisoes+1)); x = zeros(Numerocabos, (divisoes+1)); alfac = zeros(Numerocabos, (divisoes)/2); alfa = zeros(Numerocabos, 1); x_ac= zeros(Numerocabos, (divisoes+1)); dP_anc = zeros(Numerocabos, (divisoes+1)); P_enc = zeros(Numerocabos, (divisoes+1)); e = zeros(Numerocabos, (divisoes+1)); sigma_CG = zeros(Numerocabos, (divisoes+1)); Mg = zeros(Numerocabos, (divisoes+1)); coeficientepat = zeros(Numerocabos, (divisoes+1)); lambda = zeros(Numerocabos, (divisoes+1)); e_topo = zeros(Numerocabos, (divisoes+1)); 'Saída de dados'; for i = 1:Numerocabos xp(i,1) = 0; for j = 1:(divisoes) xp(i,j+1) = xp(i,j) + (L/divisoes); end x(i,1) = 0; for j = 1:(divisoes/2) x(i,j+1) = x(i,j) + (L/divisoes); end for j = ((divisoes/2)+1) : divisoes x(i,j+1) = x(i,j) - (L/divisoes); end Mg(1:Numerocabos, 1:(divisoes+1)) = ((((G0k + G1k) .* x(1:Numerocabos, 1:(divisoes+1))/2)).* x(1:Numerocabos, 1:(divisoes+1)))*(1 - L); y_pl = app.UITable.Data(3:(Numerocabos+2),:); e(i,:) = y_inf - y_pl(i,:); e_topo(i,:) = h - y_pl(i,:); end 'Perdas por atrito'; alfa(1:Numerocabos,1) = atan((e_topo(1:Numerocabos,2)-e_topo(1:Numerocabos,1))./(L/divisoes)); for z = 2 : (divisoes/2)
61
alfa(1:Numerocabos, z) = (atan((e_topo(1:Numerocabos,z)-e_topo(1:Numerocabos,(z-1)))./(L/divisoes)) + atan((e_topo(1:Numerocabos,(z+1))-e_topo(1:Numerocabos,z))./(L/divisoes)))/2; alfa(1:Numerocabos, (divisoes/2)+1) = 0; end somat_alfa(1:Numerocabos,1) = 0; for i = 2:((divisoes/2)+1) somat_alfa(1:Numerocabos,i) = abs(alfa(1:Numerocabos,(i-1))-alfa(1:Numerocabos,i)) + somat_alfa(1:Numerocabos,i-1); end B = fliplr(somat_alfa); somat_alfa(1:Numerocabos, ((divisoes/2)+1) : (divisoes+1)) = B; coeficientepat(1:Numerocabos, (1:(divisoes+1))) = (exp(-(ni.*somat_alfa(1:Numerocabos,1:(divisoes+1))+ k.*x(1:Numerocabos,1:(divisoes+1))))); Pat(1:Numerocabos, 1:(divisoes+1)) = P_i(1:Numerocabos, 1:(divisoes+1)) .* coeficientepat(1:Numerocabos, 1:(divisoes+1)) ; app.UITable2.Data = Pat; app.UITable2.ColumnName = {xp(1, 1:(divisoes+1))}; 'Perdas por acomodação de ancoragem'; m(1:Numerocabos,1) = 0; for j = 2:((divisoes/2)+1) m(1:Numerocabos,j) = (1/(L*50)).*((Pat(1:Numerocabos,j-1)- Pat(1:Numerocabos,j))); %kN/cm end MMMM = fliplr(m); m(1:Numerocabos, ((divisoes/2)+1) : (divisoes+1)) = MMMM; for j = 1: (divisoes+1) x_ac(1:Numerocabos,j) = (((desl*Ep*(Ap/Numerocabos))./(m(1:Numerocabos,j))).^(0.5)); %cm if x_ac(1:Numerocabos,j) < (L/2)*100 dP_anc(1:Numerocabos,j) = (2*desl*Ep*(Ap/Numerocabos))./(x_ac(1:Numerocabos,j)); else dP_anc(1:Numerocabos,j) = ((4*desl*Ep*(Ap/Numerocabos))- (m(1:Numerocabos,j)*((L*50)^2)))/(100*L); end end P_enc(1:Numerocabos, 1) = Pat(1:Numerocabos, (divisoes/2)+1) - dP_anc(1:Numerocabos,1); P_enc(1:Numerocabos, (divisoes+1)) = P_enc(1:Numerocabos, 1); P_enc(1:Numerocabos, 1:divisoes) = P_enc(1:Numerocabos, 1) + m(1:Numerocabos, 1:divisoes).*x(1:Numerocabos, 1:divisoes).*100;
62
app.UITable2_4.Data = P_enc; app.UITable2_4.ColumnName = {xp(1, 1:(divisoes+1))}; 'Perdas por deformação imediata do concreto'; sigma_CG(1:Numerocabos,:) = ((1/Ic).*(Mg(1:Numerocabos,:) .* e(1:Numerocabos,:))); sigma_CP(1:Numerocabos,:) = ((P_enc/A_conc)+((P_enc.*(e(1:Numerocabos,:).^2))./Ic)); dsigma_PEE(1:Numerocabos,:) = -(alfa_p/4).*(sigma_CP(1:Numerocabos,:) + sigma_CG(1:Numerocabos,:)).*(cabos(1:Numerocabos,1)./(2.*cabos(1:Numerocabos,1))); PEE = dsigma_PEE(1:Numerocabos,:) .* Ap; Pa(1:Numerocabos,:) = P_enc(1:Numerocabos,:) + PEE(1:Numerocabos,:); app.UITable2_3.Data = Pa; app.UITable2_3.ColumnName = {xp(1, 1:(divisoes+1))}; end % Button pushed function: PerdasProgressivasButton function PerdasProgressivasButtonPushed(app, event) alfa_p1 = app.Ep.Value/app.Eci.Value; divisoes = app.Divisoes_viga.Value; Ap =app.Areadotada_2.Value/(10^4); Ep = app.Ep.Value * 100; fctk = app.Fctk.Value * 10; fptk = app.Fptk.Value * 10; fpyk = app.Fpyk.Value * 10; L = app.Comprimento.Value; Numerocabos = app.NumerodeCabos.Value; y_inf = app.y_inf1.Value; Ic = app.Ic1.Value; A_conc = app.Ac.Value; G0k = app.G0k_.Value; G1k = app.G1k_.Value; fck = app.Fck.Value; Pa = app.UITable2_3.Data; sigma_p0 = Pa/Ap; classe = app.ClasseCPDropDown.Value; ro = Ap/A_conc; switch classe case 'I, I-S, II-E, II-F, II-z, Classes 25, 32 e 50' alfa_p = 2; case 'III-25, III-32, III-40, IV-25, IV-32, RS' alfa_p = 1; otherwise alfa_p = 3; end cabos = zeros(Numerocabos-1); cabos(1) = 1; for i = 1:Numerocabos-1
63
cabos(i+1) = cabos(i) + 1; end app.UITable2_2 = uitable(app.Perdas_Imediatas); app.UITable2_2.RowName = cabos; app.UITable2_2.ColumnEditable = false; app.UITable2_2.FontName = 'Arial'; app.UITable2_2.FontSize = 12; app.UITable2_2.Position = [520 33 321 136]; 'Perdas Progressivas'; u = app.Perimetro.Value; UR = app.UDropDown.Value; t0 = app.t0diasDropDown.Value; coef_gama = 1 + exp(-7.8 + (0.1*UR)); espessura_ficticia = coef_gama(1,1) *((2*(10^4)*A_conc)/u); 'Tabelas da NBR6118:2014'; 'Coeficiente de Fluência e deformação especifica de retracao'; if fck < 48 coeficientedefluencia = [4.6 3.8 3.9 3.3 2.8 2.4 2.0 1.9; 3.4 3.0 2.9 2.6 2.2 2.0 1.6 1.5; 2.9 2.7 2.5 2.3 1.9 1.8 1.4 1.4]; else coeficientedefluencia = [2.7 2.4 2.4 2.1 1.9 1.8 1.6 1.5; 2.0 1.8 1.7 1.6 1.4 1.3 1.1 1.1; 1.7 1.6 1.5 1.4 1.2 1.2 1.0 1.0]; end deformacaoespecretracao = - [0.53 0.47 0.48 0.43 0.36 0.32 0.18 0.15; 0.44 0.45 0.41 0.41 0.33 0.31 0.17 0.15; 0.39 0.43 0.36 0.40 0.30 0.31 0.17 0.15]; switch t0 case '5' linha = 1; case '30' linha = 2; otherwise linha = 3; end switch UR case '55' coluna = 3; case '75' coluna = 5; case '90' coluna = 7; otherwise coluna = 1; end
64
phi = coeficientedefluencia(linha,coluna) + (coeficientedefluencia(linha,(coluna+1))-coeficientedefluencia(linha,coluna))*((espessura_ficticia-2)/40); epslon_cs = deformacaoespecretracao(linha,coluna) + (deformacaoespecretracao(linha,(coluna+1))-deformacaoespecretracao(linha,coluna))*((espessura_ficticia-2)/40); 'PERDA POR RETRACAO'; dsigma_ps = epslon_cs(1,1) * Ep/1000; a = app.DropDownrel_2.Value; 'Tabela de psi - 8.4 da NBR6118:2014'; switch a case {'CP 145 RB' , 'CP 150 RB' , 'CP 170 RB' , 'CP 175 RB (A = 27,8mm²)', 'CP 175 RB (A = 19,2mm²)', 'CP 175 RB (A = 12,3mm²)'} valoresdepsi1000 = [0.5 0 ;0.6 1.0 ;0.7 2.0 ;0.8 3.0]; case {'CP 170 RN' , 'CP 175 RN (A = 27,8mm²)', 'CP 175 RN (A = 19,2mm²)', 'CP 175 RN (A = 12,3mm²)'} valoresdepsi1000 = [0.5 0 ;0.6 2.5 ;0.7 5.0 ;0.8 8.5]; otherwise valoresdepsi1000 = [0.5 0 ;0.6 1.3 ;0.7 2.5 ;0.8 3.5]; end b = (10^-3)*sigma_p0/fptk; if (b > 0.6) & (b < 0.7) linhapsi = 2; elseif (b > 0.7) & (b < 0.8) linhapsi = 3; else linhapsi = 1; end psi1000 = valoresdepsi1000((linhapsi+1),2) - ((valoresdepsi1000((linhapsi+1),1) - b) .* (valoresdepsi1000((linhapsi+1),2) - valoresdepsi1000((linhapsi),2))) ./ (valoresdepsi1000((linhapsi+1),1) - valoresdepsi1000((linhapsi),1)); y = zeros(Numerocabos, (divisoes+1)); xp = zeros(Numerocabos, (divisoes+1)); x = zeros(Numerocabos, (divisoes+1)); e = zeros(Numerocabos, (divisoes+1)); Mg = zeros(Numerocabos, (divisoes+1)); dsigma_pr = zeros(Numerocabos, (divisoes+1)); sigmac_p0g = zeros(Numerocabos, (divisoes+1)); ni_ = zeros(Numerocabos, (divisoes+1)); ee = zeros(Numerocabos, (divisoes+1)); dsigma_pc = zeros(Numerocabos, (divisoes+1)); sigma_p0 = zeros(Numerocabos, (divisoes+1)); beta = zeros(Numerocabos, (divisoes+1)); dsigma_p = zeros(Numerocabos, (divisoes+1)); 'Saída de dados'; for i = 1:Numerocabos
65
xp(i,1) = 0; for j = 1:(divisoes) xp(i,j+1) = xp(i,j) + (L/divisoes); end x(i,1) = 0; for j = 1:(divisoes/2) x(i,j+1) = x(i,j) + (L/divisoes); end for j = ((divisoes/2)+1) : divisoes x(i,j+1) = x(i,j) - (L/divisoes); end Mg(1:Numerocabos, :) = ((G0k) .* (x(1:Numerocabos, :).^2)./2) - ((G0k) .* (x(1:Numerocabos, :).*L)./2); y(1:Numerocabos,:) = app.UITable.Data(3:(Numerocabos+2),:); e(1:Numerocabos,:) = (y_inf - y(1:Numerocabos,:)); ee(1:Numerocabos,:) = e(1:Numerocabos,:) .* e(1:Numerocabos,:); 'PERDA POR FLUÊNCIA'; sigmac_p0g(i,:) =((Pa(i,:)/A_conc) + ((Pa(i,:).* (ee(i,:)./Ic)) + ((Mg(i,:) .* e(i,:))./Ic)))/10000; dsigma_pc(i,:) = - (alfa_p1(1,1) * phi(1,1)).* sigmac_p0g(i,:); 'PERDA POR RELAXACAO'; sigma_p0(i,:) = Pa(i,:)/(Ap*(10^4)); chi = - log(1 - (2.5* psi1000/100)); dsigma_pr(i,:) = -chi(1,1) .*(sigma_p0(i,:)); ni_(i,:) = 1 + (A_conc/Ic).*(e(i,:).^2); beta(1:Numerocabos,:) = 1 + chi(1,1) + (alfa_p1(1,1)*ro(1,1)*(1+(phi(1,1)/2))).*(1 + (A_conc(1,1)/Ic(1,1)).* ee(1:Numerocabos,:)); dsigma_p(1:Numerocabos,:) = (dsigma_ps + dsigma_pc(1:Numerocabos,:) + dsigma_pr(1:Numerocabos,:))./beta(1:Numerocabos,:); Pp(1:Numerocabos,:) = ((10^4)*Ap(1,1)) .* dsigma_p(1:Numerocabos,:); P_inf = Pa + Pp; app.UITable2_2.Data = P_inf; app.UITable2_2.ColumnName = {xp(1, 1:(divisoes+1))}; end end
66
% Button pushed function: ProtensoLimitadaButton function ProtensoLimitadaButtonPushed(app, event) app.Combinacao1.Value = 'Combinação Frequente'; app.CombinacaoD.Value = 'Combinação Quase-Permanente'; divisoes = app.Divisoes_viga.Value; L = app.Comprimento.Value; h = app.h1.Value; Ap = app.Areadotada_2.Value; fptk = app.Fptk.Value; fpyk = app.Fpyk.Value; fck = app.Fck.Value; fckj = app.Fckj.Value; fctmj = app.Fctmj.Value; fctk = app.Fctk.Value; G0k = app.G0k_.Value; G1k = app.G1k_.Value; Qk = app.Qk_.Value; W_inf1 = app.W_inf.Value; W_sup1 = app.W_sup.Value; Ic1 = app.Ic1.Value; Ac1 = app.Ac.Value; Psi1 = app.psi1.Value; Psi2 = app.psi2.Value; y_inf1 = app.y_inf1.Value; y_sup1 = app.y_sup1.Value; y_inf = linspace(y_inf1,y_inf1,divisoes+1); y_sup = linspace(y_sup1,y_sup1,divisoes+1); Numerocabos = app.NumerodeCabos.Value; P_inf = app.UITable2_2.Data; add = app.UITable2.Data; cabos(1) = 1; for i = 1:Numerocabos-1 cabos(i+1) = cabos(i) + 1; end y_pl = app.UITable.Data(3:(Numerocabos+2),:); e_i(1:Numerocabos,:) = y_inf - y_pl(1:Numerocabos,:); e_s(1:Numerocabos,:) = h - e_i(1:Numerocabos,:); 'Correção da perda'; fctk = app.Fctk.Value * 1000; W_inf = app.W_inf.Value; A_conc = app.Ac.Value; fptk = app.Fptk.Value * 1000; fpyk = app.Fpyk.Value * 1000; ep = (app.y_inf1.Value - app.cobrimento.Value); P_estimada = app.Perdaestimada.Value / 100; Mc_f = app.Mc_f.Value; Mc_qp = app.Mc_qp.Value; bw_r = app.bw_r.Value; h_r = app.h_r.Value;
67
P0 = add(1,1); P_ini(1:Numerocabos, 1:(divisoes+1)) = P0; P_cf(1:Numerocabos, 1:(divisoes+1)) = app.Pc_f.Value; P_cqp(1:Numerocabos, 1:(divisoes+1)) = app.Pc_qp.Value; 'Cálculo das tensões máximas inferior e superior'; sigma_supf(1,(1:divisoes+1)) = -0.7 * fck; sigma_inff(1,(1:divisoes+1)) = fctk; sigma_infqp(1,(1:divisoes+1)) = 0; x(1) = 0; for i = 1:(divisoes/2) x(i+1) = x(i) + (L/divisoes); end for i = (divisoes/2)+1 : divisoes x(i+1) = x(i) - (L/divisoes); end xp(1) = 0; for i = 1:(divisoes) xp(i+1) = xp(i) + (L/divisoes); end 'Cálculos de Momentos e Tensões'; Mg_F(1:Numerocabos, 2:divisoes+1)= ((((P_cf(1:Numerocabos, 2:divisoes+1)) .* x(1,2:divisoes+1))/2).*(x(1,2:divisoes+1) - L)); Mg_F(1:Numerocabos, 1) = Mg_F(1:Numerocabos, divisoes+1); MCF = Mg_F; tabela1 = [sigma_supf ; sigma_inff/1000 ; abs(MCF)]; ee(1:Numerocabos,:) = e_i(1:Numerocabos,:).*e_i(1:Numerocabos,:); sigma_if(1:Numerocabos,:) = (-P_inf(1:Numerocabos,:)./Ac1) + ((-P_inf(1:Numerocabos,:).*e_i(1:Numerocabos,:).*y_inf1)./Ic1) + ((abs(MCF(1:Numerocabos,:)).*y_inf1)./Ic1); sigma_sf(1:Numerocabos,:) = (-P_inf(1:Numerocabos,:)./Ac1) + ((P_inf(1:Numerocabos,:).*e_i(1:Numerocabos,:).*y_sup1)./Ic1) + ((-abs(MCF(1:Numerocabos,:)).*y_sup1)./Ic1); 'Saída de Dados'; 'Momento'; app.UITable_2 = uitable(app.ELSFormaodeFissurasTab); app.UITable_2.ColumnName = xp; app.UITable_2.RowName = {'σsup (MPa) ≥', 'σinf (MPa) ≤' , cabos};
68
app.UITable_2.Data = tabela1; app.UITable_2.FontName = 'Arial'; app.UITable_2.FontSize = 12; app.UITable_2.Position = [6 245 838 91]; 'Tensão na Borda Superior'; app.UITable_3 = uitable(app.ELSFormaodeFissurasTab); app.UITable_3.ColumnName = xp; app.UITable_3.RowName = cabos; app.UITable_3.Data = sigma_sf./1000; app.UITable_3.FontName = 'Arial'; app.UITable_3.FontSize = 12; app.UITable_3.Position = [6 129 838 91]; 'Tensão da Borda Inferior'; app.UITable_4 = uitable(app.ELSFormaodeFissurasTab); app.UITable_4.ColumnName = xp; app.UITable_4.RowName = cabos; app.UITable_4.Data = sigma_if./1000; app.UITable_4.FontName = 'Arial'; app.UITable_4.FontSize = 12; app.UITable_4.Position = [6 13 838 91]; 'Cálculos de Momentos e Tensões'; Mg_QP(1:Numerocabos, 2:divisoes+1)= ((((P_cqp(1:Numerocabos, 2:divisoes+1)) .* x(1,2:divisoes+1))/2).*(x(1,2:divisoes+1) - L)); Mg_QP(1:Numerocabos, 1) = Mg_QP(1:Numerocabos, divisoes+1); MCQP = Mg_QP; tabelaqp = [sigma_supf ; sigma_infqp ; abs(MCQP)]; sigma_iqp(1:Numerocabos,:) =(-P_inf(1:Numerocabos,:)./Ac1) + ((-P_inf(1:Numerocabos,:).*e_i(1:Numerocabos,:).*y_inf1)./Ic1) + ((abs(MCQP(1:Numerocabos,:)).*y_inf1)./Ic1); sigma_sqp(1:Numerocabos,:) = (-P_inf(1:Numerocabos,:)./Ac1) + ((P_inf(1:Numerocabos,:).*e_i(1:Numerocabos,:).*y_sup1)./Ic1) + ((-abs(MCQP(1:Numerocabos,:)).*y_sup1)./Ic1); 'Saída de Dados'; 'Momento'; app.UITable_5 = uitable(app.ELSDescompressoTab); app.UITable_5.ColumnName = xp; app.UITable_5.RowName = {'σsup (MPa) ≥', 'σinf (MPa) ≤', cabos}; app.UITable_5.Data = tabelaqp; app.UITable_5.FontName = 'Arial'; app.UITable_5.FontSize = 12; app.UITable_5.Position = [6 245 838 91]; 'Tensão na Borda Superior';
69
app.UITable_6 = uitable(app.ELSDescompressoTab); app.UITable_6.ColumnName = xp; app.UITable_6.RowName = cabos; app.UITable_6.Data = sigma_sqp./1000; app.UITable_6.FontName = 'Arial'; app.UITable_6.FontSize = 12; app.UITable_6.Position = [6 129 838 91]; 'Tensão da Borda Inferior'; app.UITable_7 = uitable(app.ELSDescompressoTab); app.UITable_7.ColumnName = xp; app.UITable_7.RowName = cabos; app.UITable_7.Data = sigma_iqp./1000; app.UITable_7.FontName = 'Arial'; app.UITable_7.FontSize = 12; app.UITable_7.Position = [6 13 838 91]; end % Callback function function SecaoT(app, event) 'Propriedades para a seção T'; hw_t = (app.hw_t.Value)/100; hf1_t = (app.hf1_t.Value)/100; hf2_t = (app.hf2_t.Value)/100; bf_t = (app.bf_t.Value)/100; bw_t = (app.bw_t.Value)/100; A1_T = bw_t *(hw_t + hf2_t); A2_T = (((bf_t - bw_t) / 2) * hf1_t) * 2; A3_T = ((((bf_t - bw_t) / 2) * (hf2_t - hf1_t)) / 2) * 2; app.Ac.Value = A1_T + A2_T + A3_T; y1_t = (hw_t + hf2_t) / 2; y2_t = hf1_t / 2; y3_t = hf1_t + ((hf2_t - hf1_t) / 3); S_A.Y = (A1_T * y1_t) + (A2_T * y2_t) + (A3_T * y3_t); y_supt = S_A.Y / (A1_T + A2_T + A3_T); y_inft = (hw_t + hf2_t) - y_supt; app.h1.Value = hw_t + hf2_t; app.y_sup1.Value = y_supt; app.y_inf1.Value = y_inft; I1cg_t = bw_t * ((hw_t + hf2_t)^3)/12; I2cg_t = (((bf_t - bw_t) / 2) * (hf1_t ^ 3)) / 6; I3cg_t = (((bf_t - bw_t) / 2) * ((hf2_t - hf1_t)^3)) / 18;
70
I1_t = A1_T * ((((hw_t + hf2_t) / 2) - y_inft) ^ 2); I2_t = A2_T * ((hw_t +(hf2_t -(hf1_t/2)) - y_inft) ^ 2); I3_t = A3_T * ((hw_t + ((2/3)*(hf2_t - hf1_t)) - y_inft) ^ 2); app.Ic1.Value = I1cg_t + I1_t + I2cg_t + I2_t + I3cg_t + I3_t; Ic1 = app.Ic1.Value; app.W_inf.Value = Ic1/y_inft; app.W_sup.Value = Ic1/y_supt; app.U.Value = ((hw_t+hf1_t)*2)+ bw_t + bf_t + 2*(((((bf_t - bw_t)/2)^2)+(hf2_t - hf1_t)^2)^0.5); app.Perimetro.Value = (app.U.Value - bf_t)*100; app.bw_r.Value = 0; app.h_r.Value = 0; app.G0k_.Value = (25 * app.Ac.Value); app.hw_i.Value = 0; app.hf1_i.Value = 0; app.hf2_i.Value = 0; app.hb1_i.Value = 0; app.hb2_i.Value = 0; app.bf_i.Value = 0; app.bw_i.Value = 0; app.bb_i.Value = 0; end % Button pushed function: Traca_Cabos function TRACADO(app, event) format shortg
divisoes = app.Divisoes_viga.Value; L = app.Comprimento.Value; Ap = app.Areadotada_2.Value; P_estimada = app.Perdaestimada.Value; Dropdownrel = app.DropDownrel.Value; fptk = app.Fptk.Value; fpyk = app.Fpyk.Value; fck = app.Fck.Value; fckj = app.Fckj.Value; fctmj = app.Fctmj.Value; fctk = app.Fctk.Value; G0k = app.G0k_.Value; G1k = app.G1k_.Value; Qk = app.Qk_.Value; W_inf1 = app.W_inf.Value; W_sup1 = app.W_sup.Value; Ac1 = app.Ac.Value; Psi1 = app.psi1.Value; y_inf1 = app.y_inf1.Value; y_sup1 = app.y_sup1.Value; y_inf = linspace(y_inf1,y_inf1,divisoes+1); y_sup = linspace(y_sup1,y_sup1,divisoes+1);
71
Ic1 = app.Ic1.Value; switch Dropdownrel case 'Relaxação Normal' coefptk = 0.74; coefpyk = 0.87; case 'Baixa Relaxação' coefptk = 0.74; coefpyk = 0.82; end if ((coefptk * fptk) > (coefpyk * fpyk)) sigma = (coefptk * fptk); else sigma = (coefpyk * fpyk); end p0 = (0.9 * sigma * Ap); pinf = ((1 - (P_estimada/100)) * sigma * Ap); 'Cálculo das tensões máximas inferior e superior'; sigma_is = fctk*1000; %tensão máxima inferior sigma_iu = -0.7 * fckj*1000; %tensão mínima superior x(1) = 0; for i = 1:(divisoes/2) x(i+1) = x(i) + (L/divisoes); end for i = (divisoes/2)+1 : divisoes x(i+1) = x(i) - (L/divisoes); end xp(1) = 0; for i = 1:(divisoes) xp(i+1) = xp(i) + (L/divisoes); end 'Limitação de tensões para o estado em serviço'; 'Na borda inferior'; Mg(2:divisoes+1)= (((G0k + G1k) .* x(2:divisoes+1))/2).* (x(2:divisoes+1)- L); Mg(1) = Mg(divisoes+1); Mq(2:divisoes+1) = (((Psi1*Qk) .* x(2:divisoes+1))/2).* (x(2:divisoes+1)- L); Mq(1) = Mq(divisoes+1);
72
'Limitação de tensões para o ato da protensão'; 'Na borda inferior'; Mg2 = ((G0k .* x)/2).* (x - L); 'Borda inferior - força inicial de protensão e peso próprio'; ep_iu = -(Ic1/(pinf*y_inf1)) .*(-sigma_is - (pinf/Ac1) + ((abs(Mg+Mq)).*(y_inf1/Ic1))); 'Borda superior - força final de protensão'; ep_su = (Ic1/(p0*y_sup1)) .*(sigma_iu + (p0/Ac1) - ((abs(Mg2)).*(y_sup1/Ic1))); h1 = app.h1.Value; y_1 = (y_inf1 + ep_iu); y_2 = (h1 + ep_su); 'Ajuste das funções para equações de segundo grau'; coef=polyfit(xp,y_1,2); as=coef(1); bs=coef(2); cs=coef(3); y_1best= as*xp.^2 +bs*xp + cs; coef=polyfit(xp,y_2,2); ai=coef(1); bi=coef(2); ci=coef(3); y_2best= ai*xp.^2 +bi*xp + ci; ax = app.UIAxes2; ax.XLim = [0 L]; ax.YLim = [0 h1]; plot(app.UIAxes2, xp, y_1best); hold (ax,'on') plot(app.UIAxes2, xp, y_2best); hold (ax,'on') pan(app.UIAxes2,'on'); zoom(app.UIAxes2,'on'); Numerocabos = app.NumerodeCabos.Value; cabos(1) = 1; for i = 1:Numerocabos-1 cabos(i+1) = cabos(i) + 1; end app.UITable = uitable(app.TraadodosCabosPanel); app.UITable.ColumnName = xp; app.UITable.RowName = {'y_s';'y_i'; cabos}; app.UITable.Data = [y_1(1:divisoes+1) ; y_2(1:divisoes+1) ; zeros(Numerocabos,(divisoes+1))];
73
app.UITable.ColumnEditable = true; app.UITable.FontName = 'Arial'; app.UITable.FontSize = 12; app.UITable.Position = [15 11 604 175]; % Callback function function aco_final(app, event) Dropdownrel_2 = app.DropDownrel_2.Value; Numerocabos = app.NumerodeCabos.Value; areaminima = app.Areaminima.Value; switch Dropdownrel_2 case 'CP 145 RB' ncord1 = areaminima/0.636; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.636; case 'CP 150 RB' ncord1 = areaminima/0.503; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.503; case 'CP 170 RB' ncord1 = areaminima/0.385; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.385; case 'CP 175 RB (A = 27,8mm²)' ncord1 = areaminima/0.283; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.283; case 'CP 175 RN (A = 27,8mm²)' ncord1 = areaminima/0.283; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.283; case 'CP 175 RB (A = 19,2mm²)' ncord1 = areaminima/0.196; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.196; case 'CP 175 RN (A = 19,2mm²)' ncord1 = areaminima/0.196; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.196;
74
case 'CP 175 RB (A = 12,3mm²)' ncord1 = areaminima/0.126; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.126; case 'CP 175 RN (A = 12,3mm²)' ncord1 = areaminima/0.126; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.126; case 'CP 170 RN' ncord1 = areaminima/0.385; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.385; case 'Cord. CP 190 RB 3 x 3,0' ncord1 = areaminima/0.22; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.22; case 'Cord. CP 190 RB 3 x 3,5' ncord1 = areaminima/0.30; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.30; case 'Cord. CP 190 RB 3 x 4,0' ncord1 = areaminima/0.38; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.38; case 'Cord. CP 190 RB 3 x 4,5' ncord1 = areaminima/0.47; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.47; case 'Cord. CP 190 RB 3 x 5,0' ncord1 = areaminima/0.67; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.67; case 'Cord. CP 190 RB 9,50' ncord1 = areaminima/0.56; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 0.56;
75
case 'Cord. CP 190 RB 12,70' ncord1 = areaminima/1.01; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 1.01; case 'Cord. CP 190 RB 15,20' ncord1 = areaminima/1.43; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 1.43; case 'Cord. CP 190 RB 15,70' ncord1 = areaminima/1.50; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 1.50; case 'Cord. CP 210 RB 12,70' ncord1 = areaminima/1.01; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 1.01; case 'Cord. CP 210 RB 15,20' ncord1 = areaminima/1.43; numerocordoalhas = (ceil(ncord1 / Numerocabos)) * Numerocabos; areaadotada_2 = numerocordoalhas * 1.43; end app.Numerocordoalhas_2.Value = numerocordoalhas; app.Areadotada_2.Value = areaadotada_2; end % Callback function function combinacaoButtonPushed(app, event) G0k = app.G0k_.Value; G1k = app.G1k_.Value; Qk = app.Qk_.Value; L = app.Comprimento.Value; psi1 = app.psi1.Value; psi2 = app.psi2.Value; 'Estado Limite de Formação de Fissuras'; app.Pc_f.Value = G0k + G1k + psi1*Qk; Pc_f = app.Pc_f.Value; app.Mc_f.Value = (Pc_f * (L^2))/8; 'Estado Limite de Descompressão'; app.Pc_qp.Value = G0k + G1k + psi2*Qk;
76
Pc_qp = app.Pc_qp.Value; app.Mc_qp.Value = (Pc_qp * (L^2))/8; end % Callback function function materiaisButtonPushed(app, event) fck = app.Fck.Value; fckj = app.Fckj.Value; app.Fctk.Value = 0.7 * 0.3 * (fck^(2/3)); app.Fctmj.Value = 0.3 * (fckj ^ (2/3)); end % Callback function function retangularButtonPushed(app, event) 'Propriedades para a seção retangular'; bw_r = (app.bw_r.Value)/100; h_r = (app.h_r.Value)/100; app.Ac.Value = (bw_r * h_r); app.Ic1.Value = (bw_r * (h_r^3))/12; app.h1.Value = h_r; app.y_inf1.Value = h_r/2; app.y_sup1.Value = h_r/2; Ic1 = app.Ic1.Value; y_inf1 = app.y_inf1.Value; y_sup1 = app.y_sup1.Value; app.W_inf.Value = Ic1/y_inf1; app.W_sup.Value = Ic1/y_sup1; app.G0k_.Value = (25 * app.Ac.Value); app.U.Value = 2*(bw_r+h_r); app.Perimetro.Value = (app.U.Value - bw_r)*100; app.hw_i.Value = 0; app.hf1_i.Value = 0; app.hf2_i.Value = 0; app.hb1_i.Value = 0; app.hb2_i.Value = 0; app.bf_i.Value = 0; app.bw_i.Value = 0; app.bb_i.Value = 0; app.hw_t.Value = 0; app.hf1_t.Value = 0; app.hf2_t.Value = 0; app.bf_t.Value = 0;
77
app.bw_t.Value = 0; end % Button pushed function: Button_5 function info(app, event) hFigure = openfig('info.fig'); set(hFigure, 'MenuBar', 'none'); set(hFigure, 'ToolBar', 'none'); end end % App initialization and construction methods (Access = private) % Create UIFigure and components function createComponents(app) % Create UIFigure app.UIFigure = uifigure; app.UIFigure.AutoResizeChildren = 'off'; app.UIFigure.Color = [1 1 1]; app.UIFigure.NextPlot = 'new'; app.UIFigure.Position = [101 101 870 475]; app.UIFigure.Name = 'Birck'; app.UIFigure.Resize = 'off'; % Create TabGroup app.TabGroup = uitabgroup(app.UIFigure); app.TabGroup.AutoResizeChildren = 'off'; app.TabGroup.Position = [1 1 870 475]; % Create DADOS_INICIAIS app.DADOS_INICIAIS = uitab(app.TabGroup); app.DADOS_INICIAIS.AutoResizeChildren = 'off'; app.DADOS_INICIAIS.Title = 'DADOS INICIAIS'; app.DADOS_INICIAIS.BackgroundColor = [0.8902 0.9294 0.9804]; % Create Panel app.Panel = uipanel(app.DADOS_INICIAIS); app.Panel.AutoResizeChildren = 'off'; app.Panel.Title = 'Propriedades dos Materiais'; app.Panel.BackgroundColor = [1 1 1]; app.Panel.FontName = 'Arial'; app.Panel.FontWeight = 'bold'; app.Panel.Position = [10 7 200 434]; % Create Label app.Label = uilabel(app.Panel); app.Label.FontName = 'Arial'; app.Label.FontWeight = 'bold'; app.Label.Position = [27 388 53 15]; app.Label.Text = 'Concreto'; % Create Label2 app.Label2 = uilabel(app.Panel); app.Label2.HorizontalAlignment = 'right'; app.Label2.FontName = 'Arial'; app.Label2.Position = [15 318 67 15]; app.Label2.Text = 'fckj (MPa) = '; % Create Fckj app.Fckj = uieditfield(app.Panel, 'numeric'); app.Fckj.Limits = [0 Inf]; app.Fckj.FontName = 'Arial';
78
app.Fckj.Position = [97 316 71 20]; % Create EciGPaLabel app.EciGPaLabel = uilabel(app.Panel); app.EciGPaLabel.HorizontalAlignment = 'right'; app.EciGPaLabel.FontName = 'Arial'; app.EciGPaLabel.Position = [12 273 70 15]; app.EciGPaLabel.Text = 'Eci (GPa) = '; % Create Eci app.Eci = uieditfield(app.Panel, 'numeric'); app.Eci.Limits = [0 Inf]; app.Eci.FontName = 'Arial'; app.Eci.Position = [97 271 71 20]; % Create Label4 app.Label4 = uilabel(app.Panel); app.Label4.FontName = 'Arial'; app.Label4.FontWeight = 'bold'; app.Label4.Position = [27 170 23 15]; app.Label4.Text = 'Aço'; % Create Label5 app.Label5 = uilabel(app.Panel); app.Label5.HorizontalAlignment = 'right'; app.Label5.FontName = 'Arial'; app.Label5.Position = [18 363 64 15]; app.Label5.Text = 'fck (MPa) = '; % Create Fck app.Fck = uieditfield(app.Panel, 'numeric'); app.Fck.ValueChangedFcn = createCallbackFcn(app, @FckValueChanged, true); app.Fck.Limits = [0 190]; app.Fck.FontName = 'Arial'; app.Fck.Position = [97 361 71 20]; % Create fptkkNcmLabel app.fptkkNcmLabel = uilabel(app.Panel); app.fptkkNcmLabel.HorizontalAlignment = 'right'; app.fptkkNcmLabel.FontName = 'Arial'; app.fptkkNcmLabel.Position = [4 144 86 15]; app.fptkkNcmLabel.Text = 'fptk (kN/cm²) = '; % Create Fptk app.Fptk = uieditfield(app.Panel, 'numeric'); app.Fptk.Limits = [0 Inf]; app.Fptk.FontName = 'Arial'; app.Fptk.Position = [105 142 63 20]; % Create fpykkNcmLabel app.fpykkNcmLabel = uilabel(app.Panel); app.fpykkNcmLabel.HorizontalAlignment = 'right'; app.fpykkNcmLabel.FontName = 'Arial'; app.fpykkNcmLabel.Position = [4 99 89 15]; app.fpykkNcmLabel.Text = 'fpyk (kN/cm²) = '; % Create Fpyk app.Fpyk = uieditfield(app.Panel, 'numeric'); app.Fpyk.Limits = [0 Inf]; app.Fpyk.FontName = 'Arial'; app.Fpyk.Position = [108 97 60 20]; % Create EpGPaLabel
79
app.EpGPaLabel = uilabel(app.Panel); app.EpGPaLabel.HorizontalAlignment = 'right'; app.EpGPaLabel.FontName = 'Arial'; app.EpGPaLabel.Position = [14 55 68 15]; app.EpGPaLabel.Text = 'Ep (GPa) = '; % Create Ep app.Ep = uieditfield(app.Panel, 'numeric'); app.Ep.Limits = [0 Inf]; app.Ep.FontName = 'Arial'; app.Ep.Position = [97 53 71 20]; % Create Label9 app.Label9 = uilabel(app.Panel); app.Label9.BackgroundColor = [1 1 1]; app.Label9.HorizontalAlignment = 'right'; app.Label9.FontName = 'Arial'; app.Label9.Position = [15 239 67 15]; app.Label9.Text = 'fctk (MPa) = '; % Create Fctk app.Fctk = uieditfield(app.Panel, 'numeric'); app.Fctk.FontName = 'Arial'; app.Fctk.BackgroundColor = [0.8902 0.9255 0.9804]; app.Fctk.Position = [97 237 71 20]; % Create materiais app.materiais = uibutton(app.Panel, 'push'); app.materiais.ButtonPushedFcn = createCallbackFcn(app, @materiaisButtonPushed, true); app.materiais.FontName = 'Arial'; app.materiais.Position = [49 3 100 25]; app.materiais.Text = 'Calcular'; % Create Label10 app.Label10 = uilabel(app.Panel); app.Label10.BackgroundColor = [1 1 1]; app.Label10.HorizontalAlignment = 'right'; app.Label10.FontName = 'Arial'; app.Label10.Position = [8 205 74 15]; app.Label10.Text = 'fctmj (MPa) = '; % Create Fctmj app.Fctmj = uieditfield(app.Panel, 'numeric'); app.Fctmj.FontName = 'Arial'; app.Fctmj.BackgroundColor = [0.8902 0.9255 0.9804]; app.Fctmj.Position = [97 203 71 20]; % Create Label45_9 app.Label45_9 = uilabel(app.Panel); app.Label45_9.HorizontalAlignment = 'right'; app.Label45_9.FontName = 'Arial'; app.Label45_9.FontSize = 9; app.Label45_9.FontColor = [0.5216 0.5216 0.5216]; app.Label45_9.Position = [36 37 130 15]; app.Label45_9.Text = 'Módulo de elasticidade do aço'; % Create Label45_10 app.Label45_10 = uilabel(app.Panel); app.Label45_10.HorizontalAlignment = 'right'; app.Label45_10.FontName = 'Arial'; app.Label45_10.FontSize = 9;
80
app.Label45_10.FontColor = [0.5216 0.5216 0.5216]; app.Label45_10.Position = [-3 187 169 15]; app.Label45_10.Text = 'Resistência média do concreto à tração'; % Create Label45_13 app.Label45_13 = uilabel(app.Panel); app.Label45_13.HorizontalAlignment = 'right'; app.Label45_13.FontName = 'Arial'; app.Label45_13.FontSize = 9; app.Label45_13.FontColor = [0.5216 0.5216 0.5216]; app.Label45_13.Position = [16 220 150 15]; app.Label45_13.Text = 'Resistência característica à tração'; % Create Label45_14 app.Label45_14 = uilabel(app.Panel); app.Label45_14.HorizontalAlignment = 'right'; app.Label45_14.FontName = 'Arial'; app.Label45_14.FontSize = 9; app.Label45_14.FontColor = [0.5216 0.5216 0.5216]; app.Label45_14.Position = [39 254 127 15]; app.Label45_14.Text = 'Módulo de Elasticidade Inicial'; % Create Label45_16 app.Label45_16 = uilabel(app.Panel); app.Label45_16.HorizontalAlignment = 'right'; app.Label45_16.FontName = 'Arial'; app.Label45_16.FontSize = 9; app.Label45_16.FontColor = [0.5216 0.5216 0.5216]; app.Label45_16.Position = [2 345 165 15]; app.Label45_16.Text = 'Resistência característica do concreto'; % Create Label45_17 app.Label45_17 = uilabel(app.Panel); app.Label45_17.HorizontalAlignment = 'right'; app.Label45_17.FontName = 'Arial'; app.Label45_17.FontSize = 9; app.Label45_17.FontColor = [0.5216 0.5216 0.5216]; app.Label45_17.Position = [15 335 152 15]; app.Label45_17.Text = 'a compressão aos 28 dias de idade'; % Create Label45_18 app.Label45_18 = uilabel(app.Panel); app.Label45_18.HorizontalAlignment = 'right'; app.Label45_18.FontName = 'Arial'; app.Label45_18.FontSize = 9; app.Label45_18.FontColor = [0.5216 0.5216 0.5216]; app.Label45_18.Position = [2 300 165 15]; app.Label45_18.Text = 'Resistência característica do concreto'; % Create Label45_19 app.Label45_19 = uilabel(app.Panel); app.Label45_19.HorizontalAlignment = 'right'; app.Label45_19.FontName = 'Arial'; app.Label45_19.FontSize = 9; app.Label45_19.FontColor = [0.5216 0.5216 0.5216]; app.Label45_19.Position = [23 290 144 15]; app.Label45_19.Text = 'a compressão aos j dias de idade'; % Create Label45_20 app.Label45_20 = uilabel(app.Panel); app.Label45_20.HorizontalAlignment = 'right';
81
app.Label45_20.FontName = 'Arial'; app.Label45_20.FontSize = 9; app.Label45_20.FontColor = [0.5216 0.5216 0.5216]; app.Label45_20.Position = [4 126 163 15]; app.Label45_20.Text = 'Resistência característica à tração do'; % Create Label45_21 app.Label45_21 = uilabel(app.Panel); app.Label45_21.HorizontalAlignment = 'right'; app.Label45_21.FontName = 'Arial'; app.Label45_21.FontSize = 9; app.Label45_21.FontColor = [0.5216 0.5216 0.5216]; app.Label45_21.Position = [70 116 97 15]; app.Label45_21.Text = 'aço da armadura ativa'; % Create Label45_22 app.Label45_22 = uilabel(app.Panel); app.Label45_22.HorizontalAlignment = 'right'; app.Label45_22.FontName = 'Arial'; app.Label45_22.FontSize = 9; app.Label45_22.FontColor = [0.5216 0.5216 0.5216]; app.Label45_22.Position = [41 81 126 15]; app.Label45_22.Text = 'Resistência característica de'; % Create Label45_23 app.Label45_23 = uilabel(app.Panel); app.Label45_23.HorizontalAlignment = 'right'; app.Label45_23.FontName = 'Arial'; app.Label45_23.FontSize = 9; app.Label45_23.FontColor = [0.5216 0.5216 0.5216]; app.Label45_23.Position = [4 71 163 15]; app.Label45_23.Text = 'escoamento do aço da armadura ativa'; % Create Panel2 app.Panel2 = uipanel(app.DADOS_INICIAIS); app.Panel2.AutoResizeChildren = 'off'; app.Panel2.Title = 'Geometria da viga'; app.Panel2.BackgroundColor = [1 1 1]; app.Panel2.FontName = 'Arial'; app.Panel2.FontWeight = 'bold'; app.Panel2.Position = [229 7 412 434]; % Create Label15 app.Label15 = uilabel(app.Panel2); app.Label15.HorizontalAlignment = 'right'; app.Label15.FontName = 'Arial'; app.Label15.Position = [45 381 41 15]; app.Label15.Text = 'L (m) = '; % Create Comprimento app.Comprimento = uieditfield(app.Panel2, 'numeric'); app.Comprimento.Limits = [0 Inf]; app.Comprimento.FontName = 'Arial'; app.Comprimento.Position = [101 379 71 20]; % Create Label28 app.Label28 = uilabel(app.Panel2); app.Label28.FontName = 'Arial'; app.Label28.FontWeight = 'bold'; app.Label28.Position = [27 328 190 15]; app.Label28.Text = 'Propriedades da Seção Adotada';
82
% Create Label48 app.Label48 = uilabel(app.Panel2); app.Label48.HorizontalAlignment = 'right'; app.Label48.FontName = 'Arial'; app.Label48.FontSize = 9; app.Label48.FontColor = [0.5216 0.5216 0.5216]; app.Label48.Position = [85 363 87 15]; app.Label48.Text = 'Comprimento da Viga'; % Create TabGroup2 app.TabGroup2 = uitabgroup(app.Panel2); app.TabGroup2.AutoResizeChildren = 'off'; app.TabGroup2.Position = [1 1 411 307]; % Create Tab4 app.Tab4 = uitab(app.TabGroup2); app.Tab4.AutoResizeChildren = 'off'; app.Tab4.Title = 'Geral'; app.Tab4.BackgroundColor = [1 1 1]; % Create Label23 app.Label23 = uilabel(app.Tab4); app.Label23.HorizontalAlignment = 'right'; app.Label23.FontName = 'Arial'; app.Label23.Position = [34 257 52 15]; app.Label23.Text = 'Ac (m²) = '; % Create Ac app.Ac = uieditfield(app.Tab4, 'numeric'); app.Ac.Limits = [0 Inf]; app.Ac.FontName = 'Arial'; app.Ac.BackgroundColor = [0.8902 0.9255 0.9804]; app.Ac.Position = [101 255 71 20]; % Create Label21 app.Label21 = uilabel(app.Tab4); app.Label21.HorizontalAlignment = 'right'; app.Label21.FontName = 'Arial'; app.Label21.Position = [30 223 56 15]; app.Label21.Text = 'Ic (m^4) = '; % Create Ic1 app.Ic1 = uieditfield(app.Tab4, 'numeric'); app.Ic1.Limits = [0 Inf]; app.Ic1.FontName = 'Arial'; app.Ic1.BackgroundColor = [0.8902 0.9255 0.9804]; app.Ic1.Position = [101 221 71 20]; % Create Label22 app.Label22 = uilabel(app.Tab4); app.Label22.HorizontalAlignment = 'right'; app.Label22.FontName = 'Arial'; app.Label22.Position = [45 188 41 15]; app.Label22.Text = 'h (m) = '; % Create h1 app.h1 = uieditfield(app.Tab4, 'numeric'); app.h1.Limits = [0 Inf]; app.h1.FontName = 'Arial'; app.h1.BackgroundColor = [0.8902 0.9255 0.9804]; app.h1.Position = [101 186 71 20]; % Create Label24
83
app.Label24 = uilabel(app.Tab4); app.Label24.HorizontalAlignment = 'right'; app.Label24.FontName = 'Arial'; app.Label24.Position = [26 153 60 15]; app.Label24.Text = 'y_inf (m) = '; % Create y_inf1 app.y_inf1 = uieditfield(app.Tab4, 'numeric'); app.y_inf1.Limits = [0 Inf]; app.y_inf1.FontName = 'Arial'; app.y_inf1.BackgroundColor = [0.8902 0.9255 0.9804]; app.y_inf1.Position = [101 151 71 20]; % Create Label25 app.Label25 = uilabel(app.Tab4); app.Label25.HorizontalAlignment = 'right'; app.Label25.FontName = 'Arial'; app.Label25.Position = [19 118 67 15]; app.Label25.Text = 'y_sup (m) = '; % Create y_sup1 app.y_sup1 = uieditfield(app.Tab4, 'numeric'); app.y_sup1.Limits = [0 Inf]; app.y_sup1.FontName = 'Arial'; app.y_sup1.BackgroundColor = [0.8902 0.9255 0.9804]; app.y_sup1.Position = [101 116 71 20]; % Create Label26 app.Label26 = uilabel(app.Tab4); app.Label26.HorizontalAlignment = 'right'; app.Label26.FontName = 'Arial'; app.Label26.Position = [17 83 69 15]; app.Label26.Text = 'W_inf (m³) = '; % Create W_inf app.W_inf = uieditfield(app.Tab4, 'numeric'); app.W_inf.Limits = [0 Inf]; app.W_inf.FontName = 'Arial'; app.W_inf.BackgroundColor = [0.8902 0.9255 0.9804]; app.W_inf.Position = [101 81 71 20]; % Create Label27 app.Label27 = uilabel(app.Tab4); app.Label27.HorizontalAlignment = 'right'; app.Label27.FontName = 'Arial'; app.Label27.Position = [10 48 76 15]; app.Label27.Text = 'W_sup (m³) = '; % Create W_sup app.W_sup = uieditfield(app.Tab4, 'numeric'); app.W_sup.Limits = [0 Inf]; app.W_sup.FontName = 'Arial'; app.W_sup.BackgroundColor = [0.8902 0.9255 0.9804]; app.W_sup.Position = [101 46 71 20]; % Create Label45_2 app.Label45_2 = uilabel(app.Tab4); app.Label45_2.HorizontalAlignment = 'right'; app.Label45_2.FontName = 'Arial'; app.Label45_2.FontSize = 9; app.Label45_2.FontColor = [0.5216 0.5216 0.5216]; app.Label45_2.Position = [95 241 77 15];
84
app.Label45_2.Text = 'Área de Concreto'; % Create Label45_3 app.Label45_3 = uilabel(app.Tab4); app.Label45_3.HorizontalAlignment = 'right'; app.Label45_3.FontName = 'Arial'; app.Label45_3.FontSize = 9; app.Label45_3.FontColor = [0.5216 0.5216 0.5216]; app.Label45_3.Position = [86 206 86 15]; app.Label45_3.Text = 'Momento de Inércia'; % Create Label45_4 app.Label45_4 = uilabel(app.Tab4); app.Label45_4.HorizontalAlignment = 'right'; app.Label45_4.FontName = 'Arial'; app.Label45_4.FontSize = 9; app.Label45_4.FontColor = [0.5216 0.5216 0.5216]; app.Label45_4.Position = [87 171 85 15]; app.Label45_4.Text = 'Altura Total da Viga'; % Create Label45_5 app.Label45_5 = uilabel(app.Tab4); app.Label45_5.HorizontalAlignment = 'right'; app.Label45_5.FontName = 'Arial'; app.Label45_5.FontSize = 9; app.Label45_5.FontColor = [0.5216 0.5216 0.5216]; app.Label45_5.Position = [7 136 165 15]; app.Label45_5.Text = 'Distância entre o CG e a Base da Viga'; % Create Label45_6 app.Label45_6 = uilabel(app.Tab4); app.Label45_6.HorizontalAlignment = 'right'; app.Label45_6.FontName = 'Arial'; app.Label45_6.FontSize = 9; app.Label45_6.FontColor = [0.5216 0.5216 0.5216]; app.Label45_6.Position = [9 101 163 15]; app.Label45_6.Text = 'Distância entre o CG e o Topo da Viga'; % Create Label45_7 app.Label45_7 = uilabel(app.Tab4); app.Label45_7.HorizontalAlignment = 'right'; app.Label45_7.FontName = 'Arial'; app.Label45_7.FontSize = 9; app.Label45_7.FontColor = [0.5216 0.5216 0.5216]; app.Label45_7.Position = [0 66 172 15]; app.Label45_7.Text = 'Módulo de Resistência da Seção Inferior'; % Create Label45_8 app.Label45_8 = uilabel(app.Tab4); app.Label45_8.HorizontalAlignment = 'right'; app.Label45_8.FontName = 'Arial'; app.Label45_8.FontSize = 9; app.Label45_8.FontColor = [0.5216 0.5216 0.5216]; app.Label45_8.Position = [-5 31 177 15]; app.Label45_8.Text = 'Módulo de Resistência da Seção Superior'; % Create umLabel app.umLabel = uilabel(app.Tab4); app.umLabel.HorizontalAlignment = 'right'; app.umLabel.FontName = 'Arial'; app.umLabel.Position = [40 13 46 15];
85
app.umLabel.Text = 'u (m) = '; % Create U app.U = uieditfield(app.Tab4, 'numeric'); app.U.Limits = [0 Inf]; app.U.FontName = 'Arial'; app.U.BackgroundColor = [0.8902 0.9255 0.9804]; app.U.Position = [101 11 71 20]; % Create Label45_24 app.Label45_24 = uilabel(app.Tab4); app.Label45_24.HorizontalAlignment = 'right'; app.Label45_24.FontName = 'Arial'; app.Label45_24.FontSize = 9; app.Label45_24.FontColor = [0.5216 0.5216 0.5216]; app.Label45_24.Position = [34 -4 138 15]; app.Label45_24.Text = 'Perímetro da Seção Transversal'; % Create Button app.Button = uibutton(app.Tab4, 'state'); app.Button.Icon = 'Qualquer.png'; app.Button.IconAlignment = 'right'; app.Button.Text = ''; app.Button.BackgroundColor = [1 1 1]; app.Button.FontColor = [1 1 1]; app.Button.Position = [186 10 210 265]; % Create Tab5 app.Tab5 = uitab(app.TabGroup2); app.Tab5.AutoResizeChildren = 'off'; app.Tab5.Title = 'Retangular'; app.Tab5.BackgroundColor = [1 1 1]; % Create hwcmLabel_4 app.hwcmLabel_4 = uilabel(app.Tab5); app.hwcmLabel_4.HorizontalAlignment = 'right'; app.hwcmLabel_4.FontName = 'Arial'; app.hwcmLabel_4.Position = [25 257 61 15]; app.hwcmLabel_4.Text = 'hw (cm) = '; % Create h_r app.h_r = uieditfield(app.Tab5, 'numeric'); app.h_r.Limits = [0 Inf]; app.h_r.FontName = 'Arial'; app.h_r.Position = [101 255 71 20]; % Create retangular app.retangular = uibutton(app.Tab5, 'push'); app.retangular.ButtonPushedFcn = createCallbackFcn(app, @retangularButtonPushed, true); app.retangular.FontName = 'Arial'; app.retangular.Position = [72 6 100 22]; app.retangular.Text = 'Calcular'; % Create hf2cmLabel_4 app.hf2cmLabel_4 = uilabel(app.Tab5); app.hf2cmLabel_4.HorizontalAlignment = 'right'; app.hf2cmLabel_4.FontName = 'Arial'; app.hf2cmLabel_4.Enable = 'off'; app.hf2cmLabel_4.Position = [24 195 62 15]; app.hf2cmLabel_4.Text = 'hf2 (cm) = '; % Create NumericEditField11_4
86
app.NumericEditField11_4 = uieditfield(app.Tab5, 'numeric'); app.NumericEditField11_4.FontName = 'Arial'; app.NumericEditField11_4.Enable = 'off'; app.NumericEditField11_4.Position = [101 193 71 20]; % Create hb1cmLabel_3 app.hb1cmLabel_3 = uilabel(app.Tab5); app.hb1cmLabel_3.HorizontalAlignment = 'right'; app.hb1cmLabel_3.FontName = 'Arial'; app.hb1cmLabel_3.Enable = 'off'; app.hb1cmLabel_3.Position = [20 164 66 15]; app.hb1cmLabel_3.Text = 'hb1 (cm) = '; % Create NumericEditField12_8 app.NumericEditField12_8 = uieditfield(app.Tab5, 'numeric'); app.NumericEditField12_8.FontName = 'Arial'; app.NumericEditField12_8.Enable = 'off'; app.NumericEditField12_8.Position = [101 162 71 20]; % Create hb2cmLabel_3 app.hb2cmLabel_3 = uilabel(app.Tab5); app.hb2cmLabel_3.HorizontalAlignment = 'right'; app.hb2cmLabel_3.FontName = 'Arial'; app.hb2cmLabel_3.Enable = 'off'; app.hb2cmLabel_3.Position = [20 133 66 15]; app.hb2cmLabel_3.Text = 'hb2 (cm) = '; % Create NumericEditField13_7 app.NumericEditField13_7 = uieditfield(app.Tab5, 'numeric'); app.NumericEditField13_7.FontName = 'Arial'; app.NumericEditField13_7.Enable = 'off'; app.NumericEditField13_7.Position = [101 131 71 20]; % Create bfcmLabel_5 app.bfcmLabel_5 = uilabel(app.Tab5); app.bfcmLabel_5.HorizontalAlignment = 'right'; app.bfcmLabel_5.FontName = 'Arial'; app.bfcmLabel_5.Enable = 'off'; app.bfcmLabel_5.Position = [31 102 55 15]; app.bfcmLabel_5.Text = 'bf (cm) = '; % Create NumericEditField12_9 app.NumericEditField12_9 = uieditfield(app.Tab5, 'numeric'); app.NumericEditField12_9.FontName = 'Arial'; app.NumericEditField12_9.Enable = 'off'; app.NumericEditField12_9.Position = [101 100 71 20]; % Create bbcmLabel_3 app.bbcmLabel_3 = uilabel(app.Tab5); app.bbcmLabel_3.HorizontalAlignment = 'right'; app.bbcmLabel_3.FontName = 'Arial'; app.bbcmLabel_3.Enable = 'off'; app.bbcmLabel_3.Position = [27 40 59 15]; app.bbcmLabel_3.Text = 'bb (cm) = '; % Create NumericEditField12_10 app.NumericEditField12_10 = uieditfield(app.Tab5, 'numeric'); app.NumericEditField12_10.FontName = 'Arial'; app.NumericEditField12_10.Enable = 'off'; app.NumericEditField12_10.Position = [101 38 71 20]; % Create hf1cmLabel_4 app.hf1cmLabel_4 = uilabel(app.Tab5);
87
app.hf1cmLabel_4.HorizontalAlignment = 'right'; app.hf1cmLabel_4.FontName = 'Arial'; app.hf1cmLabel_4.Enable = 'off'; app.hf1cmLabel_4.Position = [24 226 62 15]; app.hf1cmLabel_4.Text = 'hf1 (cm) = '; % Create b3_4 app.b3_4 = uieditfield(app.Tab5, 'numeric'); app.b3_4.FontName = 'Arial'; app.b3_4.Enable = 'off'; app.b3_4.Position = [101 224 71 20]; % Create bwcmLabel app.bwcmLabel = uilabel(app.Tab5); app.bwcmLabel.HorizontalAlignment = 'right'; app.bwcmLabel.FontName = 'Arial'; app.bwcmLabel.Position = [25 71 61 15]; app.bwcmLabel.Text = 'bw (cm) = '; % Create bw_r app.bw_r = uieditfield(app.Tab5, 'numeric'); app.bw_r.Limits = [0 Inf]; app.bw_r.FontName = 'Arial'; app.bw_r.Position = [101 69 71 20]; % Create Button_2 app.Button_2 = uibutton(app.Tab5, 'state'); app.Button_2.Icon = 'retangulo.png'; app.Button_2.IconAlignment = 'right'; app.Button_2.Text = ''; app.Button_2.BackgroundColor = [1 1 1]; app.Button_2.FontColor = [1 1 1]; app.Button_2.Position = [186 10 210 265]; % Create Tab6 app.Tab6 = uitab(app.TabGroup2); app.Tab6.AutoResizeChildren = 'off'; app.Tab6.Title = 'T'; app.Tab6.BackgroundColor = [1 1 1]; % Create T app.T = uibutton(app.Tab6, 'push'); app.T.ButtonPushedFcn = createCallbackFcn(app, @SecaoT, true); app.T.FontName = 'Arial'; app.T.Position = [72 6 100 22]; app.T.Text = 'Calcular'; % Create hwcmLabel_3 app.hwcmLabel_3 = uilabel(app.Tab6); app.hwcmLabel_3.HorizontalAlignment = 'right'; app.hwcmLabel_3.FontName = 'Arial'; app.hwcmLabel_3.Position = [25 257 61 15]; app.hwcmLabel_3.Text = 'hw (cm) = '; % Create hw_t app.hw_t = uieditfield(app.Tab6, 'numeric'); app.hw_t.Limits = [0 Inf]; app.hw_t.FontName = 'Arial'; app.hw_t.Position = [101 255 71 20]; % Create hf1cmLabel_3 app.hf1cmLabel_3 = uilabel(app.Tab6); app.hf1cmLabel_3.HorizontalAlignment = 'right';
88
app.hf1cmLabel_3.FontName = 'Arial'; app.hf1cmLabel_3.Position = [24 226 62 15]; app.hf1cmLabel_3.Text = 'hf1 (cm) = '; % Create hf1_t app.hf1_t = uieditfield(app.Tab6, 'numeric'); app.hf1_t.Limits = [0 Inf]; app.hf1_t.FontName = 'Arial'; app.hf1_t.Position = [101 224 71 20]; % Create hf2cmLabel_3 app.hf2cmLabel_3 = uilabel(app.Tab6); app.hf2cmLabel_3.HorizontalAlignment = 'right'; app.hf2cmLabel_3.FontName = 'Arial'; app.hf2cmLabel_3.Position = [24 195 62 15]; app.hf2cmLabel_3.Text = 'hf2 (cm) = '; % Create hf2_t app.hf2_t = uieditfield(app.Tab6, 'numeric'); app.hf2_t.Limits = [0 Inf]; app.hf2_t.FontName = 'Arial'; app.hf2_t.Position = [101 193 71 20]; % Create hb1cmLabel_2 app.hb1cmLabel_2 = uilabel(app.Tab6); app.hb1cmLabel_2.HorizontalAlignment = 'right'; app.hb1cmLabel_2.FontName = 'Arial'; app.hb1cmLabel_2.Enable = 'off'; app.hb1cmLabel_2.Position = [20 164 66 15]; app.hb1cmLabel_2.Text = 'hb1 (cm) = '; % Create NumericEditField12_5 app.NumericEditField12_5 = uieditfield(app.Tab6, 'numeric'); app.NumericEditField12_5.Limits = [0 Inf]; app.NumericEditField12_5.FontName = 'Arial'; app.NumericEditField12_5.Enable = 'off'; app.NumericEditField12_5.Position = [101 162 71 20]; % Create hb2cmLabel_2 app.hb2cmLabel_2 = uilabel(app.Tab6); app.hb2cmLabel_2.HorizontalAlignment = 'right'; app.hb2cmLabel_2.FontName = 'Arial'; app.hb2cmLabel_2.Enable = 'off'; app.hb2cmLabel_2.Position = [20 133 66 15]; app.hb2cmLabel_2.Text = 'hb2 (cm) = '; % Create NumericEditField13_5 app.NumericEditField13_5 = uieditfield(app.Tab6, 'numeric'); app.NumericEditField13_5.Limits = [0 Inf]; app.NumericEditField13_5.FontName = 'Arial'; app.NumericEditField13_5.Enable = 'off'; app.NumericEditField13_5.Position = [101 131 71 20]; % Create bfcmLabel_4 app.bfcmLabel_4 = uilabel(app.Tab6); app.bfcmLabel_4.HorizontalAlignment = 'right'; app.bfcmLabel_4.FontName = 'Arial'; app.bfcmLabel_4.Position = [31 102 55 15]; app.bfcmLabel_4.Text = 'bf (cm) = '; % Create bf_t app.bf_t = uieditfield(app.Tab6, 'numeric'); app.bf_t.Limits = [0 Inf];
89
app.bf_t.FontName = 'Arial'; app.bf_t.Position = [101 100 71 20]; % Create bwcmLabel_6 app.bwcmLabel_6 = uilabel(app.Tab6); app.bwcmLabel_6.HorizontalAlignment = 'right'; app.bwcmLabel_6.FontName = 'Arial'; app.bwcmLabel_6.Position = [25 71 61 15]; app.bwcmLabel_6.Text = 'bw (cm) = '; % Create bw_t app.bw_t = uieditfield(app.Tab6, 'numeric'); app.bw_t.Limits = [0 Inf]; app.bw_t.FontName = 'Arial'; app.bw_t.Position = [101 69 71 20]; % Create bbcmLabel_2 app.bbcmLabel_2 = uilabel(app.Tab6); app.bbcmLabel_2.HorizontalAlignment = 'right'; app.bbcmLabel_2.FontName = 'Arial'; app.bbcmLabel_2.Enable = 'off'; app.bbcmLabel_2.Position = [27 40 59 15]; app.bbcmLabel_2.Text = 'bb (cm) = '; % Create NumericEditField12_7 app.NumericEditField12_7 = uieditfield(app.Tab6, 'numeric'); app.NumericEditField12_7.Limits = [0 Inf]; app.NumericEditField12_7.FontName = 'Arial'; app.NumericEditField12_7.Enable = 'off'; app.NumericEditField12_7.Position = [101 38 71 20]; % Create Button_3 app.Button_3 = uibutton(app.Tab6, 'state'); app.Button_3.Icon = 'T.png'; app.Button_3.IconAlignment = 'right'; app.Button_3.Text = ''; app.Button_3.BackgroundColor = [1 1 1]; app.Button_3.FontColor = [1 1 1]; app.Button_3.Position = [186 10 210 265]; % Create Tab7 app.Tab7 = uitab(app.TabGroup2); app.Tab7.AutoResizeChildren = 'off'; app.Tab7.Title = 'I'; app.Tab7.BackgroundColor = [1 1 1]; % Create hwcmLabel_2 app.hwcmLabel_2 = uilabel(app.Tab7); app.hwcmLabel_2.HorizontalAlignment = 'right'; app.hwcmLabel_2.FontName = 'Arial'; app.hwcmLabel_2.Position = [25 257 61 15]; app.hwcmLabel_2.Text = 'hw (cm) = '; % Create hw_i app.hw_i = uieditfield(app.Tab7, 'numeric'); app.hw_i.Limits = [0 Inf]; app.hw_i.FontName = 'Arial'; app.hw_i.Position = [101 255 71 20]; % Create hf1cmLabel_2 app.hf1cmLabel_2 = uilabel(app.Tab7); app.hf1cmLabel_2.HorizontalAlignment = 'right'; app.hf1cmLabel_2.FontName = 'Arial';
90
app.hf1cmLabel_2.Position = [24 226 62 15]; app.hf1cmLabel_2.Text = 'hf1 (cm) = '; % Create hf1_i app.hf1_i = uieditfield(app.Tab7, 'numeric'); app.hf1_i.Limits = [0 Inf]; app.hf1_i.FontName = 'Arial'; app.hf1_i.Position = [101 224 71 20]; % Create hf2cmLabel_2 app.hf2cmLabel_2 = uilabel(app.Tab7); app.hf2cmLabel_2.HorizontalAlignment = 'right'; app.hf2cmLabel_2.FontName = 'Arial'; app.hf2cmLabel_2.Position = [24 195 62 15]; app.hf2cmLabel_2.Text = 'hf2 (cm) = '; % Create hf2_i app.hf2_i = uieditfield(app.Tab7, 'numeric'); app.hf2_i.Limits = [0 Inf]; app.hf2_i.FontName = 'Arial'; app.hf2_i.Position = [101 193 71 20]; % Create hb1cmLabel app.hb1cmLabel = uilabel(app.Tab7); app.hb1cmLabel.HorizontalAlignment = 'right'; app.hb1cmLabel.FontName = 'Arial'; app.hb1cmLabel.Position = [20 164 66 15]; app.hb1cmLabel.Text = 'hb1 (cm) = '; % Create hb1_i app.hb1_i = uieditfield(app.Tab7, 'numeric'); app.hb1_i.Limits = [0 Inf]; app.hb1_i.FontName = 'Arial'; app.hb1_i.Position = [101 162 71 20]; % Create hb2cmLabel app.hb2cmLabel = uilabel(app.Tab7); app.hb2cmLabel.HorizontalAlignment = 'right'; app.hb2cmLabel.FontName = 'Arial'; app.hb2cmLabel.Position = [20 133 66 15]; app.hb2cmLabel.Text = 'hb2 (cm) = '; % Create hb2_i app.hb2_i = uieditfield(app.Tab7, 'numeric'); app.hb2_i.Limits = [0 Inf]; app.hb2_i.FontName = 'Arial'; app.hb2_i.Position = [101 131 71 20]; % Create bfcmLabel_3 app.bfcmLabel_3 = uilabel(app.Tab7); app.bfcmLabel_3.HorizontalAlignment = 'right'; app.bfcmLabel_3.FontName = 'Arial'; app.bfcmLabel_3.Position = [31 102 55 15]; app.bfcmLabel_3.Text = 'bf (cm) = '; % Create bf_i app.bf_i = uieditfield(app.Tab7, 'numeric'); app.bf_i.Limits = [0 Inf]; app.bf_i.FontName = 'Arial'; app.bf_i.Position = [101 100 71 20]; % Create bwcmLabel_5 app.bwcmLabel_5 = uilabel(app.Tab7); app.bwcmLabel_5.HorizontalAlignment = 'right';
91
app.bwcmLabel_5.FontName = 'Arial'; app.bwcmLabel_5.Position = [25 71 61 15]; app.bwcmLabel_5.Text = 'bw (cm) = '; % Create bw_i app.bw_i = uieditfield(app.Tab7, 'numeric'); app.bw_i.Limits = [0 Inf]; app.bw_i.FontName = 'Arial'; app.bw_i.Position = [101 69 71 20]; % Create bbcmLabel app.bbcmLabel = uilabel(app.Tab7); app.bbcmLabel.HorizontalAlignment = 'right'; app.bbcmLabel.FontName = 'Arial'; app.bbcmLabel.Position = [27 40 59 15]; app.bbcmLabel.Text = 'bb (cm) = '; % Create bb_i app.bb_i = uieditfield(app.Tab7, 'numeric'); app.bb_i.Limits = [0 Inf]; app.bb_i.FontName = 'Arial'; app.bb_i.Position = [101 38 71 20]; % Create I app.I = uibutton(app.Tab7, 'push'); app.I.ButtonPushedFcn = createCallbackFcn(app, @IButtonPushed, true); app.I.FontName = 'Arial'; app.I.Position = [72 6 100 22]; app.I.Text = 'Calcular'; % Create Button_4 app.Button_4 = uibutton(app.Tab7, 'state'); app.Button_4.Icon = 'I.png'; app.Button_4.IconAlignment = 'right'; app.Button_4.Text = ''; app.Button_4.BackgroundColor = [1 1 1]; app.Button_4.FontColor = [1 1 1]; app.Button_4.Position = [186 10 210 265]; % Create Panel3 app.Panel3 = uipanel(app.DADOS_INICIAIS); app.Panel3.AutoResizeChildren = 'off'; app.Panel3.Title = 'Carregamento'; app.Panel3.BackgroundColor = [1 1 1]; app.Panel3.FontName = 'Arial'; app.Panel3.FontWeight = 'bold'; app.Panel3.Position = [660 7 200 434]; % Create Label29 app.Label29 = uilabel(app.Panel3); app.Label29.FontName = 'Arial'; app.Label29.FontWeight = 'bold'; app.Label29.Position = [10 389 177 15]; app.Label29.Text = 'Ações Permanentes e Variável'; % Create Label30 app.Label30 = uilabel(app.Panel3); app.Label30.HorizontalAlignment = 'right'; app.Label30.FontName = 'Arial'; app.Label30.Position = [27 329 74 15]; app.Label30.Text = 'G1k (kN/m) = ';
92
% Create G1k_ app.G1k_ = uieditfield(app.Panel3, 'numeric'); app.G1k_.Limits = [0 Inf]; app.G1k_.FontName = 'Arial'; app.G1k_.Position = [116 327 71 20]; % Create Label31 app.Label31 = uilabel(app.Panel3); app.Label31.HorizontalAlignment = 'right'; app.Label31.FontName = 'Arial'; app.Label31.Position = [37 296 64 15]; app.Label31.Text = 'Qk (kN/m) ='; % Create Qk_ app.Qk_ = uieditfield(app.Panel3, 'numeric'); app.Qk_.Limits = [0 Inf]; app.Qk_.FontName = 'Arial'; app.Qk_.Position = [116 294 71 20]; % Create Label32 app.Label32 = uilabel(app.Panel3); app.Label32.FontName = 'Arial'; app.Label32.FontWeight = 'bold'; app.Label32.Position = [10 263 152 15]; app.Label32.Text = 'Coeficientes de Majoração'; % Create Label33 app.Label33 = uilabel(app.Panel3); app.Label33.HorizontalAlignment = 'right'; app.Label33.FontName = 'Arial'; app.Label33.Position = [27 362 74 15]; app.Label33.Text = 'G0k (kN/m) = '; % Create G0k_ app.G0k_ = uieditfield(app.Panel3, 'numeric'); app.G0k_.Limits = [0 Inf]; app.G0k_.FontName = 'Arial'; app.G0k_.Position = [116 360 71 20]; % Create Label34 app.Label34 = uilabel(app.Panel3); app.Label34.HorizontalAlignment = 'right'; app.Label34.FontName = 'Arial'; app.Label34.Position = [71 236 30 15]; app.Label34.Text = 'Ψ1 = '; % Create psi1 app.psi1 = uieditfield(app.Panel3, 'numeric'); app.psi1.Limits = [0 Inf]; app.psi1.FontName = 'Arial'; app.psi1.Position = [116 234 71 20]; % Create Label35 app.Label35 = uilabel(app.Panel3); app.Label35.HorizontalAlignment = 'right'; app.Label35.FontName = 'Arial'; app.Label35.Position = [71 207 30 15]; app.Label35.Text = 'Ψ2 = '; % Create psi2 app.psi2 = uieditfield(app.Panel3, 'numeric'); app.psi2.Limits = [0 Inf]; app.psi2.FontName = 'Arial';
93
app.psi2.Position = [116 205 71 20]; % Create Label37 app.Label37 = uilabel(app.Panel3); app.Label37.FontName = 'Arial'; app.Label37.FontWeight = 'bold'; app.Label37.Position = [10 136 129 15]; app.Label37.Text = 'Combinação de Ações'; % Create Label41 app.Label41 = uilabel(app.Panel3); app.Label41.BackgroundColor = [1 1 1]; app.Label41.HorizontalAlignment = 'right'; app.Label41.FontName = 'Arial'; app.Label41.Enable = 'off'; app.Label41.Position = [25 100 76 15]; app.Label41.Text = 'Pc_f (kN/m) = '; % Create Pc_f app.Pc_f = uieditfield(app.Panel3, 'numeric'); app.Pc_f.Editable = 'off'; app.Pc_f.FontName = 'Arial'; app.Pc_f.BackgroundColor = [0.8902 0.9255 0.9804]; app.Pc_f.Enable = 'off'; app.Pc_f.Position = [116 98 71 20]; % Create Label42 app.Label42 = uilabel(app.Panel3); app.Label42.BackgroundColor = [1 1 1]; app.Label42.HorizontalAlignment = 'right'; app.Label42.FontName = 'Arial'; app.Label42.Enable = 'off'; app.Label42.Position = [23 72 78 15]; app.Label42.Text = 'Mc_f (kN.m) = '; % Create Mc_f app.Mc_f = uieditfield(app.Panel3, 'numeric'); app.Mc_f.Editable = 'off'; app.Mc_f.FontName = 'Arial'; app.Mc_f.BackgroundColor = [0.8902 0.9255 0.9804]; app.Mc_f.Enable = 'off'; app.Mc_f.Position = [116 70 71 20]; % Create Label43 app.Label43 = uilabel(app.Panel3); app.Label43.BackgroundColor = [1 1 1]; app.Label43.HorizontalAlignment = 'right'; app.Label43.FontName = 'Arial'; app.Label43.Enable = 'off'; app.Label43.Position = [17 36 84 15]; app.Label43.Text = 'Pc_qp(kN/m) = '; % Create Pc_qp app.Pc_qp = uieditfield(app.Panel3, 'numeric'); app.Pc_qp.Editable = 'off'; app.Pc_qp.FontName = 'Arial'; app.Pc_qp.BackgroundColor = [0.8902 0.9255 0.9804]; app.Pc_qp.Enable = 'off'; app.Pc_qp.Position = [116 34 71 20]; % Create Label44 app.Label44 = uilabel(app.Panel3);
94
app.Label44.BackgroundColor = [1 1 1]; app.Label44.HorizontalAlignment = 'right'; app.Label44.FontName = 'Arial'; app.Label44.Enable = 'off'; app.Label44.Position = [12 6 89 15]; app.Label44.Text = 'Mc_qp (kN.m) = '; % Create Mc_qp app.Mc_qp = uieditfield(app.Panel3, 'numeric'); app.Mc_qp.Editable = 'off'; app.Mc_qp.FontName = 'Arial'; app.Mc_qp.BackgroundColor = [0.8902 0.9255 0.9804]; app.Mc_qp.Enable = 'off'; app.Mc_qp.Position = [116 8 71 20]; % Create Label45 app.Label45 = uilabel(app.Panel3); app.Label45.HorizontalAlignment = 'right'; app.Label45.FontName = 'Arial'; app.Label45.FontSize = 9; app.Label45.FontColor = [0.5216 0.5216 0.5216]; app.Label45.Position = [100 344 87 15]; app.Label45.Text = 'Peso Próprio da Viga'; % Create Label46 app.Label46 = uilabel(app.Panel3); app.Label46.HorizontalAlignment = 'right'; app.Label46.FontName = 'Arial'; app.Label46.FontSize = 9; app.Label46.FontColor = [0.5216 0.5216 0.5216]; app.Label46.Position = [71 311 116 15]; app.Label46.Text = 'Carga Permanente Adicional'; % Create Label47 app.Label47 = uilabel(app.Panel3); app.Label47.HorizontalAlignment = 'right'; app.Label47.FontName = 'Arial'; app.Label47.FontSize = 9; app.Label47.FontColor = [0.5216 0.5216 0.5216]; app.Label47.Position = [127 278 60 15]; app.Label47.Text = 'Carga Variável'; % Create Label62 app.Label62 = uilabel(app.Panel3); app.Label62.HorizontalAlignment = 'right'; app.Label62.FontName = 'Arial'; app.Label62.FontSize = 9; app.Label62.FontColor = [0.5216 0.5216 0.5216]; app.Label62.Enable = 'off'; app.Label62.Position = [93 114 94 15]; app.Label62.Text = 'Combinação Frequente'; % Create Label63 app.Label63 = uilabel(app.Panel3); app.Label63.HorizontalAlignment = 'right'; app.Label63.FontName = 'Arial'; app.Label63.FontSize = 9; app.Label63.FontColor = [0.5216 0.5216 0.5216]; app.Label63.Enable = 'off'; app.Label63.Position = [55 50 132 15];
95
app.Label63.Text = 'Combinação Quase-Permanente'; % Create combinacao app.combinacao = uibutton(app.Panel3, 'push'); app.combinacao.ButtonPushedFcn = createCallbackFcn(app, @combinacaoButtonPushed, true); app.combinacao.FontName = 'Arial'; app.combinacao.Position = [57 169 100 22]; app.combinacao.Text = 'Calcular'; % Create TRACADO_CABOS app.TRACADO_CABOS = uitab(app.TabGroup); app.TRACADO_CABOS.AutoResizeChildren = 'off'; app.TRACADO_CABOS.Title = 'ESCOLHA E TRAÇADO DOS CABOS'; app.TRACADO_CABOS.BackgroundColor = [0.8902 0.9294 0.9804]; % Create Area_aco app.Area_aco = uipanel(app.TRACADO_CABOS); app.Area_aco.AutoResizeChildren = 'off'; app.Area_aco.Title = 'Área de Aço'; app.Area_aco.BackgroundColor = [1 1 1]; app.Area_aco.FontName = 'Arial'; app.Area_aco.FontWeight = 'bold'; app.Area_aco.Position = [10 10 200 431]; % Create CalcularButton app.CalcularButton = uibutton(app.Area_aco, 'push'); app.CalcularButton.ButtonPushedFcn = createCallbackFcn(app, @Armadura, true); app.CalcularButton.FontName = 'Arial'; app.CalcularButton.Position = [47 204 100 22]; app.CalcularButton.Text = 'Calcular'; % Create DropDownrel app.DropDownrel = uidropdown(app.Area_aco); app.DropDownrel.Items = {'Relaxação Normal', 'Baixa Relaxação'}; app.DropDownrel.FontName = 'Arial'; app.DropDownrel.BackgroundColor = [1 1 1]; app.DropDownrel.Position = [19 92 169 22]; app.DropDownrel.Value = 'Baixa Relaxação'; % Create PerdaestimadaEditFieldLabel app.PerdaestimadaEditFieldLabel = uilabel(app.Area_aco); app.PerdaestimadaEditFieldLabel.HorizontalAlignment = 'right'; app.PerdaestimadaEditFieldLabel.FontName = 'Arial'; app.PerdaestimadaEditFieldLabel.Position = [15 363 113 15]; app.PerdaestimadaEditFieldLabel.Text = 'Perda estimada (%)'; % Create Perdaestimada app.Perdaestimada = uieditfield(app.Area_aco, 'numeric'); app.Perdaestimada.Limits = [0 100]; app.Perdaestimada.FontName = 'Arial'; app.Perdaestimada.Position = [146 359 42 22]; app.Perdaestimada.Value = 25; % Create reamnimacmLabel app.reamnimacmLabel = uilabel(app.Area_aco); app.reamnimacmLabel.HorizontalAlignment = 'right'; app.reamnimacmLabel.FontName = 'Arial'; app.reamnimacmLabel.Enable = 'off'; app.reamnimacmLabel.Position = [23 309 105 15]; app.reamnimacmLabel.Text = 'Área mínima (cm²)';
96
% Create Areaminima app.Areaminima = uieditfield(app.Area_aco, 'numeric'); app.Areaminima.Editable = 'off'; app.Areaminima.FontName = 'Arial'; app.Areaminima.BackgroundColor = [0.8902 0.9294 0.9804]; app.Areaminima.Enable = 'off'; app.Areaminima.Position = [146 305 42 22]; % Create reaadotadacmLabel app.reaadotadacmLabel = uilabel(app.Area_aco); app.reaadotadacmLabel.HorizontalAlignment = 'right'; app.reaadotadacmLabel.FontName = 'Arial'; app.reaadotadacmLabel.Enable = 'off'; app.reaadotadacmLabel.Position = [18 283 110 15]; app.reaadotadacmLabel.Text = 'Área adotada (cm²)'; % Create Areadotada app.Areadotada = uieditfield(app.Area_aco, 'numeric'); app.Areadotada.Editable = 'off'; app.Areadotada.FontName = 'Arial'; app.Areadotada.BackgroundColor = [0.8902 0.9294 0.9804]; app.Areadotada.Enable = 'off'; app.Areadotada.Position = [146 279 42 22]; % Create AcoAdotado app.AcoAdotado = uitextarea(app.Area_aco); app.AcoAdotado.Editable = 'off'; app.AcoAdotado.FontName = 'Arial'; app.AcoAdotado.BackgroundColor = [0.8902 0.9294 0.9804]; app.AcoAdotado.Enable = 'off'; app.AcoAdotado.Position = [19 230 169 19]; % Create NmerodecordoalhasLabel app.NmerodecordoalhasLabel = uilabel(app.Area_aco); app.NmerodecordoalhasLabel.HorizontalAlignment = 'right'; app.NmerodecordoalhasLabel.FontName = 'Arial'; app.NmerodecordoalhasLabel.Enable = 'off'; app.NmerodecordoalhasLabel.Position = [-2 257 130 15]; app.NmerodecordoalhasLabel.Text = 'Número de cordoalhas'; % Create Numerocordoalhas app.Numerocordoalhas = uieditfield(app.Area_aco, 'numeric'); app.Numerocordoalhas.Editable = 'off'; app.Numerocordoalhas.FontName = 'Arial'; app.Numerocordoalhas.BackgroundColor = [0.8902 0.9294 0.9804]; app.Numerocordoalhas.Enable = 'off'; app.Numerocordoalhas.Position = [146 253 42 22]; % Create DropDownrel_2 app.DropDownrel_2 = uidropdown(app.Area_aco); app.DropDownrel_2.Items = {'CP 145 RB', 'CP 150 RB', 'CP 170 RB', 'CP 175 RB (A = 27,8mm²)', 'CP 175 RB (A = 19,2mm²)', 'CP 175 RB (A = 12,3mm²)', 'CP 170 RN', 'CP 175 RN (A = 27,8mm²)', 'CP 175 RN (A = 19,2mm²)', 'CP 175 RN (A = 12,3mm²)', 'Cord. CP 190 RB 3 x 3,0', 'Cord. CP 190 RB 3 x 3,5', 'Cord. CP 190 RB 3 x 4,0', 'Cord. CP 190 RB 3 x 4,5', 'Cord. CP 190 RB 3 x 5,0', 'Cord. CP 190 RB 9,50', 'Cord. CP 190 RB 12,70', 'Cord. CP 190 RB 15,20', 'Cord. CP 190 RB 15,70', 'Cord. CP 210 RB 12,70', 'Cord. CP 210 RB 15,20'}; app.DropDownrel_2.FontName = 'Arial'; app.DropDownrel_2.BackgroundColor = [1 1 1];
97
app.DropDownrel_2.Position = [19 120 169 22]; app.DropDownrel_2.Value = 'CP 145 RB'; % Create NmerodecabosLabel app.NmerodecabosLabel = uilabel(app.Area_aco); app.NmerodecabosLabel.HorizontalAlignment = 'right'; app.NmerodecabosLabel.FontName = 'Arial'; app.NmerodecabosLabel.Position = [26 152 102 15]; app.NmerodecabosLabel.Text = 'Número de cabos'; % Create NumerodeCabos app.NumerodeCabos = uieditfield(app.Area_aco, 'numeric'); app.NumerodeCabos.Limits = [1 50]; app.NumerodeCabos.FontName = 'Arial'; app.NumerodeCabos.Position = [146 148 42 22]; app.NumerodeCabos.Value = 1; % Create reaadotadacmLabel_2 app.reaadotadacmLabel_2 = uilabel(app.Area_aco); app.reaadotadacmLabel_2.HorizontalAlignment = 'right'; app.reaadotadacmLabel_2.FontName = 'Arial'; app.reaadotadacmLabel_2.Enable = 'off'; app.reaadotadacmLabel_2.Position = [18 69 110 15]; app.reaadotadacmLabel_2.Text = 'Área adotada (cm²)'; % Create Areadotada_2 app.Areadotada_2 = uieditfield(app.Area_aco, 'numeric'); app.Areadotada_2.Editable = 'off'; app.Areadotada_2.FontName = 'Arial'; app.Areadotada_2.BackgroundColor = [0.8902 0.9294 0.9804]; app.Areadotada_2.Enable = 'off'; app.Areadotada_2.Position = [146 65 42 22]; % Create NmerodecordoalhasLabel_2 app.NmerodecordoalhasLabel_2 = uilabel(app.Area_aco); app.NmerodecordoalhasLabel_2.HorizontalAlignment = 'right'; app.NmerodecordoalhasLabel_2.FontName = 'Arial'; app.NmerodecordoalhasLabel_2.Enable = 'off'; app.NmerodecordoalhasLabel_2.Position = [-2 42 130 15]; app.NmerodecordoalhasLabel_2.Text = 'Número de cordoalhas'; % Create Numerocordoalhas_2 app.Numerocordoalhas_2 = uieditfield(app.Area_aco, 'numeric'); app.Numerocordoalhas_2.Editable = 'off'; app.Numerocordoalhas_2.FontName = 'Arial'; app.Numerocordoalhas_2.BackgroundColor = [0.8902 0.9294 0.9804]; app.Numerocordoalhas_2.Enable = 'off'; app.Numerocordoalhas_2.Position = [146 38 42 22]; % Create RecalcularButton app.RecalcularButton = uibutton(app.Area_aco, 'push'); app.RecalcularButton.ButtonPushedFcn = createCallbackFcn(app, @aco_final, true); app.RecalcularButton.FontName = 'Arial'; app.RecalcularButton.Position = [47 11 100 22]; app.RecalcularButton.Text = 'Recalcular'; % Create readeaosugeridaLabel app.readeaosugeridaLabel = uilabel(app.Area_aco); app.readeaosugeridaLabel.FontName = 'Arial'; app.readeaosugeridaLabel.FontWeight = 'bold'; app.readeaosugeridaLabel.Position = [61 386 127 15];
98
app.readeaosugeridaLabel.Text = 'Área de aço sugerida'; % Create readeaoescolhidaLabel app.readeaoescolhidaLabel = uilabel(app.Area_aco); app.readeaoescolhidaLabel.FontName = 'Arial'; app.readeaoescolhidaLabel.FontWeight = 'bold'; app.readeaoescolhidaLabel.Position = [56 176 132 15]; app.readeaoescolhidaLabel.Text = 'Área de aço escolhida'; % Create CobrimentocmLabel app.CobrimentocmLabel = uilabel(app.Area_aco); app.CobrimentocmLabel.HorizontalAlignment = 'right'; app.CobrimentocmLabel.FontName = 'Arial'; app.CobrimentocmLabel.Position = [32 336 96 15]; app.CobrimentocmLabel.Text = 'Cobrimento (cm)'; % Create cobrimento app.cobrimento = uieditfield(app.Area_aco, 'numeric'); app.cobrimento.Limits = [0 40]; app.cobrimento.FontName = 'Arial'; app.cobrimento.Position = [146 332 42 22]; app.cobrimento.Value = 15; % Create TraadodosCabosPanel app.TraadodosCabosPanel = uipanel(app.TRACADO_CABOS); app.TraadodosCabosPanel.AutoResizeChildren = 'off'; app.TraadodosCabosPanel.Title = 'Traçado dos Cabos'; app.TraadodosCabosPanel.BackgroundColor = [1 1 1]; app.TraadodosCabosPanel.FontName = 'Arial'; app.TraadodosCabosPanel.FontWeight = 'bold'; app.TraadodosCabosPanel.Position = [221 10 635 431]; % Create NmerodedivisesLabel app.NmerodedivisesLabel = uilabel(app.TraadodosCabosPanel); app.NmerodedivisesLabel.HorizontalAlignment = 'right'; app.NmerodedivisesLabel.FontName = 'Arial'; app.NmerodedivisesLabel.Position = [21 385 127 15]; app.NmerodedivisesLabel.Text = 'Número de divisões = '; % Create Divisoes_viga app.Divisoes_viga = uieditfield(app.TraadodosCabosPanel, 'numeric'); app.Divisoes_viga.Limits = [3 100]; app.Divisoes_viga.FontName = 'Arial'; app.Divisoes_viga.Position = [147 381 36 22]; app.Divisoes_viga.Value = 4; % Create Traca_Cabos app.Traca_Cabos = uibutton(app.TraadodosCabosPanel, 'push'); app.Traca_Cabos.ButtonPushedFcn = createCallbackFcn(app, @TRACADO, true); app.Traca_Cabos.BackgroundColor = [0.9608 0.9608 0.9608]; app.Traca_Cabos.FontName = 'Arial'; app.Traca_Cabos.Position = [222 381 87 22]; app.Traca_Cabos.Text = 'Curvas Limite'; % Create UIAxes2 app.UIAxes2 = uiaxes(app.TraadodosCabosPanel); app.UIAxes2.FontName = 'Arial'; app.UIAxes2.XLim = [0 1]; app.UIAxes2.XLimMode = 'manual'; app.UIAxes2.YLim = [0 1];
99
app.UIAxes2.YLimMode = 'manual'; app.UIAxes2.LineStyleOrder = {'-- '; '-- '; '- '; '- '; '- '; '- '}; app.UIAxes2.XGrid = 'on'; app.UIAxes2.YGrid = 'on'; app.UIAxes2.YMinorGrid = 'on'; app.UIAxes2.BackgroundColor = [1 1 1]; app.UIAxes2.Position = [15 192 604 185]; % Create UITable app.UITable = uitable(app.TraadodosCabosPanel); app.UITable.ColumnName = ''; app.UITable.RowName = {}; app.UITable.Position = [15 11 604 175]; % Create Traca_Cabos_2 app.Traca_Cabos_2 = uibutton(app.TraadodosCabosPanel, 'push'); app.Traca_Cabos_2.ButtonPushedFcn = createCallbackFcn(app, @Cabos, true); app.Traca_Cabos_2.BackgroundColor = [0.9608 0.9608 0.9608]; app.Traca_Cabos_2.FontName = 'Arial'; app.Traca_Cabos_2.Position = [332 381 111 22]; app.Traca_Cabos_2.Text = 'Desenhar Cabos'; % Create ApagarButton app.ApagarButton = uibutton(app.TraadodosCabosPanel, 'push'); app.ApagarButton.ButtonPushedFcn = createCallbackFcn(app, @ApagarButtonPushed, true); app.ApagarButton.FontName = 'Arial'; app.ApagarButton.Position = [569 381 50 22]; app.ApagarButton.Text = 'Apagar'; % Create Label48_2 app.Label48_2 = uilabel(app.TraadodosCabosPanel); app.Label48_2.HorizontalAlignment = 'right'; app.Label48_2.FontName = 'Arial'; app.Label48_2.FontSize = 9; app.Label48_2.FontColor = [0.5216 0.5216 0.5216]; app.Label48_2.Position = [101 367 82 15]; app.Label48_2.Text = 'Utilizar número par'; % Create Label48_3 app.Label48_3 = uilabel(app.TraadodosCabosPanel); app.Label48_3.HorizontalAlignment = 'right'; app.Label48_3.FontName = 'Arial'; app.Label48_3.FontSize = 9; app.Label48_3.FontColor = [0.5216 0.5216 0.5216]; app.Label48_3.Position = [297 367 152 15]; app.Label48_3.Text = 'Informar o traçado na tabela abaixo'; % Create EquivalenteButton app.EquivalenteButton = uibutton(app.TraadodosCabosPanel, 'push'); app.EquivalenteButton.ButtonPushedFcn = createCallbackFcn(app, @EquivalenteButtonPushed, true); app.EquivalenteButton.FontName = 'Arial'; app.EquivalenteButton.Position = [466 381 80 22]; app.EquivalenteButton.Text = 'Equivalente'; % Create PERDASTab app.PERDASTab = uitab(app.TabGroup); app.PERDASTab.AutoResizeChildren = 'off';
100
app.PERDASTab.Title = 'PERDAS'; app.PERDASTab.BackgroundColor = [0.8902 0.9294 0.9804]; % Create Perdas_Imediatas app.Perdas_Imediatas = uipanel(app.PERDASTab); app.Perdas_Imediatas.AutoResizeChildren = 'off'; app.Perdas_Imediatas.Title = 'Perdas de protensão calculadas cabo a cabo'; app.Perdas_Imediatas.BackgroundColor = [1 1 1]; app.Perdas_Imediatas.FontName = 'Arial'; app.Perdas_Imediatas.FontWeight = 'bold'; app.Perdas_Imediatas.Position = [10 10 850 431]; % Create PerdasporAtritoLabel app.PerdasporAtritoLabel = uilabel(app.Perdas_Imediatas); app.PerdasporAtritoLabel.FontName = 'Arial'; app.PerdasporAtritoLabel.FontWeight = 'bold'; app.PerdasporAtritoLabel.Position = [161 379 103 15]; app.PerdasporAtritoLabel.Text = 'Perdas por Atrito'; % Create PerdasporAcomodaodeAncoragemLabel app.PerdasporAcomodaodeAncoragemLabel = uilabel(app.Perdas_Imediatas); app.PerdasporAcomodaodeAncoragemLabel.FontName = 'Arial'; app.PerdasporAcomodaodeAncoragemLabel.FontWeight = 'bold'; app.PerdasporAcomodaodeAncoragemLabel.Position = [166 189 236 15]; app.PerdasporAcomodaodeAncoragemLabel.Text = 'Perdas por Acomodação de Ancoragem'; % Create PerdasporDeformaoImediatadoConcretoLabel_2 app.PerdasporDeformaoImediatadoConcretoLabel_2 = uilabel(app.Perdas_Imediatas); app.PerdasporDeformaoImediatadoConcretoLabel_2.FontName = 'Arial'; app.PerdasporDeformaoImediatadoConcretoLabel_2.FontWeight = 'bold'; app.PerdasporDeformaoImediatadoConcretoLabel_2.Position = [520 379 270 15]; app.PerdasporDeformaoImediatadoConcretoLabel_2.Text = 'Perdas por Deformação Imediata do Concreto'; % Create PerdasProgressivasLabel app.PerdasProgressivasLabel = uilabel(app.Perdas_Imediatas); app.PerdasProgressivasLabel.FontName = 'Arial'; app.PerdasProgressivasLabel.FontWeight = 'bold'; app.PerdasProgressivasLabel.Position = [520 189 126 15]; app.PerdasProgressivasLabel.Text = 'Perdas Progressivas'; % Create Label_2 app.Label_2 = uilabel(app.Perdas_Imediatas); app.Label_2.HorizontalAlignment = 'right'; app.Label_2.FontName = 'Arial'; app.Label_2.Position = [44 376 25 15]; app.Label_2.Text = 'µ ='; % Create Ni app.Ni = uieditfield(app.Perdas_Imediatas, 'numeric'); app.Ni.Limits = [0 1]; app.Ni.FontName = 'Arial'; app.Ni.Position = [85 372 50 22]; % Create k1mLabel app.k1mLabel = uilabel(app.Perdas_Imediatas);
101
app.k1mLabel.HorizontalAlignment = 'right'; app.k1mLabel.FontName = 'Arial'; app.k1mLabel.Position = [28 329 49 15]; app.k1mLabel.Text = 'k(1/m) ='; % Create K app.K = uieditfield(app.Perdas_Imediatas, 'numeric'); app.K.Limits = [0 Inf]; app.K.FontName = 'Arial'; app.K.Position = [85 325 50 22]; app.K.Value = 0.01; % Create ccmLabel app.ccmLabel = uilabel(app.Perdas_Imediatas); app.ccmLabel.HorizontalAlignment = 'right'; app.ccmLabel.FontName = 'Arial'; app.ccmLabel.Position = [20 282 55 15]; app.ccmLabel.Text = '∆c (cm) ='; % Create Deslocamento app.Deslocamento = uieditfield(app.Perdas_Imediatas, 'numeric'); app.Deslocamento.Limits = [0 Inf]; app.Deslocamento.FontName = 'Arial'; app.Deslocamento.Position = [85 278 50 22]; % Create Label48_4 app.Label48_4 = uilabel(app.Perdas_Imediatas); app.Label48_4.HorizontalAlignment = 'right'; app.Label48_4.FontName = 'Arial'; app.Label48_4.FontSize = 9; app.Label48_4.FontColor = [0.5216 0.5216 0.5216]; app.Label48_4.Position = [7 358 128 15]; app.Label48_4.Text = 'Coeficiente de Atrito aparente'; % Create Label48_5 app.Label48_5 = uilabel(app.Perdas_Imediatas); app.Label48_5.HorizontalAlignment = 'right'; app.Label48_5.FontName = 'Arial'; app.Label48_5.FontSize = 9; app.Label48_5.FontColor = [0.5216 0.5216 0.5216]; app.Label48_5.Position = [48 347 87 15]; app.Label48_5.Text = 'entre cabo e bainha'; % Create Label48_6 app.Label48_6 = uilabel(app.Perdas_Imediatas); app.Label48_6.HorizontalAlignment = 'right'; app.Label48_6.FontName = 'Arial'; app.Label48_6.FontSize = 9; app.Label48_6.FontColor = [0.5216 0.5216 0.5216]; app.Label48_6.Position = [44 309 91 15]; app.Label48_6.Text = 'Coeficiente de Perda'; % Create UITable2 app.UITable2 = uitable(app.Perdas_Imediatas); app.UITable2.ColumnName = ''; app.UITable2.RowName = {}; app.UITable2.Position = [161 227 321 137]; % Create UITable2_2 app.UITable2_2 = uitable(app.Perdas_Imediatas); app.UITable2_2.ColumnName = ''; app.UITable2_2.RowName = {};
102
app.UITable2_2.Position = [520 33 321 136]; % Create UITable2_3 app.UITable2_3 = uitable(app.Perdas_Imediatas); app.UITable2_3.ColumnName = ''; app.UITable2_3.RowName = {}; app.UITable2_3.Position = [520 227 321 137]; % Create UITable2_4 app.UITable2_4 = uitable(app.Perdas_Imediatas); app.UITable2_4.ColumnName = ''; app.UITable2_4.RowName = {}; app.UITable2_4.Position = [161 33 321 137]; % Create Label48_7 app.Label48_7 = uilabel(app.Perdas_Imediatas); app.Label48_7.HorizontalAlignment = 'right'; app.Label48_7.FontName = 'Arial'; app.Label48_7.FontSize = 9; app.Label48_7.FontColor = [0.5216 0.5216 0.5216]; app.Label48_7.Position = [31 262 104 15]; app.Label48_7.Text = 'Deslocamento da cunha'; % Create ucmLabel app.ucmLabel = uilabel(app.Perdas_Imediatas); app.ucmLabel.HorizontalAlignment = 'right'; app.ucmLabel.FontName = 'Arial'; app.ucmLabel.Position = [26 235 49 15]; app.ucmLabel.Text = 'u (cm) ='; % Create Perimetro app.Perimetro = uieditfield(app.Perdas_Imediatas, 'numeric'); app.Perimetro.Limits = [0 Inf]; app.Perimetro.FontName = 'Arial'; app.Perimetro.Position = [85 231 50 22]; % Create Label48_8 app.Label48_8 = uilabel(app.Perdas_Imediatas); app.Label48_8.HorizontalAlignment = 'right'; app.Label48_8.FontName = 'Arial'; app.Label48_8.FontSize = 9; app.Label48_8.FontColor = [0.5216 0.5216 0.5216]; app.Label48_8.Position = [2 215 133 15]; app.Label48_8.Text = 'Perímetro em contato com o ar'; % Create Label48_9 app.Label48_9 = uilabel(app.Perdas_Imediatas); app.Label48_9.HorizontalAlignment = 'right'; app.Label48_9.FontName = 'Arial'; app.Label48_9.FontSize = 9; app.Label48_9.FontColor = [0.5216 0.5216 0.5216]; app.Label48_9.Position = [62 169 73 15]; app.Label48_9.Text = 'Umidade relativa'; % Create UDropDownLabel app.UDropDownLabel = uilabel(app.Perdas_Imediatas); app.UDropDownLabel.HorizontalAlignment = 'right'; app.UDropDownLabel.Position = [28 189 46 15]; app.UDropDownLabel.Text = 'U (%) ='; % Create UDropDown app.UDropDown = uidropdown(app.Perdas_Imediatas); app.UDropDown.Items = {'40', '55', '75', '90'};
103
app.UDropDown.Position = [85 185 50 22]; app.UDropDown.Value = '40'; % Create PerdasProgressivasButton app.PerdasProgressivasButton = uibutton(app.Perdas_Imediatas, 'push'); app.PerdasProgressivasButton.ButtonPushedFcn = createCallbackFcn(app, @PerdasProgressivasButtonPushed, true); app.PerdasProgressivasButton.FontName = 'Arial'; app.PerdasProgressivasButton.Position = [7 25 128 22]; app.PerdasProgressivasButton.Text = 'Perdas Progressivas'; % Create PerdasImediatasButton app.PerdasImediatasButton = uibutton(app.Perdas_Imediatas, 'push'); app.PerdasImediatasButton.ButtonPushedFcn = createCallbackFcn(app, @PerdasImediatasButtonPushed, true); app.PerdasImediatasButton.BackgroundColor = [0.9412 0.9412 0.9412]; app.PerdasImediatasButton.FontName = 'Arial'; app.PerdasImediatasButton.Position = [25 54 110 22]; app.PerdasImediatasButton.Text = 'Perdas Imediatas'; % Create t0diasDropDownLabel app.t0diasDropDownLabel = uilabel(app.Perdas_Imediatas); app.t0diasDropDownLabel.HorizontalAlignment = 'right'; app.t0diasDropDownLabel.Position = [15 143 59 15]; app.t0diasDropDownLabel.Text = 't0 (dias) ='; % Create t0diasDropDown app.t0diasDropDown = uidropdown(app.Perdas_Imediatas); app.t0diasDropDown.Items = {'5', '30', '60'}; app.t0diasDropDown.Position = [85 139 50 22]; app.t0diasDropDown.Value = '5'; % Create Label48_11 app.Label48_11 = uilabel(app.Perdas_Imediatas); app.Label48_11.HorizontalAlignment = 'right'; app.Label48_11.FontName = 'Arial'; app.Label48_11.FontSize = 9; app.Label48_11.FontColor = [0.5216 0.5216 0.5216]; app.Label48_11.Position = [32 124 103 15]; app.Label48_11.Text = 'Idade relativa à data de'; % Create Label48_12 app.Label48_12 = uilabel(app.Perdas_Imediatas); app.Label48_12.HorizontalAlignment = 'right'; app.Label48_12.FontName = 'Arial'; app.Label48_12.FontSize = 9; app.Label48_12.FontColor = [0.5216 0.5216 0.5216]; app.Label48_12.Position = [52 113 83 15]; app.Label48_12.Text = 'aplicação da carga'; % Create ClasseCPDropDownLabel app.ClasseCPDropDownLabel = uilabel(app.Perdas_Imediatas); app.ClasseCPDropDownLabel.HorizontalAlignment = 'right'; app.ClasseCPDropDownLabel.Position = [11 89 63 15]; app.ClasseCPDropDownLabel.Text = 'Classe CP'; % Create ClasseCPDropDown app.ClasseCPDropDown = uidropdown(app.Perdas_Imediatas);
104
app.ClasseCPDropDown.Items = {'I, I-S, II-E, II-F, II-z, Classes 25, 32 e 50', 'III-25, III-32, III-40, IV-25, IV-32, RS', 'V-ARI'}; app.ClasseCPDropDown.Position = [85 85 50 22]; app.ClasseCPDropDown.Value = 'I, I-S, II-E, II-F, II-z, Classes 25, 32 e 50'; % Create VERIFICAODOESTADOLIMITEDESERVIOTab_2 app.VERIFICAODOESTADOLIMITEDESERVIOTab_2 = uitab(app.TabGroup); app.VERIFICAODOESTADOLIMITEDESERVIOTab_2.AutoResizeChildren = 'off'; app.VERIFICAODOESTADOLIMITEDESERVIOTab_2.Title = 'VERIFICAÇÃO DO ESTADO LIMITE DE SERVIÇO'; app.VERIFICAODOESTADOLIMITEDESERVIOTab_2.BackgroundColor = [0.8902 0.9294 0.9804]; % Create ProtensoLimitadaButton app.ProtensoLimitadaButton = uibutton(app.VERIFICAODOESTADOLIMITEDESERVIOTab_2, 'push'); app.ProtensoLimitadaButton.ButtonPushedFcn = createCallbackFcn(app, @ProtensoLimitadaButtonPushed, true); app.ProtensoLimitadaButton.FontName = 'Arial'; app.ProtensoLimitadaButton.Position = [236 413 398 27]; app.ProtensoLimitadaButton.Text = 'Protensão Limitada'; % Create TabGroup4 app.TabGroup4 = uitabgroup(app.VERIFICAODOESTADOLIMITEDESERVIOTab_2); app.TabGroup4.AutoResizeChildren = 'off'; app.TabGroup4.Position = [10 10 849 395]; % Create ELSFormaodeFissurasTab app.ELSFormaodeFissurasTab = uitab(app.TabGroup4); app.ELSFormaodeFissurasTab.AutoResizeChildren = 'off'; app.ELSFormaodeFissurasTab.Title = 'ELS - Formação de Fissuras'; app.ELSFormaodeFissurasTab.BackgroundColor = [1 1 1]; % Create Combinacao1 app.Combinacao1 = uitextarea(app.ELSFormaodeFissurasTab); app.Combinacao1.Editable = 'off'; app.Combinacao1.HorizontalAlignment = 'center'; app.Combinacao1.FontName = 'Arial'; app.Combinacao1.BackgroundColor = [0.8902 0.9294 0.9804]; app.Combinacao1.Enable = 'off'; app.Combinacao1.Position = [85 344 680 19]; % Create UITable_2 app.UITable_2 = uitable(app.ELSFormaodeFissurasTab); app.UITable_2.ColumnName = ''; app.UITable_2.RowName = {}; app.UITable_2.Position = [6 245 838 91]; % Create UITable_3 app.UITable_3 = uitable(app.ELSFormaodeFissurasTab); app.UITable_3.ColumnName = ''; app.UITable_3.RowName = {}; app.UITable_3.Position = [6 129 838 91]; % Create UITable_4 app.UITable_4 = uitable(app.ELSFormaodeFissurasTab); app.UITable_4.ColumnName = ''; app.UITable_4.RowName = {}; app.UITable_4.Position = [6 13 838 91];
105
% Create TensescaboacabonabordasuperiorLabel app.TensescaboacabonabordasuperiorLabel = uilabel(app.ELSFormaodeFissurasTab); app.TensescaboacabonabordasuperiorLabel.FontName = 'Arial'; app.TensescaboacabonabordasuperiorLabel.FontWeight = 'bold'; app.TensescaboacabonabordasuperiorLabel.Position = [6 220 232 15]; app.TensescaboacabonabordasuperiorLabel.Text = 'Tensões cabo a cabo na borda superior'; % Create TensescaboacabonabordainferiorLabel_2 app.TensescaboacabonabordainferiorLabel_2 = uilabel(app.ELSFormaodeFissurasTab); app.TensescaboacabonabordainferiorLabel_2.FontName = 'Arial'; app.TensescaboacabonabordainferiorLabel_2.FontWeight = 'bold'; app.TensescaboacabonabordainferiorLabel_2.Position = [5 103 225 15]; app.TensescaboacabonabordainferiorLabel_2.Text = 'Tensões cabo a cabo na borda inferior'; % Create ELSDescompressoTab app.ELSDescompressoTab = uitab(app.TabGroup4); app.ELSDescompressoTab.AutoResizeChildren = 'off'; app.ELSDescompressoTab.Title = 'ELS - Descompressão'; app.ELSDescompressoTab.BackgroundColor = [1 1 1]; % Create CombinacaoD app.CombinacaoD = uitextarea(app.ELSDescompressoTab); app.CombinacaoD.Editable = 'off'; app.CombinacaoD.HorizontalAlignment = 'center'; app.CombinacaoD.FontName = 'Arial'; app.CombinacaoD.BackgroundColor = [0.8902 0.9294 0.9804]; app.CombinacaoD.Enable = 'off'; app.CombinacaoD.Position = [85 344 680 19]; % Create UITable_5 app.UITable_5 = uitable(app.ELSDescompressoTab); app.UITable_5.ColumnName = ''; app.UITable_5.RowName = {}; app.UITable_5.Position = [6 245 838 91]; % Create UITable_6 app.UITable_6 = uitable(app.ELSDescompressoTab); app.UITable_6.ColumnName = ''; app.UITable_6.RowName = {}; app.UITable_6.Position = [6 129 838 91]; % Create UITable_7 app.UITable_7 = uitable(app.ELSDescompressoTab); app.UITable_7.ColumnName = ''; app.UITable_7.RowName = {}; app.UITable_7.Position = [6 13 838 91]; % Create TensescaboacabonabordasuperiorLabel_2 app.TensescaboacabonabordasuperiorLabel_2 = uilabel(app.ELSDescompressoTab); app.TensescaboacabonabordasuperiorLabel_2.FontName = 'Arial'; app.TensescaboacabonabordasuperiorLabel_2.FontWeight = 'bold'; app.TensescaboacabonabordasuperiorLabel_2.Position = [6 220 232 15]; app.TensescaboacabonabordasuperiorLabel_2.Text = 'Tensões cabo a cabo na borda superior';
106
% Create TensescaboacabonabordainferiorLabel_3 app.TensescaboacabonabordainferiorLabel_3 = uilabel(app.ELSDescompressoTab); app.TensescaboacabonabordainferiorLabel_3.FontName = 'Arial'; app.TensescaboacabonabordainferiorLabel_3.FontWeight = 'bold'; app.TensescaboacabonabordainferiorLabel_3.Position = [5 103 225 15]; app.TensescaboacabonabordainferiorLabel_3.Text = 'Tensões cabo a cabo na borda inferior'; % Create Button_5 app.Button_5 = uibutton(app.UIFigure, 'push'); app.Button_5.ButtonPushedFcn = createCallbackFcn(app, @info, true); app.Button_5.Icon = 'info.png'; app.Button_5.Position = [842 454 29 22]; app.Button_5.Text = ''; end end methods (Access = public) % Construct app function app = Tentativa7 % Create and configure components createComponents(app) % Register the app with App Designer registerApp(app, app.UIFigure) if nargout == 0 clear app end end % Code that executes before app deletion function delete(app) % Delete UIFigure when app is deleted delete(app.UIFigure) end end end
107
ANEXO A – EXEMPLO 1
Relatório: Viga protendida 01/12/2017 16:11:23
Cliente:
Obra:
Responsável técnico:
Sumário Dados iniciais .................................................................................................................................. 107
Seção transversal ........................................................................................................................... 108
Ações consideradas ........................................................................................................................ 109
Combinações .................................................................................................................................. 109
Protensão ........................................................................................................................................ 110
Esforços solicitantes ...................................................................................................................... 111
Estado limite de formação de fissura (ELS-F) ............................................................................. 112
Estado limite de descompressão (ELS-D) .................................................................................... 112
Estado limite de último no ato de protensão (ELU-ATO) .......................................................... 113
Dados iniciais
Geometria:
108
Concreto:
fck = 35 MPa
fctm = 3,21 MPa
Ec = 29 GPa
fcj = 24 MPa
fctm,j = 2,5 MPa
Ec,j = 24 GPa
c = 1,40
Armadura ativa:
fptk = 1900,00
fpyk = 1710,00
Ep = 200 GPa
p = 1,15
Armadura passiva:
fyk = 500,00
Es = 210 GPa
s = 1,15
Seção transversal
Tabela 1: Propriedades geométricas seção transversal (ATO de protensão)
Seção x (m) h (m) yi (m) ys (m) Ac (m²) Ic (m⁴) Wi (m³) Ws (m³)
1 0 1,2 0,823 0,377 0,632 0,085 0,104 0,227
2 1,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
3 2,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
4 3,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
5 5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
6 6,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
7 7,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
8 8,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
9 10 1,2 0,823 0,377 0,632 0,085 0,104 0,227
10 11,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
11 12,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
12 13,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
13 15 1,2 0,823 0,377 0,632 0,085 0,104 0,227
14 16,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
15 17,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
16 18,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
17 20 1,2 0,823 0,377 0,632 0,085 0,104 0,227
18 21,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
19 22,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
20 23,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
21 25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
Tabela 7: Propriedades geométricas seção transversal (FASE FINAL)
Seção x (m) h (m) yi (m) ys (m) Ac (m²) Ic (m⁴) Wi (m³) Ws (m³)
1 0 1,2 0,823 0,377 0,632 0,085 0,104 0,227
2 1,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
3 2,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
4 3,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
5 5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
6 6,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
7 7,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
109
8 8,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
9 10 1,2 0,823 0,377 0,632 0,085 0,104 0,227
10 11,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
11 12,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
12 13,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
13 15 1,2 0,823 0,377 0,632 0,085 0,104 0,227
14 16,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
15 17,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
16 18,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
17 20 1,2 0,823 0,377 0,632 0,085 0,104 0,227
18 21,25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
19 22,5 1,2 0,823 0,377 0,632 0,085 0,104 0,227
20 23,75 1,2 0,823 0,377 0,632 0,085 0,104 0,227
21 25 1,2 0,823 0,377 0,632 0,085 0,104 0,227
Ações consideradas
A tabela 1 apresenta os casos de carregamentos considerados, bem com os correspondentes
coeficientes de ponderação e fatores de combinações das cargas variáveis.
Tabela 8: Casos de carregamentos considerados
Caso f f (fav.) 0 1 2
Peso próprio (G0) 1,4 1 - - -
Permanente (G1) 1,4 1 - - -
Acidental (Q) 1,4 - 0,6 0,4 0,3
Combinações
A seguir são apresentadas as combinações de esforços solicitantes para os estados limites
último e de serviço, obtidas de acordo com a NBR 8681.
Combinações últimas das ações (ELU)
As combinações últimas normais são dadas pela seguinte expressão:
, 1, 0 ,
1 2
m n
d g Gi k q Q k j Qj k
i j
F F F F
Onde:
,G kF é o valor característicos das ações permanentes;
1,Q kF é o valor característicos da ação variável admitida como principal;
110
,Qj kF é o valor característicos das ações variáveis secundárias.
Combinações de serviço das ações
A seguir são definidas as cominações em serviço:
- Combinação quase permanente (CQPERM): , 2 ,
1 1
m n
CQP Gi k j Qj k
i j
F F F
- Combinação frequente (CFREQ): , 1 1, 2 ,
1 2
m n
CF Gi k Q k j Qj k
i j
F F F F
- Combinação rara (CRARA): , 1, 1 ,
1 2
m n
CR Gi k Q k j Qj k
i j
F F F F
Protensão
Tabela 9: Força e momento de protensão nos instantes To e T
Seção x (m) Pi (kN) Po (kN) MPo (kN.m) P (kN) MP (kN.m)
1 0 3336,00 2950,78 -660,92 2481,80 -555,88
2 1,25 3336,00 2960,69 -921,33 2473,22 -769,63
3 2,5 3336,00 2970,64 -1156,25 2467,47 -960,40
4 3,75 3336,00 2980,67 -1365,43 2464,15 -1128,81
5 5 3336,00 2990,85 -1548,62 2462,91 -1275,26
6 6,25 3336,00 3001,22 -1705,60 2463,44 -1399,98
7 7,5 3336,00 3011,85 -1836,13 2465,50 -1503,06
8 8,75 3336,00 3022,78 -1939,98 2468,92 -1584,52
9 10 3336,00 3034,07 -2016,89 2473,60 -1644,32
10 11,25 3336,00 3045,77 -2066,59 2479,51 -1682,38
11 12,5 3336,00 3057,90 -2088,80 2486,67 -1698,60
12 13,75 3336,00 3045,77 -2066,59 2479,51 -1682,38
13 15 3336,00 3034,07 -2016,89 2473,60 -1644,32
14 16,25 3336,00 3022,78 -1939,98 2468,92 -1584,52
15 17,5 3336,00 3011,85 -1836,13 2465,50 -1503,06
16 18,75 3336,00 3001,22 -1705,60 2463,44 -1399,98
17 20 3336,00 2990,85 -1548,62 2462,91 -1275,26
18 21,25 3336,00 2980,67 -1365,43 2464,15 -1128,81
19 22,5 3336,00 2970,64 -1156,25 2467,47 -960,40
20 23,75 3336,00 2960,69 -921,33 2473,22 -769,63
21 25 3336,00 2950,78 -660,92 2481,80 -555,88
111
Esforços solicitantes
Tabela 10: Momento fletor combinações ELS e ELU (kN.m)
Seção x (m) MCQP,max MCQP,min MCF,max MCF,min MCR,max MCR,min MSd,max MSd,min
1 0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
2 1,25 374,06 374,06 388,91 388,91 477,97 477,97 669,16 329,53
3 2,5 708,75 708,75 736,88 736,88 905,63 905,63 1267,88 624,38
4 3,75 1004,06 1004,06 1043,91 1043,91 1282,97 1282,97 1796,16 884,53
5 5 1260,00 1260,00 1310,00 1310,00 1610,00 1610,00 2254,00 1110,00
6 6,25 1476,56 1476,56 1535,16 1535,16 1886,72 1886,72 2641,41 1300,78
7 7,5 1653,75 1653,75 1719,38 1719,38 2113,13 2113,13 2958,38 1456,88
8 8,75 1791,56 1791,56 1862,66 1862,66 2289,22 2289,22 3204,91 1578,28
9 10 1890,00 1890,00 1965,00 1965,00 2415,00 2415,00 3381,00 1665,00
10 11,25 1949,06 1949,06 2026,41 2026,41 2490,47 2490,47 3486,66 1717,03
11 12,5 1968,75 1968,75 2046,88 2046,88 2515,63 2515,63 3521,88 1734,38
12 13,75 1949,06 1949,06 2026,41 2026,41 2490,47 2490,47 3486,66 1717,03
13 15 1890,00 1890,00 1965,00 1965,00 2415,00 2415,00 3381,00 1665,00
14 16,25 1791,56 1791,56 1862,66 1862,66 2289,22 2289,22 3204,91 1578,28
15 17,5 1653,75 1653,75 1719,38 1719,38 2113,13 2113,13 2958,38 1456,88
16 18,75 1476,56 1476,56 1535,16 1535,16 1886,72 1886,72 2641,41 1300,78
17 20 1260,00 1260,00 1310,00 1310,00 1610,00 1610,00 2254,00 1110,00
18 21,25 1004,06 1004,06 1043,91 1043,91 1282,97 1282,97 1796,16 884,53
19 22,5 708,75 708,75 736,88 736,88 905,63 905,63 1267,88 624,38
20 23,75 374,06 374,06 388,91 388,91 477,97 477,97 669,16 329,53
21 25 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Tabela 11: Esforço cortante combinações ELS e ELU (kN)
Seção x (m) VCQP,max VCQP,min VCF,max VCF,min VCR,max VCR,min VSd,max VSd,min
1 0 315,00 315,00 327,50 327,50 402,50 402,50 563,50 277,50
2 1,25 283,50 283,50 294,75 294,75 362,25 362,25 507,15 249,75
3 2,5 252,00 252,00 262,00 262,00 322,00 322,00 450,80 222,00
4 3,75 220,50 220,50 229,25 229,25 281,75 281,75 394,45 194,25
5 5 189,00 189,00 196,50 196,50 241,50 241,50 338,10 166,50
6 6,25 157,50 157,50 163,75 163,75 201,25 201,25 281,75 138,75
7 7,5 126,00 126,00 131,00 131,00 161,00 161,00 225,40 111,00
8 8,75 94,50 94,50 98,25 98,25 120,75 120,75 169,05 83,25
9 10 63,00 63,00 65,50 65,50 80,50 80,50 112,70 55,50
10 11,25 31,50 31,50 32,75 32,75 40,25 40,25 56,35 27,75
11 12,5 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
12 13,75 -31,50 -31,50 -32,75 -32,75 -40,25 -40,25 -27,75 -56,35
13 15 -63,00 -63,00 -65,50 -65,50 -80,50 -80,50 -55,50 -112,70
14 16,25 -94,50 -94,50 -98,25 -98,25 -120,75 -120,75 -83,25 -169,05
15 17,5 -126,00 -126,00 -131,00 -131,00 -161,00 -161,00 -111,00 -225,40
16 18,75 -157,50 -157,50 -163,75 -163,75 -201,25 -201,25 -138,75 -281,75
17 20 -189,00 -189,00 -196,50 -196,50 -241,50 -241,50 -166,50 -338,10
18 21,25 -220,50 -220,50 -229,25 -229,25 -281,75 -281,75 -194,25 -394,45
19 22,5 -252,00 -252,00 -262,00 -262,00 -322,00 -322,00 -222,00 -450,80
20 23,75 -283,50 -283,50 -294,75 -294,75 -362,25 -362,25 -249,75 -507,15
21 25 -315,00 -315,00 -327,50 -327,50 -402,50 -402,50 -277,50 -563,50
112
Estado limite de formação de fissura (ELS-F)
Tabela 12: Verificação ELS-F (σc ≤ 2,7 MPa)
Seção x (m) σc,min (MPa) σc,max (MPa)
1 0 -9,28 -1,48
2 1,25 -7,58 -2,23
3 2,5 -6,06 -2,92
4 3,75 -4,72 -3,52
5 5 -4,05 -3,56
6 6,25 -4,49 -2,60
7 7,5 -4,85 -1,82
8 8,75 -5,13 -1,23
9 10 -5,33 -0,83
10 11,25 -5,44 -0,61
11 12,5 -5,47 -0,58
12 13,75 -5,44 -0,61
13 15 -5,33 -0,83
14 16,25 -5,13 -1,23
15 17,5 -4,85 -1,82
16 18,75 -4,49 -2,60
17 20 -4,05 -3,56
18 21,25 -4,72 -3,52
19 22,5 -6,06 -2,92
20 23,75 -7,58 -2,23
21 25 -9,28 -1,48
Estado limite de descompressão (ELS-D)
Tabela 13: Verificação ELS-D (σc ≤ 0)
Seção x (m) σc,min (MPa) σc,max (MPa)
1 0 -9,28 -1,48
2 1,25 -7,72 -2,17
3 2,5 -6,33 -2,79
4 3,75 -5,10 -3,35
5 5 -4,04 -3,83
6 6,25 -4,24 -3,16
7 7,5 -4,57 -2,45
8 8,75 -4,82 -1,91
9 10 -5,00 -1,55
10 11,25 -5,10 -1,36
11 12,5 -5,13 -1,33
12 13,75 -5,10 -1,36
13 15 -5,00 -1,55
14 16,25 -4,82 -1,91
113
15 17,5 -4,57 -2,45
16 18,75 -4,24 -3,16
17 20 -4,04 -3,83
18 21,25 -5,10 -3,35
19 22,5 -6,33 -2,79
20 23,75 -7,72 -2,17
21 25 -9,28 -1,48
Estado limite de último no ato de protensão (ELU-ATO)
Tabela 14: Verificação ELU-ATO (-16,8 MPa ≤ σc ≤ 3 MPa)
Seção x (m) σc,min (MPa) σc,max (MPa)
1 0 -12,14 -1,93
2 1,25 -12,65 -1,72
3 2,5 -13,14 -1,52
4 3,75 -13,59 -1,34
5 5 -14,00 -1,18
6 6,25 -14,37 -1,03
7 7,5 -14,71 -0,91
8 8,75 -14,99 -0,80
9 10 -15,23 -0,72
10 11,25 -15,42 -0,67
11 12,5 -15,56 -0,63
12 13,75 -15,42 -0,67
13 15 -15,23 -0,72
14 16,25 -14,99 -0,80
15 17,5 -14,71 -0,91
16 18,75 -14,37 -1,03
17 20 -14,00 -1,18
18 21,25 -13,59 -1,34
19 22,5 -13,14 -1,52
20 23,75 -12,65 -1,72
21 25 -12,14 -1,93
114
ANEXO B – EXEMPLO 2
Relatório: Viga protendida 07/12/2017 08:49:29
Cliente:
Obra:
Responsável técnico:
Sumário Dados iniciais .................................................................................................................................. 107
Seção transversal ............................................................................................................................ 108
Ações consideradas ........................................................................................................................ 109
Combinações ................................................................................................................................... 109
Protensão ........................................................................................................................................ 110
Esforços solicitantes ....................................................................................................................... 111
Estado limite de formação de fissura (ELS-F) .............................................................................. 112
Estado limite de descompressão (ELS-D) ..................................................................................... 112
Estado limite de último no ato de protensão (ELU-ATO) ........................................................... 113
Dados iniciais
Geometria:
115
Concreto:
fck = 30 MPa
fctm = 2,9 MPa
Ec = 28 GPa
fcj = 24,6 MPa
fctm,j = 2,36 MPa
Ec,j = 23 GPa
c = 1,40
Armadura ativa:
fptk = 1900,00
fpyk = 1710,00
Ep = 200 GPa
p = 1,15
Armadura passiva:
fyk = 500,00
Es = 210 GPa
s = 1,15
Seção transversal
Tabela 1: Propriedades geométricas seção transversal (ATO de protensão)
Seção x (m) h (m) yi (m) ys (m) Ac (m²) Ic (m⁴) Wi (m³) Ws (m³)
1 0 1,25 0,658 0,592 0,614 0,123 0,186 0,207
2 1,3 1,25 0,658 0,592 0,614 0,123 0,186 0,207
3 2,6 1,25 0,658 0,592 0,614 0,123 0,186 0,207
4 3,9 1,25 0,658 0,592 0,614 0,123 0,186 0,207
5 5,2 1,25 0,658 0,592 0,614 0,123 0,186 0,207
6 6,5 1,25 0,658 0,592 0,614 0,123 0,186 0,207
7 7,8 1,25 0,658 0,592 0,614 0,123 0,186 0,207
8 9,1 1,25 0,658 0,592 0,614 0,123 0,186 0,207
9 10,4 1,25 0,658 0,592 0,614 0,123 0,186 0,207
10 11,7 1,25 0,658 0,592 0,614 0,123 0,186 0,207
11 13 1,25 0,658 0,592 0,614 0,123 0,186 0,207
12 14,3 1,25 0,658 0,592 0,614 0,123 0,186 0,207
13 15,6 1,25 0,658 0,592 0,614 0,123 0,186 0,207
14 16,9 1,25 0,658 0,592 0,614 0,123 0,186 0,207
15 18,2 1,25 0,658 0,592 0,614 0,123 0,186 0,207
16 19,5 1,25 0,658 0,592 0,614 0,123 0,186 0,207
17 20,8 1,25 0,658 0,592 0,614 0,123 0,186 0,207
18 22,1 1,25 0,658 0,592 0,614 0,123 0,186 0,207
19 23,4 1,25 0,658 0,592 0,614 0,123 0,186 0,207
20 24,7 1,25 0,658 0,592 0,614 0,123 0,186 0,207
21 26 1,25 0,658 0,592 0,614 0,123 0,186 0,207
Tabela 15: Propriedades geométricas seção transversal (FASE FINAL)
Seção x (m) h (m) yi (m) ys (m) Ac (m²) Ic (m⁴) Wi (m³) Ws (m³)
1 0 1,25 0,658 0,592 0,614 0,123 0,186 0,207
2 1,3 1,25 0,658 0,592 0,614 0,123 0,186 0,207
3 2,6 1,25 0,658 0,592 0,614 0,123 0,186 0,207
4 3,9 1,25 0,658 0,592 0,614 0,123 0,186 0,207
5 5,2 1,25 0,658 0,592 0,614 0,123 0,186 0,207
6 6,5 1,25 0,658 0,592 0,614 0,123 0,186 0,207
7 7,8 1,25 0,658 0,592 0,614 0,123 0,186 0,207
116
8 9,1 1,25 0,658 0,592 0,614 0,123 0,186 0,207
9 10,4 1,25 0,658 0,592 0,614 0,123 0,186 0,207
10 11,7 1,25 0,658 0,592 0,614 0,123 0,186 0,207
11 13 1,25 0,658 0,592 0,614 0,123 0,186 0,207
12 14,3 1,25 0,658 0,592 0,614 0,123 0,186 0,207
13 15,6 1,25 0,658 0,592 0,614 0,123 0,186 0,207
14 16,9 1,25 0,658 0,592 0,614 0,123 0,186 0,207
15 18,2 1,25 0,658 0,592 0,614 0,123 0,186 0,207
16 19,5 1,25 0,658 0,592 0,614 0,123 0,186 0,207
17 20,8 1,25 0,658 0,592 0,614 0,123 0,186 0,207
18 22,1 1,25 0,658 0,592 0,614 0,123 0,186 0,207
19 23,4 1,25 0,658 0,592 0,614 0,123 0,186 0,207
20 24,7 1,25 0,658 0,592 0,614 0,123 0,186 0,207
21 26 1,25 0,658 0,592 0,614 0,123 0,186 0,207
Ações consideradas
A tabela 1 apresenta os casos de carregamentos considerados, bem com os correspondentes
coeficientes de ponderação e fatores de combinações das cargas variáveis.
Tabela 16: Casos de carregamentos considerados
Caso f f (fav.) 0 1 2
Peso próprio (G0) 1,4 1 - - -
Permanente (G1) 1,4 1 - - -
Acidental (Q) 1,4 - 0,5 0,4 0,3
Combinações
A seguir são apresentadas as combinações de esforços solicitantes para os estados limites
último e de serviço, obtidas de acordo com a NBR 8681.
Combinações últimas das ações (ELU)
As combinações últimas normais são dadas pela seguinte expressão:
, 1, 0 ,
1 2
m n
d g Gi k q Q k j Qj k
i j
F F F F
Onde:
,G kF é o valor característicos das ações permanentes;
1,Q kF é o valor característicos da ação variável admitida como principal;
117
,Qj kF é o valor característicos das ações variáveis secundárias.
Combinações de serviço das ações
A seguir são definidas as cominações em serviço:
- Combinação quase permanente (CQPERM): , 2 ,
1 1
m n
CQP Gi k j Qj k
i j
F F F
- Combinação frequente (CFREQ): , 1 1, 2 ,
1 2
m n
CF Gi k Q k j Qj k
i j
F F F F
- Combinação rara (CRARA): , 1, 1 ,
1 2
m n
CR Gi k Q k j Qj k
i j
F F F F
Protensão
Tabela 17: Força e momento de protensão nos instantes To e T
Seção x (m) Pi (kN) Po (kN) MPo (kN.m) P (kN) MP (kN.m)
1 0 4865,00 4320,41 -5,13 3516,53 -4,18
2 1,3 4865,00 4339,12 -463,06 3523,47 -376,02
3 2,6 4865,00 4354,70 -876,27 3518,26 -707,96
4 3,9 4865,00 4368,13 -1243,54 3505,45 -997,95
5 5,2 4865,00 4380,30 -1564,12 3489,04 -1245,86
6 6,5 4865,00 4392,04 -1837,57 3472,30 -1452,76
7 7,8 4865,00 4404,06 -2063,67 3457,78 -1620,26
8 9,1 4865,00 4416,98 -2242,30 3447,36 -1750,07
9 10,4 4865,00 4431,31 -2373,31 3442,39 -1843,67
10 11,7 4865,00 4447,44 -2456,49 3443,82 -1902,15
11 13 4865,00 4465,63 -2491,44 3452,26 -1926,07
12 14,3 4865,00 4447,44 -2456,49 3443,82 -1902,15
13 15,6 4865,00 4431,31 -2373,31 3442,39 -1843,67
14 16,9 4865,00 4416,98 -2242,30 3447,36 -1750,07
15 18,2 4865,00 4404,06 -2063,67 3457,78 -1620,26
16 19,5 4865,00 4392,04 -1837,57 3472,30 -1452,76
17 20,8 4865,00 4380,30 -1564,12 3489,04 -1245,86
18 22,1 4865,00 4368,13 -1243,54 3505,45 -997,95
19 23,4 4865,00 4354,70 -876,27 3518,26 -707,96
20 24,7 4865,00 4339,12 -463,06 3523,47 -376,02
21 26 4865,00 4320,41 -5,13 3516,53 -4,18
118
Esforços solicitantes
Tabela 18: Momento fletor combinações ELS e ELU (kN.m)
Seção x (m) MCQP,max MCQP,min MCF,max MCF,min MCR,max MCR,min MSd,max MSd,min
1 0 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
2 1,3 471,21 471,21 503,32 503,32 695,98 695,98 974,38 374,88
3 2,6 892,83 892,83 953,67 953,67 1318,71 1318,71 1846,19 710,31
4 3,9 1264,84 1264,84 1351,03 1351,03 1868,17 1868,17 2615,44 1006,27
5 5,2 1587,25 1587,25 1695,41 1695,41 2344,37 2344,37 3282,12 1262,77
6 6,5 1860,06 1860,06 1986,81 1986,81 2747,31 2747,31 3846,23 1479,81
7 7,8 2083,26 2083,26 2225,22 2225,22 3076,98 3076,98 4307,78 1657,38
8 9,1 2256,87 2256,87 2410,66 2410,66 3333,40 3333,40 4666,76 1795,50
9 10,4 2380,87 2380,87 2543,11 2543,11 3516,55 3516,55 4923,17 1894,15
10 11,7 2455,27 2455,27 2622,58 2622,58 3626,44 3626,44 5077,02 1953,34
11 13 2480,08 2480,08 2649,08 2649,08 3663,08 3663,08 5128,31 1973,08
12 14,3 2455,27 2455,27 2622,58 2622,58 3626,44 3626,44 5077,02 1953,34
13 15,6 2380,87 2380,87 2543,11 2543,11 3516,55 3516,55 4923,17 1894,15
14 16,9 2256,87 2256,87 2410,66 2410,66 3333,40 3333,40 4666,76 1795,50
15 18,2 2083,26 2083,26 2225,22 2225,22 3076,98 3076,98 4307,78 1657,38
16 19,5 1860,06 1860,06 1986,81 1986,81 2747,31 2747,31 3846,23 1479,81
17 20,8 1587,25 1587,25 1695,41 1695,41 2344,37 2344,37 3282,12 1262,77
18 22,1 1264,84 1264,84 1351,03 1351,03 1868,17 1868,17 2615,44 1006,27
19 23,4 892,83 892,83 953,67 953,67 1318,71 1318,71 1846,19 710,31
20 24,7 471,21 471,21 503,32 503,32 695,98 695,98 974,38 374,88
21 26 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
Tabela 19: Esforço cortante combinações ELS e ELU (kN)
Seção x (m) VCQP,max VCQP,min VCF,max VCF,min VCR,max VCR,min VSd,max VSd,min
1 0 381,55 381,55 407,55 407,55 563,55 563,55 788,97 303,55
2 1,3 343,40 343,40 366,80 366,80 507,20 507,20 710,07 273,20
3 2,6 305,24 305,24 326,04 326,04 450,84 450,84 631,18 242,84
4 3,9 267,09 267,08 285,29 285,28 394,49 394,48 552,28 212,48
5 5,2 228,93 228,93 244,53 244,53 338,13 338,13 473,38 182,13
6 6,5 190,78 190,77 203,78 203,77 281,78 281,77 394,49 151,77
7 7,8 152,62 152,62 163,02 163,02 225,42 225,42 315,59 121,42
8 9,1 114,46 114,46 122,26 122,26 169,06 169,06 236,69 91,06
9 10,4 76,31 76,31 81,51 81,51 112,71 112,71 157,79 60,71
10 11,7 38,16 38,15 40,76 40,75 56,36 56,35 78,90 30,35
11 13 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00
12 14,3 -38,15 -38,16 -40,75 -40,76 -56,35 -56,36 -30,35 -78,90
13 15,6 -76,31 -76,31 -81,51 -81,51 -112,71 -112,71 -60,71 -157,79
14 16,9 -114,47 -114,47 -122,27 -122,27 -169,07 -169,07 -91,06 -236,69
15 18,2 -152,62 -152,62 -163,02 -163,02 -225,42 -225,42 -121,42 -315,59
16 19,5 -190,78 -190,78 -203,78 -203,78 -281,77 -281,78 -151,78 -394,49
17 20,8 -228,93 -228,93 -244,53 -244,53 -338,13 -338,13 -182,13 -473,38
18 22,1 -267,08 -267,08 -285,28 -285,28 -394,48 -394,49 -212,48 -552,28
119
19 23,4 -305,24 -305,24 -326,04 -326,04 -450,84 -450,84 -242,84 -631,18
20 24,7 -343,39 -343,39 -366,79 -366,79 -507,19 -507,20 -273,19 -710,07
21 26 -381,55 -381,55 -407,55 -407,55 -563,55 -563,55 -303,55 -788,97
Estado limite de formação de fissura (ELS-F)
Tabela 20: Verificação ELS-F (σc ≤ 2,44 MPa)
Seção x (m) σc,min (MPa) σc,max (MPa)
1 0 -5,75 -5,71
2 1,3 -6,35 -5,06
3 2,6 -6,92 -4,41
4 3,9 -7,41 -3,81
5 5,2 -7,85 -3,27
6 6,5 -8,23 -2,79
7 7,8 -8,55 -2,39
8 9,1 -8,80 -2,07
9 10,4 -8,98 -1,85
10 11,7 -9,09 -1,74
11 13 -9,11 -1,74
12 14,3 -9,09 -1,74
13 15,6 -8,98 -1,85
14 16,9 -8,80 -2,07
15 18,2 -8,55 -2,39
16 19,5 -8,23 -2,79
17 20,8 -7,85 -3,27
18 22,1 -7,41 -3,81
19 23,4 -6,92 -4,41
20 24,7 -6,35 -5,06
21 26 -5,75 -5,71
Estado limite de descompressão (ELS-D)
Tabela 21: Verificação ELS-D (σc ≤ 0)
Seção x (m) σc,min (MPa) σc,max (MPa)
1 0 -5,75 -5,71
2 1,3 -6,20 -5,23
3 2,6 -6,62 -4,74
4 3,9 -7,00 -4,28
5 5,2 -7,33 -3,85
6 6,5 -7,62 -3,47
7 7,8 -7,87 -3,15
8 9,1 -8,06 -2,90
9 10,4 -8,20 -2,72
10 11,7 -8,28 -2,64
11 13 -8,30 -2,65
120
12 14,3 -8,28 -2,64
13 15,6 -8,20 -2,72
14 16,9 -8,06 -2,90
15 18,2 -7,87 -3,15
16 19,5 -7,62 -3,47
17 20,8 -7,33 -3,85
18 22,1 -7,00 -4,28
19 23,4 -6,62 -4,74
20 24,7 -6,20 -5,23
21 26 -5,75 -5,71
Estado limite de último no ato de protensão (ELU-ATO)
Tabela 22: Verificação ELU-ATO (-17,22 MPa ≤ σc ≤ 2,83 MPa)
Seção x (m) σc,min (MPa) σc,max (MPa)
1 0 -7,77 -7,71
2 1,3 -9,18 -6,50
3 2,6 -10,47 -5,40
4 3,9 -11,62 -4,41
5 5,2 -12,62 -3,55
6 6,5 -13,49 -2,81
7 7,8 -14,22 -2,19
8 9,1 -14,81 -1,70
9 10,4 -15,26 -1,35
10 11,7 -15,58 -1,12
11 13 -15,75 -1,03
12 14,3 -15,58 -1,12
13 15,6 -15,26 -1,35
14 16,9 -14,81 -1,70
15 18,2 -14,22 -2,19
16 19,5 -13,49 -2,81
17 20,8 -12,62 -3,55
18 22,1 -11,62 -4,41
19 23,4 -10,47 -5,40
20 24,7 -9,18 -6,50
21 26 -7,77 -7,71