Matlab simulation of Chua's circuit

Dimensionless Chua's circuit -- The animation on the left is taken directly from a visualization of a Chua's circuit simulation in Matlab after running for about 100 seconds and then rotated for viewing. This really gives you a good look at the double scroll attractor from all angles and makes the 3-dimensional nature of the output more visceral.

The code for this simulation [provided below] is functionally similiar to the Javascript code used in our HTML5 simulation. The parameters and initial conditions are the same. Also, like the HTML 5 simulation, the values for alpha and beta are abstract and do not correspond to any real circuit. Both use a set of solving functions to plot the points at each time step using Chua's equations. This Matlab simulation uses ODE45, a medium order method, for the calculations.

Matlab, of course, provides other tools for examining the scroll and attractors involved, as well as other ways of manipulating the view on the signal output.

Download Matlab Files [Dimensionless] ▼
MATLAB CODE

%----------Chua.m---------- function out = chua(t,in) x = in(1); y = in(2); z = in(3); alpha = 15.6; beta = 28; m0 = -1.143; m1 = -0.714; h = m1*x+0.5*(m0-m1)*(abs(x+1)-abs(x-1)); xdot = alpha*(y-x-h); ydot = x - y+ z; zdot = -beta*y; out = [xdot ydot zdot]';

%----------StartChua.m---------- [t,y] = ode45(@chua,[0 100],[0.7 0 0]); plot3(y(:,1),y(:,2),y(:,3)) grid

Realistic Chua's Circuit -- While a dimensionless model is what is most commonly used and referred to in academic literature, it is nontheless sometimes useful to deal with a more realistic model.

The animation above comes from a Matlab simulation of a Chua's circuit with non-dimensionless equations---that is, parts of the equation relate to actual physical components of the circuit and can be adjusted to simulate modifcations or the various components you might want to try. For example, we have modelled a saturated double scroll attractor below by adjusting the values for C1 and R.

In the associated code below you can see how each piece corresponds to the dynamics of the equations and easily modify them to see what changes occur in what conditions. It should be noted that this code is specifically for the diagram shown below (also on our diagram page) and would be different for other variations of the Chua's Circuit.

**Schematic of simulated circuit**

**Simulation of modified circuit showing saturation due to component value changes to C1 and R**

Download Matlab Files [True] ▼
MATLAB CODE

%----------RealChua.m---------- function out = RealChua(t,in) x = in(1); %v_1 y = in(2); %v_2 z = in(3); %i_L C1 = 10*10^(-9); %10nF C2 = 100*10^(-9); %100nF R = 1800; %1.8k Ohms G = 1/R; %Chua Diode************************************* R1 = 220; R2 = 220; R3 = 2200; R4 = 22000; R5 = 22000; R6 = 3300; Esat = 9; %9V batteries E1 = R3/(R2+R3)*Esat; E2 = R6/(R5+R6)*Esat; m12 = -1/R6; m02 = 1/R4; m01 = 1/R1; m11 = -1/R3; m1 = m12+m11; if(E1>E2) m0 = m11 + m02; else m0 = m12 + m01; end mm1 = m01 + m02; Emax = max([E1 E2]); Emin = min([E1 E2]); if abs(x) < Emin g = x*m1; elseif abs(x) < Emax g = x*m0; if x > 0 g = g + Emin*(m1-m0); else g = g + Emin*(m0-m1); end elseif abs(x) >= Emax g = x*mm1; if x > 0 g = g + Emax*(m0-mm1) + Emin*(m1-m0); else g = g + Emax*(mm1-m0) + Emin*(m0-m1); end end %end Chua Diode************************************* %Gyrator********************************* R7 = 100; %100 Ohms R8 = 1000; %1k Ohms R9 = 1000; %1k Ohms R10 = 1800; C = 100*10^(-9); %100nF L = R7*R9*C*R10/R8; %18mH %end Gyrator****************************** % Chua's Circuit Equations xdot = (1/C1)*(G*(y-x)-g); ydot = (1/C2)*(G*(x-y)+z); zdot = -(1/L)*y; out = [xdot ydot zdot]';

%----------StartRealChua.m---------- [t,y] = ode45(@RealChua,[0 0.05],[-0.5 -0.2 0]); plot3(y(:,1),y(:,2),y(:,3)) grid

All Rights Reserved ©

**Warning**: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in **/hermes/walnaweb01a/b2212/moo.englishttrcom/chua/matlabsim.php** on line **122**

2018 V. Siderskiy

www.chuacircuits.com

site design by R. Kroon

2018 V. Siderskiy

www.chuacircuits.com

site design by R. Kroon