Robert Boyd Node List Analysis Mathcad

346

description

Robert Boyd Node List Analysis Mathcad, is worst case analysis

Transcript of Robert Boyd Node List Analysis Mathcad

Page 1: Robert Boyd Node List Analysis Mathcad
Page 2: Robert Boyd Node List Analysis Mathcad

Node ListToleranceAnalysisEnhancing SPICE

Capabilitieswith Mathcad

Page 3: Robert Boyd Node List Analysis 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

Page 4: Robert Boyd Node List Analysis Mathcad

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

Page 5: Robert Boyd Node List Analysis Mathcad

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

Page 6: Robert Boyd Node List Analysis Mathcad

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

Page 7: Robert Boyd Node List Analysis Mathcad

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

Page 8: Robert Boyd Node List Analysis Mathcad

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

Page 9: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 10: Robert Boyd Node List Analysis Mathcad

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

Page 11: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 12: Robert Boyd Node List Analysis Mathcad

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

Page 13: Robert Boyd Node List Analysis Mathcad

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

Page 14: Robert Boyd Node List Analysis Mathcad

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

Page 15: Robert Boyd Node List Analysis Mathcad

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

Page 16: Robert Boyd Node List Analysis Mathcad

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

Page 17: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 18: Robert Boyd Node List Analysis Mathcad

TO MY WIFE LINDA

Forever and Always

7028_C000.fm Page xvii Thursday, January 19, 2006 11:05 AM

Page 19: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 20: Robert Boyd Node List Analysis Mathcad

Part I

Nominal Analysis

7028_S001.fm Page 1 Thursday, January 12, 2006 9:16 AM

Page 21: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 22: Robert Boyd Node List Analysis Mathcad

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

Page 23: Robert Boyd Node List Analysis Mathcad

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

Page 24: Robert Boyd Node List Analysis Mathcad

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

Page 25: Robert Boyd Node List Analysis Mathcad

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

Page 26: Robert Boyd Node List Analysis Mathcad

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

Page 27: Robert Boyd Node List Analysis Mathcad

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

Page 28: Robert Boyd Node List Analysis Mathcad

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

Page 29: Robert Boyd Node List Analysis Mathcad

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

Page 30: Robert Boyd Node List Analysis Mathcad

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

Page 31: Robert Boyd Node List Analysis Mathcad

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

Page 32: Robert Boyd Node List Analysis Mathcad

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

Page 33: Robert Boyd Node List Analysis Mathcad

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

Page 34: Robert Boyd Node List Analysis Mathcad

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

Page 35: Robert Boyd Node List Analysis Mathcad

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

Page 36: Robert Boyd Node List Analysis Mathcad

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

Page 37: Robert Boyd Node List Analysis Mathcad

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

Page 38: Robert Boyd Node List Analysis Mathcad

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

Page 39: Robert Boyd Node List Analysis Mathcad

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

Page 40: Robert Boyd Node List Analysis Mathcad

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

Page 41: Robert Boyd Node List Analysis Mathcad

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

Page 42: Robert Boyd Node List Analysis Mathcad

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

Page 43: Robert Boyd Node List Analysis Mathcad

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

Page 44: Robert Boyd Node List Analysis Mathcad

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

Page 45: Robert Boyd Node List Analysis Mathcad

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

Page 46: Robert Boyd Node List Analysis Mathcad

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

Page 47: Robert Boyd Node List Analysis Mathcad

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

Page 48: Robert Boyd Node List Analysis Mathcad

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

Page 49: Robert Boyd Node List Analysis Mathcad

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

Page 50: Robert Boyd Node List Analysis Mathcad

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

Page 51: Robert Boyd Node List Analysis Mathcad

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

Page 52: Robert Boyd Node List Analysis Mathcad

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

Page 53: Robert Boyd Node List Analysis Mathcad

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

Page 54: Robert Boyd Node List Analysis Mathcad

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

Page 55: Robert Boyd Node List Analysis Mathcad

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

Page 56: Robert Boyd Node List Analysis Mathcad

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

