Electronic – Trying to simulate a PWM model of a boost converter in gnucap

boostmodelingspice

There's a paper called "Simplified Analysis of PWM Converters Using Model of PWM Switch (part 1)" by Vatché Vorpérian which introduces a "PWM switch" to model the switch and diode in a switching voltage converter.

I'm following along happily while he derives its properties and then he uses the model to get DC characteristics for a boost converter. This is where I started struggling, so I thought I'd try to simulate the thing in SPICE (well, Gnucap) to see if I could spot what I was doing wrong. This didn't help much…

Here's a circuit diagram (which is correct, since it appears pretty much verbatim in his paper):
The circuit diagram

D is the duty ratio. Here is the netlist I was trying to use to simulate things:

* Boost converter with PWM model

.parameter D=0.6
.parameter vg=10

.subckt tx p1 p2 s1 s2 PARAM: N=10
FP p1 p2 VS {1/N}
ES s1 int1 p1 p2 {N}
VS s2 int1 DC 0
RLnk s2 p2 1M
.ends tx

Vg 1 0 DC {vg}
Rp 1 2 0.1
X1 2 3 4 3 tx N={D}
Vdummy 4 0 DC 0

RL 3 0 1k

.print dc v(1) v(2) v(3) i(RL) i(Rp) i(Vdummy)
.dc

The results are rather unexpected!

* Boost converter with PWM model 
#           v(1)       v(2)       v(3)       i(RL)      i(Rp)      i(Vdummy) 
 0.         10.        10.004    -15.006    -0.015006  -0.037514  -0.022508  

Can anyone spot something I've done wrong? In particular, the current seems to be flowing the wrong way, which seems pretty bizarre. I tried out the tx transformer subcircuit and convinced myself it worked, but I may have made a mistake.

Best Answer

I think the gain of Es should be 1/N, not N, to correctly model the N:1 "DC transformer". (The "reverse" current transfer ratio should be the same as the "forward" voltage transfer ratio.)

Also, although it doesn't matter in this case, in the SPICEs I've seen, your RLnk=1M would be a 1 milliohm resistor short from p2 to s2; a value of 1MEG would give 1 megohm. (Maybe your program uses a different convention?)