SPICE OPUS
Author: Faculty of Electircal Engineering, Ljubljana, Slovenia / Template design: G. Wolfgang
Description: SPICE OPUS -- A SPICE engine for OPtimization UtilitieS
Keywords: analog circuit simulation, spice, opus, analog circuit optimization

- Home
- Contact

››› Screenshot

THE SLIDE RULE OF SILICON DESIGN

Free Analog Circuit Simulation

- About
- License
- Release
- Download
- Documentation
- Links

- Menu
- About
- License
- Release
- Download
- Linux
- Windows
- Documentation
- Links

Active Low-pass RC Filter

The circuit

Let us consider the optimisation of the active low-pass RC filter. We will use the Hooke-Jeeves's and constrained simplex optimisation methods. The circuit topology is shown in the figure below.

The filter is built around three standard operational amplifiers UA741. All capacitances are set to the same value of 2.7nF. The values of all resistances are left undetermined and are subject to optimisation process.

Here is the netlist of the circuit (part of active_low-pass_rc_filter.cir file):

    *** active low-pass rc filter ***

    vcc 12 0 dc 15V
    vee 14 0 dc -15V
    vin 1 0 dc 0 ac 1V 0

    r01 20 1 50k
    r02 20 3 500k
    r03 3 4 2.5k
    r04 3 5 250k
    r05 5 7 500k
    r06 6 9 50k
    r07 4 0 50
    r08 8 9 500
    r09 9 25 500
    r10 10 8 250k
    r11 25 0 500
    r12 10 15 250k
    r13 17 11 50k
    r14 16 11 50
    r15 11 0 2.5k

    c01 20 3 2.7nF
    c02 5 9 2.7nF
    c03 7 6 2.7nF
    c04 4 6 2.7nF
    c05 10 11 2.7nF
    c06 15 17 2.7nF
    c07 25 17 2.7nF

    x1 0 20 3 12 14 ua741
    x2 7 8 8 12 14 ua741
    x3 15 16 16 12 14 ua741

    .subckt ua741 11 5 4 6 2
      vof 5 10 dc 1mV

      ibn 5 0 dc 100nA
      ibp 11 0 dc 80nA

      r1 7 1 5k
      r2 8 7 50k
      rid 10 11 200k
      rin 5 0 10meg
      rip 0 11 10meg
      rl1 3 4 1k
      ro 3 0 75
      rp 2 6 10k
      rxx 0 2 10meg

      c1 7 0 13pF
      c2 8 3 2.7pF
      cin 5 0 1.4pF
      cip 11 0 1.4pF
      cl1 4 0 3pF

      l1 3 4 30uH

      ea 1 0 10 11 1

      ga 3 0 8 0 2700S
    .ends

    .end

The cost function is defined by the boundaries in the figure above. We tolerate a 0.5dB ripple, further we demand at least 60dB damping and a don't care band is from 750Hz to 1.35kHz. At the same time we would like to have at least 20dB gain at low frequencies. So we are looking for the resistances r1 to r15, which will give the most appropriate frequency response. We set the explicit constraints of the all resistances to:

10kW < r1 < 100kW
100kW < r2 < 1MW
500W < r3 < 5kW
50kW < r4 < 500kW
100kW < r5 < 1megW
10kW < r6 < 100kW
10W < r7 < 100W
100W < r8 < 1kW
100W < r9 < 1kW
50kW < r10 < 500kW
100W < r11 < 1kW
50kW < r12 < 500kW
10kW < r13 < 100kW
10W < r14 < 100W
500W < r15 < 5kW

Now we have to mathematically define the cost function. Its value has to increase with ripple greater than 0.5dB, damping less than 60dB and gain less than 20dB.

There are no implicit constraints, so all we have to do is to run the optimisation process and wait for the results. The optimisation is carried out by four optimize commands. Therefore four optimisation runs using Hooke-Jeeves's and constrained simplex optimisation methods alternately are performed. Each time the following optimisation run uses the best point found in the previous run as an initial point. Finally the circuit with cost function value 0.36 is obtained. That means that not all the requests determined by the cost function were fulfilled. Our optimised filter has 0.52dB ripple, 59.8dB damping and 20dB gain. The figure below shows the ac responses of the initial and optimised circuit.