Page 57: Robert Boyd Node List Analysis Mathcad

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

Page 58: Robert Boyd Node List Analysis Mathcad

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

Page 59: Robert Boyd Node List Analysis Mathcad

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

Page 60: Robert Boyd Node List Analysis Mathcad

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

Page 61: Robert Boyd Node List Analysis Mathcad

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

Page 62: Robert Boyd Node List Analysis Mathcad

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

Page 63: Robert Boyd Node List Analysis Mathcad

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

Page 64: Robert Boyd Node List Analysis Mathcad

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

Page 65: Robert Boyd Node List Analysis Mathcad

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

Page 66: Robert Boyd Node List Analysis Mathcad

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

Page 67: Robert Boyd Node List Analysis Mathcad

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

Page 68: Robert Boyd Node List Analysis Mathcad

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

Page 69: Robert Boyd Node List Analysis Mathcad

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

Page 70: Robert Boyd Node List Analysis Mathcad

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

Page 71: Robert Boyd Node List Analysis Mathcad

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

Page 72: Robert Boyd Node List Analysis Mathcad

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

Page 73: Robert Boyd Node List Analysis Mathcad

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

Page 74: Robert Boyd Node List Analysis Mathcad

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

Page 75: Robert Boyd Node List Analysis Mathcad

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

Page 76: Robert Boyd Node List Analysis Mathcad

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

Page 77: Robert Boyd Node List Analysis Mathcad

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

Page 78: Robert Boyd Node List Analysis Mathcad

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

Page 79: Robert Boyd Node List Analysis Mathcad

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

Page 80: Robert Boyd Node List Analysis Mathcad

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

Page 81: Robert Boyd Node List Analysis Mathcad

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

Page 82: Robert Boyd Node List Analysis Mathcad

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

Page 83: Robert Boyd Node List Analysis Mathcad

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

Page 84: Robert Boyd Node List Analysis Mathcad

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

Page 85: Robert Boyd Node List Analysis Mathcad

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

Page 86: Robert Boyd Node List Analysis Mathcad

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

Page 87: Robert Boyd Node List Analysis Mathcad

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

Page 88: Robert Boyd Node List Analysis Mathcad

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

Page 89: Robert Boyd Node List Analysis Mathcad

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

Page 90: Robert Boyd Node List Analysis Mathcad

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

Page 91: Robert Boyd Node List Analysis Mathcad

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

Page 92: Robert Boyd Node List Analysis Mathcad

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

Page 93: Robert Boyd Node List Analysis Mathcad

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

Page 94: Robert Boyd Node List Analysis Mathcad

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

Page 95: Robert Boyd Node List Analysis Mathcad

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

Page 96: Robert Boyd Node List Analysis Mathcad

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

Page 97: Robert Boyd Node List Analysis Mathcad

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

Page 98: Robert Boyd Node List Analysis Mathcad

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

Page 99: Robert Boyd Node List Analysis Mathcad

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

Page 100: Robert Boyd Node List Analysis Mathcad

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

Page 101: Robert Boyd Node List Analysis Mathcad

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

Page 102: Robert Boyd Node List Analysis Mathcad

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

Page 103: Robert Boyd Node List Analysis Mathcad

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

Page 104: Robert Boyd Node List Analysis Mathcad

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

Page 105: Robert Boyd Node List Analysis Mathcad

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

Page 106: Robert Boyd Node List Analysis Mathcad

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

Page 107: Robert Boyd Node List Analysis Mathcad

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

Page 108: Robert Boyd Node List Analysis Mathcad

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

Page 109: Robert Boyd Node List Analysis Mathcad

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

Page 110: Robert Boyd Node List Analysis Mathcad

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

Page 111: Robert Boyd Node List Analysis Mathcad

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

Page 112: Robert Boyd Node List Analysis Mathcad

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

Page 113: Robert Boyd Node List Analysis Mathcad

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

Page 114: Robert Boyd Node List Analysis Mathcad

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

