Repository navigation
Commit cd5282e
authored
Add a steam boiler pool (#1429)
Steam boilers are controllable electrical loads the SDK could not
monitor or
manage. This adds a steam boiler pool with power readings and power
control,
following the structure of the EV charger and PV pools.
## Changes
- New public API: `microgrid.new_steam_boiler_pool()` returning a
`SteamBoilerPool` with `power`, `power_status`, and a consumption-only
`propose_power` (negative power is rejected).
- `SteamBoilerData` component data type and data sourcing support.
- Power manager wiring using the plain matryoshka algorithm, with
`DefaultPower.ZERO` when no actor is proposing.
- `SteamBoilerManager` splits the target power equally across the
working
boilers, keeping every allocation inside the boiler's inclusion bounds:
a
share below a boiler's minimum operating power is raised to the minimum,
or
the boiler is kept off. Like the PV manager, it subtracts the measured
draw
of unreachable boilers from the target.
- `SteamBoilerStatusTracker` for per-boiler health, mirroring the PV
tracker.
## Worth a look
- The single-pass allocation reports power as excess when a high-minimum
boiler can't be afforded instead of topping up earlier boilers
(`test_unaffordable_minimum_strands_excess` pins this).
- With no usable boilers a request is dropped with only an error log —
the
same behavior as the PV and EV managers; a follow-up could make all
three
send an `Error` result the way the battery manager does.28 files changed
Lines changed: 2562 additions & 9 deletions
File tree
- src/frequenz/sdk
- microgrid
- _data_sourcing
- _power_distributing
- _component_managers
- _steam_boiler_manager
- _component_status
- _power_managing
- timeseries/steam_boiler_pool
- tests
- microgrid
- power_distributing
- _component_status
- timeseries
- _steam_boiler_pool
- utils
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
138 | 138 | | |
139 | 139 | | |
140 | 140 | | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
141 | 156 | | |
142 | 157 | | |
143 | 158 | | |
144 | | - | |
| 159 | + | |
145 | 160 | | |
146 | 161 | | |
147 | 162 | | |
148 | 163 | | |
| 164 | + | |
149 | 165 | | |
150 | 166 | | |
151 | 167 | | |
| |||
366 | 382 | | |
367 | 383 | | |
368 | 384 | | |
| 385 | + | |
369 | 386 | | |
370 | 387 | | |
371 | 388 | | |
| |||
382 | 399 | | |
383 | 400 | | |
384 | 401 | | |
| 402 | + | |
385 | 403 | | |
386 | 404 | | |
387 | 405 | | |
| |||
442 | 460 | | |
443 | 461 | | |
444 | 462 | | |
| 463 | + | |
445 | 464 | | |
446 | 465 | | |
447 | 466 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
23 | 28 | | |
24 | 29 | | |
25 | 30 | | |
| |||
52 | 57 | | |
53 | 58 | | |
54 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
55 | 64 | | |
56 | 65 | | |
57 | 66 | | |
| |||
131 | 140 | | |
132 | 141 | | |
133 | 142 | | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
134 | 150 | | |
135 | 151 | | |
136 | 152 | | |
| |||
145 | 161 | | |
146 | 162 | | |
147 | 163 | | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
148 | 167 | | |
149 | 168 | | |
150 | 169 | | |
| |||
476 | 495 | | |
477 | 496 | | |
478 | 497 | | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
| 523 | + | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
| 529 | + | |
| 530 | + | |
| 531 | + | |
| 532 | + | |
| 533 | + | |
| 534 | + | |
| 535 | + | |
| 536 | + | |
| 537 | + | |
| 538 | + | |
| 539 | + | |
| 540 | + | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
| 574 | + | |
479 | 575 | | |
480 | 576 | | |
481 | 577 | | |
| |||
532 | 628 | | |
533 | 629 | | |
534 | 630 | | |
| 631 | + | |
535 | 632 | | |
536 | 633 | | |
537 | 634 | | |
538 | 635 | | |
539 | 636 | | |
540 | 637 | | |
| 638 | + | |
| 639 | + | |
541 | 640 | | |
542 | 641 | | |
543 | 642 | | |
| |||
724 | 823 | | |
725 | 824 | | |
726 | 825 | | |
| 826 | + | |
| 827 | + | |
| 828 | + | |
| 829 | + | |
| 830 | + | |
| 831 | + | |
| 832 | + | |
| 833 | + | |
| 834 | + | |
| 835 | + | |
| 836 | + | |
| 837 | + | |
| 838 | + | |
| 839 | + | |
| 840 | + | |
| 841 | + | |
| 842 | + | |
| 843 | + | |
| 844 | + | |
| 845 | + | |
| 846 | + | |
| 847 | + | |
| 848 | + | |
| 849 | + | |
| 850 | + | |
| 851 | + | |
| 852 | + | |
| 853 | + | |
| 854 | + | |
| 855 | + | |
| 856 | + | |
| 857 | + | |
| 858 | + | |
| 859 | + | |
| 860 | + | |
| 861 | + | |
| 862 | + | |
| 863 | + | |
| 864 | + | |
727 | 865 | | |
728 | 866 | | |
729 | 867 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| 27 | + | |
27 | 28 | | |
28 | 29 | | |
29 | 30 | | |
| |||
152 | 153 | | |
153 | 154 | | |
154 | 155 | | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
155 | 188 | | |
156 | 189 | | |
157 | 190 | | |
| |||
306 | 339 | | |
307 | 340 | | |
308 | 341 | | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
| 349 | + | |
| 350 | + | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
309 | 367 | | |
310 | 368 | | |
311 | 369 | | |
| |||
362 | 420 | | |
363 | 421 | | |
364 | 422 | | |
| 423 | + | |
| 424 | + | |
365 | 425 | | |
366 | 426 | | |
367 | 427 | | |
| |||
393 | 453 | | |
394 | 454 | | |
395 | 455 | | |
| 456 | + | |
| 457 | + | |
396 | 458 | | |
397 | 459 | | |
398 | 460 | | |
| |||
0 commit comments