Anda di halaman 1dari 86

Interactive

Design

Services

www.interactiveds.com.au

dougjenkins@interactiveds.com.au
http://newtonexcelbach.wordpress.com/

Elastic Analysis of Reinforced and Prestressed Sections


Contents:
Name

Purpose

Elastic

Find strain, stress, force and moment in prestressed and


reinforced concrete beams with linear elastic material
properties. Any section made up of rectangular or
trapezoidal layers

Quartic

Find the real roots of quartic equations

Cubic

Find the real roots of cubic equations

Quadratic Find the real roots of quadratic equations


PlotXY
Plot cross section diagram

ELASTIC() is a User Defined Function (UDF) that carries out elastic analysis of reinforced or prestressed concrete sections,
assuming zero tensile strength for the concrete, and linear elastic properties for the reinforcement and concrete in compression
Details of the analysis are provided in the file: DepthNA.pdf, which may be downloaded from:
http://newtonexcelbach.wordpress.com/

Parameters:
Conc
A 6 column range with concrete cross section details
Reo
A 6 column range with reinforcement and prestress details
Momin
The applied bending moment
Axin
The applied axial load
Eccentric The eccentricity of the applied load
Out_Index An index number controlling the output data, see example output.
Units
0 for loads and eccentricity in kN and metres, dimensions in mm, stresses in MPa (default), any other number for an
consistent units.
Results are returned as single column arrays, depending on the value of Out_Index.
To access the arrays either:
Enter the function as an array function (press ctrl-shift-enter) after selecting the number of rows of output required.
Or use the INDEX() function to return the required value. For instance to return the stress in the bottom layer of
reinforcement enter:
=INDEX(ELASTIC(Conc, Reo, Momin, Axin, Eccentric, 1),3)
Typical input and output is shown in the following sheets

Notes:

1. The beam section may be made up of any arrangement of rectangular or trapezoidal layers
2. Concrete and reinforcement are defined in layers, starting from the top or compressive face.
3. Sign conventions:
Bending causing compression on the top face is positive.
Compressive axial force is positive.
Eccentricity is the distance of the axial load from the top face, positive upwards.
4. Datum for eccentricity of axial loads

If the eccentricity is omitted or blank the axial load is assumed to be applied at the centroid of the concrete section.
This allows results of frame analysis programs to be entered without adjustment, assuming that the frame elements
have been modelled on the concrete section centroid.

Where specified, the eccentricity is measured from the top face of the concrete. An axial load with a specified
eccentricity of zero will therefore be applied at the top face, and will give different results to the same axial load with
unspecified eccentricity, which will be applied at the concrete centroid.
5. Prestress forces
Prestress forces may either be specified by entering a prestress force per strand for each layer of strand, or by
entering the prestress force and eccentricity as an external force.

Where the area of prestressing strand is included in the reinforcement list, the prestress force should not have elast
losses deducted, since the strain in the strand is accounted for in the analysis.
6. Plotting the cross section
The "Redraw Section" button on the input sheet will draw the concrete section to scale, including passive
reinforcement (in black) and prestressed reinforcement (in red). The concrete compression zone is shaded blue.

Where voids are specified, B1 and B2 are the external concrete dimensions (top and bottom of each layer), and B3
and B4 are the top and bottom width of the void.

The void dimensions are required for plotting purposes only. The same numerical results may be obtained by enter
the width of concrete for each layer, with void dimensions entered as zero or blank.

Tel +61 (0)2 9440 3414


Fax +61 (0)2 9940 6330
ABN 49 101 920 638

stressed Sections
Ver:

Usage
Elastic(conc, reo, momin, axin, Optional [eccentric,
Out_Index, Units])

Quartic(A, B, C, D, E, Dt, Optional output index)


cubic(A, B, C)
Quadratic(A, B, C, Optional output index)
Creates diagram inside the range "PlotRange" on the
current sheet, using the data in "LayerRange", "ReoRange",
"Depth_NA", and "TFace".

out elastic analysis of reinforced or prestressed concrete sections,


r elastic properties for the reinforcement and concrete in compression.

df, which may be downloaded from:

tress details

ee example output.
dimensions in mm, stresses in MPa (default), any other number for any

on the value of Out_Index.

ctrl-shift-enter) after selecting the number of rows of output required.


red value. For instance to return the stress in the bottom layer of

