Principles of solar photovoltaic power generation