Iterative Prediction of Spring-Mass System
Claimed by kgiles7 2015
Edited by Richard Udall June 2019
The spring mass system is one of the classical examples of harmonic motion. The idealized case, where no forces except the spring force are acting upon the system, is the prototypical example of Simple Harmonic Motion. This page will explore less idealized cases, introducing damping, driving, and added gravitational force.
The Main Idea
Added complications bring the spring mass system much closer to a real system than the idealized system we have included before. Since we had to deal with the idealized system using iterative prediction, we will need to deal with this more complex situation using iterative prediction as well. Since our model presented in Fundamentals of Iterative Prediction with Varying Force is fairly general, adding these complications consists of adding new forces, and observing the resultant behaviors. These cases can also be explored analytically using differential equations, but doing so is outside of the scope of this class.
A Mathematical Model
The page Fundamentals of Iterative Prediction with Varying Force lays out the general methods of iterative prediction, but a brief recapitulation is provided here. he Momentum Principle provides a mathematical basis for the repeated calculations needed to predicts the system's future motion. The most useful form of this equation for predicting future motion is referred to as the momentum update form, and can be derived by rearranging the Momentum Principle as shown below:
[math]\displaystyle{ \Delta p = \vec{F}_{net}\Delta t }[/math]
[math]\displaystyle{ \vec{p}_{f} - \vec{p}_{i} = \vec{F}_{net}\Delta t }[/math]
[math]\displaystyle{ \vec{p}_{f} = \vec{p}_{i} + \vec{F}_{net}\Delta t }[/math]
[math]\displaystyle{ \vec{v}_{f} = \frac{\vec{p}_f}{m} }[/math]
[math]\displaystyle{ \vec{r}_{f} = \vec{r}_{i} + \vec{v}_{avg}\Delta t }[/math]
Damping
We know from our observations of a pendulum swinging or a spring bobbing that it's periodic motion eventually dies out. This results from dissipative forces present in our environment, such as friction or air resistance. The question of why these are called dissipative will become clear when we learn about Work/Energy, but sufficed to say that they will reduce the amount of motion in the system. A formal derivation of the equations of motion for a damped system will not be considered here, but it is very straightforward to add damping to our computational model. Whenever we calculate the net force on the mass during the iterative process, all we have to do now is add a dissipative force. For air resistance, the standard formula is
[math]\displaystyle{ \vec{F} = -\frac{CAρv^2\hat{v}}{2} }[/math]
More frequently though, when we talk about the damped harmonic oscillator, we will discuss this force[1] [2] :
[math]\displaystyle{ \vec{F} = -b\vec{v} }[/math]
where b is the damping constant. The important difference between the two is that in the latter the force has a linear relationship to [math]\displaystyle{ \vec{v} }[/math]. There are three types of damping, depending on the coefficient, and they are labelled by how quickly the system damps out (reaches equilibrium). If the coefficient is small relative to the mass and spring constant, then the oscillator will be under damped, and still have some oscillatory behavior. If it is large relative to the mass and spring constant, the oscillator will be over damped, meaning that there will be no oscillations, but the system will take longer to arrive at an equilibrium because it has been slowed down by the dissipation. The fastest time of decay is when the system is critically damped, which occurs when [math]\displaystyle{ b^2 = 4mk }[/math]. The figure below illustrates these three possibilities, and is generated using the numpy based code from the Computational Methods section below.
Gravity
Introducing gravity to our model of spring mass systems is fairly straightforward (actually solving for it is somewhat more complicated, and we will only do so with computational methods described below). One simply adds the standard gravitational force [math]\displaystyle{ F = mg }[/math] to the force equations one has already. The most important point is to always remember which way is down: if your spring is hung upside down, then you may have chosen to define the origin at the equilibrium point and [math]\displaystyle{ +x }[/math] as being the downward direction, in which case you must take care to ensure that the sign of gravity corresponds.
A Computational Model
By definition, iterative prediction requires repeated calculations. This is extremely tedious to do by hand, so it is greatly preferable to perform them with a computer. Two programs are presented which perform these calculations.
An implementation of iterative motion for a spring system which feels gravitational force is provided in VPython here. The operative portion of the code is copied in the collapsible below (note, if one wishes to use this code, it will be necessary to include the proper import statements, which may be found at the link).
A second implementation using Numpy may be found here.
Examples
Simple Example

