The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Design Languages >> Verilog-AMS >> matrix is singular...
https://designers-guide.org/forum/YaBB.pl?num=1149167231

Message started by rajdeep on Jun 1st, 2006, 6:07am

Title: matrix is singular...
Post by rajdeep on Jun 1st, 2006, 6:07am

CAn anybody help me to understand what's these error maessages all about?

1. matrix is singular. circuit has a nonisolated solution
2. zero diagonal found in Jacobian at  a7 (say) and a7
   Reordering Jacobian...

Title: Re: matrix is singular...
Post by Geoffrey_Coram on Jun 1st, 2006, 9:51am

If the matrix is singular, there are multiple solutions to the set of equations Ax=0.  

As to zero diagonals, most matrix solvers like to have diagonally-dominant matrices, so if they find a zero on the diagonal (may be due to numerical roundoff), then they swap rows or columns such that a large number from another position is placed on the diagonal.

Title: Re: matrix is singular...
Post by rajdeep on Jun 2nd, 2006, 12:42am

Ok, then singular matrix means ambiguous modeling!! That;s the mistake of the model writer.
But what exactly the 2nd one i.e zero diagonal imply? Does it mean ambiguity or something else?

Rajdeep

Title: Re: matrix is singular...
Post by Geoffrey_Coram on Jun 2nd, 2006, 4:14am

Typically, these sorts of messages appear when you are outside the expected operation of a strongly nonlinear device, and it's not truly a singular matrix, just singular within the finite precision of real numbers on a computer.

If you take a current source and drive the series combination of a 1e-20 resistor and a 1e+20 resistor, then the simulator will be unable to solve the circuit: the (conductance) matrix will be
1e+20 -1e+20
-1e+20 (1e+20+1e-20)
and 1e+20+1e-20 = 1e+20 in double-precision arithmetic, such that the two rows are linearly dependent (row1 = -row2).

If you have a diode with a 0.5 Ohm series resistance, then for certain forward biases the diode conductance gd will be sufficiently large that gd+1/rs = gd (numerically); also, for some reverse biases, gd+1/rs = 1/rs -- though usually the simulator's GMIN prevents this.

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.