Page 115: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 116: Robert Boyd Node List Analysis Mathcad

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

Page 117: Robert Boyd Node List Analysis Mathcad

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

Page 118: Robert Boyd Node List Analysis Mathcad

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

Page 119: Robert Boyd Node List Analysis Mathcad

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

Page 120: Robert Boyd Node List Analysis Mathcad

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

Page 121: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 122: Robert Boyd Node List Analysis Mathcad

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

Page 123: Robert Boyd Node List Analysis Mathcad

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

Page 124: Robert Boyd Node List Analysis Mathcad

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

Page 125: Robert Boyd Node List Analysis Mathcad

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

Page 126: Robert Boyd Node List Analysis Mathcad

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

Page 127: Robert Boyd Node List Analysis Mathcad

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

Page 128: Robert Boyd Node List Analysis Mathcad

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

Page 129: Robert Boyd Node List Analysis Mathcad

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

Page 130: Robert Boyd Node List Analysis Mathcad

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

Page 131: Robert Boyd Node List Analysis Mathcad

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

Page 132: Robert Boyd Node List Analysis Mathcad

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

Page 133: Robert Boyd Node List Analysis Mathcad

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

Page 134: Robert Boyd Node List Analysis Mathcad

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

Page 135: Robert Boyd Node List Analysis Mathcad

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

Page 136: Robert Boyd Node List Analysis Mathcad

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

Page 137: Robert Boyd Node List Analysis Mathcad

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

Page 138: Robert Boyd Node List Analysis Mathcad

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

Page 139: Robert Boyd Node List Analysis Mathcad

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

Page 140: Robert Boyd Node List Analysis Mathcad

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

Page 141: Robert Boyd Node List Analysis Mathcad

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

Page 142: Robert Boyd Node List Analysis Mathcad

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

Page 143: Robert Boyd Node List Analysis Mathcad

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

Page 144: Robert Boyd Node List Analysis Mathcad

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

Page 145: Robert Boyd Node List Analysis Mathcad

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

Page 146: Robert Boyd Node List Analysis Mathcad

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

Page 147: Robert Boyd Node List Analysis Mathcad

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

Page 148: Robert Boyd Node List Analysis Mathcad

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

Page 149: Robert Boyd Node List Analysis Mathcad

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

Page 150: Robert Boyd Node List Analysis Mathcad

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

Page 151: Robert Boyd Node List Analysis Mathcad

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

Page 152: Robert Boyd Node List Analysis Mathcad

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

Page 153: Robert Boyd Node List Analysis Mathcad

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

Page 154: Robert Boyd Node List Analysis Mathcad

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

Page 155: Robert Boyd Node List Analysis Mathcad

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

Page 156: Robert Boyd Node List Analysis Mathcad

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

Page 157: Robert Boyd Node List Analysis Mathcad

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

Page 158: Robert Boyd Node List Analysis Mathcad

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

Page 159: Robert Boyd Node List Analysis Mathcad

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

Page 160: Robert Boyd Node List Analysis Mathcad

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

Page 161: Robert Boyd Node List Analysis Mathcad

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

Page 162: Robert Boyd Node List Analysis Mathcad

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

Page 163: Robert Boyd Node List Analysis Mathcad

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

Page 164: Robert Boyd Node List Analysis Mathcad

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

Page 165: Robert Boyd Node List Analysis Mathcad

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

Page 166: Robert Boyd Node List Analysis Mathcad

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

Page 167: Robert Boyd Node List Analysis Mathcad

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

Page 168: Robert Boyd Node List Analysis Mathcad

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

Page 169: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 170: Robert Boyd Node List Analysis Mathcad

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

Page 171: Robert Boyd Node List Analysis Mathcad

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

Page 172: Robert Boyd Node List Analysis Mathcad

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

Page 173: Robert Boyd Node List Analysis Mathcad

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

Page 174: Robert Boyd Node List Analysis Mathcad

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

Page 175: Robert Boyd Node List Analysis Mathcad

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

Page 176: Robert Boyd Node List Analysis Mathcad

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

