The Designer's Guide Community Forum
Modeling >> Passive Devices >> Negative Value of Capacitance allowed in SPICE?

Message started by HA on Jan 28th, 2017, 12:13am

Title: Negative Value of Capacitance allowed in SPICE?
Post by HA on Jan 28th, 2017, 12:13am

I am experimenting with my SPICE simulations by assigning capacitor a negative value of 1f (C=-1fF). Although SPICE flashes warning, but it successfully simulates the stand alone cap.
However, when i connect a large resistor in series, the simulations are not at all converging. If i plot the intermediate node voltage (node between C and R) till the the time simulation is converging, i noticed that its value is of the order or 1e21!! At low values of R, simulation is converging.

Any idea why simulation with negat. cap is not converging? i am running transient simulations and the error is "internal time step too small". Any suggestion is greatly appreciated. Thanks a lot!

Title: Re: Negative Value of Capacitance allowed in SPICE?
Post by ULPAnalog on Jan 28th, 2017, 1:06am

A RC circuit with negative capacitor has a pole in the RHP and the simulator is correct to report it by blowing up the voltage. I am not sure which simulator you are using, but spectre usually throws up a blown up voltage error message under such circumstances.

By making the resistance smaller, you are entering a realm where the time constant is likely to be smaller than the time step of transient analysis. The weakness of most transient simulators in dealing with such situations makes the circuit looks apparently stable, while it is far from truth in reality. You can tighten your time step to a smaller value, perhaps smaller than the time constant and see if the circuit becomes unstable.
A similar issue has been discussed here.  

Title: Re: Negative Value of Capacitance allowed in SPICE?
Post by Andrew Beckett on Jan 29th, 2017, 1:13am

The other way of thinking about this is that you have a negative time constant - this means that because you have a response which is of the form V(t)=V0(1-e-t/Τ) the exponent ends up being positive rather than negative, and so explodes. If the time constant is only a small negative number (because  your resistance is small), it will blow  up slowly, and the simulator will end up having to take very small time steps to follow the exponentially increasing signal.

So it's hardly surprising behaviour! I've managed to do this by accident in the past where I unwittingly made the output impedance of a block negative in a behavioural model (by getting an equation back to front) and then the capacitance of the next stage caused it to blow up (in value, not physically!)



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