Jamie said:
Hi,
After filtering out a couple lines of profanity (cough Phil) you guys
have a nice informative conversation on PFC boost converters
Phil knows a lot about some things, and is often a useful source of
information. say something he either disagrees with or (even worse)
doesnt understand, and the inner bile spews forth. Just ignore it.
I am thinking of just driving the boost FET from a software controller,
using the method of constant dutycycle to give a power factor of 1, and
then a slow feedback loop like you say to adjust the constant dutycycle.
this method works best in DCM (boost inductor current goes to zero each
switching cycle)
What is a good method to use for the slow feedback loop? The UC3854
block diagram is pretty complex, so am not sure how to translate that
into a software PFC controller.
cheers,
Jamie
its not really too complex.
The output voltage error amp is basically a PI controller. The output of
which is a current setpoint, and for constant line & load, is constant.
In most PFC controllers, this current setpoint is multiplied by the
full-wave-rectified line voltage, which is proportional to |sin(wt)|
before being fed to the (pulse-by-pulse) current control loop. This
makes the current reference also follow the |sin(wt)| envelope, thus
ensuring unity PF.
however whilst Vrect is proportional to |sin(wt)| if you just used a
multiplier, then the current setpoint will vary in direct proportion to
the magnitude of the AC line voltage. This turns out to be exactly
wrong, as for constant load (= constant power) you want LESS current
when the voltage increases, not more.
So what PFC chips do is take 2 measurements of Vrect, one of which is
basically a peak detector. By using an A*B/C multiplier, you get:
A = Vea = output voltage error amp output
B = Vrect/k = (sqrt(2)*Vrms/k)*|sin(wt)|
C = peak(Vrect/k) = (sqrt(2)*Vrms/k)
thus multiplier output = Vea*|sin(wt)| regardless of AC line voltage.
its not strictly necessary to do this A*B/C - the output voltage
controller will eventually correct for it. but the multiplier sits
inside a feedback loop, and A*B/C keeps the multiplier gain constant,
thereby making life easier. if its not universal input, then the effects
arent too bad, but it just makes more work for the output voltage
control loop.
if you have a brain, then you can figure out |sin(wt)| yourself. but if
you run DCM and use fixed Ton, then you dont need to bother. I am
working on a PFC flyback right now that does this. I use a voltage mode
control chip (UC35705) to set Ton based on output load.
now there is a gotcha, with ANY PFC circuit. if Vin and Iin are in-phase
sinusoids, then Pin = 2*Pavg*sin^2(wt) - it varies sinusoidally between
0 and 2*Pavg. something, somewhere must filter this 100/120Hz power
qwaveform. that something is your boost cap, which therefore has
100/120Hz ripple. So your voltage control loop has to be SLOW, as it
cant actually regulate out the 100/120Hz ripple. 10-20Hz is a pretty
typical closed-loop bandwidth.
again, if you have a brain then you can PLL onto the ac line frequency,
and run Vout thru a 2*Fac notch filter. that allows you to have fairly
high BW voltage loop, but of course all the 100/120Hz ripple is still
there. there are other tricks for achieving the same, I'll leave those
as an exercise for the astute reader
HTH
Cheers
Terry