Skip to content

Instantly share code, notes, and snippets.

@PedroBern
Last active June 16, 2020 00:07
Show Gist options
  • Save PedroBern/6efd595a728d06c0dcc563f4206f81fc to your computer and use it in GitHub Desktop.
Save PedroBern/6efd595a728d06c0dcc563f4206f81fc to your computer and use it in GitHub Desktop.
Concrete Assessment 2 - PT
---
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