An adaptive digital controller for a unity power factor converter