Last active
June 16, 2020 00:07
-
-
Save PedroBern/6efd595a728d06c0dcc563f4206f81fc to your computer and use it in GitHub Desktop.
Concrete Assessment 2 - PT
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
title: "Estrutura de Concreto 2 - A2" | |
author: | | |
| Guilherme Andrade Santos - 20141102646 | |
| Pedro Bernardino Alves Moreira - 20142104155 | |
| Rodrigo dos Santos Barbosa - 20161101734 | |
| Ygor Garcia Moreira - 20151109365 | |
date: "02/06/2020" | |
output: | |
pdf_document: default | |
html_document: | |
df_print: paged | |
abstract: Dimensionamento das sapatas rasas e vigas de equilibrio para um projeto | |
escolhido pelo professor. Esse relatório foi calculado e gerado de forma automatizado | |
em um arquivo Rmd, disponível [**nesse link**](https://gist.github.com/PedroBern/6efd595a728d06c0dcc563f4206f81fc). | |
header-includes: | |
- \renewcommand{\abstractname}{Resumo} | |
- \usepackage{booktabs} | |
- \usepackage{longtable} | |
- \usepackage{supertabular} | |
- \usepackage{array} | |
- \usepackage{multirow} | |
- \usepackage{wrapfig} | |
- \usepackage{colortbl} | |
- \usepackage{pdflscape} | |
- \usepackage{tabu} | |
- \usepackage{threeparttable} | |
- \usepackage[normalem]{ulem} | |
- \usepackage{caption} | |
- \usepackage{floatrow} | |
- \floatsetup[table]{capposition=top} | |
- \floatsetup[figure]{capposition=top} | |
- \captionsetup{options=chunk} | |
- \DeclareNewFloatType{chunk}{placement=H, fileext=chk, name=} | |
- \renewcommand{\thechunk}{\arabic{chunk}} | |
- \usepackage{indentfirst} | |
- \setlength{\parindent}{20pt} | |
--- | |
```{r setup, include=FALSE, cache=F} | |
# Install libraries, if not already installed | |
if(!require(knitr)) install.packages("knitr") | |
if(!require(kableExtra)) install.packages("kableExtra") | |
if(!require(tidyverse)) install.packages("tidyverse") | |
if(!require(dplyr)) install.packages("dplyr") | |
if(!require(tidyr)) install.packages("tidyr") | |
# Load libraries | |
library(knitr) | |
library(kableExtra) | |
library(tidyverse) | |
library(dplyr) | |
library(tidyr) | |
# Set global options | |
options(knitr.kable.NA = '') | |
opts_chunk$set(echo = FALSE, fig.align = 'center', cache=F, prompt=F, highlight=T ) | |
``` | |
\renewcommand{\figurename}{Figura} | |
\renewcommand{\tablename}{Tabela} | |
\renewcommand{\contentsname}{Sumário} | |
\renewcommand{\listtablename}{Lista de tabelas} | |
\tableofcontents | |
\listoftables | |
\newpage | |
# Introdução | |
O trabalho faz o dimensionamento e detalhamento das dimensões e quantidas de ferro para o projeto fornecido pelo professor. Deve ser lido em conjunto com o arquivo `.dwg`. | |
# Definições iniciais | |
A classe do concreto e do ferro foram determinados de acordo com a tabela \ref{tab:tabela-dados}. A tensão admissível do solo é o valor médio entre os valores definidos para solo de argila muito rija, entre $2,4$ e $4,8\;kg/cm^2$. | |
```{r tabela-dados} | |
grupo = 6 | |
CA = 50 | |
Fck = 25 | |
# Tensão adimissível do solo -> Argila muito rija | |
# pela tabela: | |
# 2.4 - 4.8 (kg/cm2) -> média = 3.6 | |
# para MPa -> multiplica por 0.0980665 | |
Tadm = 3.6 * 0.0980665 # (MPa) | |
dados <- data.frame(grupo=c(grupo), CA=c(CA), Fck=c(Fck), Tadm=c(Tadm)) | |
header = c("Grupo"=1, "CA"=1, "Fck"=1, "$\\T_{adm}$"=1) | |
kable( | |
dados, | |
col.names = c("", "$kN/cm^2$", "$MPa$", "$MPa$"), | |
escape = F, | |
booktabs = T, | |
caption = "Definições iniciais do projeto", | |
linesep = "\\addlinespace", | |
align = "c" | |
) %>% | |
add_header_above(header = header, line = F, align = "c", escape=FALSE) %>% | |
kable_styling(latex_options = c("HOLD_position")) | |
``` | |
# Pré-dimensionamento das sapatas | |
A nomenclatura dos pilares, a carga e dimensões dos pilares e forma escolhida para sapata são apresentados na tabela \ref{tab:tabela-pilares-1}. | |
A carga **P** de cada pilar foi calculada com seguinte fórmula: | |
$$P = Carga + \frac{2 \cdot Grupo \cdot Carga}{100}$$ | |
## Sapatas quadradas | |
O dimensionamento das sapatas quadradas foi realizado com a seguinte fórmula: | |
$$a = \sqrt{\frac{P}{T_{adm}}}$$ | |
- $a = \textrm{dimensão do lado da sapata em }m \textrm{, mínimo de } 0.60m$ | |
- $P = \textrm{carga no pilar em }kN$ | |
- $T_{adm} = \textrm{tensão adimissível do solo em }kPa$ | |
## Sapatas retangulares | |
O dimensionamento das sapatas retangulares foi realizado com a solução da seguinte equação: | |
$$x^2 + (a_0 - b_0) \cdot x - \frac{P}{10 \cdot T_{adm}} = 0 \: \therefore \: a,\:b$$ | |
- $a, b = \textrm{as duas dimensões da sapata em }cm \textrm{, mínimo de } 60cm$ | |
- $P = \textrm{carga no pilar em }kN$ | |
- $a_0 = \textrm{maior dimensão do pilar em }cm$ | |
- $b_0 = \textrm{menor dimensão do pilar em }cm$ | |
- $T_{adm} = \textrm{tensão adimissível do solo em }MPa$ | |
## Cálculo da área de aço | |
A área de aço foi calculado da seguinte forma: | |
$$\sigma_s = \frac{0.85 \cdot fck}{1.96}$$ | |
$$d \geqslant\begin{cases} | |
\frac{a - a0}{4} \\ | |
\frac{b - b0}{4} \\ | |
1.44 \cdot \sqrt{\frac{P}{\sigma_s}} | |
\end{cases}$$ | |
$$T_{a,\:b} = \frac{P \cdot (a,\;b - a0,\;b0)}{8 \cdot d}$$ | |
$$As_{a,\:b} = \frac{1.61 \cdot T_{a,\:b}}{f_{yk}}$$ | |
- $a, b = \textrm{as duas dimensões da sapata em }m$ | |
- $a0, b0 = \textrm{as duas dimensões do pilar em }m$ | |
- $P = \textrm{carga no pilar em }kN$ | |
- $fyk = \textrm{resistência ao escoamento do aço em}kN/cm^2$ | |
- $fck = \textrm{resistência à compressão do concreto em }kPa$ | |
## Cálculo altura mínima da sapata | |
A altura mínima da sapata foi calculada da seguinte forma: | |
$$h = d + c + h_{concreto\;magro}$$ | |
```{r tabela-pilares-1, warning=F} | |
pilares <- c( | |
c(1, 110, 0.6, 0.15, "retangular", "", 0), | |
c(2, 110, 0.6, 0.15, "retangular", "", 0), | |
c(3, 130, 0.3, 0.15, "retangular", "", 0), | |
c(4, 200, 0.3, 0.15, "quadrada", "VE", 2), | |
c(5, 340, 0.3, 0.23, "quadrada", "", 0), | |
c(6, 200, 0.3, 0.15, "quadrada", "VE", 2), | |
c(7, 130, 0.3, 0.15, "retangular", "", 0), | |
c(8, 135, 0.3, 0.15, "retangular", "", 0), | |
c(9, 220, 0.3, 0.15, "quadrada", "VE", 1), | |
c(10, 230, 0.3, 0.23, "quadrada", "", 0), | |
c(11, 220, 0.3, 0.15, "quadrada", "VE", 1), | |
c(12, 135, 0.3, 0.15, "retangular", "", 0), | |
c(13, 170, 0.3, 0.15, "retangular", "", 0), | |
c(14, 300, 0.3, 0.15, "quadrada", "VE", 1), | |
c(15, 260, 0.3, 0.23, "quadrada", "", 0), | |
c(16, 300, 0.3, 0.15, "quadrada", "VE", 1), | |
c(17, 170, 0.3, 0.15, "retangular", "", 0), | |
c(18, 150, 0.3, 0.15, "retangular", "", 0), | |
c(19, 370, 0.3, 0.23, "quadrada", "VE-1", 2), | |
c(20, 150, 0.3, 0.15, "retangular", "", 0) | |
) | |
m <- matrix(pilares, byrow = TRUE, ncol=7) | |
df <- data.frame(m) | |
colnames(df) <- c( | |
"pilar", "P_inicial", "a0", "b0", "forma", "id_viga", "n_vigas" | |
) | |
df$pilar <- as.numeric(as.character(df$pilar)) | |
df$P_inicial <- as.numeric(as.character(df$P_inicial)) | |
df$a0 <- as.numeric(as.character(df$a0)) | |
df$b0 <- as.numeric(as.character(df$b0)) | |
df$n_vigas <- as.numeric(as.character(df$n_vigas)) | |
df$id_viga <- as.character(df$id_viga) | |
# df$id_viga <- as.vector(as.numeric(as.vector(unlist(strsplit(df$id_viga, ","))))) | |
df <- df %>% | |
mutate(P = P_inicial + (2 * grupo) * (P_inicial / 100)) | |
# ====================================== | |
# calculo das sapatas | |
# ====================================== | |
delta <- function(a,b,c){ | |
b^2 - 4 * a * c | |
} | |
quadratic_eq <- function(a,b,c){ | |
d <- delta(a,b,c) | |
if(d > 0){ | |
x_1 = (- b + sqrt(d)) / (2*a) | |
x_2 = (- b - sqrt(d)) / (2*a) | |
c(x_1,x_2) | |
} | |
else if(d == 0){ | |
x = -b/(2*a) | |
c(x, x) | |
} | |
else {"There are no real roots."} | |
} | |
df <- df %>% | |
mutate(a = ifelse( | |
forma == "quadrada", | |
sqrt(P / (Tadm * 1000)), | |
max(abs(quadratic_eq(1, (a0 - b0) * 100, -P / Tadm * 10)))/100)) | |
df <- df %>% | |
mutate(b = ifelse( | |
forma == "quadrada", | |
sqrt(P / (Tadm * 1000)), | |
min(abs(quadratic_eq(1, (a0 - b0) * 100, -P / Tadm * 10)))/100)) | |
# exemplo slide: | |
# abs(quadratic_eq(1, (1 - 0.30) * 100, -3000 / 0.3 * 10)) | |
round_up <- function(x, a=0.05){ | |
ceiling(x / a) * a | |
} | |
df$a <- round_up(df$a) | |
df$b <- round_up(df$b) | |
df$a <- ifelse(df$a < 0.6, 0.6, df$a) | |
df$b <- ifelse(df$b < 0.6, 0.6, df$b) | |
# As <- function(P, a, a0, b, b0, fck = Fck, fyk = CA){ | |
# delta_s <- 0.85 * fck * 1000 / 1.96 | |
# d <- max( | |
# (a - a0)/4, | |
# (b - b0)/4, | |
# 1.44 * sqrt(P/delta_s) | |
# ) | |
# Tx <- P * (a - a0) / (8 * d) | |
# Ty <- P * (b - b0) / (8 * d) | |
# Asx <- 1.61 * Tx / fyk | |
# Asy <- 1.61 * Ty / fyk | |
# | |
# paste(Asx, Asy, d) | |
# c(Asx, Asy, d) | |
# } | |
# As | |
df <- df %>% | |
mutate(Asa = 1.61 * (P * (a - a0) / (8 * (max((a - a0)/4,(b - b0)/4,1.44 * sqrt(P/(0.85 * Fck * 1000 / 1.96)))))) / CA) %>% | |
mutate(Asb = 1.61 * (P * (b - b0) / (8 * (max((a - a0)/4,(b - b0)/4,1.44 * sqrt(P/(0.85 * Fck * 1000 / 1.96)))))) / CA) %>% | |
mutate(d = max((a - a0)/4,(b - b0)/4,1.44 * sqrt(P/(0.85 * Fck * 1000 / 1.96)))) | |
# as_min <- function(a, b, rho=0.15){ | |
# # a = dimensao em metros | |
# # b = dimensao em metros | |
# # rho = ratirado da NBR | |
# rho / 100 * a * b * 100 * 100 | |
# } | |
cobrimento_sapata <- 0.025 | |
df <- df %>% | |
mutate(h = d + 0.05 + cobrimento_sapata) %>% # concreto magro + cobrimento | |
mutate(ancoragem = 15) # concreto magro + cobrimento | |
# ====================================== | |
# Tabela | |
# ====================================== | |
header = c( | |
"Pilar"=1, | |
"$\\P'$"=1, | |
"$\\P$"=1, | |
"Forma"=1, | |
"$\\a_{sapata}$"=1, | |
"$\\b_{sapata}$"=1, | |
"$\\As_{a}$"=1, | |
"$\\As_{b}$"=1, | |
"$\\d$"=1, | |
"$\\h$"=1, | |
"Ancoragem"=1 | |
) | |
cnames <- c( | |
"", | |
"$kN$", | |
"$kN$", | |
"", | |
"$m$", | |
"$m$", | |
"$cm^2$", | |
"$cm^2$", | |
"$m$", | |
"$m$", | |
"$cm$") | |
kable( | |
select(df,c(1,2,8,5, 9:15)), | |
col.names = cnames, | |
escape = F, | |
booktabs = T, | |
caption = "Carga dos pilares, pré-dimensões das sapatas e áreas de aço", | |
# linesep = "\\addlinespace", | |
align = "c", | |
digits=2 | |
) %>% | |
add_header_above(header = header, line = F, align = "c", escape=FALSE) %>% | |
kable_styling(latex_options = c("HOLD_position")) | |
``` | |
# Vigas de equilíbrio | |
O projeto tem 10 vigas de equiíbrio de dois tipos diferentes, de acordo com a tabela \ref{tab:vigas-eq-tab1}. | |
```{r vigas-eq-tab1} | |
vigas_eq <- data.frame( | |
id=c("VE", "VE-1"), | |
h=c(0.60, 0.50), | |
b=c(0.25, 0.40), | |
phi_l=c(12.5, 12.5), | |
phi_t=c(6.5, 6.5), | |
c=c(2, 2) | |
) | |
vigas_eq <- vigas_eq %>% | |
mutate(d = h - c/100 - phi_t/1000 - phi_l/2000) | |
header = c( | |
"id"=1, | |
"$\\h$"=1, | |
"$\\b$"=1, | |
"$\\\\phi_l$"=1, | |
"$\\\\phi_t$"=1, | |
"Cobrimento"=1, | |
"$\\d_{útil}$"=1 | |
) | |
kable( | |
vigas_eq, | |
col.names = c("", "$m$", "$m$", "$mm$", "$mm$", "$cm$", "$m$"), | |
escape = F, | |
booktabs = T, | |
caption = "Tipos de vigas de equilíbrio", | |
linesep = "\\addlinespace", | |
align = "c" | |
) %>% | |
add_header_above(header = header, line = F, align = "c", escape=FALSE) %>% | |
kable_styling(latex_options = c("HOLD_position")) | |
``` | |
## $M_k$ | |
O momento de cada viga foi calculado da seguinte forma: | |
$$\Delta P = P2 - P1$$ | |
$$R = P1 + \Delta P$$ | |
$$q = \frac{R}{b_{sapata}}$$ | |
$$x_0 =\frac{P1}{q}$$ | |
$$M_k = \frac{q \cdot x_0^2}{2} - P1 \cdot (x_0 - \frac{b_{0,pilar}}{2})$$ | |
- $M_k = \textrm{momento em }kN.m$ | |
- $P1 = \textrm{carga no pilar em próximo a divisa em }kN$ | |
- $P2 = \textrm{carga no pilar longe da divisa em }kN$ | |
- $b_{0,pilar} = \textrm{dimensão do pilar em }m$ | |
- $b_{sapata} = \textrm{dimensão da sapata em }m$ | |
## $As_{nec}$ | |
A área de aço necessária para cada viga foi calculada da seguinte forma: | |
$$kmd = \frac{M_k \cdot 1.4}{b \cdot d_{útil}^2 \cdot \frac{fck}{1.4}}$$ | |
$$kx = \frac{0.68 - \sqrt{0.68^2 - 4 \cdot 0.272 \cdot kmd}}{2 \cdot 0.272}$$ | |
$$kz = 1 - 0.4 \cdot kx$$ | |
$$As_{nec} = \frac{M_k \cdot 1.4}{kz \cdot d_{útil} \cdot \frac{fyk}{1.15}}$$ | |
- $As_{nec} = \textrm{área de aço necessária em }cm^2$ | |
- $M_k = \textrm{momento em }kN.m$ | |
- $d_{útil} = \textrm{altura útil em }m$ | |
- $b = \textrm{largura da base em }m$ | |
- $fck = \textrm{resistência à compressão do concreto em }kPa$ | |
- $fyk = \textrm{resistência ao escoamento do aço em}kN/cm^2$ | |
## $As_{min}$ | |
A área de aço mínima para cada viga foi calculada da seguinte forma: | |
$$As_{min} = \frac{\rho}{100} \cdot a \cdot b$$ | |
- $As_{min} = \textrm{área de aço mínima em }cm^2$ | |
- $\rho = \textrm{taca de armadura mínima, no caso do conreto de } 25MPa \textrm{, foi usado } 0.15$ | |
- $a,\:b = \textrm{dimensões da seção em }cm$ | |
## $As_{t}$ | |
$$\alpha_{v2} = 1 - \frac{fck}{250}$$ | |
$$V_{rd2} = 0.27 \cdot \alpha_{v2} \cdot fcd \cdot b \cdot d$$ | |
$$\tau_{sd} = \frac{V_{sd}}{b \cdot d}$$ | |
$$\tau_{c} = 0.09 \cdot fck^{\frac{2}{3}}$$ | |
$$\tau_{sw} = \tau_{sd} - \tau_{c}$$ | |
$$\rho_w = \frac{1.11 \cdot \tau_{sw}}{fyk} \geqslant \rho_{min} = \frac{0.06 \cdot fck^{\frac{2}{3}}}{fyk}$$ | |
$$As_{t} = \frac{\rho_w \cdot b \cdot 100}{n}$$ | |
- $As_{t} = \textrm{área de aço transversal em }cm^2$ | |
## $S_{max,t}$ | |
$$S_{max} = \begin{cases} | |
0.6 \cdot d \leqslant 30cm \textrm{ se } V_d \leqslant 0.67 \cdot V_{dr2} \\ | |
0.3 \cdot d \leqslant 20cm \textrm{ se } V_d > 0.67 \cdot V_{dr2} | |
\end{cases}$$ | |
- $S_{max} = \textrm{espaçamento máximo em }cm$ | |
## Seleção das vigas | |
Após calcular todas as vigas, foi escolhido continuar o projeto com os valores máximos de área de aço para cada tipo de viga, significando que no caso da $VE$, todas as 5 foram calculadas para o pior dos casos, como mostra a tabela \ref{tab:vigas-eq-tab2}. | |
```{r vigas-eq-tab2} | |
vigas <- c( | |
c("VE", "P1 e P4 | P6 e P2", "1, 2", df[1,]$P, df[4,]$P, df[1,]$b0, df[1,]$b, 7.23/2, vigas_eq[1,]$b, vigas_eq[1,]$h, vigas_eq[1,]$d), | |
c("VE", "P3 e P4 | P7 e P6", "3, 7", df[3,]$P, df[4,]$P, df[3,]$b0, df[3,]$b, 6.4/2, vigas_eq[1,]$b, vigas_eq[1,]$h, vigas_eq[1,]$d), | |
c("VE", "P8 e P9 | P12 e P11", "8, 9", df[8,]$P, df[9,]$P, df[8,]$b0, df[8,]$b, 6.72/2, vigas_eq[1,]$b, vigas_eq[1,]$h, vigas_eq[1,]$d), | |
c("VE", "P13 e P14 | P17 e P16", "13, 17", df[13,]$P, df[14,]$P, df[13,]$b0, df[13,]$b, 6.67/2, vigas_eq[1,]$b, vigas_eq[1,]$h, vigas_eq[1,]$d), | |
c("VE-1", "P18 e P19 | P20 e P19", "18, 20", df[18,]$P, df[19,]$P, df[18,]$b0, df[18,]$b, 11.4/2, vigas_eq[2,]$b, vigas_eq[2,]$h, vigas_eq[2,]$d) | |
) | |
m <- matrix(vigas, byrow = TRUE, ncol=11) | |
df_v <- data.frame(m) | |
colnames(df_v) <- c( | |
"tipo", "atende", "ids", "p_div", "p_cen", "b0_pilar", "b_sapata", "l", "b_viga", "h_viga", "d_viga" | |
) | |
df_v$p_div <- as.numeric(as.character(df_v$p_div)) | |
df_v$p_cen <- as.numeric(as.character(df_v$p_cen)) | |
df_v$b0_pilar <- as.numeric(as.character(df_v$b0_pilar)) | |
df_v$b_sapata <- as.numeric(as.character(df_v$b_sapata)) | |
df_v$l <- as.numeric(as.character(df_v$l)) | |
df_v$b_viga <- as.numeric(as.character(df_v$b_viga)) | |
df_v$d_viga <- as.numeric(as.character(df_v$d_viga)) | |
df_v$h_viga <- as.numeric(as.character(df_v$h_viga)) | |
v1 <- function(p_div, p_cen, b0_pilar, b_sapata){ | |
delta_P <- p_cen - p_div | |
R <- p_div + delta_P | |
q <- R / b_sapata | |
q_linha <- p_div / b0_pilar | |
- (q_linha - q) * b0_pilar | |
} | |
mk <- function(p_div, p_cen, b_sapata, b0_pilar){ | |
delta_P <- p_cen - p_div | |
R <- p_div + delta_P | |
q <- R / b_sapata | |
x0 <- p_div / q | |
q * x0**2 / 2 - p_div * (x0 - b0_pilar / 2) | |
} | |
# exemplo slide | |
# mk(1000, 1290, 1.5, 0.2) | |
# v1(1000, 1290, 0.2) | |
as_nec <- function(Mk, b, d, fck = Fck, fyk = CA){ | |
# Mk = momento em kNm | |
# b = comprimento da base em m | |
# d = altura útil em m | |
kmd = Mk * 1.4 / (b * d**2 * (fck * 10**3 / 1.4)) | |
kx = (0.68 - sqrt(0.68**2 - (4 * 0.272 * kmd)))/(2 * 0.272) | |
kz = 1 - 0.4 * kx | |
Mk * 1.4 / (kz * d * fyk / 1.15) | |
} | |
as_min <- function(a, b, rho=0.15){ | |
# a = dimensao em metros | |
# b = dimensao em metros | |
# rho = ratirado da NBR | |
rho / 100 * a * b * 100 * 100 | |
} | |
as_t <- function(Vsd, b, d, fck = Fck, fyk = CA * 10, n = 2){ | |
b <- b * 100 | |
d <- d * 100 | |
alpha_v2 <- 1 - (fck / 250) | |
Vrd2 <- 0.27 * alpha_v2 * fck * 1.4 * b * d | |
Tau_sd <- Vsd / (b * d) | |
Tau_c <- 0.09 * fck^(2/3) | |
Tau_sw <- Tau_sd - Tau_c | |
rho_w <- 1.11 * Tau_sw / fyk | |
rho_min <- 0.06 * fck^(2/3) / fyk | |
rho_w <- max(rho_w, rho_min) | |
As_t <- rho_w * b * 100 / n | |
} | |
# s_max_t <- function(V, b, d, fck = Fck, fyk = CA * 10){ | |
# b <- b * 100 | |
# d <- d * 100 | |
# alpha_v2 <- 1 - (fck / 250) | |
# Vrd2 <- 0.27 * alpha_v2 * fck * 1.4 * b * d | |
# res <- ifelse( | |
# V <= Vrd2 * 0.67, | |
# min(0.6 * d, 30), | |
# min(0.3 * d, 20) | |
# ) | |
# res /100 | |
# } | |
df_v <- df_v %>% | |
mutate(mk = mk(p_div, p_cen, b_sapata, b0_pilar)) %>% | |
mutate(as_nec = as_nec(abs(mk), b_viga, d_viga)) %>% | |
mutate(as_min = as_min(b_viga, h_viga)) %>% | |
mutate(delta_p = p_cen - p_div) %>% | |
mutate(v1 = v1(p_div, p_cen, b0_pilar, b_sapata)) %>% | |
mutate(v2 = abs(p_cen - p_div)) %>% | |
mutate(as_t = as_t(ifelse(pmax(abs(v1), abs(v2)), abs(v2)), b_viga, d_viga)) %>% | |
# mutate(s_max_t = s_max_t(max(abs(v1), abs(v2)), b_viga * 100, d_viga * 100)) | |
# mutate(s_max_t = s_max_t(ifelse(abs(v1) > abs(v2), abs(v1), abs(v2)), b_viga, d_viga )) | |
mutate(s_max_t = c(0.3, 0.3, 0.3, 0.3, 0.2784)) | |
df_v$obs <- c("Descartado", "Descartado", "Descartado", "", "") | |
# As_barra <- 0.5 # 8 mm | |
# As_barra <- 0.79 # 10 mm | |
As_barra_l <- 1.23 # 12.5 mm | |
As_barra_t <- 0.315 # 6.3 mm | |
amarracao <- 0.07 | |
cobrimento_viga <- 0.02 | |
df_v <- df_v %>% mutate(n_barras_sup = pmax(ceiling(as_nec/As_barra_l), ceiling(as_min/As_barra_l),3)) | |
df_v <- df_v %>% mutate(n_barras_inf = n_barras_sup) | |
df_v <- df_v %>% mutate(n_barras_pele = c(0, 0, 0, 0, 2)) | |
df_v <- df_v %>% mutate(n_barras_t = ceiling(l / s_max_t + 1)) | |
df_v <- df_v %>% mutate(n_viga = c(4, 4, 4, 4, 1)) | |
df_v <- df_v %>% mutate(l_aco_l = (n_barras_inf + n_barras_sup + n_barras_pele) * l) | |
df_v <- df_v %>% mutate(l_aco_l_total = l_aco_l * n_viga) | |
df_v <- df_v %>% mutate(l_aco_t_viga = | |
(2 * (b_viga - 2 * cobrimento_viga) + | |
2 * (h_viga - 2 * cobrimento_viga) + | |
2 * amarracao)) | |
df_v <- df_v %>% mutate(l_aco_t = l_aco_t_viga * n_barras_t) | |
df_v <- df_v %>% mutate(l_aco_t_total = l_aco_t * n_viga) | |
# l_aco_vigas <- sum(df3$l_aco) | |
header = c( | |
"Tipo"=1, | |
"Atende"=1, | |
"$\\M_{k}$"=1, | |
"$\\As_{nec}$"=1, | |
"$\\As_{min}$"=1, | |
"$\\\\Delta P$"=1, | |
"$\\V_1$", | |
"$\\V_2$", | |
"$\\As_t$", | |
"$\\S_{max,t}$", | |
"Observação"=1 | |
) | |
kable( | |
select(df_v, c(1,2, 12:20)), | |
col.names = c("", "", "$kN.m$", "$cm^2$", "$cm^2$", "$kN$", "$kN$", "$kN$", "$cm^2$", "$m$", ""), | |
escape = F, | |
booktabs = T, | |
caption = "Vigas de equilíbrio", | |
linesep = "\\addlinespace", | |
align = "c", | |
digits=2 | |
) %>% | |
add_header_above(header = header, line = F, align = "c", escape=FALSE) %>% | |
kable_styling(latex_options = c("HOLD_position", "scale_down")) | |
df_v <- df_v %>% filter(obs == "") | |
``` | |
# Dimensionamento das sapatas com alívio de carga | |
Após calcular as vigas de equilíbrio, foi subtraido o aívio gerado pelo $\Delta P$ nas cargas dos pilares, resultando em dimensões menores nas sapatas, mostrado na tabela \ref{tab:sapatas-alivio}. A nova carga foi calculada da seguinte forma: | |
$$P_{alívio} = P - \Delta P$$ | |
```{r sapatas-alivio, warning=F} | |
df2 <- df | |
VE <- df_v$delta_p[1] | |
VE_1 <- df_v$delta_p[2] | |
df2 <- df2 %>% | |
mutate(P = ifelse( | |
id_viga == "", | |
P, | |
ifelse( | |
id_viga == "VE", | |
P - VE, | |
P - VE_1 | |
) | |
)) | |
df2 <- df2 %>% | |
mutate(a = ifelse( | |
forma == "quadrada", | |
sqrt(P / (Tadm * 1000)), | |
max(abs(quadratic_eq(1, (a0 - b0) * 100, -P / Tadm * 10)))/100)) | |
df2 <- df2 %>% | |
mutate(b = ifelse( | |
forma == "quadrada", | |
sqrt(P / (Tadm * 1000)), | |
min(abs(quadratic_eq(1, (a0 - b0) * 100, -P / Tadm * 10)))/100)) | |
df2$a <- round_up(df2$a) | |
df2$b <- round_up(df2$b) | |
df2$a <- ifelse(df2$a < 0.6, 0.6, df2$a) | |
df2$b <- ifelse(df2$b < 0.6, 0.6, df2$b) | |
df2 <- df2 %>% | |
mutate(Asa = 1.61 * (P * (a - a0) / (8 * (max((a - a0)/4,(b - b0)/4,1.44 * sqrt(P/(0.85 * Fck * 1000 / 1.96)))))) / CA) %>% | |
mutate(Asb = 1.61 * (P * (b - b0) / (8 * (max((a - a0)/4,(b - b0)/4,1.44 * sqrt(P/(0.85 * Fck * 1000 / 1.96)))))) / CA) %>% | |
mutate(d = max((a - a0)/4,(b - b0)/4,1.44 * sqrt(P/(0.85 * Fck * 1000 / 1.96)))) | |
header = c( | |
"Pilar"=1, | |
"$\\P$"=1, | |
"$\\a_{sapata}$"=1, | |
"$\\b_{sapata}$"=1, | |
"$\\As_{a}$"=1, | |
"$\\As_{b}$"=1 | |
) | |
cnames <- c( | |
"", | |
"$kN$", | |
"$m$", | |
"$m$", | |
"$cm^2$", | |
"$cm^2$" | |
) | |
kable( | |
filter(df2, n_vigas > 0) %>% select(c(1,8,9,10,11,12)), | |
col.names = cnames, | |
escape = F, | |
booktabs = T, | |
caption = "Carga dos pilares, dimensões e áreas de aço das sapatas considerando o alívio", | |
linesep = "\\addlinespace", | |
align = "c", | |
digits=2 | |
) %>% | |
add_header_above(header = header, line = F, align = "c", escape=FALSE) %>% | |
kable_styling(latex_options = c("HOLD_position")) | |
``` | |
# Valores finais | |
## Vigas de equilíbrio | |
Os valores finais das vigas de equilíbrio são apresentados na tabela \ref{tab:valores-finais-vigas}. Nessas vigas também foi adotado cobrimento de $`r cobrimento_viga * 100` cm$ e amarração de $`r amarracao * 100` cm$. | |
```{r valores-finais-vigas, warning=F} | |
df_v_final <- select(df_v, c( | |
tipo, | |
n_viga, | |
l, | |
n_barras_sup, | |
n_barras_inf, | |
n_barras_pele, | |
l_aco_l, | |
l_aco_l_total, | |
n_barras_t, | |
l_aco_t, | |
l_aco_t_total | |
)) | |
sumrow <- c(NA, NA, NA, NA, NA, NA, NA, sum(df_v_final$l_aco_l_total), NA, NA, sum(df_v_final$l_aco_t_total)) | |
df_v_final <- rbind(df_v_final, sumrow) | |
rownames(df_v_final) <- c(rep(NULL, nrow(df_v_final))) | |
# As_barra_l <- 1.23 # 12.5 mm | |
# As_barra_t <- 0.315 # 6.3 mm | |
header = c( | |
"tipo"=1, | |
"$\\N_{vigas}$"=1, | |
"$\\L$"=1, | |
"$\\N_{sup}$"=1, | |
"$\\N_{inf}$"=1, | |
"$\\N_{pele}$"=1, | |
"$\\L_{aço}/viga$"=1, | |
"$\\\\phi 12.5$"=1, | |
"$\\N$"=1, | |
"$\\L_{aço}/viga$"=1, | |
"$\\\\phi 6.3$"=1 | |
) | |
header2 = c( | |
" " = 2, | |
"Longitudinal" = 6, | |
"Transversal" = 3 | |
) | |
cnames <- c( | |
"", | |
"", | |
"$m$", | |
"", | |
"", | |
"", | |
"$m$", | |
"$m$", | |
"", | |
"$m$", | |
"$m$" | |
) | |
kable( | |
df_v_final, | |
col.names = cnames, | |
escape = F, | |
booktabs = T, | |
caption = "Valores finais das vigas de equilíbrio", | |
linesep = "\\addlinespace", | |
align = "c", | |
digits=2 | |
) %>% | |
add_header_above(header = header, line = F, align = "c", escape=FALSE) %>% | |
add_header_above(header = header2, line = T, align = "c", escape=FALSE) %>% | |
row_spec(nrow(df_v_final), bold = TRUE) %>% | |
kable_styling(latex_options = c("HOLD_position")) | |
``` | |
## Sapatas | |
As sapatas foram agrupadas por valores iguais de dimensões e áreas de aço e atribuidas um $ID$ único. Mostrado na tabela \ref{tab:valores-finais}. O valor final das alturas foi modificado para $0.60m$, já que não foi considerado o chanfro, e essa é a mesma altura utilizada na $VE$. | |
As quantidas de barras para cada sapata em cada orientação foi definada como sendo: | |
$$ | |
N_{barras} \geq \begin{cases} | |
\frac{As}{As_{\phi}} \\ | |
\frac{l}{S_{max}} + 1 \\ | |
3 \\ | |
\end{cases} | |
$$ | |
- $N_{barras} = \text{Número de barras}$ | |
- $As = \text{Área de aço adotada na seção em } cm^2$ | |
- $As_{\phi} = \text{Área de aço da bitola em } cm^2$ | |
- $l = \text{comprimento da orientação analisada, } a \text{ ou } b \text{ em } m$ | |
- $S_{max} = \text{Espaçamento máximo, arbitrado em } 0.30m$ | |
O comprimento de cada barras para cada sapata em cada orientação foi definada como sendo: | |
$$ | |
L_{barra} = l - 2 \cdot cobrimento + 2 \cdot ancoragem | |
$$ | |
- $L_{barra} = \text{Comprimento de uma barra}$ | |
- $l = \text{comprimento da orientação analisada, } a \text{ ou } b \text{ em } m$ | |
- $cobrimento = `r cobrimento_sapata * 100` cm$ | |
- $ancoragem = 0.15m$ | |
```{r valores-finais, warning=F} | |
df3 <- df2 | |
df3 <- df3 %>% | |
mutate(ID = group_indices(., a, b)) %>% | |
relocate(ID, .before = pilar) | |
junta_pilares <- function(id){ | |
pilares <- df3 %>% filter(ID == id) | |
res <- paste(pilares$pilar ,collapse=", ") | |
} | |
df3$pilares <- sapply(df3$ID, junta_pilares) | |
df3 <- df3 %>% relocate(pilares, .before = pilar) | |
df3 <- df3[!duplicated(df3[ , c("ID")]),] | |
# As_barra <- 0.5 # 8 | |
As_barra <- 0.79 # 10 | |
# As_barra <- 1.23 # 12.5 | |
df3 <- df3 %>% mutate(n_barras_min_a = pmax(ceiling(Asa / As_barra), 3, ceiling(a / 0.3 + 1))) | |
df3 <- df3 %>% mutate(n_barras_min_b = pmax(ceiling(Asb / As_barra), 3, ceiling(b / 0.3 + 1))) | |
df3$ancoragem <- 0.15 | |
df3 <- df3 %>% mutate(l_aco_a = n_barras_min_a * (a - 2 * cobrimento_sapata + 2 * ancoragem)) | |
df3 <- df3 %>% mutate(l_aco_b = n_barras_min_b * (b - 2 * cobrimento_sapata + 2 * ancoragem)) | |
df3 <- df3 %>% mutate(l_aco = l_aco_a + l_aco_b) | |
df3 <- df3 %>% mutate(l_barras_a = l_aco_a / n_barras_min_a) | |
df3 <- df3 %>% mutate(l_barras_b = l_aco_b / n_barras_min_b) | |
df3$h <- 0.6 | |
rownames(df3) <- df3$ID | |
df4 <- select(df3, c( | |
ID, | |
pilares, | |
# P, | |
h, | |
ancoragem, | |
a, | |
n_barras_min_a, | |
l_barras_a, | |
l_aco_a, | |
b, | |
n_barras_min_b, | |
l_barras_b, | |
l_aco_b, | |
l_aco | |
))[order(df3$ID),] | |
l <- as.vector(strsplit(df4$pilares,split=", ",fixed=TRUE)) | |
l <- l[1:length(l)] | |
l2 <- as.numeric(lapply(l, length)) | |
df4 <- df4 %>% mutate(aco_total = l2 * l_aco) | |
sumrow <- c(rep(NA, length(df4) - 1), sum(df4$aco_total)) | |
df4 <- rbind(df4, sumrow) | |
df4$ID <- paste0("S", df4$ID) | |
df4$ID[[length(df4$ID)]] <- NA | |
header = c( | |
"ID"=1, | |
"Pilares"=1, | |
# "$\\P$"=1, | |
"$\\h_{sapata}$"=1, | |
"Ancoragem"=1, | |
"$\\a_{sapata}$"=1, | |
"$\\N_{barras}$"=1, | |
"$\\L_{barra}$"=1, | |
"$\\L_{aço}$"=1, | |
"$\\b_{sapata}$"=1, | |
"$\\N_{barras}$"=1, | |
"$\\L_{barra}$"=1, | |
"$\\L_{aço}$"=1, | |
"$\\\\phi 10_{1\\\\:sapata}$"=1, | |
"$\\\\phi 10_{total}$"=1 | |
) | |
header2 = c( | |
" " = 4, | |
"Lado A" = 4, | |
"Lado B" = 4, | |
" " = 2 | |
) | |
cnames <- c( | |
"", | |
"", | |
# "$kN$", | |
"$m$", | |
"$m$", | |
"$m$", | |
"", | |
"$m$", | |
"$m$", | |
"$m$", | |
"", | |
"$m$", | |
"$m$", | |
"$m$", | |
"$m$" | |
) | |
kable( | |
df4, | |
col.names = cnames, | |
escape = F, | |
booktabs = T, | |
caption = "Valores finais das sapatas", | |
linesep = "\\addlinespace", | |
align = "c", | |
digits=2 | |
) %>% | |
add_header_above(header = header, line = F, align = "c", escape=FALSE) %>% | |
add_header_above(header = header2, line = T, align = "c", escape=FALSE) %>% | |
row_spec(nrow(df4), bold = TRUE) %>% | |
column_spec(2, width="2.5cm") %>% | |
kable_styling(latex_options = c("HOLD_position", "scale_down")) | |
``` | |
# Conclusão | |
Ao longo do trabalho foram calculadas as dimensões e áreas de aço das sapatas e das vigas de equilíbrio. As sapatas foram recalculdas com o alívio de carga. No final foi apresentada a tabela de quantidades de ferros, utilizada para fazer o desenho do projeto. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment