for a DCM PFC (boost or flyback), if the duty cycle is CONSTANT, you get:
Vin = Vpk*|sin(wt)|
Vin = LpfcdI/dt
DCM so dI = Ipk
dt = Ton
so Ipk = (Vpk*Ton/Lpfc)*|sin(wt)|
voila, the peak current is directly proportional to |sin(wt)|
and the duty cycle doesnt have to vary AT ALL.
a slow feedback loop then varies Ton as a function of output load, to
maintain regulation
The constant duty cycle discontinuous mode only nears unity power
factor at critical conduction, which requires a variable operating
frequency. There are fairly simple dedicated controllers that can do
this by detecting the zero current condition in the flyback period.
This isn't something that a fixed frequency controller or a PIC would
be inherently good at.
The error introduced with fixed frequency might not be large enough to
prevent it's use over a fixed voltage range or unvarying load
conditons.
There are also correction factors that can be introduced in digital
control to minimize the error, while maintaining a fixed frequency.
The ripple in critical conduction oor discontinuous mode has
implications on the size and cost of input filtering, and
semiconductor sizing, as well.
RL