Analyzing the µA741 Operational Amplifier

OP µA741

In this notebook an operational amplifier is analyzed step by step according to the symbolic analysis flow as presented in R. Sommer, M. Thole, E. Hennig, “A Generic Circuit Modeling Strategy Combining Symbolic and Numeric Analysis”, in Proc. 5th International Workshop on Symbolic Methods and Applications to Circuit Design (SMACD'98), Kaiserslautern, Oct. 1998. Symbolic analysis is applied to extract a symbolic formula which describes the dominant pole of the approximated transfer function. This executable notebook contains all Analog Insydes commands which were used for the derivation of the presented results.

Start with PSpice Circuit Analysis

Extract lower corner frequency of the voltage gain (without feedback) using PROBE:

Import Data from PSpice

Import Schematics

DXFGraphics["op_741.dxf", 
      
TextStyle  -> 
         {FontSize -> 10, FontColor  ->  RGBColor[1, 0, 0], 
          FontWeight -> "Bold"}, 
      
ColorList  -> 
         {RGBColor[0, 0, 0]}
];

Import Simulation Data

Analog Insydes' data reader is used to import the PSpice simulation data.

op741data  =  
      ReadSimulationData["op_741.csd", Simulator -> "PSpice"]

Vout741PSpice  =  "V(26)" /. First @ op741data;

Plot PSpice simulation data as Bode plot:

BodePlot[Vout741PSpice[f],  {f,  0.1,  1.*^6}];

Import Netlist

For the application of symbolic analysis, especially symbolic approximation, the next step is to generate a symbolic netlist including the numerical reference information. While the SPICE simulator input file (*.cir) only contains the numerical values of the elements the operating point information and the values for the small-signal parameters of the transistors have to be extracted from the simulator output file (*.out). This task is performed by the netlist translator ReadNetlist. The output is a netlist containing symbolic values for each network element as well as the corresponding numerical reference information.

\(op741\  = 
      ReadNetlist["op_741.cir", "op_741.out", 
        KeepPrefix -> False, Simulator -> "PSpice"]; 

    DisplayForm\ @\ op741\)

Ensure Validity of Models

Since the generated Analog Insydes netlist contains only generic model references for each transistor the corresponding device model definitions must be selected. Following we choose a simplified BJT small-signal model from the Analog Insydes model library by setting the option ModelLibrary -> "BasicModels`".

BJT simplified small-signal model

equationsAC741 = 
      CircuitEquations[op741, ModelLibrary -> "BasicModels`"]

A numerical reference simulation is performed applying the Analog Insydes function ACAnalysis in the frequency range of interest.

reference = ACAnalysis[equationsAC741,  {f,  0.1,  1.*^6}];

Next, a Bode plot of the transfer function generated by Analog Insydes and the simulation data read from PSpice is generated.

BodePlot[Evaluate[reference], {Vout741PSpice[f], V$26[f]}, 
       {f,  0.1,  1.*^6}, 
      TraceNames -> {"PSpice", "AnalogInsydes"}];

The curves fit perfectly in the frequency range of interest. Hence, the simplified PSpice model is sufficient for being used in the next step of the symbolic analysis flow.

Symbolic Approximation

Set up symbolic circuit equations of OPµA741 in sparse tableau formulation.

op741sta  =  
      CircuitEquations[op741,  ElementValues -> Symbolic,  
        Formulation  ->  SparseTableau, 
        ModelLibrary -> "BasicModels`"]

Estimate the number of symbolic terms in the transfer function without approximation.

ComplexityEstimate[op741sta] // N

Call equation-based approximation routine on the symbolic circuit equations of the OPµA741 circuit. To capture the first corner frequency appropriate design points are chosen at 1  Hz and at 10  Hz with a maximum error of 40% and 30% respectively.

op741approx   =  
      ApproximateMatrixEquation[op741sta,  V$R13, 
         {{s   ->  2.  π I 1. ,  MaxError  ->  0.4}, {
            s   ->  2.  π I 10. ,  
            MaxError  ->  0.3}}, CompressEquations -> True]

Solve for the output voltage (V$R13):

Vout741  =  
      V$R13  /.  First[Solve[op741approx,  V$R13]] // Simplify

Verification of the Result

Evaluate approximated result with numerical values:

Vout741N[s_]  =  
      Vout741  /.  GetDAEOptions[op741sta, DesignPoint]  //  Simplify

Plot approximated function together with unsimplified transfer function as Bode plot:

BodePlot[{Vout741PSpice[f],  Vout741N[2.  π I f]}, 
       {f,  0.1,  1.*^6}, 
      TraceNames -> {"Reference", "Approximation"}];

Extraction of Dominant Pole

Since the approximated transfer function fits fine with the unsimplified transfer function (see Bode plot) extract symbolic formula for dominant pole:

Solve[Denominator[Vout741] == 0, s] // Simplify

Interpretation of the Result

An interpretation of this formula shows that the intermediate stage with the BJTs Q16 and Q17 together with their resistors R8, Ro$Q131 (output resistance of Q131) and the compensation capacitor C1 dominate this first pole. The pole is also influenced by the output resistance of the first differential stage (Ro$Q4). Note, that this formula contains more information than formulas which can usually be found in text books, and also note that for the derivation of these text-books formulas tedious hand-calculations and a lot of circuit knowledge is necessary.

Initialization Cells

Read Mathematica package Analog Insydes:

Off[General::spell,  General::spell1];

\($NotebookDirectory = 
      ToFileName@
        First["FileName" /. NotebookInformation[EvaluationNotebook[]]]; 

    PrependTo[$Path, $NotebookDirectory]; \)

<< AnalogInsydes`;

SetDirectory[ToFileName[{$NotebookDirectory, "PSpice"}]];

SetOptions[{DXFGraphics, BodePlot}, 
      Background -> RGBColor[1, 1, 1]];

Copyright © 1998-2000 by ITWM e.V.

Analog Insydes
ITWM - Institut für Techno- und Wirtschaftsmathematik e.V.
Gottlieb-Daimler-Str.
D-67663 Kaiserslautern, Germany

Analog Insydes is a trademark of ITWM.
Mathematica is a registered trademark of Wolfram Research, Inc.
All other product names are trademarks of their respective owners.