ccentric, 1),3)

1.04

11-Oct-09

angement of rectangular or trapezoidal layers


ers, starting from the top or compressive face.

m the top face, positive upwards.

oad is assumed to be applied at the centroid of the concrete section.


to be entered without adjustment, assuming that the frame elements
entroid.

from the top face of the concrete. An axial load with a specified
the top face, and will give different results to the same axial load with
at the concrete centroid.

tering a prestress force per strand for each layer of strand, or by


s an external force.

ded in the reinforcement list, the prestress force should not have elastic
is accounted for in the analysis.

et will draw the concrete section to scale, including passive


orcement (in red). The concrete compression zone is shaded blue.

external concrete dimensions (top and bottom of each layer), and B3


d.

urposes only. The same numerical results may be obtained by entering


dimensions entered as zero or blank.

Elastic Analysis of Reinforced and Prestressed Sections


Applied loads
Mom
Axial
Eccentricity
kN
kN
m
8.50E+03

Depth of Neutral Axis


Tension face

#NAME? mm
#NAME?
#NAME?

Section Details (enter layers from top face, or compressive face for columns)
Concrete
Void
Layer Depth
25
50
75
1305
45
300

B1(top)
B2(bottom)
2380.0
2380.0
2380.0
2380.0
1212.6
1012.6
1012.6
765.4
765.4
756.8
756.8
700.0

B3(top)
B4(bottom)
866.3
866.3
816.3
806.8
806.8
792.6
792.6
545.4
545.4
0.0
0.0
0.0

Ec
32000

Reinforcement and prestress


Depth
50.00
1635.00
1685.00
1735.00

Dia
16
15.2
15.2
15.2

No
10
12
12
12

Prestress
Es
force/Strand
200000
180
180
180

Side Cover
30
100
95
90

Elastic Output
Elastic(conc, reo, momin, axin, Optional [eccentric, Out_Index, Units])
Ranges
Concrete
#NAME?
Reinforcement
'Elastic1 Input'.I21:N24

1
2
3
4
5
6
7
8
9
10
11
12

Compression face
Compression steel
Tension Steel
Tension face
Location of tension face

1
2
Stress, MPa
Strain, m^-1
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

Force, kN
Concrete
Passive Steel
Prestress
Applied axial

3
Force, kN
#NAME?
#NAME?
#NAME?
#NAME?

output column index, Out_index


4
Moment, kNm
Concrete
#NAME?
Passive Steel
#NAME?
Prestress
#NAME?
Moment due to axial
#NAME?
Applied moment
#NAME?
Prestress eccentricity
#NAME?

ndex, Out_index
5
Depth to NA etc
Y
Acomp
QNA
Ina
Eccentricity reaction force from comp. fa
Eccentricity applied force from comp. fac
Depth centroid concrete section
Depth centroid reinforcement
Depth centroid full composite section
Depth centroid cracked composite sectio
I reinforcement

Steel by layer
#NAME? Compression laye
#NAME? to
#NAME? Tension layer
#NAME?
#NAME? Total passive forc
#NAME? Total prestress for
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

6
Stress
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

7
Force
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

RLayers
1: Es
2: Layer Area
3: Cumulative area
4: Transformed layer area in ten
5: Cumulative area in tension
6: Cumulative first MofA about to
' Find layer and adjusted total transformed 7: Transformed layer area in co
' for NA down to current layer
8: Cumulative transformed area
9: Cumulative transformed first
10: Layer Depth
11: Cumulative Centroid depth
12: Rsum1 tension
13: Rsum2 tension
14: Rsum1 compression to NA
15: Rsum2 compression to NA
16: I about steel centroid

1
2
3
4
5
6
7
8
9
10
11
12
13
14-18: Composite transformed properties
15
16
17
18
19

1
2
3
4
5
6
7
8
9
10

Layers
Layer thickness
Transformed B1
Transformed B2
Transformed K
Transformed layer area
Cumulative area
Layer centroid height from bottom
Composite conc. 1st moment of
Height of composite concrete ce
Depth of bottom of layer
Layer second moment of area ab
Layer second moment of area ab
Composite concrete second mome
Area
First moment of area about top
Depth of centroid
First moment of area about botto
Second moment of area about bot
I reinforcement in tension
XA
NA within section
Y
Qna
Ina
Qstna
Qconcna
Istna
Icconc
Depth centroid conc compression
Acomp
Dref

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

