2010 in review

The stats helper monkeys at WordPress.com mulled over how this blog did in 2010, and here’s a high level summary of its overall blog health:

Healthy blog!

The Blog-Health-o-Meter™ reads Wow.

Crunchy numbers

Featured image

The Louvre Museum has 8.5 million visitors per year. This blog was viewed about 130,000 times in 2010. If it were an exhibit at The Louvre Museum, it would take 6 days for that many people to see it.

In 2010, there were 98 new posts, growing the total archive of this blog to 280 posts. There were 266 pictures uploaded, taking up a total of 21mb. That’s about 5 pictures per week.

The busiest day of the year was November 24th with 651 views. The most popular post that day was Frame Analysis with Excel – 7; Shear deflections and support displacements.

Where did they come from?

The top referring sites in 2010 were en.wikipedia.org, eng-tips.com, spreadsheetpage.com, dailydoseofexcel.com, and blogs.msdn.com.

Some visitors came searching, mostly for tessellations, com624, newton’s cradle animation, heidelberg, and newton excel bach.

Attractions in 2010

These are the posts and pages that got the most views in 2010.

1

Frame Analysis with Excel – 7; Shear deflections and support displacements May 2009
28 comments

2

Cubic Splines July 2009
4 comments

3

Frame Analysis with Excel 1 – Single beam January 2009
12 comments

4

Frame Analysis with Excel – 3, Continuous beam or frame February 2009
10 comments

5

Using Goal Seek on Multiple Cells July 2009
2 comments

Posted in Computing - general | Tagged | Leave a comment

Buckling of rings and arches

In 2007 I wrote a paper on buckling of confined steel tunnel liners for the ANZ Geomechanics Conference in Brisbane, and in the course of that I noticed that the calculated buckling load of an unconstrained pipe subject to uniform radial load was significantly different for different methods of analysis.  The most widely quoted theoretical solution (for instance, Roark’s Formulas for Stress and Strain, Edition 7, Table 15.1.8) gives a buckling load (radial load per unit length) of 3EI/R³, and this was supported by an incremental non-linear analysis, including geometric non-linear effects.  On the other hand a linear buckling analysis, based on an eigenvalue analysis, gave a buckling load very close to 4EI/R³.  I did not find the reason for this difference at the time, but I was reminded of the problem by a recent thread at the Eng-Tips forum, and decided to investigate it further using the buckling analysis spreadsheet presented here earlier this year.

I have modified the spreadsheet to allow the input of a quarter circular arch (which with appropriate end conditions is equivalent to symmetrical effects in a full ring), or for a smaller portion of an arc.  The spreadsheet also allows different options for the change in direction of the applied load after deformation of the ring (for reasons that will become apparent), and the ring may be either specified with a constant cross section or a series of stepped sections.  The modified spreadsheet, including full open source code, is available for free download.

For the purposes of this investigation the end conditions were set as follows:

  • Base: restrained against rotation and vertical translation
  • Top: restrained against rotation and horizontal translation

These end conditions make the quarter circle equivalent to a full circle for actions that are symmetrical about the X and Y axes.

The options for the application of the load after displacement of the point of application are:

  1. The load remains normal to the point of application, appropriate for loading by a fluid pressure.
  2. The load direction remains unchanged.
  3. The load remains directed towards the original centre point.

Option 1 may be modelled with either uniform loads applied to each element of the ring, or with point loads applied to the mid point of each element.  Options 2 and 3 require the use of point loads.

The model may be subdivided into any number of straight elements, but there is little increase in accuracy with more than about 40 elements, and the analysis becomes very slow if 100 or more elements are used.

