Sprott Systems Circuits

Back to Home page

This webpage documents my endeavour to formulate and build an operational electrical analogue for each of the eighteen chaotic, autonomous dissipative systems of ordinary differential equations originally found by Sprott, J.C. (1994, Some simple chaotic flows, Phys. Rev. E 50, pp. R647-650). I had originally discovered the equations in the authors book, Elegant Chaos, and have since found that Clint also documents these systems on a personal webpage found here.

I do not wish to plagiarize the work of another, but an appropriately brief repeat of what has already been written will suffice for introductory purposes here. The systems in question are all three-dimensional and are algebraically simpler than the famous Lorenz and Rössler systems, which were for some time considered to be the simplest examples of autonomous dissipative systems of ordinary differential equations with chaotic solutions.

Each system electrical analogue was constructed on solder-less breadboard after idealized verification in SPICE. For each system a simplified schematic diagram of the circuit is provided, along with oscilloscope screen photos of various 2-dimensional plane views. For each system I also produced a video of a 3-dimensional projective view, showing continuous rotation about a single axis. In the case of all videos the y axis is plotted vertically and the seemingly alive, chaotic object on display rotates in the x-z plane about the y axis pointed vertically.

My inspiration for the production of these videos comes from Sprott's own GIF animations. These displays were produced with the aid of my my three-dimensional projective unit, with a temporary modification to the microcontroller firmware. I modified the code such that the front panel potentiometers are ignored and instead the angle of rotation about the x axis remains fixed while the angle of rotation about the y axis continuously rotates zero through 360 degrees at a fixed and steady rate.

This endeavour is just an exercise in translating and scaling systems of differential equations into electrical analogues. While the equations are quite simple and only a few actually needed to be scaled, it is still an exercise not completely without worth because this kind of stuff doesn’t become second nature without some degree of rote repetition. Well, OK, there’s all of that and of course the fact that it is actually quite satisfying to see these complex, animated systems come alive on the oscilloscope screen after plugging in all of the wires.

In all cases the multiplier(s) used are AD633 and the op-amps are AD711.


Case B

dx/dt = yz, dy/dt = x-y, dz/dt = 1-xy

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case C

dx/dt = yz, dy/dt = x-y, dz/dt = 1-x2

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case D

dx/dt = -y, dy/dt = x+z, dz/dt = xz+3y2

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case E

dx/dt = yz, dy/dt = x2-y, dz/dt = 1-4x

Horizontal = x, Vertical = y

Case F

dx/dt = y+z, dy/dt = -x+0.5y, dz/dt = x2-z

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case G

dx/dt = 0.4x+z, dy/dt = xz-y, dz/dt = -x+y

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case H

dx/dt = -y+z2, dy/dt = x+0.5y, dz/dt = x-z

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case I

dx/dt = -0.2y, dy/dt = x+z, dz/dt = x+y2-z

Horizontal = x, Vertical = y

Case J

dx/dt = 2z, dy/dt = -2y+z, dz/dt = -x+y+y2

Left image: Horizontal = x, Vertical = y | Right image: Horizontal = x, Vertical = z

Case K

dx/dt = xy-z, dy/dt = x-y, dz/dt = x+0.3z

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

-3 periodic window found by adjusting system parameters

Case L

dx/dt = y+3.9z, dy/dt = 0.9X2-y, dz/dt = 1-x

Left image: Horizontal = x, Vertical = y | Right image: Horizontal = x, Vertical = z

Case M

dx/dt = -z, dy/dt = -x2-y, dz/dt = 1.7+1.7x+y

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case N

dx/dt = -2y, dy/dt = x+z2, dz/dt = 1+y-2z

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case O

dx/dt = y, dy/dt = x-z, dz/dt = x+xz+2.7y

Left image: Horizontal = x, Vertical = y | Right image: Horizontal = y, Vertical = z

Case P

dx/dt = 2.7y+z, dy/dt = -x+y2, dz/dt = x+y

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Case Q

dx/dt = -z, dy/dt = x-y, dz/dt = 3.1x+y2+0.5z

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Error announcement: I got a sign the wrong way around in this analogue. This escaped my attention because the constructed system still remained valid, producing an attractor very similar to that of the correct System Q. See my Self-Programming Analog Computer For Chaotic Sprott Systems for the correct implementation.

Thanks to Robert R. Fenichel for noticing this mistake.


Case R

dx/dt = 0.9-y, dy/dt = 0.4+z, dz/dt = xy-z

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z

Left image: Chaotic oscillation on the other side of the -3 periodic window | Right image: Oscillation in the -3 periodic window

Case S

dx/dt = -x-4y, dy/dt = x+z2, dz/dt = 1+x

Left image: Horizontal = x, Vertical = y | Center image: Horizontal = x, Vertical = z | Right image: Horizontal = y, Vertical = z