This implements the differential equation of the canonical damped harmonic oscillator,

\[ \frac{dx^2}{dt^2} + (1-A) \frac{dx}{dt} + B x = 0 \]

First, it's turned into an integral equation, since integrators are better than differentiators for a number of reasons.

The damping term has gain 1-A, being implemented as a negative feedback resistor in parallel with an inverting transconductance amplifier -- effectively, a negative resistor -- so the parallel combination has an impedance near infinity, plus or minus. Ideally, neither would be necessary, but small errors due to the op-amps, and circuit parasitics, mean that one way or the other is necessary. Also, in a perfectly linear circuit, there would be no amplitude control whatsoever, so controlling this -- electronically via servo -- will be required to maintain stable output.

The gains are implemented using the venerable

*operational transconductance amplifier* (OTA) LM13700 (essentially the last of its kind -- hopefully it will still be around for a while!). This is operational in that the input is differential and the output is anywhere between the supply rails, but it's different from a conventional op-amp by having variable gain, and a constant current output (a Darlington follower is provided to optionally get a lower output impedance). It's implemented as a diff pair and a series of current mirrors, so you're really just using the gain of the input stage by itself -- and being a BJT pair, this gain has the form of a tanh function.

In practice, the OTA is quite nonlinear, only being reasonable for inputs of 10 or 20mV. (Pre-distortion diodes are also provided, which when biased, extend that range to maybe 30-50mV, at the expense of lower input impedance, and, obviously, a lot of input bias current.) This means the average gain drops somewhat at high amplitudes. Which provides a stabilization mechanism, in lieu of any amplitude servo. Downside, the waveform approximates a rounded off triangle wave, or its integral (a roundedier parabola wave).

The gain does indeed get ornery at low amplitudes, as we should expect from the linear case. That is, a very small turn of R6 causes the waveform to grow or decay quickly (in fractional seconds).

As measured by my Tek 460, captured via

GPIB:

Quantization noise aside, that's not a bad circle! A bonus of this type of oscillator is its quadrature outputs.

Tim