Full compression
Y
Qna
Ina
Qstna
Qconcna
Istna
Icconc
Dref
Acomp
Dref

Full tension
Y
Qna
Ina
Qstna
Istna
Acomp
Dref

11
12
13
14
15
16
17
18

DRefComp
a
b
c
d
e
Rsum1
Rsum2

DRefComp

DRefComp

Public Function FindNA(reo, layers, rlayers, llayer, axin, momin, out2) As Variant
Dim SmallAx As Double, E_1 As Double, E_2 As Double
Dim Is1 As Double, Is0 As Double, Axs1 As Double, Axs0 As Double, numreo As Long
Dim Ar As Double, Dst As Double, Dbase As Double, Irt As Double, Art As Double, Drt As Double
Dim i As Long, j As Long, Firsti As Long, k As Long, XCoeff() As Double, out() As Double
Dim db As Double, Dt As Double, DL As Double, Bb As Double, B2b As Double, Kb As Double, Dct As Double
Dim At As Double, Ict As Double, Qa As Double, Qb As Double, Qc As Double, Qd As Double, Qe As Double
Dim X As Double, X0 As Double, Im(1 To 5) As Double, Fm(1 To 5) As Double
Dim Momx As Double, Axx As Double, Sigt As Double, Layer0 As Long, MAr As Double
Dim ap As Double, Acc As Double, Dcc As Double, Dcct As Double, Itb As Double
Dim A As Double, Dc As Double, Ip As Double, Dcg As Double
Dim Itbp As Double, Il As Double, dcp As Double, Ixs As Double, dsc As Double

numreo = UBound(reo) - LBound(reo) + 1


ReDim XCoeff(1 To 6, 1 To 5)
ReDim out(1 To llayer, 1 To 3)
Dbase = layers(llayer, 1)
'Axial load = 0 or very small
E_1 = 0
SmallAx = axin
If axin <> 0 Then E_1 = momin / axin
If (momin <> 0 And E_1 = 0) Or Abs(E_1) / layers(llayer, 1) > MaxERatio Then
SmallAx = 0
If E_1 <> 0 Then
SmallAx = axin
axin = momin / (MaxERatio * layers(llayer, 1))
If SmallAx < 0 Then axin = axin * -1
End If
For i = 1 To llayer
' Coefficients for x
' Reinforcement
Is1 = 0
Is0 = 0
Axs1 = 0
Axs0 = 0
For j = 1 To numreo
If reo(j, 1) >= layers(i, 1) Then Ar = rlayers(j, 1) Else Ar = rlayers(j, 2)
Axs1 = Ar + Axs1
Axs0 = -Ar * reo(j, 1) + Axs0
Next j
XCoeff(6, 3) = Axs1
XCoeff(6, 4) = Axs0
db = layers(i, 1)
Dt = layers(i, 12)
DL = layers(i, 2)
Bb = layers(i, 3)
B2b = layers(i, 4)

Kb = (B2b - Bb) / DL
Dct = layers(i - 1, 9)
At = layers(i - 1, 8)
Ict = layers(i - 1, 11)
XCoeff(1, 1) = Kb / 12
XCoeff(1, 2) = Bb / 3 - Kb / 3 * Dt
XCoeff(1, 3) = (-Dt * Bb + Kb / 2 * Dt ^ 2)
XCoeff(1, 4) = (Dt ^ 2 * Bb - Kb / 3 * Dt ^ 3)
XCoeff(1, 5) = -Dt ^ 3 / 3 * Bb + Kb / 12 * Dt ^ 4
'
'
'
XCoeff(2, 4) = -2 * Dct * At
XCoeff(2, 5) = (Ict + At * Dct ^ 2)
XCoeff(4, 1) = Kb / 6
XCoeff(4, 2) = Bb / 2 - Kb / 2 * Dt
XCoeff(4, 3) = Kb / 2 * Dt ^ 2 - Bb * Dt
XCoeff(4, 4) = (Bb / 2 * Dt ^ 2 - Kb / 6 * Dt ^ 3)
XCoeff(5, 3) = At
XCoeff(5, 4) = -At * Dct
Qa = XCoeff(4, 1)
Qb = XCoeff(4, 2)
Qc = 0
For j = 4 To 6
Qc = XCoeff(j, 3) + Qc
Next j
Qd = 0
For j = 4 To 6
Qd = XCoeff(j, 4) + Qd
Next j
If Qa = 0 And Qb = 0 Then
X0 = -Qd / Qc
Else
X0 = quartic(0, Qa, Qb, Qc, Qd, Dt)
End If
If X0 > Dt And X0 <= db Then
Layer0 = i
Exit For
End If
Next i
ReDim XCoeff(1 To 6, 1 To 5)
End If
If axin = 0 Then GoTo FindX
'Axial load <> 0

