Robert Boyd Node List Analysis Mathcad
-
Upload
sarathkumar-senthilvel -
Category
Documents
-
view
400 -
download
34
description
Transcript of Robert Boyd Node List Analysis Mathcad
Node ListToleranceAnalysisEnhancing SPICE
Capabilitieswith Mathcad
Other Related Titles of Interest Include:
Tolerance Analysis of Electronic Circuits Using MATLABRobert R. Boyd, University of California, Irvine, CaliforniaISBN: 0849322766
Tolerance Analysis of Electronic Circuits Using MATHCADRobert R. Boyd, University of California, Irvine, CaliforniaISBN: 0849323398
The Electronics Handbook, Second EditionJerry Whitaker, Technical Press, Morgan Hill, CaliforniaISBN: 0849318890
PSPICE and MATLAB for Electronics: An Integrated ApproachJohn O. Attia, Prairie View A&M University, TexasISBN: 0849312639
Electronics and Circuit Analysis Using MATLAB, Second EditionJohn O. Attia, Prairie View A&M University, TexasISBN: 0849318920
7028_C000.fm Page ii Thursday, January 19, 2006 11:05 AM
Node ListToleranceAnalysis
A CRC title, part of the Taylor & Francis imprint, a member of theTaylor & Francis Group, the academic division of T&F Informa plc.
Boca Raton London New York
Enhancing SPICECapabilities
with Mathcad
Robert R. Boyd
Published in 2006 byCRC PressTaylor & Francis Group 6000 Broken Sound Parkway NW, Suite 300Boca Raton, FL 33487-2742
© 2006 by Taylor & Francis Group, LLCCRC Press is an imprint of Taylor & Francis Group
No claim to original U.S. Government worksPrinted in the United States of America on acid-free paper10 9 8 7 6 5 4 3 2 1
International Standard Book Number-10: 0-8493-7028-0 (Hardcover) International Standard Book Number-13: 978-0-8493-7028-1 (Hardcover) Library of Congress Card Number 2005052136
This book contains information obtained from authentic and highly regarded sources. Reprinted material isquoted with permission, and sources are indicated. A wide variety of references are listed. Reasonable effortshave been made to publish reliable data and information, but the author and the publisher cannot assumeresponsibility for the validity of all materials or for the consequences of their use.
No part of this book may be reprinted, reproduced, transmitted, or utilized in any form by any electronic,mechanical, or other means, now known or hereafter invented, including photocopying, microfilming, andrecording, or in any information storage or retrieval system, without written permission from the publishers.
For permission to photocopy or use material electronically from this work, please access www.copyright.com(http://www.copyright.com/) or contact the Copyright Clearance Center, Inc. (CCC) 222 Rosewood Drive,Danvers, MA 01923, 978-750-8400. CCC is a not-for-profit organization that provides licenses and registrationfor a variety of users. For organizations that have been granted a photocopy license by the CCC, a separatesystem of payment has been arranged.
Trademark Notice: Product or corporate names may be trademarks or registered trademarks, and are used onlyfor identification and explanation without intent to infringe.
Library of Congress Cataloging-in-Publication Data
Boyd, Robert (Robert R.)Node list tolerance analysis : enhancing SPICE capabilities with Mathcad/ Robert R. Boyd.
p. cm.Includes bibliographical references and index.ISBN 0-8493-7028-0 (alk. paper)1. Electric circuits, Linear. 2. Analog electronic systems. 3. Electric circuit analysis. 4. Tolerance
(Engineering) 5. Mathcad. 6. SPICE (Computer file)
TK454.B66 2006621.3815--dc22 2005052136
Visit the Taylor & Francis Web site at http://www.taylorandfrancis.com
and the CRC Press Web site at http://www.crcpress.com
Taylor & Francis Group is the Academic Division of Informa plc.
7028_Discl.fm Page 1 Thursday, January 12, 2006 3:09 PM
Preface
The purpose of this book is to provide an improved SPICE-like, worst-case analysis(WCA) capability using Mathcad. To achieve more accurate WCA methods, aSPICE-like netlist or node list method of nominal circuit analysis was developedfirst. Subprogram routines were then added to perform tolerance analyses usingRoot-Sum-Square (RSS), Extreme Value Analysis (EVA), and Monte Carlo Analysis(MCA) in the DC, frequency, and time domains.
Note that “SPICE” is a generic term referring to the public domain softwaredeveloped by the University of California–Berkeley in the early 1980s. Severalcompanies were started after converting the Fortran code to C and adding a graphicsinterface. These commercial versions are very capable in nominal circuit analysisand, correspondingly, expensive.
There are many areas in SPICE WCA that range from nonexistent or weakcapability to erroneous analyses. Most if not all of these deficiencies still exist inmany commercial versions. These areas are:
• A 400-sample Monte Carlo limitation — not nearly enough for adequatestatistical confidence levels
• No RSS capability• No direct method of handling asymmetric component tolerances, e.g.,
+2%, 4%• No Fast Monte Carlo Analysis (FMCA) capability*• No single-run method of tolerancing inputs• No direct method of detecting nonmonotonic components, which cause
erroneous WCA outputs• No AC frequency sweep sensitivity capability• No predefined beta (skewed) or bimodal (gapped) distributions available
for MCA
In addition, the SPICE random number generator used for MCA repeatedlysupplies the same set of random numbers with each analysis run. To correct this, anew seed must be supplied before each new run. (This is equivalent to having thesame 20 numbers come up every time in a Las Vegas keno game.) Some commercialversions may have improved a few of these areas, as most companies want to makea good product better.
All of these deficiencies have been addressed and corrected in the suppliedMathcad software on the CD and demonstrated using many examples in this book.For example, the number of Monte Carlo samples is now limited only by the amount
*
Boyd, R.,
Tolerance Analysis of Electronic Circuits Using Mathcad
, CRC Press, Boca Raton, FL, 1999,p. 87.
7028_C000.fm Page v Thursday, January 19, 2006 11:05 AM
of memory on the computer platform used. Those readers knowledgeable in statisticsknow that in Monte Carlo analysis, more is better.
It is the author’s hope that this book will provide a much less expensive andmore accurate method of performing tolerance analysis of electronic circuits.
7028_C000.fm Page vi Thursday, January 19, 2006 11:05 AM
The Author
Robert R. Boyd was a technical instructor in the United States Air Force for 19years. Upon his retirement in 1971, he enrolled at the University of New Mexicoand received a B.S.E.E. degree with honors in 1974. He was subsequently employedin the aerospace industry, including 8 years with Hughes Aircraft Co., in analogcircuit design until 1993 and as a consultant until 2002. He taught courses intolerance analysis at the University of California Extension, Irvine, in 1998 and 1999.
He has authored two books,
Tolerance Analysis of Electronic Circuits UsingMATLAB
and
Tolerance Analysis of Electronic Circuits Using Mathcad
, both pub-lished by CRC Press in 1999.
7028_C000.fm Page vii Thursday, January 19, 2006 11:05 AM
This page intentionally left blank
Acknowledgments
I would like to give my thanks and credit to the following people at Taylor &Francis/CRC Press:
Engineering Editor, Nora Konopka – for her successful presentation of mymanuscript to the publishing committee and for pleasant email “conversation.”
Editorial Project Development Manager, Helena Redshaw – for her patience anddiligence in guiding me and the book material through to production.
Associate Editor, Allison Taub – for smoothing out the rough spots and helpingwith the reviews.
Project Editor, Amber Stein – for putting up with my frequent changes to themanuscript.
They have all been easy to communicate with and helped make the work ofwriting this book less painful than it would have otherwise been; and all this in spiteof several hurricanes!
Robert Boyd
Placerville, CA
7028_C000.fm Page ix Thursday, January 19, 2006 11:05 AM
This page intentionally left blank
Table of Contents
PART I
Nominal Analysis
Chapter 1 Introduction
........................................................................................3
1.1 Nominal Analysis .............................................................................................31.1.1 Introduction ..........................................................................................31.1.2 The NDS Method of Nominal Circuit Analysis..................................41.1.3 General Guidelines...............................................................................5
1.2 Introduction to Node List Circuit Analysis .....................................................61.2.1 Rules and Definitions...........................................................................6
Chapter 2 Passive Circuits
...................................................................................9
2.1 Introduction to Node List Circuit Analysis (Part One)...................................92.2 Introduction to Node List Circuit Analysis (Part Two).................................162.3 All-Capacitive Circuit ....................................................................................212.4 All-Inductive Circuit ......................................................................................232.5 Twin-T RC Network ......................................................................................242.6 Broadband Pulse Transformer Model............................................................272.7 All-Capacitive Loops (ACL)..........................................................................302.8 All-Inductive Cutsets (ICS) ...........................................................................312.9 All-Capacitive Loop Example .......................................................................32References................................................................................................................34
Chapter 3 Controlled Sources
...........................................................................35
3.1 Controlled (Dependent) Sources....................................................................353.1.1 Voltage-Controlled Current Source (VCCS) .....................................353.1.2 Current-Controlled Current Source (CCCS) .....................................353.1.3 Voltage-Controlled Voltage Source (VCVS) .....................................353.1.4 Current-Controlled Voltage Source (CCVS) .....................................363.1.5 CCVS to VCVS .................................................................................363.1.6 CCCS to VCCS..................................................................................363.1.7 Four Rules that Must be Observed....................................................37
3.2 Floating VCVS...............................................................................................383.3 Circuits with M > 1 .......................................................................................413.4 First-Order MOSFET Model .........................................................................443.5 VCVS and CCCS Example ...........................................................................463.6 Two Inputs, Three Outputs ............................................................................50
7028_C000.fm Page xi Thursday, January 19, 2006 11:05 AM
3.7 Third-Order Opamp Model............................................................................543.8 A Subcircuit Scheme .....................................................................................563.9 Subcircuit Opamp Model...............................................................................583.10 Fifth-Order Active Filter ................................................................................593.11 State Variable Filter........................................................................................603.12 Seventh-Order Elliptical Low-Pass Filter......................................................63
3.12.1 Stepping One Resistor Value .............................................................683.12.2 Stepping All Seven Capacitor Values ................................................71
3.13 Square Root of Frequency (+10 dB/decade) Circuit ....................................743.14 HV (200 V) Shunt MOSFET Regulator........................................................763.15 LTC 1562 Band-Pass Filter IC in a Quad IC................................................783.16 LTC 1562 Quad Band Filter IC.....................................................................793.17 BJT Constant Current Source — A Simple Linear Model Using the
NDS Method ..................................................................................................873.18 uA733 Video Amplifier..................................................................................89References................................................................................................................95
Chapter 4 Leverrier’s Algorithm
......................................................................97
4.1 Numerical Transfer Function [1] ...................................................................974.2 Transfer Function Using Leverrier’s Algorithm for Twin-T
RC Network ..................................................................................................100References..............................................................................................................101
Chapter 5 Stability Analysis
............................................................................103
5.1 Unity Gain Differential Amplifiers..............................................................1035.2 Stability of LM158 Opamp Model..............................................................1065.3 High-Voltage Shunt Regulator — Stability Analysis..................................109
Chapter 6 Transient Analysis
..........................................................................115
6.1 Introduction ..................................................................................................1156.2 Switched Transient Analysis........................................................................1186.3 N = 2 Switched Circuit Transient Response ...............................................1206.4 Comparator 100-Hz Oscillator.....................................................................1236.5 Transient Analysis of Pulse Transformer ....................................................1276.6 Passive RCL Circuit Transient Analysis......................................................1316.7 Mathcad’s Differential Equation Solvers.....................................................1336.8 A Mathematical Pulse Width Modulator (PWM) .......................................1356.9 Switching Power Supply Output Stage — Buck Regulator .......................1376.10 State Space Averaging..................................................................................1406.11 Simple Triangular Waveform Generator......................................................1436.12 Quadrature Oscillator ...................................................................................1456.13 Wein Bridge Oscillator ................................................................................148References..............................................................................................................149
7028_C000.fm Page xii Thursday, January 19, 2006 11:05 AM
Chapter 7 DC Circuit Analysis
.......................................................................151
7.1 Resistance Temperature Detector (RTD) Circuit ........................................1517.2 An Undergraduate EE Textbook Problem...................................................152
7.2.1 Matrix Solution To Demonstrate the Utility of the NDS Method ....................................................................................153
7.3 DC Test Circuit ............................................................................................1547.4 Stacking VCVS’s and Paralleling VCCS’s..................................................1587.5 DC Voltage Sweep (RTD Circuit) ...............................................................1597.6 RTD Circuit — Step Resistor Value............................................................1617.7 Floating 5-V Input Source ...........................................................................164
Chapter 8 Three-Phase Circuits
.....................................................................167
8.1 Convert
∆
Floating Voltage Inputs to Single-Ended Y Inputs ....................1678.2 Three-Phase NDS Solution..........................................................................170
8.2.1 Unbalanced Delta Load — Single-Ended Inputs on A and B ............................................................................................170
8.2.2 Unbalanced Delta Load — Single-Ended Inputs on A and C ............................................................................................172
8.3 Three-Phase Y — Unbalanced Load ...........................................................1748.4 Three-Phase Y-Connected Unbalanced Load — Floating
Delta Input....................................................................................................1778.5 Balanced Y- Load.........................................................................................181References..............................................................................................................186
Appendix I
............................................................................................................187Background Theory of NDS Method....................................................................187A-I.1 Theory of NDS Method...............................................................................196
A-I.1.1 An AC Floating VCVS ..................................................................199A-I.1.2 VCVS and CCCS...........................................................................203
PART II
Tolerance Analysis
Chapter 9 Introduction
....................................................................................211
9.1 Introduction ..................................................................................................2119.1.1 Tolerance Analysis of Circuits with Discrete Components ............2119.1.2 Analysis Methods.............................................................................212
9.2 Some Facts about Tolerance Analysis .........................................................2129.2.1 DC Analysis .....................................................................................212
9.2.1.1 Monte Carlo Analysis .......................................................2139.2.2 AC Analysis .....................................................................................2139.2.3 Transient Analysis ............................................................................217
7028_C000.fm Page xiii Thursday, January 19, 2006 11:05 AM
9.2.4 Asymmetric Tolerances....................................................................217References..............................................................................................................217
Chapter 10 DC Circuits
.....................................................................................219
10.1 Resistance Temperature Detector (RTD) Circuit......................................21910.2 A Note on Asymmetric Tolerances...........................................................22110.3 Centered Difference Approximation — Sensitivities ...............................22210.4 RTD Circuit Monte Carlo Analysis (MCA) .............................................22410.5 RTD MCA with R4 Tolerance = 10%......................................................22610.6 RTD Circuit Fast Monte Carlo Analysis (FMCA)...................................22710.7 A CASE FMCA Greater than EVA......................................................... 22810.8 Tolerancing Inputs.....................................................................................23110.9 Beta Distributions [4–6]............................................................................23210.10 RTD MCA — Beta (Skewed) Distribution ..............................................23410.11 MCA of RTD Circuit using Bimodal (Gapped)
Distribution Inputs.....................................................................................236References..............................................................................................................239
Chapter 11 AC Circuits
.....................................................................................241
11.1 Circuit Output vs. Component Value........................................................24111.2 Exact Values of C1 Sensitivity .................................................................24711.3 Multiple-Output EVA................................................................................24811.4 Butterworth Low-Pass Filter Circuit.........................................................25011.5 Butterworth Low-Pass Filter MCA...........................................................25111.6 Butterworth Low-Pass Filter EVA ............................................................25311.7 Butterworth Low-Pass Filter FMCA ........................................................25411.8 Multiple-Feedback Band-Pass Filter (BPF) Circuit ................................25511.9 Multiple-Feedback BPF MCA..................................................................25611.10 Multiple-Feedback BPF EVA ...................................................................25711.11 Multiple-Feedback BPF FMCA................................................................25911.12 Switching Power Supply Compensation Circuit .....................................26011.13 Switching Power Supply Compensation MCA ........................................26111.14 Switching Power Supply Compensation EVA..........................................26211.15 Switching Power Supply Compensation FMCA......................................26411.16 Sallen and Key Band-Pass Filter (BPF) Circuit .......................................26511.17 Sallen and Key BPF MCA........................................................................266
11.17.1 Sallen and Key BPF — MCA with both Common and Precision Tolerances ...................................................................267
11.18 Sallen and Key BPF EVA.........................................................................26811.19 Sallen and Key BPF FMCA .....................................................................27011.20 State Variable Filter Circuit .....................................................................27111.21 State Variable Filter MCA ........................................................................272
7028_C000.fm Page xiv Thursday, January 19, 2006 11:05 AM
11.22 State Variable Filter EVA..........................................................................27311.23 State Variable Filter FMCA and MCA Combined...................................27511.24 High-Q Hum Notch Filter Circuit ...........................................................27611.25 High-Q Hum Notch Filter MCA ..............................................................27811.26 High-Q Hum Notch Filter EVA................................................................27911.27 High-Q Hum Notch Filter FMCA ............................................................28011.28 LTC 1562 MCA ........................................................................................28111.29 LTC 1562 EVA..........................................................................................282References..............................................................................................................284
Chapter 12 Transient Tolerance Analysis
........................................................285
12.1 Transient MCA — Twin-T RC Network ...................................................28512.2 Transient MCA — Multiple Feedback BPF ...............................................28612.3 AC and Transient MCA — Bessel HPF .....................................................28812.4 Transient MCA — State Variable Filter......................................................291
Chapter 13 Three-Phase Circuits
....................................................................295
13.1 Three-Phase Y-Connected Unbalanced Load MCA....................................29513.2 Three-Phase Y-Connected Unbalanced Load EVA .....................................29713.3 Three-Phase Y-Connected Unbalanced Load FMCA..................................300
Chapter 14 Miscellaneous Topics
......................................................................303
14.1 Components Nominally Zero.......................................................................30314.2 Tolerance Analysis of Opamp Offsets .........................................................30514.3 Best-Fit Resistor Ratios ...............................................................................30914.4 Truncated Gaussian Distribution .................................................................31114.5 LTC1060 Switched Capacitor Filter ............................................................313
14.5.1 Design Procedure from the Data Sheet ...........................................313
Appendix II
...........................................................................................................319Summary of Tolerance Analysis Methods ............................................................319
DC ................................................................................................................319AC.................................................................................................................319Transient .......................................................................................................319
Table of Subprograms............................................................................................320Part I Nominal Analysis Subprograms .......................................................320Part II Tolerance Analysis Subprograms (Used with Part I
Subprograms) ..................................................................................320In Case of Difficulty..............................................................................................320Abbreviations .........................................................................................................321
Index
......................................................................................................................323
7028_C000.fm Page xv Thursday, January 19, 2006 11:05 AM
This page intentionally left blank
TO MY WIFE LINDA
Forever and Always
7028_C000.fm Page xvii Thursday, January 19, 2006 11:05 AM
This page intentionally left blank
Part I
Nominal Analysis
7028_S001.fm Page 1 Thursday, January 12, 2006 9:16 AM
This page intentionally left blank
3
1
Introduction
1.1 NOMINAL ANALYSIS
The features of this analysis are:
• Loop or nodal analysis math is not required. It uses SPICE-like node lists.• All four types of controlled (dependent) sources can be used.• It has DC and AC multiple-input-multiple-output (MIMO) capability.
• Maximum number of inputs: 10• Maximum number of outputs: No limit (all circuit nodes)
• Transient (time-domain) analysis.• Three-phase circuit analysis.• DC, AC, three-phase, and transient tolerance analysis methods (discussed
in Part II).
1.1.1 I
NTRODUCTION
Using state space methods, the circuit DC, AC, and transient response can all beobtained from the same initial analysis. Hence, there is an economy of effort thatmakes it worthwhile to learn state space techniques. However, conventional statespace methods require an inordinate amount of circuit analysis algebra. This bookshows a SPICE-like method for creating state space arrays with minimal effort. Thenumerical transfer function can also be a part of the solution using Leverrier’salgorithm.
Hence, this method eliminates the algebra required for conventional circuitanalysis techniques as taught in some undergraduate electrical engineering curricu-lums. The simple procedure entails creating node lists directly from the schematic,very much similar to early commercial versions of SPICE. This original method iscalled
node
list DC superposition
(NDS).The purpose of presenting this material in Part I is to provide easy SPICE-like
analysis methods for the working engineer if SPICE is not available owing to networkdowntime, network queuing (owing to limited site licenses), or, as sometimes hap-pens in smaller companies, simply has not been purchased.
Circuits of at least medium complexity can be simulated. (See Section 3.15 fora circuit with a component count of 68.)
The primary goal, however, is to demonstrate correct tolerance analysis methods(Part II). The prerequisite nominal circuit analysis NDS method along with numerousexamples is covered in Part I.
7028_C001.fm Page 3 Thursday, January 12, 2006 9:17 AM
4
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
1.1.2 T
HE
NDS M
ETHOD
OF
N
OMINAL
C
IRCUIT
A
NALYSIS
It is assumed that electrical engineers are somewhat familiar with matrix analysisand state space methods; hence, the introductory material is not extensive. Familiaritywith these subjects and Mathcad is necessary.
As previously stated, a big advantage of state space analysis is that the DCoutput, AC frequency response, transient response, and circuit transfer function(using Leverrier’s algorithm) can all be obtained from one initial analysis.
Another advantage is that state space matrices or arrays are real, not complex.Complex matrices obtained from loop or nodal analysis require a real array twice thesize of a complex array to obtain a solution. Hence, state space methods decreaseexecution time for large arrays and increase solution accuracy. This becomes apparentwhen it is recalled that the number of arithmetic operations required to find a deter-minant is directly proportional to N!, where N is the dimension of the square array.
The matrix equations used in state space analysis are
where A, B, D, E, and G are arrays; x, a column vector of the state variables; u, acolumn vector of inputs; and y, the output. In most analyses, array G is a null (zero)array. (For an example using the G array, see Section 12.3.) Taking the Laplacetransform of the first equation and substituting in the second gives the followingwith G = 0:
y = D(sI – A)
–1
Bu + Eu
where I is an identity matrix. In the NDS method, the input u is included
in B andE so that
y = D(sI – A)
–1
B + E
The “state variables” are the capacitor voltages and inductor currents. Using Nas the order of the circuit (number of L’s and/or C’s), M as the number of inputs,and K as the number of outputs, the arrays have the following dimensions (in rowcolumn format):
Array Rows Columns
A N NB N MD K NE K MG K Nx N 1u M 1I N N
dxdt
Ax Bu y Dx Eu Gdxdt
= + = + +,
7028_C001.fm Page 4 Thursday, January 12, 2006 9:17 AM
Introduction
5
Using dimensional notation, row col, y is K NN NN M + K M =K M. Then, y is a transfer matrix with the dimensions K M or output input
Note that in multiplying matrices, the inner dimensions in row col order mustbe the same. That is, if A is N N and B is N M, they cannot be multiplied asBA because N MN N, the inner dimensions, do not match. But they can bemultiplied as AB = N NN M. The dimension of the product is the outsidedimensions of both, i.e., N M. Hence, the dimension of the product K NNNN M is K M, which can be added to E = K M (The two arrays are thensaid to be “conformable” for multiplication if the inner dimensions are the same,and they are conformable for addition if the dimensions are equal.)
1.1.3 G
ENERAL
G
UIDELINES
The SPICE node list text format is
Ref Desig
From node To nodeComponent value
. An example would be
R3 6 9 10K
. The node lists usedin the NDS method are arrays of the form
[From node To node Ref Desig]
,the component value having been specified prior to node list creation.
Node numbering must start with 1 and be in numerical sequence up to 89. Nodes99, 98, …, 91, 90 are reserved for inputs, and node 0 is for ground. There is norequirement for the resistor node list as to node sequence. That is,
[4 5 R1]
and
[5 4 R1]
are both accepted. For the capacitor node list and the inductor nodelist, however, the sequence must correspond to Kirchoff’s current law (KCL): currentflow from left to right and from top to bottom. Hence,
[3 6 C1]
will work, but
[6 3 C1]
may give the wrong phase angle output and incorrect output polarityin DC and transient analyses.
The open loop gain of opamps is set at 10
6
V/V or 120 dab. In the majority ofcircuit examples, no opamp frequency rolloff is used. However an example is givenon how to create an opamp with rolloff using voltage-controlled voltage sources(VCVSs) (see Section 3.7 and Section 3.8). The Mathcad file in Section 3.18demonstrates how to embed the opamp rolloff models into circuits, much likesubcircuits in SPICE.
Component values should generally be kept within the bounds of 1E+12 and1E–12. Numbers outside this range run the risk of excessively increasing the Amatrix condition number. This will cause solution accuracy to diminish. A guidelinethat can be used is the number of decimal places of accuracy, which is 15 – log10
×
(condition number). If a solution appears incorrect or unreasonable, the conditionnumber of matrix A
should be checked using the Mathcad statement
floor(15-log(conde(A)))
.The reference paths for the subprogram files are localized for the author’s
computer. In creating new files, the user must click on
Insert
, then on
Reference
,and then enter the correct local path or go to
Browse
.Two of the most important Mathcad subprogram files are named as follows:
For DC:
dccomm42.mcd
(creates A1 and B2 arrays)For AC:
comm42.mcd
(creates A, B, D, and E arrays)
7028_C001.fm Page 5 Thursday, January 12, 2006 9:17 AM
6
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
All of the necessary Mathcad subprograms are contained in the included CD.There is no error trapping. Users must ensure that the node lists correctly representthe circuit being analyzed and that all required input arrays are included.
The version of the software used is Mathcad 11.0. (Note that due to internalbugs in Mathcad 8.0, some files will not run on that version. Intermediate versionshave not been tested.)
Some mathematical ability will be helpful for some advanced subjects such asthe theory of the NDS method (Appendix I), stability analysis, Leverrier’s algorithm,and transient analysis.
1.2 INTRODUCTION TO NODE LIST CIRCUIT ANALYSIS
The passive RCL circuit used to demonstrate the procedure is shown in the followingfigure:
1.2.1 R
ULES
AND
D
EFINITIONS
Calculated using the Mathcad subprogram file comm42.mcd:Ncap = number of capacitorsNind = number of inductorsN = Ncap + NindM = number of independent inputs (= 1 here, but can be up to 10)K = number of outputs (= 1, but can be up to U)
User input:U = number of unknown nodes (= 3 here).Y = output node (can be any or all of the three nodes V1, V2, or V3).Number nodes sequentially from 1 to U (V1, V2, V3,…); 0 is ground.
Maximum value of U = 89.
Independent voltage input nodes are numbered from 99, 98, …, 90. (Note thatif only one input source is present, use 99 as the node number; if two inputs, use99, 98; if three inputs, use 99, 98, 97, etc.)
Component reference designator sequence is optional. It can be R1, L2, Ra, Cx,R301, etc. A sequential numbering has been used for convenience.
R1
R4
R2
R3
L3
L4
C1
C2
V2 V3V1Ein
7028_C001.fm Page 6 Thursday, January 12, 2006 9:17 AM
Introduction
7
For AC analysis, log frequency sweep:BF = Beginning log frequency = 10
BF
HzND = Number of decades from BFPD = Points per decadeTotal number of frequency points NP = ND·PD + 1
Linear frequency sweepBF = Beginning frequency in HzLF = Last frequency in HzDF = Frequency increment
Total number of frequency points
Using the RCL circuit, creating the node lists is just as easy as in early versionsof SPICE. For the resistors, we create the array RR:
The first column is one of the two nodes that the resistor is connected to, whereasthe second column is the other node. The last column is the reference designatorfor the resistor, the value of which has been given previously.
For the capacitors, we create the array CC:
For the inductors, we similarly create the array LL:
The inputs are listed in the array Ein as Ein = (99 1). The first number indicatesthe node and the second, the amplitude in volts, which is usually set to 1. Allindependent inputs are referenced to ground.
Because this circuit is passive with no controlled sources, this must be shownfor VCVSs as EE = 0. No Voltage-Controlled-Current (VCCS) is shown as GG = 0.
NPLF BF
DF= − +1
RR
R
R
R
R
=
99 1 1
1 2 4
2 3 2
3 0 3
CCC
C=
1 2 1
3 0 2
LLL
L=
1 2 3
3 0 4
7028_C001.fm Page 7 Thursday, January 12, 2006 9:17 AM
8
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
REFERENCES
1. Seminal information for the method was obtained from DeRusso, P.M., Roy, R.J.,and Close, C.M.,
State Variables for Engineers
, John Wiley, NY, 1965.
7028_C001.fm Page 8 Thursday, January 12, 2006 9:17 AM
9
2
Passive Circuits
2.1 INTRODUCTION TO NODE LIST CIRCUIT ANALYSIS (PART ONE)
Analysis with output plots.Unit suffixes:
K := 10
3
u := 10
–6
m := 10
–3
Component values:
R1 := 10 R2 := 100 R3 := 50·K R4 := 10·KC1 := 0.1·u C2 := C1 f1 := 10·K f2 := 100·K
f1 and f2 are resonant frequencies for the values of L3 and L4.Calculate L3 and L4:
The eight inputs required for the subprogram
comm42.mcd
are: U, Y, EE, GG,RR, CC, LL, and Ein (see previous definitions).
U := 3 Three unknown nodes.Y := 3 Take the output from node 3, V3.
R1
R4
R2
R3
L3
L4
C1
C2
V2 V3 V1 Ein
Lf C
Lf C
31
2 1 14
1
2 2 22 2: :=
⋅ ⋅( ) ⋅=
⋅ ⋅( ) ⋅π π
7028_C002.fm Page 9 Thursday, January 19, 2006 11:15 AM
10
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Set up node list arrays: Ein := (99 1) (Ein = 1 V at node 99)
EE := 0 (No VCVSs) GG := 0 (No VCCSs)
Insert reference for subprogram file comm42 to get state space arrays A, B, D,and E:
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Display arrays:
DC Analysis
In = Ax + B, the DC value is obtained by setting = 0. Then AX =
−
B and
X =
−
A
−
1
⋅
B where the uppercase X is used for DC. Mathcad’s lsolve functionprovides the solution. When B has more than one column, the explicit solution formX =
−
A
−
1
⋅
B must be used.
That is, I
L3
= I
L4
= 9.091 mA. The capacitors are short-circuited by the inductor.
RR
R
R
R
R
CCC
: :=
=
99 1 1
1 2 4
2 3 2
3 0 3
1 2 1
3 0 CCLL
L
L2
1 2 3
3 0 4
=
:
A =
− − − ×− −
91909 09 90909 09 1 10 0
90909 09 91109
7. .
. .009 0 1 10
394 78 0 0 0
0 39478 42 0 0
7− ×
.
.
B ==
= ( )=
90909 09
90909 09
0
0
0 1 0 0
0
.
.
D
E (( )
dxdt
dxdt
X solve A B
V V I I
X
C C L L
T
: ( , )
. .
= −
= (
1
0 0 9 091 9 091
1 2 3 4
))m
7028_C002.fm Page 10 Thursday, January 19, 2006 11:15 AM
Passive Circuits
11
DC output voltage at node Y: Y = 3 Vodc := D·X + E Vodc = (0)DC node voltages (inductors open-circuited) Vdc := 1solve(A11, A14)Vdc
T
= (1 0.833 0.832)
Confirming the last entry in vector Vdc:
AC Analysis
BF := 3 ND := 3 PD := 40 NP := ND·PD + 1 i := 1..NP
L
i
:= BF + s := 2·
π
·10
L
· cv
i
:= D(s
i
·I – A)
–1
·B + E
Vo
i
:= db(cv
i
) Va
i
:= ·arg(cv
i
)
Note the two resonant frequency cusps at f1 and f2.
Ein RR R R R
1 2 31 2 3 4
0 832, .⋅
+ + +=
iPD− 1 −1
180π
3 3.5 4 4.5 5 5.5 6−80
−40
−20
0Y = 3
Output magnitude at node Y
Log freq(Hz)
−60
dBV Voi
Li
3 3.5 4 4.5 5 5.5 6−90−60−30
0306090
120150180
Phase angle at node Y
Log freq(Hz)
Degr
ees
(Vai)1
Li
7028_C002.fm Page 11 Thursday, January 19, 2006 11:15 AM
12
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Now take the output from both nodes 2 (V2) and 3 (V3):
Call the subprogram comm42 again to get the new D and E arrays.
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Note that only D and E have changed.Sample of cv (complex value) for one output: cv
10
= (0.001 + 0.002i)Dimension = K M = 1 1Get the new AC outputs and plot: cv
i
= D·(s
i
·I – A)
–1
·B + E
Sample of cv for two outputs:
Dimension = K M = 2 1Plot both:
Y :=
2
3
A =
− − − ×− −
91909 091 90909 091 1 10 0
90909 091 911
7. .
. 009 091 0 1 10
394 784 0 0 0
0 39478 418 0 0
7.
.
.
− ×
=
=−
B
D
90909 091
90909 091
0
0
.
.
00 909 0 091 0 0
0 1 0 0
0 909
0
. .
.
=
E
cvi
i10
0 855 0 213
0 001 0 002=
−+
. .
. .
Vo db cv
Vo db cv
i i
i i
2
3
1
2
:
:
= ( )
= ( )
7028_C002.fm Page 12 Thursday, January 19, 2006 11:15 AM
Passive Circuits
13
We can plot the ratio of V3 to V2 as follows:
3 3.5 4 4.5 5 5.5 6
Y = ( )
−60
−80
−40
−20
0
V2V3
Output magnitude at node Y
Log freq(Hz)
dBV Vo2i
Vo3i
Li
23
Vo dbcv
cvVai
i
ii32 32
1802
1
: : ar=( )( )
= ⋅π
ggcv
cvi
i
( )( )
2
1
3 3.5 4 4.5 5 5.5 6−80
−60
−40
−20
0Magnitude of V3/V2
Log freq(Hz)
dBV Vo32i
Li
3 3.5 4 4.5 5 5.5 6−180
−120
−60
0
60
120
180Phase of V3/V2
Log freq(Hz)
Deg Va32i
Li
7028_C002.fm Page 13 Thursday, January 19, 2006 11:15 AM
14
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Introduction to NDS Method
—
SPICE Verification
VEin 99 0 AC 1
R1 99 1 10
R4 1 2 10K
R2 2 3 100
R3 3 0 50K
*
C1 1 2 0.1u
C2 3 0 0.1u
*
L3 1 2 2.533m
L4 3 0 25.33u
*
.PRINT AC V(2) V(3) VP(3) V(3,2) VP(3,2)
.AC DEC 50 1E3 1E6
.OPTIONS NOMOD NOECHO NOPAGE
.END
Extracting the data from the SPICE *.out file and plotting:Fnom := READPRN(“c:\SPICEapps\datfiles\intro3.txt”) N := rows(Fnom)N = 151 k := 1..N
3 3.5 4 4.5 5 5.5 6−80
−60
−40
−20
0
V2V3
Spice verification - magnitude
dBV db(Fnomk,2)
db(Fnomk,3)
log(Fnomk,1)Log freq(Hz)
7028_C002.fm Page 14 Thursday, January 19, 2006 11:15 AM
Passive Circuits
15
For further verification, we compare the accuracy of the A and B arrays obtainedfrom the NDS method to that obtained from the algebraic solution in Section 2.2.Ax and Bx, shown in the following, are from that section.
3 3.5 4 4.5 5 5.5 6−90−60−30
0306090
120150180
Spice verification - phase angle
Deg Fnomk,4
log(Fnomk,1)Log freq(Hz)
Ax
C R R R C R R C
:=
− ⋅ ++
−⋅ +( )
−
−
11
14
11 2
11 1 2
11
0
112 1 2
12
11 2
13
012
13
0 0
C R R C R R R C
L
⋅ +( )− ⋅
++
−
00
014
0 0L
Ax =
− − − ×− −
91909 09 90909 09 1 10 0
90909 09 91109
7. .
. ..
.
.
09 0 1 10
394 78 0 0 0
0 39478 42 0 0
7− ×
AA Ax− =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
7028_C002.fm Page 15 Thursday, January 19, 2006 11:15 AM
16
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
2.2 INTRODUCTION TO NODE LIST CIRCUIT ANALYSIS (PART TWO)
K := 10
3
u := 10
–6
The algebraic solution of a sample RCL circuit is given to show the amount oflabor saved using the NDS method. For those less mathematically inclined, the nextthree pages can be skipped. The advantages of the NDS method can be seen just byglancing at the amount of circuit analysis algebra given in the following:
R1 := 10 R2 := 100 R3 := 50·KR4 := 10·K C1 := 0.1·u C2 := C1fl := 10·K f2 := 100·K
Format goal:
e
L
and i
C
on LH side; Ein, i
L
, and v
C
on RH side. Must only useterms involving these unknowns. We thus need N = Ncap + Nind = 4 equations inthe following format including constant coefficients.
f(e
L
, i
C
) = g(i
L
, v
C
, Ein) in which
We first see that
e
L3
= v
C1
e
L4
= v
C2
(1)
Bx
C R R
C R R:=
⋅ +( )
⋅ +( )
11 1 2
12 1 2
0
0
=
− =Bx B Bx
90909 09
90909 09
0
0
0.
. 00
0
0
R1
R4
R2
R3
L3
L4
C1
C2
V2 V3 V1 Ein
Lf C
Lf C
31
2 1 14
1
2 2 22 2: :=
⋅ ⋅( ) ⋅=
⋅ ⋅( ) ⋅π π
e Ldidt
i Cdvdt
LL
CC= ⋅ = ⋅
7028_C002.fm Page 16 Thursday, January 19, 2006 11:15 AM
Passive Circuits
17
which are in the correct format. Two more equations are needed.
KCL at node V1:
(2)
Substituting:
(3)
Not done yet; need to eliminate V1.
KCL at node V2:
We see that: V3 = v
C2
Substituting and rearranging:
(4)
Solving Equation 4 for V2:
(5)
V1 = v
C1
+ V2 From Equation 2 (6)
Substituting Equation 5 into Equation 6
Collecting terms:
(7)
Substituting Equation 7 into Equation 3:
Ein VR
i iV V
RV V vL C C
− = + + − − =11
1 24
1 23 1 1
Ein VR
i ivR
iEinR
ivR
VL C
CC L
C− = + + = − − −11 4 1 4
3 11
1 31 11
1R
i ivR
V VR
L CC
3 11
42 3
2+ + = −
VR
vR
vR
i iC CC L
22 2 4
02 11 3− − − − =
V i R vv R
Ri RL C
CC2 2
24
23 21
1= ⋅ + + ⋅ + ⋅
V v i R vv R
Ri RC L C
CC1 2
24
21 3 21
1= + ⋅ + + ⋅ + ⋅
V vRR
v i R i RC C L C1 124
2 21 2 3 1= ⋅ +
+ + ⋅ + ⋅
7028_C002.fm Page 17 Thursday, January 19, 2006 11:15 AM
18
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Collecting terms:
(8)
From Equation 2: V2 = V1
−
v
C1
Repeating Equation 5:
KCL at node V3:
Substituting V3 = v
C2
Multiplying by –1:
Substituting Equation 5:
Rearranging to the correct format:
or finally
iEinR
ivR
vR
RR
vR
C LC C C
1 31 1 2
1 4 11
24
= − − − ⋅ +
−11
21
21
3 1− ⋅ − ⋅i RR
i RR
L C
iRR
EinR
iRR
vC L
C1 3
2121 1
121
⋅ +
= − ⋅ +
−RR
vR R
RR R
C1
11
14
21 4
1− ⋅ + +⋅
V i R vv R
Ri RL C
CC2 2
24
23 21
1= ⋅ + + ⋅ + ⋅
V VR
VR
iC iL2 3
233
2 4− = + +
− + ⋅ +
+ + =VR
vR R
i iC C L2
212
13
02 2 4
VR
vR R
i iC C L22
12
13
02 2 4− ⋅ +
− − =
ivR
vR
i vR R
i iLC C
C C C32 1
1 2 22 4
12
13
+ + + − ⋅ +
− − LL4 0=
i i ivR
vR
vR R
C C LC C
C1 2 32 1
22 4
12
13
− = − − − + ⋅ +
+ iiL4
7028_C002.fm Page 18 Thursday, January 19, 2006 11:15 AM
Passive Circuits
19
(9)
Create two N N arrays W and Q from Equation 1, Equation 8, and Equation9. Fill in the coefficients from the LH sides for W, and for the RH sides for Q perthe column headings:
S is created from the only Ein term in the third equation: P is an N N diagonalarray in the same C and L order as W and Q.
Now form A and B as follows: C:= (W·P)
–1
A := C·Q B := C·S
i i ivR
vR
iC C LC C
L1 2 32 1
42 4
− = − + − +
i i e e
W RR
C C L L1 2 3 4
0 0 1 0
0 0 0 1
121
0 0 0
1 1 0 0
:=+
−
v v i i
QR R
RR R
C C L L1 2 3 4
1 0 0 0
0 1 0 0
11
14
21 4
:= − + +⋅
− − +
− −
11
121
0
14
13
1 1
RRR
R R
S
R
P
C
C
L: :=
=
0
0
11
0
1 0 0 0
0 2 0 0
0 0 3 0
0 0 00 4L
A =
− − − ×− −
91909 091 90909 091 1 10 0
90909 091 911
7. .
. 009 091 3 492 10 1 10
394 784 0 0 0
0 39478 41
10 7. .
.
.
× − ×−
88 0 0
90909 091
90909 091
0
0
=
B
.
.
7028_C002.fm Page 19 Thursday, January 19, 2006 11:15 AM
20
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Because the output is v
C2
, we place a 1 in the second column of the K N array
Because there are no input terms Ein in the output: E := 0Prior to this shortcut method [*], the algebra would have to continue as follows.
Isolating iC1 in Equation 8:
(10)
Because , we get
(11)
From Equation 9:
(12)
Substituting Equation 10 into Equation 12:
Again, because
(13)
From Equation 1 above, repeated here: e
L3
= v
C1
e
L4
= v
C2
v v i i
D
C C L L1 2 3 4
0 1 0 0:= ( )
iEin
R Ri
vR R
vR R R
C LC
C1 32
11 2 1 2
14
11 2
=+
− −+
− ⋅ ++
i Cdvdt
CC
111= ⋅
dvdt
vC R R R
vC R R
C C C1 1 2
114
11 2 1 1 2
= − ⋅ ++
−⋅ +( )) − +
⋅ +( )iC
EinC R R
L3
1 1 1 2
i i ivR
vR
iC L LC C
C2 3 41 2
14 3
= − + − +
i i ivR
vR
iv
R Rv
RC L L
C CL
CC2 3 4
1 23
21
4 3 1 21= − + − − −
+− ⋅
441
1 2 1 2+
+
++R R
EinR R
iv
R Rv
R R Ri
EinR
CC
C L21
2 41 2
11 2
13
=+
− ⋅+
+
− +–11 2+ R
i Cdv
dtC
C2
22= ⋅
dvdt
vC R R
vC R R R
C C C2 1 2
2 1 2 21
1 213
= −⋅ +( ) − ⋅
++
− +⋅ +( )
iC
EinC R R
L4
2 2 1 2
7028_C002.fm Page 20 Thursday, January 19, 2006 11:15 AM
Passive Circuits 21
(14)
Similarly:
(15)
Using Equation 11, Equation13, Equation14, and Equation15, the general form
matrix equation = Ax + Bu becomes
2.3 ALL-CAPACITIVE CIRCUIT
u := 10–6
e Ldidt
didt
vL
LL L C
33 3 13
3= ⋅ =,
didt
vL
L C4 2
4=
dxdt
dvdt
dvdt
didt
didt
C
C
L
L
1
2
3
4
=
− ⋅ ++
−⋅ +( )
−11
14
11 2
11 1 2
11
0C R R R C R R C
−−⋅ +( )
− ⋅+
+
−12 1 2
12
11 2
13
012
13
0
C R R C R R R C
L00 0
014
0 0
1
2
3
L
v
v
i
C
C
L
⋅
ii
C R R
C R R
L4
11 1 2
12 1 2
0
0
+
⋅ +( )
⋅ +( )
⋅ Ein
3
2 1
R2
R1
R3
C1
C2
Ein
7028_C002.fm Page 21 Thursday, January 19, 2006 11:15 AM
22 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
R1 := 10 R2 := 100 R3 := 50 C1 := 0.1·u C2 := 0.5·uU := 3 Y := 2 Ein := (99 1) Input 1 V at node 99.
LL := 0 (No induc-
tors)EE := 0 GG := 0 (No controlled sources.)
Get A, B, D, and E arrays from subprogram comm42.mcd:
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
DC voltages at all U nodes in the order given by Vdc. If inductors are present,they are open-circuited:
Vdc := lsolve(A11, A14) VdcT = (1 1 0)
X := lsolve(–A,B)
Vodc := D·X + E Vodc = (1) DC output voltage at node Y given by Vodc.Y = 2
AC Analysis
BF := 3 ND := 3 PD := 40
i := 1..ND·PD + 1 Li := BF + s := 2·π·10L·
cvi := D·(si·I – A)–1·B + E Voli := db(cvi)
Vai := ·arg(cvi)1
(Phase angle) Y = 2
RR
R
R
R
:=
99 1 1
1 2 3
3 0 2
CCC
C:=
1 2 1
2 3 2
A
B
=− −− −
=
290909 1 90909 1
18181 8 18181 8
. .
. .
990909 1
18181 8
0 909 0 091
0 909
.
.
. .
.
= −( )=
D
E (( )
X =
0
1
iPD− 1 −1
180π
7028_C002.fm Page 22 Thursday, January 19, 2006 11:15 AM
Passive Circuits 23
2.4 ALL-INDUCTIVE CIRCUIT
u := 10–6 mA := 10–3
R1 := 10 R2 := 100 R3 := 50 L1 := 220·u L2 := 330·uU := 3 Y := 2 Ein := (99 1)
CC := 0 (No capacitors)EE := 0 GG := 0 (No controlled sources.)
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
3 4 5 6−4
−3
−2
−1
0Magnitude at node Y
Log freq (Hz)
dBV Vo1i
Li
3 4 5 6
Log freq (Hz)Li
−20
−10
0
10Phase at node Y
Degr
ees
Vai
3
2 1
R2
R1
R3
L1
L2
Ein
RR
R
R
R
:=
99 1 1
3 0 2
1 2 3
LLL
L:=
1 2 1
2 3 2
7028_C002.fm Page 23 Thursday, January 19, 2006 11:15 AM
24 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Vdc := lsolve(A11, A14) VdcT = (1 1 0) X := lsolve(–A, B)
Vodc := D·X + E Vodc = (0.909)
AC Analysis
BF := 3 ND := 3 PD := 50
NP := ND·PD + 1 i := 1..NP Li := BF +
s := 2·π·10L· cvi := D·(si·I – A)–1·B + E Voli := db(cvi)
Vai := ·arg(cvi)1 Y = 2
2.5 TWIN-T RC NETWORK
60-Hz Notch Filter K :=103 u := 10–6 Meg := 106 m := 10–3
A =−
−
2287272 7 227272 7
151515 2 484848 5
. .
. .
BB
D
E
=
= −( )= ( )
0
3030 3
50 60
1
.
XmA
iL
iL=
9 091
9 0911
2
.
.
iPD− 1
−1
180π
3 4 5 6−3
−2
−1
0Amplitude at node Y
Log freq (Hz)
dBV Vo1i
Li
3 4 5 6
Log freq (Hz)Li
−10
−5
0
5
10Phase at node Y
Degr
ees
Vai
7028_C002.fm Page 24 Thursday, January 19, 2006 11:15 AM
Passive Circuits 25
R1 := 267·K R2 := 267·K R3 := 133·K R5 := 10·MegR4 := 0.01 C1 := 0.02·u C2 := 0.01·u C3 := 0.01·uU := 4 Y :=3 Ein := (99 1)
Resistor R4 is the output impedance of the external voltage source.
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
DC Analysis
X := lsolve(–A, B) Vodc := D·X + E
Vodc = (0.949)
(Checks; same as Vodc.)
DC node voltages: Vdc := lsolve(A11, A14)
Note: The reader is encouraged to reverse 3 1 C3 to 1 3 C3 in the CC array andnote the polarity change of VC3 above. Sign changes in the D array cancel the VC3sign change and the output Vodc polarity remains the same. In SPICE the statevariables X and the A, B, D, E arrays are not accessible. As will be seen later, accessto these arrays can be useful.
R4 R1
R5
R2
R3
C2
C1
C3
V2 V3 V4
V1
Ein
RR
R
R
R
R
R
:=
4 2 1
2 3 2
3 0 5
1 0 3
99 4 4
CC
C
C
C
GG
LL
EE
:
:
:
:
=
===
2 0 1
4 1 2
3 1 3
0
0
0
X
V
V
V
C
C
C
=
0 975
1
0 949
1
2
3
.
.
Ein RR R R R
1 2 54 1 2 5
0 949, .⋅
+ + +=
V V V V
VdcT
1 2 3 4
0 0 975 0 049 1= ( ). .
7028_C002.fm Page 25 Thursday, January 19, 2006 11:15 AM
26 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
AC Analysis
BF := 0 LF := 100 NP := 100 (Linear frequency sweep)
i := 1..NP + 1 Fi := BF + DF·(i – 1)
DF = 1 s := 2·π·F· cvi := D·(si·I – A)–1·B + E
Voli := db(cvi) Vai := ·arg(cvi)
Note: Most math software and scientific calculators limit phase angles of com-plex numbers to +/– 180 deg, or π+ to –π. SPICE phase angle outputs can be from0 to + 360 (2 ) or 360 deg. For example, +300 deg is equivalent to –60 deg; –200deg is equivalent to +160. Both are correct.
Output plots
Y = 3
DFLF BF
NP:= −
−1
180π
0 10 20 30 40 50 60 70 80 90 100−60
−40
−20
0Magnitude at node Y
Freq(Hz)
dBV Voi
Fi
0 10 20 30 40 50 60 70 80 90 100−100
−50
0
50
100Phase at node Y
Freq(Hz)
Deg (Vai)1
Fi
7028_C002.fm Page 26 Thursday, January 19, 2006 11:15 AM
Passive Circuits 27
2.6 BROADBAND PULSE TRANSFORMER MODEL
K := 103 p := 10–12 u := 10–6 n := 10–9 m := 10–3
R1 := 10 R2 := 1.5 R3 := 20·K R4 := 1.5 R5 := 1·KR6 := 0.5 C1 := 20·p C2 := 5·p C3 := 20·p L1 := 1·uL2 := 2·m L3 := 1·u R7 := 1
U := 7 Y := 5 Ein := (99 10) 10 Vac input.
L1 and L3 represent leakage inductance; L2 is the magnetizing inductance.
Insert subprogram file:
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
R1 R2 R4
R6
2 1 3 4 5
R5 R7 R3
L3 L1
L2 7
6
C1 C3
C2
Ein
RR
R
R
R
R
R
R
R
:=
99 1 1
1 2 2
3 0 3
3 4 4
5 0 5
1 6 6
3 7 7
=
=
CC
C
C
C
LL
:
:
1 0 1
6 5 2
5 0 3
22 3 1
7 0 2
4 5 3
0
0
L
L
L
EE
GG
=
=
:
:
7028_C002.fm Page 27 Thursday, January 19, 2006 11:15 AM
28 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
DC Analysis
X := lsolve(–A,B)
Vodc := D·X + E Vodc = (0.798)
Note that this DC analysis is certainly easier than deriving the following alge-braic solution:
DC node voltages (inductors open-circuited):
Vdc := lsolve(A11, A14) VdcT = (10 10 0 0 0 10 0)
AC Analysis
BF := 2 ND := 6 PD := 30
i := 1..ND·PD +1 Li := BF + s := 2·π·10L·
cvi := D·(si·I – A)–1·B + E rd :=
Voi := db(cvi) Vai := rd·arg(cvi)Note flat response from about 1 KHz to 10 MHz.
X V V V I I I
X
C C C L L L
T
Format: 1 2 3 1 2 3
1 999 1 201 0= . , .7798 0 8 0 799 7 98 10 4. . . ×( )−
VdcEin R
R RR R R R
R R R
55
11 2
4 5 3 7
3 7 4
1 2: ,= ⋅
+ ++( ) ⋅ ⋅
⋅ + ++( ) ⋅ +( )
⋅ +( )
=
R R R
R R
Vdc
5 3 7
4 5
5 0 79. 88
iPD− 1 −1
180π
2 3 4 5 6 7 8−40
−20
0
20
40Output amplitude at node Y
Log freq(Hz)
dBV Voi
Li
7028_C002.fm Page 28 Thursday, January 19, 2006 11:15 AM
Passive Circuits 29
Broadband Pulse Transformer — SPICE Verification
*File: c:\SPICEapps\Cirtext\xformer.cir
VEin 99 0 AC 10
R1 99 1 10
R2 1 2 1.5
R3 3 0 20K
R4 3 4 1.5
R5 5 0 1K
R6 1 6 0.5
R7 3 7 1
*
C1 1 0 20p
C2 6 5 5p
C3 5 0 20p
*
L1 2 3 1u
L2 7 0 2m
L3 4 5 1u
*
.AC DEC 20 100 1E8
.PRINT AC V(5) VP(5)
2 3 4 5 6 7 8−200−150−100
−500
50100150200
Phase at node Y
Log freq(Hz)
Degr
ees
(Vai)1
Li
7028_C002.fm Page 29 Thursday, January 19, 2006 11:15 AM
30 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
.OPTIONS NOMOD NOPAGE NOECHO
.END
Extracting the data from the SPICE *.out file:Fnom := READPRN(“c:\SPICEapps\datfiles\xformer.txt”)N := rows(Fnom) N = 121 k := 1..N
2.7 ALL-CAPACITIVE LOOPS (ACL)
In a physical circuit, two or more capacitors in parallel can occur, such as in powersupply decoupling circuits. However, in converting capacitors to ideal independentvoltage sources (which is done using this method of analysis), we end up with aviolation of Kirchoff’s laws. For example, in the circuit that follows:
2 3 4 5 6 7 8−40
−20
0
20
40Output amplitude at node Y
dBV db(Fnomk,2)
log(Fnomk,1)Log freq(Hz)
2 3 4 5 6 7 8−200−150−100
−500
50100150200
Phase at node Y
Degr
ees
Fnomk,3
log(Fnomk,1)Log freq(Hz)
C1 C2 C3 E1
− +
− +
− +
E2 E3
7028_C002.fm Page 30 Thursday, January 19, 2006 11:15 AM
Passive Circuits 31
If we assign arbitrary values to E1, E2, and E3, Kirchoff’s Voltage Law (KVL)is violated around any of the three possible loops. If we assign the value of +1 Vto all three, because the resistance is zero, infinite current will flow around the loopsunless all assigned values of 1.0 have an infinite number of zeros after the decimalpoint, e.g., if E1 – E2 = 10–9000 V divided by zero resistance is infinite current.
Another example of an ACL is:
When converted to ideal voltage sources, KVL is again violated. For example,if the arbitrary values were C1 = E1 = 10 V, C2 = E2 = 7 V, and C3 = E3 = 20 V,KVL yields –10 + 7 + 20 = +17 V ≠ 0.
Every “real-world” capacitor has a small amount of series resistance, termedequivalent series resistance (ESR). The cure in state space analysis of circuits withACLs is to place a small ESR resistor (≈ 0.01 Ω) in series with all (or all but one)of the capacitors.
2.8 ALL-INDUCTIVE CUTSETS (ICS)
A similar problem occurs with circuits having two or more inductors connected tothe same node. In this analysis method, the inductors become ideal current sourcesconnected to the same node, and we end up with a violation of Kirchoff's CurrentLaw (KCL), as shown in the following:
Kirchoff’s Current Law at node V1 is I1 + I2 = I3. This law is violated regardlessof the values of I1, I2, and I3. The term cut set comes from circuit topology. If wewere to place a small “cookie cutter” at node V1, it would cut the wires of all threeinductors. Thus, we are cutting a set of inductor wires.
C3
C2
C1
E1 − +
− +
− +
E2 E3
R1 R3
The c
ure
R2
L1
L2 L3
I1
I2 I3V1 V1
+ −
+ − + −
7028_C002.fm Page 31 Thursday, January 19, 2006 11:15 AM
32 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The cure is to place “de-Qing” resistors in parallel with at least one of theinductors as shown in the following. The values to be used will depend on theremainder of the circuit and the desired L/R time constants.
In defense of the NDS method, it should be stated that ACLs and/or ICSs willcause any state space analysis method to fail if additional corrective steps are nottaken. See, for example, Intermediate Network Analysis, Shlomo Karni, Allyn &Bacon, 1971.
2.9 ALL-CAPACITIVE LOOP EXAMPLE
K := 103 u := 10–6 m := 10–3 KHz := 103
R1 := 1·K R2 := 0.1 R3 := 100C1 := 1·u C2 := C1 C3 := C1 L3 := 25.33·mU := 3 Y := 3 Ein := (99 1)GG := 0 EE := 0 LL := (3 0 L3)
R3The cure
R1
R2 V
I2 I3
I1+ −
+ − + −
L3
C2
C3 V1 V2
V3
R1
R3 Ein
C1
RRR
R
CC
C
C
C
:
:
=
=
99 1 1
2 3 3
1 0 1
1 2 3
2 0 2
7028_C002.fm Page 32 Thursday, January 19, 2006 11:15 AM
Passive Circuits 33
Call reference subprogram:
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
A, B, D, and E are not returned. Due to the ACL, A is singular, i.e., thedeterminant of A is zero, and the inverse of A is undefined.
Insert R2 to break ACL.
U := 4 Y := 4 LL := (4 0 L3)
Reinsert subprogram for new node lists.
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
AC Analysis
BF := 2 ND := 2 PD := 50
i := 1..ND·PD + 1 Li := BF + s := 2·π·10L·
cvi := D·(si·I – A)–1·B + E Voi := db(cvi)
L4
C2
C3 V1V2
V3
V4
R1 R2
R3Ein
C1
RR
R
R
R
CC
C
C
C
:
:
=
=
99 1 1
1 2 2
3 4 3
1 0 1
2 3 3
3 0 2
iPD− 1 −1
7028_C002.fm Page 33 Thursday, January 19, 2006 11:15 AM
34 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Y = 4
REFERENCES
1. R. Boyd, State Space Averaging with a Pocket Calculator, High Frequency PowerConversion Conference Proceedings, Santa Clara, CA, 1990, p. 283.
2 2.5 3 3.5 4−50
−40
−30
−20Output at node Y
Log freq(Hz)
dBV Voi
Li
7028_C002.fm Page 34 Thursday, January 19, 2006 11:15 AM
35
3
Controlled Sources
3.1 CONTROLLED (DEPENDENT) SOURCES
3.1.1 V
OLTAGE
-C
ONTROLLED
C
URRENT
S
OURCE
(VCCS)
SPICE convention:
Gname Vp Vn Vcp Vcn Transconductance
The units of transconductance are amperes/volts = 1/ohms = siemens (or mhos,for you old-timers).
Vp and Vn are the node connections of the current source in the circuit. Currentflows away from node Vp (into the + terminal of the source) and towards node Vn,going out of the source. Vcp and Vcn are the + and controlling voltage nodes.
This convention is chosen because virtually all models of transistors and MOS-FETs depict the current as flowing down and internally away from the collector ordrain terminal of the device.
Example: MOSFET drain current: Id = gm·Vgs = gm(Vg – Vs)Here Vg and Vs are Vcp and Vcn, respectively. Because Id is dependent by
definition, it is unknown, as usually are Vg and Vs.In MathCAD,
GG = (Vp Vn Vcp Vcn Gain)
For a MOSFET,
GG = (Vp Vn Vg Vs gm)
3.1.2 C
URRENT
-C
ONTROLLED
C
URRENT
S
OURCE
(CCCS)
SPICE convention:
Fname Vp Vn Controlling Current Gain
In the NDS analysis method, the controlling current is specified as I = f(V/R)
Example:
3.1.3 V
OLTAGE
-C
ONTROLLED
V
OLTAGE
S
OURCE
(VCVS)
SPICE convention:
Ename Vp Vn Vcp Vcn Gain
As in VCCS, Vp and Vn are the + and connections of the source in the circuit,and Vcp and Vcn are the + and controlling nodes.
Example: V1 V2 = k(V3 V4), or in SPICE
Ename V1 V2 V3 V4 k
In MathCAD,
EE = (Vp Vn Vcp Vcn Gain) = (V1 V2 V3 V4 k)
For an opamp, which is usually a single-ended output, Vo = Ao(Vcp Vcn),where typically Ao = 10
6
V/V.For an inverter, Vcp = 0. For a voltage follower, Vo is connected to Vcn and
Ic B lb BEin V
R= ⋅ = −
11
7028_C003.fm Page 35 Thursday, January 12, 2006 9:25 AM
36
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
and in
MathCAD as
EE = (Vo 0 Vcp Vcn Ao) = (Vo 0 Vcp Vo Ao)
3.1.4 C
URRENT
-C
ONTROLLED
V
OLTAGE
S
OURCE
(CCVS)
SPICE convention:
Hname +V –V Controlling CurrentTransresistance
The units of transresistance are volts/amperes = ohms.Only two types are used in NDS method, the VCVS and the VCCS. Conversions
from the remaining two are easily accomplished as shown in the following subsec-tions.
3.1.5 CCVS
TO
VCVS
To convert a CCVS to a VCVS, divide the controlling current nodes by the resistancein the controlling current branch. (This “resistance” could be that of a printed circuitboard trace or wire, or a small current-sensing resistor.) Example: Assume thecontrolling current Ic is through a resistor or resistance R2, which is connected tonodes V2 and V1. Then
The gain is thereby converted from a “transresistance” in dimensions of ohms,to a dimensionless gain.
MathCAD format:
EE = (Vp Vn Vcp Vcn Gain) = (Vh 0 V2 V1Rc/R2),
which is very similar to the SPICE format.
3.1.6 CCCS
TO
VCCS
To convert a CCCS to a VCCS, divide the (dimensionless) gain by the resistance ofthe “controlling current.” Example:
The controlling voltage is now Ein – V1, and the “gain,” with dimension 1/ohmsor “transconductance,” is B/R1.
In MathCAD format,
GG = (Vp Vn Vcp Vcn Gain) = (Vp Vn EinV1 B/R1).
Vo AoVcp AoVo Vo Ao AoVcp
VoAoVcp
Ao
− + = +( ) =
=+
=
0 1
1
,
VVcp, sinceAo
1+Ao≈ 1
Vh Rc Ic RcV V
RRcR
V V Gain Rc= ⋅ = −
= −( ) =2 1
2 22 1 // R2
Ic B lb BEin V
RBR
Ein V= ⋅ = −
= −( )1
1 11
7028_C003.fm Page 36 Thursday, January 12, 2006 9:25 AM
Controlled Sources
37
To repeat, the first input Ein is given the node number 99. For a second input,Ein2 = 98, Ein3 = 97, etc., down to 90. For example, if Vp = 2, Vn = 1, Vcp = 99,Vcn = 1, then
GG = (2 1 99 1 B/R1)
.
3.1.7 F
OUR
R
ULES
T
HAT
M
UST
B
E
O
BSERVED
1. The output of a controlled source cannot be connected directly to an
independent
input source.That is,
EE = (99 0 2 1 gain)
is not allowed. Input voltagesources are specified, for example, as
Ein = (99 5)
, the inputconnected from node 99 to ground, with an amplitude of +5 V.However,
EE = (2 0 99 1 gain)
, one input being a controllingnode, Vcp or Vcn, is allowed. Here and as earlier, “99” represents any ofthe nodes 99, 98, 97, … , etc., down to 90.An independent source can be created by having Vcp = 99, 98, etc., andVcn = 0. For example, assume
Ein = (99 5)
, and it is desired toconnect an independent 15-mA current source at an internal node V2 tonode V7. Then
GG = (2 7 99 0 0.015/5)
For an independent 15 V source at the same nodes:
EE = (2 7 99 0 15/5)
2. Vp in a VCVS is not allowed to be zero. That is, the output nodes of a VCVS must always be (Vp 0) or (Vp Vn).For example,
EE = (0 2 3 0 gain)
is not allowed. If a negativeoutput is desired, use
EE = (2 0 3 0 – gain)
or
EE = (2 00 3 gain)
.3. If a capacitor C or inductor L in the circuit being analyzed is connected
directly to an ideal input source, it must have an equivalent series resis-tance (ESR) resistor in series between it and the source. That is
CC =(99 1 C1)
or
LL = (98 2 L1)
are not allowed.This will be a minor inconvenience as every real-world capacitor andinductor has an ESR. Also, every real-world voltage source has some finiteinternal source impedance which includes resistance. Hence, the simula-tion will be more realistic with ESR included. If in doubt about whatvalue of ESR to use, use 0.01
Ω
for capacitors and 0.05
Ω
for inductors.4. The nodes Vp or Vn of two or more VCVS’s (EE) must not be common.
That is
is not allowed. In the NDS method, this results in “node contention,” andthe solution will not be correct.
As in SPICE, every circuit must have at least one ground node (node 0).
EE =
2 1 12 4 4
2 0 3 4 2
7028_C003.fm Page 37 Thursday, January 12, 2006 9:25 AM
38
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3.2 FLOATING VCVS
K := 10
3
uF := 10
–6
m := 10
–3
R1 := 1·K R2 := 3·K R3 := 4·K R4 := 2·KC1 := 0.01·uF C2 := 0.05·uF U := 3 Y := 3
u := 20 Gain of VCVS. rd :=
LL := 0 Ein := (99 2) GG := 0
VCVS equation: uV1 = V2 – V1 or V2 = V1·(1 + u)
Format: EE = (Vp Vn Vcp Vcn gain), then: EE := (2 1 1 0 u)
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
D = (0 1) E = (0)
DC Analysis
X := lsolve(–A, B) X
T
= (0.174 1.217) Vodc := D·X + EVodc = (1.217)
DC node voltages:
Vdc := lsolve(A11, A14) Vdc
T
= (0.174 3.652 1.217)
R1 R3V2uV1
V3V1
R4R2C1 C2Ein
+−
180π
RR
R
R
R
R
CCC
: :=
=
99 1 1
2 0 2
2 3 3
3 0 4
1 0 1
3 0 CC2
A B=− ×
−
=
1 325 10 25000
105000 15000
2000006.
00
7028_C003.fm Page 38 Thursday, January 12, 2006 9:25 AM
Controlled Sources
39
Check VCVS equation:
Vdc
2
– Vdc
1
= 3.478 u·Vdc
1
= 3.478 Checks.
AC Analysis
BF := 2 ND := 5 PD := 20 Lit := ND·PD + 1 i :=1..Lit
Li := BF + s := 2·
π
·10
L
· db(x) := 20·log(|x|)
cv
i
:= D·(s
i
·I – A)
–1
·B + E Vo
i
:= db(cv
i
) Va
i
:= rd·arg(cv
i
)
Plot marker: M1
:=
db(Vodc) Y = 3
iPD− 1 −1
2 3 4 5 6 7−80
−60
−40
−20
0
20Magnitude at node Y
Log freq(Hz)
dBV Voi
M1
Li
2 3 4 5 6 7−180
−135
−90
−45
0Phase at node Y
Log freq(Hz)
Deg (Vai)1
Li
7028_C003.fm Page 39 Thursday, January 12, 2006 9:25 AM
40 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
SPICE Verification — Floating VCVS
*File: c:\Spicapps\Cirtext\vcvs1c.cir
VEin 99 0 AC 2
R1 99 1 1K
C1 1 0 0.01u
R2 2 0 3K
R3 2 3 4K
C2 3 0 0.05u
R4 3 0 2K
*
EE 2 1 1 0 20; VCVS
.AC DEC 20 100 1E7
.PRINT AC V(3) VP(3)
.OPTIONS NOPAGE NOMOD NOECHO
.END
Fnom := READPRN(“c:\SPICEapps\datfiles\vcvs1c.txt”)N := rows(Fnom) N = 101 k := 1..N
2 3 4 5 6 7−80
−60
−40
−20
0
20Spice V3 magnitude
Log freq(Hz)
dBV db(Fnomk,2)
log(Fnomk,1)
7028_C003.fm Page 40 Thursday, January 12, 2006 9:25 AM
Controlled Sources 41
3.3 CIRCUITS WITH M > 1
The subprogram that constructs the A, B, D, and E arrays from the node lists alsocounts the number of rows in the Ein array and assigns this value to M. In mostcases, the user is interested in the node voltages with all inputs active. In some cases,however, the separate superposed contribution of each independent input may bedesired. Hence, there are two different subprograms to call, depending on the typeof output desired.
For DC, call dccomm42.mcd if the user wants all inputs active simultaneously.(Most frequently used.)
Call dccomm42m.mcd if the separate contribution of each independent input,M > 1, one at a time, is desired.
For AC, call comm42.mcd for all inputs active, and comm42m.mcd to separatethe node voltages due to the M > 1 inputs.
For a simple example, we use one “circuit” with M = 3 inputs and U = 3 unknownnodes:
2 3 4 5 6 7−180
−135
−90
−45
0Spice V3 phase angle
Log freq(Hz)
Deg Fnomk,3
log(Fnomk,1)
Ein Ein Ein
A
1 2 3
3
0 1 0 01 0
0 01 0 2 0 02
0 0 0
:
. .
. . .
.
=−
− −− 22 0 3
3
1 0 0
0 2 0
0 0 3
1
.
:
=
B
Ein Eiin Ein
V A B V
2 3
3 3 3 3
10 05 1 01 0 1
0 51 10 121:
. . .
. .= ⋅ =− 11 01
0 03 0 67 10 07
1
2
3
.
. . .
V
V
V
7028_C003.fm Page 41 Thursday, January 12, 2006 9:25 AM
42 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The aforementioned is what is returned if dccomm42m.mcd is called. Theseparate contributions of each column (independent input) in B3 is given.
When this is not desired, calling dccomm42.mcd gives
We could get the same answer by adding the columns of V3, but this requiresadditional statements in the worksheet.
For circuits in which M = 1, i.e., Ein array has one row, it does not matter whichsubprogram is called. This applies only to those circuits with more than one input,where Ein has more than one row and M > 1.
Example DC circuit with M = 2:
K := 103
A3
0 1 0 01 0
0 01 0 2 0 02
0 0 02 0 3
:
. .
. . .
. .
=−
− −−
=
= ⋅ =−
B
V A B V
1
1
2
3
1 3 1 1
11 16
11 61
:
:
.
. 44
10 78
1
2
3.
V
V
V
i
V V V V V
V
i i i i i
: ..
:
.
, , , ,
=
= + + +
=
1 3
1 3 3 3 3
1
11 16
1 2 2 3
111 64
10 78
.
.
R1V99 V1 V2 V3 V98R3 R4
R7
R8
R2 R5 R6
Ein1 Ein2
7028_C003.fm Page 42 Thursday, January 12, 2006 9:25 AM
Controlled Sources 43
GG := 0 EE := 0 U := 3Inputs separate. (M = 2)
→ Reference:C:\mcadckts\CaNL11\dccomm42.mcd
In SPICE, one of two inputs would have to be zeroed, which requires two runsto get the same information as given earlier.
If M = 3, SPICE would require three runs, and so forth.Inputs added. (M = 1)
→ Reference:C:\mcadckts\CaNL11\dccomm42.mcd
Ein
RR
K
K
K
:
:
=−
=
⋅⋅⋅⋅
99 15
98 5
99 1 1
1 0 1
1 2 1
2 3 1 KK
K
K
K
K
2 0 10
3 0 1
1 3 1 5
3 98 1
⋅⋅⋅
⋅
.
R
R
R
R
R
R
R
R
1
2
3
4
5
6
7
8
Va A B
Ein Ein
Va
:
. – .
.
= ⋅
= −
−1 2
1 2
5 3936 0 6440
3 4884 1
1
..
. .
1628
1 9320 1 7979
1
2
3−
V
V
V
Vb A B
Vb
V
:
.
.
.
= ⋅
=
−1 2
4 7496
2 3256
0 1342
1
aa Va1 1 1 2 4 7496, , .+ = etc.
7028_C003.fm Page 43 Thursday, January 12, 2006 9:25 AM
44 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3.4 FIRST-ORDER MOSFET MODEL
K := 103 u := 10–6 n := 10–9 p := 10–12 mA := 10–3
R1 := 4.99·K R2 := 1·K R3 := 10·K R4 := 4.99·KR5 := 1.96·K C1 := 0.1·u C3 := 4.7·n
From MOSFET data sheet:
gm := 0.001 Edd := 200 Eg := 20Nodes: V1 — Gate; V3 — Source; V4 — Drain
Model using VCCS:
C2 := 400·p
C2 represents the internal gate-source capacitance.(Nonlinear in higher-order models.)
C3
C1V2
V3
R5V4 V5
R4
R1
Eg
R2
R3
V1 M1
Edd
R1
R2 R5 V5V4
g1−+ C3
R4
Edd
C1V2
V3
C2
R3
V1Eg
7028_C003.fm Page 44 Thursday, January 12, 2006 9:25 AM
Controlled Sources 45
(VCCS g1 is drain current Id)VCCS: gl = gm·Vgs = gm·(V1 – V3)
VCCS format:
GG = (Vp Vn Vcp Vcn gain)GG := (4 3 1 3 gm)Eg = 20 Edd = 200
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
DC AnalysisVC1 VC2 VC3 DC voltages across C1, C2, and C3
X := –A–1·B XT := (1.82 1.82 190.93)
DC output:
Vodc := D·X + E Vodc = (190.93)
DC voltage at all nodes:
Vdc := A11–1·A14 VdcT = (20 20 18.128 190.93 1.82 × 10–3)Drain current Id:
Vgs := Vdc1 – Vdc3 Vgs = 1.818 Id := gm·Vgs Id = 1.82mA
RR
R
R
R
R
R
C
:=
99 1 1
1 2 2
3 0 3
98 4 4
4 5 5
CC
C
C
C
EinEg
Edd
:
:
=
=
2 3 1
1 3 2
5 0 3
99
98
=
=
=
LL
U
Y
:
:
:
0
5
4
7028_C003.fm Page 45 Thursday, January 12, 2006 9:25 AM
46 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Id := Vdc6 Id = 1.82mA V4 := Edd – Id·R4 V4 = 190.93= Vodc. Checks.
AC Analysis
BF := 2 ND := 4 PD := 25 Lit := ND·PD + 1 i := 1..Lit
Li := BF + s := 2·π·10L· cvi := D·(si·I – A)–1·B + E
Voi := |cvi|
3.5 VCVS AND CCCS EXAMPLE
K := 103 u := 10–6 m := 10–3 mA := 10–3 n := 10–9
Hybrid-pi model of the Bipolar Junction Transistor (BJT).
iPD− 1 −1
2 3 4 5
Y = 4
60
50
100
150
200Drain voltage V4
Log freq(Hz)
Volts Voi
Li
R4R2
V2
V3−+
−+
R5
g1 C2
R1 R3
C1l1
V1 V4Ein
7028_C003.fm Page 46 Thursday, January 12, 2006 9:25 AM
Controlled Sources 47
R1 := 100 R2 := 10 R3 := 40·K R4 := 2·KR5 := 10 C1 := 80·n C2 := 5·n
Controlled source gains:
hre := 0.004 hie := 100 rd :=
VCVS:
V2 – V3 = hre·(V1 – V4)
Format for EE:
EE = (Vc Vn Vcp Vcn gain)
then
EE := (2 3 1 4 hre)
Convert g1 CCCS to a VCCS.
180π
RR
R
R
R
R
R
CC
:=
99 1 1
1 2 2
1 4 3
4 0 4
3 0 5
::
:
: .
:
:
=
=
= ( )=
=
1 4 1
4 0 2
0
99 0 1
4
4
C
C
LL
Ein
U
Y
g hie I IEin V
Rg
hieR
Ein V1 1 11
11
11= ⋅ = − = ⋅ −( )
7028_C003.fm Page 47 Thursday, January 12, 2006 9:25 AM
48 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
DC Analysis
X := lsolve(–A,B) XT = (24.226 –24.138) Vodc := D·X + EVodc = (–24.14) Vdc := lsolve(A11,A14)VdcT = (0.09 0.09 –4.79 × 10–3 –24.14 0.01)Igl := Vdc5 Igl = 12.67mA (Igl = current thru souce gl)
AC Analysis
BF := 1 ND := 7 PD := 20 i := 1..ND·PD + 1
Li : = BF + F := 10L s := 2·π·F·
Voi := D·(si·I – A)–1·B + E Vai := rd·arg(Voi)
NDS results and SPICE verification:Fnom := READPRN(“c:\SPICEapps\datfiles\vcvs_cccs4.txt”)N := rows(Fnom) N = 141 k := 1..N
Hybrid-pi BJT Model
*File: vcvs_cccs4.cir
VEin 99 0 AC 0.1
R1 1 99 100
R2 1 2 10
R3 1 4 40K
R4 4 0 2K
R5 3 0 10
GG Vp Vn Vcp Vcn gain
GGhieR
GG
= ( )
=
=
4 0 99 11
4 0 999 1 1( )
A
B
=− −
=
747812 5 75000
188040000 187900000
.
112500
19800000
0 1
0
−
= ( )= ( )
D
E
iPD− 1 −1
7028_C003.fm Page 48 Thursday, January 12, 2006 9:25 AM
Controlled Sources 49
*
C1 1 4 80n
C2 4 0 5n
*
EE 2 3 1 4 0.004
* B = 100; Gain B/R1 = 1.0 in GG
GG 4 0 99 1 1
.AC DEC 20 10 1E8
.PRINT AC V(4) VP(4)
.OPTIONS NOECHO NOPAGE NOMOD
.END
Y = 4Traces are separated to show congruency.
1 2 3 4 5 6 7 8−30
−20
−10
0
10
20
30
SpiceNDS
Magnitude at node Y
Log freq(Hz)
dBV db(Fnomk,2)
db(Voi) − 4
log(Fnomk,1), Li
1 2 3 4 5 6 7 8−200−160−120
−80−40
04080
SpiceNDS
Phase angle at node Y
Log freq(Hz)
Deg Fnomk,3
(Vai)1− 10
log(Fnomk,1), Li
7028_C003.fm Page 49 Thursday, January 12, 2006 9:25 AM
50 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3.6 TWO INPUTS, THREE OUTPUTS
K := 103 n := 10–9 mA := 10–3
R1 := 1·K R2 := 2·K R3 := 1·K R4 := 2·K R5 := 2.2·KR6 := 2.2·K R7 := 1·K R8 := 1·K C1 := 20·n C2 := 4·nC3 := 6·nU := 7 Y := (1 3 5)T
Three outputs.
Gains:
gm := 10 a := 5
R1 R2 R3 R4 R5 R6
R7 R8
C1 C2 C3
V1 V2 V3 V4
V7V6
GG EE
V5
Ein1 Ein2
−+
−+
Ein :=
99 100
98 50
RR
R
R
R
R
R
R
R
R
:=
99 1 1
1 2 2
2 3 3
3 4 4
4 5 5
5 98 6
6 0 7
7 0 8
=
CC
C
C
C
:
1 0 1
3 0 2
5 0 3
=LL : 0
7028_C003.fm Page 50 Thursday, January 12, 2006 9:25 AM
Controlled Sources 51
For VCVS EE:
V4 – V7 = a·(Ein2 – V2) EE := (4 7 98 2 a) a = 5
For VCCS GG:
gl = gm·(V3 – Ein1) GG := (2 6 3 99 gm) gm = 10
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
DC Analysis
Igl := Vn8 Igl = 311.92mA
AC Analysis
BF := 3 ND := 3 PD := 40 i := 1..ND·PD + 1
Li := BF + s := 2·π·10L· cvi := D·(si·I – A)–1·B + E
Sample of the three (complex) outputs:
X A B
Vdc D X E
Vdc
:
:
.
.
.
= − ⋅
= ⋅ +
=
−1
22 03
100 03
308 96
=
Y
1
3
5
Vn solve A A
V V V V V V V Ig
VnT
: ,
.
= ( )
=
1 11 14
1 2 3 4 5 6 7 1
22 003 133 92 100 03 567 93 308 96 311 92 351 66 0– . . . . . – . .331( )
iPD− 1 −1
cv
i
i
i
5
21 37 6 19
100 03 0
308 92 1 14
=−+
. .
.
. – .
=
Y
1
3
5
7028_C003.fm Page 51 Thursday, January 12, 2006 9:25 AM
52 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
SPICE Listing — Two In Three Out
*File: c:\SPICEapps\Cirtext\wizard.cir
VEin1 99 0 AC 100
VEin2 98 0 AC 50
*
R1 99 1 1K
R2 1 2 2K
R3 2 3 1K
R4 3 4 2K
R5 4 5 2.2K
R6 5 98 2.2K
R7 6 0 1K
R8 7 0 1K
*
C1 1 0 20n
C2 3 0 4n
C3 5 0 6n
*
GG 2 6 3 99 10
EE 4 7 98 2 5
.AC DEC 50 1E3 1E6
.OPTIONS NOMOD NOECHO NOPAGE
.PRINT AC V(1) V(3) V(5)
.OPTIONS NUMDGT 8
.END
Fnom := READPRN(“c:\SPICEapps\datfiles\wizard.txt”)N := rows(Fnom) N = 151 k := 1..N
Vo db cv Vo db cv Vo db cvi i i i i1 2 31 2
= ( ) = ( ) = ii( ) 3
7028_C003.fm Page 52 Thursday, January 12, 2006 9:25 AM
Controlled Sources 53
NDS and SPICE plots:
3 3.5 4 4.5 5 5.5 626
28
30
32Spice V1 magnitude
Log freq(Hz)
dBV db(Fnomk,2)
log(Fnomk,1)
3 3.5 4 4.5 5 5.5 626
28
30
32NDS V1 magnitude
Log freq(Hz)
dBV Vo1i
Li
3 3.5 4 4.5 5 5.5 640.0016
40.0020
40.0024
40.0028Spice V3 magnitude
Log freq(Hz)
dBV db(Fnomk,3)
log(Fnomk,1)
7028_C003.fm Page 53 Thursday, January 12, 2006 9:25 AM
54 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3.7 THIRD-ORDER OPAMP MODEL
This model has two poles and one zero.
K := 103 uF := 10–6 pF := 10–12 MHz := 106 KHz := 103
3 3.5 4 4.5 5 5.5 640.0016
40.0020
40.0024
40.0028NDS V3 magnitude
Log freq(Hz)
dBV Vo2i
Li
3 3.5 4 4.5 5 5.5 648.8
49.2
49.6
50Spice V5 magnitude
Log freq(Hz)
dBV db(Fnomk,4)
log(Fnomk,1)
3 3.5 4 4.5 5 5.5 648.8
49.2
49.6
50NDS V5 magnitude
Log freq(Hz)
dBV Vo3i
Li
7028_C003.fm Page 54 Thursday, January 12, 2006 9:25 AM
Controlled Sources 55
R1 := 100 R2 := 100 R3 := 100 R4 := 10
Pole frequencies:
pl := 100 p2 := 1·MHz
Zero frequency
zl := 100·KHz Cl = 15.915uF
C2 = 1591.549pF
C3 = 0.016uF U := 7 Y := 7 Ein := (99 1) Ao := 106
Third-stage transfer function:
GG := 0
LL := 0
C1EE1
R11 2
+−
C2
C35 6 7
EE2
R2
R3
3 4
+−
R4EE3 EE4+
−
+−
CR p
11
2 1 1:=
⋅ ⋅ ⋅π
CR p
21
2 2 2:=
⋅ ⋅ ⋅πC
R z3
12 3 1
:=⋅ ⋅ ⋅π
F ss
R C
sRp C
( ) =+
⋅
+⋅
13 31
3
RpR RR R
:= ⋅+
3 43 4
Zero
R Clog
12 3 3
5⋅ ⋅ ⋅
=
π
Pole
Rp Clog .
12 3
6 041⋅ ⋅ ⋅
=
π
RR
R
R
R
R
:=
1 2 1
3 4 2
5 6 3
6 0 4
CC
C
C
C
:=
2 0 1
4 0 2
5 6 3
7028_C003.fm Page 55 Thursday, January 12, 2006 9:25 AM
56 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note EE3 gain.
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
AC Analysis
BF := 1 ND := 6 PD := 25 i := 1..ND·PD + 1
Li := BF + s := 2·π·10L· cvi := D·(si·I – A)–1·B + E
Voi := db(cvi)
Note zero at 105 Hz; and double pole at 106 = 1 MHz
3.8 A SUBCIRCUIT SCHEME
Opamp model using both inverting and noninverting inputs
K := 103 uF := 10–6 nF := 10–9 MHz := 106
Differential Amplifier
EE RR
Ao
:=+
1 0 99 0 1
3 0 2 0 1
5 0 4 0 134
7 0 6 0
iPD− 1 −1
1 2 3 4 5 6 70
20406080
100120140
Opamp open loop gain
Log freq(Hz)
dBV Voi
Li
7028_C003.fm Page 56 Thursday, January 12, 2006 9:25 AM
Controlled Sources 57
Use the linear two-pole opamp model on page 58.
R1 := 10·K R2 := 20·K R3 := 10·K R4 := 20·KCC := 0 GG := 0 LL := 0
Vo := 5 Vn := 6 Vp := 7
Input nodes to subckt6.mcd
Y := Vo U = 7
→ Reference:C:\mcadckts\CaNL11\subckt6.mcd
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
A1 := A B1 := B D1 := D E1 := E Save arrays.
Get response for opamp open-loop gain of Ao := 105 EE3,5 := Ao
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
A2 := A B2 := B D2 := D E2 := E Save new arrays.
AC Analysis
BF := 4 ND := 3 PD := 50 i := 1..ND·PD + 1
Li := BF + s := 2·π·10L· cv1i := D1·(si·I – A1)–1·B1 + E1
cv2i := D2·(si·I – A2)–1·B2 + E2
R3 7(Vp)
6(Vn) 2
3 4
V+V−
−
+1
11
Ein2
Ein1
R1
R2 5(Vo)
R4
RR
R
R
R
R
:=
99 6 1
98 7 3
6 5 2
7 0 4
Ein :=−
99 1
98 1
iPD− 1 −1
7028_C003.fm Page 57 Thursday, January 12, 2006 9:25 AM
58 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note the difference in high-frequency response with Ao = 10^5.
3.9 SUBCIRCUIT OPAMP MODEL
MHz := 106
This file requires inputs from the “calling circuit” in order to provide solutions.These inputs are Vp, Vn, and Vo.
Because Vo = V5 is common to the calling circuit, node numbers in the callingcircuit must start with V5.
f1 := 10 f2 := 1·MHz Ao := 106 Ra := 10 Rb := 10
Vo = V5
CA = CC1 if no capacitors in main circuit.
RR := stack(RR,RR1) CC := CA
4 4.5 5 5.5 6 6.5 7−40−30−20−10
0102030
Ao = 10^6Ao = 10^5
Magnitude at node Y
Log freq(Hz)
dBV
M1 Y = 5
db(cv1i)
db(cv2i)
Li
Ra
C1
1 2
EE1
Rb
C2
3 4
EE2EE3
5+−
+−
+−
CaRa f
:=⋅ ⋅ ⋅
12 1π
CbRb f
:=⋅ ⋅ ⋅
12 2π
RRRa
Rb1
1 2
3 4:=
CCCa
Cb1
2 0
4 0:=
EE
Vp Vn
Vo Ao
:=
1 0 1
3 0 2 0 1
0 4 0
CA cc CC CC
cc stack CC CC
:
( , )
= ← =
←
1 0
1
if
otherwisee
cc
7028_C003.fm Page 58 Thursday, January 12, 2006 9:25 AM
Controlled Sources 59
→ Reference:C:\mcadwca\wcaref11\Find_U.mcd
Find the maximum number of nodes U.
3.10 FIFTH-ORDER ACTIVE FILTER
High Pass
K := 103 u := 10–6 n := 10–9 Meg := 106 m := 10–3
R1 := 0.01 R2 := 2·K R3 := 70·K R4 := 140·K R5 := 12·KR6 := 2.7·K R7 := 3.2·K R8 := 10·K C1 := 0.03·uC2 := 0.02·u C3 := 1.9·n C4 := 0.4·n C5 := 0.01·uAo := 106 U := 7 Y := 6
Resistor R1 (0.01 Ω) serves two purposes: (1) acts as an ESR resistor so thatC1 is not connected directly to independent input Ein, and (2) prevents an all-capacitive loop via ground, C4, C5, C2, and C1, and the zero-output impedance ofEin.
Ein := (99 1) LL := 0 GG := 0
V4 3
2 11 V−
V++
−
1
4
R2
R3 R4 C5
V2 V3
V5 V5 R6
V6
V7 R7
R8
C3
C1
R1
Ein V1
C2
R5 C4
RR
R
R
R
R
R
R
R
R
:=
99 1 1
2 0 2
2 3 3
3 4 4
4 0 5
6 5 6
6 7 7
7 0 8
CC
C
C
C
C
C
:=
1 2 1
2 5 2
3 0 3
4 0 4
5 4 5
7028_C003.fm Page 59 Thursday, January 12, 2006 9:25 AM
60 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
For the opamp: EE format:
EE = (Vp Vn Vcp Vcn gain)V6 = Ao·(V4 – V7) EE := (6 0 4 7 Ao)
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
AC Analysis
BF := 2 ND :=2 PD := 50
i := 1..ND·PD + 1 Li := BF + s := 2·π·10L·
cvi := D·(si·I – A)–1·B + E Voi := db(cvi) Y = 6
3.11 STATE VARIABLE FILTER
K := 103 n := 10–9
Ten outputs: V1 through V10.
iPD− 1 −1
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−70−60−50−40−30−20−10
010
Output magnitude at node Y
Log freq(Hz)
dBV Voi
Li
7028_C003.fm Page 60 Thursday, January 12, 2006 9:25 AM
Controlled Sources 61
R1 := 10·K R2 := 20·K R3 := 10·K R4 := 182·KR5 := 2.2·K R6 := 20·K R7 := 10·K R8 := 100·KR9 := 10·K R10 := 100·K C1 := 1.125·n C2 := C1U := 10 Ao := 106 GG := 0 LL := 0
Ein := (99 1) rd :=
Get all nodes:
Y := (1 2 3 4 5 6 7 8 9 10)T
3
2
9
8
11V−
V++
−
14
R8
10
R10 7
R9
R7
R5
R61 5
3
2
611V−
V++
−
14
C2
7
3
2
4R4 11
C1
V−
V++
−
15
43
1
2
2
7
R2
R1
Ein
11
R3
V−
V++
−
1
3
4
CCC
C:=
4 5 1
6 7 2180π
RR
R
R
R
R
R
R
R
R
R
:=
99 1 1
7 2 2
2 3 3
3 4 4
5 6 5
1 5 6
5 9 7
9 10 8
3 8 9
8 77 10R
Opamps Vp Vn Vcp Vcn Gain
EE
Ao
Ao
Ao
:
:=
3 0 1 2
5 0 0 4
7 0 0 6
110 0 8 9 Ao
7028_C003.fm Page 61 Thursday, January 12, 2006 9:25 AM
62 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Note that the DC Analysis has been omitted
AC Analysis
BF := 3 ND := 1 PD := 200 i := 1..ND·PD + 1
Li := BF + s := 2·π·10L· cvi := D·(si·I – A)–1·B + E
K = number of outputs; M = number of inputs.
The dimensions of the complex output variable cv are always K M.From the schematic, V1 = V2; V8 = V9; V4 and V6 ≈ zero; hence, we omit V2,
V9, V4, and V6.Get magnitude (dBV) and phase (deg) for single or multiple outputs:
Vai := rd·arg(cvi)
iPD− 1 −1
rows A cols A
rows B cols B
rows D cols D
r
( ) ( )
( ) ( )
( ) ( )
oows E cols E( ) ( )
=
2 2
2 1
10 2
10 1
Format
N N
N M
K N
K M
:
Vo for i ND PD
vo db cvi i
: ..= ∈ ⋅ + ( )← (1 1 if rows Y = 0
))∈ ⋅ +
∈ ( )for i ND PD
for K
vo
1 1
1
..
..
otherwise
rows Y
ii k i kdb cv
vo
, ← ( )
7028_C003.fm Page 62 Thursday, January 12, 2006 9:25 AM
Controlled Sources 63
3.12 SEVENTH-ORDER ELLIPTICAL LOW-PASS FILTER
K := 103 nF := 10–9
3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4−60
−40
−20
0
20
40
V1V3V5
V1, V3, V5
Log freq(Hz)
dBV
Voi,1
Voi,3
Voi,5
Li
3 3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8 3.9 4−60
−40
−20
0
20
40
V7V8V10
V7, V8, V10
Log freq(Hz)
dBV
Voi,7
Voi,8
Voi,10
Li
7028_C003.fm Page 63 Thursday, January 12, 2006 9:25 AM
64 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3 2
R1
Ein
R2
V12
V1
V5 V4
V6
11
C1
V− V++−
1 4
R3
V2
R6
R4
R7
R5
C3
C2
C5V8
V4
C7 V7
V13
V11
V10
R14
R15 V1
4 1
V10
V9
R10
R12
R8
R13
R11 R9
C6
V3
C4
3 2 11
V− V+
+−
1 4
3 2 11
V− V+
+−
4
7028_C003.fm Page 64 Thursday, January 12, 2006 9:25 AM
Controlled Sources 65
R1 := 19.6·K R2 := 196·K R3 := 1·K R4 := 147·KR5 := 71.5 R6 := 37.4·K R7 := 154·K R8 := 110·KR9 := 260 R10 := 740 R11 := 402 R12 := 27.4·KR13 := 110·K R14 := 40 R15 := 960 C1 := 2.67·nFC2 := C1 C3 := C1 C4 := C1 C5 := C1 C6 := C1C7 := C1 Ao := 106 U := 14 Y := 14
(opamps)
Ein := (99 1) LL := 0 GG := 0
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
The DC analysis has been omitted.
AC Analysis
BF := 2 ND := 2 PD := 100 i := 1..ND·PD + 1
Li := BF + s := 2·π·10L· cvi := D·(si·I – A)–1·B + E
Voi := db(cvi) Vai := ·arg(cvi)
Equation of asymptote: Vbi := –210·log(10Li–3)
A 210 dB/decade rolloff with a seventh-order (140-dB Butterworth) circuit.
RR
R
R
R
R
R
R
R
R:=
99 12 1
12 1 2
1 2 3
1 5 4
2 0 5
4 3 6
5 6 7
13 7 8
13 4 RR
R
R
R
R
R
R
9
4 8 10
8 0 11
9 10 12
7 11 13
14 10 14
10 0 15
CC
C
C
C
C
C
C
C
:=
12 1 1
3 2 2
6 3 3
5 4 4
9 8 5
11 9 6
7 10 7
EE
Ao
Ao
Ao
:=
1 0 0 12
13 0 6 13
14 0 11 14
iPD− 1 −1
180π
7028_C003.fm Page 65 Thursday, January 12, 2006 9:25 AM
66 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Elliptical Seventh-Order LPF — SPICE Verification
* File: c:\SPICEapps\Cirtext\Ellipt7.cir
* 5/06/05
VEin 99 0 AC 1
R1 99 12 19.6K
R2 12 1 196K
R3 1 2 1K
R4 1 5 147K
R5 2 0 71.5
R6 4 3 37.4K
R7 5 6 154K
R8 13 7 110K
R9 13 4 260
R10 4 8 740
R11 8 0 402
R12 9 10 27.4K
R13 7 11 110K
R14 14 10 40
R15 10 0 960
*
C1 12 1 2.67n
C2 3 2 2.67n
C3 6 3 2.67n
C4 5 4 2.67n
C5 9 8 2.67n
C6 11 9 2.67n
C7 7 10 2.67n
*
EE1 1 0 0 12 1E6
EE2 13 0 6 13 1E6
EE3 14 0 11 14 1E6
7028_C003.fm Page 66 Thursday, January 12, 2006 9:25 AM
Controlled Sources 67
*
.OPTIONS NOMOD NOPAGE NOECHO
.AC DEC 100 100 10K
.PRINT AC V(14) VP(14)
.END
Fnom := READPRN(“c:\SPICEapps\datfiles\Elliptf7.txt”)N := rows(Fnom) N = 201 k := 1..N
Traces separated to avoid overlay and show congruency.
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−80
−60
−40
−20
0
20
40
NDSAsymptoteSpice V(14)
Output at node Y
Log freq(Hz)
dBV
Voi + 5
Vbi
db(Fnomk,2)
Li, Li, log(Fnomk,1)
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−200
−100
0
100
200
NDSSpice VP(14)
Phase at node Y
Log freq(Hz)
Deg (Vai)1
Fnomk,3 − 20
Li, log(Fnomk,1)
7028_C003.fm Page 67 Thursday, January 12, 2006 9:25 AM
68 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3.12.1 STEPPING ONE RESISTOR VALUE
K := 103 nF := 10–9
For the schematic, see Section 3.12.
R1 := 19.6·K R2 := 196·K R3 := 1·K R4 := 147·KR5 := 71.5 R6 := 37.4·K R7 := 154·K R8 := 110·KR9 := 260 R10 := 740 R11 := 402 R12 := 27.4·KR13 := 110·K R14 := 40 R15 := 960 C1 := 2.67·nFC2 := C1 C3 := C1 C4 := C1 C5 := C1 C6 := C1C7 := C1 Ao := 106 U := 14 Y := 14
New resistor values for R4:
Rx := (100 150 200 250)T·K Ndc := rows(Rx) Ndc = 4
(Opamps)
Ein := (99 1) LL := 0 GG := 0
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Collect all arrays into one multidimensional array VAB:
RR
R
R
R
R
R
R
R
R:=
99 12 1
12 1 2
1 2 3
1 5 4
2 0 5
4 3 6
5 6 7
13 7 8
13 4 RR
R
R
R
R
R
R
9
4 8 10
8 0 11
9 10 12
7 11 13
14 10 14
10 0 15
CC
C
C
C
C
C
C
C
:=
12 1 1
3 2 2
6 3 3
5 4 4
9 8 5
11 9 6
7 10 7
EE
Ao
Ao
Ao
:=
1 0 0 12
13 0 6 13
14 0 11 14
7028_C003.fm Page 68 Thursday, January 12, 2006 9:25 AM
Controlled Sources 69
Row 2 comment: Stuff new Rx values into R4.Row 3 comment: Recompute and store the arrays.(The G function comes from subprogram comm42.mcd previously called.)
VAB := Vn(U, Y, EE, GG, RR, CC, LL, Ein)
Note: Except for the second line in the Vn routine (given earlier), this routine,the VAB statement (given earlier), and the Vo routine below are universal. That is,they can be used to step values in column 3 of RR, CC, or LL and column 5 of GGor EE in any AC circuit. Similar statements apply for stepping resistor values inDC circuits.
AC Analysis
BF := 2 ND := 2 PD := 100 i := 1..ND.PD +1
Li := BF +
Vn U Y EE GG RR CC LL Ein for i Ndc
RR
( , , , , , , , ) : ..
,
= ∈1
4 33
1
←
←
←
←
Rx
AE G U Y EE GG RR CC LL Ein
A AE
B
i
i
i
( , , , , , , , )
AAE
D AE
E AE
A
B
D
E
i
i
2
3
4
←
←
iPD− 1
7028_C003.fm Page 69 Thursday, January 12, 2006 9:25 AM
70 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Ndc = 4Note the scale change.
Vo k Ndc
A VAB
B VAB
D VAB
k
k
k
: ..= ∈
← ( )← ( )← ( )
for 1
1
2
3
EE VAB
i ND PD
L BFiPD
s
k
i
i
← ( )∈ ⋅ +
← + −
← ⋅
4
1 1
1
2
for ..
π ⋅⋅ ⋅ −
← ⋅ ⋅ −( ) ⋅ +
←
−
10 1
1
L
k i i
k i k
i
cv D s I A B E
vo db cv
,
, ,ii
vo
( )
2.6 2.7 2.8 2.9 3 3.1 3.2 3.3 3.4 3.5 3.6−80
−60
−40
−20
0
20
40
R4 = 100 K150 K200 K250 K
Ndc different resistor values
Log freq(Hz)
dBV
Vo1,i
Vo2,i
Vo3,i
Vo4,i
Li
7028_C003.fm Page 70 Thursday, January 12, 2006 9:25 AM
Controlled Sources 71
3.12.2 STEPPING ALL SEVEN CAPACITOR VALUES
K := 103 nF := 10–9
For the schematic, see Section 3.12.
R1 := 19.6·K R2 := 196·K R3 := 1·K R4 := 147·KR5 := 71.5 R6 := 37.4·K R7 := 154·K R8 := 110·KR9 := 260 R10 := 740 R11 := 402 R12 := 27.4·KR13 := 110·K R14 := 40 R15 := 960 C1 := 2.67·nFC2 := C1 C3 := C1 C4 := C1 C5 := C1 C6 := C1C7 := C1 Ao := 106 U := 14
Step C1 through C7 from 1nF to 3 nF:
Cx := (1.8 2.2 2.6 3.0)T·nF Ndc := rows(Cx) Ndc = 4
Y := 14 Ncap := rows(CC) Ncap = 7
(Opamps)
Ein := (99 1) LL := 0 GG := 0
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
RR
R
R
R
R
R
R
R
R:=
99 12 1
12 1 2
1 2 3
1 5 4
2 0 5
4 3 6
5 6 7
13 7 8
13 4 RR
R
R
R
R
R
R
9
4 8 10
8 0 11
9 10 12
7 11 13
14 10 14
10 0 15
CC
C
C
C
C
C
C
C
:=
12 1 1
3 2 2
6 3 3
5 4 4
9 8 5
11 9 6
7 10 7
EE
Ao
Ao
Ao
:=
1 0 0 12
13 0 6 13
14 0 11 14
7028_C003.fm Page 71 Thursday, January 12, 2006 9:25 AM
72 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Collect all arrays into one multidimensional array VAB:
Row 3 comment: Fill CC column 3 with the ith capacitor value.Row 4 comment: Recompute the arrays for each new value and store.
VAB := Vn(U, Y, EE, GG, RR, CC, LL, Ein)
AC Analysis
Bf := 2 ND := 2 PD := 100 i := 1..ND·PD + 1
Li := BF +
Vn U Y EE GG RR CC LL Ein for i Ndc( , , , , , , , ) : ..= ∈1
for jj Ncap
CC Cx
AE G U Y EE GG RR CC LL
j i
∈
←
←
1
3
..
( , , , , , , ,
,
EEin
A AE
B AE
D AE
E AE
A
B
D
E
i
i
i
i
)
←
←
←
←
1
2
3
4
iPD− 1
7028_C003.fm Page 72 Thursday, January 12, 2006 9:25 AM
Controlled Sources 73
Vo k Ndc
A VAB
B VAB
D VAB
k
k
k
: ..= ∈
← ( )← ( )← ( )
for 1
1
2
3
EE VAB
i ND PD
L BFiPD
s
k
i
i
← ( )∈ ⋅ +
← + −
← ⋅
4
1 1
1
2
for ..
π ⋅⋅ ⋅ −
← ⋅ ⋅ −( ) ⋅ +
←
−
10 1
1
L
k i i
k i k
i
cv D s I A B E
vo db cv
,
, ,ii
vo
( )
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−80
−60
−40
−20
0
20
40
C1 thru C7 = 1.8 nF2.2 nF2.6 nF3.0 nF
Four different values for C1 thru C7
Log freq(Hz)
dBV
Vo1,i
Vo2,i
Vo3,i
Vo4,i
Li
Cx nF=
1 8
2 2
2 6
3
.
.
.
7028_C003.fm Page 73 Thursday, January 12, 2006 9:25 AM
74 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3.13 SQUARE ROOT OF FREQUENCY (+10 dB/DECADE) CIRCUIT
K := 103 u := 10–6 n := 10–9 p := 10–12 kHz := 103
Hz := 1
R1 := 523 R2 := 1.54·K R3 := 3.16·K R4 := 6.19·KR5 := 12.4·K R6 := 24.9·K R7 := 49.9·K R8 := 100·KR9 := 200·K R10 := 49.9·K C1 := 330·p C2 := 680·pC3 := 1.2·n C4 := 2.7·n C5 := 4.7·n C6 := 0.01·uC7 := 0.022·u C8 := 0.039·u C9 := 22·p Ao := 106
Ein := (99 1) U := 10 Y := 10 GG := 0 LL := 0db(x) := 20·log(|x|)
Hence, a slope of +10 dB/decade is the square root of frequency.
3
211V−
V++
−
1
4
R10V9 V10V8V7V6V5
V9C6 C7 C8
C9
R9R8R6 R7
V3V2V1
C1 C2 C3
V4
C4
V5
V9C5
R3 R4 R5R1Ein
R2
S
S
S
S
S
S
1 100
2 1000
3 10000
1 10
2 31 623
3 10
:
:
:
.
=
=
=
=
=
= 00
1 20
2 30
3 40
db S
db S
db S
( )
( )
( )
=
=
=
7028_C003.fm Page 74 Thursday, January 12, 2006 9:25 AM
Controlled Sources 75
EE := (10 0 0 9 Ao)
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
AC Analysis
BF := 0 ND := 6 PD := 20 i := 1..ND·PD +1
Li := BF + F := 10L
Insert a non-inverting opamp gain stage after V10 with a gain of:
dBG :=
dBG = 23.453 s := 2·π·F· cvi := D·(si·I – A)–1·B + EVoi := db(cvi) + dBG Vai := 10·log(Fi) Y = 10
RR
R
R
R
R
R
R
R
R
R
:=
99 1 1
1 2 2
2 3 3
3 4 4
4 5 5
5 6 6
6 7 7
7 8 8
8 9 9
9 100 10R
CC
C
C
C
C
C
C
C
C
C
:=
1 9 1
2 9 2
3 9 3
4 9 4
5 9 5
6 9 6
7 9 7
8 9 8
9 10 9
iPD− 1
20 11188 5
⋅ + ⋅⋅
log.
KK
−1
0 1 2 3 4 5 60
10
20
30
40
50
60
V10+10 dB/dec
Output at node Y
Log freq(Hz)
dBV Voi
Vai
Li
7028_C003.fm Page 75 Thursday, January 12, 2006 9:25 AM
76 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
3.14 HV (200 V) SHUNT MOSFET REGULATOR
K := 103 n := 10–9 mA := 10–3
R1 := 10K R2 := 10K R3 := 5.1K R4 := 51K R5 := 215KR6 := 6878 R7 := 562K R8 := 10K R9 := 1.96K R10 := 0.01C1 := 2.7n C2 := 4.7n Eref := 6.2 Ehv := 400 Y := 6 U := 10LL := 0
From MOSFET data sheet: gm := 0.001
Ao := 106 EE := (1 0 5 7 Ao) Opamp
Two inputs, M = 2.
3
2R8
Eref
Ehv
R7
V7
V8
11
C1
V−
V++
−V1 V2 M1R1
14 R2
R3R9
C2M2
V1
V6
V5
R5
R6
V9
R10R4
V4
V3
RR
R
R
R
R
R
R
R
R
R
:=
99 7 8
1 2 1
2 0 2
4 0 3
98 3 4
6 5 5
5 0 6
7 8 7
9 0 9
988 10 10R
CCC
C:=
8 1 1
3 9 2
GGgm
gm:=
3 4 2 4
10 6 3 6
EinEref
Ehv:=
99
98Ein =
99 6 2
98 400
.
7028_C003.fm Page 76 Thursday, January 12, 2006 9:25 AM
Controlled Sources 77
(Note: C1 and C2 are for stability purposes. See Section 5.3, page 107 foranalysis.)
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
DC Analysis
X := lsolve(–A,B) Vodc := D·X + E Vodc = (200.01)
DC drain currents of MOSFETs M1 and M2:
Vdc := lsolve(A11,A14)Id1 := Vdc11 Id2 := Vdc12 Id1 := 3.904mA Id2 := 0.901mA
AC Analysis
BF := 0 ND := 5 PD := 30
Lit := ND·PD + 1 i := 1..Lit Li := BF +
s := 2·π·10L· cvi := D·(si·I – A)–1·B + E Voi := |cvi|
log(20) = 1.3 200 V regulation is maintained up to about 20 Hz.
Due to the opamp, a short expression for the DC output is:
Vo := 200.01
XV
VC
C
=−
41 43
200 911
2
.
.
iPD− 1
−1
0 1 2 3 4 50
50
100
150
200
250Output at V5
Log freq(Hz)
Volts Voi
Li
Vo ErefRR
:= ⋅ +
156
7028_C003.fm Page 77 Thursday, January 12, 2006 9:25 AM
78N
od
e List Toleran
ce An
alysis: Enh
ancin
g SPICE C
apab
ilities with
Math
cad3.15 LTC 1562 BAND-PASS FILTER IC IN A QUAD IC
3
2
V1V2 V3 V4 V5 V6RIN1
Ein11
C2ARQ1 R1A
R21
R5 R6C1A
V−
V++
−
14 3
211V−
V++
−
14 3
211V−
V++
−
14
3
2
V7V8 V9 V10 V11 V12RIN2
11
C2BRQ2 R1B
R22
C1B R7 R8
V−
V++
−
14
To RIN3
3
211
1V−
V++
−
4 3
211
1V−
V++
−
4
3
2
V13V14 V15 V16 V17 V18RIN3
11
C2CRQ3 R1C
R23
R9 R10C1C
V−
V++
−
14 3
211V−
V++
−
14 3
211V−
V++
−
14
3
2
V19V20 V21 V22 V23 V24RIN4
11
C2DRQ4 R1D
R24
C1D R11 R12
V−
V++
−
14
Vout
3
211
1V−
V++
−
4 3
211
1V−
V++
−
4
7028_C003.fm
Page 78 Thursday, January 12, 2006 9:25 A
M
Controlled Sources 79
Opamp rolloff for the first four stages of this circuit is shown following. Theremaining stages have infinite bandwidth at gain Ao.
Output plot — see following Mathcad file. Resistor values for fo = 100 KHzare from LTC data sheet [1]. Total circuit has 40 unknown nodes and 68 components.
See Section 3.16 following.
3.16 LTC 1562 QUAD BAND FILTER IC
K := 103 m := 10–3 u := 10–6 n := 10–9 p := 10–12
See Section 3.15 for a schematic of the four connected sections and the opamprolloff subcircuit.First-stage resistor values for 100-KHz fo:
RIN1 := 42.2·K RQ1 := 42.2·K R21 := 10·K R1A := 10·KC1A := 159.15·p C2A := C1A R5 := 10·K R6 := 10·K
Second-stage resistor values for 100-KHz fo:
RIN2 := 42.2·K RQ2 := 42.2·K R22 := 10·K R1B := 10·KC1B := 159.15·p C2B := C1B R7 := 10·K R8 := 10·K
Third-stage resistor values for 100-KHz fo:
RIN3 := 42.2·K RQ3 := 42.2·K R23 := 10·K R1C := 10·KC1C := 159.15·p C2C := C1B R9 := 10·K R10 := 10·K
Fourth-stage resistor values for 100-KHz fo:
RIN4 := 42.2·K RQ4 := 42.2·K R24 := 10·K R1D := 10·KC1D := 159.15·p C2D := C1B R11 := 10·K R12 := 10·K
R13
C3
V25 V26 R14
C4
V27 V28V2 V8
R15
C6
V29 V30 R16
C5
V31 V32
R17
C7
V33 V34 R18
C8
V35 V36V14 V20
R19
C9
V37 V38 R20
C10
V39 V40
+−
+−
+−
+−
+−
+−
+−
+−
+−
+−
+−
+−
7028_C003.fm Page 79 Thursday, January 12, 2006 9:25 AM
80 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
These component values were obtained from Reference 1.Opamp frequency rolloff components:
R13 := 1 R14 := 1 R15 := 1 R16 := 1 R17 := 1R18 := 1 R19 := 1 R20 := 1Cx1 := 15.91·m Cx2 := 159·n (10-Hz and 1-MHz poles)
(Note: These poles, and Ao (given in the following), are estimates because thevendor chose not to put this information in the data sheet.)
C3 := Cx1 C4 := Cx2 C5 := Cx1 C6 := Cx2 C7 := Cx1C8 := Cx2 C9 := Cx1 C10 := Cx2
Ein := (99 1) Lao := 130
Component node lists:
LL := 0 GG := 0 Y := 20 U := 40
Quad 1 of 4 quads
AoLao
:=
10 20
RR
RIN
RQ
R A
R
R
R
1
99 1 1
1 2 1
2 3 1
6 1 21
4 5 5
5 6 6
:=
CCC A
C A:=
1 2 2
3 4 1
EE Ao
Ao
Ao
1
25 0 0 1 1
27 0 26 0 1
2 0 28 0
4 0 0 3
6 0 0 5
:=
1st opamp inv input.
1st opamp 10 Hz pole
1st opamp 1MHz pole
2nd opamp, no roolloff
3rd opamp, no rolloff
7028_C003.fm Page 80 Thursday, January 12, 2006 9:25 AM
Controlled Sources 81
Quad 2 of 4
Quad 3 of 4
RR
RIN
RQ
R B
R
R
R
2
2 7 2
7 8 2
8 9 1
12 7 22
10 11 7
11 12 8
:=
CCC B
C B2
7 8 2
9 10 1:=
EE Ao
Ao
Ao
2
29 0 0 7 1
31 0 30 0 1
8 0 32 0
10 0 0 9
12 0 0 11
:=
4th opamp inv input.
4th opampp 10 Hz pole
4th opamp 1MHz pole
5th opamp, nno rolloff
6th opamp, no rolloff
RR
RIN
RQ
R C
R
R
3
8 13 3
13 14 3
14 15 1
18 13 23
16 17 9
17 18
:=
RR10
CCC C
C C3
13 14 2
15 16 1:=
EE Ao
Ao
Ao
3
33 0 0 13 1
35 0 34 0 1
14 0 36 0
16 0 0 15
18 0 0 17
:=
7 th opamp inv input.
7th oopamp 10 Hz pole
7th opamp 1MHz pole
8th opammp, no rolloff
9th opamp, no rolloff
7028_C003.fm Page 81 Thursday, January 12, 2006 9:25 AM
82 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Quad 4 of 4
R and C’s for rolloff poles:
Stack into one array:
RR := stack(RR1,stack(RR2,stack(RR3,stack(RR4,RR5))))CC := stack(CC1,stack(CC2,stack(CC3,stack(CC4,CC5))))EE := stack(EE1,stack(EE2,stack(EE3,stack(EE4,CC5))))
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
RR
RIN
RQ
R D
R
R
4
14 19 4
19 20 4
20 21 1
24 19 24
22 23 11
23
:=
224 12R
CCC D
C D4
19 20 2
21 22 1:=
EE Ao
Ao
Ao
4
37 0 0 19 1
39 0 38 0 1
20 0 40 0
22 0 0 21
24 0 0 23
:=
10 th opamp inv input.
10tth opamp 10 Hz pole
10th opamp 1MHz pole
11thh opamp, no rolloff
12th opamp, no rolloff
RR
R
R
R
R
R5
25 26 13
27 28 14
29 30 15
31 32 16
33 34 17
35 3
:=
66 18
37 38 19
39 40 20
R
R
R
CC
C
C
C
C
C
C
C
5
26 0 3
28 0 4
30 0 5
32 0 6
34 0 7
36 0 8
38 0 9
40 0
:=
CC10
rows A cols A
rows B cols B
rows D cols D
r
( ) ( )
( ) ( )
( ) ( )
oows E cols E( ) ( )
=
16 16
16 1
1 16
1 1
Format
N N
N M
K N
K M
:
7028_C003.fm Page 82 Thursday, January 12, 2006 9:25 AM
Controlled Sources 83
AC Analysis
BF := 40·K LF := 180·K NP := 101
i := 1..NP + 1 Fi := BF + DF·(i – 1)
s := 2·π·F· cvi := D·(si·I – A)–1·B + E voi := db(cvi)
Get SPICE output (see SPICE listing below)Fnom := READPRN(“c:\SPICEapps\datfiles\ltc1562_nom.txt”)N := rows(Fnom) N = 101 k := 1..N
SPICE plot separated by 5 dBV from NDS plot to show both. Also see AmplitudeResponse plot in Reference 1.
Y = 20
SPICE listing for Itc1562.med
LTC1562 Analysis
* File: Itc1562A.cir
VEin 99 0 AC 1
*
* Quad 1 of 4 quads
*
DFLF BF
NP:= −
−1
40 60 80 100 120 140 160 180−70−60−50−40−30−20−10
0102030
NDSSpice
LTC1562 output at node Y
Freq(KHz)
dBV
Voi
db(Fnomk,2) − 5
FiK , Fnomk,1
K
7028_C003.fm Page 83 Thursday, January 12, 2006 9:25 AM
84 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
RIN1 99 1 4.22K
RQ1 1 2 42.2K
R1A 2 3 10K
R21 6 1 10K
R5 4 5 10K
R6 5 6 10K
C1A 3 4 159.15p
C2A 1 2 159.15p
EE1 25 0 0 1 1
EE2 27 0 26 0 1
EE3 2 0 28 0 3.162E6
EE4 4 0 0 3 3.162E6
EE5 6 0 0 5 3.162E6
*
Quad 2
*
RIN2 2 7 42.2K
RQ2 7 8 42.2K
R1B 8 9 10K
R22 12 7 10K
R7 10 11 10K
R8 11 12 10K
C2B 7 8 159.15p
C1B 9 10 159.15p
EE6 29 0 0 7 1
EE7 31 0 30 0 1
EE8 8 0 32 0 3.162E6
EE9 10 0 0 9 3.162E6
EE10 12 0 0 11 3.162E6
*
* Quad 3
7028_C003.fm Page 84 Thursday, January 12, 2006 9:25 AM
Controlled Sources 85
*
RIN3 8 13 42.2K
RQ3 13 14 42.2K
R1C 14 15 10K
R23 18 13 10K
R9 16 17 10K
R10 17 18 10K
C2C 13 14 159.15p
C1C 15 16 159.15p
EE11 33 0 0 13 1
EE12 35 0 34 0 1
EE13 14 0 36 0 3.162E6
EE14 16 0 0 15 3.162E6
EE15 18 0 0 17 3.162E6
*
Quad 4
*
RIN4 14 19 42.2K
RQ4 19 20 42.2K
R1D 20 21 10K
R24 24 19 10K
R11 22 23 10K
R12 23 24 10K
C2D 19 20 159.15p
C1D 21 22 159.15p
EE16 37 0 0 19 1
EE17 39 0 38 0 1
EE18 20 0 40 0 3.162E6
EE19 22 0 0 21 3.162E6
EE20 24 0 0 23 3.162E6
*
7028_C003.fm Page 85 Thursday, January 12, 2006 9:25 AM
86 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
* R’s & C’s for opamp poles
*
R13 25 26 1
R14 27 28 1
R15 29 30 1
R16 31 32 1
R17 33 34 1
R18 35 36 1
R19 37 38 1
R20 39 40 1
C3 26 0 15.915M
C4 28 0 159.15n
C5 30 0 15.915M
C6 32 0 159.15n
C7 34 0 15.915M
C8 36 0 159.15n
C9 38 0 15.915M
C10 40 0 159.15n
*
.OPTIONS NOMOD NOPAGE NOECHO
.AC LIN 101 40000 180000
.PRINT AC V(20)
.END
7028_C003.fm Page 86 Thursday, January 12, 2006 9:25 AM
Controlled Sources 87
3.17 BJT CONSTANT CURRENT SOURCE — A SIMPLE LINEAR MODEL USING THE NDS METHOD
K := 103 mA := 10–3 uA := 10–6 pA := 10–12 Ecc := 15R1 := 10·K R2 := 1.4·K R3 := 300 R4 := 0.01Ein := (99 Ecc) beta := 100 U := 4
Use Roe = 1/hoe = 50 K in linear model — simulates Early voltage.Roe := 50K
Ib flows through Vbe. The values of Ix and Iy are not needed, only Id.
Vbe initial guess:
Vbe := 0.6
Vbe refinement; see next page.
Vbe := 0.705
Match Vd
Constant Current Source Explanatory schematic
R3V3
V3
V4
Ic
V1
V2
R2
VbeVdIx Iy
Ein
R4
V4V1
V2D1
Q1
R2 R3
R4
R1R1
Ein
+−
+−
+−
+−
RR
R
R
R
R
Roe
:=
99 1 1
2 0 2
3 0 3
1 4 4
99 3
Id Ix IyVR
= + = 22
7028_C003.fm Page 87 Thursday, January 12, 2006 9:25 AM
88 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Vd := Vbe
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
V := Isolve (A1, B2)
Get node voltages from nodes 1 to U: k := 1..U
Get VCCS currents set by GG: Ngg := rows (GG) n := 1..Ngg
Isrc = 5.31 mA
Id = 1.207mA Id := V5
Id = 1.207 mA Id := V5 Checks.
Refine Vbe:
ml := 0.068 b1 := 0.588 Ib = 53.15uA
Vbe = 0.705
Ie = 5.63 mA Ic := le – lb Ic = 5.58 mA
Iroe = 266.19uA Ic – Iroe = 5.31mA
Ib + Id = 1.26mA Checks.
GG RbetaR
:=
1 2 2 012
99 3 1 44
IdVR
Ic beta Ib betaV V
R
=
= ⋅ = ⋅ −
22
1 44
EE
VdEccVbcEcc
:=
1 2 99 0
4 3 99 0
Vk =
2 395
1 69
1 69
2 395
.
.
.
.
V U mAn+ =
⋅
1 21
5 31
.
.
IdVR
:= 2
2
IbV V
R:= −1 4
4
IsrcIb
= 100 Vbe mlIbuA
b: log= ⋅
+ 1 Ie
VR
:= 3
3
IroeEcc V
Roe:= − 3
Ecc VR
V VR
VR
Ib Id
− = − +1 1 2
14
4 2Ecc V
RmA
− =1
11 26.
V vR
VR
mA1 4 2
4 21 26
− + = .
7028_C003.fm Page 88 Thursday, January 12, 2006 9:25 AM
Controlled Sources 89
3.18 uA733 VIDEO AMPLIFIER
K := 103 mA := 10–3 uA := 10–6 pA := 10–12
Also see NE592 Video Amplifier (http://onsemi.com)
Rs := 0.01 R1 := 2.4·K R2 := 2.4·K R3 := 50 R4 := 590R5 := 50 R6 := 590 R7 := 1.1·K R8 := 1.1·K R9 := 7·KEin1 := 4.1 Ein2 := 4.0 Ein3 := 15 beta := 100 R10 := 7·KRoe := 50·K (Simulates 1/hoe of transistors. Not shown on schematic.)Rg := 20·K
Current source values obtained from analysis on the previous page.
I1 := 5.31·mA (R3 = 300) I2 := I1 U := 16
I3 := 4.54·mA (R3 = 350) I4 := I3Initialize Vbe: Vbe := (0.6 0.6 0.6 0.6 0.6 0.6)T
Vbe := (0.68 0.68 0.69 0.68 0.70 0.70)T
Vbe refinements; see next page.
+−
+−
+−
+−
R3
V1
V5 V6
V2
V3
V4Rs
V3
V4 V11
Out
Out2
V10
V15
V16Q6
Ein
Q5
I2 I3 I4
Rs
Rs
Rs
R9
R10
V13V1
V1Q3 Q4
V8
R8R7
V9
Q2
V7I1
RgR6
R5
R4Ein1
Ein2
Q1
R2R1
Ein
Ein
Ein
Ein
:=
99 1
98 2
97 3
7028_C003.fm Page 89 Thursday, January 12, 2006 9:25 AM
90 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
RR
R
R
R
R
R
R
R
R
:=
99 1 3
98 2 5
97 3 1
97 4 2
5 7 4
6 7 6
97 8 7
97 9 8
3 110 9
4 11 10
4 13
3 14
9 16
8 15
5 6
3 5
4 6
R
R
Rs
Rs
Rs
Rs
Rg
Roe
Rooe
Roe
Roe
Roe
Roe
8 12
9 12
97 10
97 11
R
R
Rg
3
5
external
external
externall
Vbe voltage sources
EE
VbeEinVb
:=
1 5 97 03
2 6 97 0
1
eeEinVbeEinVbeEin
2
3
4
3
13 12 97 03
14 12 97 03
16 10 97 003
15 11 97 03
5
6
VbeEinVbeEin
7028_C003.fm Page 90 Thursday, January 12, 2006 9:25 AM
Controlled Sources 91
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
V := lsolve(A1,B2)
Get all node voltages from 1 to U:
k := 1..U Vnk := Vk
See the following.
Get VCCS currents set by GG:
Ngg := rows(GG) n := 1..Ngg Vin := Vn+U
ViT = (5.31 5.31 4.54 4.54 2.6 2.42 3.09 2.04 4.8 4.62)mA
GG
IEin
IEin
IEin
:=
7 0 97 01
3
12 0 97 02
3
10 0 97 03
3
11 0 977 04
3
3 5 99 13
4 6 98 25
8 12 4 13
IEinbetaRbetaRbetaRs
99 12 3 14
97 10 9 16
97 11 8 15
betaRs
betaRs
betaRs
⋅Current source I1 (Ic = beta Ib)
CCurrent source I2, etc.
Q1 current source frrom V3 to V5,
controlled by Ib = Ein1–V1
R3Q22 current source from V4 to V6,
controlled bby Ib = Ein2–V2
R5Q3 current source from V8 to V12,
controlled by Ib = V4–V13
Rs, etc
7028_C003.fm Page 91 Thursday, January 12, 2006 9:25 AM
92 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Get base currents to refine Vbe:
IbT = (26.01 24.21 30.87 20.35 48.02 46.19)uA w := 1..rows(Ib)
From Vbe curve-fit data:
m1 :=0.068 b1 := 0.588
VbeT = (0.68 0.68 0.69 0.68 0.70 0.70)
Copy to Vbe in the previous text.Repeat if necessary.(Converges very rapidly.)
IbEin V
R
IbEin V
R
IbV V
Rs
Ib
11
22
34 13
13
25
:
:
:
= −
= −
= −
443 14
59 16
68 15
:
:
:
= −
= −
= −
V VRs
IbV V
Rs
IbV V
Rs
Vbe mlIbuA
bWw: log= ⋅
+ 1
7028_C003.fm Page 92 Thursday, January 12, 2006 9:25 AM
Controlled Sources 93
NDS (Mathcad) Spice using 2N3904
Vk =
4 0987
3 9988
9 3
.
.
. 1186
9 3286
3 4187
3 3188
1 8023
11 4909
12 6208
1
.
.
.
.
.
.
11 9208
10 7909
8 6386
9 3286
9 3186
11 4909
12 6
.
.
.
.
.
.
. 2208
=Vspice :
.
.
.
.
4 0991
3 9992
9 3188
9 32999
3 4085
3 3104
1 7930
11 4960
12 6350
11 9280
10
.
.
.
.
.
.
..
.
.
.
.
.
7900
8 6342
9 3299
9 3188
11 4960
12 6350
= −peV
Vspicek
k
k
: 1
Percent error, each node
pe =
−−−−
0 01
0 01
0 00
.
.
.
00 01
0 30
0 25
0 52
0 04
0 11
0 06
0 01
0 05
0
.
.
.
.
.
.
.
.
.
.
−−−
− 001
0 00
0 04
0 11
−−−
.
.
.
= −%
min( ) . %
ma
pe 0 11
xx( ) . %pe = 0 52
7028_C003.fm Page 93 Thursday, January 12, 2006 9:25 AM
94 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
SPICE Comparison of uA733 Video Amplifier Analysis
uA733 Video Ampl
* File: uA733_va.cir
VEin1 99 0 DC 4.1
VEin2 98 0 DC 4.0
VEin3 97 0 DC 15
*
R3 99 1 50; External input resistor
R5 98 2 50; External gain resistor
R1 97 3 2.4K
R2 97 4 2.4K
R4 5 7 590
R6 6 7 590
R7 97 8 1.1K
R8 97 9 1.1K
R9 3 10 7K
R10 4 11 7K
Rg 5 6 20K; External gain resistor
*
Rs1 4 13 0.01
Rs2 3 14 0.01
Rs3 9 16 0.01
Rs4 8 15 0.01
* Current sources
I1 7 0 DC 5.31mA
I2 12 0 DC 5.31mA
I3 10 0 DC 4.54mA
I4 I1 0 DC 4.54mA
*
* C B E
Q1 3 1 5 Q2N3904
7028_C003.fm Page 94 Thursday, January 12, 2006 9:25 AM
Controlled Sources 95
Q2 4 2 6 Q2N3904
Q3 8 13 12 Q2N3904
Q4 9 14 12 Q2N3904
Q5 97 16 10 Q2N3904
Q6 97 15 11 Q2N3904
*
* Bf=416.4
.model Q2N3904 NPN(Is=6.734f Xti=3 Eg=1.11 Vaf=74.03 +Bf=416.4 Ne=1.259 Ise=6.734f Ikf=66.78m Xtb=1.5 +Br=.7371 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=3.638p Mjc=.3085 +Vjc=.75 Fc=.5 Cje=4.493p Mje=.2593 Vje=.75 Tr=239.5n +Tf=301.2p Itf=.4 Vtf=4 Xtf=2 Rb=10)
*
OPTIONS NOMOD NOECHO NOPAGE
.END
REFERENCES
1. LTC1562 Data Sheet, p. 18, www.linear.com.
NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE
(1) 4.0991 (2) 3.9992 (3) 9.3188 (4) 9.3299
(5) 3.4085 (6) 3.3104 (7) 1.7930 (8) 11.4960
(9) 12.6350 (10) 11.9280 (11) 10.7900 (12) 8.6342
(13) 9.3299 (14) 9.3188 (15) 11.4960 (16) 12.6350
(97) 15.0000 (98) 4.0000 (99) 4.1000
7028_C003.fm Page 95 Thursday, January 12, 2006 9:25 AM
This page intentionally left blank
97
4
Leverrier’s Algorithm
4.1 NUMERICAL TRANSFER FUNCTION [1]
The transfer matrix G is a matrix of output/input transfer functions. It has thedimensions K M, or output input. The desired numerical transfer function is anelement of the transfer matrix G. For example, output 1 /
input 2 would be G
12
.Leverrier’s algorithm finds both.
Note that in the following sequence, the symbol tr( ) indicates the trace of a matrix,i.e., the sum of the diagonal elements. General subscripts are given in parentheses, butspecific ones are not. That is, F
N – 1
is designated F(N – 1). However, F
2
would bedesignated by F2. This is to prevent double subscript sets in later equations.
For a given matrix A of dimension N N, the general sequence is:
The numerator coefficients are then:
I
F N I T Ntr A F N
=
= = − =− ⋅ −( )
identity(N)
( – ) ( )1 11
= − = ⋅ − + − ⋅ − =− ⋅ −
1
2 1 1 2F N A F N T N I T Ntr A F N
( ) ( ) ( ) ( )22
2
3 2 2 3
( )
= − = ⋅ − + − ⋅ − =−
F N A F N T N I T Nt
( ) ( ) ( ) ( )rr A F N
F A F T I Ttr A F
N
⋅ −( )
= ⋅ + ⋅ =− ⋅( )
−
3
3
1 2 2 11
11
0 1 1 00
F A F T I Ttr A F
N= ⋅ + ⋅ =
− ⋅( )
Y N D F N B E T N
Y N D F N B
( ) ( ) ( )
( ) ( )
− = ⋅ − ⋅ + ⋅ −
− = ⋅ − ⋅
1 1 1
2 2 ++ ⋅ −
= ⋅ ⋅ + ⋅
= ⋅ ⋅ + ⋅
E T N
Y D F B E T
Y D F B E T
( )2
1 1 1
0 0 0
7028_C004.fm Page 97 Thursday, January 12, 2006 9:53 AM
98
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The output I /
input J transfer function extracted from the K M transfer matrixG is then:
A simple example will help clarify the procedure. Let
in which N = 3The trace of A = 5; the trace of I = 3.Sequence is: F2 = I
The denominator of G
I,J
is then
D(s) = s
3
+ T2s
2
+ T1s + T0 = s
3
+ 5s
2
+ 8s + 4
Let the D, B, and E arrays be, with K M = 2 2.
We compute the numerator of G using:
G sE s Y N s Y N s Y
I J
I JN
I JN
I JN
( ) =+ −( ) + −( ) + +− −1 2 11 2 II J I J
N N N
s Y
s T N s T N s T s T
+
+ −( ) + −( ) + + +− −
0
1 2 1 01 2
A I=−
−−
=
1 0 0
0 4 4
0 1 0
1 0 0
0 1 0
0 0 1
,
Ttr A F
F A F T I22
15 1 2 2
4 0 0
0 1 4
0 1 5
=− ⋅( ) = = ⋅ + ⋅ =
−
,
=− ⋅( ) = = ⋅ + ⋅ =T
tr A FF A F T I1
1
28 0 1 1
4 0 0
0 0 4
0
,
−−
=− ⋅( ) =
1 4
00
34T
tr A F
D B E=−
=
−
=1 0 1
0 0 1
1 0
0 1
1 1
1 0
0 1, ,
7028_C004.fm Page 98 Thursday, January 12, 2006 9:53 AM
Leverrier’s Algorithm
99
The numerator of G is a matrix polynomial:
Then:
and G
2,2
is
,
etc.Another way to find D(s) is by using eigenvalues:
then
D(s) = (s + 1)(s + 2)(s + 2) = s
3
+ 5s
2
+ 8s + 4
A circuit example is given in Section 4.2.
Y D F B E T
Y D F B E T
2 2 25 1
1 4
1 1 19
= ⋅ ⋅ + ⋅ =−
= ⋅ ⋅ + ⋅ =−66
5 2
0 0 04 5
4 1
= ⋅ ⋅ + ⋅ =−−
Y D F B E T
N s Es Y s Y s Y s( ) = + + + =
+
−
3 2 32 1 01 0
0 1
5 1
1 4
+−
+
−−
= ( )(
s
s
GN s
D sI J
2
9 6
5 2
4 5
4 1
, ))
Gs s
s s s1 2
2
3 2
6 5
5 8 4, =
− + +( )+ + +
Gs s ss s s
2 2
3 2
3 2
4 2 15 8 4
, = + + −+ + +
A A=−
−−
=−−−
1 0 0
0 4 4
0 1 0
2
2, ( )eigenvals
11
7028_C004.fm Page 99 Thursday, January 12, 2006 9:53 AM
100
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
4.2 TRANSFER FUNCTION USING LEVERRIER’S ALGORITHM FOR TWIN-T RC NETWORK
→
Reference:C:\mcadckts\CaNL11\TwinT2.mcd
See schematic in Section 2.5.Display A, B, D, and E arrays:
D = (0 –1 –1) E = (1)
The N N identity matrix is obtained from the referenced subprogram:
K M = 1 1 here.
Step 1
F2 := I T2 = 1895.48
Y2 := D·F2·B + E·T2 Y2 = (374.53)
Step 2
F1 := A·F2 + T2·I T1 = 718489.21
Y1 := D·F1·B + E·T1 Y1 = (140274.07)
Step 3
F0 := A·F1 + T1·I T0 = 5.56
×
10
7
Y0 := D·F0·B + E·T0 Y0 = (5.27
×
10
7
)
A =− − −− − −
374 53 187 27 187 27
374 53 1136 41 384
. . .
. . .553
374 53 384 53 384 53− − −
. . .
B =
374 53
1136 41
384 53
.
.
.
I =
1 0 0
0 1 0
0 0 1
Ttr A F
22
1:=
− ⋅( )
Ttr A F
11
2:=
− ⋅( )
Ttr A F
00
3:=
− ⋅( )
7028_C004.fm Page 100 Thursday, January 12, 2006 9:53 AM
Leverrier’s Algorithm
101
Transfer function:
Compare the following plot with that of the twin-T network in Section 2.5:
REFERENCES
1. D.M. Wiberg, Schaum’s Outline Series,
State Space and Linear Systems
, McGraw-Hill, 1971, p. 102.
G sE s Y s Y s Y
s T s T s T( ) = ⋅ + ⋅ + ⋅ +
+ ⋅ + ⋅ +:
3 2
3 2
2 1 02 1 0
0 20 40 60 80 100−60−50−40−30−20−10
0Transfer function magnitude
Freq(Hz)
dBV db(G(si))
Fi
7028_C004.fm Page 101 Thursday, January 12, 2006 9:53 AM
This page intentionally left blank
103
5
Stability Analysis
5.1 UNITY GAIN DIFFERENTIAL AMPLIFIERS
The NDS Method can be used for stability analysis problems. Techniques illustratedare, (1)
Α
and
β
slope intersection method, and (2) gain-phase plots of loop gain
Αβ
. Several examples are contained in this chapter. (In control theory, the symbolsG and
Η
are used for
Α
and
β
respectively.)
K := 10
3
u := 10
–6
p := 10
–12
Meg := 10
6
Hz := 1 MHz := 10
6
Compensated unity gain differential amplifier
R1 := 30·K R2 := 30·K R3 := 100·Meg R4 := 10·Meg (R4 internal to opamp)R5 := 30·K R6 := 30·KC3 := 0.01·u C4 := 5·p (Stray package capacitance)
Beta equivalent circuit (R4 and C4 internal to opamp)Note that Vo becomes the input, or Ein.
R1R2
Ein1
R3
C3
Ein2
R5
R6
11V−
V+
21
43
−
+
V0
R1R2
R3
V2R4
V1
C3
R5R6
V3
C4
V0 (Ein)
7028_C005.fm Page 103 Thursday, January 12, 2006 9:55 AM
104
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
By definition:
The inverse of this is:
For opamp poles:
f1 := 20·Hz f2 := 1·MHz
ω
1 := 2·
π
·f1
ω
2 := 2·
π
·f2
U := 3
Two outputs are V1 and V3
LL := 0 GG := 0 EE := 0 Ein := (99 1) One input.
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
AC Analysis
BF := 2 ND := 5 PD := 20 i := 1..ND·PD + 1
F := 10
L
cv
i
:= D·(s
i
·I – A)
–1
·B + E
For the opamp:
Ao := 10
5.5
V1
i
:= (cv
i
)
1
V3
i
:= (cv
i
)
2
BetaV V
Ein= −1 3
InvBetaEin
V V=
−1 3
rd := 180π
Y :=
1
3
RR
R
R
R
R
R
R
:=
99 1 1
1 0 2
1 2 3
1 3 4
3 0 5
3 0 6
CCC
C:=
2 3 3
1 3 4
L BFiPD
i = + − 1s F:= ⋅ ⋅ ⋅ −2 1π
AoAo
s sii i
11
11
2
=+
⋅ +
ω ω
7028_C005.fm Page 104 Thursday, January 12, 2006 9:55 AM
Stability Analysis
105
Recall that Va
i
:= V1
i
– V3
i
Aold := A (for future reference)
This is with the compensation R3 and C3 (sometimes called the “beta killer”)disabled by setting R3 = 100 Meg. To enable it, we now set R3 = 2K, RR
3,3
:= 2·K,and call the reference template again to get the new A matrix value.
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Anew := A
cv
i
:= D·(s
i
·I – A)
–1
·B + E V1
i
:= (cv
i
)
1
V3
i
:= (cv
i
)
2
Vb
i
:= V1
i
– V3
i
Net slope of intercept is >20 dB/decade implies unstable (R3 = 100 Meg).Net slope of intercept = 20 dB/decade implies stable (R3 = 2 K).
Plot Loop Gain as a Gain–Phase Plot:
Loop gain is defined as (Aol)(Beta)
AB1
i
:= db(Aol
i
·Va
i
) AB2
i
:= db(Aol
i
·Vb
i
)
φ
i
:= rd·arg(Aol
i
·Va
i
)
θ
i
:= rd·arg(Aol
i
·Vb
i
)
φ
i
:= if(
φ
i
> 0,
φ
i
– 360,
φ
i
)
θ
i
:= if(
θ
> 0,
θ
i
– 360,
θ
i
)
Zero crossover markers:F1 := –192 F2 := –103
Y =
1
3
Aold =−
− ×
1 1
2000 6 689 106.Anew =
−× − ×
50000 50000
1 10 1 067 108 8.
2 3 4 5 6 7−20−10
01020304050607080
AolR3 = 100 MegR3 = 2 K
With and without compensation
Log freq(Hz)Li
dBV
db(Aoli)
−db(Vai)
−db(Vbi)
7028_C005.fm Page 105 Thursday, January 12, 2006 9:55 AM
106
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Phase margin (R3 = 100 Meg) = 180 + F1 =
−
12 implies unstable.Phase margin (R3 = 2 K) = 180 + F2 = 77 implies stable.
5.2 STABILITY OF LM158 OPAMP MODEL
In this section, the stability of an LM158 opamp model embedded in a feedbackcircuit is analyzed.
Meg := 10
6
K := 10
3
U := 10
6
MHz := 10
6
N := 10
9
p := 10
12
−230 −210 −190 −170 −150 −130 −110 −90−50
0
50
R3 = 100 MegR3 = 2 K
Gain-phase plot
Phase angle (Deg)
Gain
(dBV
)
AB1i
AB2i
F1 F2
φi, θi
R3 C1 V3 Rs
Ein
R6V7 V8
V2
(V2)R1
0.1 uFV1
V1
10 K
R2
R4 V4 V5 R5 V6
C3 C4EE2 EE3EE4
C2 +−
+−
+−
1.13 K
2.26 KX
LM158 model
R3 C1 V3 Rs
Ein1(V2)R1
0.1 uFV1
10 K
R2
1.13 K
2.26 K
C1Original circuit
Feedback (beta) circuit
Using LMI 58 modelV3 Rs
V2R1
0.1 uFV1
10 K
R2
R3
1.13 K
2.26 KEin Ein
11V−
V+
2
1
43
−
+
LM158 opamp
7028_C005.fm Page 106 Thursday, January 12, 2006 9:55 AM
Stability Analysis
107
R1 := 10·K R2 := 2.26·K R3 := 1.13·K R4 := 99.47·MegR5 := 10 R6 := 10 C1 := 0.1·u C2 := 80·p C3 := 13.263·nC4 := 7.958·n Rs := 0.01 Ao := 10
5
U := 8
The feedback circuit consists of R1, R2, R3, and C1. The opamp model consistsof R4, C2, R5, C3, R6, C4, and VCVSs EE2 through EE4. When analyzing thefeedback factor beta, the output V2 becomes an input Ein1. For the opamp model,inverting input V1 becomes a new input Ein1. f1, f2, and f3 are the three polefrequencies (Hz) of the opamp model.
Ein := (99 1) LL := 0 GG := 0
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Aold := A Bold := B
Save arrays.
New value for C2
C2 := 250·p
Insert into CC array:CC
2,3
:= C2
Y =
1
2
fR C
fR C
fR C
f1 2 31
2 4 21
2 5 31
2 6 4: : : log=
⋅ ⋅=
⋅ ⋅=
⋅ ⋅π π π(( ) =
1 3
6 08
6 3
.
.
.
RR
R
R
R
R
R
R
Rs
:=
99 1 1
1 0 2
1 0 3
99 4 4
5 6 5
7 8 6
99 3
CC
C
C
C
C
:=
3 1 1
4 0 2
6 0 3
8 0 4
EE
Ao
:=
5 0 4 0 1
7 0 6 0 1
2 0 8 0
7028_C005.fm Page 107 Thursday, January 12, 2006 9:55 AM
108
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Call reference again with new value of C2:
New pole frequency f1:
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Anew := A Bnew := B
AC Analysis
BF := 0 ND := 7 PD := 20 i := 1..ND·PD + 1
Va
i
:= D·(s
i
·I – Aold)
–1
·Bold + E Va
i
:= (va
i
)
1
A3
i
:= (va
i
)
2
Vb
i
:= D·(s
i
·I – Anew)
–1
·Bnew + E A4
i
:= (vb
i
)
2
Loop gain:
AB1
i
:= A3
i
·Va
i
AB2
i
:= A4
i
·Va
i
φ
i
:= rd·arg(A3
i
·Va
i
)
α
i
:= rd·arg(A4
i
·Va
i) φi := if(φi > 0, φi – 360, φi) αi := if(αi > 0, αi – 360, αi)
Zero crossover markers:
F1 := –165 F2 :=–129
Phase margins:
PM1 := 180 + F1 PM1 = 15 PM2 := 180 + F2 PM2 = 51
Stability rule of thumb: Phase margin should be greater than 45°.
fR C
11
2 4 2:=
⋅ ⋅πlog
.
.
.
f( ) =
0 81
6 08
6 3
L BFiPD
i = + − 1s L:= ⋅ ⋅ ⋅ −2 10 1π
rd := 180π
−300 −250 −200 −150 −100 −50 0−20
0
20
40
60
80
C2 80 pFC2 250 pF
Gain-phase plot of loop gain AB
Deg
0
dBV
db(AB1i)
db(AB2i)
F1 F2
φi, αi
7028_C005.fm Page 108 Thursday, January 12, 2006 9:55 AM
Stability Analysis 109
Note: Net slope of intercept of Inv Beta with opamp Aol should be 20 dB/dec.
5.3 HIGH-VOLTAGE SHUNT REGULATOR — STABILITY ANALYSIS
In this section, the stability analysis of the HV Shunt Regulator presented in Section3.14 is given.
K := 103 nF := 10–9 Hz := 1 MHz := 106 V := 1
R1 := 10·K R2 := 10·K R3 := 15·K R4 := 150·KR5 := 215·K R6 := 6878 R7 := 562·K R8 := 14.7·KR9 := 1.96·K Ehv := 400 Eref := 6.2 C1 := 2.7·nFC2 := 4.7·nF
db(x) := 20·log(|x|)
0 1 2 3 4 5 6 7−20
020406080
100120
C2 250 pFC2 80 pFInv Beta
Opamp open loop gain and inverse beta
Log freq(Hz)
dBV
db(A4i)
db(A3i)
−db(Vai)
Li
R1
R2
R7
R8
R3
R9
C2
R5
R6
R4
V3
V3
V5
V2 M1
V4
V1V7
V8
R10
V10
V6
M211V−
V+
2
1
43
−
+
Ehv
C1
Eref
7028_C005.fm Page 109 Thursday, January 12, 2006 9:55 AM
110 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Calculate poles, zeros, and critical gain points in dBV:
T1 := C1·(R7 + R8) T3 := R8·C1 T2 := C2·(R4 + R9)T6 := R9·C2
Breakpoint (bp) of loop gain 1 (lg1):
F1 = 102.2 Hz LF1 := log(F1) LF1 = 2.01
First bp of lg2 (see plot marker):
F1 = 222.8 Hz LF2 := log(F2) LF2 = 2.348
Second bp of lg2:
F6 = 17.3 KHz LF6 := log(F6) LF6 = 4.24
BF := 0 ND := 7 PD := 20 i := 1..ND·PD +1
Minor loop inverse beta (see the following derivation).
Major loop inverse beta
High-frequency gain of lg1
G1 = 31.87
High-frequency gain of lg2
G4 = 47.96
FT
11
2 1:=
⋅ ⋅π
FT
21
2 2:=
⋅ ⋅π
FT
61
2 6:=
⋅ ⋅π
L BFiPD
i = + − 1s L:= ⋅ ⋅ ⋅ −2 10 1π
1 13
1 1g db
s Ts T
ii
i
:= − ⋅⋅ +
1 26 12 1
4 63 5 6
g dbs Ts T
R RR R R
ii
i
: –= ⋅ +⋅ +
⋅ ⋅⋅ +( )
G dbRR
1 178
:= +
G dbR R R R R
R R R4
3 4 9 5 6
4 6 9:=
⋅ +( ) ⋅ +( )⋅ ⋅
7028_C005.fm Page 110 Thursday, January 12, 2006 9:55 AM
Stability Analysis 111
Note: Net slope of intercept = 20 dB/dec.Opamp DC open loop gain in V/V:
Ao := 106 Goa := db(Ao) Goa = 120Foa := 30·Hz Foa = First opamp breakpoint.ω1 := 2·π·Foa ω2 := 2·π·2·106 (Opamp poles)
Opamp open loop gain:
IG2 = 10.17
LF3 = 3.43
LF4 = 5.88
0 1 2 3 4 5 6−10
0
10
20
30
40
50
60
70
80
Minor loopMajor loop
Inverse betas & break points
Log freq(Hz)
G4
G1
dBV lg1i
lg2i
LF2 LF6
Li
Ao dbAo
s sii i
11
11
2
=+
⋅ +
ω ω
IG dbR R R
R R2
3 5 6
4 6:=
⋅ +( )⋅
LF LFG IG
3 21 2
20:= + −
LFGoa G
Foa41
20: log= − + ( )
7028_C005.fm Page 111 Thursday, January 12, 2006 9:55 AM
112 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note that at each intercept LF3 and LF4, the net slope is approximately 20dB/decade, which implies stability.
Calculate loop gain GH:
GHi := db(F7i·F8i) + Ao1i
M1 = 37
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 7−10
0102030405060708090
100110120130
OpampMinor loopMajor loop
Stability intercepts
G4
G1
Ao1i
lg1i
lg2i
LF3 LF4
Li
Fs R C
s R Ci
i
i
77 1 1
8 1:= ⋅ ⋅ +
⋅ ⋅
FR
R s R C
s C R Ri
i
i
813
4 9 2 1
2 4 9 1:= ⋅
⋅ ⋅ ⋅ +( )⋅ +( ) +
⋅
+
RR R
65 6
PH argF F Aos sI
i i
i i:= ⋅ − ⋅ ⋅
+
⋅ +
180 7 8
11
12
πω ω
7028_C005.fm Page 112 Thursday, January 12, 2006 9:55 AM
Stability Analysis 113
Note: phasemargin := M1phasemargin := 37Voltage divider R1, R2 not included.
Derivation of minor loop gain 1 (lg1) and major loop gain 2 (lg2):
Ebuff represents source follower M2.Ig1 is the drain current of M1,For lg1 derivation:
For inverse, use –dBV
0 20 40 60 80 100−100
0
100
200Gain vs. phase
Deg
Gain GHi
M1
phi
R7 C1 Va
+−
Ein = 1V 562 K 2.7 nF
R8
Vb1V C2
lg1 derivation 14.7 K
4.7 nF
150 K R91.96 K
15 K R4
lg1
R3
lg2 derivation
215 K
R6
R5 Vc
6.878 K
Ebuff
+−
VaR
R RsC
s R Cs C R R
=+ +
= ⋅ ⋅⋅ ⋅ +( ) +
8
8 71
1
8 11 7 8 1
7028_C005.fm Page 113 Thursday, January 12, 2006 9:55 AM
114 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
For lg2 derivation:
of Ig1
IgV
R1
13
current = ⋅Z
R s R C
s C R RL =
⋅ ⋅ ⋅ +( )⋅ ⋅ +( ) +4 9 2 1
2 4 9 1
VbZR R
R s R C
s C R RL= = ⋅
⋅ ⋅ ⋅ +( )⋅ ⋅ +( ) +3
13
4 9 2 1
2 4 9 1Vc
Vb RR R
=+· 6
5 6
7028_C005.fm Page 114 Thursday, January 12, 2006 9:55 AM
115
6
Transient Analysis
6.1 INTRODUCTION
One method of transient analysis is based on the following equation:
= Ax + Bu or
∆
x = (Ax + Bu)·
∆
t
Because A and B are already known using the NDS method, the task is todetermine
∆
t. If
∆
t is too large, the solution will not be accurate. If
∆
t is excessivelylarge, the solution will not converge. If too small, a longer-than-necessary executiontime may be required. The time increment
∆
t generally should be less than thesmallest time constant in the A matrix. This should be used as a guide in selectingthe initial value of
∆
t. Some adjustment may be required for circuits with very fastand very slow time constants. A simple circuit is used as the first example.
R1 := 20·K R2 := 40·K C1 := 0.5·uF Ein := 4.5
The time constant of this circuit is easily found to be:
τ
:= Rp· C1
τ
= 6.667 ms
To confirm this, KCL at the node V1 gives:
∆∆xt
R2
R1Ein
C1
V1
RpR RR R
:= ⋅+
1 21 2
Ein VR
VR
iC− = +11
12
1
i VR R
EinR
C1 111
12 1
= − ⋅ +
+
7028_C006.fm Page 115 Thursday, January 12, 2006 9:58 AM
116
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Noting that V1 = v
C1
and substituting
,
which is in the state space form
Then
u := Ein A = –150 B = 100 u = 4.5
The time constant of A is
which is
τ
as in the preceding text. We then chose
∆
t = 1 ms <
τ
.Using
∆
x = (Ax + Bu)
⋅∆
t we initialize: Vc
1
:= 0 (can be an initial conditionother than zero)
∆
Vc
1
:= (A·Vc
1
+B·Ein)·
∆
t Vc
1
= 0.45 Vc
2
=
∆
Vc
1
+Vc
1
Vc
2
= 0.45
∆
Vc
2
:= (A·Vc
2
+B·Ein)·
∆
t Vc
2
= 0.383 Vc
3
=
∆
Vc
2
+Vc
2
Vc
3
= 0.832
Combining:
Vc
2
:= (A·Vc
1
+B·Ein)·
∆
t + Vc
1
Vc
2
= 0.45Vc
3
:= (A·Vc
2
+B·Ein)·
∆
t + Vc
2
Vc
3
= 0.832
Setting the maximum number of iteration to kmax := 50 and indexingk := 2..kmax,
Vc
k
: = (A·Vc
k-1
+B·Ein)·
∆
t + Vc
k-1
The total sweep time is: kmax
⋅∆
t = 50 ms, which should be sufficient because5
⋅τ
= 33.33 ms.
i Cdvdt
CC
111= ⋅
dvdt
vC R R
EinR C
C C1 1
111
12 1 1
= − ⋅ +
+
⋅
dxdt
Ax Bu= +
AC R R
:= − ⋅ +
11
11
12
BR C
:=⋅1
1 1
16 667
Ams= .
7028_C006.fm Page 116 Thursday, January 12, 2006 9:58 AM
Transient Analysis
117
We plot Vc and compare this to the continuous solution
t := 0, 0.005·ms..50·ms
Widening the span of k to include k = 1 (Vc
1
= 0):
k := 1..kmax
The steady-state value is
Note the lag of Vc behind the continuous time function F(t). We can decreasethis lag by decreasing Dt to 0.5 ms and by increasing kmax from 50 to 100 tomaintain the same sweep time:
∆
t := 0.5·ms kmax = 100
k := 2..kmax (for computing)Vc
1
:= 0 Vc
k
:= (A·Vc
k–1
+ B·Ein·
∆
t + Vc
k–1
k := 1..kmax (for plotting)
F tEin Rp
Rt
Rp C( ) = ⋅ ⋅ − −
⋅
: exp
11
1
0 10 20 30 40 500
1
2
3Time plot
Volts
Vck
F(t)
Time(ms)
k .∆tms
tms,
Ein RpR⋅ =1
3
kmax := ⋅50 mst∆
7028_C006.fm Page 117 Thursday, January 12, 2006 9:58 AM
118
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Further reduction of
∆
t would result in the two plots approaching congruency.The reader is encouraged to select larger values of
∆
t and note the deleterious effecton the solution.
As will be shown, this method applies irrespective of whether A and B are scalarsas in the preceding text or arrays.
6.2
SWITCHED TRANSIENT ANALYSIS
A more complicated example is now shown to further illustrate the utility of themethod.
R1 := 10·K R2 := 10·K R3 := 2·K R4 := 10·KQloff := 10·Meg Qlon := 0.5(Q1 is a CMOS SPST switch.)
C1 := 0.1·u U := 3 Ein := (99 1)
Analytical Q1off and Q1on time constants:
τ
1
= 1.182m
0 10 20 30 40 500
1
2
3Time plot
Volts
Vck
F(t)
Time(ms)
k .∆tms
tms,
R1
R4Q1
R2
R3
C1 V3V1 V2Ein
2
1
Y :=
1
2
3
τ1 43 1 2
1 2 31:= +
⋅ +( )+ +
⋅R
R R R
R R RC
7028_C006.fm Page 118 Thursday, January 12, 2006 9:58 AM
Transient Analysis
119
τ
2
= 1.167m
V3pk = 0.769
CC:= (2 3 C1)
LL := 0 EE := 0 GG := 0
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Aoff := A Boff := B Doff := D Eoff := E
Close sw Q1
RR
2,3
:= Q1on
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Aon := A Bon := B Don := D Eon := E
Compare time constants:
t1 = 1.182m
From above:
τ
1
= 1.182m t2 = 1.167m
From above:
τ
2
= 1.167m
∆
t := 0.02·m Per := 20·m
kmax = 1000 Ein := 10
Create input pulse from Mathcad’s unit step function
φ
(x):
pulse(x, w) :=
φ
(x) –
φ
(x – w) bpf(x, f, w, Ein) := Ein·pulse(x – f, w)Eapp(t) := bpf(t, 0.05·Per, 0.9·Per, Ein)k := 2..kmaxInitialize: V1
1
:= 0Switch time: Sw := 0.45·kmax Sw·
∆
t = 9m
τ2 42 32 3
1:= + ⋅+
⋅RR RR R
C
V pkR R
R R R R R R3
10 3 43 4 1 2 3 4
:= ⋅ ⋅⋅ + +( ) ⋅ +( )
RR
R
Q off
R
R
R
:=
99 1 1
1 0 1
1 2 2
2 0 3
3 0 4
tAoff
11
:=
tAon
21
:=
k floorPer
tmax :=
∆
7028_C006.fm Page 119 Thursday, January 12, 2006 9:58 AM
120
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
V1
k
:= if(k < Sw, Aoff·V1
k–1
·
∆
t + Boff·Eapp(k·
∆
t)·
∆
t + V1
k–1
, Aon·V1
k–1
·
∆
t + Bon·Eapp(k·
∆
t)·
∆
t + V1
k–1
)Vo
k
:= if(k < Sw, Doff·V1
k
+ Eoff·Eapp(k·
∆
t), Don·V1
k
+ Eon·Eapp(k·
∆
t))
6.3 N = 2 SWITCHED CIRCUIT TRANSIENT RESPONSE
In this section, a circuit with two capacitors (N = 2) with multiple time constantsand a synchronously switched inputs is analyzed.
K := 10
3
u := 10
–6
Meg := 10
6
m := 10
–3
R1 := 10·K R2 := 10·K R3 := 20·K R4 := 100·KQ1off := 10·Meg Q1on := 0.5 C1 := 0.02·u C2 := 0.5·uU := 3 Y := (1 2 3)
T
LL := 0 GG := 0 EE := 0
0 10 15 20–1
–0.5
0
0.5
1
1.5
Vc1V3(Input pulse)/10
Input & output waveforms
–V3pk
V3pkSw .∆tm
Time(ms)
k .∆tm
5
Volts
(Vok)2 − (Vok)3
(Vok)3
Eapp(k .∆t)
10
R1
Q1
R2 R3 R4
1
2
C1
C2
V1
V2 V3
Ein1
Ein2
Ein :=
99 1
98 1
7028_C006.fm Page 120 Thursday, January 12, 2006 9:58 AM
Transient Analysis
121
Two inputs.To be changed to +25 V and
−
10 V later.
Switch Q1 OFF
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Aoff := A Boff := B Doff := D Eoff := E Save OFF arrays.
Switch Q1 ON
RR
3,3
:= Qlon
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aon := A Bon := B Don := D Eon := E Save ON arrays.
tau1 := (400 124.9 400 76.9)u tau4 := 76.9 u
This is the shortest time constant; ∆t must be less than this.Choose
∆t := 50·u Per1 := 20·m Per2 := 40·m
kmax = 800pulse(x, w) := φ(x) – φ(x – w) bpf(x, f, w, Ein) := Ein·pulse(x – f, w)Ein1 := 25 Ein2 := –10Eapp1(t) := bpf(t, 0.05·Per1, 0.95·Per1, Ein1)Eapp2(t) := bpf(t, 0.4·Per1, 0.95·Per1, Ein2)
0.95·Per1 := 19m 0.5·Per1 = 10m
k := 2..kmaxInitialize:
RR
R
R
Q off
R
R
:=
99 1 1
1 2 2
2 98 1
1 3 3
1 0 4
CCC
C:=
1 0 1
3 0 2
tauAoff
tauAoff
tauA
1 2 31 1 1
:max
:min
:max
= ( ) = ( ) =oon
tauAon( ) = ( )4
1:
min
kmax :=
floorPer
t2
∆
Eapp tEapp t
Eapp t( ) :
( )
( )=
1
2
V10
01 :=
7028_C006.fm Page 121 Thursday, January 12, 2006 9:58 AM
122 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Switch time:
Sw := 0.25·kmax Sw = 200 Sw·∆t = 10mV1k := if(k < Sw, Aoff·V1k–1·∆t + Boff·Eapp(k·∆t)·∆t + V1k–1,
Aon·V1k–1·∆t + Bon·Eapp(k·∆t)·∆t + V1k–1)Vok := if(k < Sw, Doff·V1k + Eoff·Eapp(k·∆t), Don·V1k + Eon·Eapp(k·∆t))
SPICE Verification
N=2 Switched Circuit Transient Response
*File: n2tran.cir
V1 99 0 PWL(0,0 1m,0 1.001m,25 19.99m,25 20m,0)
V2 98 0 PWL(0,0 7.99m,0 8m,-10 17.99m,-10 18m,0)
R1 99 1 10K
R2 1 2 10K
R3 1 3 20K
R4 1 0 100K
*
C2 3 0 0.5u
C1 1 0 0.02u
*
* Build separate switch control
05
–15–10–5
1015202530
V1V3Ein1Ein2
0 10 15 20 25 30 35 405
(Vok)1
(Vok)3
Eapp(k .∆t)1
Eapp(k .∆t)2
Sw .∆tm
k .∆tm
7028_C006.fm Page 122 Thursday, January 12, 2006 9:58 AM
Transient Analysis 123
*
V3 97 0 PWL(0,0 9.99m,0 10m,+5 47.99m,+5 48m,0)
RL 97 0 10K
SQ1 2 98 97 0 SMOD
.MODEL SMOD VSWITCH(RON=0.5 ROFF=10MEG VON=+5 VOFF=0)
.TRAN 0.1m 40m 0 50u
.PRINT TRAN V(99) V(98) V(1) V(3)
.OPTIONS NOMOD NOECHO NOPAGE
.END
Tnom := READPRN(“c:\SPICEapps\datfiles\n2tran.txt”)N := rows(Tnom) N = 401 k := 1..N
6.4 COMPARATOR 100-HZ OSCILLATOR
K := 103 u := 10–6 Meg := 106 m := 10–3
V := 1 Hz := 1
0 10 15 20 25 30 35 40–15–10
–505
1015202530
Ein1Ein2V1V3
Spice verification
Volts
Tnomk,2
Tnomk,3
Tnomk,4
Tnomk,5
Time(ms)
Tnomk,1m
5
7028_C006.fm Page 123 Thursday, January 12, 2006 9:58 AM
124 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
LM339 comparator circuit Redrawn explanatory circuit
R1 := 100·K R2 := 100·K R3 := 100·K R4 := 5.75·KR5 := 3.3·K Q1on := 150 Qloff := 10·Meg C1 := 1.15·u
Switch Q1 is the open-collector (OC) transistor output of an LM339 comparator.Vn is the inverting input, and Vp is the noninverting input to the LM339. Hence,when Vn > Vp, Q1 will be ON (switch closed), and when Vn < Vp, Q1 will be OFF(switch open).
When power is applied (Ein = +5 V DC), C1 will charge up to a voltage greaterthan Vp, closing switch Q1, and then discharging C1 towards a voltage less thanVp, which opens the switch, and the cycle repeats. Hence, the output of the LM339will go high (Q1 OFF) and low (Q1 ON) at a rate determined by the circuit timeconstants. With the given, component values the frequency of oscillation is about100 Hz.
From the plot in the following text, the falling edges of Vc are about 10 msapart, for a period of 100 Hz.
Note that max Vce(sat) is given on the LM339 data sheet as 0.25 V. This issimulated by setting the ON resistance of Q1 to 150 Ω.
U := 3 Y := (1 2 3)T CC := (1 0 C1)LL := 0 EE := 0 GG := 0 Ein := (99 5)
Note: Vn = V1 = VC1 = minus input to LM339, Vc = V2 = Vcollector, Vp = V3= plus input to LM339.
R3
R3
R1
R1R5 R5
R2
R2
+5V
+5V
C1
C1
Ein
Ein
Ein
Ein
R4R4
Vp
Vp
Q1 internal
Q1
VnVn
V–Vc
Vc
V+
2
23
1
1
4+
– 11
7028_C006.fm Page 124 Thursday, January 12, 2006 9:58 AM
Transient Analysis 125
with switch Q1 OFF
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aoff := A Boff := B Doff := D Eoff := ESave OFF arrays.
Repeat with switch Q1 ON. RR4,3 := Q1on
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aon := A Bon := B Don := D Eon := ESave ON arrays.
∆t := 0.05·m Per := 50·m
kmax = 100pulse(x) := φ(x) (φ(x) is Mathcad’s unit step function.)bpf(x, f, Ein) := pulse(x – f)Eapp(t) := bpf(t, 0.005·Per,1)
RR
R
R
R
Q off
R
R
:=
99 3 1
3 0 2
3 2 3
2 0 1
99 2 5
2 1 4
kmax =
floorPer
t∆
7028_C006.fm Page 125 Thursday, January 12, 2006 9:58 AM
126 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Program Comments
InitializeVo V
Vn
Vc
:= ←
←
←
1 0
0
1
1
1 00
0
2
1
1
Vp
for k
if Vn Vk
←
∈
>−
..kmax Iterate from 2
pp
V Aon V t Bon Eapp k t
k
k k
−
−← ⋅ ⋅ + ⋅ ⋅( )1
11 1
to kmax
∆ ∆ ⋅⋅ +
← ⋅ + ⋅
−∆t V
Vn Don V Eon
k
k k
1
1
1
1 1
Q1 to switch ON
EEapp k t
Vc Don V Eon Eapp k t
Vp
k k
k
⋅( )← ⋅ + ⋅ ⋅( )←
∆
∆2 21
DDon V Eon Eapp k t
otherwise
V Aoff
k
k
3 31
1
⋅ + ⋅ ⋅( )
← ⋅
∆
VV t Boff Eapp k t t Vk k1 11 1− −⋅ + ⋅ ⋅( ) ⋅ +∆ ∆ ∆ Q1 to swittch OFF
Vn Doff V Eoff Eapp k t
Vc D
k k
k
← ⋅ + ⋅ ⋅( )←
1 11 ∆
ooff V Eoff Eapp k t
Vp Doff V Eof
k
k k
2 2
3
1
1
⋅ + ⋅ ⋅( )← ⋅ +
∆
ff Eapp k t
Vn
Vc
Vp
3 ⋅ ⋅( )
∆
7028_C006.fm Page 126 Thursday, January 12, 2006 9:58 AM
Transient Analysis 127
6.5 TRANSIENT ANALYSIS OF PULSE TRANSFORMER
ns := 10–9 ps := 10–12 MHz := 106
For the schematic, see Section 2. 6.
Insert AC circuit analysis file:
→ Reference:C:\mcadckts\CaNL11\xformerrs5.mcd
Y := (1 3 5)T
Insert subprogram file:
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
0 10 20 30 40 500
1
2
3
4
5
VnVc
Oscillator waveforms
Volts |(Vo1)k|
|(Vo2)k|
Time(ms)
k .∆tm
0 10 20 30 40 500
1
2
3
4
5
VnVp
Oscillator waveforms
Volts
|(Vo1)k|
|(Vo3)k|
Time(ms)
k .∆tm
7028_C006.fm Page 127 Thursday, January 12, 2006 9:58 AM
128 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Time constants of A:
Specify time parameters:Choose ∆t < tau, ∆t := 2·ps Tper := 200·ns Npp := 200m := 1..Npp
kmax = 100000
Npp = number of plotting points.
Create delayed input pulse using Mathcad’s unit step function φ(x):pulse(x, w) := φ(x) – φ(x – w)bpf(x, f, w) := pulse(x – f, w) Eapp(t) := bpf(t, 0.02·Ter, 0.5·Tper)
tauA
tauA
tau ps1 21 1 2 5
2 5:
max:
min
.
.= ( ) = ( )
kmax :=
floorTper
t∆
rto floorNpp
:=
kmax
Vo V
for k
A V t B
T:
..
= ← ( )∈
← ⋅ ⋅ +
1 0 0 0 0 0 0
2
1
1
1
kmax
V12 ∆ ⋅⋅ ⋅( ) ⋅ +
← ⋅ + ⋅ ⋅( )Eapp k t t V
D V E Eapp k t
∆ ∆
∆
1
1
1
1Vx
V1
1
11 ←
←
← = ( )
V
txk
rto
vo Vx if tx floor tx
vo
tx
12
1
0 50 100 150 200
1
−0.20
0.20.40.60.8
1.2Delayed input pulse
Volts Eapp(m.∆t ⋅rto)
Time(ns)
m.∆t ⋅rton
7028_C006.fm Page 128 Thursday, January 12, 2006 9:58 AM
Transient Analysis 129
Length(Vo) = 200 Npp = 200
Note the distortion on V3 and V5. Because the bandwidth is approximately 10MHz (see Section 2.6), the rise or fall times of the input pulse should be greater than
Tr = 34.97ns
The rise or fall time used here is 10 ps.SPICE Verification
TRANSFORMER PULSE RESPONSE
* File: xformer_tran.cir
VEin 99 0 PWL(0,0 4ns,0 4.012ns,10 104.012ns,10 104.022ns,0)
* 10ps rise & fall time; 100ns PW
* 4.012ns - 4ns = 0.012ns = 12ps; 10% to 90% = 10ps
*
R1 99 1 10
R2 1 2 1.5
R3 3 0 20K
0 25 50 75 100 125 150 175 200–5
0
5
10
15
V1V3V5
Output at node YVo
lts
(Vom)1
(Vom)2
(Vom)3
Time(ns)
m.∆t ⋅rtons
Y :=
1
3
5
Trln
MHz:= ( )
⋅ ⋅3
10π
7028_C006.fm Page 129 Thursday, January 12, 2006 9:58 AM
130 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
R4 3 4 1.5
R5 5 0 1K
R6 1 6 0.5
R7 3 7 1
*
C1 1 0 20pF
C2 6 5 5pF
C3 5 0 20pF
*
L1 2 3 1uH
L2 7 0 2mH
L3 4 5 1uH
*
.TRAN 1ns 200ns 0ns 2ps
.PRINT TRAN V(99) V(1) V(3) V(5)
.OPTIONS ITL5=0
.OPTIONS NOECHO NOPAGE NOMOD
.END
Tnom := READPRN(“c:\SPICEapps\datfiles\xformer_tran.txt”)N := rows(Tnom) N = 201 k := 1..N
0 50 100 150 200–5
0
5
10
15
V1V3V5
Spice verification
Time(ns)
Tnomk,1
Volts
Tnomk,3
Tnomk,4
Tnomk,5
ns
7028_C006.fm Page 130 Thursday, January 12, 2006 9:58 AM
Transient Analysis 131
6.6 PASSIVE RCL CIRCUIT TRANSIENT ANALYSIS
The same circuit was used in Section 2.1 (Introduction).
R1 := 10 R2 := 100 R3 := 50·K R4 := 10·KC1 := 0.1·u C2 := C1 L3 := 2533.03·u L4 := 25.3303·u
Ein := (99 1) EE := 0 GG := 0 U := 3 Y := (1 2 3)T
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Select ∆t as:
∆t := 0.02·u
Set period:
Tper := 100·u kmax = 5000
Create delayed input pulse as before:
pulse(x, w) := φ(x) – φ(x – w)bpf(x, f, w) := pulse(x – f, w) Eapp(t) := bpf(t, 0.05·Tper, 0.5·Tper)Pulse width = Tper (0.5) = 50 u
Instead of looking at the output voltage nodes Y, we have the option of lookingat the capacitor voltages and inductor currents using the following seeded iterationmethod. V1 is the voltage across C1, V2 on C2, I3 is the current in L3, and I4 in L4.
R1 V1 V3
R4
R2
R3
L3
L4
C1
C2
V2Ein
RR
R
R
R
R
:=
99 1 1
1 2 4
2 3 2
3 0 3
CCC
C:=
1 2 1
3 0 2LL
L
L:=
1 2 3
3 0 4
125 33
10 1
max.
min.
Au
Au( ) = ( ) =
kmax :=
floorTper
t∆
7028_C006.fm Page 131 Thursday, January 12, 2006 9:58 AM
132 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
k := 2..kmax
Initialize:
Iterate:
Output plots:
V2 is scaled by 5
V
V
I
I
1
2
3
4
0
0
0
0
1
1
1
1
=
:
V
V
I
I
A
V
V
I
k
k
k
k
k
k
1
2
3
4
1
2
1
1
= ⋅
−
−:
33
4
1
1
k
kI
t B Eapp k t−
−
⋅ + ⋅ ⋅( ) ⋅∆ ∆ ∆∆t
V
V
I
I
k
k
k
k
+
−
−
−
−
1
2
3
4
1
1
1
1
0 20 40 60 80 100–0.8
–0.4
0
0.4
0.8
1.2
V1Input pulse5 x V2
Input pulse and transients on C1 & C2
Volts
V1k
5 . V2k
Eapp(k .∆t)
Time(us)
k .∆tu
7028_C006.fm Page 132 Thursday, January 12, 2006 9:58 AM
Transient Analysis 133
6.7 MATHCAD’S DIFFERENTIAL EQUATION SOLVERS
Consider passive RCL circuits (compare with the NDS method).For schematic and component values, see Section 6.6.
→ Reference:C:\mcadckts\CaNL11\LCtran.mcd
Transient Analysis Using rkfixed or Rkadapt FunctionsOnly step functions can be used. Pulse, ramp, and triangular input waveshapes
require use of the NDS transient analysis method.Set time period T as:
T := 100·u
Set maximum number of time points:
kmax := 200
Initialize x and form the N 1array D(t,x) from elements of the A and B arraysobtained from comm42.mcd.
0 20 40 60 80 100–5
–2.50
2.55
7.510
12.515
I3I4
Transient currents thru L3 & L4Cu
rren
t (m
A) I3k
I4k
m
m
Time(us)
k .∆tu
x D t x
A x A
: , :
, ,
=
( ) =
+ ⋅0
0
0
0
1 1 1 1 2 xx A x A x B
A x A x A x
2 1 3 3 1 4 4 1
2 1 1 2 2 2 2 3
+ ⋅ + ⋅ +
+ ⋅ + ⋅
, ,
, , , 33 2 4 4 2
3 1 1 3 2 2 3 3 3 3 4 4
+ ⋅ +
+ ⋅ + ⋅ + ⋅
A x B
A x A x A x A x
,
, , , , ++
+ ⋅ + ⋅ + ⋅ +
B
A x A x A x A x B
3
4 1 1 4 2 2 4 3 3 4 4 4 4, , , ,
7028_C006.fm Page 133 Thursday, January 12, 2006 9:58 AM
134 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Call rkfixed:
Z := rkfixed(x, 0, T, kmax, D)
“rkfixed” uses a constant internally calculated ∆t. The Mathcad ordinary differ-ential equation (ODE) solver “Rkadapt” uses a variable ∆t that can be faster because∆t is large for slowly-varying outputs and small for fast-varying outputs. It is calledin the same manner as “rkfixed.”
Z : = Rkadapt(x, 0, T, kmax, D) n := 1..kmax
(Note: To verify identical outputs with rkfixed and Rkadapt, right-click on Zstatement, and then click “Disable Evaluation.” A black square will appear denotingdisabled. Then compare with the following plots.)
0 20 40 60 80 100−0.8
−0.4
0
0.4
0.8
1.2
Vc1Vc2
C1 & C2 voltage waveforms
Time(us)
Zn,1
Volts
Zn,2
5 .Zn,3
u
0 20 40 60 80 100−5−2.5
02.5
57.510
12.515
L3L4
L3 & L4 inductor current
Time(us)
Curr
ent (
mA)
Zn,4
Zn,5
mA
mA
Zn,1u
7028_C006.fm Page 134 Thursday, January 12, 2006 9:58 AM
Transient Analysis 135
Stiff ODEs can be defined as a large disparity between absolute minimum andmaximum values of the elements of the A matrix, i.e., very slow and very fast timeconstants in the circuit (the slow ones are “stiff”). This circuit is not stiff, but thepulse transformer model given earlier is, and the function rkfixed did not providethe correct output. For stiff circuits, use “Stiffb” as follows: initialize and form theN N+1 Jacobian array function J(t,x) using the elements from the A matrix:
Call the function:
Z := Stiffb(x, 0, T, kmax, D, J)
Same output:Compare these step input waveforms with the plots in Section 6.6.
6.8 A MATHEMATICAL PULSE WIDTH MODULATOR (PWM)
us := 10–6 KHz := 103
This PWM will be used as the switching function for the power supply presentedin Section 6.9.
x J t x
A A A
: , :
, , ,
=
( ) =
0
0
0
0
0 1 1 1 2 1 33 1 4
2 1 2 2 2 3 2 4
3 1 3 2 3 3 3 4
4
0
0
0
A
A A A A
A A A A
A
,
, , , ,
, , , ,
,, , , ,1 4 2 4 3 4 4A A A
0 20 40 60 80 100
0
−0.8
−0.4
0.4
0.8
1.2C1 & C2 voltage waveforms
Time(us)
Volts
Zn,2
5 . Zn,3
Zn,1u
7028_C006.fm Page 135 Thursday, January 12, 2006 9:58 AM
136 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
User inputs:
Fsw := 50·KHz Nper := 4 (number of periods)
Du := 0.5 (duty cycle) Per = 20us
∆t := 0.1·us kmax = 800
K1 = 100 K2 = 100 kper := K1 + K2 kper = 200
k := 1..kmax
Du = 0.25
PerFsw
:= 1
kmaxNper Per
t: .= ⋅ +
floor∆
0 5
K2Du kmax
: .= ⋅ +
floorNper
0 5 K1kmax
Nper: .=
−( ) ⋅+
floor
Du10 5
po c
p
for k
if k c kper
:
..
= ←
←
∈
← ≥ + −( ) ⋅
1
1
2
1 1 1
1
kmax
pk ∧ ≤ + −( ) ⋅
←
←
k K c kper
otherwise
c
2 1
0 05pk .
cc if k c kper
p
+ ≥ ⋅1
0 10 20 30 40 50 60 70 800
0.5
1
PWM output
Switc
h on
/off
pok
Time(us)
k .∆tus
7028_C006.fm Page 136 Thursday, January 12, 2006 9:58 AM
Transient Analysis 137
Du = 0.5
6.9 SWITCHING POWER SUPPLY OUTPUT STAGE — BUCK REGULATOR
This section analyses the turn-on (start-up) transient of a switched-mode powersupply.
us := 10–6 uF := 10–6 uH := 10–6 Meg := 106
ms := 10–3 mV := 10–3 KHz := 103
Sw1 represents the switch internal to the pulse width modulator (PWM). Sw2represents the flywheel diode.
When Sw1 is ON, Sw2 will be OFF, and vice versa. This section utilizes thePulse Width Modulator (PWM) of Section 6.8.
R1 := 0.3 R2 := 0.085 R3 := 38 C1 := 47·uFL1 := 20·uH U := 4 Y := 3
User inputs:
Fsw := 50·KHz Nper := 20 Per = 20us
Du := 0.5 (50% duty cycle)
0 10 20 30 40 50 60 70 800
0.5
1
PWM output
Time(us)
Switc
h on
/off
pok
k ⋅∆tus
+
−
V3
R3R2
V4
C1
L1V2V1 R1
Sw2
Sw1Ein 1
1
2
2
PerFsw
:= 1
7028_C006.fm Page 137 Thursday, January 12, 2006 9:58 AM
138 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
∆t = 1·us kmax = 400 Ein := (99 1)
kper := K1 + K2
Switch ON/OFF resistances:
Q1on := 1 Q1off := 10·Meg Q2on := 1 Q2off := 10·Meg
CC := (4 0 C1) LL := (2 3 L1)
EE := 0 GG := 0
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aon := A B := B Don := D Eon := E
Change switch positions:
RR1,3 := Q1off RR2,3 := Q2on
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aoff := A Boff := B Doff := D Eoff := E Ein := 15
kmaxNper Per
t: .= ⋅ +
floor∆
0 5
K2Du kmax
: .= ⋅ +
floorNper
0 5 K1kmax
Nper:=
−( ) ⋅+
floor
Du10
RR
Q on
Q off
R
R
R
:=
99 1 1
1 0 2
1 2 1
3 4 2
3 0 3
7028_C006.fm Page 138 Thursday, January 12, 2006 9:58 AM
Transient Analysis 139
Pulse height is set to 5 V, see on the following plot.
K := 1..kmax M1 := Ein·Du M1 = 7.5
Theoretical output = M1 = input times duty cycle.
Vo c
Vc
Vo
p
for k
:
..
= ←
←
←
←
∈
←
1
0
0
0
1
2
1
1
1
kmax
pk 55 1 1 2 1if k kper c k K c kper
p
≥ ⋅ −( ) + ∧ ≤ + −( ) ⋅
kk
k
k
otherwise
c c if k c kper
if p
Vc Aon V
←
← + ≥ ⋅
=
← ⋅
0
1
5
cc t Bon Ein t Vc
Vo Don Vc Eon Ei
k k
k k
− −⋅ + ⋅ ⋅ +
← ⋅ + ⋅
1 1∆ ∆
nn
if p
Vc Aoff Vc t Boff Ein t Vc
k
k k k
=
← ⋅ ⋅ + ⋅ ⋅ +− −
0
1 1∆ ∆
VVo Doff Vc Eoff Ein
Vo
p
k k← ⋅ + ⋅
7028_C006.fm Page 139 Thursday, January 12, 2006 9:58 AM
140 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
M3 := 7.42 M2 := 7.08Ripple amplitude M3 – M2 = 340 mV
6.10 STATE SPACE AVERAGING
State Space Averaging was developed by Dr. R.D. Middlebrook of the CaliforniaInstitute of Technology in the early 1980’s. The concept itself is not difficult, but inthose days the difficult part was the amount of algebra one had to resort to inobtaining the state space arrays. (See Section 1.1.1., Introduction, and Section 2.2).
The NDS method now provides a painless method of obtaining the state spacearrays, A, B, D, & E, greatly simplifying the process of State Space Averaging, aswill be seen in this section.
uF := 10–6 uH := 10–6 Meg := 106 us := 10–6 ms := 10–3
mV := 10–3 V := 1 R1 := 0.3 R2 := 0.085 R3 := 38C1 := 47·uF L1 := 430·uH U := 6 Y := 6
0 50 100 150 200 250 300 350 4000
5
10M1
|(Vo1)k|
(Vo2)k
k .∆tus
300 320 340 360 380 4007
7.25
7.5
M2
M3
|(Vo1)k|
(Vo2)k
k ⋅∆tus
++
+
−
−
+−
V99
Ein1V1
Sw1
VsV2 R1
Sw22
1
V98Ein2 V3
Vf
C1
R2
V4 L1 V6
R3
V5
1 2
7028_C006.fm Page 140 Thursday, January 12, 2006 9:58 AM
Transient Analysis 141
User inputs:
Du := 0.63
Switch ON/OFF resistances:
Q1on := 0.001 Q1off := 10·Meg Q2on := 0.001 Q2off := 10·Meg
CC := (5 0 C1) LL := (4 6 L1)
GG := 0 Vs := 0.1 Vf := 0.7
Vs is switch drop (e.g., Vcesat)Vf is diode forward drop.
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aon := A Bon := B Don := D Eon := E
Change switch positions:
RR1,3 := Q1off RR2,3 := Q2on
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aoff := A Boff := B Doff := D Eoff := E
Averaging the arrays with duty cycle Du:
A := Du·Aon + (1 – Du)·Aoff B := Du·Bon + (1 – Du)·BoffD := Du·Don + (1 – Du)·Doff E := Du·Eon + (1 – Du)·Eoff
Multiplying the state space arrays by the duty cycle (Du) and (1 – Du) as above,is the essence of the State Space Averaging concept.
DC Analysis
X := –A–1·B Vodc := D·X Vodc = 9.056V
Ein :=
99 15
98 1
RR
Q on
Q off
R
R
R
:=
99 1 1
2 3 2
2 4 1
6 5 2
6 0 3
EEVs
Vf:=
1 2 98 0
3 0 0 98
Xv
iC
L
=
9 06
0 24
1
1
.
.
7028_C006.fm Page 141 Thursday, January 12, 2006 9:58 AM
142 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Theoretical no-loss output:
Vt := Ein1,2·Du Vt = 9.45V
AC Analysis
BF := 2 ND := 2 PD := 40 i := 1..ND·PD + 1
cvi := D·(si·I – A)–1·B + E
Voi := db(cvi) M3 := db(Vodc)
Compare results with conventional state space methods [1] [2]:
C := (W·P)–1 A1 := C·C
B1 := C·S1·U
B2 := C·S2·u A2 := A1
Compare arrays from conventional and NDS methods:
L BFiPD
i := + − 1s L:= ⋅ ⋅ ⋅ −2 10 1π
2 2.5 3 3.5 4−20
−10
0
10
20
30
40DC & AC buck converter output y/u
Log freq(Hz)
dBV
M3
Voi
Li
WR
R:=
−
2 1
3 1Q
R
R R:=
− −− +( )
1 1
0 1 3S1
1 1 0
1 1 0:=
−−
u
Ein
Vs
Vf
:,
=
1 2
PC
L:=
1 0
0 1
u =
15
0 1
0 7
.
.
S20 0 1
0 0 1:=
−−
7028_C006.fm Page 142 Thursday, January 12, 2006 9:58 AM
Transient Analysis 143
As := Du·A1 + (1 – Du)·A2 Bs := Du·B1 + (1 – Du)·B2
6.11 SIMPLE TRIANGULAR WAVEFORM GENERATOR
This section shows the implementation of a simple triangular wave generator thatcan be used as an input for transient analysis of other circuits. This analysis usesthe PWM given in Section 6.8.
K := 103 uF := 10–6 us := 10–6 Meg := 106 ms := 10–3 Hz := 1
R1 := 10·K C1 := 0.05·uF U := 3 Y := 3 CC := (2 3 C1)GG := 0 EE := (3 0 0 2 106) LL := 0
Switch is a SPDT CMOS type.
Fsw := 500·Hz Du := 0.5 Nper := 5 Per = 2ms
∆t := 5·us kmax = 2000
kper := K1 + K2
Switch ON/OFF resistances:
Q1on := 50 Q1off := 10·Meg kmax·∆t = 10 ms Einampl := 5
As =−− −
558 66 21229 11
2320 39 894 91
. .
. .A =
−− −
558 66 21229 11
2320 39 897 23
. .
. .
Bs =×
−1 04 10
21227 91
12.
.B =
0
21227 91.
V3
C1
V1
V2R1
Ein1
Ein2
1
1
2
2
11V−
V+
21
43
−
+
PerFsw
:= 1
kmaxNper Per
t: .= ⋅ +
floor∆
0 5
Ein :=−
99 1
98 1K2
Du kmax: .= ⋅ +
floorNper
0 5
K1kmax
Nper:=
−( ) ⋅+
floor
Du10
7028_C006.fm Page 143 Thursday, January 12, 2006 9:58 AM
144 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→ Reference:C:\mcadckts\CanL11\comm42.mcd
Aon := A Bon := B Don := D Eon := E Bon = (1990)
Change switch positions:
RR2,3 := Q1off RR3,3 := Q1on
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
Aoff := A Boff := B Doff := D Eoff := E Boff = (–1990)
k := 1..kmax(switch position shown for reference)
RR
R
Q on
Q off
:=
1 2 1
99 1 1
98 1 1
Vo c
Vc
Vo
p
Hi
Lo
for k
:
.
.
..
= ←
←
←
←
←
←
∈
1
0
0
1
4 8
0 2
2
1
1
1
kmaax
pk ← ≥ ⋅ −( ) + ∧ ≤ + −( ) ⋅Hi if k kper c k K c kpe1 1 2 1 rr
Lo otherwise
c c if k c kper
Vc Aonk
←
← + ≥ ⋅
← ⋅
pk
1
VVc t Bon Einampl t Vc if p Hi
Vc Ao
k k k
k
− −⋅ + ⋅ ⋅ + =
←
1 1∆ ∆
fff Vc t Boff Einampl t Vc if p Lo
Vc
k k k⋅ ⋅ + ⋅ ⋅ + =− −1 1∆ ∆
pp
7028_C006.fm Page 144 Thursday, January 12, 2006 9:58 AM
Transient Analysis 145
6.12 QUADRATURE OSCILLATOR
This section shows how the NDS transient analysis method can be used to analyzeoscillators. Since there is no independent inputs in oscillator circuits, we must providenon-zero initial voltage conditions on the capacitors. This is illustrated below.
Hz := 1 K := 103 nF := 10–9 us := 10–6 ms := 10–3
R1 := 10·K R2 := R1 R3 := R1 C2 := C1
C3 := C1 U := 5 Y := 4
Ao := 106 GG := 0 LL := 0 Ein := (99 0) Ein is a dummy variable here.
2 3 4 5 6 7 8 9 10100
5
10Output at node Y
Volts
|(Vo1)k|
(Vo2)k
Time(ms)
k .∆tms
V−
V+3 4
12
11−
+
11V− V2
C1
V1R1
V4
V4
C3V5R3
V3
C2
R2
V+
2
41
3
−
+
CnF
1100
2:= ⋅
⋅ π
RR
R
R
R
:=
4 1 1
2 3 2
0 5 3
CC
C
C
C
:=
1 2 1
3 0 2
4 5 3
EEAo
Ao:=
2 0 0 1
4 0 3 5
7028_C006.fm Page 145 Thursday, January 12, 2006 9:58 AM
146 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
D = (0 1 1) E = (0)
Because there is no independent input, B is a null array.
∆t := 5·us
Initial capacitor voltages = 1 V. kmax := 500
k := 2..kmax
Per := kmax·∆t Per = 2.5 ms
B =
0
0
0
tauA
tauA
tau1 21 1 159 16
159 15:
max:
min
.
.= ( ) = ( ) =
us
V
V
V
1
2
3
1
1
1
1
1
1
=
:
V
V
V
A
V
V
V
k
k
k
k
k
k
1
2
3
1
2
3
1
1
1
= ⋅
−
−
−
:
⋅ + ⋅ +
−
−
−
∆ ∆t B t
V
V
V
k
k
k
1
2
3
1
1
1
Vo D
V
V
V
k
k
k
k
:= ⋅
1
2
3
0 500 1000 1500 2000 2500−4
−2
0
2
4
V1V2V3
Capacitor voltages
Time(us)
Volts
V1k
V2k
V3k
k ⋅∆tus
7028_C006.fm Page 146 Thursday, January 12, 2006 9:58 AM
Transient Analysis 147
All values are initialized at 1 V as before.
M1 := 690 M2 := 1690 F := M2 – M1 F = 1000Hz
Verification of A matrix using algebraic method
As := (W·P)–1·Q
|Le1| = 1000
Eigenvalues indicate the frequency of oscillation (triple pole at 1000 Hz).
0 500 1000 1500 2000 2500−5
0
5Output at node Y
Volts Vok
M1 M2
Time(us)
k ⋅∆tus
W :=
1 0 0
0 1 0
0 0 1
Q
R R
R R
R
:= − −
011
11
12
12
0
013
0
P diag
C
C
C
:=
1
2
3
As = − −0 6283 185 6283 185
6283 185 6283 185 0
0 628
. .
. .
33 185 0.
A =−
− −0 006 6283 179 6283 179
6283 179 6283 185 0
. . .
. .
00 6283 179 0 006. .−
Leeigenvals A
:= ( )⋅2 π
Le
i
i=− +− −
−
0 1000
0 1000
1000
7028_C006.fm Page 147 Thursday, January 12, 2006 9:58 AM
148 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
6.13 WEIN BRIDGE OSCILLATOR
This section shows one more example of oscillator transient analysis using the NDSmethod.
K := 103 nF := 10–9 KHz := 103 us := 10–6
R5 := 10·K R6 := 20·K ms := 10–3 fo := 10·KHz C3 := 10·nF
C4 := 10·nF R2 := R1 LL := 00 GG := 0
EE := (4 0 2 1 106)
U := 4 Y := 4
(Ein is a dummy variable) Ein := (99 0)
→ Reference:C:\mcadckts\CaNL11\comm42.mcd
D = (0 3) E = (0)
No independent input, B = 0.
∆t := 0.01·us Per := 500·us kmax = 50000
k := 2..kmax
There is no independent input; hence, an initial condition voltage to start theoscillation must be given to one or both capacitors.
11V−
V+
−
+
2
143
V1
R5 R6
R2C4
V3
V4
V2C3 R1
Rfo C
11
2 3:=
⋅ ⋅ ⋅π
RR
R
R
R
R
:=
1 0 5
4 1 6
4 3 1
2 0 2
CCC
C:=
3 2 3
2 0 4
A =−−
62831 9 125663 1
62831 9 62831 3
. .
. .B =
0
0
kmax := Pert∆
7028_C006.fm Page 148 Thursday, January 12, 2006 9:58 AM
Transient Analysis 149
V11 := (1 1)T V1k := A·V1k–1·∆t + V1k–1
Vok := D·V1k
Verification of A matrix (assumes ideal opamp):
As := (W·P)–1·Q
The oscillation frequency is the geometric mean of the two eigenvalues:
Le := eigevals(A)
fl = 10KHz
REFERENCES
1. R.D. Middlebrook, et al., Using Small Computers to Model and Measure Magnitudeand Phase of Regulator Transfer Functions and Loop Gain, Advances in Switched-Mode Power Conversion, Vols I & II, TESLACo, 1983.
2. R. Boyd, State Space Averaging with a Pocket Calculator, Proceedings of HighFrequency Power Conversion Conference, Santa Clara, CA, 1990, p. 283.
110
100⋅
=KHz
us
0 50 100 150 200 250 300 350 400 450 500−4−3−2−1
01234
Output at node Y
Volts Vok
Time(us)
k ⋅∆tus
WR
:=−
1 1
1 0Q R
RR
:=−
012
165
P diagC
C:=
3
4
As =−−
62831 9 125663 7
62831 9 62831 9
. .
. .A =
−−
62831 9 125663 1
62831 9 62831 3
. .
. .
Lei
i=
− +
− −
0 283 62831 853
0 283 62831 853
. .
. .fo
Le Le:= ⋅
⋅1 2
2 π
7028_C006.fm Page 149 Thursday, January 12, 2006 9:58 AM
This page intentionally left blank
151
7
DC Circuit Analysis
DC analysis has been demonstrated in the introductory RCL circuit (see Section2.1). What follows are DC analyses that will further illustrate how to use the NDSmethod.
7.1 RESISTANCE TEMPERATURE DETECTOR (RTD) CIRCUIT
R1 := 4.53 R2 := 34.8 R3 := 132 R4 := 9.09 R5 := 9.09 R6 := 4.53R7 := 27.4 R8 := 20 R9 := 20 RT := 1.915Eref := 5
Values in kohms:Opamp open loop gain:
Ao := 10
6
RTD value (RT) varies from 1 K (Vo is approximately –5 V at 0°C) to 2 K (Vois approximately +5 V at +260°C).
R8
R1 R4
R2 R3
R5 RT
R6 R7
Eref
Eref
Eref R9
11V−
V+ V1
V6
2
1
4
43
−
+
V7
11V−
V+ V4
V3 V5
1 V2
2
3
−
+
7028_C007.fm Page 151 Thursday, January 12, 2006 10:05 AM
152
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
U := 7 Y := 5 GG := 0 Ein := (99 Eref)
Note:
For DC analysis, CC and LL component arrays are not required. Hence,only six inputs, RR, EE, U, Y, GG, and Ein, are now required for the subprogramdccomm42.mcd. Get A1 and B2 DC arrays, and solve for node voltages Vn.
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Vn :=1solve(A1, B2)
Vo := Vn
Y
Vo = 4.326 Y = 5
Note that nodes V3 (Vn3) and V4 (Vn4) are equal owing to the opamp, and thatnode V6 is approximately zero as expected.
7.2 AN UNDERGRADUATE EE TEXTBOOK PROBLEM
Unit suffixes: V := 1 Amps := 1
All four types of controlled sources: VCVS, CCVS, CCCS, VCCS.
R1 := 2 R2 := 2 R3 := 4 R4 := 3 R5 := 6 R6 := 2R7 := 1 Ein := (99 24.5)
RR
R
R
R
R
R
R
R
R
R
:=
7 1 1
99 3 2
3 5 3
1 3 4
2 4 5
99 2 6
4 0 7
99 6 8
6 7 9
11 2 RT
EEAo
Ao:=
7 0 0 6
5 0 4 3
V V V V V V V
VnT
1 2 3 4 5 6 7
0 535 1 07 0 803 0 803 4 326= − . . . . . 55 10 56× −( )−
R7
R4 R5 GG1 GG2 R1
R3 R2 V2
R6
V1
V3 V4 V5 V6
+
+
−
− + −
EinEE1 EE2
+ −
7028_C007.fm Page 152 Thursday, January 12, 2006 10:05 AM
DC Circuit Analysis
153
The controlled source equations are as follows:
EE1 = (VCVS) EE2 = 8.la (CCVS) GG1 := 6.la (CCCS)
GG2 = 2·V6 (VCCS)
7.2.1 M
ATRIX
S
OLUTION
T
O
D
EMONSTRATE
THE
U
TILITY
OF
THE
NDS M
ETHOD
Igg1 is the current of GG1, Igg2 is GG2 current.Note column headers for A.
Vn := 1solve(A, B)
IaVR
= 61
V V V V V V Igg Igg
A
R R R R R
1 2 3 4 5 6 1 2
1
5
1
6
1
7
1
4
1
4
1
:=
+ + − +RR
R R R R R R
R
50 0 0 0 0
1
5
1
4
1
4
1
5
1
3
1
30 1 0
0 0 01
3
− −+
−
−− −−
− +
−−
1
3
1
10 1
0 0 0 01
2
1
1
1
20 0
0 0 1 1 08
1
R R
R R R
R00 0
1 1 0 0 0 3 9 0
0 0 0 0 06
11 0
0 0 0 0 0 2 0 1
− −
−
−
R
B
EinR
:
,
=
1 2
70
0
0
0
0
0
0
V V V V V V Igg Igg
VnT
1 2 3 4 5 6 1 2
14 50 13 00 8 00 6 00 1= . . . . .. . . .00 0 50 1 50 1 00( )
7028_C007.fm Page 153 Thursday, January 12, 2006 10:05 AM
154
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Using the NDS method:
U := 6
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Vdc := 1solve(A1, B2)
Igg1 := Vdc
7
Igg2 := Vdc
8
Igg1 = 1.5 Amps Igg2 = 1 Amps
7.3 DC TEST CIRCUIT
This section exercised the NDS method using a DC circuit with multiple inputs andfour VCVS’s and three VCCS’s embedded in a resistive network. The solutions arethen compared to a SPICE simulation.
K := 10
3
mA := 10
–3
EE
R
:=
1 2 6 0 3
3 4 6 081
GG R:=
3 0 6 061
5 0 6 0 2
RR
R
R
R
R
R
R
R
:=
6 0 1
5 6 2
4 5 3
2 3 4
1 3 5
1 0 6
99 1 7
V V V V V V Igg Igg
VDCT
1 2 3 4 5 6 1 2
14 5 13 0 8 0 6 0 1 0 0= . . . . . .. . .5 1 5 1 0( )
+−
R12 R15
EE4
EE3 GG2
EE2
EE1
R11
R9 R7 V6
V8
V7
Ein3 (97)
GG3
GG1
R5 R6
R17 R13
R14
V11
V13 V12
V10
R16 V14
V3
V5 V4 − +
R1 R2 R3 R4 V1 V2 V9 +−
Ein4 (96)
Ein1 (99) Ein2 (98)
+ −
+ −
+ −
+−
7028_C007.fm Page 154 Thursday, January 12, 2006 10:05 AM
DC Circuit Analysis
155
R1 := 1·K R2 := R1 R3 := R1 R4 := R1 R5 := R1 R6 := R1R7 := R1 R9 := R1 R11 := R1 R12 := R1 R13 := R1 R14 := R1
R15 := R1 R16 := R1 U := 14 R17 := R1
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Vn := 1solve(A1,B2)p := 1..U Vnds
p
:= Vn
p
See SPICE listing in the following section.
EIN :=−
99 5
98 3
97 8
96 13
RR
R
R
R
R
R
R
R
R
R
:=
99 1 1
2 3 2
3 9 3
9 98 4
5 4 5
4 97 6
3 0 7
2 6 9
7 8 111
96 10 12
4 12 13
12 0 14
10 11 15
13 0 16
5 14 17
R
R
R
R
R
R
EE :=
−
8 0 4 0 10
6 0 3 4 2
2 1 12 4 4
5 11 4 0 2
GG :
.
.
.
=
14 3 12 0 0 02
7 9 3 0 0 04
13 10 96 0 0 01
7028_C007.fm Page 155 Thursday, January 12, 2006 10:05 AM
156
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The last three entries (not shown) in Vn are the currents through GG1, GG2,and GG3, respectively.
Igg1 := Vn
15
Igg1 = 60.73 mAIgg2 := Vn
16
Igg2 = –114.16 mAIgg3 := Vn
17
Igg3 = 130 mA
NDS SPICE
Vndsp =
−−
2 8613
9 2842
2 8539
6 0727
7 1
.
.
.
.
. 8818
17 8532
174 8829
60 7273
60 0048
81 1636
1
−
−
.
.
.
.
.
99 3273
3 0364
130 0000
53 5455
.
.
.
.
−−
=Vsp :
.2 8613
−−−
−
92842
28539
6 0727
7 1818
17 8530
174 8800
60
.
.
.
.
..
.
.
.
.
.
7270
60 0050
81 1640
19 3270
3 0364
130 0000
−
−−−
53 5450.
pceVndsVsp
:= −
1
Percent error
pce =
−−−
−−
0 001
0
0
0
0
0 001
0 002
0
0
0
.
.
.
00 001
0 001
0
0 001
.
.
.
−
7028_C007.fm Page 156 Thursday, January 12, 2006 10:05 AM
DC Circuit Analysis
157
SPICE Comparison
Testdc4a
VEin1 99 0 DC 5
VEin2 98 0 DC -3
VEin3 97 0 DC 8
VEin4 96 0 DC 13
R1 99 1 1K
R2 2 3 1K
R3 3 9 1K
R4 9 98 1K
R5 5 4 1K
R6 4 97 1K
R7 3 0 1K
R9 2 6 1K
R11 7 8 1K
R12 96 10 1K
R13 4 12 1K
R14 12 0 1K
R15 10 11 1K
R16 13 0 1K
R17 5 14 1K
*
EE1 8 0 4 0 10
EE2 6 0 3 4 2
EE3 2 1 12 4 4
EE4 5 11 4 0 -2
*
GG1 14 3 12 0 0.02
GG2 7 9 3 0 0.04
GG3 13 10 96 0 0.01
*
7028_C007.fm Page 157 Thursday, January 12, 2006 10:05 AM
158
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
.OPTIONS NOMOD NOPAGE NOECHO
.END
**** SMALL SIGNAL BIAS SOLUTION TEMPERATURE = 27.000 DEG C
VOLTAGE SOURCE CURRENTS
NAME CURRENT
VEin1 -2.139E-03
VEin2 -5.700E-02
VEin3 -1.927E-03
VEin4 6.816E-02
7.4 STACKING VCVS’s AND PARALLELING VCCS’s
This DC circuit shows that VCCS’s can be paralleled and VCVS’s can be connectedin series (stacked).
K := 10
3
mA := 10
–3
R1 := 1·K R2 := R1 R3 := R1 R4 := R1 R5 := R1 U := 4
NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE NODE VOLTAGE
(1) 2.8613 (2) -9.2842 (3) -2.8539 (4) 6.0727
(5) 7.1818 (6) -17.8530 (7) 174.8800 (8) 60.7270
(9) -60.0050 (10) 81.1640 (11) 19.3270 (12) 3.0364
(13) -130.0000 (14) -53.5450 (96) 13.0000 (97) 8.0000
(98) -3.0000 (99) 5.0000
GG2 GG1
EE2
EE1V3
R5R4
V4
R1 R2 R3V1 V2
Ein1 Ein2+−
+−
+−
+−
7028_C007.fm Page 158 Thursday, January 12, 2006 10:05 AM
DC Circuit Analysis
159
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Vn := A1
–1
·B2
Igg1 is the current in GG1, and Igg2, the current in GG2.
Igg
1
:= Vn
5
Igg
2
:= Vn
6
7.5 DC VOLTAGE SWEEP (RTD CIRCUIT)
For the schematic and component values, see Section 7.1. (Get circuit data fromSection 7.1.)
→
Reference:C:\mcadckts\CaNL11\dctrd.mcd
Ein := (99 1)Reset Ein to 1 V for new inputs u:
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
Sweep the DC input (always initialized at 1 V as mentioned earlier) from 4.8V to 5.2 V in 0.1V increments:
RR
R
R
R
R
R
:=
99 1 1
1 2 2
2 98 3
1 0 4
2 3 5
GG EE:.
.:
1 0 2 0 0 1
1 0 3 0 0 2
3 4 2 0 2
4 0 1 0 3
=
EEin :99 2
98 3−
Vn =
−
−
0 5768
06930
0 3444
1 7303
0 0693
0 0689
.
.
.
.
.
Igg mA=−
69 30
68 87
.
.
7028_C007.fm Page 159 Thursday, January 12, 2006 10:05 AM
160
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Vn := A1
–1
·B2·u k := 1..cols(u)
Display node Y:Y = 5
Input
Output
Nominal value of u is 5.0 V
Display for all U nodes:
u = (4.8 4.9 5.0 5.1 5.2)
u for j
uj
u
j
: ..
.,
= ∈
← +
1 5
4 710
1
uT =
4 8
4 9
5 0
5 1
5 2
.
.
.
.
.
VnY k,
.
.
.
.
.
=
4 153
4 239
4 326
4 412
4 499
Vn =
− − − − −0 514 0 525 0 535 0 546 0 557
1 027 1 048
. . . . .
. . 11 07 1 091 1 113
0 771 0 787 0 803 0 819 0 835
0 7
. . .
. . . . .
. 771 0 787 0 803 0 819 0 835
4 153 4 239 4 326 4 412
. . . .
. . . . 44 499
4 9 10 4 9 10 5 10 5 1 10 5 2 106 6 6 6
.
. . . .× × × × ×− − − − −66
4 8 4 9 5 5 1 5 2− − − − −
. . . .
7028_C007.fm Page 160 Thursday, January 12, 2006 10:05 AM
DC Circuit Analysis
161
7.6 RTD CIRCUIT — STEP RESISTOR VALUE
R1 := 4.53 R2 := 34.8 R3 := 132 R4 := 9.09 R5 := 27.4R6 := 4.53 R7 := 27.4 R8 := 20 R9 := 20 RT := 1.915
Values in kohms:RTD value (RT) varies from 1 K (Vo is approximately –5 V at 0°C) to 2 K (Vo is
approximately +5 V at +260°C).
Ao := 10
6
U := 7 Y := 5 GG := 0 Ein := (99 5)Get A1 and B2 DC arrays, and solve for node voltages Vn.
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
vn := 1solve(A1, B2) Vo := Vn
Y
Vo = 4.326
Now, sweep RT value from 1 K to 2 K in 0.1 K increments.
RT := (1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2)
T
R8
R1R4
R2R3
R5RT
R6 R7
Eref
Eref
ErefR9
11V−
V+ V1
V6
2
1
4
43
−
+
V7
11V−
V+V4
V3V5
1V2
2
3
−
+
RR
R
R
R
R
R
R
R
R
R
:=
7 1 1
99 3 2
3 5 3
1 3 4
2 4 5
99 2 6
4 0 7
99 6 8
6 7 9
11 2 RT
EEAo
Ao:=
7 0 0 6
5 0 4 3
7028_C007.fm Page 161 Thursday, January 12, 2006 10:05 AM
162
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Ndc := rows(RT) k := 1..Ndc
The line RR
10,3
←
RT
k
loads new values of RT into the RR array.For the line AE
←
G(U, EE, GG, RR, Ein); the G function is from thedccomm42.mcd subprogram.
Plot:
V5 := Vn(U, EE, GG, RR, Ein)
Check linearity with straight line equation:
y
k
:= 10(RT
k
– 1) – 5
The maximum linearity temperature error is
maxerr = 7.8 degC
Vn U EE GG RR Ein for k Ndc
RR RT
AE
k
, , , , : ..
,
( ) = ∈
←
1
10 3
←← ( )←
←
←
G U EE GG RR Ein
A AE
B AE
vn lsolve Ak
, , , ,
1
2
1
1
2
,, B
v vn
vr
k k
2
55
( )← ( )
1 1.2 1.4 1.6 1.8 2−0.3
−0.2
−0.1
0
0.1
0.2
0.3Linearity delta
Volts
DC
yk − V5k
1 1.2 1.4 1.6 1.8 2−5
−3.75−2.5
−1.250
1.252.5
3.755
RTD Ckt linearity
Volts
DC V5k
yk
RTk RT (K Ohms) RTk RT (K Ohms)
maxerr : .deg= ⋅ ⋅ ⋅⋅
0 3260
10V
CV
7028_C007.fm Page 162 Thursday, January 12, 2006 10:05 AM
DC Circuit Analysis
163
We can step two resistor values simultaneously as shown here:Step R4 and R5 from 8K to 10K in 0.2 K increments:
Ra := (8 8.2 8.4 8.6 8.8 9 9.2 9.4 9.6 9.8 10)
T
Ndc := rows(Ra) k := 1..Ndc (Ra in kohms)
Plot:
V5 := Vn(U, EE, GG, RR, Ein)
Marker for nominal values:
M1 := 9.09 M2 := 4.326
Vn U EE GG RR Ein for k Ndc
RR Ra
RR
k
, , , , : ..
,
( ) = ∈
←
1
4 3
5,,
, , , ,
3
1
2
1
2
←
← ( )←
←
←
Ra
AE G U EE GG RR Ein
A AE
B AE
vn
k
k llsolve A B
v vn
v
k k
1 2
5
5
5
,( )← ( )
8 8.5 9 9.5 102
4
6
8V5 vs. R4 & R5
M2Volts
DC
V5k
M1
Rak R4, R5 (K Ohms)
7028_C007.fm Page 163 Thursday, January 12, 2006 10:05 AM
164
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
7.7 FLOATING 5-V INPUT SOURCE
K :=10
3
At times it may be desired to have an input voltage source floating. The restrictionof all Ein inputs being single-ended can be overcome as shown.
R1 := 1·K R2 := 20 R3 := 1·K R4 := 20·K R5 := 200·KR6 := 20·K R7 := 200·K Ao := 10
6
U := 7 Y := 5
GG := 0 Ein := (99 1)
→
Reference:C:\mcadckts\CaNL11\comm42.mcd
V := 1solve(A1, B2)V
T
= (–0.223 –0.247 –0.272 –0.247 –0.495 2.253 –2.747)
Input voltage:
V
6
– V
7
= 5 Vo := V
Y
Vo = –0.495
R1 R4
V3
R5
R6R3R2
V99 R7Ein
EE1
V1V6
4
11V−
V+V4
V2
V5
1V7
2
3
−
+
+−
+−
RR
R
R
R
R
R
R
R
:=
6 1 1
1 3 2
7 3 3
1 2 4
2 5 5
3 4 6
4 0 7
EEAo
:=
6 7 99 0 5
5 0 4 2
7028_C007.fm Page 164 Thursday, January 12, 2006 10:05 AM
DC Circuit Analysis
165
Matrix solution:
Vm := 1solve(Am, Bm) Vo := Vm
5
Vo = –0.495
Am
R R R R R R R R
:=
++ +
−− +
+−
1
1 3
1
2
1
4
1
4
1
2
1
1 30 0
1
RR R R R
R R R R R R
4
1
4
1
50 0
1
5
1
2
1
1 30
1
1 3
1
+−
− ++ +
+
22
1
6
1
60
0 01
6
1
6
1
70
0 0 1
+−
−+
−
R R
R R RAo Ao
Bm
R R
R R:=
+
−+
51 3
0
51 3
0
0
Vm =
−
−
−
−
−
0 223
0 247
0 272
0 247
0 495
.
.
.
.
.
7028_C007.fm Page 165 Thursday, January 12, 2006 10:05 AM
This page intentionally left blank
167
8
Three-Phase Circuits
8.1 CONVERT
∆
FLOATING VOLTAGE INPUTS TO SINGLE-ENDED Y INPUTS
Circuits with single-ended inputs are easier to solve than those with floating inputs. Setup:pr(E,
θ
) := E·(cos(
θ
) + i·sin(
θ
))
(convert polar to rectangular) (convert radians to degrees)
mp(x) := (|x| rd·arg(x)) (get magnitude and phase)Line-to-line voltages are (in polar form):
A – B = 115<0B – C = 115<–120C – A = 115<120
(counterclockwise phase rotation ABC)Convert from polar form to rectangular form:
E
AB
:= pr(115, 0) E
BC
:= pr(115, –120·deg) E
CA
:= pr(115, 120·deg)E
AB
:= 115 E
BC
:= –57.5 – 99.59i E
CA
:= –57.5 + 99.59i
Find an equivalent phasor pair, i.e., line-to-neutral equivalent to line-to-line:
Cm := 1solve(Am, Bm)
E
A
:= Cm
1
E
B
:= Cm
2
E
C
:= Cm
3
mp(E
A
) = (115 – 60) mp(E
B
) = (115 – 120)
|E
A
– E
B
| = 115 arg(E
A
– E
B
) = 0deg Hence equal to |E
AB
| = 115arg(E
AB
) = 0deg A|E
B
– E
C
| = 115 arg(E
B
– E
C
) = –120deg Hence equal to |E
BC
| = 115arg(E
BC
) = –120deg B
rd := 180π
Am :=−
−
1 1 0
0 1 0
1 0 1
Bm
E
E
E
AB
BC
CA
:=
Cm
i
i= −−
57 5 99 59
57 5 99 59
0
. – .
. – .
7028_C008.fm Page 167 Thursday, January 12, 2006 10:09 AM
168
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
|E
C
– E
A
| = 115 arg(E
C
– E
A
) = 120deg Hence equal to |E
CA
| = 115arg(E
CA
) = 120deg C
and, thus, equivalent as seen by the load.Subsequent circuit examples will verify this.A second equivalent phasor pair is obtained from:
Cm := 1solve(Am, Bm)
E
A
:= Cm
1
E
B
:= Cm
2
E
C
:= Cm
3
mp(E
A
) = (115 0) mp(E
C
) = (115 60)
|E
A
– E
B
| = 115 arg(E
A
– E
B
) = 0deg Hence equal to |E
AB
| = 115arg(E
AB
) = 0deg A|E
B
– E
C
| = 115 arg(E
B
– E
C
) = –120deg Hence equal to |E
BC
| = 115arg(E
BC
) = –120deg B|E
C
– E
A
| = 115 arg(E
C
– E
A
) = 120deg Hence equal to |E
CA
| = 115arg(E
CA
) = 120deg C
A third equivalent phasor pair is:
Cm := 1solve(Am, Bm)
E
A
:= Cm
1
E
B
:= Cm
2
E
C
:= Cm
3
mp(E
B
) = (115 180) mp(E
C
) = (115 120)
|E
A
– E
B
| = 115 arg(E
A
– E
B
) = 0deg Hence equal to |E
AB
| = 115arg(E
AB
) = 0deg A|E
B
– E
C
| = 115 arg(E
B
– E
C
) = –120deg Hence equal to |E
BC
| = 115arg(E
BC
) = –120deg B|E
C
– E
A
| = 115 arg(E
C
– E
A
) = 120deg Hence equal to |E
CA
| = 115arg(E
CA
) = 120deg C
Am := −−
1 0 0
0 1 1
1 0 1
Bm
E
E
E
AB
BC
CA
:=
Cm
i
: .
. .
115
5 68 10
57 5 99 59
14− ×+
−
Am :=−
−
1 1 0
0 1 1
0 0 1
Bm
E
E
E
AB
BC
CA
:=
Cm
i
:
. .
=−
−− +
0
115
57 5 99 593
7028_C008.fm Page 168 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits
169
0
30
6090
120
150
180
210
240 270 300
330
150
100
50
0
AB
Phasor pair A & B
0
30
6090
120
150
180
210
240270
300
330
150
100
50
0
AC
Phasor pair A & C
0
30
6090
120
150
180
210
240270
300
330
150
100
50
0
BC
Phasor pair B & C
7028_C008.fm Page 169 Thursday, January 12, 2006 10:09 AM
170
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
8.2 THREE-PHASE NDS SOLUTION
8.2.1 U
NBALANCED
D
ELTA
L
OAD
— S
INGLE
-E
NDED
I
NPUTS
ON
A
AND
B
R1 := 12 R2 := 10 R3 := 15 R4 := 0.01 R5 := 0.01 R6 := 0.01
R4 to R6 are line impedances.
F := 60
ω
:= 2·
π
·F
U := 6
Y := (1 2 3 4 5 6)
T
LL := (2 0 L2)
EE := 0 GG := 0
→
Reference:C:\mcadckts\CaNL11\comm42m.mcd
For three-phase circuits, comm42m.mcd must be used.
R5
4
3
2 65
1
R3
R4
R6
R1 R2
C1
C
C2
EinB
EinA
L2
+−
+−
s := ⋅ −ω 1 C11
12:=
⋅ωL2
20:=
ω
rd := 180π
RR
R
R
R
R
R
R
:=
4 1 1
4 3 2
6 2 3
99 4 5
98 6 4
5 0 6
CCC
C:=
1 5 1
3 6 2
Ein :=
99 1
98 1
7028_C008.fm Page 170 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits
171
K = number of outputs; M = number of inputs.Complex input at A and B:
cv := D·(s·I – A)
–1
·B·u + E·u
Get magnitude (V) and phase (deg) when Y is a scalar (one output) or a columnvector (multiple outputs):
mag
φ
(x) := (|x| rd·arg(x)) (convert rectangular to polar form).
rows A cols A
rows B cols B
rows D cols D
r
( ) ( )
( ) ( )
( ) ( )
oows E cols E( ) ( )
=
3 3
3 2
6 3
6 2
Format
N N
N M
K N
K M
:
u
i
i:
.
.
= ⋅− ⋅
− − ⋅
2080 5
32
0 532
rd uA
B⋅ ( ) = −
−
arg60
120
mp Y
vo cv
ph rd cv
for k r
: ( )
arg
..
= =
←
← ⋅ ( )∈
if rows 0
1 oows Y
vo cv
ph rd cv
Y vo ph
k k
k k
( )
arg
otherwise
←
← ⋅ ( )
(( )
mp =
1
2
3
4
5
6
146 9
166 3
207 8
2
.
.
.
007 8
0 1
207 8
105
83 1
11
.
.
.
.
−−
− 99 9
60 1
15 1
119 9
.
.
.
.
−−
−
7028_C008.fm Page 171 Thursday, January 12, 2006 10:09 AM
172
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The textbook given as Reference 1 answers using floating delta inputs:
magφ(Iab) := (20.74 0.01) Text answer: 20.8A/_0 deg.
magφ(Ibc) := (8.32 – 173.09) Text answer: 8.32A/_–173.13 deg.
magφ(Ica) := (12.25 164.93) Text answer: 12.26A/_165 deg.
8.2.2 UNBALANCED DELTA LOAD — SINGLE-ENDED INPUTS ON A AND C
R1 := 12 R2 := 10 R3 := 15 R4 := 0.01 R5 := 0.01 R6 := 0.01
R4 to R6 are line impedances
F := 60 ω := 2·π·F
C2 := 1000 U := 6
EE := 0 LL := (2 5 L2) GG := 0
Y := (1 2 3 4 5 6)T (column vector)
Iabcv cv
RC i
:= −
+⋅ ⋅
4 6
21
2ω
Ibccv cv
R L i:= −
+ ⋅ ⋅6 5
3 2ω
Icacv
RC i
:= −
+⋅ ⋅
4
11
1ω
R5
4
2
3
65
1
R3
R4
R6
R1 R2
C1
B
C2
EinA
EinC L2
+−
+−
rd := 180π
s := ⋅ −ω 1 C11
12:=
⋅ω
L220
:=ω
Ein :=
99 1
98 1
RR
R
R
R
R
R
R
:=
4 1 1
4 3 2
6 2 3
6 0 4
99 4 54
98 5 6
CCC
C:=
1 5 1
3 6 2
7028_C008.fm Page 172 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits 173
→ Reference:C:\mcadckts\CaNL11\comm42m.mcd
For polyphase circuits, comm42m.mcd must be used.Subprogram comm42.mcd will not work.
K = number of outputs; M = number of inputs.Complex input at A and C:
cv := D·(s·I – A)–1·B·u + E·u
Get magnitude (V) and phase (deg) when Y is a scalar or a column vector:
magφ(x) := (|x| rd·arg(x)) (Convert rectangular to polar form.)
rows A cols A
rows B cols B
rows D cols D
r
( ) ( )
( ) ( )
( ) ( )
oows E cols E( ) ( )
=
3 3
3 2
6 3
6 2
Format
N N
N M
K N
K M
:
u i:.
= ⋅+ ⋅
208
1
0 532
rd uA
C⋅ ( ) =
arg0
60
mp Y
vo cv
ph rd cv
for k r
: ( )
arg
..
= =
←
← ⋅ ( )∈
if rows 0
1 oows Y
vo cv
ph rd cv
Y vo ph
k k
k k
( )
arg
otherwise
←
← ⋅ ( )
(( )
mp =
1
2
3
4
5
6
76 1
125
0 3
207 7
2
.
.
.
008
0 3
30 2
6 9
2
0
60
2.
.
.
7028_C008.fm Page 173 Thursday, January 12, 2006 10:09 AM
174 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The textbook given as Reference 1 answers using floating delta inputs:
magφ(Iab) := (20.77 0.01) Text answer: 20.8A/_0 deg.
magφ(Ibc) := (8.32 – 173.14) Text answer: 8.32A/_–173.13 deg.
magφ(Ica) := (12.25 164.93) Text answer: 12.26A/_165 deg.
8.3 THREE-PHASE Y — UNBALANCED LOAD
Single-ended two-phase Y input at A and B.
F := 1000 ω := 2·π·F s := ω·i R1 := 12 R2 := 20 R3 := 3
R4 := 0.01 R5 := 0.01 U := 5
Y := (1 2 3 4 5)T
CC := (2 3 C1) LL := (4 5 L1)
Iabcv
RC i
:=+
⋅ ⋅
4
21
2ω
Ibccv
R L i:= −
+ ⋅ ⋅5
3 2ω
Icacv cv
RC i
:= −
+⋅ ⋅
5 4
11
1ω
EinA
EinC = 0
EinB
+−
+−
L1
V5R4
R3
V3
V2
V1R1
R2
R5
C1V4
L14
:=ω
C1116
:=⋅ω
rd := 180π
drrd
:= 1
RR
R
R
R
R
R
:=
99 1 5
1 2 1
3 0 2
4 3 3
98 5 4
7028_C008.fm Page 174 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits 175
EE := 0 GG := 0
pr(E,θ) := E·(cos(θ·dr) + i·sin(θ·dr)) (polar to rectangular conversion)magφ(x) := (|x| rd·arg(x)) (rectangular to polar conversion)
magφ(u1) = (200 –60)
magφ(u2) = (200 –120)
→ Reference:C:\mcadckts\CaNL11\comm42m.mcd
cv := D·(s·I – A)–1·B·u + E·u
Get magnitude (V) and phase (deg) when Y is a scalar or a column vector:
Ein :=
99 1
98 1
ui
i:
.
.= ⋅
− ⋅− − ⋅
1001 1 73205
1 1 73205
rows A cols A
rows B cols B
rows D cols D
r
( ) ( )
( ) ( )
( ) ( )
oows E cols E( ) ( )
=
2 2
2 2
5 2
5 2
Format
N N
N M
K N
K M
:
mp Y
vo cv
ph rd cv
for k r
: ( )
arg
..
= =
←
← ⋅ ( )∈
if rows 0
1 oows Y
vo cv
ph rd cv
Y vo ph
k k
k k
( )
arg
otherwise
←
← ⋅ ( )
(( )
Node Magnitude Phase
mp =
1
2
3
4
5
−200
236 9
130 1
181 1
199 8
6
.
.
.
.
00
92 8
137 6
139 9
120
−−−−
.
.
.
7028_C008.fm Page 175 Thursday, January 12, 2006 10:09 AM
176 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
magφ(Im1) = (10.696 29.55)
magφ(Im2) = (6.506 –137.64)
magφ(Im3) = (17.102 –145.611)
See SPICE comparison in the following text.
* SPICE Verification
* Convert to single-ended Y input on A & B; C = 0
* Same load as 3phasewye2 with floating delta input
*
VEinA 99 0 AC 200V –60
VEinB 98 0 AC 200V –120
*
R1 1 2 12
R2 3 0 20
R3 4 3 3
R4 98 5 0.01
R5 99 1 0.01
*
C1 2 3 9.947UF
L1 5 4 0.637MH
*
.AC LIN 1 1KH 1KH
.PRINT AC IM(R1) IP(R1)
.PRINT AC IM(R2) IP(R2)
.PRINT AC IM(R3) IP(R3)
.OPTIONS NOECHO NOPAGE NOMOD
.END
**** AC ANALYSIS TEMPERATURE = 27.000 DEG C
Im :11
1 2= −cv cvR
Im :223= cv
R
Im :33
4 3= −cv cvR
7028_C008.fm Page 176 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits 177
FREQ IM(R1) IP(R1)
1.000E+03 1.070E+01 2.954E+01
FREQ IM(R2) IP(R2)
1.000E+03 6.506E+00 –1.377E+02
FREQ IM(R3) IP(R3)
1.000E+03 1.710E+01 -1.456E+02
8.4 THREE-PHASE Y-CONNECTED UNBALANCED LOAD — FLOATING DELTA INPUT
Same load as in Section 8.3.
F := 1000 ω := 2·π·F s := ω·i R1 := 12 R2 := 20 R3 := 3
R4 := 0.01 R5 := 0.01 R6 := 0.01 R7 := 0.01
U := 9 Y := (1 2 3 4 5)T
CC := (2 0 C1) LL := (3 6 L1)
Note generator polarities.
(radians–degree conversions)
EinCA
EinBC
++ +
−
+−
V1
C1
R1
R3
V3
L1
R6R5
R7
V8 V9
V5
V6
V4
R4R2
V2
V7
+
EinAB
+−
L14
:=ω
C11
16:=
⋅ω
rd := 180π
drrd
:= 1
7028_C008.fm Page 177 Thursday, January 12, 2006 10:09 AM
178 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Floating generators:
GG := 0
→ Reference:C:\mcadckts\CaNL11\comm42m.mcd
K = number of outputs; M = number of inputs.
pr(E,θ) := E·(cos(θ·dr) + i·sin(θ·dr)) (polar to rectangular conversion)magφ(x) := (|x| rd·arg(x)) (rectangular to polar conversion)
u1 := pr(200,0) u2 := pr(200,–120) u3 := pr(200,120)
Create ∆-connected inputs.
cv := D·(s·I – A)–1·B·u + E·u
RR
R
R
R
R
R
R
R
:=
8 1 5
1 2 1
4 0 2
3 0 3
5 4 4
9 1 6
7 6 7
EE :=
8 7 99 0 1
6 5 98 0 1
4 9 97 0 1
Ein :=
99 1
98 1
97 1
rows A cols A
rows B cols B
rows D cols D
r
( ) ( )
( ) ( )
( ) ( )
oows E cols E( ) ( )
=
2 2
2 3
5 2
5 3
Format
N N
N M
K N
K M
:
u i
i
= − −− +
200
100 173 205
100 173 205
.
.
7028_C008.fm Page 178 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits 179
Get magnitude (V) and phase (deg) when Y is a scalar or a column vector:
Current through R1:
Current through R2:
Current through R3:
mp Y
vo cv
ph rd cv
for k r
: ( )
arg
..
= =
←
← ⋅ ( )∈
if rows 0
1 oows Y
vo cv
ph rd cv
Y vo ph
k k
k k
( )
arg
otherwise
←
← ⋅ ( )
(( )
Node Magnitude Phase
mp =
1
2
3
4
5
−214
171 2
51 3
130 2
130 3
23
.
.
.
.
..
.
.
.
.
6
60 4
145 6
42 3
42 3
−−
I :11
1 2mcv cv
R= −
I :224m
cvR
=
I :333m
cvR
=
7028_C008.fm Page 179 Thursday, January 12, 2006 10:09 AM
180 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Rectangular FormI1m = 9.307 + 5.281iI2m = 4.811 + 4.384iI3m = –14.118 – 9.665i
Polar Formmagφ(I1m) = (10.701 29.571)magφ(I2m) = (6.509 42.34)magφ(I3m) = (17.11 –145.606)
SPICE solution is as follows:
* SPICE Verification
* Three phase floating delta input
VEinAB 8 7 AC 200V 0; + -
*R21 6 1 1M
VEinBC 6 5 AC 200V –120; + -
VEinCA 4 9 AC 200V 120; + -
*
R1 1 2 12
R2 4 0 20
R3 3 0 3
R4 5 4 0.01
R5 8 1 0.01
R6 9 1 0.01
R7 7 6 0.01
*
C1 2 0 9.947UF
L1 3 6 0.637MH
*
.AC LIN 1 1KH 1KH
.PRINT AC IM(R1) IP(R1)
.PRINT AC IM(R2) IP(R2)
.PRINT AC IM(R3) IP(R3)
.OPTIONS NOECHO NOPAGE NOMOD
7028_C008.fm Page 180 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits 181
.END
**** AC ANALYSIS TEMPERATURE = 27.000 DEG C
FREQ IM(R1) IP(R1)
1.000E+03 1.070E+01 2.956E+01
FREQ IM(R2) IP(R2)
1.000E+03 6.508E+00 4.233E+01
FREQ IM(R3) IP(R3)
1.000E+03 1.711E+01 -1.456E+02
8.5 BALANCED Y- LOAD
This section illustrates the single-ended input method (on phase A and phase Binputs) with a balanced Y load. Answers are compared to a SPICE analysis of thesame circuit.
uF := 10–6 uH := 10–6 mH := 10–3 Meg := 106
F := 60 ω := 2·π·F s := ω·i C2 := C1 C3 := C1
L2 := L1 L3 := L1 R1 := 6 R6 := R1 R4 := 4
R5 := R4 R3 := R1 R2 := R4 R7 := 0.001 R8 := R7 R9 := R7
R10 := 1·Meg Y := (1 2 3 4 5 6)T U : = 10
L1
C1
R3
V6C3R6
L3
V7
V8 V10V9
R8EB
EC = 0 R5 R10
R2R1
L2
V3V2
V1
V4
C2
R9
R7
EA
R4V5
C11
8:=
⋅ω
L13
:=ω
Ein :=
99 1
98 1
7028_C008.fm Page 181 Thursday, January 12, 2006 10:09 AM
182 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
R10 eliminates an all-inductive cutset at node V8.
EE := 0 GG := 0
magφ(x) := (|x| rd·arg(x))
→ Reference:C:\mcadckts\CaNL11\comm42m.mcd
magφ(u1) = (200 –60)
magφ(u2) = (200 –120)cv := D·(s·I – A)–1·B·u + E·u
rd := 180π
RR
R
R
R
R
R
R
R
R
R
:=
1 2 1
1 3 2
4 6 3
10 6 4
9 5 5
5 7 6
99 1 7
98 6 8
5 0 9
88 0 10R
CC
C
C
C
:=
1 4 1
2 5 2
6 7 3
LL
L
L
L
:=
3 8 1
8 10 2
8 9 3
ui
i
EA
EB
:.
.
= ⋅− ⋅
− −
2000 5
32
0 53
2
rows A cols A
rows B cols B
rows D cols D
r
( ) ( )
( ) ( )
( ) ( )
oows E cols E( ) ( )
=
6 6
6 2
6 6
6 2
Format
N N
N M
K N
K M
:
7028_C008.fm Page 182 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits 183
Get magnitude and phase (deg) when Y is a scalar or a column vector:
Get currents:
(Magnitude phase angle)
magφ(I1m) = (19.99 –6.88)magφ(I2m) = (23.09 –66.88)magφ(I3m) = (19.99 53.12)
mp Y
vo cv
ph rd cv
for k r
: ( )
arg
..
= =
←
← ⋅ ( )∈
if rows 0
1 oows Y
vo cv
ph rd cv
Y vo ph
k k
k k
( )
arg
otherwise
←
← ⋅ ( )
(( )
Node Magnitude Phase
mp =
1
2
3
4
5
6
−200
160
108 9
82 1
0
200
.
.
660
96 9
54 2
109 9
70 6
120
−−−−−
.
.
.
.
I :11
1 2mcv cv
R= −
I :22
1 3mcv cv
R= −
I :33
4 6mcv cv
R= −
7028_C008.fm Page 183 Thursday, January 12, 2006 10:09 AM
184 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
See the following SPICE comparisons for both single-ended Y and floating deltainputs.
SPICE Y input
SPICE Verification.
* File: Fig23_25p941y.cir
* Compare with Mathcad file Fig23_p941s.mcd
* Delta-Wye Load
* SINGLE ENDED Y INPUT
VEA 99 0 AC 200 -60
VEB 98 0 AC 200 -120
*
R7 99 1 0.001 ; ESR for input
R8 98 6 0.001
R9 5 0 0.001
*
R1 1 2 6
R2 1 3 4
R3 4 6 6
R4 6 10 4
R5 5 9 4
R6 5 7 6
R10 8 0 1MEG; Not required for SPICE. ICS compensated for internally.
*
C1 1 4 331.573UF
C2 5 2 331.573UF
C3 6 7 331.573UF
*
L1 3 8 7.958MH
L2 10 8 7.958MH
L3 9 8 7.958MH
7028_C008.fm Page 184 Thursday, January 12, 2006 10:09 AM
Three-Phase Circuits 185
*
.AC LIN 1 60 60
.PRINT AC IM(R1) IP(R1)
.PRINT AC IM(R2) IP(R2)
.PRINT AC IM(R3) IP(R3)
.OPTIONS NOPAGE NOECHO NOMOD
**** AC ANALYSIS TEMPERATURE = 27.000 DEG C
FREQ IM(R1) IP(R1)
6.000E+01 1.999E+01 -6.877E+00
FREQ IM(R2) IP(R2)
6.000E+01 2.309E+01 -6.688E+01
FREQ IM(R3) IP(R3)
6.000E+01 1.999E+01 5.312E+01
SPICE ∆ Input
SPICE Verification.
* Compare with Mathcad file Fig23_p941s.mcd
* DELTA INPUT
VAB 100 98 AC 200 0; Floating Delta
RS 100 99 0.001; ESR
VBC 98 97 AC 200 -120; Floating Delta
VCA 97 99 AC 200 +120; Floating Delta
*
R7 99 1 0.001 ; ESR for input
R8 98 6 0.001
R9 97 5 0.001
*
R1 1 2 6
R2 1 3 4
R3 4 6 6
R4 6 10 4
R5 5 9 4
7028_C008.fm Page 185 Thursday, January 12, 2006 10:09 AM
186 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
R6 5 7 6
R10 8 0 1MEG
*
C1 1 4 331.573UF
C2 5 2 331.573UF
C3 6 7 331.573UF
*
L1 3 8 7.958MH
L2 10 8 7.958MH
L3 9 8 7.958MH
*
.AC LIN 1 60 60
.PRINT AC IM(R1) IP(R1)
.PRINT AC IM(R2) IP(R2)
.PRINT AC IM(R3) IP(R3)
.OPTIONS NOPAGE NOECHO NOMOD
**** AC ANALYSIS TEMPERATURE = 27.000 DEG C
FREQ IM(R1) IP(R1)
6.000E+01 1.999E+01 -6.877E+00
FREQ IM(R2) IP(R2)
6.000E+01 2.309E+01 -6.688E+01
FREQ IM(R3) IP(R3)
6.000E+01 1.999E+01 5.312E+01
REFERENCES
1. Boylestad, Introductory Circuit Analysis, 7th ed., Macmillan Publishing Co., NewYork, 1994, p. 946.
7028_C008.fm Page 186 Thursday, January 12, 2006 10:09 AM
187
Appendix I
BACKGROUND THEORY OF NDS METHOD
The method evolves from writing the circuit equations after converting all capacitorsto ideal 1 V voltage sources and inductors to ideal 1 A current sources. We beginwith the passive RCL circuit used to introduce the method.
Original circuit:
Note that for those less mathematically inclined, this appendix may be skippedwithout loss of continuity.
Converted circuit:
Remembering that these are now known sources with values 1 V and 1 A, wecan write the circuit equations based on this configuration: The input voltage Ein isalso known and is usually set to 1 V, but can have other values. These are DCequations; no AC or LaPlace equations in s are required.
DC circuit equations:
KCL at node V1 gives:
(Ein – V1)·G1 = (V1 – V2)·G4 + I3 + iC1
iC1 is the unknown current through capacitor C1, now the voltage source E1.
V1 V2C1
R4
V3R2
L3
R1
Ein
C2 L4R3
V1 V2E1
R4
V3R2
I3
R1
EinE2
L4
R3+−
+−
+ −
+ −
7028_A001.fm Page 187 Thursday, January 12, 2006 10:14 AM
188
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The G’s are the conductances of the resistors R. This is done to make the arraysmore compact.
Rearranging all unknowns on the left-hand side and knowns on the right-handside:
V1·(G1 + G4) – V2·G4 + iC1 = Ein·G1 – I3
The ideal current source I3 has the known value of 1 A, but we will retain thereference designator temporarily for tutorial purposes. The same is done for I4 andfor the 1 V values of E1 and E2.
KCL at node V2 gives:
(V1 – V2)·G4 + iC1 + I3 = (V2 – V3)·G2
Rearranging:
–V1·G4 + V2·(G2 + G4) – V3·G2 – iC1 = 13
KCL at node V3 gives:
(V2 – V3)·G2 = V3·G3 + iC2 + I4 = 0
Rearranging:
–V2·G2 + V3·(G2 + G3) + iC2 = –I4
V1 – V2 = eL3
eL3 and eL4 are the unknown voltages across L3 and L4. This equation is then:
V1 – V2 – eL3 = 0
V3 = eL4 or V3 – eL4 = 0
For E1 and E2:
V1 – V2 = E1 V3 = E2
Next we set the component values:
K := 10
3
u := 10
–6
m := 10
–3
V := 1 A := 1 mA := 1
C1 := 0.1·u
C2 := C1 L3 := 2533.03·u L4 := 25.3303·u Ein := 1
G11
10:= G2
1100
:= GK
31
50:=
⋅G
K4
110
:=⋅
7028_A001.fm Page 188 Thursday, January 12, 2006 10:14 AM
Appendix I
189
Letting U = the number of unknown nodes, M the number of inputs (1 in thiscase), and N the number of capacitors (1 V sources) and inductors (1 A sources),the following matrices are created from the preceding equations. Note columnheadings for coefficients: Matrix A1 contains the coefficients of the left-handed sidesof the preceding equations and has the dimensions U+N U+N.
U := 3 N := 4 M := 1
We form array A1 from left-hand sides of the preceding equations:(Note column headings.)
From the equations:
V1·(G1 + G4) – V2·G4 + iC1 = Ein·G1 – I3–V1·G4 + V2·(G2 + G4) – V3·G2 – iC1 = I3–V2·G2 + V3·(G2 + G3) + iC2 = –I4V1 – V2 = E1V3 = E2V1 – V2 – eL3 = 0V3 – eL4 = 0
We next form U+N N+M array B2 for the right-hand sides of the precedingequations and set the sources to their unity values:
E1 := 1 E2 := 1 I3 := 1 I4 := 1
V V V iC iC eL eL
A
G G G
G G G
1 2 3 1 2 3 4
1
1 4 4 0 1 0 0 0
4 2 4
:=
+ −− + −− −
− +−
−
G
G G G
2 1 0 0 0
0 2 2 3 0 1 0 0
1 1 0 0 0 0 0
0 0 1 0 0 0 0
1 1 0 0 0 −−−
1 0
0 0 1 0 0 0 1
7028_A001.fm Page 189 Thursday, January 12, 2006 10:14 AM
190
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note that every row and column of A1 must have at least one entry, and thatevery column of B2 must have at least one entry.
We can now partition array A1 into four submatrices A11, A12, A21, and A22as follows:
From the circuit, we see that current through C1 (E1) leaves node V1 and entersnode V2. If we mentally assign –1 for current leaving a node, and +1 for currententering a node, and compare this to –A12:
Because column 1 represents C1, the coding here tells us which nodes C1 isconnected to and the current polarity.
In the same manner, column 2 represents C2, and we can see without lookingat the schematic that C2 is connected from (–1) node V3 to ground.
We next split array B2 into four submatrices A13, A14, A23, and A24:
E E I I Ein
B
I Ein G
I
I
E
1 2 3 4
2
0 0 3 0 1
0 0 3 0 0
0 0 0 4 0
1 0:=
− ⋅
−00 0 0
0 2 0 0 0
0 0 0 0 0
0 0 0 0 0
E
V V V
A
G G G
G G G G
G G G
1 2 3
11
1 4 4 0
4 2 4 2
0 2 2 3
:=+ −
− + −− +
iC iC eL eL
A
1 2 3 4
12
1 0 0 0
1 0 0 0
0 1 0 0
:= −
A21
1 1 0
0 0 1
1 1 0
0 0 1
:=
−
−
A22
0 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
:=−
−
− =−
−
A
V
V
V
12
1 0 0 0
1 0 0 0
0 1 0 0
1
2
3
7028_A001.fm Page 190 Thursday, January 12, 2006 10:14 AM
Appendix I
191
Similar to A12, array A13, with column 3 and column 4 representing L3 andL4, respectively, gives us the same information about these two components: whichnodes they are connected to and the current polarity, –1 leaving a node and +1entering.
Repeating A12, A13, and A21
Next, we take the transpose (interchange rows and columns) of A12 and –A13
and we see that we can pull out the first two rows of A12
T
and the last two rows of–A13
T
and, combining them, we have A21.
E E I I
A
1 2 3 4
13
0 0 1 0
0 0 1 0
0 0 0 1
:=−
−
A
Ein G
14
1
0
0
:=⋅
A23
1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0
:=
A24
0
0
0
0
:=
iC iC eL eL
A
1 2 3 4
12
1 0 0 0
1 0 0 0
0 1 0 0
= −
E E I I
A
1 2 3 4
13
0 0 1 0
0 0 1 0
0 0 0 1
=−
−
V V V
A
1 2 3
21
1 1 0
0 0 1
1 1 0
0 0 1
=
−
−
A T12
1 1 0
0 0 1
0 0 0
0 0 0
=
−
–A T13
0 0 0
0 0 0
1 1 0
0 0 1
=−
7028_A001.fm Page 191 Thursday, January 12, 2006 10:14 AM
192
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Ncap is the number of capacitors, and Nind is the number of inductors, so thatN = Ncap + Nind
For A22:
Ncap := 2 Nind := 2
If the equations are taken in the order given earlier, we can see that the –1’s willgo in the locations shown. These –1’s will be at A22
Ncap+1, Ncap+1
and A22
N,N
.They represent the unity coefficients of eL3 and eL4.
The +1’s here are located at A23
1,1
and A23
2,2
. They represent the values of E1= +1 and E2 = +1.
Again, taking the equations in the order given earlier, A24 will always be an NM array of zeros. (Matrices or vectors filled with all zeros are called null arrays.)
These procedures can be coded in software that will automate the constructionof these submatrices individually (see comm42.mcd or dccomm42.mcd). They thencan be formed into A1 and B2 as follows:
A1 := stack(augment(A11,A12), augment(A21,A22))
iC iC eL eL
A
1 2 3 4
22
0 0 0 0
0 0 0 0
0 0 1 0
0 0 0 1
=−
−
E E I I
A
1 2 3 4
23
1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0
=
A24
0
0
0
0
=
7028_A001.fm Page 192 Thursday, January 12, 2006 10:14 AM
Appendix I
193
B2 := stack(augment(A13,A14), augment(A23,A24))
Solving:
V := A1
–1
·B2What is contained in V?V is dimension U+N N+M
Concentrating on the top U = 3 rows of V:V
1,1
is the node voltage at node V1 due to E1 = 1, E2 = I3 = I4 = Ein = 0.V
1,2
is the node voltage at V1 with E2 = 1, E1 = I3 = I4 = Ein =0.V
1,3
is the V1 node voltage with I3=1, E1 = E2 = I4 = 0.V
1,4
is V1 with I4 =1, E1 = E2 = Ein =0 = I3 = 0.V
1,5
is V1 with Ein = 1, E1 = E2 = I3 = I4 = 0.And correspondingly for row 2 (V2) and row 3 (V3)
A1
0 1001 0 0001 0 1 0 0 0
0 0001 0 0101 0 01 1 0 0
=
−− − −
. .
. . . 00
0 0 01 0 01 0 1 0 0
1 1 0 0 0 0 0
0 0 1 0 0 0 0
1 1 0 0 0 1 0
0 0 1
−−
− −
. .
00 0 0 1−
B2
0 0 1 0 0 1
0 0 1 0 0
0 0 0 1 0
1 0 0 0 0
0 1 0 0 0
0 0 0 0 0
0 0 0 0 0
=
−
−
.
V =
−0 0909 0 0909 0 0 0 9091
0 9091 0 0909 0 0 0 9091
. . .
. . .
00 1 0 0 0
0 0092 0 0091 1 0 0 0091
0 0091 0 0091
− − −− −
. . .
. . 00 1 0 0091
1 0 0 0 0
0 1 0 0 0
−
.
7028_A001.fm Page 193 Thursday, January 12, 2006 10:14 AM
194
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Getting the R’s from the G’s:
R1 := G1
–1
R2 :=G2
–1
R3 := G3
–1
R4 := G4
–1
To check this:
V
1,5
= 0.9091
R4 and R3 are shorted by inductors L3 and L4.
V
1,1
= 0.0909 V
1,2
= 0.0909
and so forth.
Extracting the last N = 4 rows of V and calling it H:
H := submatrix(V, U + 1, U + N, 1, N + M)
Row 1 is current i
C1
with the five sources active one at a time as above.
H
1,1
= –0.0092
H
1,2
:= –0.0091 H
1,3
:= –I3 H
1,3
= –1 H
1,4
:= 0
because I4 is shorted by E2 = 0.
H
1,5
= 0.0091
Row 2 is i
C2
with the five sources separately active; row 3 is e
L3
and row 4 ise
L4
under the same circumstances.We next form the N Ndiagonal array P, with C1, C2, L3, and L4 in that order.
VEin RR R
1 52
1 2, := ⋅
+
VE R
R R1 1
1 11 2
, := ⋅+
VE RR R
1 22 1
1 2, := ⋅
+
H =
− − −− − −0 0092 0 0091 1 0 0 0091
0 0091 0 0091 0 1 0
. . .
. . ..0091
1 0 0 0 0
0 1 0 0 0
HE
R R R
R R R
1 11
4 1 2
1 2 4
, = −⋅ +( )+ +
HE
R R1 2
21 2
, = −+
HEin
R R1 5
1 2, =
+
7028_A001.fm Page 194 Thursday, January 12, 2006 10:14 AM
Appendix I
195
which has same order as the columns of A12 and A22.The next operation is to solve H and P simultaneously and label the result AB.
The array AB will have the dimensions N N+M. AB := P
–1
·H
In effect, we are dividing the top row of H by C1:
etc.
and dividing the second row of H by C2:
etc.
and, similarly, the third row by L3, and the fourth row by L4.We now extract A from the first N columns of AB:
A := submatrix(AB, 1, N, 1, N)
and extract B from the last M columns of AB:
B := submatrix(AB, 1, N, N + 1, N + M)
P
C
C
L
L
:=
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
AB =
− − − ×−
91909 091 90909 091 1 10 0 90909 091
909
7. . .
009 091 91109 091 0 1 10 90909 091
394 784 0 0 0
7. . .
.
− − ×00
0 39478 411 0 0 0.
HC
1 1
191909 091, .= − H
C1 2
190909 091, .= −
HC
2 1
290909 091, .= − H
C2 2
291109 091, .= −
A =
− − − ×− −
91909 091 90909 091 1 10 0
90909 091 911
7. .
. 009 091 0 1 10
394 784 0 0 0
0 39478 411 0 0
7.
.
.
− ×
7028_A001.fm Page 195 Thursday, January 12, 2006 10:14 AM
196
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
As for output arrays D and E, we extract these from row Y of V, where Y := 3.
D := submatrix(V, Y, Y, 1, N) D = (0 1 0 0)
The column labels of D are v
C1
, v
C2
, i
L3
, and i
L4
. Hence, the 1 in column 2 tellsus that the output is being taken directly from C2 or V
Y
= V3. See the schematic.
E := submatrix(V, Y, Y, N + 1, N + M) E = (0)
A-I.1 THEORY OF NDS METHOD
A DC voltage-controlled voltage source (VCVS)
K := 10
3
mA := 10
–3
R1 := 1·K R2 := 3·K R3 := 4·K R4 := 2·K R5 := 1.5·K Ein := 5
B =
90909 091
90909 091
0
0
.
.
V1 V2 V3R3
lx
R1
Ein
EE1
R2 R4R5
+−
Nodal Equations Rearranged
Ein VR
VR
Ix V– 11
15
1= + ⋅⋅ +
+ =
= + − ⋅
11
15 1
22
2 33
21
R RIx
EinR
IxVR
V VR
VRR R
VR
Ix
V VR
VR
VR
V
213
33
0
2 33
34
23
3
+
− − =
− = − + ⋅⋅ +
=1
314
0R R
7028_A001.fm Page 196 Thursday, January 12, 2006 10:14 AM
Appendix I
197
VCVS equation:
V2 – V1 = k·V3 V2 – V1 – k·V3 = 0 k := 2
Insert into arrays A1 (per column headings) and B2 (M = 1, so B2 has only onecolumn).
V := 1solve(A1,B2)
Ix := V
4
Ix = 2.368mA V
2
–V
1
= 3.158 k·V
3
= 3.158VCVS equation checks.
Optimizing:Add row 2 (Vp) to row 1 (Vn).
V := 1solve(A1,B2)
Now insert VCVS equation into row 2 (Vp), and then delete the fourth row andfourth column.
V V V Ix
A
R R
R R R
R R
1 2 3
1
11
15
0 0 1
012
13
13
1
013
1:=
+
+ − −
−33
14
0
1 1 0
+
− −
Rk
B
EinR
2
10
0
0
:=
V =
1 579
4 737
1 579
0 002
.
.
.
.
A
R R R R R
R R R
R
1
11
15
12
13
13
0
012
13
13
1
013
1:=
+ + −
+ − −
−RR R
k3
14
0
1 1 0
+
− −
B
EinR
2
10
0
0
:=
V =
1 579
4 737
1 579
0 002
.
.
.
.
7028_A001.fm Page 197 Thursday, January 12, 2006 10:14 AM
198
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
V := 1solve(A1,B2)
Save A1: A1a := A1
Ix is missing, but the node voltages are the same. If needed, Ix can be foundfrom the node V1 equation.
or from the node V2 equation:
Using the NDS method:
U := 3 Ein := (99 5)
GG := 0 EE := (2 1 3 0 k)
→
Reference:C:\mcadckts\CaNL11\dccomm42.mcd
V := 1solve(A1,B2)
AR R R R R
k
R R R
1
11
15
12
13
13
1 1
013
13
14
:=
+ + −
− −− +
B
EinR
21
0
0
:=
V =
1 579
4 737
1 579
,
.
.
IxEinR
VR R
Ix mA: .= − ⋅ +
=1
11
15
2 3681
Ix VR R
VR
Ix mA: .= ⋅ +
− =231
213 3
2 368
RR
R
R
R
R
R
:=
99 1 1
1 0 5
2 0 2
2 3 3
3 0 4
V =
1 579
4 737
1 579
.
.
.
A a1
0 002 0 001 0
1 1 2
0 0 0 001
=−
− −−
. .
.
A1
0 002 0 001 0
1 1 2
0 0 0 001
=−
− −−
. .
.
7028_A001.fm Page 198 Thursday, January 12, 2006 10:14 AM
Appendix I
199
A-I.1.1 A
N
AC F
LOATING
VCVS
See Section 3.2 for NDS solution.
mA := 10
–3
K := 10
3 uF := 10–6
C1 := 0.01·uF C2 := 0.05·uF u := 20 Ein := 2U := 3 N := 2 M := 1
Resistances are converted to conductances to make the arrays more compact.VCVS equation:
uV1 = V2 – V1
In the NDS method, this would be specified as:
EE = (Vp Vn Vcp Vcn Gain)
or
EE := (2 1 1 0 20)
Let Ix be the current through the VCVS, a fourth unknown in addition to theU = 3 voltage nodes.
Temporarily increase U to add the unknown Ix.
U := 4
Circuit equations:From schematic:
(Ein – V1)·G1 = Ix + iC1Ix = V2·G2 + (V2 – V3)·G3(V2 – V3)·G3 = iC2 + V3·G4uV1 = V2 – V1V1 = E1 = 1 V3 = E3 = 1
V1 V2 V3R3
lx
R1
Ein
uV1
R2 R4
+−
C2C1
GK
11
1:=
⋅G
K2
13
:=⋅
GK
31
4:=
⋅G
K4
12
:=⋅
7028_A001.fm Page 199 Thursday, January 12, 2006 10:14 AM
200 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Rearranged:
V1·G1 + Ix + iC1 = Ein·G1V2·(G2 + G3) – V3·G3 – Ix = 0–V2·G3 + V3·(G3 + G4) + iC2 = 0V2 – V1·(1 + u) = 0
Insert the coefficients of these equations into U+N U+N array A1 and U+NN+M array B2. Note the column headers.
Note that it is important to keep the column order of A1 and B2 as shown wheninserting the equation coefficients into the arrays. Also note that column 5 andcolumn 6, iC1 and iC2, are in the same order as C1 and C2 in P, as are E1 and E2in B2.
Get A, B, D, and E from A1 and B2 as before:
V := A1–1·B2H := submatrix(V, U + 1, U + N, 1, N + M)AB := P–1·HA := submatrix(AB, 1, N, 1, N)B := submatrix(AB, 1, N, N + 1, N + M)
V V V Ix iC iC
A
G
G G G
G G
1 2 3 1 2
1
1 0 0 1 1 0
0 2 3 3 1 0 0
0 3:=
+ − −− 33 4 0 0 1
1 1 0 0 0 0
1 0 0 0 0 0
0 0 1 0 0 0
+− +( )
G
u
E E Ein
B
Ein G
1 2
2
0 0 1
0 0 0
0 0 0
0 0 0
1 0 0
0 1 0
:=
⋅
P diagC
C:=
1
2
7028_A001.fm Page 200 Thursday, January 12, 2006 10:14 AM
Appendix I 201
X := 1solve(–A,B)
Reducing the order by the number of VCVSs can significantly decrease executiontime and increase accuracy in circuits with many opamps.
To reduce the order by 1:Add row Vp (2) to row Vn (1). Zero out row Vp (2) and insert VCVS equation
V2 – V1(1 + u) = 0.
Reduce U by 1.
U := 3
The numerical values in A1 and B2 are:
For programming purposes, we partition A1 into A11, A12, A21, and A22, asfollows.
A11 := submatrix(A1, 1, U, 1, U)A12 := submatrix(A1, 1, U, U + 1, U + N)A21 := submatrix(A1, U + 1, U + N, 1, U)A22 := submatrix(A1, U + 1, U + N, U + 1, U + N)
A =− ×
−
1 325 10 25000
105000 15000
6.B =
200000
0
X =
0 174
1 217
.
.
Dc voltage on C1
Dc voltagee on C2
A
G G G G
u
G G G1
1 2 3 3 1 0
1 1 0 0 0
0 3 3 4 0 1
1 0 0 0 0
0
:=
+ −− +( )
− +
00 1 0 0
B
Ein G
2
0 0 1
0 0 0
0 0 0
1 0 0
0 1 0
:=
⋅
A1
0 001 0 001 0 1 0
21 1 0 0 0
0 0 0 001 0 1
1 0 0 0 0
0 0 1 0
=
−−
−
. .
.
00
B2
0 0 0 002
0 0 0
0 0 0
1 0 0
0 1 0
=
.
A11
0 001 0 001 0
21 1 0
0 0 0 001
=−
−−
. .
.
A12
1 0
0 0
0 1
=
7028_A001.fm Page 201 Thursday, January 12, 2006 10:14 AM
202 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note that A21 is the transpose of A12.Partition B2 into four subarrays:
A13 := submatrix(B2, 1, U, 1, N)A23 := submatrix(B2, U + 1, U + N, 1, N)A14 := submatrix(B2, 1, U, N + 1, N + M)A24 := submatrix(B2, U + 1, U + N, N + 1, N + M
We obtain the inductors-open (if present) DC node voltages using A11 and A14:
Vdc := 1solve(A11, A14)
If required, we can find DC value of Ix by adding the currents through R2 and R3.
Ix := Vdc2·G2 + (Vdc2 – Vdc3)·G3 Ix = 1.826mA
After creating these subarrays from the node lists the software programcomm42.mcd or comm42m.mcd, then finds A, B, D, and E as follows:
A1 := stack(augment(A11,A12), augment(A21,A22))and B2 := stack(augment(A13,A14), augment(A23,A24))V := A1–1·B2 H := submatrix(V, U + 1, U + N, 1, N + M)A := submatrix(AB, 1, N, 1, N)B := submatrix(AB, 1, N, N + 1, N + M)
We get D and E from V at output node:
Y := 3D := submatrix(V, Y, Y, 1, N) D = (0 1)E := submatrix(V, Y, Y, N + 1, N + M) E = (0)
A211 0 0
0 0 1=
A220 0
0 0=
A13
0 0
0 0
0 0
=
A14
0 002
0
0
=
.
A231 0
0 1=
A240
0=
V V V
VdcT
1 2 3
0 174 3 652 1 217= ( ). . .
A =− ×
1 325 10 25000
105000 15000
6.
–B =
200000
0
7028_A001.fm Page 202 Thursday, January 12, 2006 10:14 AM
Appendix I 203
A-I.1.2 VCVS AND CCCS
See Section 3.5 for NDS solution.
K := 103 u := 10–6 Meg := 106 mA := 10–3 uA := 10–6 mV := 10–3
C1 := 0.08·u C2 := 0.005·u a := 0.004 B := 100N := 2 U := 4 + 2 Y := 4 M := 1 Ein := 100·mV
Ix is current through the VCVS (V2 – V3)VCVS:
V2 – V3 = a·(Vcp – Vcn)
Controlling nodes:
Vcp = V1 Vcn = V4 –a·V1 + V2 – V3 + a·V4 = 0
Convert g1 CCCS to a VCCS.
gl = B·I1
gl + B·G1·V1 = B·G1·Ein
From the schematic:
(Ein – V1)·G1 = (V1 – V2)·G2 + (V1 – V4)·G3 + iC1(V1 – V2)·G2 = IxIx = V3·G5
V2
V3
V1 V4
g1
R3
C1
C2
l1
R1
Ein
R2 R4
+−
+−
R5
G11
100:= G2
110
:= GK
31
40:=
⋅G
K4
12
:=⋅
G51
10:=
IEin V
R1
11
= −
glBR
Ein V B G Ein V= ⋅ −( ) = ⋅ ⋅ ( )1
1 1 1–
7028_A001.fm Page 203 Thursday, January 12, 2006 10:14 AM
204 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
(V1 – V4)·G3 + iC1 = g1 + V4·G4 + iC2V1 – V4 = E1 V4 = E2
Rearranged:
V1·(G1 + G2 + G3) – V2·G2 – V4·G3 + iC1 = Ein·G1–V1·G2 + V2·G2 + Ix = 0V3·G5 – Ix = 0–V1·G3 + V4·(G3 + G4) – iC1 + iC2 + g1 = 0
Insert coefficients into A1 and B2:
Add row 2 and row 3; insert row 5 (VCVS equation) in row 2; delete row 5 andcolumn 5:
U := 5
V V V V Ix gl iC iC
A
G G G G G
G
1 2 3 4 1 2
1
1 2 3 2 0 3 0 0 1 0
:=
+ + − −− 22 2 0 0 1 0 0 0
0 0 5 0 1 0 0 0
3 0 0 3 4 0 1 1 1
1 1 0 0
G
G
G G G
a a
−− + −− − 00 0
1 0 0 0 0 1 0 0
1 0 0 1 0 0 0 0
0 0 0 1 0 0 0 0
B G⋅−
E E Ein
B
Ein G
B G Ein
1 2
2
0 0 1
0 0 0
0 0 0
0 0 0
0 0 0
0 0 1
1 0
:=
⋅
⋅ ⋅00
0 1 0
P diagC
C:=
1
2
7028_A001.fm Page 204 Thursday, January 12, 2006 10:14 AM
Appendix I 205
We partition A1 and B2 as before:
A11 := submatrix(A1, 1, U, 1, U)A12 := submatrix(A1, 1, U, U + 1, U + N)A21 := submatrix(A1, U + 1, U + N, 1, U)A22 := submatrix(A1, U + 1, U + N, U + 1, U + N)
Again note that A12T is identical to A21. With no inductors (Nind = 0), A22 ismerely an N N null array.
V V V V g iC iC
A
G G G G G
a
1 2 3 4 1 1 2
1
1 2 3 2 0 3 0 1 0
1 1
:=
+ + − −− − aa
G G G
G G G
B G
0 0 0
2 2 5 0 0 0 0
3 0 0 3 4 1 1 1
1 0 0 0 1 0 0
1 0 0
−− + −⋅
−−
1 0 0 0
0 0 0 1 0 0 0
B
Ein G
B G Ein
2
0 0 1
0 0 0
0 0 0
0 0 0
0 0 1
1 0 0
0 1 0
:=
⋅
⋅ ⋅
A11
0 11 0 1 0 0 0
0 004 1 1 0 004 0
0 1 0 1 0 1 0 0=
− −− −−
. .
. .
. . .
−−
0 0 0 0 001 1
1 0 0 0 1
.
A12
1 0
0 0
0 0
1 1
0 0
=−
A T121 0 0 1 0
0 0 0 1 0=
−
A211 0 0 1 0
0 0 0 1 0=
−
A220 0
0 0=
7028_A001.fm Page 205 Thursday, January 12, 2006 10:14 AM
206 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
And similarly for B2:
A13 := submatrix(B2, 1, U, 1, N)A14 := submatrix(B2, 1, U, N + 1, N + M)A23 := submatrix(B2, U + 1, U + N, 1, N)A24 := submatrix(B2, U + 1, U + N, N + 1, N + M
A24 is always an N M null array. The row–column order of A1 is:
V1, V2, ..., V(U), g1, g2, ..., g(Ngg), iC1, iC2, ..., iC(Ncap), eL1, eL2, ..., eL(Nind).
The row order of B2 will be the same as A1; the column order of B2 will be:
E1, E2, ..., E(Ncap), I1, I2, ..., I(Nind), Ein1, Ein2, ..., Ein(M).
U is increased in the subprogram comm42.mcd to U + Ngg.During this process, A11 and A14 can be used to find the inductors-open (if
present) DC node voltages and current g1.
Vdc := 1solve(A11,A14)VdcT = (0.087 0.092 –4.789 × 10–3 –24.138 0.013)V1 := Vdc1 V1 = 87.33mVV2 :=Vdc2 V2 = 92.11mV
and so forth.
g1 := Vdc5 gl = 12.675mA
Once the partitioned arrays are created by the program comm42.mcd orcomm42m.mcd, A1 and B2 are created as:
A1 := stack(augment(A11,A12), augment(A21,A22))and B2 := stack(augment(A13,A14), augment(A23,A24))And A, B, D, and E are obtained as before:V := A1–1·B2 H := submatrix(V, U + 1, U + N, 1, N + M) AB := P–1·HA := submatrix(AB, 1, N, 1, N)B := submatrix(AB, 1, N, N + 1, N + M)
A13
0 0
0 0
0 0
0 0
0 0
=
A14
0 001
0
0
0
0 1
=
.
.
A231 0
0 1=
A240
0=
7028_A001.fm Page 206 Thursday, January 12, 2006 10:14 AM
Appendix I 207
D := submatrix(V, Y, Y, 1, N) E := submatrix(V, Y, Y, N + 1, N + M)
D = (0 1) E = (0)
See Section 3.5 and compare the arrays.
A =− −
747812 5 750000
188040000 187900000
.B =
−
12500
19800000
7028_A001.fm Page 207 Thursday, January 12, 2006 10:14 AM
This page intentionally left blank
Part II
Tolerance Analysis
7028_S002.fm Page 209 Thursday, January 12, 2006 10:17 AM
This page intentionally left blank
211
9
Introduction
9.1 INTRODUCTION
Most of the tolerance analysis examples given here are passive or idealized opampcircuits. Discrete devices such as BJTs and MOSFETs, except for some linear first-order models, are not emphasized. The reason for this is as follows.
9.1.1 T
OLERANCE
A
NALYSIS
OF
C
IRCUITS
WITH
D
ISCRETE
C
OMPONENTS
In well-designed opamp circuits, the opamp can be considered ideal. (Thirty yearsago this would not have been possible with opamps such as the uA709. But modern-day opamps, which have bandwidths up to 400 MHz, offsets measured in nV andpA, and with negligible error, can be taken as ideal.) However, in circuits withdiscrete components such as MOSFETs and BJTs, a problem arises.
Volumes have been written describing discrete device model parameters. Indeed,the forte of the commercial versions of SPICE is using these models for nominalcircuit analysis. (See Reference 1, for example.) However, to the author’s knowledge,no one has published data on worst-case tolerances of model parameters such asreverse beta or other parameters as described in the following text.
A typical BJT, 2N2222A, has the following SPICE model with 27 constants:
.MODEL 2N2222 NPN(Is=14.34f Xti=3 Eg=1.11 Vaf=74.03 Bf=255.9 Ne=1.307
+ Ise=14.34f Ikf=.2847 Xtb=1.5 Br=6.092 Nc=2 Isc=0 Ikr=0 Rc=1
+ Cjc=7.306p Mjc=.3416 Vjc=.75 Fc=.5 Cje=22.01p Mje=.377 Vje=.75
+ Tr=46.91n Tf=411.1p Itf=.6 Vtf=1.7 Xtf=3 Rb=10)
In this model, Bf is hfe or the forward beta DC gain; Br, the reverse beta; Vaf,the Early voltage; and so forth (see reference 1).
If an analyst wanted to do a worst-case analysis on a circuit using one or moreof these devices, he or she might vary hfe from the data sheet minimum andmaximum, taking the device operating point into account. However, there is no dataavailable that describes how other parameters such as Vaf vary from transistor totransistor, given 1000 2N2222’s, for example. Is the Early voltage dependent on hfein some way? That is, if we arbitrarily change hfe, do we have to change Vaf by
7028_C009.fm Page 211 Thursday, January 12, 2006 10:18 AM
212
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
some amount? Is it independent? If so, by what percentage and in which directiondoes it vary?
It appears that nobody has done the work of putting a statistically significantnumber of these devices on a curve tracer or embedded them in test circuits andextracted the data.
To do a worst-case analysis that truly reflects the minimum and maximumperformance of circuit boards with one or more 2N2222’s in the design, we musthave statistics on all 27 parameters, just as we have statistics (tolerances) on passivecomponents such as resistors. For a DC analysis, we may not need to know howthe AC and switching parameters such as Cjc, Cje, Tr, and Tf vary, but we certainlyneed to know how the DC parameters vary from transistor to transistor. Hence, tryingto make an accurate prediction of the worst-case performance of circuits with discretedevices is a dubious if not futile exercise.
9.1.2 A
NALYSIS
M
ETHODS
Included here are the worst-case analysis methods of root sum square (RSS) andextreme value analysis (EVA). Circuit types for which these methods will giveincorrect results include band-pass and band-reject filters and any circuit in whichnonmonotonic components are present. In some cases, however, valuable economicand technical information can be obtained about circuit performance by analyzingsensitivities; they are included for this reason.
Monte Carlo analysis (MCA) will produce realistic results for virtually anycircuit that has a reasonably accurate and stable mathematical model. The provisois that a large number of samples must be used. The larger the sample, the moreaccurate the results. A rule of thumb is to use no less than 1000 samples.
9.2 SOME FACTS ABOUT TOLERANCE ANALYSIS
9.2.1 DC A
NALYSIS
There are two types of EVA: (1) sensitivity-based analysis and (2) analysis basedon all possible tolerance combinations. The second type has a somewhat awkwardlabel, fast Monte Carlo analysis (FMCA) [2].
Sensitivity-based EVA uses the signs of the component sensitivities to determinewhich combination of signs will yield the maximum output and then reverses thosesigns to obtain the minimum output. The FMCA method examines all possible 2
Nc
combinations, where Nc is the number of components, and selects the maximumand minimum from this set. This method can get cumbersome when Nc is large.For example, in a circuit with 15 components, there are 2
15
= 32,768 combinations,or circuit solutions, that must be performed.
Both types of EVA give the same answers in the majority of cases (circuits).One simple exception is the following balanced bridge:
7028_C009.fm Page 212 Thursday, January 12, 2006 10:18 AM
Introduction
213
When the nominal value of R1 = R2 = R3 = R4, sensitivity-based EVA, whenperturbing R5 (multiplying R5 by 1 + dpf = 1.0001), will not show a change inoutput because V1 – V2 = 0. The contribution of R5 will be included when all 2
5
= 32 tolerance combinations are examined using FMCA. The author has come acrosstwo other DC circuits in which this occurs. Needless to say, there are others. SPICEuses the sensitivity-based method. A true and complete EVA, however, requires thatFMCA also be performed if the circuit has a small-to-medium component count toinclude inputs.
9.2.1.1 Monte Carlo Analysis
MCA uses random number generators (RNGs) to obtain various random distribu-tions, the most common of which are the uniform and normal (Gaussian) distribu-tions. The normal distribution is used to approximate RSS analyses, whereas theuniform distribution will generate wider tolerance bands between RSS and EVA.
Uniform RNGs create random numbers, rn, between zero and one, or 0 < rn <1. Using a component tolerance of ±5%, rn creates the random component withtolerance range T = 10%(rn) – 5%. Then, T varies from –5% < T < +5%
No good uniform RNG will ever come up with exactly 0 or exactly 1, no matterhow many samples are taken. With a unique random tolerance 0.95R < R < 1.05Rassigned to each of, say, Nc = 6 components (using the aforementioned 5% example),the odds of obtaining a set of random component values that will approach oneextreme or the other are very high. As Nc increases, the odds sharply increase.Hence, MCA will never duplicate EVA results. But with a large enough number ofsamples, it will provide tolerance bands that will be greater than those of RSS butless than those of EVA. This will later
be empirically demonstrated by examples(for example, see Section 10.4).
9.2.2 AC A
NALYSIS
The considerations for DC circuits are applicable to AC circuits also. One additionalaspect is nonmonotonic components. That is, increasing the value of a component(within its tolerance range) causes the output to both increase and decrease indifferent portions on the frequency band. Monotonic components will result only ineither increasing or decreasing the output, not both.
Circuits with nonmonotonic components are usually band-pass or band-stopfilters or any circuit in which the output increases and decreases across the frequency
V2
Ein
R2
R4
R5R1
R3
V1
7028_C009.fm Page 213 Thursday, January 12, 2006 10:18 AM
214
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
band. Circuits such as Butterworth low-pass and high-pass filters will usually containonly monotonic components.
SPICE uses a sensitivity-based EVA that does not take monotonicity intoaccount. A 500-Hz multiple-feedback active band-pass filter will be used as a casein point.
The public domain SPICE listing for EVA analysis is given along with the incorrectresults:
Band-pass Filter WCA
VEin 99 0 AC 1
R1 99 1 RA 6.34K
R2 1 0 RA 80.6
R3 3 2 RA 127K
C1 1 2 CA 0.1uF
C2 3 1 CA 0.1uF
E1 3 0 0 2 1E6
* As in Mathcad, an ideal VCVS is used.
*.MODEL RA RES(R=1 DEV/GAUSS=0.667%)
*3 sigma = 2%
*.MODEL CA CAP(C=1 DEV/GAUSS=3.333%)
*3 sigma = 10%
.MODEL RA RES(R=1 DEV/UNIFORM=2%)
.MODEL CA CAP(C=1 DEV/UNIFORM=10%)
.WCASE AC V(3) MIN VARY DEV
*.WCASE AC V(3) MAX VARY DEV
*.WCASE AC V(3) YMAX VARY DEV
.AC LIN 100 400 600
R1
R2
C2
C1R3
V1
4
11V−
V+V2
V3
1Ein 2
3
−
+
7028_C009.fm Page 214 Thursday, January 12, 2006 10:18 AM
Introduction
215
.PRINT AC V(3)
.OPTIONS NOECHO NOPAGE NOMOD
.END
Plotting the results from the SPICE *.out file:
One can see there is definitely something amiss here. The algorithm that SPICEuses takes sensitivities at only two frequencies, 400 Hz and 501 Hz, in this circuit.The correct method of EVA will take sensitivities across the entire frequency band,from 400 Hz to 600 Hz. Doing this in Mathcad [3] or MATLAB results in thefollowing plot:
15
10
5
0400 425 450 475 500 525 550 575 600
Volts Ahik,2
Alok,2
Anomk,2
NomAnomk,1
Spice AC “.WCASE” results
EVA HiEVA Lo
Freq(Hz)
400 420 440 460 480 500 520 540 560 580 6000
5
10
15
Freq(Hz)
Volts
446 Hz 568 Hz
Nominal & EVA output
7028_C009.fm Page 215 Thursday, January 12, 2006 10:18 AM
216
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
These results are somewhat better, but not good enough to get the whole picture. FMCA (which SPICE is not capable of) gives the following plot:
Nine of the 32 possible tolerance combinations yield the extrema shown in thepreceding plot. We still get the worst-case center frequencies of 446 Hz and 568Hz, but what about at, say, 480 Hz? Is this the maximum amplitude we will get atthis frequency? The answer is no, and the MCA plot clearly shows this superimposedon the FMCA results:
The number of samples used here was Nk = 1000. As Nk is increased, the skirtsof the tolerance band creep out toward the FMCA extremes. Diminishing returnsare at work here because using Nk = 10,000 does not move the skirts much farther.As implied previously, the skirts will never be congruent with the FMCA extremes,no matter how large Nk is. This is true of any AC or DC circuit by the very natureof uniform distribution RNGs.
400 420 440 460 480 500 520 540 560 580 6000
5
10
15FMCA of BPF
11.465
1.102
Vfpk
VfhiiVoi
600400
446 568
Fi
400 420 440 460 480 500 520 540 560 580 6000
5
10
15
Vpk
Voi
Vmaxi
Vfhii
447 568
Fi 600400
11.465
1.102
7028_C009.fm Page 216 Thursday, January 12, 2006 10:18 AM
Introduction
217
9.2.3 T
RANSIENT
A
NALYSIS
Time-domain tolerance analysis requires that MCA be used. Many, if not most,transient analyses results involve a transitory damped ringing oscillation whereinEVA and RSS analyses give incorrect answers.
9.2.4 A
SYMMETRIC
T
OLERANCES
Asymmetric tolerances occur regularly in some commercial and most military appli-cations. This is due to some components having asymmetric tolerances at roomtemperature (e.g., aluminum electrolytic capacitors), but more frequently due toasymmetric temperature ranges. For example, on the International Space Station,temperature requirements were from –60ºC to (
∆
T = –85) to +50ºC (
∆
T = +25).SPICE has no convenient way to specify asymmetric tolerances (and no RSS
capability). The Mathcad programs in this book can easily accommodate asymmetrictolerances.
REFERENCES
1. Ian Getreu,
Modeling the Bipolar Transistor
, Tektronix
, Inc., Beaverton, OR.,1976.
2. Boyd, R.,
Tolerance Analysis of Electronic Circuits Using Mathcad
, CRC Press, BocaRaton, FL, 1999, p. 87.
3. Boyd, R.,
Tolerance Analysis of Electronic Circuits Using Mathcad
, CRC Press, BocaRaton, FL, 1999, p. 44.
7028_C009.fm Page 217 Thursday, January 12, 2006 10:18 AM
This page intentionally left blank
219
10
DC Circuits
10.1 RESISTANCE TEMPERATURE DETECTOR (RTD) CIRCUIT
In this section, the DC RSS and EVA limits of the following circuit are shown.
R1 := 4.53 R2 := 34.8 R3 := 132 R4 := 9.09 R5 := 9.09R6 := 4.53 R7 := 27.4 R8 := 20 R9 := 20 RT := 1.915
Values given in kohms:
Ao := 10
6
U := 7
Y := 5 GG := 0 Ein := (99 5)
R8
R1R4
R2R3
R5RT
R6 R7
Eref
Eref
ErefR9
11V−
V+ V1
V6
21
4
43
−
+
V7
11V−
V+V4
V3V5
1V2
2
3
−
+
RR
R
R
R
R
R
R
R
R
R
:=
7 1 1
99 3 2
3 5 3
1 3 4
2 4 5
99 2 6
4 0 7
99 6 8
6 7 9
11 2 RT
EEAo
Ao:=
7 0 0 6
5 0 4 3
7028_C010.fm Page 219 Thursday, January 12, 2006 10:19 AM
220
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→
Reference:C:\mcadwca\wcaref11\dccomm42.mcd
Calculate “real-world” asymmetric tolerances as decimal percentages.
Tinit := 0.001 Tlife := 0.002 ppm := 10
–6
TC1 := 50·ppmTC2 := 25·ppm Thi := Tinit + Tlife + 35·TC1 Tlo := –Tinit – Tlife – 80·TC1Trhi := 8.1·10
–4
Trlo := –Trhi Treflo := –0.02 – 80·TC2Trefhi := 0.02 + 35·TC2 p := 1..9 T
1,p
:= Tlo T
2,p
:= Thi T
1,10
:= TrloT
2,10
:= Trhi T
1,11
:= Treflo T
2,11
:= Trefhi
Display asymmetric tolerance array T:
Call RSS/EVA WCA subprogram.
→
Reference:C:\mcadwca\wcaref11\dcwa.mcd
Sens
T
= (–2.41 3.68 0.81 –4.13 –0.82 –2.11 0.89 –2.7 2.7 4.09 1)
Tolerance array T and sensitivities are in the same order as the RR array, i.e.,the normalized sensitivity of R4 is –4.13 %/%, Eref sensitivity is 1 %/%, etc.
Va = 4.3433V
Va is the average output, not the nominal output. With symmetric tolerances, thenominal output Vo and the average output Va would be the same (see Section 10.2).
∆
rss := Vss
2
– Vrss
1
∆
eva :=Veva
2
– Veva
1
∆
rss = 0.431
∆
eva = 1.247
As expected, the tolerance spread of RSS is less than EVA.Note that when using the reference program dcwca.mcd, the user must supply
the complete tolerance array T as shown in the preceding text. This facilitates usingasymmetric tolerances. In other programs, the user supplies only the symmetrictolerances, namely, resistor tolerance Tr, capacitor tolerance Tc, and the inductortolerance Ti, and in some cases, the input voltage source tolerance Te.
R R R R R R
T
1 2 3 4 5 6
0 7 0 7 0 7 0 7 0 7 0 7
0 475=
− − − − − −. . . . . .
. 00 475 0 475 0 475 0 475 0 475
7 8 9
0
. . . . .
−
R R R RT Eref
.. . . . .
. . . . .
7 0 7 0 7 0 081 2 2
0 475 0 475 0 475 0 081 2
− − − −00875
%
Vrss V=
4 1277
4 5589
.
.Veva V=
3 7379
4 9848
.
.
7028_C010.fm Page 220 Thursday, January 12, 2006 10:19 AM
DC Circuits
221
10.2 A NOTE ON ASYMMETRIC TOLERANCES
The NOS method of handling a symmetric tolerances is described in this section.
Example:
Ra = 1000
For Ra, let the asymmetric tolerances be:
T1 := – 0.01 T2 := 0.03
The average value of the two asymmetric tolerances plus one is Mr:
Mr = 1.0100
For symmetric tolerances, Mr = 1.0000Statistically, the average value of Ra is no longer 1000; it is:
Rb := Mr·Ra Rb = 1010
Ra has the limits:
Ra1 := Ra·(1 + T1) Ra1 = 990 Ra2 := Ra·(1 + T2) Ra2 = 1030
Because the asymmetric tolerance is Ra1 = 990 and Ra2 = 1030, the symmetrictolerance of these two extremes about the average value Rb is:
Tv = 1.98% Rb1 := Rb·(1 – Tv) Rb2 := Rb·(1 + Tv)
Ra = 1000 Rb = 1010 Ra1 = 990 Rb1 = 990Ra2 = 1030 Rb2 = 1030
MrT T
:= + +1
2 12
TvT T
Mr:= −
⋅2 12
970 980 990 1000 1010 1020 1030 10400
0.1
0.2
0.3
0.4
0.5
SymmetricAsymmetric
Symmetric vs. asymmetric
R value (Ohms)
Bin
heig
ht
Ra Rb
7028_C010.fm Page 221 Thursday, January 12, 2006 10:19 AM
222
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Normally distributed inputs will yield a Gaussian curve of Rb, as shown in thepreceding figure. By definition, there is no Gaussian curve for a resistor with a meanof 1000 and –1%, +3% tolerances. But there is one with exactly the same tolerancerange (40
Ω
) averaged about Rb.The components with asymmetric tolerances are then given a new average value
with symmetric tolerances, from which the EVA and RSS values are calculated.From statistics:
If F = g(x
1
,x
2
,…,x
n
), then
where the overbars indicate average value. The average output Va is then calculatedwith these average values, whereas the nominal output Vo is calculated using thenominal component values. These calculations are used in the routines for Ta, Va,and Vrss in the subprogram dcwca.mcd.
10.3 CENTERED DIFFERENCE APPROXIMATION — SENSITIVITIES
The following demonstrates a more accurate method of calculating numerical deriv-atives and sensitivities [1].
The example function used here is two resistors with a parallel resistance of Rp= 75
Ω
. A third resistor R3 is added to make Rp slightly less than 75
Ω
at Rp = 74.8
Ω
.First, we determine the value of R3 required for Rp = 74.8
Ω
, and then a moreaccurate sensitivity of R3 is calculated using the centered difference method:
R1 := 100 R2 := 300 Rp := 74.8
Solving for R3:
R3 := H(Rp,R1,R2) R3 = 28050EQHERE
The required value of R3 for Rp = 74.8.
F g x x xn= …( )1 2, , ,
Fore shot
BetterapproximationBack shot
Truederivative
R RR R
1 21 2
75⋅+
=
H Rp R R
Rp R R
, , :1 21
1 11
12
( ) =− −
7028_C010.fm Page 222 Thursday, January 12, 2006 10:19 AM
DC Circuits
223
We find the numerical derivative of H with respect to Rp as follows:
dpf := 0.0001 Q := 1 + dpf B := 1 – dpf
(dpf = derivative perturbation factor)
Rr := H(Rp·Q,R1,R2) (fore shot) Rr = 29143This is equivalent to y +
∆
y = f(x +
∆
x) in calculus.
Rr := H(Rp·B,R1,R2) (back shot) Rb = 27036Equivalent to y –
∆
y = f(x –
∆
x)
Then 2·
∆
y = f(x +
∆
x) – f(x –
∆
x)
The approximate derivative is then instead of the
usual , which here is D = 140822
The exact derivative dr3 = dR3/dRp is with
is dr3 = 140625
Normalized sensitivities
are defined as and are in (dimensionless)
units of %/%. Then
The centered difference approximation method gives:
Sr = 375.525
The exact sensitivity is:
Sre = 375
Just using the fore shot:
Su = 389.57
∆∆
∆ ∆∆
yx
f x x f x x
x=
+( ) − −( )⋅2
∆∆
∆∆
yx
f x x f x
x=
+( ) − ( )D
Rr RbRp dpf
:= −⋅ ⋅2
Ra RpR R
:= ⋅ +
11
12
drRa
Ra
Ra3
11 1
2:=−( ) + −( )
Sxy
dydx
= ⋅
SrRpR
Rr Rb
Rp dpfRr Rb
R dpf= ⋅
−( )⋅ ⋅
= −⋅ ⋅3 2 2 3
SrRr Rb
R dpf= −
⋅ ⋅2 3
SreRp dr
R:= ⋅ 3
3
SuRr RR dpf
:= −⋅
33
7028_C010.fm Page 223 Thursday, January 12, 2006 10:19 AM
224
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Percentage error:
,
which is much more accurate.
10.4 RTD CIRCUIT MONTE CARLO ANALYSIS (MCA)
For the schematic, see Section 10.1. Call circuit information from Section 10.1.
→
Reference:C:\crc_book_ms\wca_mcd\dctdwca.mcd
The same asymmetric tolerances are used:
Nk := 20000 nb := 30 nb = number of histogram bins.Call normal and uniform DC MCA subprograms.
→
Reference:C:\mcadwca\wcaref11\dc_mca_un.mcd
Vrss and Veva from Section 10.1 are:
SuSre
− =1 3 89. %SrSre
− =1 0 14. %
R R R R R R
T
1 2 3 4 5 6
0 7 0 7 0 7 0 7 0 7 0 7
0 475=
− − − − − −. . . . . .
. 00 475 0 475 0 475 0 475 0 475
7 8 9
0
. . . . .
−
R R R RT Eref
.. . . . .
. . . . .
7 0 7 0 7 0 081 2 2
0 475 0 475 0 475 0 081 2
− − − −00875
%
Vstat =
4 3258
4 3440
4 0482
4 6576
0 2159
4 3439
3
.
.
.
.
.
.
..
.
.
9365
4 8538
0 3750
Nominal
Norm_mean
Norm_min
Norm_max
Norm_3σUUnif_mean
Unif_min
Unif_max
Unif_3σ
Vrss =
4 1277
4 5589
.
.Veva =
3 7379
4 9848
.
.
7028_C010.fm Page 224 Thursday, January 12, 2006 10:19 AM
DC Circuits
225
Note the difference in the two outputs. The normal distribution is very close toRSS values. The uniform distribution, although wider than RSS, does not and willnot approach EVA values no matter how large Nk is.
The reason the output is approximately normal when all components have auniform distribution is because of the central limit theorem from statistics [3]. Whenthis occurs, the ratio of 3
σ
U
to 3
σ
N
averages [2].To show that EVA may be an unrealistic analysis for circuit specification limits,
the following plot shows uniform distribution input MCA extremes (minimum andmaximum) with increasing Nk compared to EVA limits (Veva) in percent. For
example, at 5%, the MCA voltage extremes are
3.7 3.8 3.9 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 50
0.04
0.08
0.12
Unif distIdeal Guassian dist
Histogram - uniform dist input
Bin
heig
ht pvnh
E(binnh)
Veva1 Veva2
binnh volts DC
3.7 3.8 3.9 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 50
0.04
0.08
0.12
Norm distIdeal Guassian dist
Histogram - normal dist input
Bin
heig
ht pvnh
E(binnh)
Vrss1 Vrss2
binnh volts DC
3
VmcVeva
11
1 0 05:
.=
−Vmc
Veva2
2
1 05:
.=
Vmc =
3 9346
4 7474
.
.Veva =
3 7379
4 9848
.
.
7028_C010.fm Page 225 Thursday, January 12, 2006 10:19 AM
226
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note that at Nk = 1 million samples, the percentage deviation is still not closeto zero.
(These ten plotting points are the average of seven.)
10.5 RTD MCA WITH R4 TOLERANCE = 10%
Call circuit information from Section 10.1.
→
Reference:C:\mcadwca\caNLwca11\dcrtdwca.mcd
T
1,4
:= –0.1 T
2,4
:= 0.1
Set R4 at 10% tolerance.Nk := 20000 number of MCA samplesnb := 30 nb = number of histogram bins.
→
Reference:C:\mcadwca\wcaref11\dc_mca_un.mcd
By no means will all DC circuits have a normal distribution output with a uniformdistribution input. If one component has a large sensitivity and tolerance, it will tendto dominate, and the output will be more uniform in appearance. As an example,assigning a tolerance of ±10% to R4 (sensitivity 4.13 %/% being the largest), thefollowing histogram results:
(Note scale changes.)
1 2 3 4 5 6 7−10
−8−6−4−2
02468
10Percent MCA vs EVA vs Nk
Perc
ent Dnav1,r
Dnav2,r
r + 1Nk = 10^(r + 1)
7028_C010.fm Page 226 Thursday, January 12, 2006 10:19 AM
DC Circuits
227
10.6 RTD CIRCUIT FAST MONTE CARLO ANALYSIS (FMCA)
For the schematic, see Section 10.1. Call circuit data from Section 10.1.
→
Reference:C:\mcadwca\CaNLwca11\dcrtdwca.mcd
Call the FMCA subprogram:
→
Reference:C:\mcadwca\wcaref11\dc_fmca.mcd
U = 7 Nf := 2
11
Nf = 2048
The output shown in the following text is the minimum and maximum voltageat all U nodes and using all Nf possible tolerance combinations.
Because there are ten resistors and one reference voltage in the RTD circuit, Nfhas the value shown in the preceding text.
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 70
0.02
0.04
0.06
0.08
Unif distIdeal guassian dist
R4 tolerance 10%
Bin
heig
ht pvnh
E(binnh)
binnh volts DC
Min Max
Va =
− −0 603 0 4711
1 0038 1 1379
0 7516 0 8
. .
. .
. . 5569
0 7516 0 8569
3 7379 4 9848
4 8328 10 5 166
. .
. .
. .× − 448 10
5 1648 4 8328
6×− −
−
. .
Node V
Node V
Node V
1
5
7
7028_C010.fm Page 227 Thursday, January 12, 2006 10:19 AM
228
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
As before, we select the output voltage:
Y = 5
Vfmca := (Va
T
)
⟨
Y
⟩
From the previous EVA (Section 10.1):
Hence, no difference between EVA and FMCA is found in this circuit. This isnot true for all DC circuits.
10.7 A CASE FMCA GREATER THAN EVA
Another circuit in which the FMCA limits are greater than the EVA limits is analyzedin this section.
K : = 10
3
V : = 1
R1 := 1·K RF := 10·K R2 := 1·K R3 := 10·K R4 := 10·KE1 := 4·V E2 := 4·V U := 3 Y := 3 EE := (3 0 2 1 10
6
)
GG := 0
→
Reference:C:\mcadwca\wcaref11\dccomm42.mcd
Vfmca =
3 7379
4 9848
.
.
Veva =
3 7379
4 9848
.
.
RFR1
R3
R4
E2 4
R1E1
R2
11V−
V+
V3
V2
V1
1
2
3
−
+
RR
R
R
R
R
RF
:=
99 1 1
98 2 2
1 0 3
2 0 4
3 1
EinE
E:=
99 1
98 2
7028_C010.fm Page 228 Thursday, January 12, 2006 10:19 AM
DC Circuits
229
V := 1solve(A1, B2) V3 := V
Y
V3 = 3.636
Tr := 0.01 Te := 0.05
→
Reference:C:\mcadwca\wcaref11\dcwca.mcd
S1 := SensS1
T
= (1.00001 –1.09091 –1 1.09091 –0.00001 –11 12)
Approximate sensitivities are obtained using the centered difference approxima-tion (CDA) method.
RSS/EVA results:
→
Reference:C:\mcadwca\wcaref11\dc_fmca.mcd
c := 1..2 Vfmca
c
:= Va
Y,c
pce = 1.106%
Although the difference is only 1.1%, there is no guarantee that this will alwaysbe the case.
Exact Sensitivities for Comparison
V =
3 636
3 636
3 636
.
.
.
TTr Tr Tr Tr Tr Te Te
Tr Tr Tr Tr Tr Te Te:=
− − − − − − −
Vrss =
0 6756
6 597
.
.Veva =
−
0 7733
7 8958
.
.
Va =−
3 448 3 825
3 448 3 825
0 773 7 983
. .
. .
. .
Vfmca =−
0 7733
7 9831
.
.Veva =
−
0 7733
7 8958
.
.
pceVfmcaVeva
:= −2
2
1
VoRFR
E RR RF
RR
:= ⋅⋅ + ⋅ +
+−
1
2 1 113
1
124
EE Vo1 3 636
= .
7028_C010.fm Page 229 Thursday, January 12, 2006 10:19 AM
230
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Derivatives and exact sensitivities:
Compare approximate and exact values:
ppm := 10
–6
Sens
T = (1 –1.0909091 –1 1.0909091 0 –11 12)
which are the exact sensitivities.
S1T = (1.00001 –1.0909091 –0.999999 1.0909091 –0.000011 –11 12)
which are approximate values obtained using CDA.The difference in parts per million:
EcT = (–10.01 0 –0.99 –0.009 11 6.15 × 10–6 –6.267 × 10–6) ppm
dRRF E R E R R
R R RSen1
2 4 1 2 4
1 2 42:=− ⋅ ⋅ − ⋅ +( )
⋅ +( ) ssRVo
dR11
1:= ⋅
dR
E RF R RRF R
R R2
2 4 1 11 1
3
1:=
− ⋅ ⋅ ⋅ + ⋅ +
⋅ 22 4
222 2
+( )= ⋅
RSens
RVo
dR:
dRE RF R
R R RSens
RVo
dR32 4
3 2 43
32 3: := − ⋅ ⋅⋅ +( ) = ⋅
dRE RF R
R
RRF R
R4
2 21
1 11 1
3
2:= ⋅ ⋅ ⋅
+ ⋅ +
+ RRSens
RVo
dR4
442 4( )
= ⋅:
dRFE R R R E R R R
R R R R:=
⋅ ⋅ +( ) − ⋅ ⋅ +( )⋅ ⋅ +
2 4 1 3 1 3 2 4
1 3 2 4(( ) = ⋅SensRFVo
dRF5 :
dERFR
SensEVo
dE11
116: := − = ⋅
dERFR
RRF RRR
SensE
21
1 11 1
3
124
27: := ⋅
+ ⋅ +
+=
VVodE⋅ 2
Ec Sens S:= −( )1
7028_C010.fm Page 230 Thursday, January 12, 2006 10:19 AM
DC Circuits 231
10.8 TOLERANCING INPUTS
K := 103
This example shows the necessity of applying tolerances to independent inputs whenM > 1.
The difference between EVA and RSS computations with the inputs at zerotolerance and again at 5% tolerance are shown in the following text. Note that thereis no direct or convenient method of tolerancing inputs in SPICE.
R1 := 1·K RF := 10·K R2 := 1·K R3 := 10·K R4 := 10·KE1 := 4·V E2 := 4·V U := 3 Y := 3 EE := (3 0 2 1 106)
GG := 0
→ Reference:C:\mcadwca\wcaref11\dccomm42.mcd
V := 1solve(A1,B2) V3 := VY V3 = 3.636
Tr := 0.02
Both inputs (last two columns) at zero tolerance.
→ Reference:C:\mcadwca\wcaref11\dcwca.mcd
SensT = (1 –1.091 –1 1.091 –0 –11 12)
Note the very high sensitivities for inputs E1 and E2.
V1r := Vrss V1e := Veva
RF
R3
R4E2 4
R1E1
R2
11V−
V+
V3
V2
V1
12
3
−
+
RR
R
R
R
R
RF
:=
99 1 1
98 2 2
1 0 3
2 0 4
3 1
EinE
E:=
99 1
98 2
V =
3 636
3 636
3 636
.
.
.
R R R R RF E E
TTr Tr Tr Tr Tr
Tr Tr Tr Tr T
1 2 3 4 1 2
0 0:=
− − − − −rr 0 0
7028_C010.fm Page 231 Thursday, January 12, 2006 10:19 AM
232 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
We repeat with the inputs given a tolerance of Te := 0.05.
Call the wca reference function again:
→ Reference:C:\mcadwca\wcaref11\dcwca.mcd
V2r := Vrss V2e := Veva
Inputs 0% tolerance.
Inputs +/– 5% tolerance.
Note that the V2r and V2e tolerances spreads (Te = 5%) are much wider thanthose of V1r and V1e (Te = 0%).
10.9 BETA DISTRIBUTIONS [4–6]
Beta functions can be used in Mathcad to generate skewed random distributions.These skewed input distributions are then used as MCA inputs and output histogramsexamined. First, Beta functions are mathematically described and plotted by the yprogramming sequence below.
n := 1..100
TTr Tr Tr Tr Tr Te Te
Tr Tr Tr Tr Tr Te Te:=
− − − − − − −
V r13 484
3 789=
.
.V e1
3 321
3 930=
.
.
V r20 673
6 600=
.
.V e2
1 008
7 970=
−
.
.
y for k
s k
s s
B xk
: ..
–
sin
= ∈
← +
←
← ⋅ ( )∫ ⋅
1 7
1 1
2 10 1
20
2 2π
ss s
s
x dx
for n
xn
y
1 1 2 2 1
1
1 101
1100
− ⋅ −⋅ ( )
∈
← −
cos
..
,nn
s s
k
x x
B
y
←⋅ −( )− −1 1 2 1
1
7028_C010.fm Page 232 Thursday, January 12, 2006 10:19 AM
DC Circuits 233
Among other things, beta functions have been used to describe manpower-loading forecasts for new projects or contracts. “Front loaded,” s1 = 2; “rear loaded,”s1 = 8.
Beta (Skewed) DistributionsUses Mathcad’s built-in “rbeta” function.
nb := 50 q := 1..nb + 1 nh := 1..nb Nk := 30000s1 := 2 z := rbeta(Nk,s1,10 – s1) σ2 := stdev(z) BH := max(z) BL := min(z)
bin2q := BL + intv·(q – 1) pb2 := hist(bin2,z)
s1 := 4 z := rbeta(Nk,s1,10 – s1) σ4 := stdev(z) BH := max(z) BL := min(z)
bin4q := BL + intv·(q – 1) pb4 := hist(bin4,z)
s1 := 5 z := rbeta(Nk,s1,10 – s1) σ5 := stdev(z) BH := max(z) BL := min(z)
bin5q := BL + intv·(q – 1) pb5 := hist(bin5,z)
500 1000
1
2
3
4
s1 = 2s1 = 4s1 = 5s1 = 6s1 = 8
Beta functions, y(s1, n)
y2,n
y4,n
y5,n
y6,n
y8,n
n
intv := −BH BLnb
intv := −BH BLnb
intv := −BH BLnb
7028_C010.fm Page 233 Thursday, January 12, 2006 10:19 AM
234 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
σ2 = 0.122 σ4 = 0.148 σ5 = 0.151
Note the increase in the standard deviation σ as s1 increases.
10.10 RTD MCA — BETA (SKEWED) DISTRIBUTION
For the schematic, see Section 10.1. Call circuit data from Section 10.1:
→ Reference:C:\mcadwca\CaNLwca11\dctrdwca.mcd
The same tolerances are used:
Overwrite R4 tolerance at 10%:
T1,4 := –0.1 T2,4 := 0.1
(disabled when not used)For beta distributions skewed left:
s1 := 2 (see Section 10.9)nb := 30 (number of histogram bins) Nk := 20000
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
500
1000
1500
2000
s1 = 5s1 = 4s1 = 2
Beta distributions (smoothed)
pb5nh
pb4nh
pb2nh
bin5nh, bin4nh, bin2nh
T =− − − − − −0 7 0 7 0 7 0 7 0 7 0 7
0 475 0 475 0 475 0
. . . . . .
. . . .4475 0 475 0 475
0 7 0 7 0 7 0 081 2 2
0 47
. .
. . . . .
.
− − − − −55 0 475 0 475 0 081 2 087. . . .
%
7028_C010.fm Page 234 Thursday, January 12, 2006 10:19 AM
DC Circuits 235
Call beta distribution subprogram dc_beta.mcd:
→ Reference:C:\mcadwca\wcaref11\dc_beta.mcd
With original tolerances:R4 10%
Vavg := Vstat2
Note that the beta distribution output is not skewed to the left as is the input.This is due to the central limit theorem from statistics, with all rv’s approximatelyequally weighted.
Nk = 20000
With R4 10% tolerance again, the beta distribution output is skewed to the right,whereas the input is beta-skewed to the left.
This is due to the large-tolerance high-sensitivity resistor (R4, –4.13 %/%)dominating the output. Because the sensitivity is negative, the output is skewedopposite to the input. As with the uniform distribution input given earlier (see Section10.4), the output will approach the normal (Gaussian) only when the random vari-ables are approximately equally weighted. Also, note the expected change of thehorizontal-axis scale.
Vstat =
4 3258
4 3409
4 1377
4 5474
0 1551
.
.
.
.
.
Nominal
Average
Min
Max
3σ
Vstat =
4 3258
5 3857
3 3089
6 3131
1 3997
.
.
.
.
.
4 4.05 4.1 4.15 4.2 4.25 4.3 4.35 4.4 4.45 4.5 4.55 4.60
0.02
0.04
0.06
0.08
0.1
0.12
HistogramIdeal gaussian
Output Histogram-beta (skewed) Input
Bin
heig
ht pvnh
E(binnh)
Vavg
binnh Volts DC
7028_C010.fm Page 235 Thursday, January 12, 2006 10:19 AM
236 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
From the preceding histogram, a principle of statistics, “The mean does notequal the mode” is illustrated.
10.11 MCA OF RTD CIRCUIT USING BIMODAL (GAPPED) DISTRIBUTION INPUTS
These distributions will occur when vendors prescreen components for tightertolerances.
For the schematic, see Section 10.1. Call circuit data from Section 10.1:
→ Reference:C:\mcadwca\CaNLwca11\dcrtdwca.mcd
The same tolerances are used:
Create “gapped” Normal distribution input:Set gap width equal to 0.5 on either side of zero.
sp := 0.5 nb := 30 Nk := 20000
3 3.5 4 4.5 5 5.5 6 6.5 70
0.02
0.04
0.06
0.08
0.1
0.12With R4 10% tolerance
Bin
heig
ht
pvnh
Vavg
binnh volts DC
T =− − − − − −0 7 0 7 0 7 0 7 0 7 0 7
0 475 0 475 0 475 0
. . . . . .
. . . .4475 0 475 0 475
0 7 0 7 0 7 0 081 2 2
0 47
. .
. . . . .
.
− − − − −55 0 475 0 475 0 081 2 087. . . .
%
7028_C010.fm Page 236 Thursday, January 12, 2006 10:19 AM
DC Circuits 237
q := 1..nb + 1 nh := 1..nb VL := min(z) VH := max(z)
binzq := VL + intvz·(q– 1) pz := hist(binz,z)
The expression for y is known as the Box–Muller transformation for normaldistributions [7].
Apply gapped inputs to all Nc = 10 components of the RTD circuit usingsubprogram dc_gap.mcd:
→ Reference:C:\crc_book_ms\Ref_files_v11\dc_gap.mcd
Note that the bimodal output in the following text is approximately normal andnot gapped as is the input. This is due to the central limit theorem from statistics,with the rv’s approximately equally weighted.
z k
k Nk
y rnd rnd
:
sin ln
= ←
<
← ⋅ ⋅ ( )( ) ⋅ − ⋅
0
2 1 2 1
while
π (( )( )< −( ) ∨ >( )
← +
←
if y sp y sp
k k
z y
z
k
1
intvz := −VH VLnb
−4 −2 0 2 40
1000
2000
3000Bimodal (gapped) input
pznh
binznh
7028_C010.fm Page 237 Thursday, January 12, 2006 10:19 AM
238 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Nk = 20000
Set R4 tolerance at 10%, and call the dc\_gap subprogram again:
T1,4 := –0.1 T2,4 := 0.1
→ Reference:C:\crc_book_ms\Ref_files_v11\dc_gap.mcd
R4 10% tolerance.
Vstat =
4 3258
4 3419
4 0302
4 6878
0 2690
.
.
.
.
.
Nominal
Average
Min
Max
3σ
3.8 3.9 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.80
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
Bimodal DistIdeal Normal
Gapped Input - R4 Original Tolerance
Volts DC
Bin
Hei
ght pvnh
E binnh( )
Vstat2
binnh
Vstat =
4 3258
4 3597
2 0577
7 1057
2 2509
.
.
.
.
.
Nominal
Average
Min
Max
3σ
7028_C010.fm Page 238 Thursday, January 12, 2006 10:19 AM
DC Circuits 239
Note the larger horizontal scale. The larger tolerance on R4 causes the outputdistribution to be much wider. As in the case of the beta distribution inputs, the gapis now evident because the gapped R4 distribution dominates.
In terms of volts DC, the gap width is k := 1..2
REFERENCES
1. S.C. Chapra, R.P. Canale, Numerical Methods for Engineers, 3rd ed, McGraw-Hill,Boston, MA, 1998, p. 93.
2. R. Boyd, Tolerance Analysis of Electronic Circuits Using Mathcad, CRC Press, BocaRaton, FL, 1999, p. 188.
3. H. Arkin and R. R. Colton, Statistical Methods, Barnes & Noble COS, New York,1970, p. 144.
4. Abramowitz and Stegun, Handbook of Mathematical Functions, Dover, New York,1970, p. 258.
5. Erwin Kreyszig, Advanced Engineering Mathematics, John Wiley & Sons, New York,2nd ed, 1968, p. 714.
6. M. Spiegel, Advanced Mathematics for Engineers & Scientists, Schaum’s OutlineSeries, New York, p. 211.
7. Eric W. Weisstein, Box-Muller Transformation, From http://mathworld.wolfram.com/Box-Muller Transformation.html.
2 2.5 3 3.5 4 4.5 5 5.5 6 6.5 70
0.02
0.04
0.06
0.08
0.1
0.12
0.14
0.16
Bimodal DistIdeal Normal
Gapped Input - R4 +/-10%
Volts DC
Bin
Hei
ght pvnh
E binnh( )
Vstat2
binnh
Vgap Vstatsp Vstat
k
k
:= +−( ) ⋅ ⋅
251
3Vgap V=
3 985
4 735
.
.
7028_C010.fm Page 239 Thursday, January 12, 2006 10:19 AM
This page intentionally left blank
241
11
AC Circuits
11.1 CIRCUIT OUTPUT VS. COMPONENT VALUE
In this section the definition of monotonicity is given and illustrated with the DCcircuit shown in the schematic below. Then on page 243, an example of non-monotonicity in an AC circuit is given for comparison.
Examine the components for monotonicity:
V := 1 K := 10
3
Definition of monotonicity:
A function or series is monotonic increasing if X
1
≤
X
2
≤
X
3
, etc.Example:1.0, 2.0, 2.0, 2.5, 2.6, 2.601, ...
A function or series is monotonic decreasing if X
1
≥
X
2
≥
X
3
, etc.Example: 9.0, 9.0, 8.8, 8.7, 8.7, 8.69, ...
We examine the component slopes (derivatives) of a DC differential amplifierby stepping two resistor values, R1 and R2:
Ein1 := 1 Ein2 := 1 Ao := 10
6
R1 := 1·K R2 := 10·K R3 := 1·K
R4 := 10·K EE := (2 0 3 1 Ao)
U := 3 GG := 0
R2R1
R44
R1
Ein2
Ein1
R3
11V−
V+
2
1
1
2
33
−
+
EinEin
Ein:=
99 1
98 2
RR
R
R
R
R
:=
98 1 1
1 2 2
99 3 3
3 0 4
7028_C011.fm Page 241 Thursday, January 12, 2006 10:24 AM
242
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→
Reference:C:\mcadwca\wcaref11\dcomm42.mcd
Vn := 1solve(A1,B2) Vn
T
= (0.909 20 0.909)V
Vary R1 and R2 from 80 to 120%:
ml := 0.8 m2 := 1.2 W := 500 k := 1..W + 1
Component multiplier:
A
1
= 0.8 A
W+1
= 1.2
V2a := Vn(U, EE, GG, RR, Ein)
1
V2b := Vn(U, EE, GG, RR, Ein)
2
Am m
Wk mK := − ⋅ −( ) +2 1
1 1
Vn U EE GG RR Ein for k W
RR R Ak
, , , , : ..
,
( ) = ∈ +
← ⋅
1 1
11 3 Vaary R1
AE routine from AE G U EE GG RR Ein← ( ), , , ,
AA AE
B AE
vn lsolve A B
v
k
1
2
1 2
1
2
←
←
← ( )
dccomm42.mcd
,
22
1
1 1
2
1 3
a vn
RR R
for k W
k k← ( )←
∈ +
,
.. Restore R1 to
nominal valueRR R A
AE G U EE GG RR Ei
k2 3 2,
, , , ,
← ⋅
← nn
A AE
B AE
vn lsolve A B
v a
k
( )←
←
← ( )
Vary R2
1
2
1 2
2
1
2
,
kk kvn
v a
v b
← ( )
2
2
2
7028_C011.fm Page 242 Thursday, January 12, 2006 10:24 AM
AC Circuits
243
Plot of output vs. component value change:
Hence, resistors are monotonic in virtually all DC circuits because DC circuitsare functions of R and/or 1/R.
They can be nonlinear as R1. They can be bipolar but remain monotonic.
Find the component slope for multiple-feedback-band pass filter (BPF) capacitorC1:
uF := 10
–6
R1 := 6366.2 R2 := 80.5 R3 := 127324C2 := 0.1·uF C1 := 0.1·uF
Plot the output of the BPF at four constant frequencies (F1) while varying onlyC1.
F1 := (470 480 490 500)
T
e := 1..rows(F1)
Instead of the NDS method, it is quicker to use the BPF transfer function:
Clv
k
:= C1·A
k
Vary C1 80% to 120%
V1
k,e
:= |G(R1, R2, R3, C1v
k
, C2, sl
e
)|
0.8 0.9 1 1.115
20
25R1
8 9 10 11 12
R2
KR1·Ak R2·Ak
K
V2ak
15
20
25
V2bk
S F1 2 1 1:= ⋅ ⋅ ⋅ −π
G R R R C C s
sR C
ss
R C C
1 2 3 1 2 1 1
311
12
2
, , , , , :( ) = ⋅
+ ⋅ +
+
⋅ ⋅⋅ +
13 1 2
11
12R C C R R
7028_C011.fm Page 243 Thursday, January 12, 2006 10:24 AM
244
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Frequency is constant for each trace. Only C1 varies. Next, we find the C1 slopes (derivatives) for the frequencies of 470 through 500
Hz to show the relationship between bipolar sensitivities and nonmonotonic com-ponents. These slopes are measured at the nominal value of C1, 0.1 uF, as shownby the plot vertical gridline. Note the slope gets steeper (at the 0.1 vertical grid line)from 470 to 480 to 490, and is zero for 500 Hz.
h := 0.5·W + 1 h = 251x2 := C1v
h+1
x2 = 0.10008uF x1 := C1v
h
x1 := 0.1uF
∆
x := x2 – x1 y2 := V1h
h+1,1
y2 = 3.735V y1 = V1
h,1
y1 = 3.716V
∆
y := y2 – y1
Approximate derivative:
Sensitivity:
Continuing:
y2
e
:= V1
h+1,e
y1
e
:= V1
h,e
∆
ye := y2
e
– y1
e
0.08 0.1 0.120
5
10
15
470 Hz480 Hz490 Hz500 Hz
C1 varied from 0.08 uF to 0.12 uF
V1k,1
V1k,2
V1k,3
V1k,4
C1vkuF
∆∆
yx
VuF
= 239 51.
xy
yx
11
6 45⋅ =∆∆
.
Senslxy
yx
ee
e:= ⋅11
∆∆
Sens1
6 45
8 41
9 35
0 24
=
−
.
.
.
.
7028_C011.fm Page 244 Thursday, January 12, 2006 10:24 AM
AC Circuits
245
New set of frequencies, from 510 Hz to 530 Hz:
F2 := (510 520 530)
T
e := 1..rows(F2)
V1
k,e
:= |G(R1, R2, R3, C1v
k
, C2, s2
e
)|
Frequency is constant for each trace. Only C1 varies.
y2
e
:= V1
h+1,e
y1
e
:= V1
h,e
∆
ye := y2
e
– y1
e
Plot all seven sensitivities:
Sens := stack(Sens1, Sens2) F := stack(F1,F2)
Hence, bipolar sensitivities indicate nonmonotonic components.
Do not use EVA, RSS, or FMCA tolerance analysis. Results will be erroneous.Use MCA.
S F2 2 2 1:= ⋅ ⋅ ⋅ −π
0.08 0.1 0.120
5
10
15
510 Hz520 Hz530 Hz
C1 varied from 0.08 uF to 1.2 uF
Capacitance(uF)
Out
put o
f BPF
(vol
ts)
V1k,1
V1k,2
V1k,3
C1vkuF
Sensxy
yx
ee
e211
:= ⋅ ∆∆
Sens2
10 16
9 56
7 76
=−−−
.
.
.
7028_C011.fm Page 245 Thursday, January 12, 2006 10:24 AM
246
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
If more frequency points were used, this plot would duplicate the sensitivityplot of C1 shown in the BPF EVA, Section 11.10.As shown, bipolar sensitivities indicate the presence of nonmonotonic components.Hence, nonmonotonicity can be detected by calculating the normalized sensitivities,which is part of the normal tolerance analysis procedure given here.
EVA, RSS, or FMCA should not be used if nonmonotonic components arepresent. The magnitude of the errors is a function of the maximum magnitudes ofthe bipolar sensitivities. For circuits such as the Butterworth low-pass filter, theerrors may be negligible. If in doubt, use MCA.
Some quotes from the literature on monotonicity are germane:
From Improving the Manufacturability of Electronic Designs,[2] “Nonparametricboundary analysis … selects only those components in the tails of the distributions —the combinations most likely to cause yield problems — for a complete circuit simu-lation. An important constraint is that the functions … must be approximately mono-tonic… the author conjectures that the vast majority of practical circuit designs areapproximately monotonic.” (
Present author’s note:
Guessing is not necessary now.)
From Spence and Soin [1]: “Unfortunately, there is no straightforward procedure fortesting whether monotonicity is obeyed.” (
Present author’s note:
True in 1988; nottrue in 1999.)
From PSPICE user’s manual on worst-case analysis: “Worst-case (.WCASE) analysis… will show the true worst-case results when the collating function is monotonic withall tolerance combinations. Otherwise, there is no guarantee. Usually you cannot becertain if this condition is true, but insight into the operation of the circuit may alertyou to possible anomalies.” (
Present author’s note:
Now you can be certain that thiscondition [nonmonotonicity] is true by looking for bipolar sensitivities. See the EVAof the band-pass filter [Section 11.10] for an example of “no guarantee.”)
460 470 480 490 500 510 520 530 540−15
−10
−5
0
5
10
15Sensitivities vs. frequency
%/% Sens
FFreq(Hz)
7028_C011.fm Page 246 Thursday, January 12, 2006 10:24 AM
AC Circuits
247
11.2 EXACT VALUES OF C1 SENSITIVITY
In this section the exact expression for the sensitivity of C1 is calculated and plottedfor comparison with the rough plot just shown on page 246 and the sensitivity plotsin Section 11.10, page 258.
fo := 500 wo := 2·
π
·fo Q := 20 BF := 400 LF := 600
NP := 100 i := 1..NP F
i
:= BF + DF·(i –1)
ω
i
:= 2·
π
·f
i
From Reference 3,
Value at
ω
=
ω
o
:
SC1(wo) = 0.5
Zero-crossing frequency:
fz = 500.31
DFLF BF
NP:= −
SCQ wo wo
Q wo1
2
2
2 2 2 2 2
2 2 2ω
ω ω
ω( ) =
⋅ ⋅ ⋅ −( ) + ⋅ ⋅ −
: (( ) + ⋅ ω2 2wo
[ ] .
.
1 470
480
1 6 60
1 8 6936
41
36
41
F
F
SC
SC
==
( ) =( ) =ωω
400 420 440 460 480 500 520 540 560 580 600−10
−8−6−4−2
02468
10Sensitivity of C1
%/% SC1(ωi)
FiFreq(Hz)
fz foQ
:= ⋅ +⋅
11
2 2
7028_C011.fm Page 247 Thursday, January 12, 2006 10:24 AM
248
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Peak amplitudes with Q:
k := 1..8 Q
k
:= 5·(k – 1) + 5
Vc1Q := augment(Q, Vc1a)
Peak magnitude of C1 sensitivity in %/%:
Note that the peak magnitude of C1 sensitivity is approximately Q/2.
11.3 MULTIPLE-OUTPUT EVA
An example is the third-order Butterworth low-pass filter.uF := 10
–6
K := 10
3
R1 := 1·K R2 := 1·K R3 := 1·K
C2 := C1 C3 := C1 U := 4 Ein := (99 1)
LL := 0 GG := 0 EE := (4 0 0 2 10
6
)BF := 2 ND := 2 PD := 50
Vc aQ
Qk
k
k
14 1
2
2:= ( )
⋅ ( ) −
Vc QT15 10 15 20 25 30 35 40
2 51 5 01 7 5 10 12 5 15 17=
. . . . .55 20
R1
R2
R3
C1Ein
C3
C2
4
11V−
V+
V2
V4
V3
V1
1
2
3
−
+
C uF11
2:=
⋅⋅
π
RR
R
R
R
:=
99 1 1
2 3 2
4 3 3
CC
C
C
C
:=
1 2 1
1 4 2
3 0 3
7028_C011.fm Page 248 Thursday, January 12, 2006 10:24 AM
AC Circuits
249
→
Reference:C:\mcadwca\wcaref11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→
Reference:C:\mcadwca\wcaref11\TolArray.mcd
Call the wca function acwcalog.mcd with Y = 1, and store as Veva1.
Y := 1
→
Reference:C:\mcadwca\wcaref11\acwcalog.mcd
Vev1
1
:= MPeva
1
Vev1
2
:= MPeva
2
Y := 4
Call the wca function acwcalog.mcd with Y = 4, and store as Veva2.
→
Reference:C:\mcadwca\wcaref11\acwcalog.mcd
Vev2
1
:= MPeva
1
Vev2
2
:= MPeva
2
Y := 3
Call the wca function acwcalog.mcd with Y = 3, and store as Veva3.
→
Reference:C:\mcadwca\wcaref11\acwcalog.mcd
Veva3
1
:= MPeva
1
Veva3
2
:= MPeva
2
2 2.5 3 3.5 4−40
−30
−20
−10
0
10
EVA Hi V1EVA Lo V1
EVA for V1
dBV
db[(Veva11)i]
db[(Veva12)i]
LiLog freq(Hz)
7028_C011.fm Page 249 Thursday, January 12, 2006 10:24 AM
250
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.4 BUTTERWORTH LOW-PASS FILTER CIRCUIT
The schematic and components are given here. The various worst-case analyses,MCA, EVA, and FMCA, will refer to this circuit via a subprogram call.
Unit suffixes:
K := 10
3
uF := 10
–6
nF := 10
–9
R1 := 1.43·K R2 := 14.3·K R3 := 9.09·K C1 := 2·nF
2 2.5 3 3.5 4−40
−30
−20
−10
0
10
EVA Hi V4EVA Lo V4
EVA for V4
dBV
db[(Veva21)i]
db[(Veva22)i]
LiLog freq(Hz)
2 2.5 3 3.5 4−40
−30
−20
−10
10
0
EVA Hi V3EVA Lo V3
EVA for V3
dBV
db[(Veva31)i]
db[(Veva32)i]
LiLog freq(Hz)
R3
C1
C2Ein
4
11V−
V+V2V1
V3
1
2
3
−
+
R1R2
7028_C011.fm Page 250 Thursday, January 12, 2006 10:24 AM
AC Circuits
251
C2 := 0.1·uF U := 3 Y := 3 Ein := (99 1)
LL := 0 GG := 0 EE := (3 0 0 2 10
6
)
11.5 BUTTERWORTH LOW-PASS FILTER MCA
For the schematic and component values, see Section 11.4. Call that circuit for datavia a reference subprogram:
→
Reference:C:\crc_book_ms\wca_mcd\bwlpf_ckt.mcd
Next, call comm42 to get the state space arrays A, B, D, and E:
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Specify the component tolerances before calling the tolerance array subprogram:
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
Variables:Tr — resistor tolerances in decimal percentageTc — capacitor tolerances in decimal percentageTi — inductor tolerances in decimal percentage (set to zero if there are no
inductors)Te — input (Ein) toleranceNk — number of Monte Carlo samples
For single inputs (M = 1), Te can be set to zero as the output extremes can belater multiplied by a nonzero 1 + Te if desired.
Te should not be set to zero when M > 1, because the sensitivities are no longer1.0 %/%
Call tolerance array subprogram TolArray:
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
Display tolerance array T as a check: The tolerances are in the order RR, CC, LL (if any) and Ein.
RR
R
R
R
:=
99 1 1
3 1 2
1 2 3
CCC
C:=
3 2 1
1 0 2
7028_C011.fm Page 251 Thursday, January 12, 2006 10:24 AM
252 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Specify log AC frequency sweep and number of Monte Carlo samples Nk:
BF := 2 ND := 2 PD := 50 Nk := 2000
Call the AC MCA subprogram:
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalog.mcd
Create plots: Note the plot parameters — MPmca (for magnitude/phase MCA) column 1 is
the output due to uniform distribution inputs; column 2 is for the normal distribution.
Nk = 2000 Y = 3
R R R C C Ein
Tr Tr Tr Tc Tc Te
T
1 2 3 1 2
0 02 0 02 0 02=
− − − −. . . 00 1 0 1 0
0 02 0 02 0 02 0 1 0 1 0
. .
. . . . .
−
2 2.25 2.5 2.75 3 3.25 3.5 3.75 4−25−20−15−10
−505
10152025
Unif MCA LoNomUnif MCA Hi
Uniform MCA at node Y
dBV
LiLog freq(Hz)
db[(MPmca1,1)i]db[(MPmca2,1)i]db[(MPmca3,1)i]
7028_C011.fm Page 252 Thursday, January 12, 2006 10:24 AM
AC Circuits 253
11.6 BUTTERWORTH LOW-PASS FILTER EVA
See Section 11.4 for the schematic. The calculation sequence is the same as that ofMCA except for the last analysis subprogram called.
→ Reference:C:\crc_book_ms\wca_mcd\bwlpf_ckt.mcd
→ Reference:C:\mcadwca\wcaref11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
BF := 2 ND := 2 PD := 50
Call EVA analysis subprogram for log frequency sweep.
→ Reference:C:\crc_book_ms\Ref_files_v11\acwcalog.mcd
Plot sensitivities:Note the slight bipolarity of R2 and C2 sensitivities — more on this later.
2 2.25 2.5 2.75 3 3.25 3.5 3.75 4−25−20−15−10
−505
10152025
Norm MCA LoNomNorm MCA Hi
Normal MCA at node Y
dBV
LiLog freq(Hz)
db[(MPmca1,2)i]db[(MPmca2,2)i]db[(MPmca3,2)i]
7028_C011.fm Page 253 Thursday, January 12, 2006 10:24 AM
254 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Y = 3
This plot is virtually the same as the uniform MCA plot in Section 11.5.
11.7 BUTTERWORTH LOW-PASS FILTER FMCA
See Section 11.4 for the schematic. The calculation sequence is the same as that ofMCA except for the last analysis subprogram called.
→ Reference:C:\crc_book_ms\wca_mcd\bwlpf_ckt.mcd
→ Reference:C:\mcadwca\wcaref11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
2 2.5 3 3.5 4−1.5
−1
−0.5
0
0.5
C1C2
Sensitivities, C1, C2
%/%
LiLog freq(Hz)
LiLog freq(Hz)
2 2.5 3 3.5 4−2
−1
0
1
R1R2R3
Sensitivities, R1, R2, R3
%/%
Sensi,1
Sensi,2
Sensi,3
Sensi,4
Sensi,5
EVA LoEVA HiNom
2 2.25 2.5 2.75 3 3.25 3.5 3.75 4−25−20−15−10
−505
10152025
EVA at node Y
dBV
LiLog freq(Hz)
db[(MPeva1)i]db[(MPeva2)i]db[(MPa1)i]
7028_C011.fm Page 254 Thursday, January 12, 2006 10:24 AM
AC Circuits 255
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
BF := 2 ND := 2 PD := 50
Call FMCA analysis subprogram for log frequency sweep.
→ Reference:C:\crc_book_ms\Ref_files_v11\fmcalog.mcd
Y = 3
Because the sensitivities are not significantly bipolar, there is no discernibledifference between (uniform input) MCA, EVA, and FMCA.
11.8 MULTIPLE-FEEDBACK BAND-PASS FILTER (BPF) CIRCUIT
A Multiple-Feeback Band-Pass filter circuit is now used for another example. Thisband-pass filter has a center frequency of 500 Hz, and Q of 20. The same calculationsequence as in Section 11.7 for the Butterworth low-pass filter will be performed.
K :=103 uF := 10–6 Hz := 1 V := 1
FMCA LoNomNorm Hi
2 2.25 2.5 2.75 3 3.25 3.5 3.75 4−25−20−15−10
−5
1050
152025
FMCA at node Y
dBV
LiLog freq(Hz)
db[(MPfmca1)i]db[(MPfmca2)i]db[(MPfmca3)i]
R2Ein
4
11V−
V+V2V1
V3
1
2
3
−
+
R1R3C2
C1
7028_C011.fm Page 255 Thursday, January 12, 2006 10:24 AM
256 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
R1 := 6.34·K R2 := 80.6 R3 := 127·K C1 := 0.1·uFC2 := C1 U := 3 Y := 3 Ein := (99 1)
LL := 0
GG := 0 EE := (3 0 0 2 106)
11.9 MULTIPLE-FEEDBACK BPF MCA
See Section 11.8 for the schematic and component values. The same calculationsequence (except for the last subprogram) is called.
→ Reference:C:\crc_book_ms\wca_mcd\mfb_ckt.mcd
→ Reference:C:\mcadwca\wcaref11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
Display T for tutorial purposes:
This can be overwritten by an asymmetric T array if desired:
Specify linear frequency sweep and Nk:
BF := 400 LF := 600 DF := 2 Nk := 2000
Call the MCA analysis subprogram for linear frequency sweep.
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalin.mcd
Extreme center frequency markers from EVA analysis:
M1 := 447 M2 := 568 Y = 3 Nk = 2000
RR
R
R
R
:
99 1 1
1 0 2
3 2 3
CCC
C:=
1 2 1
3 1 2
R R R C C Ein
T
1 2 3 1 2
0 02 0 02 0 02 0 1 0 1 0
0 02=
− − − − −. . . . .
. 00 02 0 02 0 1 0 1 0. . . .
T =− − − − −0 02 0 02 0 03 0 05 0 05 0
0 02 0 02 0 05 0 1
. . . . .
. . . . 55 0 15 0.
7028_C011.fm Page 256 Thursday, January 12, 2006 10:24 AM
AC Circuits 257
F41 = 480Hz (MPmca3,1)41 = 10.794V
This is to be compared with the EVA at this same 480-Hz frequency of 3.38 V(see Section 11.10) and the FMCA value of 7.73 V (Section 11.11). Hence, MCAgives the best answer.
F41 = 480 (MPmca3,2)41 = 10.586V
The normal distribution maximum is at 480 Hz.
11.10 MULTIPLE-FEEDBACK BPF EVA
See Section 11.8 for the schematic and component values. The same calculationsequence except for the last subprogram is called.
400 420 440 460 480 500 520 540 560 580 6000
2
4
6
8
10
12
Uniform MCA HiNominalUniform MCA Lo
Uniform MCA at node Y
Volts
(MPmca1,1)i
(MPmca2,1)i
(MPmca3,1)i
M1 M2
FiFreq(Hz)
M1 M2
400 420 440 460 480 500 520 540 560 580 6000
2
4
6
8
10
12
Normal MCA HiNominalNormal MCA Lo
Normal MCA at node Y
Volts
(MPmca1,2)i
(MPmca2,2)i
(MPmca3,2)i
FiFreq(Hz)
7028_C011.fm Page 257 Thursday, January 12, 2006 10:24 AM
258 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→ Reference:C:\crc_book_ms\wca_mcd\mfb_ckt.mcd
→ Reference:C:\mcadwca\wcaref11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
Specify linear frequency sweep:
BF := 400 LF := 600 DF := 2
Call the EVA analysis subprogram for linear frequency sweep.
→ Reference:C:\mcadwca\wcaref11\acwcalin.mcd
With the exception of R1, note the significant bipolarity of the aforementionedsensitivities.
Extreme center frequency markers for symmetric tolerances:
M1 := 447 M2 := 568
400 450 500 550 600
0
5
10
C1C2
Sensitivities, C1, C2
%/%
Sensi,4
Sensi,5
400 450 500 550 600−10
−5
−10
−5
0
5
10
R1R2R3
Sensitivities, R1, R2, R3
%/%
Sensi,1
Sensi,2
Sensi,3
FiFreq(Hz)
FiFreq(Hz)
400 420 440 460 480 500 520 540 560 580 6000
2
4
6
8
10
12EVA Outputs
Volts
(MPeva1)i
(MPeva2)i
(MPa1)i
M1 M2
FiFreq(Hz)
7028_C011.fm Page 258 Thursday, January 12, 2006 10:24 AM
AC Circuits 259
This plot indicates that maximum amplitudes will only be obtained at 447 and568 Hz. What about at, say, 480 Hz?
F41 = 480Hz (MPeva2)41 = 3.38V
Is 3.38 V the maximum this circuit will ever see at 480 Hz? The answer is no.See the FMCA analysis in Section 11.11.
11.11 MULTIPLE-FEEDBACK BPF FMCA
See Section 11.8 for the schematic and component values. The same calculationsequence as in Section 11.8, except for the last subprogram, is called.
→ Reference:C:\crc_book_ms\wca_mcd\mfb_ckt.mcd
→ Reference:C:\mcadwca\wcaref11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
Specify linear frequency sweep:
BF := 400 LF := 600 DF := 1(1-Hz increments)
Call FMCA analysis subprogram for linear frequency sweep.
→ Reference:C:\crc_book_ms\Ref_files_v11\fmcalin.mcd
Y = 3
Extreme center frequency markers:
M1 := 447 M2 := 568
480-Hz amplitude marker:
M3 := 7.73·V
7028_C011.fm Page 259 Thursday, January 12, 2006 10:24 AM
260 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
F81 = 480 (MPfmca3)81 = 7.73V
Peak responses are shown here for 9 of the 32 possible tolerance combinations.This analysis says that 7.73 V is the maximum we will ever see at 480 Hz. Thisobviously contradicts the EVA, where 3.38 V was predicted as the maximum ampli-tude. The FMCA, although showing interesting plots, is also incorrect.
For the best answer, see the previous MCA (Section 11.9).
11.12 SWITCHING POWER SUPPLY COMPENSATION CIRCUIT
A switching power supply compensation circuit is now used for a third example.Again, the same calculation sequence as in Section 11.7 for the Butterworth low-pass filter will be perfomed.
K := 103 Meg := 106 u := 10–6 n := 10–9 p := 10–12
R1 := 0.2 RL := 9 R2 := 0.01 R3 := 4.99·K R4 := 100·KR5 := 100·K R6 := 1·Meg C1 := 47·u C2 := 1·n C3 := 1·nC4 := 100·p L1 := 180·u U := 7 Y := 7 LL := (1 2 L1)Ein := (99 1)
400 420 440 460 480 500 520 540 560 580 6000
2
4
6
8
10
12
14
FMCA LoNomFMCA Hi
Band pass filter FMCAVo
lts
M3(MPfmca1)i
(MPfmca2)i
(MPfmca3)i
M1 M2
FiFreq(Hz)
R6R4
V4
V3
V1EinV2
V6
V5
R5
C4
C3C2
C1
R3
R1 L1
RLR2
4
11V−
V+
V7
1
2
3
−
+
7028_C011.fm Page 260 Thursday, January 12, 2006 10:24 AM
AC Circuits 261
GG := 0
Ao := 106 EE := (7 0 0 5 Ao)
11.13 SWITCHING POWER SUPPLY COMPENSATION MCA
For the schematic and component values, see Section 11.12. Call data from thatcircuit.
→ Reference:C:\crc_book_ms\wca_mcd\srcmod_ckt.mcd
→ Reference:C:\mcadwca\wcaref11\comm42.mcd
Component tolerances:
Tr := 0.02 Tc := 0.1 Ti := 0.2 Te := 0
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
Display tolerance array T from TolArray.mcd:
Tolerance array T in RR, CC, LL, and Ein order.
R1 R2 RL R3 R4 R5 R6 C1 C2 C3 C4 L1 Ein
BF : = 2 ND : = 2 PD : = 40 Nk : = 2000
RR
R
R
RL
R
R
R
R
:=
99 1 1
2 3 2
2 0
2 4 3
2 5 4
5 6 5
5 7 6
CC
C
C
C
C
:=
3 0 1
4 5 2
6 7 3
5 7 4
Tr
T
Tc Ti Te
=− − − − − − − −
− −
2 2 2 2 2 2 2 10
2 2 2 2 2 2 2 10
10 110 10 20 0
10 10 10 20 0
− −
%
7028_C011.fm Page 261 Thursday, January 12, 2006 10:24 AM
262 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalog.mcd
Y = 7
11.14 SWITCHING POWER SUPPLY COMPENSATION EVA
See Section 11.12 for the schematic. Call circuit data from that file:
KHz = 103
→ Reference:C:\crc_book_ms\wca_mcd\srcmod_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0.2 Te := 0
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
BF := 2 ND := 2 PD := 50
→ Reference:C:\crc_book_ms\Ref_files_v11\fmcalog.mcd
Notch marker: Mn := 3.23
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−20
−15
−10
−5
0
5
10
15
20
Uniform MCA HiNominalUniform MCA LoNormal MCA LoNormal MCA Hi
Uniform & normal MCA at node Y
dBV
LiLog Freq(Hz)
db[(MPmca3,1)i]db[(MPmca2,1)i]db[(MPmca1,1)i]
db[(MPmca3,2)i]db[(MPmca1,2)i]
7028_C011.fm Page 262 Thursday, January 12, 2006 10:24 AM
AC Circuits 263
Plot sensitivities on same vertical scale:
Note that C1 and L1 are significantly bipolar and, therefore, nonmonotonic. Alsonote that in the following plot, there is a notch in the EVA Hi trace, which is dueto the nonmonotonicity of C1 and L1. Hence, the EVA is incorrect in the vicinityof the notch.
The notch is at
Mn = 3.23 fnotch := 10Mn fnotch = 1.698KHzY = 7
0
1
2
R4R5R6C1
R4, R5, R6, C1
%/%
Mn
LiLi
−2
−1
−2
−1
0
2 3 4 2 3 4
1
2
R1R2RLR3
R1, R2, RL, R3
%/%
0Sensi,1
Sensi,2
Sensi,3
Sensi,4
Sensi,5
Sensi,6
Sensi,7
Sensi,8
Mn
C2C3C4L1
C2, C3, C4, L1
0
Mn
Li
2 3 4
0
1
2
%/%
−2
−1
Sensi,9
Sensi,10
Sensi,11
Sensi,12
7028_C011.fm Page 263 Thursday, January 12, 2006 10:24 AM
264 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.15 SWITCHING POWER SUPPLY COMPENSATION FMCA
For the schematic see Section 11.12. Call circuit data from that file.
→ Reference:C:\crc_book_ms\wca_mcd\srcmod_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0.2 Te := 0
Specify component tolerances.
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
BF := 2 ND := 2 PD := 50
Specify AC log frequency sweep.
→ Reference:C:\crc_book_ms\Ref_files_v11\fmcalog.mcd
Call AC FMCA subprogram.
Y = 7
EVA HiEVA LoNom
EVA at node YMn
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4−20−15−10
−505
101520
dBV
LiLog Freq(Hz)
db[(MPeva2)i]db[(MPeva1)i]db[(MPa1)i]
7028_C011.fm Page 264 Thursday, January 12, 2006 10:24 AM
AC Circuits 265
11.16 SALLEN AND KEY BAND-PASS FILTER (BPF) CIRCUIT
This circuit will show an unusual response to MCA with common componenttolerances but not with precise component tolerances. An explanation for this anom-aly will be given.
uF := 10–6 K := 103
R1 := 15.8·K R2 := 5.11·K R3 := 2.61·K R4 := 3.32·K R5 := 13.3·KC1 := 0.1·uF C2 := C1 U := 4 Y := 4 Ein := (99 1)
LL := 0
GG := 0 EE := (4 0 2 3 106)
2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 420
15
10
5
0
5
10
15
20
FMCA HiNomFMCA Lo
FMCA at Node Y
Log Freq (Hz)
dBV
db (MPfmca3)i
db (MPfmca2)i
db (MPfmca1)i
L i
C1
V1Ein
4
11
1V−
V+V2
V3
V4
2
3
−
+R1
R3
R4 R5
R2
C2
RR
R
R
R
R
R
:=
99 1 1
4 1 2
2 0 3
3 0 4
4 3 5
CCC
C:=
1 0 1
1 2 2
7028_C011.fm Page 265 Thursday, January 12, 2006 10:24 AM
266 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.17 SALLEN AND KEY BPF MCA
See Section 11.16 for the schematic and component values. Call subprograms perprevious sequences:
→ Reference:C:\crc_book_ms\wca_mcd\bpfs&k_ckt.mcd
→ Reference:C:\mcadwca\wcaref11\comm42.mcd
The MCA outputs are first given using precision tolerances and then withcommon tolerances:
Precision tolerances:
Tr := 0.002 Tc := 0.01 Ti := 0. Te := 0
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
Displayed in percentage.
Specify linear frequency sweep and Nk:
BF := 400 LF := 600 DF := 1 Nk := 2000
Call MCA analysis subprogram for linear frequency sweep.
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalin.mcd
R R R R R C C Ein
T
1 2 3 4 5 1 2
02 02 02 02 02 1 1 0
0 2 0=
− − − − − − −. .. . . .
%2 0 2 0 2 0 2 1 1 0
400 425 450 475 500 525 550 575 60002468
10
MCA HiNomMCA Lo
Precision tolerances
Volts
(MPmca3,1)i
(MPmca2,1)i
(MPmca1,1)i
FiFreq(Hz)
7028_C011.fm Page 266 Thursday, January 12, 2006 10:24 AM
AC Circuits 267
Note that the center frequency of 500 Hz does not vary. Only the amplitudevaries.
Change to common tolerances:
Tr := 0.02 Tc := 0.1
Call tolerance array subprogram again:
→ Reference:C:\mcadwca\wcaref11\TolArray.mcd
Call MCA subprogram again.
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalin.mcd
Note change of vertical scale!
Nk = 2000
See the following text for an explanation of what causes the MCA spikes withcommon tolerances.
11.17.1 SALLEN AND KEY BPF — MCA WITH BOTH COMMON AND PRECISION TOLERANCES
This circuit is designed for a center frequency fo of 500 Hz, a peak gain of 10 V/V,and a Q of 10.
Two output plots were shown. The first is with precision resistor tolerances of0.2% and capacitor tolerances of 1%.
T =− − − − − − −
2 2 2 2 2 10 10 0
2 2 2 2 2 10 10 0%
400 425 450 475 500 525 550 575 6000
300600900
12001500
MCA HiNomMCA Lo
Common tolerances
Volts
(MPmca3,1)i
(MPmca2,1)i
(MPmca1,1)i
FiFreq(Hz)
7028_C011.fm Page 267 Thursday, January 12, 2006 10:24 AM
268 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Compare this plot with the second one, which uses common tolerances of 2%and 10% for resistors and capacitors, respectively. The common tolerance plotbecomes “pathological” in that there are numerous spikes in the output. The reasonfor this can be found by looking at the transfer function for this circuit.
The standard form of the band-pass transfer function is:
in which for this circuit,
and
The peak gain is given by . Obviously, if D1 is ever zero or close to
it, Gpk will “blow up.”
D1 will be zero when .
By assigning tolerance multipliers of 0.982 for R2, 0.9816 for R4, and 1.02 forR5 (all at or within the ±2% tolerance), it will be found that D1 = 0.166, N1 =3267.56, and Gpk = 19,688 or about 85 dBV. Given Nk Monte Carlo samples, itcan be seen from the second plot that there are many more random tolerancecombinations that will cause Gpk to become extremely high.
Hence, the culprit here is the minus sign in D1, for which the analog circuitdesigner should be wary of in band-pass filter circuits using this topology.
Because of the random nature of MCA, the size of the spikes will be differentfor each run.
It was stated in the introduction to Part II that Monte Carlo analysis (MCA) willproduce realistic results for virtually any circuit that has a reasonably accurate andstable mathematical model. Because one term (D1) of the transfer function canbecome negative, this causes unstable roots in the right-half s-plane. Hence, withthe common tolerances, this circuit does not qualify.
The reader is cautioned that in using the NDS method, this instability would nothave been foreseen. Hence, the transfer functions G(s) still serve a useful purposeand should be examined when any erratic circuit analysis behavior is observed.
11.18 SALLEN AND KEY BPF EVA
See Section 11.16 for the schematic and component values.
G sN s
s D s D( ) =
+ +1
21 0
DC R R
RR R
111
11
23
52 4
= + −⋅
NR R
R R Ci =
+⋅ ⋅4 5
1 4 1
GpkND
= 1
1
11
23
52 4R RR
R R+ =
⋅
7028_C011.fm Page 268 Thursday, January 12, 2006 10:24 AM
AC Circuits 269
→ Reference:C:\crc_book_ms\wca_mcd\bpfs&k_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
BF := 400 LF := 600 DF := 2
→ Reference:C:\crc_book_ms\Ref_files_v11\acwcalin.mcd
R1 is the middle trace in the following plot.Sign-change markers:
M1 := 456 M2 := 554
The following large ugly gap is caused by the sign changes of C1 and C2sensitivities. Note markers M1 and M2.
Again, nonmonotonic components = bipolar sensitivities, and EVA results arerendered meaningless.
400 450 500 550 600−10
−5
0
5
10
C1C2
Sensitivities, C1 & C2
M1 M2
FiFi
400 450 500 550 600−20
−10
0
10
20
R1R2R3R4R5
Sensitivities, R1 thru R5
Sensi,1
Sensi,2
Sensi,3
Sensi,4
Sensi,5
Sensi,7
Sensi,6
7028_C011.fm Page 269 Thursday, January 12, 2006 10:24 AM
270 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.19 SALLEN AND KEY BPF FMCA
See Section 11.16 for the schematic and component values.
→ Reference:C:\crc_book_ms\wca_mcd\bpfs&k_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
BF := 400 LF := 600 DF := 2
→ Reference:C:\crc_book_ms\Ref_files_v11\fmcalin.mcd
Y = 4
Number of components in this circuit including the input:
Nc := 8
400 425 450 475 500 525 550 575 6000
5
10
15
20
EVA LoEVA HiNom
EVA output at node YVo
lts
(MPeva1)i
(MPeva2)i
(MPa1)i
M1M2
FiFreq(Hz)
400 425 450 475 500 525 550 575 6000
20
40
60
80
FMCA HiNomFMCA Lo
FMCA at node Y
Volts
(MPfmca3)i
(MPfmca2)i
(MPfmca1)i
FiFreq(Hz)
7028_C011.fm Page 270 Thursday, January 12, 2006 10:24 AM
AC Circuits 271
With common tolerances, some of the 2Nc = 256 tolerance combinations willcause Gpk (FMCA Hi) to be large.
11.20 STATE VARIABLE FILTER CIRCUIT
This circuit is used to show the affects of increasing the number of Monte Carlo samplesNk. It will be shown that Nk and the tolerance band are of course directly proportional,but nonlinear. For example, doubling Nk does not double the width of the tolerance band.
K := 103 n := 10–9
R1 := 10·K R2 := 20·K R3 := 10·K R4 := 182·K R5 := 2.2·KR6 := 20·K R7 := 10·K R8 := 100·K R9 := 10·K R10 := 100·KC1 := 1.125·n C2 := C1 U := 10 Y := 10 Ao := 106 LL := 0 GG := 0
Ein := (99 1)
11V−
V+
2 1
43
−
+
11V−
V+
2
1
43
−
+ 11V−
V+
2 1
43
−
+
11V−
V+
2
1
43
−
+
C1
V7
V9
V5
V4 V3
V2
V7
V1 V6
V7
V10
V8
V5 V1
R2
R3
R4
R5
R6
R8
R7
R9
R10
C2
R1
Ein
RR
R
R
R
R
R
R
R
R
R
:=
99 1 1
7 2 2
2 3 3
3 4 4
5 6 5
1 5 6
5 9 7
9 10 8
3 8 9
8 77 10R
CCC
C:=
4 5 1
6 7 2
7028_C011.fm Page 271 Thursday, January 12, 2006 10:24 AM
272 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.21 STATE VARIABLE FILTER MCA
For the schematic and component values see Section 11.20.
→ Reference:C:\crc_book_ms\wca_mcd\ieeesvrs_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
BF := 3000 LF := 7000 NP := 100 Nk := 2000
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalin.mcd
The following plots show the effects of increasing Nk on the tolerance bands.Extreme center frequency markers from EVA 11.22:
M1 := 4388 M2 := 5795Nk = 20 Y = 10
EE
Ao
Ao
Ao
Ao
:=
3 0 1 2
5 0 0 4
7 0 0 6
10 0 8 9
T =− − − − − − − − − − − −2 2 2 2 2 2 2 2 2 2 10 10 0
2 2 2 2 2 2 2 2 2 2 10 10 00
%
DFLF BF
NP:= −
3000 3500 4000 4500 5000 5500 6000 6500 70000
20406080
100120140
MCA LoNomMCA Hi
Uniform MCA at node Y
Volts
(MPmca1,1)i
(MPmca2,1)i
(MPmca3,1)i
M1 M2
FiFreq(Hz)
7028_C011.fm Page 272 Thursday, January 12, 2006 10:24 AM
AC Circuits 273
Nk = 200
Nk = 2000
11.22 STATE VARIABLE FILTER EVA
For the schematic and component values, see Section 11.20.
→ Reference:C:\crc_book_ms\wca_mcd\ieeesvrs_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
BF := 3000 LF := 7000 DF := 20
→ Reference:C:\crc_book_ms\Ref_files_v11\acwcalin.mcd
Uniform MCA at node Y
M1 M2
3000 3500 4000 4500 5000 5500 6000 6500 70000
20406080
100120140
Volts
(MPmca1,1)i
(MPmca2,1)i
(MPmca3,1)i
FiFreq(Hz)
Uniform MCA at node Y
M1 M2
3000 3500 4000 4500 5000 5500 6000 6500 70000
20406080
100120140
Volts
(MPmca1,1)i
(MPmca2,1)i
(MPmca3,1)i
FiFreq(Hz)
7028_C011.fm Page 273 Thursday, January 12, 2006 10:24 AM
274 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
The preceding plots show that 6 of the 13 components are nonmonotonic. Einsensitivity is +1 as expected.
Extreme center frequency markers:
M1 := 4388 M2 := 5795
The “spike” at 5 KHz is caused by the asynchronous polarity change of thenonmonotonic components.
From the zoomed sensitivity plots below, all zero crossovers do not take placeat the same frequency.
−10
−5
0
5
10
C1C2Ein
Sensitivities
Freq(KHz)%/
%
FiK
3 4 5 6 7 3 4 5 6 7−10
−5
0
5
10
R2R3R4R5
Sensitivities
Freq(KHz)
%/%
Sensi,2
Sensi,3
Sensi,4
Sensi,5
Sensi,11
Sensi,12
Sensi,13
FiK
3000 3500 4000 4500 5000 5500 6000 6500 70000
20
40
60
80
100
120
140
EVA HiEVA LoNom
EVA at node Y
Volts
(MPeva2)i
(MPeva1)i
(MPa1)i
M1 M2
FiFreq(Hz)
7028_C011.fm Page 274 Thursday, January 12, 2006 10:24 AM
AC Circuits 275
Hence, at 5.00 KHz to 5.02 KHz, the polarity of the sensitivities are not changingsign together. This causes the EVA process, which detects sensitivity sign changes,to show a different magnitude in this 20-Hz frequency band.
11.23 STATE VARIABLE FILTER FMCA AND MCA COMBINED
For the schematic and component values see Section 11.20.
→ Reference:C:\crc_book_ms\wca_mcd\ieeesvrs_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
BF := 3000 LF := 7000 DF := 20 Nk := 2000
→ Reference:C:\crc_book_ms\Ref_files_v11\fmcalin.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalin.mcd
4.9 4.95 5 5.05
R2R3R4R5
Sensitivities
Freq(KHz)
%/%
Sensi,2Sensi,3Sensi,4
Sensi,5Sensi,12
Sensi,11
FiK
Freq(KHz)
FiK
4.9 4.95 5 5.05−10
−5
0
5
10
−10
−5
0
5
10
C1C2
Sensitivities
%/%
7028_C011.fm Page 275 Thursday, January 12, 2006 10:24 AM
276 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Another telltale sign of nonmonotonic components is that MCA is greater thanFMCA. This occurs at about 5400 Hz, as the following plot shows.
11.24 HIGH-Q HUM NOTCH FILTER CIRCUIT
The following circuit has an extremely sharp notch. This notch would be verydifficult to realize on a circuit board due to temperature drift of the components. Inspite of this, the circuit is interesting to analyze and show the response to componenttolerance variation.
K := 103 nF := 10–9
3000 3500 4000 4500 5000 5500 6000 6500 70000
20
40
60
80
100
120
140
MCA HiNomFMCA Hi
FMCA & MCA at node YVo
lts
(MPmca3,1)i
(MPfmca2)i
(MPfmca3)i
FiFreq(Hz)
4000 4500 5000 5500 6000100
120
140FMCA & MCA (Zoomed)
Volts
FiFreq(Hz)
(MPmca3,1)i
(MPfmca2)i
(MPfmca3)i
7028_C011.fm Page 276 Thursday, January 12, 2006 10:24 AM
AC Circuits 277
R1 := 4.73·K R2 := 100·K R3 := 100·K R4 := 200·K R6 := 100·KR7 := 100·K R8 := 4.99·K R9 := 681·K R10 := 681·K Rs := 0.01C1 := 3.9·nF C2 := C1a := 0.01 (Qnotch (R6) pot setting factor can be set from 0.01 to 0.99.)R6A := a·R6 R6B := (1 – a)·R6U := 10 Y := 9 Ao := 106 Ein :=(99 1)
LL := 0 GG := 0
11V−
V+
21
43
−
+
11V−
V+2
1
43
−
+
V−
V+ 1
−
+
R7
R1
R3
R6BR6A
R4
43
211
V10
V7
V9
V6
V4
V3 V9
V5
V8
C2
C1
R10R9
RB
RS
R2
1K
FNOTCH
Ein
QNOTCH
RR
R
R
R
R
R A
R B
R
R
R
:=
99 4 1
4 0 2
99 1 3
1 2 4
3 0 6
3 9 6
5 0 7
5 6 8
6 7 99
7 8 10
99 10
R
Rs
CCC
C:=
10 8 1
2 7 2
EE
Ao
Ao
Ao
:=
2 0 3 1
6 0 4 5
9 0 8 9
7028_C011.fm Page 277 Thursday, January 12, 2006 10:24 AM
278 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.25 HIGH-Q HUM NOTCH FILTER MCA
For the schematic and component values, see Section 11.24.Get circuit data.
→ Reference:C:\crc_book_ms\wca_mcd\hiqhum_ckt.mcd
Get A, B, D, and E state space arrays.
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
Component tolerances in decimal percent
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
Display tolerance array T:
BF := 50 LF := 70 DF := 0.1 Nk := 2000
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalin.mcd
The following plot shows both uniform and normal minimums.
Y = 9
T =− − − − − − − − − − − − −2 2 2 2 2 2 2 2 2 2 2 10 10 0
2 2 2 2 2 2 2 2 2 2 2 100 10 0
%
50 52 54 56 58 60 62 64 66 68 70−110
−90
−70
−50
−30
−10
Uniform MCA LoNominalUniform MCA HiNormal MCA Lo
MCA at node Y
dBV
FiFreq(Hz)
db[(MPmca1,1)i]db[(MPmca2,1)i]db[(MPmca3,1)i]db[(MPmca1,2)i]
7028_C011.fm Page 278 Thursday, January 12, 2006 10:24 AM
AC Circuits 279
11.26 HIGH-Q HUM NOTCH FILTER EVA
See Section 11.19 (MCA) for schematic.Get circuit data
→ Reference:C:\crc_book_ms\wca_mcd\hiqhum_ckt.mcd
Get A, B, D, & E state space arrays
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
Component tolerances in decimal percent
→ Reference:C:\crc_book_ms\Ref_files_v11\TolArray.mcd
BF := 50 LF := 70 DF := 0.1
→ Reference:C:\crc_book_ms\Ref_files_v11\acwcalin.mcd
Note the extreme bipolarity. Also note that Vo approaches zero at F = 60 Hz.Hence, dividing by Vo here causes the sensitivities to be very large.
Extreme notch frequency markers:
M1 := 53.5 M2 := 68.3 Y = 9
54 56 58 60 62 64 66−200
−100
0
100
200C2 sensitivity
%/%
54 56 58 60 62 64 66−200
−100
0
100
200C1 sensitivity
%/% Sensi,12 Sensi,13
FiHz
FiHz
7028_C011.fm Page 279 Thursday, January 12, 2006 10:24 AM
280 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.27 HIGH-Q HUM NOTCH FILTER FMCA
For the schematic and component values, see Section 11.24.
→ Reference:C:\crc_book_ms\wca_fmcd\hiqhum_ckt.mcd
→ Reference:C:\crc_book_ms\Ref_files_v11\comm42.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\crc_book_ms\Ref_files_v11\tolArray.mcd
BF := 50 LF := 70 DF := 0.1
EVA notch markers:
M1 := 53.5 M2 := 68.3
→ Reference:C:\crc_book_ms\Ref_files_v11\fmcalin.mcd
Y = 9
50 52 54 56 58 60 62 64 66 68 70
−90
−70
−50
−30
−10
EVA LoEVA HiNom
EVA at node Y
dBV
M1 M2Y = 9
Fi
−110
db[(MPeva1)i]db[(MPeva2)i]db[(MPa1)i]
Freq(Hz)
7028_C011.fm Page 280 Thursday, January 12, 2006 10:24 AM
AC Circuits 281
11.28 LTC 1562 MCA
See Part I (Section 3.15) for a schematic of the four connected sections and opamprolloff subcircuit. Component count = 68.
→ Reference:C:\mcadckts\CaNL11\ltc1562.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0 Nk := 2000
→ Reference:C:\mcadwca\wcaref11\tolArray.mcd
Markers for EVA extreme center frequencies (see Section 11.29):
→ Reference:C:\crc_book_ms\Ref_files_v11\mcalin.mcd
M1 := 87 M2 := 116 Y = 20
50 52 54 56 58 60 62 64 66 68 70
FMCA LoNomFMCA Hi
FMCA at node Y
dBV
M1 M2
Fi
−90
−70
−50
−30
−10
−110
db[(MPfmca1)i]db[(MPfmca2)i]db[(MPfmca3)i]
Freq(Hz)
7028_C011.fm Page 281 Thursday, January 12, 2006 10:24 AM
282 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
11.29 LTC 1562 EVA
In this section an Extreme Value Analysis (EVA) of the 68-component LTC 1562circuit is performed. The EVA markers M1 and M2, used in the previous section,are calculated here for MCA comparison.
→ Reference:C:\mcadckts\CaNL11\ltc1562.mcd
Tr := 0.02 Tc := 0.1 Ti := 0 Te := 0
→ Reference:C:\mcadwca\wcaref11\tolArray.mcd
→ Reference:C:\mcadwca\wcaref11\acwcalin.mcd
FiK
Freq(KHz)
30
M1 M22010
0−10−20−30−40−50−60−70
40 60 80 100 120 140 160 180
Y = 20
LTC 1562 MCA at node Y
db[(MPmca3,1)i]
db[(MPmca2,1)i]
db[(MPmca1,1)i]
db[(MPmca3,2)i]
Uniform MCA HiNominalUniform MCA LoNormal MCA Hi
dBV
7028_C011.fm Page 282 Thursday, January 12, 2006 10:24 AM
AC Circuits 283
M1 := 87 M2 := 116
These are the extreme frequency markers.Y = 20
40 60 80 100 120 140 160 180−4
−2
0
2
4
R1AR6C2D
Some (Bipolar) sensitivities
Freq(KHz)
%/%
Sensi,3
Sensi,6
Sensi,39
FiK
40 60 80 100 120 140 160 180−70−60−50−40−30−20−10
0102030
EVA LoEVA HiNom
EVA at node Y
Freq(KHz)
dBV
M1 M2
FiK
db[(MPeva1)i]db[(MPeva2)i]db[(MPa1)i]
7028_C011.fm Page 283 Thursday, January 12, 2006 10:24 AM
284 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
REFERENCES
1. Spence and Soin, Tolerance Design of Electronic Circuits, Addison-Wesley, Woking-ham, England, 1988, p. 31.
2. Improving the Manufacturability of Electronic Designs, IEEE Spectrum, June 1999,p. 70.
3. Boyd, R., Tolerance Analysis of Electronic Circuits Using MATLAB, CRC Press,Boca Raton, FL., 1999, p. 115.
7028_C011.fm Page 284 Thursday, January 12, 2006 10:24 AM
285
12
Transient Tolerance Analysis
12.1 TRANSIENT MCA — TWIN-T RC NETWORK
Tolerance analysis in the time domain is explored in this and subsequent sections.The first circuit analyzed is a passive 60-Hz notch filter.
K := 10
3
u := 10
–6
Meg := 10
6
m := 10
–3
R1 := 265·KR3 := 265·K R5 := 133·K R7 := 10·Meg Rs := 0.01 C1 := 0.02·uC2 := 0.01·u C3 := 0.01·u U := 4 Y := 3 Ein := (99 1)
GG := 0
LL := 0 EE := 0
→
Reference:C:\mcadwca\wcaref11\comm42.mcd
See Part I for a review of the nominal Mathcad transient analysis method.
∆
t := 50·u Tper := 80·m
Nk := 500
R5
R1
R7
R3
C3C2
C1
V2
RsV4
V1
V3Ein
RR
R
R
R
R
Rs
:=
99 2 1
2 3 3
1 0 5
3 0 7
99 4
CC
C
C
C
:=
2 0 1
4 1 2
1 3 3
1877 78
min.
Au( ) = 1
5 3max
.A
m( ) =
kmax := Tpert∆
7028_C012.fm Page 285 Thursday, January 12, 2006 10:32 AM
286
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note that
∆
t is << 878us because of output spikes. Create an input pulse usingMathcad’s unit step function
Φ
(x):
pulse(x, w) :=
φ
(x) –
φ
(x – w) bpf(x, f, w) := pulse(x – f, w)Eapp(t) := bpf(t, 0.01·Tper, 0.5·Tper)
Tr := 0.05 Tc := 0.01 Ti := 0(Input tolerance Te not used for transient analysis.)
→
Reference:C:\mcadwca\wcaref11\tranlin.mcd
Y = 3
12.2 TRANSIENT MCA — MULTIPLE FEEDBACK BPF
The Multiple Feedback Bandpass Filter, previously analyzed in the frequencydomain in Section 11.8, is now examined to show the effects of component variationin response to a pulse input. The first plot shows the MCA for Nk = 10, while thesecond shows the response variation for Nk = 1000; Nk being the number ofsamples.
K := 10
3
uF := 10
–6
us := 10
–6
ms := 10
–3
C1 := 0.1·uF C2 := C1R1 := 6.34·K R2 := 80.6 R3 := 127·K U := 3 Y := 3 Ein := (99 1)
0 10 20 4030 50 60 70 800
0.5
1
Nom
MCA at node Y
Y = 3
Volts
(Vnj)1
vminj
vmaxj
Eapp(j ⋅∆t)
j ⋅∆tm
Time(ms)MCA LoMCA HiInput
C1C2
R2
Ein
4
11V−
V+V2V1
V3
1
2
3
−
+
R1R3
7028_C012.fm Page 286 Thursday, January 12, 2006 10:32 AM
Transient Tolerance Analysis
287
LL := 0 GG := 0
EE := (3 0 0 2 10
6
)
→
Reference:C:\mcadwca\wcaref11\comm42.mcd
∆
t := 5·us Tper := 5·ms
Create a delayed input pulse using Mathcad’s unit step function
Φ
(x):
pulse(x, w) :=
φ
(x) –
φ
(x – w) bpf(x, f, w) := pulse(x – f, w)Eapp(t) := bpf(t, 0.001·Tper, 0.1·Tper)
Tr := 0.02 Tc := 0.01 Ti := 0 Nk := 1000
→
Reference:C:\mcadwca\wcaref11\tranlin.mcd
Nk = 10
RR
R
R
R
:=
99 1 1
1 0 2
3 2 3
CCC
C:=
1 2 1
3 1 2
112 68
min.
Ams( ) = 1
7 964max
.A
us( ) =
0 1 2 3 4 5−1.2
−0.8
−0.4
0
0.4
0.8
1.2
NomMinMaxPulse input
Time(ms)
Volts
ms
(Vnj)1
vminj
vmaxj
Ein1,2. Eapp(j ·∆t)
j ·∆t
7028_C012.fm Page 287 Thursday, January 12, 2006 10:32 AM
288
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Nk = 1000
Initial output is negative because of the inverting opamp.
12.3 AC AND TRANSIENT MCA — BESSEL HPF
The next circuit chosen to illustrate transient tolerance analysis is a Bessel highpassfilter. A nominal AC analysis is also given here, as well as an example of using theG array introduced in Section 1.1.2.
K := 10
3
u := 10
–6
n := 10
–9
Hz = 1 MHz := 10
6
p := 10
–12
Controlled sources EE1 through EE3 model the opamp of the Bessel highpassfilter.
0 1 2 3 4 5−1.2
−0.8
−0.4
0
0.4
0.8
1.2
Volts
(Vnj)1
vminj
vmaxj
Ein1,2 .Eapp(j ·∆t)
NomMinMaxPulse input
Time(ms)msj ·∆t
R4
R2
EE1 EE2
V3
V6 V7 V8 V9
C2C1
C4 C5EE3
R5 R6
V2V1 C3 V4
R1
4
11V−
V+
R3
V5
1Ein
2
3
−
+
+−
+−
V5
+−
7028_C012.fm Page 288 Thursday, January 12, 2006 10:32 AM
Transient Tolerance Analysis
289
R1 := 52·K R2 := 75·K R3 := 287·K R4 := 0.01 R5 := 1·K R6 := 1·KC1 := 1.55·n C2 := C1 C3 := C1 fp1 := 100·Hz fp2 := 1·MHz
U := 9
Y := 5 Ein := (99 1)
LL := 0 GG := 0
Ao := 10
6
→
Reference:C:\mcadwca\wcaref11\comm42.mcd
BF := 2 ND := 6 PD := 25 NP :=ND·PD + 1 i := 1..NP
cv
i
:= D·(s
i
·I – A)
–1
·B + E
Vo
i
:= db(cv
i
) fo := 1000·Hz log(fo) = 3
Asymptote equation:
Vm
i
:= 60·log(10
Li–3
)
Note gain peaking and rolloff due to opamp.
Transient MCA:
∆
t := 50·p Tper := 500·n
Cfp R
41
2 1 5:=
⋅ ⋅ ⋅πC
fp R5
12 2 6
:=⋅ ⋅ ⋅π
RR
R
R
R
R
R
R
:=
3 5 1
2 0 2
4 0 3
99 1 4
6 7 5
8 9 6
CC
C
C
C
C
C
:=
1 2 1
2 3 2
3 4 3
7 0 4
9 0 5
Vp
Vn
:
:
=
=
4
5EE
Vp Vn
Ao
:=
6 0 1
8 0 7 0 1
5 0 9 0
L BFiPD
i := + − 1s L:= ⋅ ⋅ ⋅ −2 10 1π
2 3 4 5 6 7 8–60
–40
–20
0
20Output magnitude at node Y
dBV Voi
Vmi
LiLog freq(Hz)
180 6
min.
Ap( ) = 1
159 155max
.A
n( ) =
7028_C012.fm Page 289 Thursday, January 12, 2006 10:32 AM
290
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Nk := 200
pulse(x, w) :=
φ
(x) –
φ
(x – w) bpf(x, f, w) := pulse(x – f, w)Eapp(t) := bpf(t, 0.001·Tper, 0.1·Tper)
Tr := 0.02 Tc := 0.01 Ti := 0 Nk := 1000
→
Reference:C:\mcadwca\wcaref11\tranlin.mcd
Nk = 200 Y = 5
Verification of state space arrays:
C := (W·P)
–1
A := C·Q B := C·S
D := (0 0 0) E := 0
Use G array:Because V4 = V5 = Vo = iC3·R3 (Ideal opamp)F := (0 0 R3) G := F·P G = (0 0 444.85)uI := identity(3) cv
i
:= (D + G·A)·(s
i
·I – A)
–1
·B + E + G·BVa
i
:= 20·log(|cv
i
|)
kmax := Tpert∆
0 100 200 300 400 500−2
−1
0
1
2Transient response MCA at node Y
Volts
(Vnj)1
vminjvmaxj
Eapp(j ·∆t)
NomMinMaxPulse input
Time(ms)n
j ·∆t
W
R R
R R R
R
:=−
−
2 2 0
0 1 3 1
0 0 3
Q := −( ) ⋅
1
1 0 0
1 1 0
1 1 1
S
Ein
Ein
Ein
:,
,
,
=
1 2
1 2
1 2
S =
1
1
1
P diag
C
C
C
:=
1
2
3
7028_C012.fm Page 290 Thursday, January 12, 2006 10:32 AM
Transient Tolerance Analysis
291
The previous plot shows the response with an ideal opamp with no frequencyrolloff or gain peaking.
12.4 TRANSIENT MCA — STATE VARIABLE FILTER
Here the state variable filter, previously analyzed in the frequency domain in Section11.20, is used again to show the oscillatory, ringing response to a pulse input. Thetolerance bands of this oscillatory response due to component value variation arealso shown.
K := 10
3
n := 10
–9
u := 10
–6
m := 10
–3
R1 := 10·K R2 := 20·K R3 := 10·K R4 := 182·KR5 := 2.2·K R6 := 20·K R7 := 10·K R8 := 100·KR9 := 10·K R10 := 100·K
2 3 54 6 7 8−60
−40
–20
0
20
Ideal outputAsymptote
Vai
Vmi
Li
11V−
V+
21
43
−
+
3
11V−
V+2
1
43
−
+ 11V−
V+
21
4
−
+
11V−
V+
2
1
43
−
+
C1
V7
V9
V5V4
V3V2
V7
V1V6
V7
V10
V8
V5V1
R2
R3
R4R5
R6
R8
R7
R9
R10
C2
R1
Ein
7028_C012.fm Page 291 Thursday, January 12, 2006 10:32 AM
292
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
C1 := 1.125·n C2 := C1 U := 10 Y := 10 Ao := 10
6
Ein := (99 1)
LL := 0 GG := 0
→
Reference:C:\mcadwca\wcaref11\comm42.mcd
∆
t := 1·u
kmax := 2000 Tper := kmax·
∆
t
pulse(x, w) :=
φ
(x) –
φ
(x – w) bpf(x, f, w) := pulse(x – f, w)Eapp(t) := bpf(x, 0.01·Tper, 0.5·Tper)
Tr := 0.02 Tc := 0.01 Ti := 0 Nk := 300 Tper = 2m
→
Reference:C:\mcadwca\wcaref11\tranlin.mcd
RR
R
R
R
R
R
R
R
R
R
:=
99 1 1
7 2 2
2 3 3
3 4 4
5 6 5
1 5 6
5 9 7
9 10 8
3 8 9
8 77 10R
CCC
C:=
4 5 1
6 7 2
EE
Ao
Ao
Ao
Ao
:=
3 0 1 2
5 0 0 4
7 0 0 6
10 0 8 9
12 475
min.
Au( ) = − 1
409 501max
.A
u( ) =
7028_C012.fm Page 292 Thursday, January 12, 2006 10:32 AM
Transient Tolerance Analysis
293
Y = 10 Nk = 300
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2−15−10–5
05
1015
NomMinMaxInput pulse x 10
Transient output at node Y
Time(ms)m
Volts
(Vnj)1
vminj
vmaxj
10.Eapp(j ·∆t)
j ·∆t
7028_C012.fm Page 293 Thursday, January 12, 2006 10:32 AM
This page intentionally left blank
295
13
Three-Phase Circuits
13.1 THREE-PHASE Y-CONNECTED UNBALANCED LOAD MCA
uH := 10
–6
uF := 10
–6
Single-ended two-phase Y input on A and B as before.
R1 := 12 R2 := 20 R3 := 3 R4 := 0.01 R5 := 0.01L1 := 636.62·uH C1 := 9.947·uF
CC := (2 3 C1) LL := (5 4 L1)
EE := 0 GG := 0 U := 5 Y := 3
→
Reference:C:\mcadwca\wcaref11\comm42.mcd
BF := 2 ND := 3 PD := 40 Tr := 0.02 Tc := 0.1 Ti := 0.2 Te := 0.05
R5
R1
C1V2
V4L1
V5
V3R3
R2
R4
V1EinA
EinC=0
EinB
+−
+−
Ein :=
99 1
98 1
RR
R
R
R
R
R
:=
99 1 5
1 2 1
3 0 2
4 3 3
98 5 4
7028_C013.fm Page 295 Thursday, January 12, 2006 10:37 AM
296
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Unif := 1Unif = 1 calls uniform distribution; Unif = 0 calls normal distribution.Nk := 1000
→
Reference:C:\mcadwca\wcaref11\TolArray.mcd
→
Reference:C:\mcadwca\wcaref11\3ph_ac_mcalog.mcd
Display input amplitude and phase:
|u
1
| = 200 rd·arg(u
1
) = –60 deg
|u
2
| = 200 rd·arg(u
2
) = –120 degNk = 1000
ui
i=
−− −
100 173 205
100 173 205
.
.
2 2.5 3 3.5 4 4.5 50
50
100
150
200
MCA LoNomMCA Hi
MCA magnitude
Volts
(Vmca1)i
(Vmca2)i
(Vmca3)i
LiLog freq(Hz)
2 2.5 3 3.5 4 4.5 5−150
−130
−110
−90
−70
−50
MCA LoNomMCA Hi
MCA phase angle
Log freq(Hz)
Deg
(Vmca4)i
(Vmca5)i
(Vmca6)i
Li
7028_C013.fm Page 296 Thursday, January 12, 2006 10:37 AM
Three-Phase Circuits
297
13.2 THREE-PHASE Y-CONNECTED UNBALANCED LOAD EVA
deg := 1 uH := 10
–6
uF := 10
–6
See Section 13.1 for the schematic.
R1 := 12 R2 := 20 R3 := 3 R4 := 0.01 R5 := 0.01L1 :=636.62·uH C1 := 9.947·uF U := 5 Y := 3
fo = 2000 log(fo) = 3.3
CC := (2 3 C1) LL := (5 4 L1)
EE := 0 GG := 0
→
Reference:C:\mcadwca\wcaref11\comm42.mcd
BF := 2 ND := 3 PD := 40Tr := 0.02 Tc := 0.1 Ti := 0.2 Te := 0.05Te = input (Ein) tolerance.
→
Reference:C:\mcadwca\wcaref11\TolArray.mcd
→
Reference:C:\mcadwca\wcaref11\3ph_ac_evalog.mcd
Display input amplitude and phase:
|u
1
| = 200 rd·arg(u
1
) = –60 deg
|u
2
| = 200 rd·arg(u
2
) = –120 degM1 := 3.34 M2 := 3.55(Plot markers)
foL C
:=⋅ ⋅ ⋅
1
2 1 1π
Ein :=
99 1
98 1
RR
R
R
R
R
R
:=
1 2 1
3 0 2
4 3 3
98 5 4
99 1 5
ui
i=
−− −
100 173 205
100 173 205
.
.
7028_C013.fm Page 297 Thursday, January 12, 2006 10:37 AM
298
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Note bipolarity and zero crossing of sensitivities at M1 and M2.
2 2.5 3 3.5 4 4.5 5−2
−1
0
1
2
R1R2R3
Magnitude sensitivities
Log freq(Hz)
%/%
Sensi,1
Sensi,2
Sensi,3
M1 M2
Li
2 2.5 3 3.5 4 4.5 5−2
−1
0
1
2
3
C1L1
Magnitude sensitivities
Log freq(Hz)
%/% Sensi,6
Sensi,7
M1 M2
Li
2 2.5 3 3.5 4 4.5 5–2
–1
0
1
2
3
EinAEinB
Magnitude sensitivities
Log freq(Hz)
%/% Sensi,8
Sensi,9
M1 M2
Li
7028_C013.fm Page 298 Thursday, January 12, 2006 10:37 AM
Three-Phase Circuits
299
The sensitivity plot of EinA and EinB requires some comment: If Ein were
changed to Ein := , i.e., EinB at node 98 = 0, the sensitivity of EinA
would +1 across the entire frequency band, or any frequency band.But, because there are two inputs, one via the capacitor C1 (EinA) and the
second via the inductor L1 (EinB), the sensitivity of each varies with frequency.Because C1 becomes a short at high frequency, the sensitivity of EinA goes fromzero to +1 as the frequency is increased. Because L1 becomes open at high frequency,it does just the opposite, namely, the sensitivity goes from +1 to zero, and converselyfor low frequencies.
Hence, when there is more than one input (M > 1), the tolerance analysis answerscannot merely be multiplied by 1 + Te, as they can for the M = 1 case. Thus, inputtolerances become significant when M > 1.
Te = 0.05
99 1
98 0
2 2.5 3 3.5 4 4.5 50
50
100
150
200EVA magnitude
Log freq(Hz)
M1 M2
Li
Volts
(MPeva1)i
(MPeva2)i
(MPa1)i
2 2.5 3 3.5 4 4.5 5−150
−130
−110
−90
−70
−50EVA phase angle
Log freq(Hz)
M1 M2
Li
Deg
(MPeva3)i
(MPeva4)i
(MPa2)i
7028_C013.fm Page 299 Thursday, January 12, 2006 10:37 AM
300
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
13.3 THREE-PHASE Y-CONNECTED UNBALANCED LOAD FMCA
deg := 1 uH := 10
–6
uF := 10
–6
Single-ended two phase Y input as before. For the schematic, see Section 13.1.
R1 := 12 R2 := 20 R3 := 3 R4 := 0.01 R5 := 0.01
L1 := 636.62·uH C1 := 9.947·uF fo = 2000
log (fo) = 3.3 CC := (2 3 C1)
LL := (5 4 L1) EE := 0 GG := 0
U : = 5 Y : = 3
→
Reference:C:\mcadwca\wcaref11\comm42m.mcd
BF := 2 ND := 3 PD := 40Tr := 0.02 Tc := 0.1 Ti := 0.2 Te := 0.05
→
Reference:C:\mcadwca\wcaref11\TolArray.mcd
→
Reference:C:\mcadwca\wcaref11\3ph_ac_fmcalog.mcd
Display input amplitude and phase:
|u
1
| = 200 rd·arg(u
1
) = –60 deg
|u
2
| = 200 rd·arg(u
2
) = –120 deg
foL C
:=⋅ ⋅ ⋅
1
2 1 1π
RR
R
R
R
R
R
:=
99 1 5
1 2 1
3 0 2
4 3 3
98 5 4
Ein :=
99 1
98 1
ui
i=
−− −
100 173 205
100 173 205
.
.
7028_C013.fm Page 300 Thursday, January 12, 2006 10:37 AM
Three-Phase Circuits
301
2 2.5 3 3.5 4 4.5 50
50
100
150
200
FMCA LoNomFMCA Hi
FMCA magnitude
Log freq(Hz)Li
Volts
(Vfmca1)i
(Vfmca2)i
(Vfmca3)i
2 2.5 3 3.5 4 4.5 5−150
−130
−110
−90
−70
−50FMCA phase angle
Log freq(Hz)Li
Deg
(Vfmca4)i
(Vfmca5)i
(Vfmca6)i
7028_C013.fm Page 301 Thursday, January 12, 2006 10:37 AM
This page intentionally left blank
303
14
Miscellaneous Topics
14.1 COMPONENTS NOMINALLY ZERO
Section 14.1 is background information for tolerance analysis of opamp offsets givenin Section 14.2.
mV := 10
–3
Let the function be:
G(A, B, C) := (A + B)·C
Let the nominal component values be:
A := 0 B := 0 C := 20
Then
Vo := G(A, B, C) Vo = 0
Let the tolerances of the components be:
Va := 0.02 Vb := 0.01 Tc := 0.03
The tolerances of A and B are in component units, e.g., Volts; the tolerance ofC is in %. The tolerances of A and B cannot be in percentages, because X% of zerois zero.
The derivatives of Vo wrt the components are:
da := C db := C dc := A + B
Formal definition of RSS, the variance:
Var := (da·A·Va)
2
+ (db·B·Vb)
2
+ (dc·C·Tc)
2
Var = 0
We cannot use this form because A = B = 0. 3
σ
A
is Va, not the product of Aand Va. Hence,
Var := (da·Va)
2
+ (db·Vb)
2
+ (dc·C·Tc)
2
Var = 0.200
Vs = 0.447Vs Var:=
7028_C014.fm Page 303 Thursday, January 12, 2006 10:39 AM
304
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
RSS:
Nc := 3 dpf := 0.0001 p := 1..Nc
Q := dpf·identity(Nc)
Vr
p
:= G[Q
p,1
, Q
p,2
, C·(Q
p,3
+ 1)]
Vr contains the nonnormalized sensitivities. It cannot be normalized, becausethe nominal value of Vo = 0. The RSS values are:
Vrss = 0.447
This is the same as the formal definition Vs.
MCA
w := 1..Nc Nk := 30000 z
w
:= rnorm(Nk, 0, 1)
(Mathcad’s normal distribution function)
k := 1..Nk
Normally distributed random tolerances:
Vmca
k
:= G[Trn
k,1
, Trn
k,2
, C·(Trn
k,3
+ 1)] Vavg := mean(Vmca)Vavg = 0.407 mV Vsm := 3·stdev(Vmca) Vsm = 0.449
The value Vsm = 0.449 is very close to the value of Vrss = 0.447. Hence, thisis another example of how MCA with normal distribution inputs very closely approx-imates RSS. By repeating the MCA ten times, for example, Vs will show an averagecloser to Vrss = 0.447.
EVA
m :=1..2 M
m,p
:= if(m = 1, if(Vr
p
< 0, T
2,p
, T
1,p
), if(Vr
p
≥
0, T
2,p
, T
1,p
))
TVa Vb Tc
Va Vb Tc:=
− − −
Q =
0 0001 0 0
0 0 0001 0
0 0 0 0001
.
.
.
Vr mV=
2
2
0
Vrssdpf
Vr Tp p
p
: ,= ⋅ ⋅( )∑12
2
TrnT T
z Tk ww w
w k w,, ,
,= − ⋅ ( ) + +2 1
16
3
7028_C014.fm Page 304 Thursday, January 12, 2006 10:39 AM
Miscellaneous Topics
305
Vev
m
:= G[M
m,1
, M
m,2
, C·(M
m,3
+ 1)]
FMCA
Nf := 2
Nc
Nf = 8 m := 1..Nf Re
w,m
:= m – 1
Dr
w,m
:= Re
w,m
– 2·Re
w+1,m
Binary array counting from 0 to Nf – 1.Tf is all eight possible tolerance combinations based on binary array Dr:
Tf
w,m
:= if(Dr
w,m
= 0, T
1,w
, T
2,w
)
Vf
m
:= G[Tf
1,m
, Tf
2,m
, C·(Tf
3,m
+ 1)]
Vf
T
= (–0.582 0.194 –0.194 0.582 –0.618 0.206 0.618)
Hence, FMCA is correct in choosing Vf
5
= –0.618 as the minimum and notVf
1
= –0.582 as in EVA.Why did FMCA produce a slightly wider tolerance band than EVA?
Hint: .
14.2 TOLERANCE ANALYSIS OF OPAMP OFFSETS
Input sources nominally zero.K := 10
3
nA := 10
–9
mV := 10
–3
M =− − −
0 02 0 01 0 03
0 02 0 01 0 03
. . .
. . .
Vev =−
0 582
0 618
.
.
Re :Re
,,
w mw mfloor+ =
1
2
Dr =
0 1 0 1 0 1 0 1
0 0 1 1 0 0 1 1
0 0 0 0 1 1 1 1
Tf =− − − −−0 02 0 02 0 02 0 02 0 02 0 02 0 02 0 02
0 0
. . . . . . . .
. 11 0 01 0 01 0 01 0 01 0 01 0 01 0 01
0 03 0 03
− − −− −
. . . . . . .
. . −− −
0 03 0 03 0 03 0 03 0 03 0 03. . . . . .
VfmcaVf
Vf:
min
max=
( )( )
Vfmca :
.
.=
−
0 618
0 618Vev =
−
0 582
0 618
.
.
Vr mV=
2
2
0
7028_C014.fm Page 305 Thursday, January 12, 2006 10:39 AM
306
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
R1 := 10·K R2 := 200·K R3 := 10·K R4 := 200·KIb := 100·nA los := 20·nA Vos := 5·mV
(LM156 data sheet)
Maximum offsets:
Ib1 = 90nA Ib2 = 110nA
The Resistor tolerance is Tr := 0.02
Ein := (99 1) Ao := 10
6
U := 4 Y := 4
Under the broad assumption that the average value of Vos = 0 and that theaverage bias currents are half of the maximum:
Vos := 0
11
V−
V+
2
1
43
−
+
R2R1
V1Vos+
+
−
−
+
−
V2
V3
V4
R3
R4
lb1
lb2
Ib Iblos
12
:= − Ib Iblos
22
:= +
RR
R
R
R
R
:=
1 0 1
1 4 2
3 0 3
3 0 4
EEAo
Vos:=
4 0 3 2
1 2 99 0
7028_C014.fm Page 306 Thursday, January 12, 2006 10:39 AM
Miscellaneous Topics
307
→
Reference:C:\mcadwca\wcaref11\dccomm42.mcd
Vn := 1solve(A1, B2) Vn
Y
= –2mVIg1 := Vn
5
Ig1 = 45nA Ig2 := Vn
6
Ig2 = 55nA(bias currents)
Neither the NDS method nor SPICE is designed for tolerance analysis withnominal zero value components.
Hence, we must resort to “manual” methods.Circuit function:
Reset Vos to maximum:
Vos := 5·mV
Tolerance array T:
Nc := cols(T) Nc = 7 p := 1..Nc
RSS
dpf := 0.0001 Q := dpf·identity(Nc)
Again, under the assumption that the average value of Vos = 0 and that theaverage bias currents are half of the maximum:
Va = –2mV
This confirms the aforementioned NDS answer.Nonnormalized sensitivities:
Vr
p
:= G[R1·(Q
p,1
+ 1), R2·(Q
p,2
+ 1), R3·(Q
p,3
+ 1), R4·(Q
p,4
+ 1), Q
p,5
, Q
p,6
, Q
p,7
]Vr
T
= (0 0 0 0 0.002 20 –20)
GG
Ib
Ib:=
1 0 99 01
2
3 0 99 02
2
G R R R R Vos Ib Ib VosIb R R
R1 2 3 4 1 2
1 1 21
, , , , , , :( ) = + ⋅ ⋅++
− ⋅ ⋅+
⋅ +
R
Ib R RR R
RR2
2 3 43 4
121
TTr Tr Tr Tr Vos
Tr Tr Tr Tr Vos Ib Ib:=
− − − − −
0 0
1 2
Va R R R RIb Ib
: , , , , , ,=
1 2 3 4 01
22
2
7028_C014.fm Page 307 Thursday, January 12, 2006 10:39 AM
308
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
m := 1..2
MCA
w := 1..Nc Nk := 30000 z
w
:= rnorm(Nk, 0, 1)(normal distribution)k := 1..Nk
Vm
k
= G[R1·(Tn
k,1
+ 1), R2·(Tn
k,2
+ 1), R3·(Tn
k,3
+ 1), R4·(Tn
k,4
+ 1), Tn
k,5
, Tn
k,6
, Tn
k,7
]Vavg := mean(Vm) Vavg = –2mV Vs
m
:= (–1)
m
·3·stdev(Vm)
Compare this with RSS.
EVA
M
m,p
:= if[(m) = 1, if(Vr
p
< 0, T
2,p
, T
1,p
), if(Vr
p
≥
0, T
2,p
, T
1,p
)]
Veva
m
:= G[R1·(M
m,1
+ 1), R2·(M
m,2
+ 1), R3·(M
m,3
+ 1), R4·(M
m,4
+ 1), M
m,5
, M
m,6
, M
m,7
]
FMCA
Nf := 2
Nc
Nf = 128 k := 1..Nf
Re
w,k
:= k – 1
Dr
w,k
:= Re
w,k
– 2·Re
w+1,k
Tfw,k := if(Drw,k = 0, T1,w, T2,w Vmfk := G[R1·(Tf1,k + 1), R2·(Tf2,k + 1), R3·(Tf3,k + 1), R4·(Tf4,k + 1),
Tf5,k, Tf6,k, Tf7,k]
Ta Tr Tr Tr Tr VosIb Ib
T
:=
12
22
Vrssdpf
Vr Tam
m
p p
p
:=−( ) ⋅ ⋅( )∑1 2
Vrss mV=−
106
106
TnT T
z Tk ww w
w k w,, ,
,:= − ⋅ ( ) + +2 1
16
3
Vs mV=−
106
106
m =
1
2
Veva mV=−
127
123
Re :Re
,,
w kw kfloor+ =
1
2
7028_C014.fm Page 308 Thursday, January 12, 2006 10:39 AM
Miscellaneous Topics 309
Vfmca1 := min(Vmf) Vfmca2 := max(Vmf)
A slightly wider tolerance band than EVA is obtained.
14.3 BEST-FIT RESISTOR RATIOS
Find the best parallel resistor values for Rp out of all the 96 or 192 resistor valuecombinations (choice 1), find the best noninverting gain values for gain Gp (choice2), find the best inverting gain values for gain –Gn (choice 3), or find the best voltagedivider values for gain D (choice 4).
Choose B:
B = 48 (2% values), or B = 96 (1% values), or B = 192 (0.1% values).B := 96
Required functions:
frac(x) := x – trunc(x) Lx(x) := round(B·log(x))
User input:
(choice = 1, or choice = 2, or choice = 3, or choice = 4) choice := 2Rp := 55.86 Gp := 9.56 Gn := –3.861 D := 0.26
(example inputs for choices 1 to 4.)
Vfmca mV=−
132
127
Rx x roundtrunc
x
Bfrac
x
B( ) = ⋅
: ,10 10 22
7028_C014.fm Page 309 Thursday, January 12, 2006 10:39 AM
310 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Use appropriate decade values.
Rv E
for m B
R x Rx B m
R
:
..
= ←
∈ +
← +( )=
10
1 1
1
1
6
if choice
11
21
1
21
1
x Rx Lx Rp m
R tRp R xR x Rp
R tR x
Gp
← ( ) +( )
← ⋅−
←−
iif choice
if choice
=
←−
=
← ⋅
2
21
3
21
1
R tR xGn
R tR x D
−−=
← ( )( )← −
D
R x Rx Lx R t
E R x R t
if E
if choice 4
2 2
1 2 2
1 <<
←
←
←
E
E E
R R x
R R x
R
R
1
1 1
2 2
1
2
Rv =
11 8
1 37
.
.
7028_C014.fm Page 310 Thursday, January 12, 2006 10:39 AM
Miscellaneous Topics 311
Ans = 9.613 Gp = 9.560
Percentage error:
pce = —0.56%
Changing B to 192 yields pce = 0.Using a “convenient value” method:
Gpx = 9.696 pce = –1.42%
14.4 TRUNCATED GAUSSIAN DISTRIBUTION
In this distribution, Gaussian probability densities less than –3σ and greater than 3σare rejected. It does not use transcendental functions as does the Box–Muller form(see Reference 1) and is hence faster. This could be useful in manufacturing yieldanalyses to simulate using all in-spec components.
Ans RRv RvRv Rv
RRvRv
:= ← ⋅+
=
← +
1 2
1 2
1
2
1
1
if choice
iff choice
if choice
=
← − =
←+
2
31
2
2
1 2
RRv
Rv
RRv
Rv Rviif choice = 4
pceAnsGp
:= −1
Gpx :.
= +110
1 15pce
GpxGp
:= −1
7028_C014.fm Page 311 Thursday, January 12, 2006 10:39 AM
312 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Create histogram:
nb := 30 Nk := 30000 q := 1..nb + 1 nh := 1..nbVL := min(R) VH := max(R) VL = –2.995 VH = 2.988
binq := VL + intv·(q – 1) pr := hist(bin,R)
Vs := stdev(R) Vavg := mean(R) Vavg = 0.0123·Vs = 2.966 E(R) := Nk·intv·dnorm(R, Vavg, Vs)
R k
k Nk
x rnd
x rnd
w
:= ←
≤
← ⋅ ( ) −
← ⋅ ( ) −
1
1 2 1 1
2 2 1 1
while
←← ⋅ + ⋅
<
←− ⋅ ( )
← ⋅
> −
x x x x
if w
wn w
w
y w x
if y
1 1 2 2
1
2 1
2 1
2 3(( ) ∧ <( )←
← +
y
y y
k k
y
k
2 3
1 2
1
1
intv := −VH VLnb
−5 −4 −3 −2 −1 0 1 2 3 4 50
1000
2000
3000
Histogram
prnh
E(binnh)
3.Vs
binnh
−3.Vs
Ideal Gaussian
7028_C014.fm Page 312 Thursday, January 12, 2006 10:39 AM
Miscellaneous Topics 313
14.5 LTC1060 SWITCHED CAPACITOR FILTER
MCA with one and three stages
K := 103 Hz := 1 KHz := 103
There are times when no circuit topology is available to construct the node listarrays. An example is the LTC1060 switched capacitor filter. Here, we must rely oninformation from the data sheet to perform a worst-case analysis. The diagram fromthe vendor’s data sheet is shown in the following.
14.5.1 DESIGN PROCEDURE FROM THE DATA SHEET
fo := 640·Hz Q1 := 100 H := 1 fc := 51·KHz
wo := 2·π·fo R1 := 412·K
R2 = 2.585K R3 = 412K R4 = 6.566K
AC Analysis
BF := 560 LF := 720 NP := 160 i := 1..NP + 1
Mode 3: 2nd order filter providing highpass, bandpass, lowpass.
∑– –
–+
+
15 1/2 LTC1060TLC1060-MO006
6
4
3 5 2 1
R4
R3
R2
R1VIN
V–
SA/B
(17)
N(18)
S1A(16)
BP(19)
LP(20)
∫ ∫
f0 =fCLK
100(50); Q = ; H0HP = –R2/R1; H0BP = –R3/R1; H0LP = –R4/R1R2
R4R2R4
R3R2
wcfc
:= ⋅ ⋅250π
RH R wo
Q wc2
1
1
:= ⋅ ⋅⋅
Rwc Q R
wo3
21:= ⋅ ⋅
R Rwcwo
4 22
:= ⋅
DFLF BF
NP:= −
7028_C014.fm Page 313 Thursday, January 12, 2006 10:39 AM
314 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Fi := BF + DF·(i – 1)Tr := 0.02 Resistor tolerance 2%Twc := 0.075 Switching frequency tolerance 7.5%
Construct component vector X and tolerance array T:
X := (R1 R2 R3 R4 wc)T
Magnitude function:
Convert to rad/sec: ω := 2·π·F
MCA
V1i := G(X, ωi) Nominal output.Nc := length (X) w := 1..Nc Nk := 4000 k := 1..NkTnw,k := (T2,w – T1,w)·rnd (1) + T1,w + 1
Random tolerance array, dim Nc Nk Uniform distribution.BWw,k := Xw·Tnw,k Random component array, dim Nc NkVck,1 := G(BW⟨k⟩,ωi) Random output array, dim Nk NP + 1Vmca1i := max(Vc⟨i⟩) The maximums of the output array at each of NP +
1 frequencies.
Three stages
Q3 := 51.1096
Design for overall Q of 100 for the three stages.
R1 := 412·K R2 = 5.058K
R3 = 412 K R4 = 12.847 K
R5 := R1 R6 := R2 R7 := R3 R8 := R4
TTr Tr Tr Tr Twc
Tr Tr Tr Tr Twc:=
− − − − −
G X
X XX
X X
XX
, :ω
ω
ω
( ) =
⋅ ⋅
( ) ⋅−
+ ⋅
5 2
1
52
2
4
2
2
5 XXX
2
3
2⋅
ω
RH R wo
Q wc2
1
3
:= ⋅ ⋅⋅
Rwc Q R
wo3
23:= ⋅ ⋅
R Rwcwo
4 22
:= ⋅
7028_C014.fm Page 314 Thursday, January 12, 2006 10:39 AM
Miscellaneous Topics 315
Same values for second stage.
R9 := R1 R10 := R2 R11 := R3 R12 := R4
Same values for third stage.
X := (R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 wc)T
Magnitude function for the three stages
V3i := G3(X, ωi) Nominal output for three stages.Nc := length(X) w := 1..NcTnw,k := (T2,w – T1,w)·rnd (1) + T1,w + 1BXw,k := Xw·Tnw,k Vck,1 := G3(BW⟨k⟩,ωi)Vmca3i := max(Vc⟨i⟩)
EVA markers:
M1 := 580.3·Hz M2 := 701.9·Hz
G X a
X XX
X X
X
3
13 2
1
132
2
4
2
, :ω
ω
ω
( ) = ←
⋅ ⋅
( ) ⋅−
22
13 2
3
2
13 6
5
132
6
8
+ ⋅ ⋅
←
⋅ ⋅
( ) ⋅
X XX
b
X XX
X X
X
ω
ω
−−
+ ⋅ ⋅
←
⋅ ⋅
ω ω
ω
2
2
13 6
7
2
13 10
X XX
c
X XX99
132
10
12
2
2
13 10
11
X X
XX X
X
( ) ⋅−
+ ⋅ ⋅
ω ω
← ⋅ ⋅
2
Tf a b c
TTr Tr Tr Tr Tr Tr Tr Tr Tr Tr Tr Tr Twc
:–
=− − − − − − − − − − − −
TTr Tr Tr Tr Tr Tr Tr Tr Tr Tr Tr Tr Twc
7028_C014.fm Page 315 Thursday, January 12, 2006 10:39 AM
316 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Nk = 4000
This plot illustrates an important principle of statistical tolerance analyses.The question may well be asked as to why one stage with 5 components or
variables has a wider frequency tolerance band than three stages with 13 variables.Also, note that the amplitude of the three stages shows a higher variance than thesingle stage, but the average is lower.
The center frequency in Hz is given by , in which for
the first stage, for the second, and for the third stage.
Due to the separate tolerances on R2 through R12, each of these fo’s will be differentfor one frequency sweep, and different again for subsequent Nk frequency sweepsbecause of new random tolerances assigned by the Monte Carlo process.
When ω2 = D01, the first term in the transfer function denominator radical
becomes zero, and the peak gain is given by , but D02 and D03 in the
second and third stages will not equal ω2, and the denominators here will be larger,pulling down the average peak gain of the three combined stages. The nominal peakgain is:
G3pk = 1
A numerical example will help illustrate.
560 580 600 620 640 660 680 700 7200
0.2
0.4
0.6
0.8
1
1.2
Nom_11 Stage MCA3 Stage MCANom_3
Bandpass Filter MCA
Freq (Hz)
Vol
ts
V1i
Vmca1i
Vmca3i
V3i
2M1M
Fi
foD=⋅
02 π
Dwc R
R0
24
1
2
= ⋅
Dwc R
R0
68
2
2
= ⋅D
wc RR
010
123
2
= ⋅
GpkRR
= 31
G pkRR
RR
RR
331
75
119
:= ⋅ ⋅
7028_C014.fm Page 316 Thursday, January 12, 2006 10:39 AM
Miscellaneous Topics 317
In the transfer function
N1 = 78.7
D1 = 78.7
Assume the following random values for wc, R2, R4, ... , R12:
R2 := R2·(1.015) R4 := R4·(0.998) R6 := R6·(1.006) R8 := R8·(0.991)R10 := R10·(0.993) R12 := R12·(0.982) wc := wc·(1.071)
Then:
f1 = 691.3Hz
f2 = 690.6Hz
f3 = 689.3Hz
Use nominal values for the other components and convert to rad/sec:
ω1 := 2·π·f1
G sN s
s D s D( ) = ⋅
+ ⋅ +11 02
Nwc R
R1
21
:= ⋅
Dwc R
R1
23
:= ⋅
fwc R
R1
224
:=⋅
⋅π
fwc R
R2
268
:=⋅
⋅π
fwc R
R3
21012
:=⋅
⋅π
TfaN
wc RR
D
:= ⋅
⋅ −
+ ⋅( )
1 1
24
1 1 12
2
22
ω
ω ω
TfbN
wc RR
D
:= ⋅
⋅ −
+ ⋅( )
1 1
68
1 1 12
2
22
ω
ω ω
7028_C014.fm Page 317 Thursday, January 12, 2006 10:39 AM
318 Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
Tfa = 1 Tfb = 0.995 Tfc = 0.953 Tf := Tfa·Tfb·Tfc Tf = 0.948Tfa = 1, but the product of all three is less.
As to the wider center frequencies for the single stage, the chances of wc, R2,and R4 having random values approaching the minimum and maximum centerfrequencies are much greater than the likelihood of wc, R2, R4, R6, R8, R10, andR12 all having one set of random values for an extreme center frequency. The largervariance, not the mean, of the three-stage gain is again due to the larger number ofcomponents involved.
Showing that the overall Q for the three stages is 100:
Q1 = 100 M3 = 636.8
M4 = 643.2
REFERENCES
1. www.taygeta.com/random/gaussian.html.
TfcN
wc RR
D
:= ⋅
⋅ −
+ ⋅( )
1 1
1012
1 1 12
2
22
ω
ω ω
M foQ
3 11
2 1
:= ⋅ −⋅
M foQ
4 11
2 1
:= ⋅ +⋅
M51
2:=
630 632 634 636 638 640 642 644 646 648 6500.5
0.6
0.7
0.8
0.9
1
M5V3i
Fi
Qfo
M M2
4 3:
–= Q =
100
100
51 11.
7028_C014.fm Page 318 Thursday, January 12, 2006 10:39 AM
319
Appendix II
SUMMARY OF TOLERANCE ANALYSIS METHODS
DC
It has been demonstrated that the conventional sensitivity-sign-based method ofextreme value analysis (EVA) does not always yield the “extreme values.” Hence,the fast Monte Carlo analysis (FMCA) method must be used to guarantee accurateand reliable output tolerance spreads. However, this method may not be practicalfor large DC circuits because the number of required iterations is 2
Nc
, where Nc isthe number of components. For small-to-medium-sized circuits, however, it is thepreferred method. Normal distribution input MCA can be used to closely approxi-mate RSS tolerance bands (Nk > 5000 as a guideline) but not for EVA or FMCA,as has been empirically demonstrated.
AC
With AC circuits that have nonmonotonic components, RSS, EVA, and FMCAmethods become unreliable and should not be used. Hence, prudence dictates thatthese methods should not be used for any AC circuit. That leaves MCA as the methodof choice. A large number of samples of Nk must be used to obtain tolerance bandsgreater than those in RSS but less than those in EVA, using uniform distributioninputs. As in DC circuits, the normal (Gaussian) distribution will approximate theRSS 3
σ
values for monotonic circuits. A rule of thumb is to use no less than Nk= 1000 samples for large circuits and Nk greater than 10,000 for small circuits.
T
RANSIENT
Several examples of transient Monte Carlo analysis have been given. The author hasdiscovered that EVA, RSS, or FMCA methods, when applied to transient analysis,yield erroneous results. This is due to the bipolar sensitivities encountered withoscillatory waveforms, which many RC and RCL circuits exhibit. Hence, MCA isonce again the recommended method.
The execution time is a direct function of kmax (the total number of timeincrements), Nk (number of Monte Carlo samples), and N (the total number ofcapacitors and inductors in the circuit). The number N determines the dimensionsof the A matrix to be N N, which, of course, has a direct effect on executiontime.
7028_A002.fm Page 319 Thursday, January 12, 2006 10:45 AM
320
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
TABLE OF SUBPROGRAMS
P
ART
I N
OMINAL
A
NALYSIS
S
UBPROGRAMS
P
ART
II T
OLERANCE
A
NALYSIS
S
UBPROGRAMS
(U
SED
WITH
P
ART
I S
UBPROGRAMS
)
For required inputs, see example worksheet files.
IN CASE OF DIFFICULTY
A checklist if comm42.mcd will not return A, B, D, and E:
1. Check nodes for sequence, i.e., they must be 1, 2, 3, 4,
…
, U. Make sureno node numbers are skipped or omitted.
File Name
a
FunctionLin or LogFrequency Comments
comm42 AC Nominal Eithercomm42m AC Nominal Either Superposed outputs for M > 1dccomm42 DC Nominal N/A
b
dccomm42m DC Nominal N/A Superposed outputs for M > 1FindU Finds total number of circuit nodes N/A Optional use
File Name
a
FunctionLin or LogFrequency Comments
acwcalin AC EVA Lin Sensitivity outputs includedacwcalog AC EVA Log Sensitivity outputs includeddc_beta DC N/A Uses Mathcad rbeta functionsdc_fmca DC FMCA N/Adc_gap DC N/A Uses bimodal input distributionsdc_mca DC MCA N/A Histogram outputs; normal and uniform
distributionsdcwca DC EVA N/A EVA and sensitivity outputsfmcalin AC FMCA Linfmcalog AC FMCA Logmcalin AC MCA Lin Normal and uniform distribution inputsmcalog AC MCA Log Normal and uniform distribution inputsTolArray T Array N/A Creates symmetric tolerance array Ttranlin TA N/A Transient analysis; pulse input3_ph_ac_evalog 3-Phase EVA Log Sensitivity outputs included3_ph_ac_fmcalog 3-Phase FMCA Log Magnitude and phase outputs3_ph_ac_mcalog 3-Phase MCA Log Magnitude and phase outputs
a
All have the file extension mcd.
b
Not applicable.
7028_A002.fm Page 320 Thursday, January 12, 2006 10:45 AM
Appendix II
321
2. The input source node sequence must be in descending order from 99,98,
…
, 90.3. Check that U is the same as the maximum number of nodes in the circuit.4. Make sure that Y is at least one of the nodes in the circuit.5. For AC, make sure that RR, CC, LL, U, Y, Ein, EE, and GG are all created
or set to zero as required.6. For DC, make sure that RR, U, Y, Ein, EE, and GG are all created or set
to zero.7. U, Y, RR, and Ein must all be nonzero.8. Make sure that all the node numbers in RR, CC, LL, EE, Ein, and GG
exist in the circuit and are connected properly.9. Ensure that autocalculate is ON (Tools, Calculate). As a check, press
CTRL + F9.10. Check for all-capacitive loops and all-inductive cutsets.11. Check for at least one ground (node 0) in the circuit (also a SPICE
requirement).12. Ensure that none of the four rules of circuit construction given on p. 37
are being violated.
ABBREVIATIONS
BPF
Band-pass filter
BJT
Bipolar junction transistor
dpf
Derivative perturbation factor
EVA
Extreme value analysis
FMCA
Fast Monte Carlo analysis
HPF
High-pass filter
HV
High-voltage
LPF
Low pass filter
MCA
Monte Carlo analysis
MFB
Multiple feedback
MOSFET
Metal-oxide semiconductor field effect transistor
RNG
Random number generator
RSS
Root sum square
rv
Random variable
TA
Tolerance analysis
TTA
Transient tolerance analysis
WCA
Worst-case analysis (a generic term that includes EVA, RSS, FMCA, and MCA)
7028_A002.fm Page 321 Thursday, January 12, 2006 10:45 AM
This page intentionally left blank
323
Index
A
A and ß slope intersection method, 103 to 105AC analysis
ACLs, 33 to 34all-capacitive circuits, 22 to 23all-inductive circuits, 23 to 24broadband pulse transformer models, 28fifth-order active filter, 60floating VCVSs, 39HV (200 V) shunt MOSFET regulator, 77LTC 1562 quad band filter IC, 83MOSFET model (first-order), 46output plots, 11 to 13seventh-order elliptical low-pass filters, 65, 69
to 70, 72 to 73square root of frequency (+10dB/decade)
circuits, 75State Space Averaging, 142state variable filters, 62subcircuits schemes, 57 to 58third-order opamp models, 56tolerance analysis, 213 to 216twin-T RC networks, 26two inputs, three outputs, 51unity gain differential amplifiers, 104, 108 to
109VCVS example, 48
AC and transient MCA — Bessel HPF, 288 to 291AC circuits, tolerance analysis, 241 to 284
Butterworth low-pass filter circuits, 250 to 255circuit output vs. component value, 241 to 246CI sensitivity, exact values, 247 to 248high-Q hum notch filter circuits, 276 to 281LC 1562, 281 to 283multiple-feedback BPF circuits, 255 to 260multiple output EVA, 248 to 250Sallen and Key BPF circuits, 265 to 271state variable filter circuits, 271 to 276switching power supply compensation
circuits, 260 to 265AC floating VCVS (voltage controlled voltage
current), 199 to 202ACLs (all-capacitive loops), 30 to 31, 32 to 34Algorithms, Leverrier’s, 97 to 101All-capacitive circuits, 21 to 23All-capacitive loops,
see
ACLs
All-inductive circuits, 23 to 24All-inductive cutsets,
see
ICSAmplifiers, video (uA733), 89 to 95, 212Asymmetric tolerances, 217, 221 to 222
B
Balanced Y-load, 181 to 186Bessel HPF, AC and transient MCA, 288 to 291Beta distributions [4-6], 232 to 234Bimodal (gapped) distribution inputs, 236 to 239Bipolar junction transistors,
see
BJTsBJTs (bipolar junction transistors), 46 to 47, 87
to 88, 211 to 212Broadband pulse transformer models, 27 to 30Buck regulator, switching power supply output
stage, 137 to 140Butterworth low-pass filter circuits, 250 to 255
C
CASE FMCA greater than EVA, 228 to 230CCCS (current-controlled current source), 35, 36
to 37CCVS (current-controlled voltage source), 36Centered difference approximation —
sensitivities, 222 to 224Circuit output vs. component value, 241 to 246Circuits, discrete components, 211 to 212Circuits with M<1, 41 to 43CI sensitivity, exact values, 247 to 248Comparator 100-Hz oscillator, 123 to 127Component value vs. circuit output, 241 to 246Constant current source model, 87 to 88Controlled sources, nominal analysis, 35 to 95
BJT constant current source model, 87 to 88circuits with M<1, 41 to 43dependent, 35 to 37fifth-order active filters, 59 to 60first-order MOSFET model, 44 to 46floating VCVS, 38 to 41HV (200 V) shunt MOSFET regulator, 76 to
77LTC 1562 band-pass filter IC in a quad IC, 78
to 79LTC 1562 quad band filter IC, 79 to 86
7028_Index.fm Page 323 Thursday, January 12, 2006 10:46 AM
324
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
seventh-order elliptical low-pass filters (
see
Seventh-order elliptical low-pass filters)
square root of frequency (+10dB/decade) circuits, 74 to 75
state variable filters, 60 to 63subcircuit schemes, 56 to 58third-order opamp models, 54 to 56two inputs, three outputs, 50 to 54uA733 video amplifier, 89 to 95VCVS,CCCS examples, 46 to 49
ConversionsCCCS to VCCS, 36 to 37CCVS to VCVS, 36D floating inputs to single-ended Y, 167 to 169
Current-controlled current source,
see
CCCS
D
DC analysisbroadband pulse transformer models, 28floating VCVSs, 38 to 39HV (200 V) shunt MOSFET regulator, 77MOSFET model (first-order), 45 to 46output plots, 9 to 11State Space Averaging, 141 to 142tolerance analysis, 212 to 213twin-T RC networks, 25two inputs, three outputs, 51VCVS example, 48
DC circuit analysis, nominal, 151 to 165floating 5-V input source, 164 to 165problem, textbook, 152 to 154RTD circuit, 151 to 152RTD circuit, step resistor value, 161 to 163stacking VCVSs and paralleling VCCSs, 158
to 159test circuit, 154 to 158voltage sweep (RTD circuit), 159 to 160
DC circuits, tolerance analysis, 219 to 239asymmetric tolerances, 221 to 222beta distributions [4-6], 232 to 234CASE FMCA greater than EVA, 228 to 230centered difference approximation--
sensitivities, 222 to 224MCA of RTD, bimodal (gapped) inputs, 236
to 239RTD circuits, 219 to 220, 224 to 228, 234 to
236tolerancing inputs, 231 to 232
Dependent controlled sources, 35 to 37Differential equation solvers, Mathcad, 133 to 135Discrete component circuits, 211 to 212
E
Equivalent series resistance,
see
ESRESR (equivalent series resistance), 31EVA (extreme value analysis), 212 to 215, 217
Butterworth low-pass filters, 253 to 254high-Q hum notch filters, 279 to 280LC 1562, 282 to 283less than CASE FMCA, 228 to 230multiple-feedback BPFs, 257 to 259Sallen and Key BPFs, 268 to 270state variable filters, 273 to 275switching power supply compensation, 262 to
264Extreme value analysis,
see
EVA
F
Fast Monte Carlo analysis,
see
FMCAFifth-order active filters, 59 to 60First-order MOSFET model, 44 to 46Floating 5-V input source, 164 to 165Floating delta input, Y-connected unbalanced
load, 177 to 181Floating VCVSs (voltage-controlled voltage
sources), 38 to 41FMCA (fast Monte Carlo analysis), 212 to 213,
216Butterworth low-pass filters, 254 to 255high-Q hum notch filters, 280 to 281and MCA, state variable filters, 275 to 276multiple-feedback BPFs, 259 to 260RTDs (resistance temperature detectors), 227
to 228Sallen and Key BPFs, 270 to 271switching power supply compensation, 264 to
265
G
Gain-phase plot, plot loop gain as, 105 to 106Gapped (bimodal) distribution inputs, 236 to 239
H
High-Q hum notch filter circuits, 276 to 281High-voltage shunt regulators, 109 to 114Histograms, output, 232HV (200 V) shunt MOSFET regulators, 76 to 77Hybrid-pi model, BJTs, 46 to 47
7028_Index.fm Page 324 Thursday, January 12, 2006 10:46 AM
Index
325
I
ICS (all-inductive cutsets), 31 to 32
K
KCL (Kirchoff’s Current Law), 31Kirchoff’s Current Law,
see
KCLKirchoff’s Voltage Law,
see
KVLKVL (Kirchoff’s Voltage Law), 30 to 31
L
LC 1562, 281 to 283Leverrier’s algorithm, 97 to 101LM158 (opamp model), 106 to 109Low-pass filters, seventh-order elliptical,
see
Seventh-order elliptical low-pass filters
LTC 1562 band-pass filter IC in a quad IC, 78 to 79
LTC 1562 quad band filter IC, 79 to 86
M
Mathcad’s differential equation solvers, 133 to 135
Mathematical pulse width modulator,
see
PWMMatrix solution, 153 to 154MCA (Monte Carlo analysis)
Butterworth low-pass filters, 251 to 253high-Q hum notch filters, 278inputs, 232LC 1562, 281 to 282multiple-feedback BPFs, 256 to 257RTD, beta (skewed) distribution, 234 to 236RTD, bimodal (gapped) inputs, 236 to 239RTD, R4 tolerance=10%, 226 to 227Sallen and Key BPFs, 266 to 268state variable filters, 272 to 273switching power supply compensation, 261 to
262transient, 285 to 288, 291 to 293
Monotonic components, 213Monte Carlo analysis,
see
MCAMOSFET circuits, 211 to 212MOSFET model (first-order), 44 to 46MOSFET regulator, HV (200 V) shunt, 76 to 77Multiple-feedback BPF (band-pass filter) circuits,
255 to 260Multiple feedback BPFs (band-pass filters), 286
to 288
N
N=2 switched circuit transient response, 120 to 123
NDS (node list DC superposition) methodBJT, 87 to 88definition, 3 to 5solution, three phase circuits, 170 to 174stability, 103
NDS (node list DC superposition) method theory, 187 to 207
AC floating VCVS, 199 to 202background theory, 187 to 196VCVS and CCCS, 203 to 207
Node list circuit analysis, 6 to 21algebraic solution, passive circuits, 16 to 21output plots, passive circuits, 9 to 16rules and definitions, 6 to 8
Node list DC superposition,
see
NDSNominal circuit analysis, 3 to 8Nonmonotonic components, 213 to 214Numerical derivatives, 222 to 224Numerical transfer function, Leverrier’s
algorithm, 97 to 99
O
OC (open-collector) transistor output, 124ODE (ordinary differential equation) solver
(Mathcad), 134 to 135One resistor value, stepping, 68 to 70Opamp model (LM158), 106 to 109Open-collector,
see
OCOrdinary differential equation,
see
ODEOutput histograms, 232Output plots, 9 to 16
P
Paralleling VCCSs and stacking VCVSs and, 158 to 159
Passive circuits, nominal analysis, 9 to 34ACLs, 21 to 23, 30 to 34algebraic solution, 16 to 21all-inductive circuits, 23 to 24broadband pulse transformer models, 27 to 30ICS, 31 to 32output plots, 9 to 16twin-T RC networks, 24 to 26
Passive RCL circuits, 131 to 133Plot loop gain as gain-phase plot, 105 to 106Pulse transformer, 127 to 130
7028_Index.fm Page 325 Thursday, January 12, 2006 10:46 AM
326
Node List Tolerance Analysis: Enhancing SPICE Capabilities with Mathcad
PWM (mathematical pulse width modulator), 135 to 137, 143
Q
Quadrature oscillator, 145 to 147
R
Random number generators,
see
RNGsRCL circuits, 16 to 21, 131 to 133Resistance temperature detector,
see
RTDRkadapt functions, 133 to 134rkfixed functions, 133 to 134RNGs (random number generators), 213Root sum square,
see
RSSRSS (root sum square), 212, 213, 217RTD (resistance temperature detector) circuits,
151 to 152, 159 to 163, 219 to 220RTD (resistance temperature detector) circuits,
MCA, 224 to 226, 236 to 239RTD (resistance temperature detector) FMCA,
227 to 228RTD (resistance temperature detector) MCA, beta
(skewed) distribution, 234 to 236RTD (resistance temperature detector) MCA,
R4tolerance=10%, 226 to 227Rules, four, 37Rules and definitions, 6 to 8
S
Sallen and Key BPF (band-pass filter) circuits, 265 to 271
Sensitivities, 222 to 224, 247 to 248Seven capacitor values, stepping, 71 to 73Seventh-order elliptical low-pass filters, 63 to 73
one resistor value, stepping, 68 to 70seven capacitor values, stepping, 71 to 73
Simple triangular waveform generator, 143 to 145Slope intersection method, 103 to 105SPICE node list text format, 5Square root of frequency (+10dB/decade) circuits,
74 to 75Stability analysis, 103 to 114
high-voltage shunt regulator, 109 to 114opamp model (LM158), 106 to 109unity gain differential amplifiers, 103 to 106
Stacking VCVSs and paralleling VCCSs, 158 to 159
State Space Averaging, 140 to 143State variable filter circuits, 271 to 276State variable filters, 60 to 63, 291 to 293
Step-resistor value, RTD circuit, 161 to 163Stiff ODEs (ordinary differential equations), 135Subcircuit schemes, 56 to 58Switched circuit (N=2) transient response, 120 to
123Switching power supply compensation circuits,
260 to 265Switching power supply output stage--Buck
regulator, 137 to 140
T
Test circuit, DC circuit analysis, 154 to 158Third-order opamp models, 54 to 56Three-phase circuits, nominal analysis, 167 to 186
balanced Y-load, 181 to 186conversion, D floating inputs to single-ended
Y, 167 to 169NDS solution, three phase, 170 to 174Y-connected unbalanced load--floating delta
input, 177 to 181Y-unbalanced load, three phase, 174 to 177
Three-phase circuits, tolerance analysis, 295 to 301
Time-domain tolerance analysis, 217Tolerance analysis, introduction, 211 to 217Tolerancing inputs, 231 to 232Transfer function, Leverrier’s algorithm, 97 to 101Transient analysis, 115 to 149
comparator 100-Hz oscillator, 123 to 127Mathcad’s differential equation solvers, 133
to 135N=2 Switched circuit transient response, 120
to 123passive RCL circuits, 131 to 133pulse transformers, 127 to 130PWM (mathematical pulse width modulator),
135 to 137quadrature oscillators, 145 to 147simple triangular waveform generators, 143 to
145State Space Averaging, 140 to 143switched transient analysis, 118 to 120switching power supply output stage--Buck
regulator, 137 to 140tolerance analysis, 217Wein bridge oscillator, 148 to 149
Transient tolerance analysis, 285 to 293AC and transient MCA --Bessel HPF, 288 to
291transient MCA--multiple feedback BPF, 286
to 288transient MCA--state variable filter, 291 to
293
7028_Index.fm Page 326 Thursday, January 12, 2006 10:46 AM
Index
327
transient MCA--twin-T RC network, 285 to 286
Twin-T RC networks, 24 to 26, 100 to 101, 285 to 286
Two inputs, three outputs, 50 to 54
U
uA733 video amplifier, 89 to 95Unbalanced delta loads, single-ended inputs, 170
to 174Unity gain differential amplifiers, 103 to 106
V
VCCSs (voltage-controlled current sources), 35, 148 to 149
VCVSs (voltage-controlled voltage sources), 5, 35 to 36, 38 to 41
VCVSs (voltage-controlled voltage sources), CCCSs (current controlled current sources), 46 to 49, 203 to 207
Video amplifiers (uA733), 89 to 95Voltage-controlled current sources,
see
VCCSsVoltage-controlled voltage sources,
see
VCVSsVoltage sweep (RTD circuit), 159 to 160
W
Wein bridge oscillator, 148 to 149
Y
Y-connected unbalanced load--floating delta input, 177 to 181
Y-unbalanced load, three phase, 174 to 177
7028_Index.fm Page 327 Thursday, January 12, 2006 10:46 AM