Continuous beam analysis with cubic splines

The last example in the previous post illustrated the use of cubic splines to find the bending moments in a continuous beam subject to prescribed lateral displacements.  A similar technique can be used to find bending moments, shear forces, reactions, and displacements in a continuous beam subject to lateral forces.  The spreadsheet contains a description of this technique and a User Defined Function (UDF) to perform the analysis.

In outline, the procedure is:

For each loaded point:

  1. Apply unit deflection
  2. Fit cubic spline and find the curvature and bending moment in the segments either side of the loaded point
  3. Load = change of bending moment gradient at the point load
  4. Scale bending moments by Applied Load / Load for unit deflection

Sum bending moments for each loaded point

Calculate shear forces and reactions from bending moment diagram

This procedure is illustrated in this example for a single point load on a three span beam (click on any image below for a full size view):


Calculation of beam actions and deflections for a single point load on a 3 span beam

The beam support positions are specified with a Y value of zero in column B, and a deflection of -1 is entered for the load at X = 17.5.  The beam slope and curvature at each node and the load location are generated by the UDF CSPLINEA() (see previous post). 

 The bending moment in column G is simply the curvature multiplied by the beam flexural stiffness, EI; where E is the Young’s Modulus and I is the second moment of area of the beam cross section.

The force in column H is the force required to generate the prescribed unit deflection, and is equal to the change in slope of the bending moment diagram at the load position.   Dividing the specified applied load (100 kN) by the force for unit deflection gives the factor to be applied to the calculated bending moments; in this case -5.67E-04.  The beam actions and deflections in Columns I to K are found by multiplying the corresponding action under unit deflection by this factor.


Bending moments for a single point load on a 3 span beam

This procedure has been incorporated in the UDF SPLINEBEAM() which can be used to analyse continuous beams with any numbers of spans and any number of point loads:


SplineBeam input and top of output for a 3 span beam with 4 point loads

Note that loads can only be applied at node positions, and nodes are generated by dividing each beam into a specified number of equal length segments.  Nodes are numbered from 1 to number of segments + 1 from left to right for each beam.


Bending Moments for 3 span beam with 4 point loads


Deflections for 3 span beam with 4 point loads


Bending Moment output from the same analysis in Strand7

The same analysis performed in Strand7 gives identical results.

This entry was posted in Arrays, Beam Bending, Excel, Finite Element Analysis, Frame Analysis, Maths, Newton, UDFs, VBA and tagged , , , , , , , . Bookmark the permalink.

9 Responses to Continuous beam analysis with cubic splines

  1. Does the splinebeam only works for beam loaded with concentrated forces?

    Thanks in advance



  2. dougaj4 says:

    Manuel – yes, as it stands it only deals with transverse point loads. I will add distributed loads and moment loads at some stage, but it’s not a high priority at the moment, so it might be some time.


  3. zgoit says:

    Hi !!

    This seems a interesting work. Is there any information about going around in the ‘’? I.e. Using the bending strain to calculate the curvature of beam and then fitting the cubic spline curve to it followed by double integration of the fitted spline to obtain the displacements?


    • dougaj4 says:

      zgoit – I’m not sure I understand your question.

      If you already have the curvatures, why do you need to fit the cubic spline? Can’t you just integrate twice without that step?


      • zgoit says:

        Considering that you know the curvature (from the records of bending strain) at certain location of beam (eg. from load testing in an experiment for instance), you have to fit in the spline curve or any other interpolating curves so that you can mathematically integrate the curve to obtain the displacement at all location of the beam. In fact, I did this in Fortran (using both the cubic spline and higher order polynomial), but going through your spreadsheet, I was wondering if this is possible as VBA is more user friendly.


  4. dougaj4 says:

    zgoit, OK I see what you are getting at now. I have used the spline curves to estimate curvatures and bending moments from “cloud” survey data of deflections (in fact that’s the main reason I set up the spreadsheet) but I haven’t worked the other way. I don’t see why the spreadsheet couldn’t be adapted for that purpose though. I’ll try and find time to have a look at it.


  5. BigInch says:

    I am also interested in modifying the code to accept uniform loads. Have you made any further progress on that addition. If not, I may be able to contribute.


    • dougaj4 says:

      I’m not going to have any time for the next couple of months at least, but if you want to have a go I’ll be glad to help if required.

      I think the steps required are:
      – Modify the spline routine to allow a step in curvature at nodes, so you can apply moments as well as point loads.
      – Calculate the fixed and moments and reactions at the ends of each segment due to the applied load.
      – For internal nodes sum the reactions and moments from each segment.
      – This will give you the equivalent nodal loads and moments.

      You might also like to search this blog for Macaulays Method which has an alternative continuous beam routine, and also a function for calculating fixed end actions for full or partial trapezoidal distributed loads.


  6. BigInch says:

    Thanks for the hints. I will let you know if I make any progress.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.