E_1 = momin / axin


E_2 = E_1 - layers(llayer, 9)
'Find first section under NA
If axin < 0 Then Firsti = 0 Else Firsti = 1
For i = Firsti To llayer + 1
' Coefficients for x
' Reinforcement
ReDim XCoeff(1 To 6, 1 To 5)
Is1 = 0
Is0 = 0
Axs1 = 0
Axs0 = 0
For j = 1 To numreo
If i <= llayer Then
If reo(j, 1) >= layers(i, 1) Then Ar = Rlayers(j, 1) Else Ar = Rlayers(j, 2)
Else
Ar = Rlayers(j, 2)
End If
Is1 = reo(j, 1) * Ar * 2 + Is1
Is0 = reo(j, 1) ^ 2 * Ar + Is0
Axs1 = Ar * (E_2 - reo(j, 1)) + Axs1
Axs0 = Ar * reo(j, 1) + Axs0
Next j

'
'

'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'

XCoeff(3, 4) = -Is1
XCoeff(3, 5) = Is0
XCoeff(6, 4) = -Axs1
XCoeff(6, 5) = Axs0 * E_2

'

If i > 0 Then
If NALayer <= llayer Then
i = NALayer
Else
i = llayer
End If
db = layers(i, 1)
Dt = layers(i, 12)
DL = layers(i, 2)
Bb = layers(i, 3)
B2b = layers(i, 4)
If i > 0 Then
Kb = (B2b - Bb) / DL
Dct = layers(i - 1, 9)
At = layers(i - 1, 8)
Ict = layers(i - 1, 11)
End If
Irt = layers(i, 20)
Art = layers(i, 14)
Drt = layers(i, 16)
If i < 1 Or NALayer > llayer Then
Bb = 0

Kb = 0
End If
Qa = -Kb / 12
Qb = -Bb / 6 + Kb / 6 * (Dt - E_2)
Qc = -Bb * E_2 / 2 + Kb * Dt * E_2 / 2
Qd = Bb * Dt ^ 2 / 2 - Kb * Dt ^ 3 / 6 - At * Dct + E_2 * _
(Bb * Dt - At - Kb * Dt ^ 2 / 2) - Art * (Drt + E_2)
Qe = Ict + Irt + At * Dct * (Dct + E_2) - Bb * Dt ^ 2 * (Dt / 3 + E_2 / 2) _
+ Kb / 6 * Dt ^ 3 * (Dt / 2 + E_2) + Art * Drt * (Drt + E_2)

'
'
'
'
'
'
'
'
'

XCoeff(2, 4) = -2 * Dct * At
XCoeff(2, 5) = (Ict + At * Dct ^ 2)
XCoeff(4, 1) = -Kb / 6
XCoeff(4, 2) = -Bb / 2 - Kb / 6 * (E_2 - 3 * Dt)
XCoeff(4, 3) = -Bb / 2 * (E_2 - 2 * Dt) - Kb / 2 * (Dt ^ 2 - E_2 * Dt)
XCoeff(4, 4) = (-Bb / 2 * (Dt ^ 2 - 2 * Dt * E_2) - Kb / 6 * (3 * E_2 * Dt ^ 2 - Dt ^ 3))
XCoeff(4, 5) = (-Bb / 2 * Dt ^ 2 * E_2 + Kb / 6 * E_2 * Dt ^ 3)
XCoeff(5, 4) = -At * (E_2 - Dct)
XCoeff(5, 5) = At * Dct * E_2

'

ElseIf i > llayer Then

'
'
'

Dct = layers(i - 1, 9)
At = layers(i - 1, 8)
Ict = layers(i - 1, 11)

'
'
'

'
'

For j = 1 To 5
XCoeff(1, j) = 0
Next j
'
'
XCoeff(2, 4) = -2 * Dct * At
XCoeff(2, 5) = (Ict + At * Dct ^ 2)

