The mainframe/software will be a central node in the CAN network for power management
We currently receive battery voltage and current data from CAN
We will define a CAN command structure to tell ELEC's devices to enter a low power mode
(maybe) publish to a ROS topic telling software to enter a low power mode
Basically a mode that lowers the frequency of operations
May not be worth it
Do not just define a static threshold value for switching to low power mode and back, as it can lead to frequent flip-flopping between states.
For example, if we set 20% as a static threshold, and drop below 20%:
We enter low power mode
Power consumption goes down
It's now immediately possible for the batteries to charge faster than they discharge
We charge above 20% and exit low power mode
Power consumption increases
It's immediately possible for batteries to discharge faster than they charge
We drop below 20% and repeat
To prevent this fluctuation, it's necessary to have some form of hysteresis/delay after switching states to prevent us from switching back after a short period of time. Potential solutions:
Temporarily raise the switching threshold after dropping to low power mode such that we need to charge to a higher power level before switching out of low power mode, and restore the original threshold after exiting low power mode
Have a set time delay after switching into lower power mode before we can switch back out. Not sure if the inverse is a good idea or not.
Purpose
Conserve power when batteries are low on charge.
Description
Do not just define a static threshold value for switching to low power mode and back, as it can lead to frequent flip-flopping between states. For example, if we set 20% as a static threshold, and drop below 20%:
Resources