Parametric DC Analysis with Analog Insydes' Transient Solver

Introduction

In this notebook we will demonstrate a special application of Analog Insydes' transient solver NDAESolve. Since NDAESolve solves not only differential equations but also purely algebraic systems of equations and because the function does not care about the meaning of the independent variable (usually time t) we can use NDAESolve for parametric DC analysis. Parametric DC analysis means to calculate DC currents and voltages as functions of a circuit element as the element value is varied within a given interval. This will be illustrated by the following example.

Sizing a Bipolar Transistor Circuit

Assume that the transistor in the circuit shown below has an emitter area of 4(mil^2), a maximum forward current gain of  (Subscript[β, f]) =  100, a maximum reverse current gain of (Subscript[β, r])  =  0.2, a saturation current density of (Subscript[J, S]) = 6·(10^(-10))μA/(mil^2), and a forward Early voltage of Vaf = 50  V. The circuit operates at a temperature of 300K, the values of the supply voltage and the collector resistance are VCC = 12  V and RC = 4  kΩ. Using the Ebers-Moll DC transistor model, determine the value of the base resistance RB such that the DC collector-emitter voltage is VCC/2, i.e. V$3 = 6.0  V.

Bipolar Transistor Circuit

Netlist of the Circuit

As usual we begin by defining the necessary Analog Insydes netlist where we leave the value of RB symbolic, so we can later solve for this variable to obtain the value for which V$3=6  V.

\(BJTcircuit = 
\ \ 
      Circuit[
\ \ \ \ 
        Netlist[

          \ \ \ \ \ \ {VCC, \ {1, \ 0}, \ Type\  -> \ VoltageSource, \ 
            Value\  -> \ 12. }, 

          \ \ \ \ \ \ {RB, \ {1, \ 2}, \ Value -> RB, \ 
            Pattern -> Impedance}, 

          \ \ \ \ \ \ {RC, \ {1, \ 3}, \ 4000. }, 

          \ \ \ \ \ \ {Q1, 
            \ {3\  -> \ "C", \ 2\  -> \ "B", \ 
              0\  -> \ "E"}, Model\  -> \ "BJT", \ 
            Selector\  -> \ "Spice", Parameters -> "QNPN"}

          \ \ \ \ ], 
        
ModelParameters[Name -> "QNPN", 
          Type -> "NPN", BF\  -> \ 100. , \ BR\  -> \  .2, 
          \ IS\  -> \ 6.*^-16, AREA\  -> \ 4. , \ VAF -> 50. ]
          
\ \ ]; 
DisplayForm@BJTcircuit\)

Parametric DC Analysis

To calculate the correct value of RB we could simply set up a system of DC circuit equations, impose a constraint on V$3, and solve the equations numerically for RB (see Chapter 6 of the Analog Insydes Tutorial, Release 1.0). Here, we take a slightly different approach by setting up a system of circuit equations in terms of the parameter RB and computing the DC collector voltage V$3[RB] as RB is varied. Then we read off the resistor value for which V$3[RB] is 6  V from a graphical representation of the parametric analysis.

First, we set up a system of DC circuit equations. However, we use RB as the independent variable by specifying the option IndependentVariable -> RB.

\(parDCeqs = 
      CircuitEquations[BJTcircuit, \ AnalysisMode -> DC, \ 
        IndependentVariable -> RB]; 
DisplayForm@parDCeqs\)

Then we let NDAESolve compute the trajectories of the circuit's DC operating point as the value of the parameter RB is swept from 100  kΩ to 1  MΩ.

parDC = 
      NDAESolve[parDCeqs, {RB, 1.*^5, 1.*^6}, Protocol -> All]

Interpretation of the Results

Next, we plot the parametric transfer curve for V$3[RB]. The value for RB we want to determine is given by the x-coordinate of the curve's intersection with the 6  V line.

TransientPlot[parDC, {6, V$3[RB]}, {RB, 1.*^5, 1.*^6},  
      Frame -> True,  Axes -> False, GridLines -> Automatic];

To read off the resistor value more precisely we zoom in onto the interval \(TraditionalForm
      \`RB ∈ {
          \(800  kΩ\  ... \)\ 900  kΩ}\).

TransientPlot[parDC, {6, V$3[RB]}, {RB, 8.*^5, 9.*^5},  
      Frame -> True,  Axes -> False, GridLines -> Automatic];

It follows from the above plot that RB must have a value of approximately 835  kΩ. This can be verified easily by computing the corresponding DC solution using NDAESolve.

dcop = NDAESolve[parDCeqs,  {RB,  835.*^3}]

V$3  /.  First@dcop

Initialization Cells

Read Mathematica package Analog Insydes:

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

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

    PrependTo[$Path, $NotebookDirectory]; \)

<< AnalogInsydes`;

SetDirectory[$NotebookDirectory];

SetOptions[{TransientPlot}, 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.