Damped Harmonic Oscillator Driven by a Square Wave

U-drive: choose the F and w:

U-choose the damping and initial v:

 F0 =  Note: keep |F|<6 

 b =  Note: keep b positive 

 w =  Note: keep w<0 

v0 =  Note: keep |v|<12

Check this box to superimpose the force on the position graph

Once the box is selected/deselected you must reinitialize your choice.


1. The resonant frequency wo of the oscillator is 1.414, so the oscillations grow quickly at this driving frequency.  Looking simultaneously at the graphs of force and motion, it is clear that positive work is being done on the system at all the right times.

2. Students can be queried about other effective drive frequencies.  Typical answers are:

a. 2wo :  Here, work that is done during positive motion is exactly cancelled by work done during negative motion so the net energy input is 0.

b. wo / 2 : Once again, work done during positive motion exactly cancels work done during negative motion so the net energy input is 0.

c. 3wo :  Same as above.

d. wo / 3 : This one works because the first harmonic of a square wave at this frequency coincides with wo.  Note that, compared to driving at the resonant frequency wo, the amplitude of oscillations grows at 1/3 the rate because the amplitude of this harmonic is 1/3 as large as that of the fundamental.  This behavior can also be understood in the context of the work done: every 3 cycles, the force is applied during 2 positive 1/2 cycles and 1 negative 1/2 cycle, for a total of 1/3 the energy input when driven at the resonant frequency.

e. Students should now realize that the only effective drive frequencies are odd fractions of wo where the square wave has a harmonic at the resonant frequency of the oscillator.

3. A small amount of damping can be added to show how the work done by the resistive force in real oscillators eventually balances the input energy, yielding steady-state motion.

Reference: Jerry B. Marion and Stephen T. Thornton, Classical Dynamics of Particles and Systems (4th edition, 1995) p. 137-140.

* This demonstration was written by Tim Gfroerer and scripted by Mario Belloni.