'
'
'

For j = 1 To 5
XCoeff(4, j) = 0
Next j

'
'
'

XCoeff(5, 4) = -At * (E_2 - Dct)


XCoeff(5, 5) = At * Dct * E_2
End If

'
'
'
'

Qa = 0
For j = 1 To 6
Qa = XCoeff(j, 1) + Qa
Next j
'
'
'
'

Qb = 0
For j = 1 To 6
Qb = XCoeff(j, 2) + Qb
Next j

'
'
'
'

Qc = 0
For j = 1 To 6
Qc = XCoeff(j, 3) + Qc
Next j

'
'
'
'

Qd = 0
For j = 1 To 6
Qd = XCoeff(j, 4) + Qd
Next j

'
'
'
'

Qe = 0
For j = 1 To 6
Qe = XCoeff(j, 5) + Qe
Next j
If Qa = 0 And Qb = 0 And Qc = 0 Then
If Qd <> 0 Then X = -Qe / Qd Else X = 10000000000#
Else
X = quartic(Qa, Qb, Qc, Qd, Qe, Dt)
End If
' If (X > Dt And X < db) Or i > llayer Or (i = 0 And (X < 0 Or X > Dbase)) Then
out2(18) = (Qa * X ^ 4 + Qb * X ^ 3 + Qc * X ^ 2 + Qd * X + Qe) / Qe

FindX:
If SmallAx = 0 Then
X = X0
i = Layer0
' GoTo endfunc
ElseIf Abs(SmallAx) < Abs(axin) Then
X = X0 + (X - X0) * SmallAx / axin
End If
' Find top face strain
' Factor on moment if E_1 > 1 or axin = 0, otherwise axial load
' Find steel transformed area and 1st and 2nd Moment of area
Axs1 = 0
Axs0 = 0
Ixs = 0
For j = 1 To numreo
If reo(j, 1) >= X Then Ar = rlayers(j, 1) Else Ar = rlayers(j, 2)
Axs1 = Ar + Axs1
Axs0 = Ar * reo(j, 1) + Axs0
Next j
dsc = Axs0 / Axs1
For j = 1 To numreo
If reo(j, 1) >= X Then Ar = rlayers(j, 1) Else Ar = rlayers(j, 2)
Ixs = Ar * (dsc - reo(j, 1)) ^ 2 + Ixs

Next j
out2(17) = Ixs
'Find area and centroid of concrete compression zone
If X <= 0 Then
Acc = 0
Dcct = dsc
ElseIf X >= Dbase Then
Acc = At
Dcc = Dct
Dcct = (Acc * Dcc + Axs1 * dsc) / (Acc + Axs1)
out2(16) = layers(llayer, 11) ' Concrete I about concrete centroid
Itb = layers(llayer, 11) + Acc * (Dcct - Dct) ^ 2
Ixs = Ixs + Axs1 * (Dcct - dsc) ^ 2
Else
DL = X - Dt
' B1 = Bb
B2b = Bb + Kb * DL
A = (Bb + B2b) / 2 * DL
Acc = At + A
Dc = DL / 3 * (2 * B2b + Bb) / (B2b + Bb)
Dcc = (At * Dct + A * (Dc + Dt)) / Acc

Ip = layers(i - 1, 11)

' I to previous layer

Il = DL ^ 3 / 12 * (3 * Bb + B2b)
' Layer I about base
Il = Il - A * (DL - Dc) ^ 2
' Layer I about layer centroid
out2(16) = Ip + At * ((Dcc - Dct) ^ 2) + Il + A * ((Dcc - (Dt + Dc)) ^ 2) ' Concrete I about concrete centroid
Dcct = (Acc * Dcc + Axs1 * dsc) / (Acc + Axs1)
Itb = Ip + At * ((Dcct - Dct) ^ 2) + Il + A * ((Dcct - (Dt + Dc)) ^ 2) ' Total I about composite centroid
Ixs = Ixs + Axs1 * (Dcct - dsc) ^ 2
End If
'

Exit For
' End If
' Next i
out2(3) = Acc
out2(5) = Axs1
out2(6) = Acc + Axs1
out2(7) = Dcc
out2(9) = dsc
out2(10) = Dcct
out2(13) = Itb
out2(14) = Ixs
out2(15) = Itb + Ixs
out2(18) = Kb
out2(19) = Qb
out2(20) = Qc

