I would like to use a current generator to pull down the voltage to zero (there is a voltage generator with a series resistor). The current generator models the output of a specific circuit, so it is a constraint. In order to model the reality, I would like to use the current generator as "active load", because in this case it cannot pull the voltage below 0V. The problem is that I have experienced a soft saturation: as the voltage across the current generator achieves 1V, the current begins to degrade. In my opinion, the current should be the prescribed value as far as the voltage across the current generator is above 0V, so the current generator remains as a load.

A simulation schematic and a simulation result is also attached. In the simulation, the current of the current generator ramps up linearly, and I would expect that the voltage on the current generator also decreases linearly. It is true as far as the voltage decreases to 1V, but after this, the current begins to degrade.

I thing that the background of this soft saturation is that LTSpice and also other simulators don't like hard nonlinearities because of convergence problems, but in the case of current generator I haven't found any such parameters which influence the curvature of saturation.

R1 supply U_c 10k I1 U_c 0 PWL(0 0 1 1m) load V1 supply 0 5 .tran 1 uic

LTSpice imulation schematic and result

Longer simulation


If you look in the manual at LTspice > Circuit Elements > I. Current Source you'll see this first passage:

This circuit element sources a constant current between nodes n+ and n-. If the source is flagged as a load, the source is forced to be dissipative, that is, the current goes to zero if the voltage between nodes n+ and n- goes to zero or a negative value. The purpose of this option is to model a current load on a power supply that doesn't draw current if the output voltage is zero.

(emphasis mine). If you simulate the circuit without the load flag, you'll see that the linear ramp current causes the voltage to drop below zero. This means that around that point, LTspice will decide that the voltage across the load (the current source) drops to zero and that cannot happen, so it will try to modify the ramp in such a way that the voltage never reaches zero, or barely makes it, which would mean the end of the road.

If you increase the simulation to 10s. you'll see something like an asymptote, but not reaching zero. That's, most probably, the internal, unseen limit that LTspice imposes in order to avoid going below zero.

  • \$\begingroup\$ Where do you set the load flag? \$\endgroup\$ – winny Feb 19 '19 at 7:25
  • \$\begingroup\$ Well, I agree with this answer, and I also think that some convergence issue is beyond this problem. I made a longer simulation, and it is interesting that the voltage decrease stops at approximately 0.5V. I'm wondering whether this limit can be changed or it is an unchangeable internal feature as you have written. I have also seen such limits for example in the case of diodes when the series resistance and forward opening voltage can be given, and the transition between the closing and conducting region is soft. The "softness" in that case can be changed by parameters. \$\endgroup\$ – Gyuri Feb 19 '19 at 7:28
  • \$\begingroup\$ @winny Either check it in the settings (somewhere on the bottom right, advanced settings), or simply add it near its value, e.g. PWL(0 0 1 1) load. \$\endgroup\$ – a concerned citizen Feb 19 '19 at 9:58
  • \$\begingroup\$ @Gyuri That's why I said "most probably", because I don't know how LTspice works internally, but I can make some guesses. For example, if you set the voltage source to 10V, the limit is also 0.5V, if you keep it 5V and set the current to maximum 0.5mA, the limit is also 0.5V. But if you set the resistor to 100k and the max current to 5m, then the situation changes. In fact, I have seen cases where convergence failed due to strange settings where LTspice tried hard to accomodate. GIGO at its best. \$\endgroup\$ – a concerned citizen Feb 19 '19 at 10:01
  • \$\begingroup\$ @Gyuri Also, if you think this is the answer that was helpful to you, mark it down so that future searches from people with similar problems can find it easier. \$\endgroup\$ – a concerned citizen Feb 19 '19 at 10:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.