Page 177: Robert Boyd Node List Analysis Mathcad

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

Page 178: Robert Boyd Node List Analysis Mathcad

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

Page 179: Robert Boyd Node List Analysis Mathcad

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

Page 180: Robert Boyd Node List Analysis Mathcad

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

Page 181: Robert Boyd Node List Analysis Mathcad

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

Page 182: Robert Boyd Node List Analysis Mathcad

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

Page 183: Robert Boyd Node List Analysis Mathcad

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

Page 184: Robert Boyd Node List Analysis Mathcad

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

Page 185: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 186: Robert Boyd Node List Analysis Mathcad

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

Page 187: Robert Boyd Node List Analysis Mathcad

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

Page 188: Robert Boyd Node List Analysis Mathcad

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

Page 189: Robert Boyd Node List Analysis Mathcad

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

Page 190: Robert Boyd Node List Analysis Mathcad

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

Page 191: Robert Boyd Node List Analysis Mathcad

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

Ibccv cv

R L i:= −

+ ⋅ ⋅6 5

3 2ω

Icacv

RC i

:= −

+⋅ ⋅

4

11

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

Page 192: Robert Boyd Node List Analysis Mathcad

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

Page 193: Robert Boyd Node List Analysis Mathcad

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

Ibccv

R L i:= −

+ ⋅ ⋅5

3 2ω

Icacv cv

RC i

:= −

+⋅ ⋅

5 4

11

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

Page 194: Robert Boyd Node List Analysis Mathcad

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

Page 195: Robert Boyd Node List Analysis Mathcad

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

Page 196: Robert Boyd Node List Analysis Mathcad

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

Page 197: Robert Boyd Node List Analysis Mathcad

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

Page 198: Robert Boyd Node List Analysis Mathcad

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

Page 199: Robert Boyd Node List Analysis Mathcad

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

Page 200: Robert Boyd Node List Analysis Mathcad

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

Page 201: Robert Boyd Node List Analysis Mathcad

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

Page 202: Robert Boyd Node List Analysis Mathcad

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

Page 203: Robert Boyd Node List Analysis Mathcad

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

Page 204: Robert Boyd Node List Analysis Mathcad

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

Page 205: Robert Boyd Node List Analysis Mathcad

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

Page 206: Robert Boyd Node List Analysis Mathcad

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

Page 207: Robert Boyd Node List Analysis Mathcad

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

Page 208: Robert Boyd Node List Analysis Mathcad

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

Page 209: Robert Boyd Node List Analysis Mathcad

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

Page 210: Robert Boyd Node List Analysis Mathcad

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

Page 211: Robert Boyd Node List Analysis Mathcad

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

Page 212: Robert Boyd Node List Analysis Mathcad

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

Page 213: Robert Boyd Node List Analysis Mathcad

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

Page 214: Robert Boyd Node List Analysis Mathcad

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

Page 215: Robert Boyd Node List Analysis Mathcad

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

Page 216: Robert Boyd Node List Analysis Mathcad

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

Page 217: Robert Boyd Node List Analysis Mathcad

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

Page 218: Robert Boyd Node List Analysis Mathcad

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

Page 219: Robert Boyd Node List Analysis Mathcad

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

Page 220: Robert Boyd Node List Analysis Mathcad

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

Page 221: Robert Boyd Node List Analysis Mathcad

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

Page 222: Robert Boyd Node List Analysis Mathcad

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

Page 223: Robert Boyd Node List Analysis Mathcad

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

Page 224: Robert Boyd Node List Analysis Mathcad

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

Page 225: Robert Boyd Node List Analysis Mathcad

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

Page 226: Robert Boyd Node List Analysis Mathcad

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

Page 227: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 228: Robert Boyd Node List Analysis Mathcad

Part II

Tolerance Analysis

7028_S002.fm Page 209 Thursday, January 12, 2006 10:17 AM

Page 229: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 230: Robert Boyd Node List Analysis Mathcad

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

Page 231: Robert Boyd Node List Analysis Mathcad

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

20024413
Highlight
20024413
Highlight
20024413
Sticky Note
Hesitating or doubting. Not to be relied upon; suspect.
20024413
Highlight
20024413
Highlight
Page 232: Robert Boyd Node List Analysis Mathcad

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

20024413
Highlight
20024413
Highlight
Page 233: Robert Boyd Node List Analysis Mathcad

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

Page 234: Robert Boyd Node List Analysis Mathcad

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

20024413
Highlight
Page 235: Robert Boyd Node List Analysis Mathcad

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

Page 236: Robert Boyd Node List Analysis Mathcad

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

Page 237: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 238: Robert Boyd Node List Analysis Mathcad

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

Page 239: Robert Boyd Node List Analysis Mathcad

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

Page 240: Robert Boyd Node List Analysis Mathcad

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

Page 241: Robert Boyd Node List Analysis Mathcad

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

Page 242: Robert Boyd Node List Analysis Mathcad

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

Page 243: Robert Boyd Node List Analysis Mathcad

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

Page 244: Robert Boyd Node List Analysis Mathcad

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

Page 245: Robert Boyd Node List Analysis Mathcad

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

Page 246: Robert Boyd Node List Analysis Mathcad

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

Page 247: Robert Boyd Node List Analysis Mathcad

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

Page 248: Robert Boyd Node List Analysis Mathcad

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

Page 249: Robert Boyd Node List Analysis Mathcad

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

Page 250: Robert Boyd Node List Analysis Mathcad

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

Page 251: Robert Boyd Node List Analysis Mathcad

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

Page 252: Robert Boyd Node List Analysis Mathcad

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

Page 253: Robert Boyd Node List Analysis Mathcad

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

Page 254: Robert Boyd Node List Analysis Mathcad

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

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

Page 255: Robert Boyd Node List Analysis Mathcad

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

Page 256: Robert Boyd Node List Analysis Mathcad

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

Page 257: Robert Boyd Node List Analysis Mathcad

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.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

7028_C010.fm Page 238 Thursday, January 12, 2006 10:19 AM

Page 258: Robert Boyd Node List Analysis Mathcad

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

Page 259: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 260: Robert Boyd Node List Analysis Mathcad

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

Page 261: Robert Boyd Node List Analysis Mathcad

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

Page 262: Robert Boyd Node List Analysis Mathcad

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

Page 263: Robert Boyd Node List Analysis Mathcad

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

Page 264: Robert Boyd Node List Analysis Mathcad

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

Page 265: Robert Boyd Node List Analysis Mathcad

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

Page 266: Robert Boyd Node List Analysis Mathcad

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

Page 267: Robert Boyd Node List Analysis Mathcad

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

Page 268: Robert Boyd Node List Analysis Mathcad

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

Page 269: Robert Boyd Node List Analysis Mathcad

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

Page 270: Robert Boyd Node List Analysis Mathcad

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

Page 271: Robert Boyd Node List Analysis Mathcad

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

Page 272: Robert Boyd Node List Analysis Mathcad

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

Page 273: Robert Boyd Node List Analysis Mathcad

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

Page 274: Robert Boyd Node List Analysis Mathcad

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

Page 275: Robert Boyd Node List Analysis Mathcad

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

Page 276: Robert Boyd Node List Analysis Mathcad

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

Page 277: Robert Boyd Node List Analysis Mathcad

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

Page 278: Robert Boyd Node List Analysis Mathcad

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

Page 279: Robert Boyd Node List Analysis Mathcad

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

Page 280: Robert Boyd Node List Analysis Mathcad

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

Page 281: Robert Boyd Node List Analysis Mathcad

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

Page 282: Robert Boyd Node List Analysis Mathcad

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

Page 283: Robert Boyd Node List Analysis Mathcad

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

Page 284: Robert Boyd Node List Analysis Mathcad

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

Page 285: Robert Boyd Node List Analysis Mathcad

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

Page 286: Robert Boyd Node List Analysis Mathcad

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