The procedure for the analysis is:

  • Calculate node coordinates for the specified radius and number of elements
  • Apply linearly increasing deflections to each node.
  • Apply radial unit load/unit length, either to each element as a distributed load, or to the mid-point of each element.
  • Analyse the structure for this loading, to find the X and Y deflections at each node.
  • Scale the deflections so that the maximum resultant deflection is 1 unit, and add these normalised deflections to the original circular arc node positions.
  • If the loads are being applied as node loads, adjust the load direction according to the chosen option (distributed beam loads are automatically applied as perpendicular to the member direction).
  • Repeat until the change in maximum resultant deflection is less than the specified tolerance.
  • The buckling load is then 1/maximum resultant deflection

Input and results for the example given in the Eng-tips discussion are shown in the screen shot below.  This is a steel ring of 25 mm square cross section and 1000 mm radius to the centroidal axis.  The output shown is for the case where the applied load remains radial.

Ring Buckling Input and Output

The spreadsheet gives the following results for the three load direction cases (k = PR³/EI):

  1. Load remains perpendicular to elements; k = 3.01
  2. Load direction remains unchanged; k = 4.01
  3. Load direction remains radial; k = 4.51

These values compare well with the theoretical values quoted in Reference (1), which gives:

  1. k= 3.0
  2. k = 4.0, most common value (but see below)
  3. k = 4.5

It should be emphasised that these values are for symmetrical buckling shapes.  If the ring is free to deform asymmetrically the buckling load may be greatly reduced, and Reference (1) quotes a k value of only 0.701 for a ring subject to constant direction loading and free to buckle in an asymmetric manner.

References: (1) “Critical Constant-“Directional Pressure on Circular Rings and Hingeless Arches”; Robert Schmidt; Journal of Applied Mathematics and Physics (ZAMP), Vol. 31, 1980

Posted in Arch structures, Beam Bending, Excel, Newton, VBA | Tagged , , , | 15 Comments

Salutary pictures for bridge engineers

Following the Minnesota bridge collapse, Time magazine published photos of the ten worst bridge collapses of the last 100 years:

The Worst Bridge Collapses in the Past 100 Years

Quebec Bridge collapse

An interesting list, many of which I hadn’t heard of, although the Westgate Bridge collapse was a strange omission.

Westgate Bridge collapse during construction

I found this link at the site of Colin Caprani, which is well worth a visit by those interested in structural engineering and/or computing.

Posted in Historic Bridges, Newton | Tagged , | 2 Comments

ULS design of reinforced concrete, AS, ACI and European codes

The previous post in this series compared the results of current and previous Australian Standards, and the ACI 318 code, for the ultimate bending capacity of a rectangular reinforced concrete section, subject to combined bending and axial load.  I have now extended this analysis to include three European codes: the current Eurocode 2, and the recently superseded British Standard codes: BS 5400 (bridges) and BS 8110 (buildings).

The spreadsheet used in this analysis contains user defined functions (UDFs) that will carry out the section analysis for any rectangular section with 1 or 2 layers of reinforcement, for the following codes:

  1. AS3600-2010, rectangular stress block (default)
  2. AS5100, rectangular stress block
  3. Eurocode 2, parabolic stress block
  4. BS 5400, rectangular stress block
  5. BS 8110, rectangular stress block
  6. Not yet implemented
  7. ACI 318, rectangular stress block
  8. AS3600-2001, rectangular stress block
  9. AS3600-Parabolic1; parabolic parameters to EC 2
  10. AS3600-Parabolic2; parabolic stress block converted to equivalent rectangular block

The spreadsheet (including full open source code) may be downloaded from RC Design Functions5.zip

