Search This Blog

Showing posts with label Modeling. Show all posts
Showing posts with label Modeling. Show all posts

Friday, April 9, 2010

Simulation: Basics of SPICE Modeling (Matrix Templates) - 2 of 6

Introduction
This is a continuation of the SPICE modeling series.  I will attempt to explain how SPICE uses Matrix Templates to create a main matrix to perform the calculation.

SPICE Templates
Before I explain how voltage sources are used I should first explain how SPICE knows where to put information based on node numbers.

Each component in SPICE has an associated Matrix template that is added to a final matrix that performs the final calculation.  As repeated from the last SPICE tutorial: [G][U]=[K] are the [G], conductance matrix, [U], unknowns matrix, and [K], knowns matrix, or the matrix with the known sources (voltage and current sources).

The initial matrix for the conductances starts with inserting the conductances between the nodes first.  Each row and column corresponds with a particular node number.  So we can easily construct the matrix by summing the conductances between the nodes.


where n is the total number of nodes (not including ground)

So any components connected to node 1 will be summed at G11=1/R1+1/R2+ ... +1/Rn.

Now that you see how this first matrix works you can can understand how the templates can work.  For example, the resistor template has a node A and node B connection points with a resistance R.  Below is the matrix template



Now of course the template won't have the words node A and node B in them.  So if the resistor was between nodes 3 and 6 then you would add T11 to G33, T22 to G66, T12 to G36, and T21 to G63 of the main matrix.

So you follow this for all the components.  All components have some sort of matrix template.  Below I will the capacitive and current sources.  Inductor templates use a voltage source so we will talk about that later.


Add to the Conductance Matrix


Add to the Knowns Matrix

where
 
and


And for the current source it's simply adding the below matrix to the knowns table:



Conclusion
That's it for SPICE templates.  Again, each component has it's own matrix template.  This is the basics of how SPICE adds components in a netlist to a large matrix.

Monday, April 5, 2010

Simulation: Basics of SPICE Modeling (Current Sources) - 1 of 6

Introduction
There has been a few people that have talked to me recently about SPICE modeling.  It seems a lot of people use it but no one really knows how it works.  There are a number of books available that explain how it works.  One of the better (and older to today's standards) books is the Inside SPICE: Overcoming The Obstacles of Circuit Simulation.  This is a great book detailing the workings of the basic SPICE simulation.  There is a link to amazon below for it.  I will attempt to explain the first part of a series of posts about SPICE software.  This one will discuss the basics of Nodal Analysis (NA).


Nodal Analysis (NA)
Nodal Analysis is just as it sounds, the standard current summation at the various interconnection nodes.  Electrical Engineers learn this in their first circuits class.  NA is all that's needed to do DC and AC SPICE simulations.  I will discuss here how to perform basic Nodal Analysis.

You should note that in this method you can only have Current Sources and Resistors in the circuit.  In order to use voltage sources you must use Modified Nodal Analysis and to use the capacitors and inductors you must use companion models with numeric integration techniques.  But both of these are based off this first simulation style of Nodal Analysis.  I will discuss the prior techniques in later posts...


Figure 1: Basic Nodal Analysis Example

As you can notice in Figure 1, this circuit has a current source, and resistors.  You can do the node voltage technique to analyze this circuit.  This is what SPICE uses.  So to analyze this, find the two nodal equations:


Node 1


Node 2

Now you see that we have 2 unknowns and two equations.  The next step is to set up the matrices.  You will end up with 3 main matrices, a conductances matrix, unknowns matrix, and a knowns matrix.  After you separate the matrices you should get something that looks like this:




So the matrices with the 1/R-Values is the Conductances Matrix [G] and the matrix with voltages is the unknowns matrix [V] while the right-hand side matrix is the knowns matrix [I].  So how do you get results?  You have to do matrix manipulation.  The best way to do this is to do take the inverse of the G-matrix and multiply it to both sides.

Step 1:


Step 2:


Once you perform this calculation, you have solved for the unknowns V1 and V2.  And that's it.  I provided above the solution in the schematic.  You can use these numbers to test it yourself.  

If you want to do quick analysis of this, place it in MS Excel and use the MMINVERSE and MMULT commands.  Google this and you should find plenty on it.  I may post a blog later on using these.

Conclusion
It's amazing how simple this method is.  Everything else is based off this method.  Even the MNA is based on this method.  I will continue and show you guys the MNA method in the next post.

This is the one I have.  But there is a newer version below

This is the second edition.












--------------------
Justin Coulston
justin.coulston@gmail.com