You are on page 1of 83

Interactive Design Services

www.interactiveds.com.au

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

Elastic Analysis of Reinforced and Prestressed Sections


Contents:
Name Elastic Purpose 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 Find the real roots of quartic equations Find the real roots of cubic equations

Quartic Cubic

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])

1.04

11-Oct-09

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)

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

#MACRO? mm #MACRO? #MACRO?

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 'Elastic1 Input'.A21:G26 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 Force, kN #MACRO? #MACRO? Concrete #MACRO? #MACRO? Passive Steel #MACRO? #MACRO? Prestress #MACRO? #MACRO? Applied axial #MACRO? #MACRO?

output column index, Out_index 3 4 Force, kN Moment, kNm #MACRO? Concrete #MACRO? #MACRO? Passive Steel #MACRO? #MACRO? Prestress #MACRO? #MACRO? Moment due to axial #MACRO? Applied moment #MACRO? Prestress eccentricity #MACRO?

ndex, Out_index Depth to NA etc Y Acomp QNA Ina Eccentricity reaction force from comp. face Eccentricity applied force from comp. face Depth centroid concrete section Depth centroid reinforcement Depth centroid full composite section Depth centroid cracked composite section I reinforcement 6 Steel by layer Stress #MACRO? Compression layer #MACRO? #MACRO? to #MACRO? #MACRO? Tension layer #MACRO? #MACRO? #MACRO? #MACRO? Total passive force #MACRO? #MACRO? Total prestress force#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? 5

7 Force #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

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

Layers 1 Layer thickness #MACRO? #MACRO? 2 Transformed B1 #MACRO? #MACRO? 3 Transformed B2 #MACRO? #MACRO? 4 Transformed K #MACRO? #MACRO? 5 Transformed layer area #MACRO? #MACRO? 6 Cumulative area #MACRO? #MACRO? 7 Layer centroid height from bottom of layer #MACRO? #MACRO? 8 Composite conc. 1st moment of area about #MACRO? base #MACRO? 9 Height of composite concrete centroid about #MACRO? base #MACRO? 10 Depth of bottom of layer #MACRO? #MACRO? 11 Layer second moment of area about base #MACRO? of layer #MACRO? 12 Layer second moment of area about centroid #MACRO? #MACRO? 13 Composite concrete second moment of #MACRO? area about centroid #MACRO? 14-18: Composite transformed properties with Area compression down to bottom of current #MACRO? layer #MACRO? 15 First moment of area about top #MACRO? #MACRO? 16 Depth of centroid #MACRO? #MACRO? 17 First moment of area about bottom of current #MACRO? layer #MACRO? 18 Second moment of area about bottom of #MACRO? current layer #MACRO? 19 I reinforcement in tension #MACRO? #MACRO? XA NA within section Full compression 1Y Y 2 Qna Qna 3 Ina Ina 4 Qstna Qstna 5 Qconcna Qconcna 6 Istna Istna 7 Icconc Icconc 8 Depth centroid conc compression Dref 9 Acomp Acomp 10 Dref Dref 11 DRefComp DRefComp 12 a

Full tension Y Qna Ina Qstna Istna Acomp Dref DRefComp

13 b 14 c 15 d 16 e 17 Rsum1 18 Rsum2

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) 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 '

' Total I about composite centroid

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

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

#MACRO? #MACRO? #MACRO? #MACRO? #MACRO? #MACRO?

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

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

constant constant constant

constant

f bottom of layer

entrod depth from top of layer

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

t 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

Void

Depth 10 15 20 25 30 50 50 50 50 50 50 50 50 30 25 20 15 10

B1 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

B3

B4

Ec 33330

Super T pretensioned bridge girder Concrete

Void

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

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 Prestress Es force/Strand 200000

Depth 50.00 83.49 175.00 300.00 425.00 516.51 550.00

Dia 20 20 20 20 20 20 20

No 1 2 2 2 2 2 1

Side Cover 30 30 30 30 30 30 30

Reinforcement and prestress Prestress Es force/Strand 200000 100 100

Depth 50.00 1600.00 1750.00

Dia 20 20 20

No 10 12 12

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
1 1.01 1.02 1.03 1.04

1.04 By

11-Oct-09 Description

Date

5/29/2008 DAJ 11/3/2008 DAJ 2-Jun-08 DAJ 5-Jun-08 DAJ 11-Oct-09 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