The Chua chaotic oscillator

The chua oscillator is a well known chaotic oscillator. Below is a schematic for a Chua oscillator circuit:

The left half of the circuit simulates a non-linear negative resistance.
U1, R1, R2 and VR1 forms the negative resistance. The value of the negative resistance is -R1*VR1/R3.

D1, R3 and R4 are used to generate the positive half of the non-linearity. The voltage at which this kicks in is:

    Vt+ = 0.7 + Vcc*R3/(R3+R4)

In this case, it will be at approximately 1.7V.
The resistance of this network as seen through D1 can be calculated as R3*R4/(R3+R4).
The same equations can also be applied to D2, R5 and R6 which forms the negative non-linearity of the circuit, although all the signs should be inverted for the threshold voltage equation.

Between the positive and negative threshold voltages, only the negative resistance will be seen by the circuit. If the voltage moves out of this range, either D1 or D2 will start to conduct, which will insert a resistance parallel with the negative resistance, which will in effect decrease the negative resistance's value.

It is not that easy to build this circuit, the values are quite critical and it is not that easy to control any parameter via a computer. For this reason I have decided to write a computer simulation program for the Chua circuit. This program lets you adjust all the parameters, displays graphs in various formats, and it is also possible to save waveforms as .WAV files.

The parameters L, C1, C2, G are the linear parts of the circuit and represents L1, C1, C2 and VR2 in the schematic. Bp1, Bp2, m0, m1 and m2 are the parameters for the non-linear negative resistance. Bp1 and Bp2 are the negative and positive threshold points. m0 is the resistance if the voltage is below Bp1, m1 if the voltage is between the two thresholds, and m2 if the voltage is above Bp2.

Screenshot of the main screen of the program:

The yellow options are used to alter the circuit parameters.

The following set of screenshots displays graphs of Vc2 versus Vc1 for different values of C2. In the graph below the value of C2 is set to 0.4. At this point there is not enough gain in the circuit to sustain oscillation and the oscillation dies out.

In the graph below the value of C2 has been increased to 0.5 and the oscillation has built up into a stable oscillation.

In the graph below the value of C2 has been increased to 0.7 and the oscillator starts up much faster.

In the graph below the value of C2 is 1. In this graph chaotic oscillation started and the double scroll attractor can be seen clearly.

In the graph below the value of C2 has been increased further to 2.2.


The C source code for the program is available as chua.c

I have build the circuit based on the schematic at the top. Below is a photo of the circuit. I got the variable inductor coil out of an old TV's convergence circuit.

Below are some photos of the various waveforms achievable by adjusting the inductor (L1):




The X and Y-axis scales of the last image is double the scales of the other images.

 Back to main page