Electronics-Related.com
Forums

Relaxation oscillators and SPICE

Started by Piotr Wyderski January 1, 2015
On Thu, 01 Jan 2015 11:51:56 -0800, John Larkin
<jlarkin@highlandtechnology.com> wrote:

>On Thu, 01 Jan 2015 12:45:40 -0700, Jim Thompson ><To-Email-Use-The-Envelope-Icon@On-My-Web-Site.com> wrote: > >>On Thu, 01 Jan 2015 20:31:09 +0100, Piotr Wyderski >><peter.pan@neverland.mil> wrote: >> >>>Jim Thompson wrote: >>>> (2) Oscillators, in any form of Spice, _often_ will not start on their >>>> own. >>> >>>And what do you do then? >>> >>> Best regards, Piotr >> >>You didn't read the last line of my post... >> >>"Try .IC of capacitor as zero volts." >> >>This _should_ be settable in the capacitor part attributes, if Spice >>conventions are followed by LTspice (likely). >> >>If not, add this "Spice directive"... >> >> .IC V(Node_Name_At_Top_Of_Cap)=0 >> >>Some forms of oscillators (LC is one) require a "kickstart", a current >>pulse into the tank. >> >>(This is because, unlike in the real world, transient Spice >>simulations have no noise to start the oscillation.) >> >> ...Jim Thompson > >In LT Spice, just check "skip initial operating point solution" in the >transient analysis setup window. I do that a lot, for power supplies >and such where powerup matters. > >The other thing to do is use a pulse generator for the power supply, >and bring it up after some small time delay, optionally with some >realistic rise time.
That was our standard solution to convergence and startup problems forty years ago. I still regularly use the trick, without even trying without.
In article <m84732$6hc$1@node2.news.atman.pl>, peter.pan@neverland.mil 
says...
> > Tauno Voipio wrote: > > > The 220k timing resistor is too small, keeping the PUT continuosly on. > > The following thing oscillates. > > Thank you all very much, in both cases the non-oscillation > seems to be caused by too low resistor value. In the case > of the PUT-based circuit I have not enough experience to > judge whether Spice is right or wrong, but I remember well > my experiments performed over a decade ago with a *real* neon > oscillator. It used to work with pretty any reasonable resistor. > The simulation provided by John does not oscillate with 470k > and with 560k it oscillates *exactly twice*. With 680k it works > well. I must confess that my excitement about Spice has just > entered a colder period... :-/ > > Once again, thank you for your help! > > Best regards, Piotr
Here is your example with an LED, I added a R to the base of the NPN and a R in series with the LED to not over do it. You will also notice the Trans set point, it shows "Startup". Version 4 SHEET 1 880 680 WIRE 304 -32 176 -32 WIRE 448 -32 304 -32 WIRE 176 -16 176 -32 WIRE 448 0 448 -32 WIRE 304 32 304 -32 WIRE 176 80 176 64 WIRE 176 80 16 80 WIRE 448 96 448 80 WIRE 304 128 304 112 WIRE 304 128 240 128 WIRE 304 144 304 128 WIRE 16 160 16 80 WIRE 240 192 240 128 WIRE 176 240 176 176 WIRE 336 288 304 288 WIRE 176 304 176 240 WIRE 240 304 240 288 WIRE 304 304 304 288 WIRE 304 304 240 304 WIRE 208 384 176 384 WIRE 240 384 208 384 WIRE 336 384 336 368 WIRE 336 384 304 384 WIRE 208 416 208 384 FLAG 448 96 0 FLAG 304 224 0 FLAG 208 416 0 FLAG 16 224 0 SYMBOL pnp 240 176 R180 SYMATTR InstName Q1 SYMATTR Value 2N3906 SYMBOL npn 176 192 R0 SYMATTR InstName Q2 SYMATTR Value 2N3904 SYMBOL res 288 128 R0 SYMATTR InstName R1 SYMATTR Value 3.9k SYMBOL res 288 16 R0 SYMATTR InstName R2 SYMATTR Value 3.9k SYMBOL res 160 -32 R0 SYMATTR InstName R3 SYMATTR Value 220k SYMBOL voltage 448 -16 R0 WINDOW 123 0 0 Left 2 WINDOW 39 0 0 Left 2 SYMATTR InstName V1 SYMATTR Value 9 SYMBOL res 160 288 R0 WINDOW 0 -39 22 Left 2 WINDOW 3 -54 50 Left 2 SYMATTR InstName R4 SYMATTR Value 220k SYMBOL LED 304 368 R90 WINDOW 0 0 32 VBottom 2 WINDOW 3 72 32 VTop 2 SYMATTR InstName D1 SYMATTR Value NSPW500BS SYMATTR Description Diode SYMATTR Type diode SYMBOL cap 0 160 R0 SYMATTR InstName C1 SYMATTR Value 150n SYMBOL res 320 272 R0 SYMATTR InstName R5 SYMATTR Value 50 TEXT -112 -24 Left 2 !.tran 1 startup TEXT 352 288 Left 2 ;Prevent detonation
On 2.1.15 16:43, Maynard A. Philbrook Jr. wrote:
> In article <m84732$6hc$1@node2.news.atman.pl>, peter.pan@neverland.mil > says... >> >> Tauno Voipio wrote: >> >>> The 220k timing resistor is too small, keeping the PUT continuosly on. >>> The following thing oscillates. >> >> Thank you all very much, in both cases the non-oscillation >> seems to be caused by too low resistor value. In the case >> of the PUT-based circuit I have not enough experience to >> judge whether Spice is right or wrong, but I remember well >> my experiments performed over a decade ago with a *real* neon >> oscillator. It used to work with pretty any reasonable resistor. >> The simulation provided by John does not oscillate with 470k >> and with 560k it oscillates *exactly twice*. With 680k it works >> well. I must confess that my excitement about Spice has just >> entered a colder period... :-/ >> >> Once again, thank you for your help! >> >> Best regards, Piotr > Here is your example with an LED, I added a R to the base of the > NPN and a R in series with the LED to not over do it. > You will also notice the Trans set point, it shows "Startup".
You forgot to correct the time constant. The oscillation frequency was spoiled to 12 ms/cycle, due to changed trip voltages. The frequency cannot be sensed as blinking. -- -TV
On Thursday, January 1, 2015 7:36:48 AM UTC-5, Piotr Wyderski wrote:
> I am unable to simulate the followingg PUT-based relaxation oscillator > in the most recent LTspice (with BC547B and BC557B): > > https://upload.wikimedia.org/wikipedia/commons/9/9f/PUT_LED_blinker.png > > Nothing wants to oscillate. > > Looking for a bug I have also tried the simplest possible neon lamp > oscillator (with Vstrike=100V, Vhold=50V, R=220k, C=1u), but there are > no scillations either: the voltage on the capacitor saturates at 50.25V. > > What magic should I apply to make such circuits work as expected? > > Best regards, Piotr
As Jim T. said, I sometimes have to "jump start" oscillators in LTspice. Hit them with a little pulse. George H.
In article <m86ihm$vbm$1@dont-email.me>, tauno.voipio@notused.fi.invalid 
says...
> > On 2.1.15 16:43, Maynard A. Philbrook Jr. wrote: > > In article <m84732$6hc$1@node2.news.atman.pl>, peter.pan@neverland.mil > > says... > >> > >> Tauno Voipio wrote: > >> > >>> The 220k timing resistor is too small, keeping the PUT continuosly on. > >>> The following thing oscillates. > >> > >> Thank you all very much, in both cases the non-oscillation > >> seems to be caused by too low resistor value. In the case > >> of the PUT-based circuit I have not enough experience to > >> judge whether Spice is right or wrong, but I remember well > >> my experiments performed over a decade ago with a *real* neon > >> oscillator. It used to work with pretty any reasonable resistor. > >> The simulation provided by John does not oscillate with 470k > >> and with 560k it oscillates *exactly twice*. With 680k it works > >> well. I must confess that my excitement about Spice has just > >> entered a colder period... :-/ > >> > >> Once again, thank you for your help! > >> > >> Best regards, Piotr > > Here is your example with an LED, I added a R to the base of the > > NPN and a R in series with the LED to not over do it. > > You will also notice the Trans set point, it shows "Startup". > > > You forgot to correct the time constant. The oscillation frequency > was spoiled to 12 ms/cycle, due to changed trip voltages. The > frequency cannot be sensed as blinking.
Sorry! Jamie
On Thursday, January 1, 2015 7:36:48 AM UTC-5, Piotr Wyderski wrote:
> I am unable to simulate the followingg PUT-based relaxation oscillator > in the most recent LTspice (with BC547B and BC557B): > > https://upload.wikimedia.org/wikipedia/commons/9/9f/PUT_LED_blinker.png > > Nothing wants to oscillate. > > Looking for a bug I have also tried the simplest possible neon lamp > oscillator (with Vstrike=100V, Vhold=50V, R=220k, C=1u), but there are > no scillations either: the voltage on the capacitor saturates at 50.25V. > > What magic should I apply to make such circuits work as expected? > > Best regards, Piotr
One trick to remember while simulating oscillators with SPICE is to provide initial asymmetry conditions. That is use the ".IC" directive in SPICE to set the initial voltages on the nodes to some perturbed vales e.g., V(1)=0.0 V(2)=5.0 ... etc., etc., Hope that helps.