BUCKLING_SPRING The Buckling Spring

BUCKLING_SPRING is a MATLAB program which illustrates solutions of the buckling spring equations.

We are given three points A, B, and C:

• A is at the origin (0,0);
• B has coordinates (X,Y) with Y nonnegative, and the ray from A to B makes an angle of THETA with the horizontal axis.
• C is at the point (2*X,0).

Springs:

• A spring extends from A to B; it is normally of length 1, and is currently of length L.
• A spring extends from B to C; it is normally of length 1, and is currently of length L.
• A spring force is also exerted, which tends to draw the two springs together, proportional to the angle between the two springs.

Forces:

• A vertical load MU is applied at point B (downward is positive);
• A horizontal load LAMBDA is applied at point C (leftware is positive);
• The spring force is applied perpendicularly to the axes of the two springs.
• If we compute F(1), the force along the axis of one spring, and F(2), the force perpendicular to the axis of one spring, we have that F(L,THETA,LAMBDA,MU) is given by:

• F(1) = - 2 ( 1 - L ) + 2 * LAMBDA * cos ( THETA ) + MU * sin ( THETA )
• F(2) = 0.5 * THETA - 2 * LAMBDA * L * sin ( THETA ) + MU * L * cos ( THETA )

To explore these equations, we can first solve for MU and LAMBDA in terms of L and THETA:

• LAMBDA(L,THETA) = (1-L) * cos(THETA) + 0.25 * THETA * sin(THETA) / L
• MU(L,THETA) = 2 * (1-L) * sin(THETA) - 0.5 * THETA * cos(THETA) / L

We can then study the behavior of solutions by choosing a fixed value of THETA (say pi/8), and plotting LAMBDA(L,THETA) versus MU(L,THETA) over a range of values of L, say from 0.25 to 1.75. Recall that L = 1 when the springs are at their "natural" length. This approach is taken by the function BUCKLING_SPRING_L.

We can also plot the same data, but instead fix a value of L, typically in the range of 0.25 to 1.75, and the plot LAMBDA(L,THETA) versus MU(L,THETA) over a range of values of THETA, say from -3pi/8 to +3pi/8. This approach is taken by the function BUCKLING_SPRING_THETA.

Usage:

To draw lines of constant L, with THETA varying along a line:

buckling_spring_l ( l_num, theta_num )
where
• l_num is the number of L lines to draw;
• theta_num is the number of THETA values along each L line.

To draw lines of constant THETA, with L varying along a line:

buckling_spring_theta ( l_num, theta_num )
where
• l_num is the number of L values along each THETA line;
• theta_num is the number of THETA lines to draw.

Languages:

BUCKLING_SPRING is available in a Mathematica version and a MATLAB version.

Related Data and Programs:

TEST_CON, a FORTRAN program which sets up sample problems for continuation, including the buckling spring.

Reference:

1. Tim Poston, Ian Stewart,
Catastrophe Theory and its Applications,
Dover, 1996,
ISBN13: 978-0486692715,
LC: QA614.58.P66.

Source Code:

• buckling_spring_l.m, chooses equally spaced values of THETA between -3pi/8 and +3pi/8, and plots curves of LAMBDA(L,THETA) versus MU(L,THETA) over a range of values of L, from 0.25 to 1.75.
• buckling_spring_theta.m, chooses equally spaced values of L between 0.25 and 1.75 and plots curves of LAMBDA(L,THETA) versus MU(L,THETA) over a range of values of THETA, from -3pi/8 to +3pi/8.

Last revised on 04 December 2018.