Simulation of RLC circuit

Hi

To continue this discussion about simulation of incremental difference equations, I was wondering how you could add a power source to the code that John Larkin came up with. I have been experimenting with this and I found that merely adding the voltage like

//FOR T = 0 TO 1 STEP DT // IL = IL + (Vin-Vout) * DT / L // IR = Vout / R // IC = IL - IR // Vout = Vout + IC * DT / C +myVoltage //NEXT

causes problems because the voltage accumulates in the Vout variable and the voltage quickly goes very large. Do I need to subtract the previous voltage before I add the new voltage like:

//FOR T = 0 TO 1 STEP DT // IL = IL + (Vin-Vout) * DT / L // IR = Vout / R // IC = IL - IR // Vout = Vout + IC * DT / C +myVoltage-lastvoltage // lastvoltage = myVoltage //NEXT

Would this be remotely accurate?

Here is the circuit I am looking at:

[Input]--[coil]---|-------|----[output]--| | | | | | [cap] [resistor] [voltage] | | | | |---------|-------|--------------| | [ground]

Scott

Scott Ronald wrote: > John Larkin wrote: >> On Thu, 03 Jan 2008 21:33:29 -0800, John Larkin >> wrote: >>

>> On Fri, 04 Jan 2008 05:22:29 GMT, Scott Ronald >>> wrote: >>> >>>> John Larkin wrote: >>>>> On Fri, 04 Jan 2008 03:16:46 GMT, Scott Ronald >>>>> wrote: >>>>> >>>>>> Hi >>>>>> >>>>>> Does anyone know of some code or a program that I can use to simulate a really simple RLC circuit (2 network). I know that I can use one of the freely available programs to do this, but I want to be able change the input voltage arbitrarily with my own code using feedback from the output of my circuit. >>>>>> >>>>>> It seems like spice variants cannot do this, and I do not know how to create the differential equations to write my own code. >>>>>> >>>>> What r-l-c topology did you have in mind? It's not hard to program the >>>>> incremental difference equations. >>>>> >>>>> But Spice program can do most anything. >>>>> >>>>> John >>>>> >>>> I need to do something like this: >>>> >>>> [Input]-|-[coil]-----|-----[output] >>>> | | | >>>> | [cap] | >>>> | | | >>>> -------|-------------- >>>> | >>>> [ground] >>>> >>>> I hope this is readable. >>>> >>>> >>> No resistor? >>> >>> OK, assume a time step DT. >>> >>> >> >> >> Oops, make that first line >> >>> FOR T = 0 TO 1 STEP DT >>> >>> IL = IL + (Vin-Vout) * DT / L >>> >>> Vout = Vout + IL * DT / C >>> >>> NEXT >>> >>> >> > Hi > > Wow that is great, is there a textbook somewhere that covers this technique? > > How would it change if I add a resistor? > > > >>> [Input]-|-[coil]-----|-------|----[output] > >>> | | | > >>> | [cap] [resistor] > >>> | | | > >>> -------|-------------- > >>> | > >>> [ground] >
Reply to
Scott Ronald
Loading thread data ...

Assuming that [output] is a high-impedance gadget, the presence of [voltage] does not change the voltage waveform at Vout, which is what we named the node at the top of [resistor].

So if we clarify the names and polarities...

the code becomes

FOR T = 0 TO 1 STEP DT IL = IL + (Vin-Vout) * DT / L IR = Vout / R IC = IL - IR Vout = Vout + IC * DT / C Output = Vout - Voltage NEXT

John

Reply to
John Larkin

Acutally I need the [output] part to be low impedance, so that it will affect the vout node:

Vout Vin-----|-[coil]--|-------|--------------| | | | | + | [cap] [resistor] [Voltage] | | | | - |---------|-------|--------------| | [ground]

Scott

John Lark> >

Reply to
Scott Ronald

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.