Skip to content

Commit ac98d9f

Browse files
committed
Add power manager documentation for the Martyoshka algorithm
This is still used for PV inverters and EV chargers. Signed-off-by: Sahas Subramanian <[email protected]>
1 parent 81ec5c2 commit ac98d9f

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

src/frequenz/sdk/microgrid/__init__.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,53 @@
304304
| -1 | -60 kW .. 0 kW | -40 kW .. -10 kW | -10 kW | -10 kW | 50 kW |
305305
| | | | | Target Power | 50 kW |
306306
307+
### Working with other actors to control PV inverters and EV chargers
308+
309+
The power manager reconciles power proposals for PV inverters and EV chargers
310+
similarly to batteries, but with one key difference:
311+
312+
There is no shifting of operating point between actors, and the powers are not
313+
added together.
314+
315+
Higher priority actors can strictly limit the bounds available to lower priority
316+
actors, but the power proposals by lower priority actors take precedence, as
317+
long as they are within the bounds set by higher priority actors.
318+
319+
This is because PV inverters can only produce power (negative power according to
320+
the PSC), and EV chargers can only consume power (positive power according to
321+
the PSC), and shifting bounds would make ranges available to actors that a PV
322+
inverter or EV charger can't operate in.
323+
324+
*A PV pool Example*
325+
326+
| Actor | Priority | Available Bounds | Requested Bounds | Requested Power | Adjusted Power |
327+
|------:|---------:|-----------------:|-----------------:|----------------:|---------------:|
328+
| A | 4 | -100kW .. 0W | -90kW .. 0kW | -20kW | -20kW |
329+
| B | 3 | -90kW .. 0kW | -75kW .. -20kW | -50kW | -50kW |
330+
| C | 2 | -75kW .. -20kW | None | -100kW | -75kW |
331+
| D | 1 | -75kW .. -20kW | -60kW .. -60kW | -60kW | -60kW |
332+
| E | 0 | -60kW .. -60kW | None | -20kW | -60kW |
333+
| | | | | Final Power | -60kW |
334+
335+
1. Actor A with the highest priority has access to the entire range of the PV
336+
inverters. In this case `-100kW .. 0W`.
337+
338+
2. It wants to limit production to a maximum of `-90kW`, so it sets bounds of
339+
`-90kW .. 0W`. It also proposes a power of `-20kW`. If there are no lower
340+
priority actors, that power will get set to the inverters. But here, it gets
341+
*overridden* by lower priority actors.
342+
343+
3. Actor B limits the bounds further, and proposes its preferred power.
344+
345+
4. Actor C proposes `-100kW`, which is outside of what Actor B has allowed, so it
346+
gets clamped to `-75kW`, which is the closest Actor C can get to its requested
347+
power in its available range of `-75kW .. -20kW`.
348+
349+
5. Actor D wants exactly `-60kW`, so it clamps the bounds to `-60kW .. -60kW`, and
350+
sets `-60kW`, making sure Actor E or other lower priority actors can't change
351+
the power further.
352+
353+
307354
## Withdrawing power proposals
308355
309356
An actor can withdraw its power proposal by calling `propose_power` with `None`

0 commit comments

Comments
 (0)