What is the working principle of microcontroller based power factor correction? Could you explain this method easily?