Two traditional songs …

… with very different renditions.

First from 1967, Martin Carthy and Dave Swarbrick join Julie Felix:

Then a new version of Tam Lin from 2022, by Fiona Gillespie and Elliot Cole and performed by Makaris:

For more om Makaris see their web site: MAKARIS

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

Continuous beam analysis from first principles

This post was prompted by an Eng-Tips question: Statically Indeterminant Beam Problem, asking for reactions due to a triangular distributed load on the middle span of a continuous beam with 3 equal simply supported spans. This could be simply solved with a frame analysis program, or continuous beam analysis (such as ConBeamU or py_ConBeamU), but it is useful to analyse this problem from first principles to get a better understanding of the procedures used.

The procedure used in my continuous beam spreadsheets is:

  • Remove the internal supports so the beam can be analysed as a determinate simply supported single span.
  • Use the slope-deflection method to find the deflections at the internal support locations.
  • Apply a unit load at each of the internal support locations in turn and find the deflection at all of the internal supports due to that load.
  • Calculate the load required at each support to reverse the deflection due to the original applied load.
  • Take moments about one end to find the reactions due to the applied loads and the internal support reactions.

Since the spans are equal in the given problem, the analysis can be simplified by

  • setting the spans, the bending stiffness and the maximum load to a value of 1.
  • Apply the triangular distributed load as a point load and moment at the two internal supports, based on the fixed end actions due to that load.

Note that:

  • Slopes and deflections are found by initially assuming zero slope at the left-hand end, then rotating about the left-hand end for zero deflection at the other end.
  • The calculated deflections due to unit load at the internal support are set up in a 2×2 stiffness matrix, which is inverted to find the force matrix for unit deflection, and this is then multiplied by the deflections due to the applied load, to find the reactions at the internal supports.

An alternative process is to remove the two end supports, and find the deflections at these locations due to the applied load on the middle span:

Finally a simple version of standard frame analysis procedure can be set up:

  • Find the global stiffness matrix for bending about the horizontal axis at each support location.
  • Invert this matrix and multiply by the moments at the internal supports due to the applied load, to find the slope at each support.
  • Find the stiffness matrix for rotations and vertical deflections for one beam, and multiply by the rotations at each support to find the nett actions (shear force and bending moment) at each support.
  • The reactions are then equal to: -nett action + applied load:

The calculated reactions are exactly the same from each of the three calculations. Copies of the spreadsheets used can be downloaded from: 3 Span triang load.zip

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, PyXLL, UDFs, VBA | Tagged , , , | 3 Comments

Scipy-statistics update

Links to the Scipy statistics functions were last presented here. The functions have since had extensive updates:

  • The functions previously listed as “not yet implemented” have now been added.
  • Each function now links to the Scipy on-line help page, and has brief descriptions for each argument in the Excel function wizard.
  • The examples in the spreadsheet have been extended to cover every included function.
  • Some examples previously retuning errors have been updated.

The py_Stats spreadsheet, with associated Python code in PythonStatsFuncs3.py and pyScipy3.py, are included in the download file:

py_SciPy.zip

Details of the required pyxll package (including download, free trial, and full documentation) can be found at: pyxll

For those installing a new copy of pyxll, a 10% discount on the first year’s fees is available using the coupon code “NEWTONEXCELBACH10”.

The py_Stats function can be used to call any function in the Scipy.stats module. Alternatively the functions can be called with specific py_ functions. The screenshot below shows the describe function called with py_Stats and py_describe.

The examples of each function have now been extended to cover every available function:

Help on any function can be displayed as text on the spreadsheet, using the get_docs function:

The Scipy on-line help for any function can now be displayed by clicking on “Help on this function” at the bottom left of the function wizard:

The function wizard now displays a brief description of the function purpose, and the data required for each argument, as for the built-in Excel functions:

The spreadsheet also has functions to return the arguments for each function (get_args and get_argtab, and to list every available function in any Python module (get_funcs):

Finally there is a list of every Scipy.ststs function that can be called from Excel with a py_ function. This list now also includes the row number where the function example can be found:

Posted in Arrays, Excel, Link to Python, Maths, Newton, NumPy and SciPy, Python Pandas, PyXLL, UDFs | Tagged , , , , , , , , | Leave a comment

py_Numpy update

The py_Numpy spreadsheet, and the associated Python module have been updated. The new files are included in:

py_SciPy.zip

The download contains full open-source Python code and example spreadsheets for a wide range of Scipy functions, as well as the Numpy functions covered in this post. For more details, see the series of posts starting at: Scipy functions with Excel and pyxll.

The update was prompted by use of the norm function, which has versions in both Numpy and Scipy, which are very similar, but not identical. The Numpy version is now called from Excel with py_npNorm, with py_Norm calling the Scipy version.

Links to the Numpy on-line help have also been extended. When any of the py_Numpy functions are entered, from any spreadsheet, the on-line help can be displayed by clicking on “help on this function”, at the bottom-left of the Function Wizard:

This takes you directly to the on-line help for the selected function:

Alternatively, the Numpy help can be displayed on the spreadsheet using the get_docs function. In the py_Numpy spreadsheet this is linked to the list of available functions, so that entering the index number for any function will display the associated help text:

Note that the get_docs function can be used from any spreadsheet, and will return the help text from any available Python function. The screenshot below shows it used for the Numpy norm function and also the Scipy version:

Posted in Excel, Link to Python, Newton, NumPy and SciPy, PyXLL, UDFs | Tagged , , , , , , , , , | Leave a comment

py_Conbeam – 5

… or perhaps one more. Following the previous post I have modified the py_BeamAct3D function to fix some problems with the non-linear analysis.

The latest version, together with an additional spreadsheet comparing results with Strand7, can be downloaded 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 screenshots below show results for a 32 metre long beam with 2 different cross sections loaded with a uniform transverse load, and a high axial load.

The function allows for the beam alignment to be defined in 3 dimensions, but for the purposes of comparison with Strand7 results it was aligned with the X axis:

Output results (for the first 12 metres) are shown below for a linear analysis, ignoring geometric non-linear effects:

Setting the analysis to non-linear significantly increased the beam action and deflections:

Beam deflections and actions are plotted below comparing the linear and non-linear results with Strand7 geometric non-linear results:

Posted in Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Link to Python, Newton, PyXLL, Strand7, UDFs | Tagged , , , , , , , , , | Leave a comment