The simplest example of a spring mass system is one that moves in only one-direction.
Consider a massless spring of length 1.0 m with spring constant 40 N/m. If a 10 kg mass is released from rest while the spring is stretched downward to a length of 1.5 m, what is it's position after 0.2 seconds? The mass oscillates vertically, as shown to the right.
Middling Example
Now let us consider the above scenario and introduce a dissipative force of [math]\displaystyle{ \vec{F}_d = -b\vec{v} }[/math], and set [math]\displaystyle{ b = 1 kg/s }[/math]. What will be the position at a time of [math]\displaystyle{ 0.2 s }[/math] now?
Difficult Example
This problem will use a numerical simulation such as those described in the Computational Methods section. The notebook includes the code snippets to work this solution, though it is also helpful to investigate the process of writing one's own code.
We will consider the case of the driven oscillator from a strictly numerical point of view (if you wish to see a more thorough description of the problem, the Feynman Lectures [3] sections 21-24 cover this entire topic in great detail). Consider a system with a mass of [math]\displaystyle{ 4 kg }[/math] attached to a spring with spring constant of [math]\displaystyle{ k = 100 N/m }[/math]. Assume that it is horizontal, such that gravity does not act upon it. Finally, introduce a force of the type [math]\displaystyle{ F = F_0 \cos(\omega_1 t) }[/math].
Now, consider a number of scenarios: note the behavior of the system, and describe in physical terms why this behavior occurs. Your thoughts should be guided by noticing key features such as the maximum amplitude, the time at which the maximum amplitude occurs, the rate at which amplitude changes, and whether there is any "wiggliness" that looks different from a normal oscillator.
- Set [math]\displaystyle{ b = 0 }[/math], [math]\displaystyle{ F_0 = 1 }[/math], [math]\displaystyle{ x_0 = 0 }[/math], and [math]\displaystyle{ \omega_1 = 5 Hz }[/math]
- Now, using the same parameters as above, set [math]\displaystyle{ x_0 = 1 }[/math]
- Using the same parameters from (2), now set [math]\displaystyle{ b = 2 }[/math]
- Using the same parameters from (3), set [math]\displaystyle{ F_0 = 2 }[/math]
- Using the same parameters from (4), set [math]\displaystyle{ \omega_1 = 4 Hz }[/math]
Connectedness
[A student should expand upon this section, following the Template]
While you may not need to precisely calculate the motion of spring-mass systems on a daily basis, understanding their behavior has led to the invention of many useful items. Among these are mattresses, clocks, and the suspension on cars.
However, the concept of iterative prediction applies to far more than masses on springs, as the concepts of physics apply far beyond textbook problems. By thinking in small enough time increments, the behavior of any system can be understood.
For example, in chemical engineering, entire processes can be broken down into simpler pieces and analyzed. These processes could then be modeled in order to predict future behavior.
History
The history of the spring mass system is essentially that of Hooke's law, as described in the article Simple Harmonic Motion, and repeated in part here. Thomas Hooke, an English scientist, discovered what is now known as Hooke's Law in 1660 while working on the springs of watches.[4] A remarkable physicist, Hooke was also a pioneer in optics, astronomy, and fluid mechanics. He supported a theory of evolution nearly two hundred years before Darwin (although he did not know about the principle of natural selection), devised the inverse square law which Newton adapted, and accurately described air as individual particles separated by large distances.[5] Solutions to the more complicated differential equations that describe the systems we looked at here are attributed to Leonhard Euler, Joseph Lagrange, and Jean D'Alembert, each a very influential mathematician [6].
See also
- Conservation of Momentum
- Predicting Change in multiple dimensions
- Impulse and Momentum
- Linear Momentum
- Momentum Principle
- Analytical Prediction
- Net Force
- Young's Modulus
- Tension
- Fundamentals of Iterative Prediction with Varying Force
- Simple Harmonic Motion
- Length and Stiffness of an Interatomic Bond
External links
Further Reading
- Matter and Interactions, 4th Edition
References
- ↑ https://ocw.mit.edu/courses/mathematics/18-03sc-differential-equations-fall-2011/unit-ii-second-order-constant-coefficient-linear-equations/damped-harmonic-oscillators/MIT18_03SCF11_s13_2text.pdf
- ↑ http://www.feynmanlectures.caltech.edu/I_24.html
- ↑ http://www.feynmanlectures.caltech.edu/I_toc.html
- ↑ https://www.britannica.com/science/Hookes-law
- ↑ https://www.britannica.com/biography/Robert-Hooke
- ↑ http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.112.3646&rep=rep1&type=pdf