Solar energy is an alternative and renewable power source, and has been proposed by many as a great source of energy. Conversion of solar energy into electrical power is a complex process, partly due to the fact that changing weather conditions greatly impact the performance of solar panels. Output power depends on input power from the sun, and DC-DC buck circuits can often introduce inefficiencies and losses in the conversion process. Maintaining optimal, constant power delivery of solar power energy requires careful monitoring and adjustment of voltages and current to a load.
From a macroscopic point of view, our project will take the varying power that from the solar panel and output a constant voltage of 13.2V at constant power. Maximum Power Point Tracking, MPPT, will be used to determine the maximum amount of power with the given sunlight conditions. The DC-DC conversion will be incorporated as a synchronous converter, using switching MOSFETs in conjunction with a Schottky Diode to minimize inefficiencies and losses during conversion. An Arduino microcontroller will be monitoring current and voltage sensors at the output of the synchronous DC-DC converter to ensure the delivery of 40W at 12V. Voltage and current sensors will be tied to a control system with feedback, creating an error signal to vary the duty cycle of the PWM signal to the MOSFETs.
Methodology & Design Approach:
MPPT : DC-DC boost converter used to regulate and maximize solar panel output power.
DC-DC Buck : Synchronous buck converter controlled by PWM from the Arduino UNO to
P-MOS and N-MOS transistor-switches needed to control inductor and capacitor charge and discharge to stabilize the desired output voltage.
Charge Controller: Output-voltage based MOSFET switches used to control the charging state between solar power, battery power, and battery charging. MOSFET switch states controlled via Arduino UNO digital output pins.
Feedback Control : Creates voltage feedback error signal to determine PWM duty cycle necessary to achieve desired DC-DC buck output voltage.
Maximum Power Point Tracking (MPPT):
The current flow is determined via the battery voltage read at the output. The following is the state table describing the switching states:
Voltage Feedback Control:
The voltage feedback control loop is software implemented in the Arduino Uno:
The oscilloscope screenshots above illustrate different duty cycles at the gates of the MOSFETs for differing values of the desired buck output voltage. The higher duty cycles translate to longer durations of MOSFET conduction.
The Matlab plot above compares the buck converter output to desired output voltages at varying input values. An input voltage of 20 V provides near ideal results.
The project test setup is shown above. The input of 20V to the buck converter produced a DC output voltage of 13.52 V. Compared to a desired output voltage of 13.2 V, a percent error of 2.42% was achieved.
Overall, with an output error of 2.42% it can be concluded that the results from the system were fairly acceptable. By using a Low Pass Filter at the output of the DC-DC Buck Converter any unnecessary frequencies that contributed to any noise and other inefficiencies were diminished. By using the MPPT at the input of the system, faster charge times can be seen as a result of maximizing the output power of the solar panel during peak hours and diminished battery voltage levels. However, for a more ideal power station capable of outputting the desired 40W, a larger solar panel is required as well as faster switching speeds from a the microcontroller.