All the codes reviewed here adopt the same basic principles, but differences in the method of application of these principles lead to significant differences in the resulting design actions from each code.  The major differences are:

  • The Australian codes and ACI 318 use the nominal material yield stresses to calculate the section moment and axial load capacity, then reduce these values by a global capacity reduction factor, whereas the European codes apply different reduction factors to the concrete and steel yield stress, and use these reduced values to calculate the design ultimate capacities.
  • All of the codes have a greater reduction in capacity for sections where concrete crushing controls the design, compared with sections where steel yield in tension controls, but there are significant differences in the transition range between the different factors.
  • All of the codes have an additional reduction factor on concrete stress to account  for long term stresses, and differences between the design stress block and the actual stress distribution, but there are significant differences in how this factor is applied.
  • All of the codes other than ACI 318 have a minimum load eccentricity for sections that would otherwise have zero or very small design bending moment.  ACI has an additional reduction factor on the maximum axial load.
  • The European codes allow either rectangular or parabolic-rectangular concrete stress blocks to be used.  In this review the parabolic-rectangular stress blocks have been used.  The EC 2 stress block has also been used for the AS 3600 calculations, which allow any stress block supported by experimental evidence.  For the ACI 318 calculations the specified rectangular stress block has been used.
  • The two BS codes are limited to a concrete cube strength of 65 MPa, which is equivalent to a cube strength of a little over 50 MPa.  The other codes have modifications to the concrete stress block for higher strength grades, to account for its reduced ductility.
  • The reinforcement stress-strain curve is virtually identical for all the codes other than BS 5400, which has a tri-linear curve and a reduced yield stress for steel in compression.  The standard yield stress is different in each code, but for comparison purposes the yield stresses have been factored so that each code gives the same bending capacity with no axial load.
  • EC 2 has a reduced concrete strain for sections entirely in compression, reducing to the concrete yield strain for sections in uniform compression.  AS 3600 reduces the compressive strain for sections in uniform compression to the reinforcement yield strain, and the other codes use the same concrete strain as used for sections in flexure.

The screen-shot below shows the input for the five different codes:

Umom input and output, click for full size view

Interaction diagrams for the five codes for concrete grades between 32 MPa and 100 MPa are shown below; note that the AS 3600 results are based on the same parabolic-rectangular stress block as specified in EC 2.  See the previous post in this series for a comparison with the rectangular stress block:

F'c = 32 MPa

F'c = 40 MPa

 

F'c = 50 MPa

 

F'c = 65 MPa

 

F’c = 80 MPa

F'c = 100 MPa

 The most significant differences between the results from the different codes are summarised below:

  • For concrete grades up to 50 MPa and axial loads up to about 50% of the balance load the three European codes and ACI 318 give very similar results, but AS 3600 is significantly more conservative, due to the transition of the capacity reduction factor from 0.8 to 0.6 starting at zero axial load.  For higher concrete grades the two British codes are not applicable and ACI 318 becomes slightly less conservative than EC 2.
  • For loads between about 50% and 100% of the balance load the ACI 318 results become closer to the AS 3600 values, and for concrete grades up to 50 MPa the results from these two codes are reasonably close from the balance load up to the maximum design load.  For higher strength grades the ACI code design moment values are significantly higher than those from AS 3600, and also exceed EC 2 values for 80 MPa and 100 MPa concrete.
  • The BS 8110 and EC 2 results are very similar over the whole range (for concrete grades up to 50 MPa), with BS 5400 giving significantly lower capacity for axial loads approaching the balance load and greater.
  • The maximum axial load under uniform compression given by ACI 318 is similar to AS 3600, and significantly less than the European codes, for low concrete strengths, but becomes progressively less conservative, and is approximately equal to the EC 2 value at 100 MPa.
  • The AS 3600 results are the most conservative in all cases, except for loads just above the balance load for 40 and 50 MPa concrete, where ACI 318 gives slightly more conservative results.

It should be noted that the ACI results assumed the use of confinement reinforcement consisting of rectangular ties.  Where helical reinforcement (complying with the code requirements) is used the ACI code is significantly less conservative.  Interaction diagrams are shown below for 50 MPa and 80 MPa concrete, with spiral confinement reinforcement for the ACI code:

 

F'c = 50 MPa; ACI 318 with spiral confinement

F'c = 80 MPa; ACI 318 with spiral confinement

 It can be seen that for 80 MPa concrete the ACI design bending moments for an axial load of 10,000 kN are of the order of 30% greater than the EC 2 results, and almost 100% greater than the AS 3600 results.

