Hi vertical farmers,
In the previous post we presented our Maximum Power Point Tracking (MPPT) solar module converter hardware. We described the circuitry, the measured variables and the sensors used.
On this post we will go deeper into the algorithmic approach to extract the maximum available power from the solar panel keeping an eye on the battery charge condition to avoid stress factors that can reduce battery lifetime and lead to premature battery failure.
MPPT Topology
We are using a buck converter controlled by a duty cycle generated by Silicon Labs EFM32ZG board running the MPPT algorithm. This topology presents a linear voltage transfer function with the duty cycle. In this way we can modify the solar panel operating voltage to maximize its power output.
The maximum available power extractable from the solar panel depends mainly on the load, the irradiance levels and the temperature. The MPPT relates essentially with the operating load conditions.
The Algorithm
There are several algorithms available ranging in complexity and required measurement variables. We will use one of the most popular and simple algorithms for the MPPT for now, the Perturb and Observe (P&O). It consists on introducing a small perturbation on the panel operating voltage by changing the converter duty cycle and checking the result on instantaneous power. If the power increases, the sweep is maintained on the duty cycle otherwise a perturbation on the opposite direction is introduced. This is a continuous process and even when the maximum power point (MPP) is reached the algorithm will oscillate around the correct value wasting a small amount of energy. This is a small disadvantage for a simple and robust algorithm compared with much more complex algorithms allowing a marginal increase on the extractable power. Since we are never using full power to charge the battery due to the allowed current charging rates this becomes a good trade-off.
To implement the P&O algorithm only the solar voltage and the solar current are required to be measured. Nevertheless because we need to take care of the battery charging conditions we need to monitor as well battery voltage and current.
This means we measure all the required variables to run more complex MPPT algorithms if required. At the moment this is out of the scope for this competition.
Figure 1. Perturb and observe (P&O) algorithm flowchart.
Our Battery
Our battery is composed by four lithium-ion cells of 10 Ah connected in series to reach an output voltage of about 13 V. The cell specifications are shown on table 1.
Those cells withstand fast charge current rates of 2 C (20 A) meaning they would go from no charge to full charge in half hour. But we will adopt the recommended charge rate of 1 C (10 A) to avoid some temperature stress on the cells and extend their life cycle. In this way the maximum instantaneous charge power allowed will be approximately 130 W. So our algorithm should protect the batteries from charging at higher current ratios and from overcharging when full charge is reached.
Table 1. Cell Specification
Implementation
This was certainly the most challenging part till so far. We decided to build a prototype for debugging functionality prior to invest on making and assembling a more definitive PCB. We were struggling with all kind of unexpected problems like intermittent failures, bad readings or circuit oscillations. It took a good dose of patience and a lot of improvements related wiring, reducing current loops, filtering oscillations, MOSFET driving optimizing until we could measure reliably all the data over the solar panel full voltage range. And this is still ongoing.
We will make a break on this topic as it is more than advisable to port the design to the designed PCB. In this way we will take the time to build and assemble a new MPPT prototype based on the designed PCB.
Nevertheless we would like to share some of the achievements till so far.
Data Logging
We were able to log the solar panel voltage and current as well as the charge battery voltage and current and the control signal (PWM).
We used the EFM32ZG virtual COM port and a serial terminal to read the data. An example of the logged data is shown on the following image:
Figure 2. Log file of solar panel voltage, current and power named Svolt, Scurr and Spower respectively.
The collected data is plotted on Figure 3.
Graphs
Figure 3. MPPT plots.
The solar panel with a dimension of 992 x 1968 cm was under direct sunlight for more than a minute. After that, a strip of 15 x 992 cm was covered with an opaque material for about 15 seconds. The covered area was then doubled during the next 20 seconds (Partial Shading 2).
From Figure 3 we can conclude the following:
- The algorithm initially takes a few seconds before reach the MPPT for the desired charging voltage. The plotted battery voltage is actually the voltage on the anode of a diode placed between the circuit and the battery. Therefore, the voltage is decoupled from the battery voltage when the output voltage of the MPPT is below the charging voltage.
- The circuit respects the maximum charge voltage of 15 V. This value is an input parameter to the MPPT.
- During Partial Shading 1 and 2 the value of the converter duty cycle (PWM) is adjusted to control the output voltage being able to charge the battery. During a strong shading the panel voltage was too low to charge the battery. The duty cycle reaches 100% during this moment and the output voltage is almost equal to the solar panel voltage.
As always if you have any questions or comments please feel free to comment this post.
Thanks for following and keep connected!