I am looking for the general approach (technique/strategy, componentry used, etc.) to implement what I am calling a power supply router, although perhaps there is a more precise/accurate term for it.
By "power supply router" (PSR), what I mean is this:
- A device, say some PCB (doesn't really matter) will connect to this PSR and expect it to be its power supply, but...
- The PSR itself is not an actual power supply; it is simply a circuit/component/thing that uses a simple routing algorithm to draw power from one of several actual power supplies at any given time
- In other words, the router will strive to always provide power (if the device is toggled to be "on" via power button, etc.) from one of many power supplies, and can switch the actual power supply it is using at any point in time (only during operation of course) according to this algorithm
And a diagram for illustration:
In that diagram Power Supply #1 (PS1), #2, #3, #4 and #n are the actual power supplies (batteries, solar panels, whatever). The device connects to the router, expecting it to supply it with power, but the router will only be connected to one PS at any given time.
The algorithm I am looking to implement is very simple:
- For all the power supplies in the system, find the first supply that isn't "nearly dead" and set it as the current supply
- Once the current supply is nearly dead, obtain the next non-nearly dead supply and set that as the current supply
- Only when all power supplies are dead/nerly dead is the system officially out of power
I'm sure the "nearly dead" part requires better explanation. Here, the router simply needs to be able to determine whether the given supply is almost dead, perhaps based on the amount of volts or amps its currently outputting, or based on some gas gauging component like what cell phones use to show you that your smart phone is at "2%".
I'm wondering if this type of "routing multiple power supplies" need is a well known pattern in EE, with well known solutions? Either way, what are my options here for implementing such a router & routing algorithm as a circuit? What components could be used?