Posted in Beam Bending, Concrete, Excel, Newton, UDFs | Tagged , , , , , , , , | 1 Comment

Charting a Mathematical Function with Defined Names

This post is a compilation of information from Stephen Bullen, Jan Karel Pieterse, and George Lungu.  To quote JKP “When doing mathematics, wouldn’t it be nice if we could type an equation into a cell in Excel and immediately see the resulting graph?”  Well we can, and since the technique is well documented at the links above, I will extend it a little to plot a parametric equation, that is an equation where both x and y are functions of some other parameter.  A recent post at George Lungu’s Excel Unusual blog describes how to generate the data for a Lissajous Figure on the spreadsheet, and then plot it in an XY chart.  The equations for a Lissajous Figure are an example of a system of parametric equations, so I have used these as the example.  The resulting spredsheet can be downloaded from PlotLS.xls

The basic steps are:

  • Enter on the spreadsheet as text the functions for x and y.  The functions may be entered with or without a leading equals sign, but if you want to start with a = you must first enter an apostrophe, so that the text is not treated as a live spreadsheet function.  These text functions will be used to generate arrays of values to be plotted, using defined names.
  • In the case of a parametric equation we will also need to generate an array of equally spaced values over a specified range.
  • The generated arrays can then be plotted in an XY chart by assigning the data ranges to the defined names, rather than to spreadsheet ranges.

An array of equally spaced values can be generated by using the Excel Offset() and Row() functions:

  • The function =OFFSET(Sheet1!$A$1,0,0,n,1) will generate a single column range, starting at cell A1, and extending n rows.
  • Surround this with the Row function: =ROW(OFFSET(Sheet1!$A$1,0,0,n,1)), and this will return an array of integers from 1 to n, that is the row numbers of the cells in the range.
  • This is then multiplied by the step increment, plus the starting value, yielding the desired array of values: =tsStart+tsRange/(nts-1)*(ROW(OFFSET(Sheet1!$A$1,0,0,nts,1))-1)

For a plot of Y as a function of X this array of values is assigned to the X range, but in the case of a parametric equation it is assigned to the common parameter, in this case ts (for time-step):

ts defined name

The X and Y values for a Lissajous Figure are given by:

  • X = SIN((Freq1*Ts+Phase))
  • Y = SIN(Freq2*Ts)

These equations are entered as text into any two spreadsheet cells (without the X= and Y=), and then defined names are created to evaluate the functions.  Note that variables may either defined by cell addresses, or by named ranges, as in this case:

Evaluation of X values, click for full size view

Evaluation of Y values

Note that:

  • The ranges are defined as local to the sheet on which they occur.  This must be done at the time they are created.
  • The name definitions use the Evaluate function (=EVALUATE(Sheet1!$B$12&”+ts*0″)), and are terminated with the strange looking sequence: “+ts*0”.  This is a workaround required when the function to be evaluated includes any Excel function (in this case the SIN function)
  • After the names have been defined it is a good idea to enter them as array functions on the spreadsheet, to check that they are returning the desired values; e.g. enter =ts, select the current cell and a few rows down, press F2, press ctrl-shift-enter (see range: A15:c18 on the screenshot).  The values on the spreadsheet may be deleted after checking, they are not required for the chart.

After creating all the required defined names, create an XY chart (you can use the sample data created in the step above as the initial chart data range, but any other range will do).  Finally the defined names, X and Y, are assigned to the chart X and Y ranges:

Finished chart with defined names assigned to the X and Y ranges

Note that the full local defined name must be specified, i.e. =Sheet1!x and =Sheet1!y

The text for the parametric equations may now be changed on the spreadsheet, and the chart will re-plot instantly to display the new curve.

Finally I should acknowledge the assistance of Jan Karel Pieterse in getting the parametric version of these charts working, after I had managed to convince myself that the system only worked for plotting Y as a function of X.

Posted in Arrays, Charts, Excel, Maths | Tagged , , , , | 7 Comments