Page 287: Robert Boyd Node List Analysis Mathcad

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

Page 288: Robert Boyd Node List Analysis Mathcad

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

Page 289: Robert Boyd Node List Analysis Mathcad

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

Page 290: Robert Boyd Node List Analysis Mathcad

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

Page 291: Robert Boyd Node List Analysis Mathcad

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

Page 292: Robert Boyd Node List Analysis Mathcad

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

Page 293: Robert Boyd Node List Analysis Mathcad

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

Page 294: Robert Boyd Node List Analysis Mathcad

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

Page 295: Robert Boyd Node List Analysis Mathcad

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

Page 296: Robert Boyd Node List Analysis Mathcad

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

Page 297: Robert Boyd Node List Analysis Mathcad

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

Page 298: Robert Boyd Node List Analysis Mathcad

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

Page 299: Robert Boyd Node List Analysis Mathcad

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

Page 300: Robert Boyd Node List Analysis Mathcad

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

Page 301: Robert Boyd Node List Analysis Mathcad

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

Page 302: Robert Boyd Node List Analysis Mathcad

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

Page 303: Robert Boyd Node List Analysis Mathcad

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

Page 304: Robert Boyd Node List Analysis Mathcad

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

Page 305: Robert Boyd Node List Analysis Mathcad

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

Page 306: Robert Boyd Node List Analysis Mathcad

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

Page 307: Robert Boyd Node List Analysis Mathcad

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

Page 308: Robert Boyd Node List Analysis Mathcad

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

Page 309: Robert Boyd Node List Analysis Mathcad

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

Page 310: Robert Boyd Node List Analysis Mathcad

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

Page 311: Robert Boyd Node List Analysis Mathcad

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

Page 312: Robert Boyd Node List Analysis Mathcad

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

Page 313: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 314: Robert Boyd Node List Analysis Mathcad

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

Page 315: Robert Boyd Node List Analysis Mathcad

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

Page 316: Robert Boyd Node List Analysis Mathcad

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

Page 317: Robert Boyd Node List Analysis Mathcad

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

Page 318: Robert Boyd Node List Analysis Mathcad

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

Page 319: Robert Boyd Node List Analysis Mathcad

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

Page 320: Robert Boyd Node List Analysis Mathcad

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

Page 321: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 322: Robert Boyd Node List Analysis Mathcad

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

Page 323: Robert Boyd Node List Analysis Mathcad

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

Page 324: Robert Boyd Node List Analysis Mathcad

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

Page 325: Robert Boyd Node List Analysis Mathcad

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

Page 326: Robert Boyd Node List Analysis Mathcad

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

Page 327: Robert Boyd Node List Analysis Mathcad

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

Page 328: Robert Boyd Node List Analysis Mathcad

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

Page 329: Robert Boyd Node List Analysis Mathcad

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

Page 330: Robert Boyd Node List Analysis Mathcad

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

Page 331: Robert Boyd Node List Analysis Mathcad

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

Page 332: Robert Boyd Node List Analysis Mathcad

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

Page 333: Robert Boyd Node List Analysis Mathcad

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

Page 334: Robert Boyd Node List Analysis Mathcad

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

Page 335: Robert Boyd Node List Analysis Mathcad

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

Page 336: Robert Boyd Node List Analysis Mathcad

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

Page 337: Robert Boyd Node List Analysis Mathcad

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

Page 338: Robert Boyd Node List Analysis Mathcad

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

Page 339: Robert Boyd Node List Analysis Mathcad

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

Page 340: Robert Boyd Node List Analysis Mathcad

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

Page 341: Robert Boyd Node List Analysis Mathcad

This page intentionally left blank

Page 342: Robert Boyd Node List Analysis Mathcad

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

Page 343: Robert Boyd Node List Analysis Mathcad

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

Page 344: Robert Boyd Node List Analysis Mathcad

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

Page 345: Robert Boyd Node List Analysis Mathcad

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

Page 346: Robert Boyd Node List Analysis Mathcad

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