out2(21) = Qd
out2(22) = Qe

endfunc:
out2(1) = X
FindNA = X
End Function
Private Function CompFace(reo, layers, rlayers, llayer, axin, momin, CFOut)
Dim numreo As Long, Dcr As Double, Dcrt As Double, CompDrct As Double, Eut As Double, Euc As Double
Dim Dcg As Double, E_1 As Double, E_2 As Double, Depth As Double
numreo = UBound(rlayers) - LBound(rlayers) + 1
Dcr = rlayers(numreo, 5) / rlayers(numreo, 4)
Dcrt = rlayers(numreo, 7) / rlayers(numreo, 6)
CompDrct = (rlayers(numreo, 7) + layers(llayer, 8) * layers(llayer, 9)) / (rlayers(numreo, 6) + layers(llayer, 8))
Dcg = layers(llayer, 9)
Depth = layers(llayer, 1)
'Load eccentricity for uniform tension
Eut = -Dcr
'Load eccentricity for uniform compression
Euc = -CompDrct
If axin <> 0 Then
E_1 = momin / axin
E_2 = E_1 - (layers(llayer, 9) - CompDrct)
End If

' If top face is compression face then CompFace = 1, else CompFace = 0


If axin = 0 Then
If momin > 0 Then CompFace = 1 Else CompFace = 0
Else
If axin < 0 Then
If E_2 < Eut Then CompFace = 1 Else CompFace = 0
Else
If E_2 > Euc Then CompFace = 1 Else CompFace = 0
End If
End If
If CompFace = 0 Then
Dcg = Depth - Dcg
Dcr = Depth - Dcr
CompDrct = Depth - CompDrct
Dcr = Depth - Dcr
End If

CFOut(8) = Dcg
CFOut(9) = Dcr
CFOut(11) = CompDrct
CFOut(12) = Dcr
End Function

Private Sub SwapFace(layers, llayer, reo, rlayers, numreo)


Dim TempLayers() As Double, TempReo() As Double, Depth As Double
Dim i As Long, j As Long
ReDim TempLayers(0 To llayer, 1 To 22)
ReDim TempReo(1 To numreo, 1 To 4)
Depth = layers(llayer, 1)
For i = 1 To llayer
'For j = 1 To 13
TempLayers(i, 1) = Depth - layers(llayer - i + 1, 1)
TempLayers(i, 2) = layers(llayer - i + 1, 2)
TempLayers(i, 3) = layers(llayer - i + 1, 4)
TempLayers(i, 4) = layers(llayer - i + 1, 3)
TempLayers(i, 5) = layers(llayer - i + 1, 5)
TempLayers(i, 6) = layers(llayer - i + 1, 6)
TempLayers(i, 7) = layers(llayer - i + 1, 7)
TempLayers(i, 8) = layers(llayer - i + 1, 8)
TempLayers(i, 9) = Depth - layers(llayer - i + 1, 9)
TempLayers(i, 10) = layers(llayer - i + 1, 10)
TempLayers(i, 11) = layers(llayer - i + 1, 11)
TempLayers(i, 12) = Depth - layers(llayer - i + 1, 12)
Next i
For i = 1 To numreo
TempReo(i, 1) = Depth - reo(numreo - i + 1, 1)
For j = 2 To 4
TempReo(i, j) = reo(numreo - i + 1, j)
Next j
Next i

layers = TempLayers
reo = TempReo
End Sub

Public Sub Elastic3()


' Get mom, ax, e_1, concrete and reo arrays and number layers
' Concrete and steel properties
' Adjust concrete widyhs for concrete modular ratio
' Split concrete layers at reinforcement layers
' Form layers array, columns 1 to 6:
' 1: Level of bottom of layer
' 2: Thickness of layer
' 3: Top width
' 4: Bottom width
' 5: Concrete E
' 6: Rate of change of width, K
' Form rlayers array, columns 8, 10, 1 to 3, 4 to 7, 9:
' 1: Transformed area in tension
' 2: Transformed area in compression
' 3: Es
' 4: Cumulative area in tension
' 5: Cumulative first MofA about top fibre in tension
' 6: Cumulative area in compression
' 7: Cumulative first MofA about top fibre in compression
' 8: Area
' 9: Cumulative area
' 10: Depth
' CumLayers layers, numLayers, llayer
'Find composite Q and Dc for full section in compression and tension and I/Q about base
' of layer for each layer
' Calc E_1, E_2
' Cface = CompFace(reo, layers, Rlayers, llayer, axin, momin, XA)
' Swap faces ic Cface = 0
' X = FindNA(reo, layers, Rlayers, llayer, axin, momin, XA)

End Sub
Private Sub CumLayers2(layers, numLayers, llayer)
'Form rest of layers array,columns 6 to 13
' 6: Layer area, A (writes over K)
' 7: Layer centrod depth from top of layer
' 8: Total area to layer
' 9: Total concrete centroid depth to current layer
' 10: Total I about base
' 11: Total I about centroid
' 12: Depth of top of layer
' 13: Total Q about base

End Sub

Public Function FindNALayer(reo, layers, rlayers, llayer, E_2) As Variant

End Function

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?
#NAME?

#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!
#VALUE!

Renumber
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

constant
constant

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

1: Depth of bottom of layer


2: Layer area
3: Layer centrod depth from top of layer
4: Total area to layer
5: Centroid depth to layer
6: Cumulative I about base to layer
7: Cumulative I about centroid to layer
8: Depth of top of layer
9: Cumulative First monemt of area about b
10: Cumulative transformed reinforcement
11: Total transformed Q about base
12: I/Q
13: Ir about base of layer, Irt
14: Reaction centroid eccentricity - applied
15: Total transformed area
16: Transformed centroid height above bas
17: Total Transformed I about transformed c

constant

constant

f bottom of layer

entrod depth from top of layer

d depth to layer
ative I about base to layer
ative I about centroid to layer
f top of layer
ative First monemt of area about base
lative transformed reinforcement Q about base
ransformed Q about base

ut base of layer, Irt


on centroid eccentricity - applied load eccentricity, from base of layer
ansformed area
ormed centroid height above base of layer
ransformed I about transformed centroid

Examples - copy data to Input sheet


Circular section - 600 dia.
Concrete

Depth

B1
10
15
20
25
30
50
50
50
50
50
50
50
50
30
25
20
15
10

0.0
153.6
239.8
316.1
385.2
447.2
519.6
565.7
591.6
600.0
591.6
565.7
519.6
447.2
385.2
316.1
239.8
153.6

B2
153.6
239.8
316.1
385.2
447.2
519.6
565.7
591.6
600.0
591.6
565.7
519.6
447.2
385.2
316.1
239.8
153.6
0

Super T pretensioned bridge girder


Concrete

Depth
25
50
75
1305
45
300

B1
2380.0
2380.0
1212.6
1012.6
765.4
756.8

B2
2380.0
2380.0
1012.6
765.4
756.8
700.0

Void

B3

B4

Ec
33330

Void

B3
866.3
816.3
806.8
792.6
545.4
0.0

B4
866.3
806.8
792.6
545.4
0.0
0.0

Ec
32000

Reinforcement and prestress

Depth
50.00
83.49
175.00
300.00
425.00
516.51
550.00

Dia

No
20
20
20
20
20
20
20

1
2
2
2
2
2
1

Prestress
Es
force/Strand
200000

Side Cover
30
30
30
30
30
30
30

Reinforcement and prestress

Depth
50.00
1600.00
1750.00

Dia

No
20
20
20

10
12
12

Prestress
Es
force/Strand
200000
100
100

Side Cover
30
30
30

About Beam Design Functions


Disclaimer
This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public Licenseas published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but without any warranty; without even the implied warranty of
merchantability or fitness for a particular purpose.

dougjenkins@interactiveds.com.au
www.interactiveds.com.au
http://newtonexcelbach.wordpress.com/

Copyright 2008 Interactive Design Services Pty Ltd. all rights reserved

Revision History
Current Version
Rev

Date
1
1.01
1.02
1.03
1.04

5/29/2008
11/3/2008
2-Jun-08
5-Jun-08
11-Oct-09

1.04

11-Oct-09

By

Description

DAJ
DAJ
DAJ
DAJ
DAJ

First release
Corrected for 0 axial load with NA above top reinforcement layer
Dim statement added for rlayers. Minor revisions to code.
Check of referenced DLLs added. Removed because of problems if access to VBA proje
Dim statement added for NumPointA

ems if access to VBA project not allowed

Anda mungkin juga menyukai