py_Conbeam – 4

The last post in the current series compares results from the py_Conbeam function with beam analysis results from the Strand7 FEA software.

There have been further  significant changes to the Python code and the spreadsheet, so please download the latest versions from:

py_ConBeamU.zip

Also, see Python and pyxll for details of the pyxll package required to link the Python code to Excel, including a 10% discount code for new users.

The Strand7 models, with bending moment results, are shown below:

  • Three spans with cantilevers at each end and supports fixed or with spring stiffness for translation and rotation, or a specified vertical displacement.
  • The beams were analysed with and without allowance for shear deflections.
  • Two spans and one span with cantilevers at both ends, and a single cantilever fixed at the left-hand end.
  • Applied loads and section properties (other than allowance for shear deflections) were the same for all five cases.

To ensure results matching as closely as possible, the beam section properties calculated in the Strand7 analysis were copied to the spreadsheet:

Data input for the single span beam is shown below. The same loads and beam segment lengths and EI values were used in all analyses. The supports were adjusted as required, and the section GA values were set to zero for the beam not including shear deflections.

Support data is shown below for the three span beam, with results from the spreadsheet and Strand7 analyses.

The analyses were found to be in exact agreement, to machine accuracy, for all cases, including beam actions, deflections and rotations, and support reactions:

The download zip file includes the latest versions of the Python files, copies of the spreadsheet with and without the Strand7 results, and a copy of the Strand7 data and results files.

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, NumPy and SciPy, PyXLL, Strand7, UDFs | Tagged , , , , , , , , , | 1 Comment

py_Conbeam – 3

Continuing from the previous post, we will move on to the py_Conbeam and py_MovLoad functions, that combine with the previous functions to analyse continuous beams with any number of spans and section types, under static or moving loads.

As before, there have been some significant changes to the Python code and the spreadsheet, so please download the latest versions from:

py_ConBeamU.zip

Also, see Python and pyxll for details of the pyxll package required to link the Python code to Excel, including a 10% discount code for new users.

The input and output for py_Conbeam are similar to py_SSSpan, except that there may be any number of supports, with cantilevers at one or both ends:

The py_ConbeamU function allows input and output to be in specified units. Note that in the current version units such as kNm must be separated with a . (kN.m), and exponents must have a ^ symbol (kN.m^2):

The py_MovLoad function calls py_ConBeam to analyse a specified vehicle at any number of locations along the beam. Input of section and support details is as for py_Conbeam, with the addition of axle loads and spacing, load factors, and positions of the first axle:

Input also allows static distributed and point loads to be specified, and output locations for bending moment and shear results:

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, NumPy and SciPy, PyXLL, UDFs | Tagged , , , , , , , , , | 1 Comment

py_ConBeam – 2

Continuing from the previous post, today I will be looking at the Macaulay function, that performs the underlying analysis, and the application of this function to cantilevers and single span beams.

There have been some significant changes to the Python code and the spreadsheet, so please download the latest versions from:

py_ConBeamU.zip

Also, see Python and pyxll for details of the pyxll package required to link the Python code to Excel, including a 10% discount code for new users.

All of the functions in the spreadsheet call the py_Macaulay function, to calculate the cumulative effect of applied loads along the beam, by integrating to find shear forces, bending moments, curvatures, slopes and deflections. For background information on Macaulay see: Beam actions and deflections by Macaulay’s Method.

For practical applications it is better to call the function related to the type of beam to be analysed, but the Macaulay function can also be called directly from Excel:

The beam to be analysed may be divided into any number of segments, with the bending stiffness, and optionally the shear stiffness, given for each segment. Any number of trapezoidal distributed loads, and point loads and moments may be applied. The function returns shear force, bending moments, and transverse slope and deflections along the beam, starting from zero at the left hand end.

Input for the py_Cantilever function is similar, with the addition of the input of a single support, defining the fixed end, and the transverse and flexure stiffness for the support, with rigid conditions indicated with -1:

In the example above the loading and section properties are the same as for the Macaulay example, with the beam fixed at the right hand end. The shear forces and bending moments are the same as the Macaulay output, but the slopes and deflections have been rotated about the right hand end, to give fixed conditions as specified.

The py_SSSpan function calculates end support loads (and deflections, for spring supports) for a single span beam, then finds actions and deflections along the beam, based on the Macaulay analysis:

For this function the supports must be at the beam ends. A single span with one or two end cantilevers may be analysed with the py_Conbeam function (to be covered in the next post).

The function also has a unit aware version, py_SSSpanU, allowing use of inconsistent units:

At the moment the range of available units is limited, but this will be expanded in future versions.

The end supports may be simply supported, or have spring or fixed restraints for one or both end. Output with rigid moment connections at both ends is shown below.

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, NumPy and SciPy, PyXLL, UDFs | Tagged , , , , , , , , | 2 Comments

py_ConBeamU

I have now converted the VBA code in the ConBeamU spreadsheet to Python, connected to Excel via pyxll. The new spreadsheet and associated Python code can be downloaded from:

py_ConBeamU.zip

In addition to the provided files, the pyxll application is required to link to Excel. See Python and pyxll for details, including a 10% discount code for new users. The following Python libraries are also required:

  • Numpy
  • Scipy
  • Sympy
  • Pint
  • MPMath

Note that this is a work and progress, and some of the functionality of the VBA code is not fully operational. In particular, options for input of units are limited, and all combined unit names must be separated with the appropriate maths operator, e.g. kN.m^2 for a section bending stiffness (EI) unit.

As always, results must be independently checked if they are to be used in a real application.

The spreadsheet provides a number of functions for analysing the effect of loads on straight beams using Macaulay’s Method. For background information on Macaulay see: Beam actions and deflections by Macaulay’s Method. The next few posts will look at each of the functions in more detail.

The py_FEA and py_REA functions return the end actions of beams subject to specified loading, with fully fixed (py_FEA) or partially restrained end conditions (py_REA). Both these functions (and the other functions provided) also come in unit aware versions, py_FEAU and py_REAU.

End conditions for py_FEA are fully fixed at both ends by default, or with End Restraints specified as 11. The moment restraint may be fully released at the right, left, or both ends by entering End Restraints as 10, 1, or 0 respectively. For the py_REA function the translational and rotational restraint must be specified at both ends, with fully fixed restraint indicated with -1.

The beam may be divided into any number of segments with different section properties, and if the shear stiffness value is non-zero shear deflections will be included. For the examples in the spreadsheet two segments with equal properties have been specified, so that the py_FEA results can be compared with standard formula results for uniform beams. The effect of changing the shear stiffness of one segment is shown below.

See the spreadsheet for a range of other examples with different load conditions, with results compared with standard formulas.

The py_REAct3D function provides similar functionality to py_REA for 3 dimensional loading.

For section properties, the shear areas are optional, and all others are required. Output actions are given in the beam principal axis system.

The py_BeamAct3D function returns beam actions and deflections at specified sections for input actions at the beam ends, and along the length.

The input includes an option to include geometric non-linear effects in the analysis (default is not included). Output provides 6 beam actions and deflections at each section.

There is also a py_BeamAct2D function providing similar functionality in two dimensions.

Input:

Output:

The 2D function has the option to return the errors in the calculated end actions and deflections, compared with input values, as shown above. This option is currently not working in the 3D version, but will be added in the near future.

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, NumPy and SciPy, PyXLL, UDFs | Tagged , , , , , , , | 4 Comments

Three English Dances

You Tube links to John Renbourn playing The English Dance posted here previously have been deleted, so here other two other performers’ versions:

Cover of John Renbourn’s arrangement of a traditional medieval tune simply known as “English Dance”. Great guitarist and big influence on myself, may he rest in peace Played fairly fast alike to his “Live in America” album, and the opening tune is another Renbourn arrangement of Bunyan’s Hymn Thanks for watching, see my website! http://www.oldwatermusic.com

The original is scribbled on the flyleaf of a psalter from old Coventry Cathedral and is now preserved at the Bodleian Library in Oxford. John Renbourn also has an arrangement of ‘The English Dance’ which is definitely worth seeking out. Also check out an ensemble version by the Dufay Collective. Enjoy! Clive Clive Carroll is touring the USA West Coast this JULY 2024: https://www.clivecarroll.co.uk/concer…

And finally, a recently posted live version from the man himself:

JOHN RENBOURN & JACQUI McSHEE “Bunyan’s Hymn / I Saw Thee Ships / English Dance

Posted in Bach | Tagged , , , | Leave a comment