How do you manage power on a battery-less, solar-powered autonomous (ro-)boat ?
Well, the power management part of the prototype is done and working for Almabraxas 3-1, so I guess I’ve finally landed on the strategy.
The first point is that there is no battery in the Almabraxas roboats. If there is enough sun, they move. If there isn’t, they don’t. There are several reasons for that:
- If you want to cross an Ocean, with a 200W solar panel boat, this is a several months journey, with potentially hundreds or even thousands of charge-discharge cycles. Even though batteries have made significant progress in term of durability and number of charge-discharge cycles, I didn’t want to bet too much on it.
- By eliminating the battery, I felt I eliminated a possible point of failure (however, this point is amenable to discussion, see below).
- By putting the electricity into a battery, and then taking it out of the battery for propulsion, we lose 10-15% of energy in the process.
- I just wanted to try that way. I like the idea of a robot that has to sleep at night.
MPPT
We get more juice from our solar panels by using an MPPT algorithm, that is basically that we adjust the power drained from the solar panel to the available power. If we try to extract more power from the panel than is available, the solar panel reacts by lowering its voltage (part of the photovoltaic effect), thus we end with less power that is actually available.
In a typical home photovoltaic installation, you get an MPPT module that will do this kind of processing, by delivering the requested power on one hand, and storing the excess energy in a battery.
However, in the case of the Almabraxas boat, there’s no battery, by design. Thus, the system has to adapt the drawn power to the available power at any time, actually 1 hundreds times a second (100 Hz) in the case of Almabraxas.
There are two power consumers on board, the computer (including sensors and telecommunication) and the thrusters. The computer doesn’t consume much power, around 5W, and we have little control over its consumption if we want to keep it running. Thus, the power consumption control is made by adjusting the power requested by the thrusters. This control is performed by the on-board computer (in a task called the power manager).
As a matter of clear discussion, the computer board together with its various sensors is called the ABOC (Almabraxas Boat On-board Computer).
Of course, to run the power manager task, ABOC needs to be up and running itself.
UVLO
Since at very low voltage, the MCU is not working and thus cannot drive the power consumption, the board is kept off at low voltage by a Schmitt trigger built from a few op amps.
Need for a reserve (supercapacitor)
I started with the idea of having no reserve at all, but it became very quickly clear that this wasn’t a reasonable idea: the processor is at risk to be in a brown state when there’s just enough energy to power it, even with a UVLO, leading to an unpredictable behavior. So there are a few (9 to be precise, but this is not very relevant) supercapacitors mounted in series to resist to 24V, providing about 10F of capacity. When there’s no sun and no power, this gives some time to the processor
- to wait some time until the sun may come back
- to put things in order (writing log to the flash memory ans putting everything in a low power state for example) while there’s still some juice.
The cut-off voltage for the motor is set to ~11.5V measured by the MCU. The cut-off power for the processor is set to 5.7V, controlled by a Schmitt trigger. Given the consumption of the main board (the “ABOC”), this gives at least 400s of autonomy when power goes down. During that time, the processor does nothing except waiting for the power to come back. All systems (radio, GPS, log, etc…) are put in a sleep state.
During the power-up stage, the hysteresis of the Schmitt trigger is such that the MCU is on when voltage is greater that ~11V. Thus, when powering up (with MCU off), the capacitor are charged while the voltage is below 11V, giving the backup time until 5.7V when the MCU is turned on.
All voltage measurement are taken at the output of the PV diode.
Starting only when enough power is available
Not disturbing the MPPT with the capacitors bank
Difficulty with the Schmitt trigger
(Using voltage comparators)