MedGrid Sentinel
Fuel-aware hospital microgrids

Maiduguri, 39 days without the 330 kV line

Four controllers, one hospital, the same diesel trucks. Measured weather, simulated care.

Building the 3D model…
Thu 26 Sept, 10:00
Line down · hour 106 of 936
Drag to orbit · every light, level and pulse is read from the simulation
Controller (same hospital, same diesel)
PV + BESS + generator
ICU, theatres, cold chain
95 / 95 kW
Wards, lab, pharmacy
124 / 124 kW
Admin, laundry, cooling
136 / 136 kW
Critical hours kept
106
of 106 so far
Diesel on site
3,826
litres of 10,000
Critical-service hours kept
937of 937 h

Status quo 449 h — Sentinel keeps 487 more hours of Tier 1 and 2 care.

Diesel litres avoided
2,841litres

36,159 L burned against 39,000 L — twice the care on less fuel.

Life-critical hours
937of 937 h

ICU, theatres and cold chain never lose power. Status quo: 12 interruptions.

What the software alone adds
+179hours

Against a fixed-rule inverter on the identical solar, battery and generator.

On 22 September 2024 insurgents brought down tower 372 on the Gombe–Damaturu–Maiduguri 330 kV line; the city was cut off until 31 October. In December 2022 two Maiduguri hospitals sat dark for days with working generators and empty tanks. This replay runs that 39-day outage, on NASA POWER weather measured for those exact dates, for an illustrative 250-bed referral hospital — four controllers, identical loads, deliveries and failures. Simulation, not measured hospital data.

Replay controls

Every change re-runs 4 × 4,032 steps

Hardware
Stress events (same for all four)
Export this run

Tank starts 60% full; deliveries every 3.5 days. The generator is the same 400 kW set for the hybrid strategies; the status quo gets a larger set sized to the full facility (no PV/battery).

Hour-by-hour service through the outage

Each cell is one hour; the worst quarter-hour sets its colour. Red = life-critical Tier-1 circuits (ICU, theatres, cold chain, oxygen, ED) without power.

Status quo — grid + diesel449 h critical · 451 h Tier-1
Status quo + manual rationing638 h critical · 639 h Tier-1
Solar + battery, fixed-rule inverter757 h critical · 798 h Tier-1
Solar + battery + MedGrid Sentinel937 h critical · 937 h Tier-1
Grid connectedIsland · full serviceIsland · Tier-3 deferredIsland · Tier-2 reducedIsland · Tier-1 onlyTier-1 LOST
Diesel only
Generator only
Critical hours449Tier-1 hours451Diesel burned39,000 LEmpty-tank hours489Tier-1 breaks12Load deferred0.0 MWhGenerator hours451
Diesel + rationing
Generator only
Critical hours638Tier-1 hours639Diesel burned39,000 LEmpty-tank hours300Tier-1 breaks11Load deferred86.6 MWhGenerator hours639
Conventional hybrid
PV + BESS + generator
Critical hours757Tier-1 hours798Diesel burned39,000 LEmpty-tank hours232Tier-1 breaks21Load deferred0.0 MWhGenerator hours588
Sentinel
PV + BESS + generator
Critical hours937Tier-1 hours937Diesel burned36,159 LEmpty-tank hours0Tier-1 breaks0Load deferred49.5 MWhGenerator hours383

Diesel in the tank

Litres on site, sampled every 2 h. Saw-teeth are deliveries; a line on the floor is a dark hospital.

Critical-service hours (Tier 1+2) vs weekly diesel supply

Same outage, same weather, 9 supply levels × 4 strategies (36 full replays). Where fuel is plentiful every option converges; where the supply chain binds, the controller decides who stays powered.

Running replays… 0%

X-axis: litres delivered per week in two drops (tank 10,000 L). The same hospital burns ≈3,360 L/week in a normal year on this feeder (full-year simulation); a line outage multiplies the need roughly fourfold. Honest trade-off: below ~5,000 L/week Sentinel deliberately sacrifices Tier-2 hours to keep Tier-1 (ICU, theatres, cold chain) on — switch to “Tier 1” to see it.

Why Sentinel decided what it decided

Fuel-runway governor log (first entries) — every decision states the arithmetic behind it.

