Download lec2

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Rectifier wikipedia , lookup

Voltage optimisation wikipedia , lookup

Electrical substation wikipedia , lookup

Resistive opto-isolator wikipedia , lookup

Current source wikipedia , lookup

Ohm's law wikipedia , lookup

Stray voltage wikipedia , lookup

Alternating current wikipedia , lookup

Buck converter wikipedia , lookup

Switched-mode power supply wikipedia , lookup

Mains electricity wikipedia , lookup

Topology (electrical circuits) wikipedia , lookup

Two-port network wikipedia , lookup

Rectiverter wikipedia , lookup

Opto-isolator wikipedia , lookup

Signal-flow graph wikipedia , lookup

Network analysis (electrical circuits) wikipedia , lookup

Transcript
Formulation of Circuit Equations
Lecture 2
Alessandra Nardi
Thanks to Prof. Sangiovanni-Vincentelli and Prof. Newton
219A: Course Overview
• Fundamentals of Circuit Simulation
– Approximately 12 lectures
• Analog Circuits Simulation
– Approximately 4 lectures
• Digital Systems Verification
– Approximately 3 lectures
• Physical Issues Verification
– Approximately 6 lectures
E.g.: SPICE, HSPICE,
PSPICE, SPECTRE, ELDO ….
SPICE history
Prof. Pederson with “a cast of thousands”
• 1969-70: Prof. Roher and a class project
– CANCER: Computer Analysis of Nonlinear Circuits, Excluding Radiation
• 1970-72: Prof. Roher and Nagel
– Develop CANCER into a truly public-domain, general-purpose circuit simulator
• 1972: SPICE I released as public domain
– SPICE: Simulation Program with Integrated Circuit Emphasis
• 1975: Cohen following Nagel research
– SPICE 2A released as public domain
• 1976 SPICE 2D New MOS Models
• 1979 SPICE 2E Device Levels (R. Newton appears)
• 1980 SPICE 2G Pivoting (ASV appears)
Circuit Simulation
Input and setup
Circuit
Simulator:
Solve dx/dt=f(x) numerically
Output
Types of analysis:
–
–
–
–
DC Analysis
DC Transfer curves
Transient Analysis
AC Analysis, Noise, Distorsion, Sensitivity
Program Structure (a closer look)
Models
Input and setup
Numerical Techniques:
– Formulation of circuit equations
– Solution of linear equations
– Solution of nonlinear equations
– Solution of ordinary differential equations
Output
Formulation of Circuit Equations
Set of
equations
Circuit with
B branches
N nodes
Simulator
Set of
unknowns
Formulation of Circuit Equations
• Unknowns
– B branch currents (i)
– N node voltages
(e)
– B branch voltages (v)
• Equations
– N+B Conservation Laws
– B Constitutive Equations
Branch Constitutive Equations (BCE)
• Determined by the mathematical model of the
electrical behavior of a component
– Example: V=R·I
• In most of circuit simulators this mathematical
model is expressed in terms of ideal elements
Ideal Elements: Reference Direction
Two-terminal
Two-port
+
+
v
i
v1
i1
i1
i2
i2
+
v2
_
_
Branch voltages and currents are measured
according to the associated reference directions
– Also define a reference node (ground)
_
Branch Constitutive Equations (BCE)
Ideal elements
Element
Resistor
Capacitor
Branch Eqn
v = R·i
i = C·dv/dt
Inductor
Voltage Source
Current Source
VCVS
v = L·di/dt
v = vs, i = ?
i = i s, v = ?
vs = AV · vc, i = ?
VCCS
CCVS
CCCS
is = GT · vc, v = ?
vs = RT · ic, i = ?
is = AI · ic, v = ?
Conservation Laws
• Determined by the topology of the circuit
• Kirchhoff’s Voltage Law (KVL): Every circuit node
has a unique voltage with respect to the reference node. The
voltage across a branch eb is equal to the difference between
the positive and negative referenced voltages of the nodes on
which it is incident
• Kirchhoff’s Current Law (KCL): The algebraic sum
of all the currents flowing out of (or into) any circuit node is
zero.
Equation Formulation - KCL
R3
1
R1
2
Is5
R4
G2v3
0
 i1 
