Python钢筋混凝土结构计算.pdf-混凝土构件计算

计算原理:

代码实现:

python 复制代码
#钢筋混凝土参数
def c_hrb():
global fcuk,HRB,Ec,fc,ft,ftk,Es,fy,fyp,fyk
global a1,epsilon_cu
fcuk=Ec=fc=ft=ftk=0.0
HRB=Es=fy=fyp=fyk=0.0
#矩形应力图系数a1,C50以下为1.0
a1=1.0
#正截面混凝土极限压应变epsilon_cu,C50以下为0.0033
epsilon_cu=0.0033
fcuk=int(input("C?30/35/40"))
if (fcuk==30):
Ec=30000
fc=14.3
ft=1.43
ftk=2.01
elif (fcuk==35):
Ec=31500
fc=16.7
ft=1.57
ftk=2.2
elif (fcuk==40):
Ec=32500
fc=19.1
ft=1.71
ftk=2.39
HRB=int(input("HRB?300/400/500"))
if (HRB==300):
Es=210000
fy=270
fyp=270
fyk=300
elif (HRB==400):
Es=200000
fy=360
fyp=360
fyk=400
elif (HRB==500):
Es=200000
fy=435
fyp=410
fyk=500
print('fcuk=',fcuk)
print('Ec=',Ec)
print('fc=',fc)
print('ft=',ft)
print('ftk=',ftk)
print('HRB=',HRB)
print('Es=',Es)
print('fy=',fy)
print('fyp=',fyp)
print('fyk=',fyk)
#函数结束

#1.受弯构件正截面
#矩形双筋(非抗震,gamma_RE=1.0;抗震,《混规》11.1.6,gamma_RE=0.75)
#【a】已知Asp,M,求As
def given_asp_m_solve_as():
import math
c_hrb()
gamma_RE=float(input("抗震0.75,gamma_RE="))
nsp=float(input("受压筋个数nsp="))
dsp=float(input("受压筋直径dsp="))
Asp=nsp0.253.14*(dsp2)
M=float(input("kNm,M="))
h=float(input("mm,h="))
b=float(input("mm,b="))
ast=float(input("mm,受拉钢筋合力点至受拉边缘的距离ast="))
asp=float(input("mm,受压钢筋合力点至受压边缘的距离asp="))
h0=h-ast
#界限受压区高度ksi_b
ksi_b=round(0.8/(1 + fy / (Esepsilon_cu)),3)
#受压区高度x
x=round(h0-math.sqrt(h02 - 2*(gamma_REM(106) - fypAsp*(h0-asp)) / (a1fcb)),1)
print('h0=',h0)
print('ksi_b=',ksi_b)
print('x=',x)
if (x<=ksi_bh0):
#弯曲破坏时,截面的延性取决于受压区高度的大小,受压区高度越小,截面转动就越大,延性就越好
print(x,"非抗震截面,<=ksi_bh0",ksi_bh0)
print(x,"抗震端截面,一级x<=0.25h0",0.25h0)
print(x,"抗震端截面,二、三级x<=0.35h0",0.35h0)
else:
#超筋梁,脆性破坏
print(x,">ksi_bh0,截面过小!",ksi_bh0)
if (x>=2asp):
print(x,">=2asp,混规6.2.10-4式",2asp)
As=(a1fcbx+fypAsp)/fy
else:
print(x,"<2asp,混规6.2.14条",2asp)
As=gamma_RE*M(10*6) / (fy(h - ast - asp))
As=round(As,1)
print('受拉筋面积As=',As)
rho=round(As/(b*h)*100,3)
print('另需满足最小配筋率;配筋率rho=',rho,'%')
#函数结束

#【b】已知As,Asp,求Mu
def given_as_asp_solve_mu():
import math
c_hrb()
gamma_RE=float(input("抗震0.75,gamma_RE="))
nst=float(input("受拉筋个数nst="))
dst=float(input("受拉筋直径dst="))
As=nst0.253.14*(dst2)
nsp=float(input("受压筋个数nsp="))
dsp=float(input("受压筋直径dsp="))
Asp=nsp0.253.14*(dsp2)
h=float(input("mm,h="))
b=float(input("mm,b="))
ast=float(input("mm,受拉钢筋合力点至受拉边缘的距离ast="))
asp=float(input("mm,受压钢筋合力点至受压边缘的距离asp="))
h0=h-ast
#界限受压区高度ksi_b
ksi_b=round(0.8/(1 + fy / (Esepsilon_cu)),3)
#受压区高度x
x=(fyAs-fypAsp)/(a1fcb)
print('h0=',h0)
print('ksi_b=',ksi_b)
print('x=',x)
if (x<=ksi_bh0):
#弯曲破坏时,截面的延性取决于受压区高度的大小,受压区高度越小,截面转动就越大,延性就越好
print(x,"非抗震截面,<=ksi_bh0",ksi_bh0)
print(x,"抗震端截面,一级x<=0.25h0",0.25h0)
print(x,"抗震端截面,二、三级x<=0.35h0",0.35h0)
else:
x=ksi_bh0
print(x,"取x=ksi_bh0",ksi_bh0)
if (x>=2asp):
print(x,">=2asp,混规6.2.10-4式",2asp)
Mu=(a1fcbx(h0-x/2) + fypAsp(h0-asp)) / gamma_RE/(106)
else:
print(x,"<2asp,混规6.2.14条",2asp)
Mu=fyAs(h - ast - asp) / gamma_RE/(106)
Mu=round(Mu,3)
print('极限抗弯承载力Mu=',Mu)

代码说明:

它包含两个函数:

  1. c_hrb() 函数用于定义钢筋混凝土的参数,包括强度、模量等信息,并根据用户输入的混凝土标号和钢筋牌号设置相应的数值。
  2. given_asp_m_solve_as() 函数和 given_as_asp_solve_mu() 函数用于根据给定的钢筋参数和受力条件计算出所需的钢筋面积和极限抗弯承载力。

这些函数通过用户输入的数据进行计算,并输出结果。其中涉及到一些公式和判断逻辑,用于根据不同情况下的受力状态和设计要求进行计算。

相关推荐
wdfk_prog35 分钟前
[Linux]学习笔记系列 -- [block][mq-deadline]
linux·笔记·学习
Dolphin_Home41 分钟前
Spring 事务避坑笔记:从入门到解决自调用陷阱
数据库·笔记·spring
('-')1 小时前
《从根上理解MySQL是怎样运行的》第二十二章学习笔记
笔记·学习·mysql
言言的底层世界1 小时前
c++中STL容器及算法等
开发语言·c++·经验分享·笔记
光头程序员2 小时前
vue学习笔记
vue.js·笔记·学习
客梦2 小时前
数据结构-树结构
数据结构·笔记
点亮一颗LED(从入门到放弃)3 小时前
C语言学习笔记
笔记·学习
遇到困难睡大觉哈哈3 小时前
Harmony os ——ArkTS 语言笔记(五):泛型、空安全与可选链
前端·笔记·安全·harmonyos·鸿蒙
ljt27249606613 小时前
Compose笔记(五十七)--snapshotFlow
android·笔记·android jetpack
Ziegler Han4 小时前
《升维》阅读笔记:在不确定的世界里,如何做出高确定性的决策
笔记·《升维》