22 Sept 00:00Grid outage detected at 00:00 — islanding.
23 Sept 10:00Fuel-runway governor → Tier 1 + 2 (Tier-3 deferred). Runway 31.4 MWh (diesel 23.0 MWh + battery 428 kWh + solar 8,020 kWh) vs 32.2 MWh for full service over 108 h to next delivery.
24 Sept 13:00Fuel-runway governor → Full facility. Runway 26.7 MWh (diesel 20.7 MWh + battery 481 kWh + solar 5,537 kWh) vs 24.0 MWh for full service over 81 h to next delivery.
26 Sept 22:00Fuel-runway governor → Tier 1 + 2 (Tier-3 deferred). Runway 28.5 MWh (diesel 20.8 MWh + battery 428 kWh + solar 7,278 kWh) vs 31.2 MWh for full service over 108 h to next delivery.
28 Sept 10:00Fuel-runway governor → Full facility. Runway 23.4 MWh (diesel 16.7 MWh + battery 461 kWh + solar 6,188 kWh) vs 21.1 MWh for full service over 72 h to next delivery.
30 Sept 10:00Fuel-runway governor → Tier 1 + 2 (Tier-3 deferred). Runway 26.4 MWh (diesel 18.1 MWh + battery 253 kWh + solar 8,031 kWh) vs 32.2 MWh for full service over 108 h to next delivery.
02 Oct 15:00Fuel-runway governor → Full facility. Runway 17.9 MWh (diesel 12.9 MWh + battery 485 kWh + solar 4,534 kWh) vs 16.2 MWh for full service over 55 h to next delivery.
03 Oct 22:00Fuel-runway governor → Tier 1 + 2 (Tier-3 deferred). Runway 24.8 MWh (diesel 16.0 MWh + battery 428 kWh + solar 8,337 kWh) vs 31.2 MWh for full service over 108 h to next delivery.
07 Oct 08:00Fuel-runway governor → Full facility. Runway 8,597 kWh (diesel 6,674 kWh + battery 216 kWh + solar 1,707 kWh) vs 7,796 kWh for full service over 26 h to next delivery.
07 Oct 10:00Fuel-runway governor → Tier 1 + 2 (Tier-3 deferred). Runway 23.7 MWh (diesel 16.2 MWh + battery 401 kWh + solar 7,091 kWh) vs 32.2 MWh for full service over 108 h to next delivery.
10 Oct 10:00Fuel-runway governor → Full facility. Runway 12.3 MWh (diesel 8,802 kWh + battery 485 kWh + solar 2,987 kWh) vs 11.1 MWh for full service over 36 h to next delivery.
10 Oct 22:00Fuel-runway governor → Tier 1 + 2 (Tier-3 deferred). Runway 26.4 MWh (diesel 17.0 MWh + battery 428 kWh + solar 8,961 kWh) vs 31.2 MWh for full service over 108 h to next delivery.
13 Oct 14:00Fuel-runway governor → Full facility. Runway 14.1 MWh (diesel 10.1 MWh + battery 485 kWh + solar 3,456 kWh) vs 12.5 MWh for full service over 44 h to next delivery.
14 Oct 10:00Fuel-runway governor → Tier 1 + 2 (Tier-3 deferred). Runway 24.3 MWh (diesel 16.0 MWh + battery 223 kWh + solar 8,012 kWh) vs 32.2 MWh for full service over 108 h to next delivery.

Field channel — works on any phone

Sentinel's alerts as single-segment SMS (≤160 GSM-7 chars) and a USSD status menu for the duty engineer. Generated from the replay; nothing is sent from the prototype.

feature phone
MGS 17/10 22:00 FUEL RUNWAY: Tier3 (HVAC/laundry/admin) DEFERRED. Diesel 4861L, batt 90%. ICU/OT/cold chain protected.118/160
MGS 20/10 16:00 FUEL RUNWAY: FULL SERVICE restored. Diesel 2789L, batt 90%. ICU/OT/cold chain protected.104/160
MGS 21/10 10:00 Diesel received. Tank 4616L. Runway recalculated.65/160
MGS 21/10 10:00 FUEL RUNWAY: Tier3 (HVAC/laundry/admin) DEFERRED. Diesel 4616L, batt 77%. ICU/OT/cold chain protected.118/160
MGS 24/10 12:00 FUEL RUNWAY: FULL SERVICE restored. Diesel 2525L, batt 100%. ICU/OT/cold chain protected.105/160
MGS 24/10 22:00 Diesel received. Tank 4977L. Runway recalculated.65/160
MGS 24/10 22:00 FUEL RUNWAY: Tier3 (HVAC/laundry/admin) DEFERRED. Diesel 4977L, batt 90%. ICU/OT/cold chain protected.118/160
MGS 27/10 15:00 FUEL RUNWAY: FULL SERVICE restored. Diesel 2931L, batt 93%. ICU/OT/cold chain protected.104/160
MGS 28/10 10:00 Diesel received. Tank 4783L. Runway recalculated.65/160
MGS 28/10 10:00 FUEL RUNWAY: Tier3 (HVAC/laundry/admin) DEFERRED. Diesel 4783L, batt 62%. ICU/OT/cold chain protected.118/160
MGS 31/10 00:30 GRID BACK, tie closed. Batt 52%. Diesel 2841L. Restoring normal mode.85/160
MGS 31/10 22:00 Diesel received. Tank 5841L. Runway recalculated.65/160
*347*7# · USSD
MedGrid Sentinel
ISLAND Gen:RUN
Batt 70% (T1 3.9h)
Diesel 3015L
T1 80/80kW
1 Alerts 2 Runway 3 Ack
1
2
3
4
5
6
7
8
9
*
0
#

How the brief's metrics are computed: critical-service hours = islanded hours in which ≥ 99.5 % of Tier-1 and Tier-2 demand was served (a ≤ 90 s generator transfer break is counted separately as an interruption); diesel litres avoided = status-quo litres − Sentinel litres over the same window. Loads are an illustrative 250-bed referral profile; weather is NASA POWER measured hourly data for Maiduguri (22 Sep – 31 Oct 2024); prices: diesel ₦1,950/L (Oct-2026 retail range). Simulation, not field-measured performance.