正截面受弯计算
'从钢筋数组中返回钢筋断面面积之和
'钢筋数组定义: 单数为钢筋直径,双数为钢筋跟数;比如Slist(0)=20,SList(1)=3 表示3根20的钢筋。
Function JG_AS(SList() As Integer) As Double
Dim i As Integer
i = UBound(SList)
Dim j As Integer
Dim A As Double
For j = 0 To i Step 2
A = A + Atn(1) * SList(j) ^ 2 * SList(j + 1)
Next j
JG_AS = A
'MsgBox A_S
End Function
'混凝土相对受压区高度系数表
Function JG_Eb(S As String, C As Integer) As Double
Dim A As Variant
A = Array(614, 614, 614, 614, 614, 614, 614, 614, 604, 594, 584, 575, 565, 555, _
550, 550, 550, 550, 550, 550, 550, 550, 550, 540, 531, 522, 512, 502, 493, _
518, 518, 518, 518, 518, 518, 518, 518, 518, 508, 499, 490, 481, 472, 463)
If S = "HPB235" Then
'一级钢
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Eb = A(C / 5 - 3) / 100
ElseIf S = "HRB335" Then
'二级钢
'混凝土强度等级从C15到C80对应的是15,29;C/3的结果是2到16
JG_Eb = A(C / 5 + 12) / 1000
ElseIf S = "HRB400" Or S = "RRB400" Then
'二级钢
'混凝土强度等级从C15到C80对应的是30,44;C/3的结果是2到16
JG_Eb = A(C + 27) / 1000
End If
End Function
'受压去混凝土矩形应力图应力与混凝土轴线抗压强度比值
Function JG_Aiefa1(C As Integer) As Double
Dim A As Variant
A = Array(100, 100, 100, 100, 100, 100, 100, 100, 99, 98, 97, 96, 95, 94)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Aiefa1 = A(C / 5 - 3) / 100
End Function
'随混凝土强度提高而逐渐降低的系数
Function JG_BeiTa1(C As Integer) As Double
Dim A As Variant
A = Array(80, 80, 80, 80, 80, 80, 80, 80, 79, 78, 77, 76, 75, 74)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_BeiTa1 = A(C / 5 - 3) / 100
End Function
'混凝土极限压应变
Function JG_Ecu(C As Integer) As Double
Dim A As Variant
A = Array(330, 330, 330, 330, 330, 330, 330, 325, 320, 315, 310, 305, 300)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Ecu = A(C / 5 - 3) / 10000
End Function
'混凝土强度抗压设计值
Function JG_Fc(C As Integer) As Double
Dim A As Variant
A = Array(72, 96, 119, 143, 167, 191, 211, 231, 253, 275, 297, 318, 338, 359)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Fc = A(C / 5 - 3) / 10
End Function
'混凝土强度抗拉设计值
Function JG_Ft(C As Integer) As Double
Dim A As Variant
A = Array(90, 110, 127, 143, 157, 171, 180, 189, 196, 204, 209, 214, 218, 222)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Ft = A(C / 5 - 3) / 100
End Function
'截面抵抗系数
Function JG_Aiefa_s(Y0 As Double, M As Double, C As Integer, B As Integer, H0 As Integer)
'Y0*M=Aiefa1*fc*b*h^2*Aiefa_s
'M 截面弯矩(KN*M)
'C 混凝土强度等级
'b 截面宽度(mm)
'h 截面有效高度(mm)
'y0结构重要性系数
Dim Fc As Double
Fc = JG_Fc(C) '混凝土抗压强度设计值
Dim Aiefa1 As Double
Aiefa1 = JG_Aiefa1(C) '受压去混凝土矩形应力图应力与混凝土轴线抗压强度比值
JG_Aiefa_s = Y0 * M * 10 ^ 6 / Aiefa1 / Fc / B / H0 / H0
End Function
'钢筋强度设计值(N/mm^2)
Function JG_F(S As String) As Integer
Select Case S
Case "HPB235"
JG_F = 210
Case "HRB335"
JG_F = 300
Case "HRB400"
JG_F = 360
Case "RRB400"
JG_F = 360
End Select
End Function
'相对受压区高度
Function JG_E(Aiefa_s As Double) As Double
JG_E = 1 - Sqr(1 - 2 * Aiefa_s)
End Function
'受拉钢筋截面面积
Function JG_Ass(DanOrNot As Integer, M As Double, Y0 As Double, _
B As Integer, H As Integer, L1 As Integer, L2 As Double, _
C As Integer, Steel1 As String, Steel2 As String, ByRef As1 As Double, ByRef As2 As Double)
'DanOrNot 是否配受压钢筋
'M弯矩设计值(KN*M)
'Y0结构重要性系数
'B截面宽度
'H截面高度
'L1受力拉钢筋合力点好混凝土边缘的距离
'L2受压拉钢筋合力点好混凝土边缘的距离
'C混凝土强度等级
'Steel1受拉压钢筋
'Steel2受压钢筋
'As1纵向受拉钢筋面积
'As2纵向受压钢筋面积
'混凝土强度设计值
Dim Fc As Double
Fc = JG_Fc(C)
'钢筋强度设计值
Dim F1 As Integer
Dim F2 As Integer
F1 = JG_F(Steel1)
F2 = JG_F(Steel2)
'最小配筋率
Dim P1 As Double
Dim P2 As Double
P1 = 0.45 * Fc / F1
'混凝土规范规定最小配筋率不小于0.2;混凝土强度>=C60,不小于0.3;采用HRB400或者RRB400时候不小于0.1
If C >= 60 Then
If P1 < 0.3 Then P1 = 0.3
ElseIf C < 60 And F1 = 360 Then
If P1 < 0.1 Then P1 = 0.1
Else
If P1 < 0.2 Then P1 = 0.2
End If
P2 = 0.45 * Fc / F1
'混凝土规范规定最小配筋率不小于0.2;混凝土强度>=C60,不小于0.3;采用HRB400或者RRB400时候不小于0.1
If C >= 60 Then
If P2 < 0.3 Then P2 = 0.3
ElseIf C < 60 And F1 = 360 Then
If P2 < 0.1 Then P2 = 0.1
Else
If P2 < 0.2 Then P2 = 0.2
End If
Dim Aiefa1 As Double '受压去混凝土矩形应力图应力与混凝土轴线抗压强度比值
Aiefa1 = JG_Aiefa1(C)
Dim H0 As Integer '截面的有效高度
Dim Aiefa_s As Double '抗弯截面系数
Dim E As Double '相对受压区高度
Dim Mmax As Double '混凝土能承受极限弯矩
Dim P3 As Double '实际配筋率
H0 = H - L1
Aiefa_s = JG_Aiefa_s(Y0, M, C, B, H0) '抗弯截面系数
If DanOrNot = 1 Then '只配置受拉钢筋
N:
E = JG_E(Aiefa_s) '相对受压区高度
If E > JG_Eb(Steel1, C) Then
MsgBox "相对受压区高度过大,请加大截面尺寸或提供混凝土等级。"
Exit Function
Else
'计算纵向受拉钢筋面积
As1 = Aiefa1 * Fc * B * H0 * E / F1
'计算实际配筋率
P3 = (As1 / H / B) * 100
If P3 < P1 Then
MsgBox "实际配筋率" & P3 & "小于最小配筋率" & P1 & "请重新配筋。"
As1 = 0
Exit Function
End If
End If
ElseIf DanOrNot = 2 Then
'为充分发挥混凝土材料的受压能力,取ξ=ξb=0.550。
E = 0.55
'计算混凝土能承受的极限弯矩
Mmax = Aiefa1 * Fc * B * H0 * H0 * E * (1 - E / 2) / 10 ^ 6
If Mmax > M Then
MsgBox "不需要配置双筋,继续进行单筋计算。"
As2 = 0
GoTo N
Else ' 配置双筋(构造上不能提高截面高度,才采用双筋)
As2 = (M - Mmax) * 10 ^ 6 / (F2 * (H0 - L2))
As1 = As2 * F2 / F1 + Aiefa1 * E * B * H0 * Fc / F1
'一般双筋较大,不需要验算最小配筋率
End If
Else
End If
End Function
'钢筋数组定义: 单数为钢筋直径,双数为钢筋跟数;比如Slist(0)=20,SList(1)=3 表示3根20的钢筋。
Function JG_AS(SList() As Integer) As Double
Dim i As Integer
i = UBound(SList)
Dim j As Integer
Dim A As Double
For j = 0 To i Step 2
A = A + Atn(1) * SList(j) ^ 2 * SList(j + 1)
Next j
JG_AS = A
'MsgBox A_S
End Function
'混凝土相对受压区高度系数表
Function JG_Eb(S As String, C As Integer) As Double
Dim A As Variant
A = Array(614, 614, 614, 614, 614, 614, 614, 614, 604, 594, 584, 575, 565, 555, _
550, 550, 550, 550, 550, 550, 550, 550, 550, 540, 531, 522, 512, 502, 493, _
518, 518, 518, 518, 518, 518, 518, 518, 518, 508, 499, 490, 481, 472, 463)
If S = "HPB235" Then
'一级钢
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Eb = A(C / 5 - 3) / 100
ElseIf S = "HRB335" Then
'二级钢
'混凝土强度等级从C15到C80对应的是15,29;C/3的结果是2到16
JG_Eb = A(C / 5 + 12) / 1000
ElseIf S = "HRB400" Or S = "RRB400" Then
'二级钢
'混凝土强度等级从C15到C80对应的是30,44;C/3的结果是2到16
JG_Eb = A(C + 27) / 1000
End If
End Function
'受压去混凝土矩形应力图应力与混凝土轴线抗压强度比值
Function JG_Aiefa1(C As Integer) As Double
Dim A As Variant
A = Array(100, 100, 100, 100, 100, 100, 100, 100, 99, 98, 97, 96, 95, 94)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Aiefa1 = A(C / 5 - 3) / 100
End Function
'随混凝土强度提高而逐渐降低的系数
Function JG_BeiTa1(C As Integer) As Double
Dim A As Variant
A = Array(80, 80, 80, 80, 80, 80, 80, 80, 79, 78, 77, 76, 75, 74)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_BeiTa1 = A(C / 5 - 3) / 100
End Function
'混凝土极限压应变
Function JG_Ecu(C As Integer) As Double
Dim A As Variant
A = Array(330, 330, 330, 330, 330, 330, 330, 325, 320, 315, 310, 305, 300)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Ecu = A(C / 5 - 3) / 10000
End Function
'混凝土强度抗压设计值
Function JG_Fc(C As Integer) As Double
Dim A As Variant
A = Array(72, 96, 119, 143, 167, 191, 211, 231, 253, 275, 297, 318, 338, 359)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Fc = A(C / 5 - 3) / 10
End Function
'混凝土强度抗拉设计值
Function JG_Ft(C As Integer) As Double
Dim A As Variant
A = Array(90, 110, 127, 143, 157, 171, 180, 189, 196, 204, 209, 214, 218, 222)
'混凝土强度等级从C15到C80对应的是0,13;C/2的结果是3到16
JG_Ft = A(C / 5 - 3) / 100
End Function
'截面抵抗系数
Function JG_Aiefa_s(Y0 As Double, M As Double, C As Integer, B As Integer, H0 As Integer)
'Y0*M=Aiefa1*fc*b*h^2*Aiefa_s
'M 截面弯矩(KN*M)
'C 混凝土强度等级
'b 截面宽度(mm)
'h 截面有效高度(mm)
'y0结构重要性系数
Dim Fc As Double
Fc = JG_Fc(C) '混凝土抗压强度设计值
Dim Aiefa1 As Double
Aiefa1 = JG_Aiefa1(C) '受压去混凝土矩形应力图应力与混凝土轴线抗压强度比值
JG_Aiefa_s = Y0 * M * 10 ^ 6 / Aiefa1 / Fc / B / H0 / H0
End Function
'钢筋强度设计值(N/mm^2)
Function JG_F(S As String) As Integer
Select Case S
Case "HPB235"
JG_F = 210
Case "HRB335"
JG_F = 300
Case "HRB400"
JG_F = 360
Case "RRB400"
JG_F = 360
End Select
End Function
'相对受压区高度
Function JG_E(Aiefa_s As Double) As Double
JG_E = 1 - Sqr(1 - 2 * Aiefa_s)
End Function
'受拉钢筋截面面积
Function JG_Ass(DanOrNot As Integer, M As Double, Y0 As Double, _
B As Integer, H As Integer, L1 As Integer, L2 As Double, _
C As Integer, Steel1 As String, Steel2 As String, ByRef As1 As Double, ByRef As2 As Double)
'DanOrNot 是否配受压钢筋
'M弯矩设计值(KN*M)
'Y0结构重要性系数
'B截面宽度
'H截面高度
'L1受力拉钢筋合力点好混凝土边缘的距离
'L2受压拉钢筋合力点好混凝土边缘的距离
'C混凝土强度等级
'Steel1受拉压钢筋
'Steel2受压钢筋
'As1纵向受拉钢筋面积
'As2纵向受压钢筋面积
'混凝土强度设计值
Dim Fc As Double
Fc = JG_Fc(C)
'钢筋强度设计值
Dim F1 As Integer
Dim F2 As Integer
F1 = JG_F(Steel1)
F2 = JG_F(Steel2)
'最小配筋率
Dim P1 As Double
Dim P2 As Double
P1 = 0.45 * Fc / F1
'混凝土规范规定最小配筋率不小于0.2;混凝土强度>=C60,不小于0.3;采用HRB400或者RRB400时候不小于0.1
If C >= 60 Then
If P1 < 0.3 Then P1 = 0.3
ElseIf C < 60 And F1 = 360 Then
If P1 < 0.1 Then P1 = 0.1
Else
If P1 < 0.2 Then P1 = 0.2
End If
P2 = 0.45 * Fc / F1
'混凝土规范规定最小配筋率不小于0.2;混凝土强度>=C60,不小于0.3;采用HRB400或者RRB400时候不小于0.1
If C >= 60 Then
If P2 < 0.3 Then P2 = 0.3
ElseIf C < 60 And F1 = 360 Then
If P2 < 0.1 Then P2 = 0.1
Else
If P2 < 0.2 Then P2 = 0.2
End If
Dim Aiefa1 As Double '受压去混凝土矩形应力图应力与混凝土轴线抗压强度比值
Aiefa1 = JG_Aiefa1(C)
Dim H0 As Integer '截面的有效高度
Dim Aiefa_s As Double '抗弯截面系数
Dim E As Double '相对受压区高度
Dim Mmax As Double '混凝土能承受极限弯矩
Dim P3 As Double '实际配筋率
H0 = H - L1
Aiefa_s = JG_Aiefa_s(Y0, M, C, B, H0) '抗弯截面系数
If DanOrNot = 1 Then '只配置受拉钢筋
N:
E = JG_E(Aiefa_s) '相对受压区高度
If E > JG_Eb(Steel1, C) Then
MsgBox "相对受压区高度过大,请加大截面尺寸或提供混凝土等级。"
Exit Function
Else
'计算纵向受拉钢筋面积
As1 = Aiefa1 * Fc * B * H0 * E / F1
'计算实际配筋率
P3 = (As1 / H / B) * 100
If P3 < P1 Then
MsgBox "实际配筋率" & P3 & "小于最小配筋率" & P1 & "请重新配筋。"
As1 = 0
Exit Function
End If
End If
ElseIf DanOrNot = 2 Then
'为充分发挥混凝土材料的受压能力,取ξ=ξb=0.550。
E = 0.55
'计算混凝土能承受的极限弯矩
Mmax = Aiefa1 * Fc * B * H0 * H0 * E * (1 - E / 2) / 10 ^ 6
If Mmax > M Then
MsgBox "不需要配置双筋,继续进行单筋计算。"
As2 = 0
GoTo N
Else ' 配置双筋(构造上不能提高截面高度,才采用双筋)
As2 = (M - Mmax) * 10 ^ 6 / (F2 * (H0 - L2))
As1 = As2 * F2 / F1 + Aiefa1 * E * B * H0 * Fc / F1
'一般双筋较大,不需要验算最小配筋率
End If
Else
End If
End Function
[本日志由 田草 于 2007-08-19 02:35 PM 编辑]
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |