# Simulation of RLC circuit

• posted

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] >
• posted

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

• posted

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> >

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.