Ngspice Capacitor Simulation problem

In summary, the netlist is not wrong, but you may need to add an internal resistance to model the small size of the 10 Farad capacitor.
  • #1
wolterh
7
0
I intend to use circuit simulation (namely ngspice because it runs on linux) to aid me through electric circuit studies.

However, I recently encountered a problem in a circuit I was simulating: the plots were not logical - a capacitor was taking no time to reach its maximum voltage.

At first I thought it was only my machine so I tried it on PSPICE and on ngspice online simulator, which yielded the plot attached with the following netlist:
Code:
A simple RC circuit
V0 n1 GND DC 12V
R1 n2 GND 10k
C2 n1 n2 10F
.END

Is the netlist wrong?
I found that the following netlist does model the capacitor alright, but the first I generated with a circuit designer application (gEDA) and the second I based on a website example.

Working netlist:
Code:
Test circuit
V0 n1 GND DC 10V
R1 n1 n2 3.3k
C2 n2 GND 47uF
.END
 

Attachments

  • plot0.png
    plot0.png
    8.8 KB · Views: 548
Engineering news on Phys.org
  • #2
wolterh said:
However, I recently encountered a problem in a circuit I was simulating: the plots were not logical - a capacitor was taking no time to reach its maximum voltage.
Your netlist is not wrong, it describes a high-pass filter (the second one is a low-pass filter). But you're plotting the voltage of the ideal voltage source when it turns on. Add some internal resistance to it and see what happens.
 
  • #3
Try removing the F from the 10 Farad capacitor. Just leave it as 10.

The simulator knows that the unit of capacitance is Farads, but it looks for modifiers like "k" or "μ" after the number.

It would assume you mean "femto" if you put an F there.
 
  • #4
As mentioned before, the circuit as you have it is a high pass filter. If you want to do AC simulation, you can go to www.ngspice.com and the following in the netlist textbox:

A simple RC circuit
V0 n1 GND DC 12V AC 1V
R1 n2 GND 10k
C2 n1 n2 10F

.AC DEC 10 1 1e10

.END

and then "db(v(n2))" in the plot textbox. You'll get a plot with high pass filter response, but with the pole at very high frequency. This is because your capacitor is really small--10 femto farads (10e-15). If you don't have the "F" then you'd end up with 10 farads--a much larger value than you may want also.

To see a transient step response of the capacitor, put the following into the netlist textbox:

A simple RC circuit
V0 n1 GND DC 12V AC 1V
R1 n2 GND 10k
C2 n1 n2 10n

.ic v(n2)=12V

.TRAN 100n 500u

.END

and then "v(n2)" into the plot textbox. Here I used a 10nF capacitor and an initial condition on v(n2) so that you could see it transition from 12V to GND.
 
  • #5
I'm sorry I have been trying to reply this post for hours but my internet just keeps dying. Thanks for your answers, they are appreciated much!

gnurf: I have not researched on how to add an internal resistance to a source but the resistor present in the circuit (between nodes n2 and GND) does the same role.

vk6kro: I would say you have nailed the problem! Because I had estimated a time constant for the circuit with 10 Farads, the time interval and time step I was taking were useless for a 10 fF capacitor, which ngspice was interpreting.

ngspice.com: I was trying to do a transient analysis, but the other simulation tips you provided may prove useful for me in the future or for some other thread visitor!

Thanks for your answers. We can consider this thread closed from now on.
 

Related to Ngspice Capacitor Simulation problem

What is Ngspice?

Ngspice is an open-source electronic circuit simulator software that allows users to simulate and analyze electronic circuits. It uses various models to accurately predict the behavior of circuits and can perform both DC and AC analysis.

How does Ngspice simulate capacitors?

Ngspice uses a mathematical model to simulate the behavior of capacitors. It takes into account the capacitance value, voltage, and current of the capacitor to accurately predict its behavior in a circuit. Users can specify the properties of the capacitor in their circuit to get accurate simulation results.

What are common problems when simulating capacitors with Ngspice?

One common problem when simulating capacitors with Ngspice is convergence issues. This occurs when the simulation is unable to reach a stable solution due to incorrect circuit connections or mismatched component values. Another problem is inaccurate results, which can be caused by incorrect modeling of the capacitor or incorrect input parameters.

How can I troubleshoot capacitor simulation problems with Ngspice?

To troubleshoot capacitor simulation problems with Ngspice, it is important to first check the circuit connections and make sure all components are correctly placed. Next, check the component values and make sure they are accurate. If the problem persists, try using different models for the capacitor or adjusting the simulation settings for better accuracy.

Can Ngspice simulate non-ideal capacitors?

Yes, Ngspice can simulate non-ideal capacitors by using more complex models that take into account factors such as leakage current, parasitic capacitance, and temperature effects. These models can provide more accurate results for circuits that use non-ideal capacitors.

Similar threads

Replies
4
Views
2K
Replies
24
Views
3K
  • Electrical Engineering
Replies
1
Views
1K
  • Electrical Engineering
Replies
1
Views
3K
  • Electrical Engineering
Replies
8
Views
3K
  • Electrical Engineering
Replies
12
Views
5K
  • Electrical Engineering
Replies
10
Views
9K
Replies
8
Views
3K
  • Electrical Engineering
Replies
4
Views
2K
  • Electrical Engineering
Replies
1
Views
2K
Back
Top