i 
2
1 1 1 0 0    0
0 0  1 1  1 i3   0

   
i4 
i5 
Ai=0
N equations
Kirchhoff’s Current Law (KCL)
Equation Formulation - KVL
R3
1
R1
2
Is5
R4
G2v3
0
 v1  1 0 
0 
v  1 0 
0 
 2 
e   
v3   1  1  1   0
  
 e2   
v
0
1
 4 

0 
v5  0  1
0
v - AT e = 0
B equations
Kirchhoff’s Voltage Law (KVL)
Equation Formulation - BCE
R3
1
R1
2
R4
G2v3
Is5
0
 1
 R
 1
 0
 0


 0

 0
0
0
0
0  G2
1
0 
R3
0
0
0
0
0
0

1
R4
0

0
v
i
0
  1   1   
0 v
i2   0 
2


0 v3   i3    0 
 v4  i4   0 
0 v  i  i 
  5   5   s5 
0
Kvv + i = is B equations
Equation Formulation
Node-Branch Incidence Matrix
branches
n
o 1
d 2
e
s i
1 2 3
j
B
(+1, -1, 0)
N
{
Aij =
+1 if node i is terminal + of branch j
-1 if node i is terminal - of branch j
0 if node i is not connected to branch j
PROPERTIES
•A is unimodular
•2 nonzero entries
in each column
Equation Assembly (Stamping Procedures)
• Different ways of combining Conservation
Laws and Constitutive Equations
– Sparse Table Analysis (STA)
• Brayton, Gustavson, Hachtel
– Modified Nodal Analysis (MNA)
• McCalla, Nagel, Roher, Ruehli, Ho
Sparse Tableau Analysis (STA)
1. Write KCL:
2. Write KVL:
3. Write BCE:
A
0

 K i
0
I
Kv
Sparse Tableau
Ai=0
v -ATe=0
Kii + Kvv=S
0 i  0
 AT  v   0 
0  e S 
(N eqns)
(B eqns)
(B eqns)
N+2B eqns
N+2B unknowns
N = # nodes
B = # branches
Sparse Tableau Analysis (STA)
Advantages
• It can be applied to any circuit
• Eqns can be assembled directly from input data
• Coefficient Matrix is very sparse
Problem
Sophisticated programming techniques and data
structures are required for time and memory
efficiency
Nodal Analysis (NA)
1. Write KCL
A·i=0
(N eqns, B unknowns)
2. Use BCE to relate branch currents to branch
voltages
i=f(v)
(B unknowns  B unknowns)
3. Use KVL to relate branch voltages to node voltages
4. v=h(e)
(B unknowns  N unknowns)
Yne=ins
Nodal Matrix
N eqns
N unknowns
N = # nodes
Nodal Analysis - Example
R3
1
R1
2
R4
G2v3
Is5
0
1. KCL:
2. BCE:
3. KVL:
Ai=0
Kvv + i = is  i = is - Kvv  A Kvv = A is
v = ATe  A KvATe = A is
1
1
 R  G2  R
3
 1
1



R3
1
 G2  
R3  e1   0 
    
1
1  e2  is 5 

R3 R4 
Yne = ins
Nodal Analysis
• Example shows NA may be derived from STA
• Better: Yn may be obtained by direct inspection
(stamping procedure)
– Each element has an associated stamp
– Yn is the composition of all the elements’ stamps
Nodal Analysis – Resistor “Stamp”
Spice input format:
N+
Rk
N-
Rk
N+
i
N+  1
 R
 k
 1
N-  R
 k
N+ NN-
1
 
Rk

1 
Rk 
Rkvalue
What if a resistor is
connected to ground?
….
Only contributes to the
diagonal
1
 iothers  R eN   eN     is
k
KCL at node N+
1
 iothers  R eN   eN     is
k
KCL at node N-
Nodal Analysis – VCCS “Stamp”
Spice input format:
NC+
i
i
others
others
N+ N- NC+ NC-
Gkvalue
N+
+
vc
NC-
Gk
NC+
N+  G
k
 G
k
N- 
Gkvc
 Gk eNC   eNC     is
 Gk eNC   eNC     is
NKCL at node N+
KCL at node N-
NC-
 Gk 
Gk 
Nodal Analysis – Current source “Stamp”
Spice input format:
Ik
N+ N- Ikvalue
N+
N+ N-
N+ 
Ik
N-

N- 
  I k 
 I 
  k 
Nodal Analysis (NA)
Advantages
• Yn is often diagonally dominant and symmetric
• Eqns can be assembled directly from input data
• Yn has non-zero diagonal entries
• Yn is sparse (not as sparse as STA) and smaller than
STA: NxN compared to (N+2B)x(N+2B)
Limitations
• Conserved quantity must be a function of node
variable
– Cannot handle floating voltage sources, VCVS, CCCS,
CCVS
Modified Nodal Analysis (MNA)
How do we deal with independent voltage sources?
+
Ekl
k
-
l
ikl

k 

l 



1
1
   
1  ek   
   
    
 1  el   
   
   
0  ikl   Ekl 
• ikl cannot be explicitly expressed in terms of node
voltages  it has to be added as unknown (new column)
• ek and el are not independent variables anymore  a
constraint has to be added (new row)
MNA – Voltage Source “Stamp”
Spice input format:
+
Ek
N+
-
Nik
ESk
N+ N-
Ekvalue
N+ N- ik
N+ 0
0 1
N- 0 0 -1
Branch k 1 -1 0
RHS
0
0
 
 Ek 
Modified Nodal Analysis (MNA)
How do we deal with independent voltage sources?
Augmented nodal matrix
Yn
C

B  e 
 MS



0 i 
Some branch currents
In general:
Yn
C

B  e 
 MS



D  i 
MNA – General rules
• A branch current is always introduced as and
additional variable for a voltage source or an
inductor
• For current sources, resistors, conductors and
capacitors, the branch current is introduced
only if:
– Any circuit element depends on that branch current
– That branch current is requested as output
MNA – CCCS and CCVS “Stamp”
MNA – An example
2
1
R1
R4
G2v3
ES6
3
+
Is5
R8
-
+
0
4
E7v3
Step 1: Write KCL
i1 + i2 + i3 = 0
-i3 + i4 - i5 - i6 = 0
i6 + i8 = 0
i7 – i8 = 0
(1)
(2)
(3)
(4)
MNA – An example
Step 2: Use branch equations to eliminate as many branch currents
as possible
1/R1·v1 + G2 ·v3 + 1/R3·v3 = 0
(1)
- 1/R3·v3 + 1/R4·v4 - i6 = is5
(2)
i6 + 1/R8·v8 = 0
(3)
i7 – 1/R8·v8 = 0
(4)
Step 3: Write down unused branch equations
v6 = ES6
v7 – E7·v3 = 0
(b7)
(b6)
MNA – An example
Step 4: Use KVL to eliminate branch voltages from previous
equations
1/R1·e1 + G2·(e1-e2) + 1/R3·(e1-e2) = 0
(1)
- 1/R3·(e1-e2) + 1/R4·e2 - i6 = is5
(2)
i6 + 1/R8·(e3-e4) = 0
(3)
i7 – 1/R8·(e3-e4) = 0
(4)
(e3-e2) = ES6
(b6)
e4 – E7·(e1-e2) = 0
(b7)
MNA – An example
1
1

G


2
R
R3
 1
1



R3


0



0


0

E7


1 
  G2  
R3 

1
1

R3 R4
0
0
0
0
1
1
R8
1

R8
1
 E7
0
0
0
1
R8
1
R8
0

1

0 0
e   0 
 1  

 1 0 e
i
2
s
5
  

 e   0 
3
1 0    

 e4   0 
  

0 1  i6   ES 6
  i7   0 
0 0

0 0
Yn
C

B  e 
 MS



0 i 
Modified Nodal Analysis (MNA)
Advantages
• MNA can be applied to any circuit
• Eqns can be assembled directly from input data
• MNA matrix is close to Yn
Limitations
• Sometimes we have zeros on the main
diagonal and principle minors may also be
singular.