Created
November 23, 2023 15:54
-
-
Save jsb2505/393451bd385ceeccfc59fce6cc5c02df to your computer and use it in GitHub Desktop.
Concrete Bending formulas
This file contains hidden or 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
/**Design concrete moment of resistance in kNm from effective area, in kNm. | |
Ref: EC2 §Fig 3.5 Fig 6.1 (and first principles) | |
*/ | |
Get_M_Rd_kNm = LAMBDA(f_ck, b_w_mm, d_mm, | |
// (2091/12500) is the more exact coefficient than 0.167 | |
(2091/12500) * f_ck * b_w_mm * d_mm^2 / 10^6 | |
); | |
/**The lever arm of the tensile steel or compression concrete about the neutral axis, in mm. | |
Ref: EC2 §Fig 3.5 Fig 6.1 (and first principles) | |
*/ | |
Get_Lever_Arm = LAMBDA(M_Rd, M_Ed, d_mm, | |
LET( | |
/* | |
(2091/12500) is the more exact coefficient than 0.167. | |
K_0 is limited to 0.167 which occurs when M_Ed > M_Rd. | |
*/ | |
K_0, (2091/12500) * MIN(M_Ed / M_Rd, 1), | |
MIN( | |
d_mm * (0.5 + SQRT(0.25 - 3 * K_0 / 3.4)), | |
0.95 * d_mm | |
) | |
) | |
); | |
/**K_0 is used to find the lever arm and is limited to 0.167 max. | |
Ref: EC2 §Fig 3.5, Fig 6.1 (and first principles) | |
*/ | |
Get_K_0 = LAMBDA(M_Ed_kNm, b_w_mm, d_mm, f_ck, | |
MIN(M_Ed_kNm *10^6 / (b_w_mm * d_mm^2 * f_ck), 2091/12500) | |
); | |
/**Minimum area of longitudinal tension reinforcement, in mm^2/m. | |
Ref: EC2 §9.2.1.1(1)(9.1N) | |
*/ | |
Get_A_s_min = LAMBDA(f_ck, d_mm, [f_yk], | |
LET( | |
f_ctm, Get_f_ctm(f_ck), | |
_f_yk, IF(ISOMITTED(f_yk), 500, f_yk), | |
coeff, MAX( | |
0.26 * (f_ctm / _f_yk), | |
0.0013 | |
), | |
coeff * d_mm * 1000 | |
) | |
); | |
/**Maximum area of longitudinal tension or compression reinforcement, in mm^2/m. | |
Ref: EC2 §9.2.1.1(3) | |
*/ | |
Get_A_s_max = LAMBDA(h_mm, | |
0.04 * h_mm * 1000 | |
); | |
/**Area of longitudinal tensile reinforcement required, in mm^2/m. | |
Ref: EC2 §Fig 3.5, Fig 6.1 (and first principles) | |
*/ | |
Get_A_s_req_t = LAMBDA(M_Rd_kNm, M_Ed_kNm, d_mm, b_w_mm, [As_req_compression_per_m], [f_yk], | |
LET( | |
As_req_c, IF(ISOMITTED(As_req_compression_per_m), 0, As_req_compression_per_m), | |
_f_yk, IF(ISOMITTED(f_yk), 500, f_yk), | |
f_yd, Get_f_yd(_f_yk), | |
z, Get_Lever_Arm(M_Rd_kNm, M_Ed_kNm, d_mm), | |
IF(As_req_c > 0, | |
(1000 / b_w_mm) * M_Rd_kNm * 10^6 / (f_yd * z) + As_req_c, | |
(1000 / b_w_mm) * M_Ed_kNm * 10^6 / (f_yd * z) | |
) | |
) | |
); | |
/**Area of longitudinal compressive reinforcement required, in mm^2/m. | |
Ref: EC2 §Fig 3.5, Fig 6.1 (and first principles) | |
*/ | |
Get_A_s_req_c = LAMBDA(M_Rd_kNm, M_Ed_kNm, d_mm, d_2_mm, b_w_mm, [f_yk], | |
LET( | |
_f_yk, IF(ISOMITTED(f_yk), 500, f_yk), | |
f_yd, Get_f_yd(_f_yk), | |
z, d_mm - d_2_mm, | |
MAX( | |
(1000 / b_w_mm) * ((M_Ed_kNm - M_Rd_kNm)* 10^6) / (f_yd * z), | |
0 | |
) | |
) | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment