在上篇文章中笔者介绍了未开裂梁截面刚度的确定方法,链接如下:
通过确定梁未开裂截面性质,可以确定梁的开裂曲率,开裂弯矩等等重要信息,为开裂梁截面的分析做准备。
实际上,无论截面开裂与否,曲率,抗弯刚度以及弯矩之间的关系都是一定的,即:
(1)
EI 为截面抗弯刚度, 为曲率,M 为弯矩。
利用这个关系,我们可以通过迭代的方法求得开裂截面的弯矩-刚度曲线。
1. 准备工作
截面分析的基本假定:
- 平截面受弯变形后,仍为平截面
- 截面性质用于使用极限状态分析(SLS),即混凝土与钢筋材料分项系数均取
- 混凝土受拉极限应力为 1 MPa, 开裂后受拉刚化效应下,受拉钢筋位置处混凝土拉应力最多取 0.55 MPa
确定材料本构模型:
- 混凝土采用双线性模型
- 钢筋采用双线性模型
![]() | ![]() | ![]() |
Fig.1 混凝土受压模型 | Fig.2 混凝土受拉模型 | Fig.3 钢筋弹塑性模型 |
整个迭代过程如下:
- 读取材料和截面信息
- 读取假定曲率
- 假定中和轴高度
- 根据中和轴高度以及曲率,计算受拉区混凝土和钢筋的拉力
,受压区混凝土和钢筋的压力
,截面弯矩
,以及拉力和压力的差值
。由截面平衡条件,中和轴的位置应使得
成立,即
- 令
,替代第三步中的
,并重复第三步至第五步,直到
超过截面高度
- 对每一个特定的
,选择与
对应的
为中和轴高度,并记录相应的截面弯矩
- 按(1)式计算截面抗弯刚度:
- 令
,替代第二步中的
,并重复第二步至第八步
- 最终获得截面曲率,抗弯刚度以及弯矩之间的对应表格,通过表格可绘制截面的弯矩-刚度曲线。
2. 使用 AdSec 建立模型
以上计算过程便是根据(1)式提出的迭代方法,通过这个流程,工程师可以自行编制脚本程序解决开裂截面刚度问题。
为了检验以上迭代流程的正确性,笔者通过 AdSec 建立了截面模型,作为 benchmark 校核脚本程序。模型有两方面的目的:
- 验证以上迭代流程,以及相应脚本程序的正确性
- 同时,也能透析 AdSec 中的开裂截面的抗弯刚度的计算方法
由于模型主要以验证为目的,因此选取了截面形式较为简单的混凝土矩形单筋截面作为研究对象。模型基本信息如下:
材料信息:
- 混凝土 C20,立方体抗压强度 20 MPa
- 钢筋 500B,屈服强度 500 MPa
截面信息:
- 矩形 300 mm (width) X 800 mm (depth)
- 保护层 30 mm
- 单层钢筋,4 支直径 25 mm
![]() | ![]() |
Fig.4 C20 混凝土性质 | Fig.5 500B 钢筋性质 |
在 AdSec 中,截面模型以及分析得到的弯矩-刚度曲线如下图所示:
![]() | ![]() |
Fig.6 截面布置 | Fig.7 截面弯矩-刚度曲线 |
3. 使用 EXCEL 以及 VBA 编制迭代流程脚本文件
有了以上的 benchmark 模型,我们可以开始脚本程序的编制。考虑到大部分工程师对 Excel 和 VBA 都较为熟悉,笔者采用了 Excel + VBA 的组合。
以下的代码片段是根据上文迭代流程编制的,并非完整的 VBA 代码。由于 Excel 也参与到流程的计算以及数据记录中,完整的代码将取决于Excel spreadsheet 的编制。
代码的说明在代码段中以注释的形式给出:
'it is assumed the material information is obtained
'this piece of code is not the completed one, which is depended on the associated spreadsheet
'STEP 2
'calculate for each k
For Each cell In Range("Curvature")
'read the curvature
k = cell.Value
'STEP 3
'START CALCULATION
'h1 is the tension side height, h2 is the compression side height
'obtain effective section height
he = H - cv - ds / 2 'he is the effective height, from tension bar to section top
'set the distance from the *ASSUMED* initial neutral axis to the bottom steel bar
h1 = he / 10 'h1 is the tension side height
'loop until the h1 exceeds he
Do While h1 < he
h2 = he - h1 'h2 is the compression side height
e1 = k * h1 / 1000 'strain at tension bar location
e2 = k * h2 / 1000 'strain at outmost compression side
e3 = k * (H - h2) / 1000 'strain at outmost tension side, used to judge cracked or not
'STEP 4
'CALCULATE THE TENSILE FORCE T AND MOMENT
'calculate the tensile force T1 from the steel bars
'Er is the Young's modulus of steel bars
'Ar is the area of the steel bars
'fy is the yield strength of steel bars
'the IF process considers the bi-linear constitution of steel bars
If Er * e1 * 1000 < fy Then
T1 = Er * e1 * Ar
Else
T1 = fy * Ar / 1000
End If
'calculate the tensile force T21 and T22 which are from concrete
'the critical tensile stress for crack condition determination is 1MPa as code specified
'if the outmost stress exceeds the limit, the tensile strength for concrete will be limited to 0.55MPa as code specified
'the IF process considers the concrete tensile constitution
'T21 is the tensile force from concrete, T22 is the double counted tensile force which should be deducted
If e3 < 1 / (E * 1000) Then
T21 = 0.5 * E * e3 * (H - h2) * B
T22 = E * e1 * Ar
Else
T21 = 0.5 * 0.55 * (H - h2) * B / 1000
T22 = 0
End If
T = T1 + T21 - T22
'calculate the moment produced by tensile force
M11 = T1 * h1 / 1000
M12 = T21 * (2 / 3) * (H - h2) / 1000 - T22 * h1 / 1000
M1 = M11 + M12
'CALCULATE THE COMPRESSIVE FORCE C
'if the strain is within the peak strain, triangular distribution is used
'if the strain exceeds the peak strain, bi-linear distribution is used
'C1 is the rectangular part in the bi-linear stress distribution
'C2 is the triangular part in the bi-linear stress distribution
If e2 > eRP Then
h21 = eRP / k * 1000
h22 = h2 - h21
C1 = fc * B * h22 / 1000
C2 = 0.5 * fc * B * h21 / 1000
C = C1 + C2
Else
C = 0.5 * e2 * E * B * h2
End If
'CALCULATE THE DIFFERENCE DELTA
'the neutral axis should locate somewhere T = C holds
delta = T - C
'CALCULATE THE MOMENT FROM COMPRESSIVE CONCRETE
'calculate the moment produced by compression force
If e2 < eRP Then
M2 = C * 2 / 3 * h2 / 1000
Else
M21 = C2 * 2 / 3 * h21 / 1000
M22 = C1 * (h21 + h22 / 2) / 1000
M2 = M21 + M22
End If
'CALCULTE TOTAL MOMENT
M = M1 + M2
'STEP 5
'try next *ASSUMED* neutral axis
h1 = h1 + 5
Loop
'STEP 6 & 7 are carried out by EXCEL
'STEP 8
Next cell
通过以上代码,Excel 可以绘制出相应的弯矩-刚度曲线,笔者将由 Excel 绘制的曲线和由 AdSec 绘制的曲线摆在同一张图上,用以有清晰的比对。如下图所示:
![]() |
Fig.8 弯矩-刚度曲线对照 |
上图中,蓝色曲线由 Excel 绘制,橙色曲线由 AdSec 绘制。曲线共分为三个部分,分别为:
- 平直段,此时截面未开裂,所以刚度没有降低
- 直线下降段,此时截面开裂,截面刚度快速降低
- 曲线下降段,截面刚度随弯矩增长缓慢降低
可见,两条曲线在初始以及曲线下降段有较好的契合。而在直线下降段有较大出入,这是因为 AdSec 使用的取样点比较稀疏,直线下降段的中间是没有取样点的,因此才反映为直线。而笔者编制的脚本程序取样点相对密集,所以曲线下降段会向上延申,而斜直线变为了垂直线。
4. 总结
由以上对比,我们清楚了 AdSec 在计算使用极限状态下梁的未开裂截面刚度,开裂截面刚度,以及开裂弯矩的原理。即通过非线性迭代,利用关系式(1),计算可以得到与 AdSec 几乎一致的结果。对于未能够使用 AdSec 的工程师,也可根据本文陈述的方法分析开裂截面刚度。