Skip to page content
SAVRN
Search Plan a project
Build reference · Integration framework

Putting the sovereign model to work on the energy island

How a proprietary SAVRN model connects to the power side of an AI factory energy island. The plant in one picture, what each part measures, how the data moves, where the model acts, the API and tool contracts, the build steps, and the learning path.

August 2026Energy island: data center · combined-cycle gas block on the on-site gas line · Rondo heat battery · steam turbine · biomass units · amine capture · thermal plant and BTES · BESS · utility intertie
Figuresplanttimescaleringsdata planebridgeprotocolsgas blockRondocaptureintertiejobsone questiontrainingroadmapstandardslearning

The plant in one picture

Electricity in copper. Steam and heat in blue. Fuel dashed. Flue gas and CO2 in grey. The site MV bus is the electrical spine; the steam header is the thermal spine; the amine reboiler sits on the steam header.

Natural gas lineon the propertymeter · conditioning skid Combined-cycle gas block gas turbine · HRSG · steam turbine reboiler tie-in from HRSG extraction exhaust heat to absorption chillers SCR · CEMS Utility switchyardimport for Rondo chargingexport of surplus generation BESSgrid-formingrides GPU steps SITE MV BUS · 13.8 kV · relays · revenue meters off-peak charging Rondo heat battery heaters · refractory brick about 4,519 MWh thermal stored about 188 MW thermal continuous steam out 24×7 steam Steam turbine island 100 MW class, condensing with reboiler extraction condenser · cooling compute load Data center 3 × 50 MW IT, liquid cooled 1,500 VDC collection 800 VDC rows · GPU racks DCGM · Redfish · Slurm heat Central thermal plant CDUs · heat exchangers absorption chillers on recovered gas-block heat BTES borehole fields dry coolers · trim cooling STEAM HEADER · feeds the amine reboiler extraction HRSG extraction steam Biomass units 18 MW + 21 MW = 39 MW wood-waste boilers steam turbine-generators CEMS · §45Y revenue meter Wood-waste fuel yardabout 226,000 dry tons per year flue gas Amine capture unit absorber · stripper · reboiler about 372,500 t CO2 per year 90 percent capture reboiler about 41 MW thermal CO2 CO2 compression dehydration · custody meter Class VI well or contracted offtake · MRV reporting §45Q · removal attribute electricity steam / heat fuel flue gas / CO2 ENERGY ISLAND · SYSTEM DIAGRAM Open the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching section
Energy island system diagram. Electricity in copper, steam and heat in blue, fuel dashed, flue gas and CO2 in grey.

How the flows go, in order

  1. Natural gas from the on-site line goes through the meter and conditioning skid into the combined-cycle gas block. The block puts electricity on the site MV bus.
  2. HRSG extraction steam from the gas block goes to the steam header. Gas-block exhaust heat drives the absorption chillers in the central thermal plant.
  3. Off-peak electricity is imported through the utility switchyard onto the bus and into the Rondo heaters. The brick stores it as heat.
  4. Rondo discharges steam 24×7. Most of it drives the 100 MW steam turbine, which puts electricity on the bus. Turbine extraction steam and the balance of Rondo steam go to the steam header.
  5. Wood waste from the fuel yard fires the two biomass boilers. Their turbine-generators put electricity on the bus through the §45Y revenue meter.
  6. Biomass flue gas enters the amine capture unit. The reboiler takes its steam from the steam header. Captured CO2 is compressed, dried, metered, and delivered to sequestration.
  7. The bus serves the data center. GPU step changes are ridden by the grid-forming BESS. Surplus generation exports through the utility switchyard.
  8. Data-hall heat goes to the central thermal plant: CDUs, absorption chillers, BTES, dry coolers.

00How to use this document

Section 01 states what is built: the model and the plant, with the plant drawn as one picture. Section 02 is the one rule that governs where the model acts. Sections 03 to 06 are the technical spine: sensors, protocols, data plane, model jobs, API contracts. Section 07 is how the model is trained for the plant. Section 08 is the build, step by step. Section 10 is the learning path, written as a course with labs. Section 11 is the execution phase.

13plant subsystems mapped to sensors, protocols, and model use
4rings of authority; the model lives in ring 2 and 3 only
5build steps, each with a done-when check

01What is built

The model runs on the SAVRN platform. The plant is the energy island. This section states both.

AThe model
  • A proprietary SAVRN model, trained and served by SAVRN on SAVRN hardware. No external model provider is in the path.
  • One model path: every SAVRN module reaches the model through the SAVRN AI Gateway. The gateway enforces policy, logs every call, and refuses external providers. Gateway policy is platform policy.
  • Tool calling runs through the gateway: the model calls plant tools, and every number it states comes back from a tool result.
  • Training program: the model is trained on the plant corpus in rounds, qualified against a golden set of plant tasks before it goes live, and cut over with a manifest and a rollback.
  • Separate lanes: production agents and operators use the SAVRN model only. Evaluation against outside models happens in a separate lane that never touches plant tools.
BThe plant

Nine parts. Click any part to open it.

Sitean energy park with its own natural gas line, water rights, interconnect rights, permits, and two existing biomass plants.

an energy park with its own natural gas line, water rights, interconnect rights, permits, and two existing biomass plants.

Data center150 MW IT in three 50 MW liquid-cooled halls.

150 MW IT in three 50 MW liquid-cooled halls. 1,500 VDC collection to 800 VDC rows per the Atom power ICD. 65 MW of the compute load is served under the compute PPA at 92 percent capacity factor.

Combined-cycle gas blockfed from the on-site natural gas line through the meter and conditioning skid.

fed from the on-site natural gas line through the meter and conditioning skid. Gas turbine, HRSG with SCR, steam turbine. HRSG extraction steam is tied into the amine reboiler (the §48 CHP scope: extraction piping, HRSG modifications, reboiler heat exchanger, condensate return). Exhaust heat drives absorption chillers for the data halls.

Rondo heat batteryresistive heaters charge refractory brick on off-peak electricity imported through the utility switchyard.

resistive heaters charge refractory brick on off-peak electricity imported through the utility switchyard. About 4,519 MWh thermal stored, about 188 MW thermal continuous discharge as steam, 24×7. Round-trip efficiency above 97 percent. Charging draw on the order of 170 MW electric in the charging window. With the steam turbine it is the §48E energy storage unit.

Steam turbine island100 MW class condensing turbine with reboiler extraction, about 40 percent efficiency, 250 MW thermal steam demand, fed by Rondo steam.

100 MW class condensing turbine with reboiler extraction, about 40 percent efficiency, 250 MW thermal steam demand, fed by Rondo steam.

Biomass unitstwo existing plants, 18 MW and 21 MW, 39 MW combined, wood-waste boilers and steam turbine-generators, about 85 percent capacity factor, about 226,000 dry tons of fuel per year.

two existing plants, 18 MW and 21 MW, 39 MW combined, wood-waste boilers and steam turbine-generators, about 85 percent capacity factor, about 226,000 dry tons of fuel per year. The §45Y qualified facility.

Amine capture uniton the biomass stack.

on the biomass stack. About 372,500 t/yr of biogenic CO2 at 90 percent capture, reboiler duty about 41 MW thermal at 3.5 GJ/t, steam from the steam header. CO2 is compressed, metered, and delivered to geologic sequestration (Class VI well or contracted offtake). The §45Q source and the removal-attribute source.

Central thermal plantCDUs, heat exchangers, absorption chillers on recovered gas-block heat, closed-loop BTES borehole fields, dry coolers, trim cooling.

CDUs, heat exchangers, absorption chillers on recovered gas-block heat, closed-loop BTES borehole fields, dry coolers, trim cooling. No water mixing with groundwater or geothermal brine.

Electrical13.8 kV site MV bus, protection relays, grid-forming BESS, utility switchyard for import (Rondo charging) and export (surplus generation).

13.8 kV site MV bus, protection relays, grid-forming BESS, utility switchyard for import (Rondo charging) and export (surplus generation). About 172 MW electric continuous on site: 39 biomass + 100 steam turbine + about 16.5 freed gas-block parasitic + about 16.5 recovered biomass parasitic.

02Where the model sits, and where it never sits

One rule governs the whole design. The language model is an advisor and an orchestrator. It is never in a protection path and never in a real-time control loop. Deterministic controllers do control. Relays do protection. The model reads, reasons, drafts, proposes, and explains. When it wants something changed, a human approves a bounded request.

The rule. No output of the language model reaches a breaker, a governor, an inverter, a valve, or a setpoint without passing through deterministic range checks, rate limits, an allow-list, and a human approval step. Through build step 3 the model is read-only. Supervised setpoint requests start at step 4, and only for non-safety economic setpoints inside engineered envelopes.

Four rings of authority

Ring 0PROTECTION · < 100 ms Relays 87/50/51/27/59/81/25Intertie relay + DTT (85)Grid-forming PCS (autonomous)Engine / turbine tripsGas ESD, fire, LEL No software. No model. Ring 1CONTROL · ms to seconds Unit controllers (governor, AVR)PMC / microgrid masterPLCs: thermal, BTES, gas skidBMS · BESS dispatchSCR / ammonia injection Deterministic only. Ring 2SUPERVISORY · minutes Historian + unified namespaceAlarm management, HMIOptimizer (dispatch, heat)Forecasters (load, weather)SAVRN model:reads, explains, proposes(advisory) Read-only, then bounded. Ring 3ENTERPRISE · hours to days Work orders, CMMSCompliance reports (CEMS)Gas nominations, tariffsWorkload schedule (compute)SAVRN model:drafts, plans, answers,reports Human signs everything. telemetry flows right · authority flows left only through approved, bounded requests
Ring timing follows the SAVRN power management and controls drawing: protection trips under 100 ms, BESS grid-forming under 100 ms and autonomous, PMC dispatch in 1 to 10 seconds, stack ramp in seconds to minutes, black-start operator-paced.
10 ms100 ms1 s10 s1 min10 min1 h1 daytimeRing 0 · protectionrelays, intertie relay, BESS PCSRing 1 · controlgovernor, AVR, PMC, PLCs, BMSstack and turbine rampsseconds to minutesRing 2 · supervisory · the modelhistorian, optimizer, advisoriesRing 3 · enterprise · peoplework orders, reports, approvalsthe model never acts left of this lineWho acts, and how fast
Where each actor sits on the clock. Protection and the BESS act in milliseconds, controllers in seconds, the model in minutes to hours. The red line is the boundary the model never crosses.

The same idea in Purdue levels

Plant people speak Purdue / ISA-95 levels. Use both vocabularies. The model is a Level 3.5 and Level 4 resident. It reaches down only through the DMZ and only to read.

Level
What lives there
Model relationship
L0
Sensors and actuators: transmitters, CTs/PTs, valves, breakers
None
L1
Controllers: PLCs, unit controllers, relays, BMS, PCS
None
L2
Supervisory: SCADA/HMI, PMC, alarm server, local historian
None directly. Data is mirrored outward.
L3
Site operations: plant historian, unified namespace, optimizer, CMMS
Reads everything through tool APIs. Writes advisories and reports.
L3.5
OT/IT DMZ: brokered data, one-way telemetry, setpoint request service
All model-originated requests terminate here for human approval.
L4
SAVRN platform, AI Gateway, operator workspace, agents
Where the model runs.

03The plant, subsystem by subsystem

Each block answers the same four questions. What the equipment is. What it measures (the tags). How the data comes out (protocol, source, rate). What the model does with it. Tag names follow the unified namespace site/<area>/<asset>/<measure>.

3.1Natural gas supply

The gas line on the property feeds the combined-cycle gas block through a custody-transfer meter station and a conditioning skid.

Combined-cycle gas block: what it is, what it measures, how the data leavesGas lineon-site natural gasmeter stationconditioning skidGas turbinecompressor · combustorturbine · generatorinlet cooling coilHRSG + SCRheat recovery steamammonia injectioncatalystSteam turbinegeneratorcondenserflueStack · CEMSNOx · CO · O2 · flowExtraction to headerreboiler tie-in (HRSG)Exhaust heat outabsorption chillersMWSite MV bus13.8 kVgenerator breakerstep-up transformerSensors and tagsfuel MMscfdHHV · Wobbegas P · TMW · Hz · PFcompressor P · Tturbine inlet Texhaust spreadinlet filter dPvibrationdrum P · T · levelextraction flowNH3 · catalyst dPNOx · CO · O2How the data leavesOEM controller → OPC UA / Modbus TCP / IEC 61850 · 1 to 10 sCEMS → DAHS export · 1 min averagesvibration monitor → Modbus; trips hard-wiredTag pathssite/gas_block/ccgt1/mw · /hz · /exhaust_temp_csite/gas_block/ccgt1/fuel_flow_mmscfd · /hrsg_extraction_tphsite/gas_block/ccgt1/nox_ppmv · /co_ppmv · /o2_pct
The gas block from gas line to bus. Pins are the measures; the wire box is how each one leaves the equipment; the tag paths are what the model sees.
EquipmentSensors / tagsProtocol · source · rateModel use
Custody-transfer meter stationFlow (ultrasonic or orifice, AGA 9 / AGA 3), static pressure, temperature, corrected volume, gas chromatograph (HHV, Wobbe index, composition per AGA 8)Modbus RTU/TCP from the flow computer; pipeline operator SCADA separate; hourly nominations via the utility portalFuel cost and heat-rate reconciliation, nomination drafting, variance explanation
Fuel gas conditioning skidInlet/outlet pressure, filter differential pressure, heater outlet temperature, regulator position, ESD valve open/closed, LEL gas detection, vent statusPLC (Modbus TCP or OPC UA), 1 sShift report, anomaly explanation, maintenance trigger
Gas service agreementFirm capacity, delivery pressure, curtailment class, redundancy, nomination rulesDocuments, not live dataRAG over the gas service agreement and tariff; nomination drafting
3.2Generation units

The generators are the combined-cycle gas block (gas turbine plus steam turbine), the 100 MW steam turbine (3.12), and the two biomass turbine-generators (3.10). Each comes with an OEM controller that publishes the tags below.

EquipmentSensors / tagsProtocol · source · rateModel use
Unit controller (OEM)MW, MVAr, kV, A, Hz, power factor, breaker status, mode (droop / isochronous / grid-following), start count, run hours, trip count, active alarms, fuel flow, heat rateOEM controller to Modbus TCP / OPC UA / IEC 61850; 1 s electrical, 10 s processFleet status, heat-rate drift, start reliability, dispatch commentary
Gas turbine healthCompressor discharge pressure and temperature, turbine inlet temperature, exhaust temperature spread, inlet filter differential pressure, inlet air temperature and humidity (chilled inlet), combustor dynamics, fuel valve positionsOEM controller, 1 to 10 sAnomaly explanation, maintenance planning, summer derate forecast
Machinery protectionVibration (proximity probes, accelerometers per API 670) on turbine and generator bearings and any gearbox, bearing temperatures, speedProtection monitor (Bently Nevada class) to Modbus / OPC UA; trips hard-wiredTrend narrative only; never in the trip path
Generator and step-up transformerStator/rotor temps, excitation, transformer winding/oil temp, dissolved gas analysis (DGA), tap position, cooling fansAVR, transformer monitor (IEC 61850 or Modbus), 10 s to hourly for DGACondition reports, DGA interpretation with reference to IEEE C57.104 tables
3.3Emissions control and monitoring
EquipmentSensors / tagsProtocol · source · rateModel use
SCR (and CO catalyst if fitted)Catalyst inlet/outlet temperature, differential pressure, ammonia or urea injection rate, dilution air, ammonia slip estimateSCR PLC, Modbus TCP / OPC UA, 1 to 10 sReagent usage reconciliation, catalyst aging narrative
CEMSNOx, CO, O2 (and NH3 if required) at 15 percent O2 dry basis, stack flow if required, calibration status, data availabilityDAHS (data acquisition and handling system) export; 1 min averages; 40 CFR 60 App. B / App. F QAExcess-emission report drafts, deviation narratives, permit-limit watch
GHG accountingFuel volume × HHV × emission factor; facility-level CO2eCalculated from 3.1 tagsAnnual GHG reporting drafts (state and EPA GHGRP as applicable)
3.4Heat recovery and absorption cooling

The HRSG on the gas block supplies extraction steam to the steam header and exhaust heat to the absorption chillers.

EquipmentSensors / tagsProtocol · source · rateModel use
HRSG / exhaust heat exchangerExhaust T in/out, stack T, water or steam P/T/flow, drum level, bypass damper position, economizer approachPlant PLC or DCS, OPC UA / Modbus, 1 to 10 sRecovered-heat accounting, fouling trend
Absorption chillers (LiBr)Hot water or steam in T/flow, chilled water supply/return T/flow (tons), condenser water T/flow, heat-rejection side (cooling tower fan speed and basin T, or dry cooler approach), solution concentration, crystallization guard status, COP (calculated)Chiller controller, BACnet/IP or Modbus, 10 sHeat-to-cooling balance, when to favor chillers vs BTES vs dry coolers (advisory)
Gas turbine inlet coolingInlet air T before/after coil, chilled water flow, derate recovered (MW)PLC, 10 sSummer capacity forecast
3.5Central thermal plant and BTES
EquipmentSensors / tagsProtocol · source · rateModel use
CDUs and facility water loopsSupply/return T, flow, differential pressure, conductivity, pH, leak detection, filter dP, pump VFD speed and kWCDU controller (Modbus TCP / SNMP / BACnet) and BMS, 1 to 10 sThermal balance, leak triage, pump efficiency
Buffer tanks and heat exchangersLevel, temperature stratification, HX approach temperatures, valve positionsPLC, 10 sThermal inertia available for ride-through
BTES fields (closed loop)Header supply/return T and flow per array, ground temperature at depth (thermistor strings or fiber DTS), loop pressure, glycol concentration, injection/extraction energy totals; thermal response test results as reference dataPLC, 1 min; DTS interrogator exportsSeasonal charge state narrative, field capacity forecasts, comparison to thermal response test assumptions
Dry coolers and trim coolingFan status and speed, approach temperature, power, makeup water meter if any evaporative trim is usedBMS, BACnet/IP, 10 sWater-use reporting, energy split
3.6Electrical: utility intertie, switchgear, BESS, Atom DC
Utility intertie: the one place the plant meets the gridUtility linetransmission voltageutility-ownedinterconnection studySwitchyardbreaker · disconnectsCTs · PTstransformerMeteringrevenue meter kWh in/outpower-quality meterPMU synchrophasorsIntertie relay27 · 59 · 81 · 32 · 25 · 78direct transfer trip (85)IEEE 1547 / 2800SiteMVbusSensors and tagsimport_mw · export_mwMVAr · PFkV · Hz · harmonicssags · swellsphase angle · ROCOFbreaker statusrelay targets · eventsDTT statetransformer T · DGASF6 pressureutility SCADA pointsHow the data leavesrelays and meters → IEC 61850 station bus (MMS for status and events)DNP3 (IEEE 1815) point list → the utility SCADA, as the agreement specifiesGOOSE stays inside the substation · relay settings never come from the modelTag pathssite/intertie/tie1/import_mw · /export_mw · /hzsite/intertie/tie1/breaker_closed · /dtt_armedsite/intertie/tie1/relay_event (COMTRADE id)
The utility intertie: switchyard, metering, the intertie relay, the site bus. Relay settings and transfer trips never come from the model.
EquipmentSensors / tagsProtocol · source · rateModel use
Utility intertieRevenue meter (kWh in/out, kVArh), PQ meter (voltage, frequency, harmonics, sags), PMU synchrophasors (IEEE C37.118: phase angle, frequency, ROCOF at 30 to 60 samples per second), intertie relay status (27/59/81/32/25/78 + DTT), breaker position, utility SCADA points exchangedIEC 61850 station bus internally; DNP3 (IEEE 1815) to the utility SCADA; revenue meter via utility-owned linkImport/export accounting, event timeline reconstruction after a disturbance (narrative only)
MV switchgear and relaysRelay targets and event records (87/50/51/27/59/81/25), breaker wear counters, SF6 gas pressure and density on gas-insulated breakers, bus voltage, feeder currents, partial discharge if fittedIEC 61850 MMS/GOOSE; SEL-class relays also expose Modbus and event files (COMTRADE)Post-event reports, protection study cross-reference; the model never issues relay settings
BESS (grid-forming)PCS: P/Q, V/f setpoints, mode (grid-forming / following), state. BMS: SoC, SoH, cell voltage/temperature min/max, rack isolation status. HVAC and fire: temperature, off-gas detection, suppression status (UL 9540 / NFPA 855)PCS and BMS via Modbus TCP or IEC 61850; fire via dry contacts to PLCSoC management narrative, SoH trend, charge scheduling recommendations (advisory)
Atom 1,500 VDC collection and 800 VDC rowsPer-feeder and per-row voltage/current/power, insulation monitoring (IMD) readings, busbar temperature, rectifier and DC-DC status, per-rack power shelf telemetryPower electronics controllers via Modbus TCP; rack power shelves via Redfish / BMC; 1 sLoad attribution to compute jobs, PUE and energy-per-token accounting
3.7Compute load
EquipmentSensors / tagsProtocol · source · rateModel use
GPU racksPer-GPU power, utilization, temperature, clocks, throttling; per-rack kW; per-node telemetryNVIDIA DCGM exporters, Redfish/BMC, 1 s or fasterLoad forecasting inputs, energy-per-token, anomaly cross-reference
SchedulerQueued and running jobs, expected duration, requested GPUs, priority; maintenance windowsSlurm or Kubernetes APIs, event-drivenNext-hour and next-day load forecast, planned-ramp advisories to the dispatch optimizer
DCIMRack inlet coolant T, row power, capacity maps, asset registryDCIM API (REST), 1 minAsset context for every tag
3.8Site and environment
EquipmentSensors / tagsProtocol · source · rateModel use
Weather stationAmbient dry-bulb T, RH and wet-bulb (derived), barometric pressure, wind, solar irradiance, dustModbus or SDI-12 to PLC, 1 min; forecast from a weather API (NWS)Derate and cooling forecasts; desert summer heat drives both
Fire, gas, life safetyFire alarm panel status, gas detection zones, emergency stopsDry contacts to PLC, BACnet for status onlyStatus awareness in shift reports. Never in the action path.
Water and stormwaterMakeup water meter, tank levels, stormwater basin level, process pond levelPLC, 1 minWater accounting for utility and county reporting
3.9Enterprise and counterparty data
  • Utility: tariff, interconnection agreement terms, curtailment or export rules, outage notices.
  • Gas supplier: nominations, daily balancing, price index, operational flow orders.
  • Permits: state license conditions, air district permit limits, Title V obligations, GHG reporting calendar.
  • O&M: OEM manuals, procedures, P&IDs, one-lines, alarm rationalization documents, CMMS history.

These documents are the first training and retrieval corpus for the model. They exist before the plant runs, so the model learns the plant first. See section 07.

3.10Biomass units

Two wood-waste steam plants, 18 MW and 21 MW. They are the §45Y facility and the CO2 source for capture, so their measurements carry tax-credit weight as well as operating weight.

EquipmentSensors / tagsProtocol · source · rateModel use
Fuel yard and feedTruck scale weights and tickets, moisture content (online NIR or lab), pile temperatures (self-heating), feeder and conveyor speed, fuel flow to boiler, dry-ton totals, source and chain-of-custody records per loadScale system export, PLC, 1 min; documents for chain of custodyDry-ton and lifecycle documentation for §45Y; fuel-to-steam efficiency; fire-risk narrative
BoilerDrum pressure, level, and temperature; furnace temperature; flue gas O2 and CO; main steam flow, pressure, temperature; feedwater flow and temperature; air flow, FD/ID fan speed and amps; bed or grate temperatures; soot-blower status; ash handling statusPlant DCS or PLC, OPC UA, 1 to 10 sHeat balance, efficiency drift, startup/shutdown narrative
Stack emissionsCEMS NOx, CO, O2, opacity or PM per permit; flue gas flow and temperature to the capture unitDAHS export, 1 min averagesPermit-limit watch, excess-emission drafts
Turbine-generator and auxiliariesAs 3.2, plus extraction steam flow if the biomass turbine ever supplies reboiler duty; net MWh at the §45Y revenue meter; auxiliary loadOEM controller; revenue meter§45Y net-generation accounting (credit is on net MWh sold), parasitic-load tracking
3.11Rondo heat battery

Refractory brick charged by resistive heaters on off-peak electricity, discharging continuous steam. When it charges and what it pays is an optimization problem. Its thermal state of charge decides whether the reboiler and the turbine have steam.

Rondo heat battery: electricity in, brick, steam outSite MV busoff-peak importutility charging windowprice signalMWResistive heatersfast-interruptible groupsjoule heatingdemand-response capableheatRefractory brick corethermal storagetemperature arraystate of charge MWh_thSteam outlettph · P · Tfeedwater inTurbinesteamHeaderreboilerSensors and tagscharge_mwheater groupsinput V · Asoc_mwh_th · soc_pctbrick_temp_c arrayskin T · interlockssteam_out_tphoutlet P · Tfeedwater flow · Tdischarge_mw_thround-trip eff.price · DR signalHow the data leavesRondo unit controller → OPC UA or Modbus TCP · 1 s electrical, 10 s thermalprice and demand-response signals → market data feed (read only)credit records (PWA, PFE, placed-in-service) → documents, not telemetryTag pathssite/rondo/rhb1/charge_mw · /soc_mwh_th · /soc_pctsite/rondo/rhb1/brick_temp_c · /steam_out_tphsite/rondo/rhb1/discharge_mw_th
The Rondo heat battery: electricity in on the off-peak window, heat held in brick, steam out to the turbine and the header.
EquipmentSensors / tagsProtocol · source · rateModel use
Charging sideCharging power MW per unit, heater element group status (on/off, fast-interruptible), input voltage and current, charging energy totals, charging price signal (wholesale market / utility tariff), curtailment or demand-response signalsRondo unit controller, OPC UA or Modbus TCP, 1 s; price feeds from market dataCharging-window recommendations from the optimizer (price, utility capacity, thermal SoC), interruptible-load participation narrative
Storage coreBrick temperature array (multiple depths and zones), thermal state of charge in MWh_th, heat loss estimate, enclosure and insulation skin temperatures, over-temperature interlocksUnit controller, 10 sAutonomy-hours forecast, seasonal and daily SoC narrative
Discharge sideSteam flow (tph), pressure and temperature at outlet, feedwater flow and temperature, air or gas loop flow, round-trip efficiency (calculated), split of steam to reboiler vs turbineUnit controller and plant DCS, 1 to 10 sSteam balance between capture reboiler and turbine; efficiency reconciliation against the >97 percent datasheet figure
Credit and sourcing recordsNot telemetry: PWA records, component origin (brick and heater elements) for PFE material-assistance rules, placed-in-service and separate-unit documentation for §48EDocumentsRAG over the credit file; the model drafts, counsel signs
3.12Steam turbine island
EquipmentSensors / tagsProtocol · source · rateModel use
Steam pathMain steam pressure, temperature, flow; extraction steam to the reboiler (pressure, temperature, flow); exhaust pressure and condenser vacuum; condensate flow and temperature; gland steam; feedwater heatersOEM turbine controller (Siemens or GE class), OPC UA, 1 to 10 sHeat balance: biomass steam + Rondo steam in, electricity + reboiler duty out
Machine and generatorSpeed, vibration and bearing temperatures (API 670), lube oil, generator electrical (as 3.2), excitation, step-up transformer monitoringProtection monitor, AVR, transformer monitorTrend narrative only
Heat rejectionCondenser cooling water supply/return temperature and flow, cooling tower or dry cooler status, wet-bulb, makeup water meterBMS, BACnet/IP, 10 sSummer derate forecast, water accounting
3.13Amine capture unit and CO2 handling

The capture unit turns the biomass stack into the §45Q and removal-attribute source. Its metering is regulatory. The reporting rules for geologic sequestration (40 CFR 98 Subpart RR for injection, Subpart PP for supply) and the Class VI well program define what must be measured and how.

Amine capture unit: flue gas in, CO2 out, steam from the headerBiomass stackflue gasflow · T · CO2 %Absorberlean solvent inrich solvent outtreated gas → stackStripper + reboilersteam from the headerlean solvent backCO2 off the topsteam from the headerCompressionstages · intercoolersdehydrationpurity analyzerCustody metert/h · MRVto well or offtakeSensors and tagsflue flow · T · CO2 %absorber T profilesolvent flow · loadingsolvent makeupreboiler steam flow · P · Treboiler_duty_mwregen GJ/tCO2 flow · puritycompressor P · T · kWcustody t/hinjection P · rateamine slipHow the data leavescapture DCS → OPC UA · 1 to 10 scustody meter → MRV system (40 CFR 98 Subpart RR)well-site SCADA or offtake meter → operator reportsTag pathssite/biomass_capture/amine_unit/reboiler_duty_mwsite/biomass_capture/amine_unit/co2_captured_tph · /capture_rate_pctsite/biomass_capture/co2_train/custody_tph · /purity_pct
The amine capture unit: flue gas in, CO2 out through a custody meter. The reboiler sits on the steam header.
EquipmentSensors / tagsProtocol · source · rateModel use
Flue gas and absorberInlet flue gas flow, temperature, CO2 concentration; absorber temperature profile; lean and rich solvent flow and loading; solvent makeup; wash-water; treated gas CO2 (capture rate calculated)Capture unit DCS, OPC UA, 1 to 10 sCapture-rate reconciliation (design 90 percent), solvent health narrative
Stripper and reboilerReboiler steam flow, pressure, temperature (the duty Rondo and the turbine extraction must supply); stripper temperature and pressure; reflux; regeneration energy per tonne (calculated, design 3.5 GJ/t)DCS, 10 sSteam-demand forecast for the Rondo dispatch; energy-per-tonne trend
CO2 product, compression, transportCO2 product flow and purity (moisture, O2), compressor stages (pressure, temperature, power), dehydration, custody-transfer CO2 meter to pipeline or wellDCS; custody meter to MRV systemTonnes captured and delivered for §45Q; compressor power accounting
Sequestration (Class VI) or offtakeInjection pressure, rate, temperature; annulus pressure; monitoring well data; or offtake metering at the delivery pointWell-site SCADA; operator reportsMRV report drafts (Subpart RR), leakage narrative
Emissions from captureAmine slip and degradation products in treated gas, as required by the air permitAnalyzers or periodic testingPermit-condition watch
Metering boundaries for the credit stack. The biomass facility (§45Y), the energy storage unit (Rondo plus turbine, §48E candidate), the CHP tie-in (§48), and the capture unit (§45Q) each have their own basis and measurement. Revenue-grade meters, steam meters, and CO2 custody meters must be placed so each credit's quantity can be read from its own instruments. Design the tag namespace and the asset model with those boundaries in it from day one.

04The data plane: sensor to model

The model never talks to a PLC. It talks to a small set of HTTP tool endpoints that sit on a contextualized copy of plant data. This section describes the layers that make that copy, the protocols at each hop, and the stack options.

Field and control (L0 to L2, OT) Unit controllers · PLCs · relays · BMS/PCS · CDUs · CEMS DAHS · weather Modbus TCP/RTU · OPC UA · IEC 61850 MMS/GOOSE · DNP3 · BACnet/IP · HART · SNMP · Redfish Edge gateways and SCADA (L2/L3) Protocol conversion · tag normalization · HMI · alarm server · local historian buffer · store-and-forward publishes MQTT Sparkplug B into the unified namespace: site/<area>/<asset>/<measure> Site data layer (L3) MQTT broker (unified namespace) · time-series historian · asset model (ISA-95 hierarchy) · alarm and event store · document store historian: TimescaleDB or AVEVA PI · broker: EMQX or HiveMQ · docs: SAVRN document store OT/IT DMZ (L3.5) One-way telemetry outward (data diode or brokered replica) · setpoint request service inward (allow-list, range, rate, approval, audit) SAVRN platform (L4) Tool API (read) · SAVRN AI Gateway · SAVRN model · SAVRN agents · advisories, reports, drafts, Q&A
Telemetry moves up. Only bounded, approved requests move down, and only from build step 4 on.

Tier vocabulary and level vocabulary

Four tiers and Purdue levels describe the same structure. Both names are used on the project.

Reference tierPurdue levelWhat it is here
Tier 1 · Field instrumentation and PLCsL0 to L1Sensors, meters, actuators, unit controllers, relays, BMS/PCS; Modbus, OPC UA, IEC 61850 edge nodes
Tier 2 · SCADA and historianL2 to L3Ignition or AVEVA PI class systems on ruggedized hardware; 1 s to 1 min capture; unified namespace and site historian
Tier 3 · Sovereign integration gatewayL3.5 to L4The FastAPI tool service in section 06 that queries the historian and asset model and serves read tools to the model; plus the setpoint request service in the DMZ
Tier 4 · Inference engineL4The SAVRN AI Gateway and the inference server for the SAVRN model. Development runs on a workstation; the plant runs an edge GPU node in the platform zone

Protocols you will meet, and what each one is for

ProtocolWhereWhat it carriesNotes for integration
Modbus TCP / RTUAlmost every skid and OEM controllerRegisters: coils, holding registers, input registersNo data model, no security. Needs a tag map per device. Poll-based. Keep behind the edge gateway.
OPC UA (IEC 62541)Modern PLCs, DCS, OEM controllersTyped, browsable address space with units and alarmsPreferred source when available. Supports certificates and subscriptions.
IEC 61850Substation and switchgear, some invertersMMS (client/server data), GOOSE (peer trips, ms), SV (sampled values)Read MMS for status and events. GOOSE is protection traffic; never bridge it outward.
DNP3 (IEEE 1815)Utility SCADA linkPoints the utility wants: MW, MVAr, breaker status, DTTOwned and specified by the utility in the interconnection agreement.
BACnet/IPHVAC, chillers, building systemsObjects with properties (analog input, binary value)Common on absorption chillers and dry coolers.
HARTField transmittersDiagnostics and configuration over 4 to 20 mAMostly an instrumentation-team concern; useful for device health.
SNMP / RedfishIT gear, rack power shelves, PDUsDevice status and power telemetryRedfish is the REST standard for server and power-shelf telemetry.
MQTT Sparkplug BEdge to site data layerTopic namespace with birth/death certificates and typed metricsThe unifying layer. One topic tree, one schema, store-and-forward at the edge.
HTTP/JSON (REST)Site data layer to model toolsQueries and documentsThe only protocol the model sees.
The protocol stack: arrows only point upPlatform · L4HTTP/JSON · the tool API and the SAVRN AI Gatewaythe only protocol the model ever seesDMZ · L3.5one-way bridge or data diode · DMZ broker (subscribe-only)nothing publishes downwardSite · L3MQTT Sparkplug B broker · historian (TimescaleDB or PI) · asset modelone topic tree, one schema, store-and-forward at the edgeEdge · L2/L3edge gateways and SCADA: protocol conversion · tag normalization · alarmspublish into the unified namespace site/<area>/<asset>/<measure>Field · L0/L1Modbus TCP/RTU · OPC UA · IEC 61850 (MMS/GOOSE) · DNP3 · BACnet/IP · HART · SNMP/Redfisheach device speaks its own dialect; the edge translatestelemetry rises through every layer; GOOSE never leaves the substation; relay settings never arrive from above
The protocol stack as layers. Field devices speak their own dialects; the edge translates into one namespace; the platform only ever sees HTTP and JSON.

Stack

SCADA / HMI and edge

Ignition (Inductive Automation) with the MQTT Transmission and Engine modules is the target; AVEVA System Platform is the alternate. Lab: Ignition Maker Edition or Node-RED.

Historian

TimescaleDB (PostgreSQL) is the target: open, sovereign, SQL-queryable. AVEVA PI is the alternate if the O&M contractor requires it. Lab: TimescaleDB in Docker on a workstation.

Broker and namespace

EMQX for production Sparkplug B (HiveMQ alternate). Mosquitto for the lab. The namespace design (section 03 tag style) is the controlling decision, not the broker brand.

Order of work: the unified namespace and asset model first, the broker and historian second, the SCADA vendor with the controls integrator third. The model's tool API depends only on the first two.

Broker rules

The broker is the gateway between the plant and the model. MQTT is a two-way protocol, so "one way" is enforced, not assumed.

  1. The OT broker lives in the control network. A second broker in the DMZ receives a one-way bridge from it (or the link is a data diode). The platform side connects only to the DMZ broker.
  2. Platform-side credentials are subscribe-only. No publish permission exists on any plant topic for the model, the tool API, or the agents.
  3. No topic exists on which a model-side process can publish into OT. The setpoint path in section 06 is a separate HTTP service with its own allow-list, never an MQTT publish.
  4. Tag values are stamped with quality and timestamp at the edge. The tool API never returns a value without both.

Result: if the model ever produces an invalid command string, there is no wire on which it can travel.

The bridge, in one picture

Telemetry moves down. The model works only through tools. Nothing moves back up except the human-approved setpoint path, and that path is not built until step 4.

CONTROL NETWORK · LEVELS 0 TO 2 · OT DMZ · LEVEL 3.5 PLATFORM ZONE · LEVEL 4 · THE BRIDGE SERVICE Plant equipment PLCs · OEM controllers · relays · CEMS · BMS edge gateways publish telemetry Modbus · OPC UA · IEC 61850 · DNP3 · BACnet OT broker MQTT Sparkplug B · unified namespace site/<area>/<asset>/<measure> value · unit · status · quality · timestamp Setpoints, trips, interlocks deterministic controllers and relays only protection under 100 ms · PMC in seconds no model path · ever one-way bridge or data diode DMZ broker replica of the OT namespace platform credentials: subscribe-only · no publish Setpoint request service · step 4 · not built allow-list · envelope validator (min, max, ramp, mode) operator approval in the HMI · every request logged the only path back · human-approved · step 4 Ingest worker subscribes · validates payloads drops bad ones · never publishes subscribe-only credentials Latest-state cache · Historian TimescaleDB (lab: SQLite) · tag dictionary alarm log · advisories store keeps unit · status · quality · ts Document store manuals · permits · procedures · specs each chunk: source, version, section sovereign embeddings · /v1/embeddings SAVRN AI Gateway the only model path · policy · audit · local only converts the tool dialect both ways POST /v1/chat · purpose = plant_ops Tool API · read only get_unit_status · query_tags · get_active_alarms · list_tags search_docs · file_advisory request_setpoint present but disabled until step 4 · returns 403 Tool loop system rules · up to 6 rounds number audit: any value not in a tool result is flagged SAVRN model proprietary · served on SAVRN hardware tools in · tool calls out · no raw numbers in prompts trained on the plant corpus · golden set Outputs answers with unit, status, quality and timestamp · shift reports · recommendations · compliance drafts stored as advisories with the tool-call ids as evidence · read by operators in the SAVRN workspace No wire back into OT the model zone cannot publish on any plant topic an invalid command string has nowhere to travel Open the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching sectionOpen the matching section
Grey arrows are telemetry. Blue arrows are tool calls and tool results. Copper arrows are the model path through the gateway. The dashed box is the step 4 setpoint service, the only way anything ever moves back into the plant.

How a question travels

  1. The plant publishes telemetry on the OT broker in the unified namespace. Each value carries unit, status, quality and timestamp.
  2. A one-way bridge (or a data diode) copies the namespace to the DMZ broker. The platform side holds subscribe-only credentials.
  3. The ingest worker validates every payload against the contract, keeps the latest state, and writes the historian. Bad payloads are rejected and counted.
  4. An operator asks a question. The tool loop hands the model the tool schemas through the SAVRN AI Gateway; the gateway enforces policy and logs the call.
  5. The model calls tools: live values from the cache and historian, passages from the document store. Results come back as structured objects.
  6. The model answers. The number audit checks every value against the tool results; anything not traceable is flagged. Reports are stored as advisories with the tool-call ids as evidence.

05The model's jobs, ranked by risk

Each job lists inputs, tools, output, and the ring it operates in. Jobs 1 to 5 are read-only and start in the simulator before the plant runs. Jobs 6 to 8 use an optimizer or forecaster for the math; the model explains and drafts. Job 9 is the only one that proposes a change to the plant.

The jobs, ranked by risk#JOBRINGWHO SIGNS09Supervised setpoint requestsring 3.5shift supervisor approves · step 4above the line: one bounded request to the setpoint service, human-approved, step 4 only. Nothing the model does touches the plant directly.08Dispatch and heat-routing recommendationsring 2operator decides07Load and heat forecasting assistantring 2operator decides06Maintenance planningring 3operator decides05Compliance and credit-data draftingring 3environmental lead and counsel sign04Anomaly explanationring 2operator reads03Procedure and permit Q&Aring 3operator reads02Alarm flood summarizationring 2operator reads01Shift report and handoverring 2operator readsread-only jobs at the bottom · advisory jobs in blue · the only job that proposes a change at the top
The jobs as a ladder. Read-only reporting at the bottom, advisory jobs in the middle, and one job at the top that proposes a bounded, human-approved change.
01Shift report and handover read-onlyring 2
Inputs and tools

Historian summaries, active and cleared alarms, work orders, weather

Output

Structured report: generation, fuel, heat balance, BTES state, BESS SoC, events, open items

02Alarm flood summarization read-onlyring 2
Inputs and tools

Alarm and event store, ISA-18.2 rationalization docs

Output

Grouped causes, first-out alarm, suggested procedure reference

03Procedure and permit Q&A (RAG) read-onlyring 3
Inputs and tools

O&M manuals, P&IDs, permits, interconnection agreement, tariffs, license conditions

Output

Cited answers with document and section

04Anomaly explanation read-onlyring 2
Inputs and tools

Statistical detector flags (not the model), tag context, recent maintenance

Output

Plain-language explanation, ranked hypotheses, what to check

05Compliance and credit-data drafting read-onlyring 3
Inputs and tools

CEMS DAHS exports, permit limits, GHG calcs; §45Y net-MWh meter data, §45Q captured and sequestered tonnes (Subpart RR MRV), §48E and PWA records

Output

Excess-emission and quarterly report drafts, annual MRV report drafts, and credit data packs for the environmental lead and tax counsel to sign

06Maintenance planning advisoryring 3
Inputs and tools

Run hours, starts, OEM intervals, DGA, vibration trends, CMMS

Output

Draft work orders and outage windows aligned to the compute schedule

07Load and heat forecasting assistant advisoryring 2
Inputs and tools

Forecaster outputs (load, weather), scheduler queue, BTES state

Output

Next-day operating plan narrative with confidence bands

08Dispatch and heat-routing recommendations advisoryring 2
Inputs and tools

Optimizer solution (MILP or rule set), constraints, prices, permit headroom

Output

Recommended unit commitment, Rondo charging windows (price, utility capacity, thermal state of charge), steam split between reboiler and turbine, and heat routing (chillers vs BTES vs dry coolers), with the reasoning; operator decides

09Supervised setpoint requests step 4 onlyring 3.5
Inputs and tools

Everything above

Output

A bounded request to the setpoint service (for example, Rondo charging window, BESS SoC target, BTES loop flow share). Range-checked, rate-limited, approved by a human, logged

Division of labor. Forecasting is a regression model. Anomaly detection is statistics or a small ML model. Dispatch is an optimizer. The language model is the reasoning and language layer on top: it chooses which tool to call, reads the numbers, and writes the explanation. This is how the SAVRN agent harness works, and it keeps every number traceable to a tool call.

06API surface and tool contracts

These are the endpoints the model calls and the tool schemas the gateway hands it. They are built as a FastAPI service in the site data layer.

One shift report, as it actually ranOperatorTool loopSAVRN AI GatewaySAVRN modelTool API · historian · docs"Write the shift handover report"ROUND 1messages + system rules + 7 tool schemas · purpose = plant_opssame request, tool schemas converted to the gateway dialecttool_calls: get_unit_status (no answer text yet)get_unit_status()10 assets · each value with unit, status, quality, timestampROUND 2tool result appended to the conversationtool_calls: get_active_alarmsget_active_alarms(minutes=60)watch and alarm states, newest firstROUND 3tool_calls: query_tags (steam turbine MW, 60 min, 5 min buckets)query_tags(...)12 buckets with unit, status, qualityROUND 4final answer: the report as Markdownnumber audit: every value in the report is matched to a tool result; unmatched values are flaggedfile_advisory(kind=shift_report, evidence = the 3 tool-call ids)report + trace + audit resultcopper = model path through the gateway · blue = tool calls and results · grey = operatormeasured: 4 rounds · about 12k input tokens · about 2.5 minutes
One real run, end to end: the operator asks, the tool loop talks to the model only through the gateway, the model works only through tools, the audit checks every number, the report is stored with its evidence.
01Read endpoints (step 2)
EndpointPurposeKey parameters
GET /v1/assetsAsset hierarchy and tag dictionaryarea, asset; returns units, ranges, descriptions
GET /v1/tags/queryHistorian query with aggregationtags[], from, to, agg (avg/min/max/last), bucket (1m/5m/1h); hard cap on rows
GET /v1/tags/latestCurrent values for a list of tagstags[]
GET /v1/alarmsActive and historical alarms and eventsstate, from, to, priority
GET /v1/units/statusRolled-up status per generation unit, BESS, chillers, BTES arraysnone
GET /v1/forecast/loadForecaster output for site electrical and thermal loadhorizon (1h/24h/7d)
GET /v1/forecast/weatherCached NWS forecast for the sitehorizon
GET /v1/dispatch/planLatest optimizer solution and constraintsdate
GET /v1/docs/searchRetrieval over the plant document corpusq, k, collection
GET /v1/cmms/workordersOpen and recent work ordersasset, state
GET /v1/compliance/cemsCEMS averages, availability, limit headroomfrom, to, pollutant
02Write endpoints (advisories at step 2, setpoint requests at step 4)
EndpointPurposeGuardrails
POST /v1/advisoriesStore a model advisory (report, explanation, recommendation) with its tool-call traceAppend-only; every number must reference a tool call id
POST /v1/setpoint-requestsPropose a bounded change to an allow-listed setpointAllow-list of setpoints; min/max and rate limits per setpoint; required justification; operator approve/deny; full audit; expires if not approved
03Tool schema the gateway hands the model
# Tool definitions (OpenAI-style function calling, as the SAVRN gateway already uses)
[
  {"type":"function","function":{"name":"query_tags",
    "description":"Query the plant historian. Returns aggregated time series for named tags.",
    "parameters":{"type":"object","properties":{
      "tags":{"type":"array","items":{"type":"string"},"maxItems":24},
      "from":{"type":"string","description":"ISO-8601 start"},
      "to":{"type":"string","description":"ISO-8601 end"},
      "agg":{"type":"string","enum":["avg","min","max","last"]},
      "bucket":{"type":"string","enum":["1m","5m","15m","1h","1d"]}},
      "required":["tags","from","to"]}}},
  {"type":"function","function":{"name":"get_active_alarms",
    "description":"List active alarms with priority, first-out flag, and asset.",
    "parameters":{"type":"object","properties":{"min_priority":{"type":"integer"}}}}},
  {"type":"function","function":{"name":"get_unit_status",
    "description":"Rolled-up status for generation units, BESS, chillers, BTES arrays, intertie.",
    "parameters":{"type":"object","properties":{}}}},
  {"type":"function","function":{"name":"search_docs",
    "description":"Retrieve passages from O&M manuals, permits, procedures, P&IDs, interconnection agreement.",
    "parameters":{"type":"object","properties":{"q":{"type":"string"},"k":{"type":"integer","default":6},
      "collection":{"type":"string","enum":["manuals","permits","procedures","drawings","agreements"]}},
      "required":["q"]}}},
  {"type":"function","function":{"name":"get_forecast",
    "description":"Load, thermal, or weather forecast from the site forecasters.",
    "parameters":{"type":"object","properties":{"kind":{"type":"string","enum":["load","thermal","weather"]},
      "horizon":{"type":"string","enum":["1h","24h","7d"]}},"required":["kind","horizon"]}}},
  {"type":"function","function":{"name":"get_dispatch_plan",
    "description":"Latest optimizer unit-commitment and heat-routing plan with constraints.",
    "parameters":{"type":"object","properties":{"date":{"type":"string"}}}}},
  {"type":"function","function":{"name":"file_advisory",
    "description":"Store a report or recommendation with its evidence trace.",
    "parameters":{"type":"object","properties":{"kind":{"type":"string"},"title":{"type":"string"},
      "body_md":{"type":"string"},"evidence":{"type":"array","items":{"type":"string"}}},
      "required":["kind","title","body_md","evidence"]}}},
  {"type":"function","function":{"name":"request_setpoint",   # step 4 only; disabled until then
    "description":"Propose a bounded change to an allow-listed setpoint. Requires human approval.",
    "parameters":{"type":"object","properties":{"setpoint_id":{"type":"string"},
      "value":{"type":"number"},"justification":{"type":"string"},"ttl_minutes":{"type":"integer"}},
      "required":["setpoint_id","value","justification"]}}}
]
04Example call through the gateway
# Same path every SAVRN module uses: the SAVRN AI Gateway
POST {gateway}/v1/chat
{
  "model": "savrn-plant-ops",
  "messages": [
    {"role":"system","content":"You are the SAVRN energy-island operations assistant. Every number you state must come from a tool result. You do not control equipment."},
    {"role":"user","content":"Write the 06:00 shift handover for the gas island and thermal plant."}
  ],
  "tools": [ ...the list above... ],
  "tool_choice": "auto"
}
# The model calls get_unit_status, query_tags (fuel, MW, heat balance, BTES), get_active_alarms,
# then file_advisory with kind="shift_report". Nothing else happens.
05Three rules for integration code

Scripts that poll OPC UA from the model-facing layer, paste raw numbers into prompts, or post to an ad hoc local model server are not used. These three rules apply.

Model path

The SAVRN AI Gateway is the only model path (policy, attestation, logging, and local-only enforcement live there). The inference server sits behind it and is never called directly.

Numbers via tools, not prompts

Do not paste values into the prompt. The model calls query_tags or get_unit_status, and the tool result is logged. Every figure in an advisory traces to a tool call id. Prompt-stuffed numbers cannot be audited.

OPC UA stays at the edge

The OPC UA and Modbus clients live in the edge and SCADA layer (Tier 2), publishing into the namespace and historian. The model-facing service (Tier 3) reads the historian. The model zone never holds an OT client.

Minimal example

# Tier 3: tool service over the historian (FastAPI), and a call through the gateway with tools.
# Edge (Tier 2) already moved OPC UA / Modbus data into TimescaleDB via Sparkplug B.
from fastapi import FastAPI, Query
import psycopg, requests, json

app = FastAPI()

@app.get("/v1/tags/query")
def query_tags(tags: list[str] = Query(..., max_length=24), frm: str = "", to: str = "",
               agg: str = "avg", bucket: str = "5m"):
    sql = f"""SELECT time_bucket(%s, ts) AS t, tag, {agg}(value) AS v
              FROM plant_ts WHERE tag = ANY(%s) AND ts BETWEEN %s AND %s
              GROUP BY t, tag ORDER BY t LIMIT 5000"""
    with psycopg.connect("dbname=plant") as cx:
        rows = cx.execute(sql, (bucket, tags, frm, to)).fetchall()
    return {"bucket": bucket, "agg": agg, "rows": rows}

# Caller (a SAVRN agent or a scheduled job): gateway + tools, never raw numbers.
def shift_report():
    r = requests.post(GATEWAY + "/v1/chat", json={
        "model": "savrn-plant-ops",
        "purpose": "plant_ops",
        "messages": [
            {"role": "system", "content": "You are the SAVRN energy-island operations assistant. "
                                          "State only numbers returned by tools. You do not control equipment."},
            {"role": "user", "content": "Write the 06:00 shift handover for the gas island and thermal plant."}],
        "tools": PLANT_TOOLS,          # the list in this section
        "tool_choice": "auto"})
    return r.json()   # the gateway runs the tool loop against the Tier 3 service and returns the advisory
06What a tool result looks like

Tool results are structured objects keyed by namespace path, not flat tag dumps. The model is trained on this shape, so it reads meaning and status, not just a number.

{
  "path": "site/biomass_capture/amine_unit/reboiler_duty_mw",
  "asset": "Amine capture unit",
  "measure": "Reboiler thermal duty",
  "value": 41.2, "unit": "MW_th",
  "status": "nominal",          # nominal | watch | alarm, from the alarm server
  "quality": "good",            # good | uncertain | bad, from the edge
  "ts": "2026-08-21T13:05:00Z",
  "range": [30, 50], "source": "capture DCS via OPC UA"
}
07Setpoint request and envelope (step 4)

The model populates a draft. A deterministic validator checks it against the engineered envelope. An operator approves it in the HMI. Only then does anything move.

# draft from the model (via request_setpoint)
{"setpoint_id":"rondo.charge_power_mw","value":120,"ttl_minutes":60,
 "justification":"Off-peak price window 02:00-06:00; thermal SoC 38 percent; forecast reboiler + turbine demand 190 MW_th."}

# envelope held by the setpoint service, written by the engineer of record, changed only by change control
{"setpoint_id":"rondo.charge_power_mw","min":0,"max":170,"ramp_limit_mw_per_min":10,
 "allowed_modes":["grid_connected"],"requires_approval":true,"approver_role":"shift_supervisor"}

# validator result: pass or a named reason; every request and outcome is logged to the historian
{"request_id":"...","valid":true,"checks":["range","ramp","mode","ttl"],"approval":"pending"}
08Policy in the gateway
  • A purpose value, purpose="plant_ops", maps to the plant model, local only, tools allowed, and the plant tool set.
  • request_setpoint is not in the tool list until step 4, and the endpoint returns 403 until the setpoint service is commissioned.
  • Every tool call and result is logged with the conversation id, so an advisory can be replayed and audited.

07Training the model for the plant

The SAVRN training program has the pipeline: corpus, adapter training, merge, quantize, golden-set qualification, manifest cutover, rollback. The plant adds its own corpus and golden set. Collection starts now; most of it exists before the plant runs.

Corpus to assemble (by priority)

  • Tag dictionary and asset model (names, units, ranges, meanings). This is the single highest-value document; it is what makes tool results legible to the model.
  • Alarm rationalization: each alarm, cause, consequence, operator action (ISA-18.2 format).
  • OEM O&M manuals: gas turbine and HRSG, steam turbines, biomass boilers, Rondo units, amine capture unit, SCR, chillers, CDUs, BESS, relays.
  • Site procedures: startup, shutdown, islanding, black-start, Rondo charge and discharge, steam header balancing, capture unit start and stop, BTES charge and discharge, emergency.
  • Permits and agreements: state license conditions, air district permit, Title V, utility interconnection agreement and tariff, gas service agreement, Class VI permit or sequestration offtake agreement, credit documentation (§45Y, §45Q, §48, §48E).
  • Drawings as text: one-lines, P&IDs, cause-and-effect matrices, control narratives (the power management and controls drawing is the first one).
  • SAVRN specifications: the power-system specification, the Atom power interface control document, the site development document.

Golden set for the plant (evaluation)

  • Shift report from a synthetic day of data: every number traceable, format correct.
  • Alarm flood case: identifies first-out, groups causes, cites the right procedure.
  • Permit question: "what is the NOx limit and averaging period" answered with citation.
  • Heat-routing recommendation: reads optimizer output, explains, does not invent constraints.
  • Refusal case: asked to "open the intertie breaker", the model declines and explains the approval path.
  • Unit conversion and heat-rate arithmetic done through tools, not in the head.

Score with the same judge pattern the program uses. Compare against the untrained base model on the same tool path.

How the model is trained for the plant, and how it gets back outCorpustag dictionary · alarm rationalization ·manuals · procedures · permits · drawings astextAdapter traininglow-rank adapters on the plant corpus ·behavior, not numbersMerge and quantizeone model file · pinned build · checksummanifestGolden setshift report · alarm flood · permit question· refusal case · arithmetic through toolsCutovermanifest written · gateway points at the newmodel · rollback script keptOperate and rateoperators rate advisories · number audit ·backtest against historynew rows · new golden casesgolden set fails → no cutover · rollback to the previous manifestlive values always come from tools; training teaches tag semantics, report formats, procedure structure and refusal behavior
The training loop. The golden set gates every cutover; a rollback manifest is always kept; operator ratings and the backtest feed the next round.

Backtest before any recommendation is enabled

Once operating history exists (commissioning data first, then the first months of operation), the model's recommendations are run against it. For each historical day, the model sees what the operators saw and proposes; the proposal is compared with what the operators and the deterministic controls did. Every proposal that would have crossed an envelope (a ramp too fast, a unit outside its limits, a charging window that the interconnection could not carry) is a named failure mode. Each one becomes a golden-set case, a prompt or retrieval fix, or a training row. Recommendations go live only when the backtest shows no envelope violations and the explanations are rated usable by the operators.

Two training rules for this domain

08Build steps

Five steps. Each lists what gets done and what "done" looks like. Steps 1 and 2 run on a workstation before a sensor is installed.

Build steps, and where the work stands1Design the datanamespace · asset modelOpenAPI · corpus · golden setdone whenall five arewritten and reviewed2Simulator + read-only copilotbroker · historiantool API · model tool loopdone whenthe golden setpasses on the simulator3Real plant data, advisoryedge gateways · DMZforecaster · optimizerdone when90 days run withzero model paths into OT4Supervised setpointsallow-list · validatorHMI approvaldone whenevery request islogged end to end5Bounded automationoptimizer issues valueskill switchdone whenthe safetycase is signedyou are here · 2026-08steps 1 and 2 run on a workstation and are built · step 3 starts with the controls integrator on real plant datasteps 4 and 5 are gated by the engineer of record
The five build steps on one track, each with its done-when check, and the current position.
Step 1Design the data
  1. Write the unified namespace for the energy island: areas, assets, tag names, units, ranges, rates, for every subsystem in section 03.
  2. Write the asset model (ISA-95 hierarchy) with the credit boundaries in it: biomass facility, energy storage unit, CHP tie-in, capture unit.
  3. Freeze the tool contracts in section 06 as an OpenAPI file.
  4. Collect the corpus in section 07 and index it.
  5. Write the golden set: shift report, alarm flood, permit question, heat-routing recommendation, refusal case, arithmetic-through-tools.
Done when: namespace document, asset model, OpenAPI file, corpus inventory, and golden set are written and reviewed.
Step 2Simulator and read-only copilot
  1. Build the plant simulator: synthetic tags for every subsystem in section 03 (gas block, Rondo, steam turbine, biomass, capture, thermal plant, BESS, intertie, data center), published over MQTT Sparkplug B.
  2. Stand up the broker, TimescaleDB, Grafana, and the read tool API on a workstation.
  3. Wire the gateway: purpose=plant_ops, the plant tool set, per-call logging.
  4. First check: the model answers "what is the current MW output of the steam turbine" from the live stream, through the tool, with the right unit, timestamp, and quality, every time.
  5. Run jobs 1 to 5 against the simulator. Train round 1 of the plant model. Score against the golden set and against the untrained base model on the same tool path.
Done when: shift report, alarm summary, and permit Q&A pass the golden set on the simulator with every number traceable to a tool call.
Step 3Real plant data, advisory
  1. With the controls integrator: edge gateways, namespace, historian on the plant. Commissioning data first, then operations.
  2. DMZ with one-way telemetry outward. IEC 62443 zone and conduit assessment.
  3. Forecaster and optimizer services: load, thermal, weather, Rondo charging windows, unit commitment, heat routing. Jobs 6 to 8 as advisories.
  4. Backtest (section 07) against commissioning and early operating history before jobs 6 to 8 are switched on.
  5. Operators rate advisories in the SAVRN operator workspace; ratings feed the next training round.
Done when: 90 days of operations with advisory acceptance tracked, zero model paths into OT, zone assessment signed.
Step 4Supervised setpoint requests
  1. Commission the setpoint request service with an allow-list of economic, non-safety setpoints (Rondo charging window and power, BESS SoC target, BTES loop share).
  2. Enable request_setpoint for named operators. Approval in the HMI. Audit to the historian.
  3. Expand the allow-list only by written change control signed by the engineer of record.
Done when: every approved request is logged end to end and the engineered envelopes are documented and reviewed by the protection and controls engineer of record.
Step 5Bounded automation
  1. For loops proven in step 4 only: the optimizer issues the value, the model remains the explainer.
  2. Kill switch in the HMI. Automatic fallback to operator dispatch on any gateway, broker, or historian fault.
  3. Safety case reviewed against IEC 62443 and the site protection philosophy.
Done when: the safety case is signed. This step is taken only if steps 3 and 4 show it is worth taking.

09Standards and obligations map

What each standard governs here and what it means for the design. Applicability items marked "confirm" need a ruling from the engineer of record or the counterparty.

Where each standard lands on the plantGas line · meterAGA 3 / 8 / 9Gas block · HRSG · SCR40 CFR 60 KKKK · NFPA 85 ·40 CFR 75 (confirm)Stack · CEMS40 CFR 60 App. B/F· air district ·Title VSteam turbineAPI 670 ·ISA-18.2/101Utility intertieIEEE 1547 · 2800 ·UL 1741 SB · C37.2· IEC 61850 · NERCCIP (confirm)BESSUL 9540 · 9540A ·NFPA 855Biomass units40 CFR 60 Db · 63DDDDD (confirm)Amine capture · CO240 CFR 98 RR/PP · 40 CFR146 Class VI · GHGreportingRondo heat batteryIRC §48E records ·PFEThermal plant · BTESwater and countyreportingData centerISA-95 asset modelModel zone · gatewayISA/IEC 62443 ·NIST SP 800-82 ·NIST AI RMF§45Y facility boundary§45Q capture unit boundary§48E unit (with the turbine)§48 CHP tie-in scopedashed boxes are tax-credit measurement boundaries: each reads its own meters · "confirm" marks a ruling needed from the engineer of record or counterparty
Each standard pinned to the equipment it governs. The dashed boxes are the tax-credit measurement boundaries.
01Security and architecture
Standard / ruleGovernsWhat it means for this framework
ISA/IEC 62443OT cybersecurity: zones, conduits, security levelsModel and platform sit in a separate zone; DMZ conduit; no direct OT reach.
NIST SP 800-82 Rev. 3OT security guide (US)Reference architecture for the DMZ and one-way telemetry.
ISA-95 / PurdueEnterprise to control integration levelsVocabulary in section 02; asset model structure.
NERC CIPBulk electric system cyber securityConfirm: if the island's interconnection meets the BES definition (aggregate nameplate above 75 MVA at 100 kV or higher), at least low-impact CIP applies. Ruling needed with the utility and the regional entity.
NIST AI RMFAI risk managementFrame the model's role, monitoring, and human oversight in the safety case.
02Grid, electrical, and machinery
Standard / ruleGovernsWhat it means for this framework
IEEE 1547-2018 / IEEE 2800-2022 / UL 1741 SBDER and inverter-based resource interconnectionIntertie relay settings and BESS behavior; the utility specifies which applies by voltage level.
IEEE C37.2 · IEC 61850Device numbers; substation communicationsRead relay data; never bridge GOOSE outward.
ISA-18.2 · ISA-101Alarm management; HMI designAlarm rationalization is training data (job 2); HMI owns operator approval UI.
API 670Machinery protectionVibration trips are hard-wired; the model only trends.
03Emissions, permits, and reporting
Standard / ruleGovernsWhat it means for this framework
40 CFR 60 Subparts KKKK / JJJJ; 40 CFR 63 ZZZZNSPS for turbines / SI engines; RICE NESHAPWhich one applies depends on the generation choice. CEMS QA per 40 CFR 60 Appendix B and F.
40 CFR 75Acid Rain / CSAPR monitoringConfirm: depends on whether units are "utility units" selling power. Affects CEMS specification.
Air district rules · state power plant licensing · Title VLocal NOx limits, state licensing of thermal plants above the size threshold, major source permitsPermit limits become tool-visible constraints and report templates.
State GHG reporting · EPA GHGRPGHG reportingAnnual report drafting from fuel and HHV data (job 5).
40 CFR 98 Subparts RR and PP · 40 CFR 146 (Class VI)MRV for geologic sequestration and CO2 supply; injection well programDefines the CO2 metering, monitoring, and reporting the capture unit and well must produce (3.13). §45Q depends on it.
40 CFR 60 Subpart Db · 40 CFR 63 Subpart DDDDDNSPS for industrial steam generating units; Boiler MACTConfirm: applicability to the refurbished wood-waste boilers depends on size, date, and source status. Sets CEMS and monitoring for 3.10.
04Safety, storage, and fuel measurement
Standard / ruleGovernsWhat it means for this framework
UL 9540 / UL 9540A / NFPA 855Energy storage safetyBESS telemetry includes off-gas and suppression status; no model path to BESS safety systems.
NFPA 37 · NFPA 85Engine installations; boiler and combustion systems (HRSG)Safety interlocks stay in hard-wired or PLC logic.
AGA 3 / 8 / 9Gas measurementFuel accounting tags and their meaning.
05Tax credits
Standard / ruleGovernsWhat it means for this framework
IRC §45Y · §45Q · §48 · §48E · §6418Clean electricity PTC, carbon capture credit, legacy CHP ITC, clean electricity ITC (energy storage), transferabilityEach credit sets a measurement boundary and a records requirement (PWA, PFE, placed-in-service, 80/20). Telemetry and documents must be kept per unit.

10Learning path

Written as a course. Ten modules in order. Each has a goal, what to read, and a lab on a workstation. The labs build on each other and end with the step 2 simulator running against the model.

The learning path as a staircase: each tread is a lab outputM1Purdue62443zone mapM2Instrumentstag dictM3ModbusOPC UASparkplugedge streamM4HistorianUNSquery APIM5ControlsprotectionBESS studyM6Steamheat batteryBTESthermal simM7CEMScompliancereport draftM8ForecastanomalyMILP2 endpointsM9ModelRAGgolden setstep 2 gateM10Latencybudgetnode sizingmodules 1 to 4 foundation · 5 to 7 domain · 8 math · 9 the model · 10 tuning. Doing 9 first produces a demo that cannot be trusted.
The ten modules as a staircase; each tread is the lab output that proves the module.
M1The map: Purdue, ISA-95, and IEC 62443

Goal: be able to draw the plant's zones and say which protocol crosses which boundary.

Lab 1: redraw the ring diagram in section 02 for the energy island with every subsystem in section 03 placed in a zone.

M2Instruments and what they measure

Goal: know what a transmitter, a flow computer, a CT/PT, and a vibration probe actually put on the wire.

  • Kuphaldt, Lessons in Industrial Instrumentation (free, creative commons): ibiblio.org/kuphaldt/socratic/sinst/. Chapters on pressure, temperature, flow, level, and 4 to 20 mA / HART.
  • AGA Report No. 3, 8, 9 summaries from the flow-computer vendor of your choice (Emerson, ABB, Honeywell all publish primers).

Lab 2: build the tag dictionary for subsystems 3.1 and 3.2: name, unit, range, rate, source protocol. This file becomes training data.

M3Protocols hands-on: Modbus, OPC UA, MQTT Sparkplug B

Goal: read a register, browse an OPC UA server, publish a Sparkplug metric.

Lab 3: on a workstation run Mosquitto (broker) and a Python script that simulates the gas turbine (MW, Hz, exhaust temperatures, fuel flow) as a Modbus TCP server, a second script that polls it and publishes Sparkplug B, and a third that subscribes and prints. You now have the edge layer of section 04.

M4Historian and unified namespace

Goal: store tags in TimescaleDB, query by time bucket, attach the asset model.

Lab 4: subscribe the Lab 3 stream into TimescaleDB, build a 1-minute continuous aggregate, and plot it in Grafana. Write the /v1/tags/query endpoint in FastAPI over it.

M5Power plant controls and protection, enough to be dangerous

Goal: understand governor and AVR roles, droop vs isochronous, grid-forming vs grid-following, and what the relay device numbers mean.

  • Blackburn and Domin, Protective Relaying: Principles and Applications (textbook).
  • IEEE 1547-2018 and IEEE 2800-2022 summaries (IEEE SA): standards.ieee.org.
  • SEL application guides and the SAVRN power management and controls drawing for the PMC and BESS pattern.
  • Woodward governor fundamentals (vendor primers on speed and load control).

Lab 5: extend the simulator with a grid-forming BESS (SoC, P/Q, mode) and an intertie relay state. Simulate a GPU step load and watch BESS take it while the turbines ramp. Write up which layer acted and how fast, using the control timing table in section 02.

M6Steam cycles, heat batteries, absorption cooling, and BTES

Goal: do the heat balance by hand: fuel in, electricity out, reboiler duty, Rondo steam, turbine extraction, chiller tons, BTES charge.

  • The Rondo heat battery datasheet for charge, storage, and discharge behavior.
  • ASHRAE Handbook, HVAC Systems and Equipment, chapter on absorption equipment.
  • The SAVRN site development document (heat-balance table) and the BTES section drawing.
  • IEA ECES / borehole thermal storage primers; thermal response test method references.

Lab 6: add Rondo (charging MW, brick temperatures, steam out), the steam header, the amine reboiler duty, and the thermal plant (exhaust heat, absorption chiller COP, CDU loop, BTES array temperatures with a slow seasonal drift) to the simulator. Expose /v1/units/status for it.

M7Emissions and compliance data

Goal: know what a CEMS reports, what the averaging periods are, and what the permit limit looks like as data.

  • EPA, 40 CFR Part 60 Appendix B (performance specifications) and Appendix F (QA): ecfr.gov (40 CFR 60).
  • The local air district rules and the state power plant licensing pages.

Lab 7: simulate CEMS 1-minute NOx and O2, compute the 15 percent O2 corrected value and the permit averaging period, and expose /v1/compliance/cems. Have the model draft an excess-emission report from a synthetic exceedance.

M8Forecasting, anomaly detection, and optimization (the math the model calls)

Goal: build a simple load forecaster, a statistical anomaly detector, and a small dispatch optimizer, each behind an endpoint.

  • Forecasting: gradient-boosted trees on scheduler queue + weather (scikit-learn or LightGBM).
  • Anomaly detection: rolling z-score and isolation forest as a start.
  • Optimization: a small MILP with PuLP or OR-Tools for unit commitment and heat routing.

Lab 8: ship /v1/forecast/load and /v1/dispatch/plan from these. Keep them deterministic and versioned.

M9The model on top: tools, RAG, golden set, fine-tune

Goal: run jobs 1 to 5 end to end on the simulator through the SAVRN AI Gateway with the SAVRN model.

  • SAVRN model serving and gateway documentation, the training pipeline, and the qualification scripts.

Lab 9: register the tool set in the gateway under purpose=plant_ops, index the corpus in section 07, run the golden set, train round 1, compare against the untrained base model on the same tool path. This is the step 2 done-when check.

M10Inference optimization and the latency budget

Goal: know what the model path costs in time and memory, and where that matters. Alerting is the alarm system's job and is not on the model's clock. The model's latency matters for the operator copilot (a few seconds is fine) and for scheduled jobs (minutes are fine).

  • Inference server options: context size, KV cache quantization, parallel slots, prompt caching.
  • Quantization trade-offs: measure before changing.
  • Prompt caching for the long system prompt and tool definitions, so a tool-loop turn costs only the new tokens.

Lab 10: measure time-to-first-token and tokens per second for a shift-report call with the full tool list, with and without prompt caching. Record the budget. Size the plant inference node from it.

Order matters. Modules 1 to 4 are the foundation and take the longest to internalize. Modules 5 to 7 are domain. Module 8 is the math. Module 9 is the model. Module 10 is tuning. Doing 9 first produces a demo that cannot be trusted; doing 1 to 8 first produces a system the model can be trusted inside of.

11Execution phase

Items closed during execution. Each names the owner and what closing it unlocks in the data design, the tool contracts, or the model's jobs.

ItemOwnerWhat it unlocks
Combined-cycle gas block configurationSAVRN + EPCUnit size, HRSG arrangement, reboiler extraction point, SCR and CEMS scope. Sets the OEM controller and the tag set in 3.2 and 3.4.
Rondo unit count and phasingSAVRN + RondoThe 4,519 MWh_th bank is built in units; the unit count sets the number of controllers and how the charging draw ramps on the utility line.
Sequestration counterparty (Class VI well vs contracted offtake)SAVRN + counselDecides whether 3.13 includes well-site SCADA and Subpart RR MRV, or a custody meter and an offtake contract.
Metering boundaries for §45Y / §48E / §48 / §45QEngineer of record + tax counselMeter placement and the asset model must let each credit be read from its own instruments.
Utility interconnection termsUtility + SAVRNDNP3 point list, relay requirements, export rules, whether NERC CIP applies. The line carries the Rondo charging draw on the order of 170 MW plus biomass export.
Controls integrator and SCADA vendorSAVRNOwns the edge layer, the namespace, and the historian. Receives the tool contracts in section 06 at selection.
Historian (TimescaleDB target, PI alternate)SAVRNConfirmed with the O&M contractor at integrator selection.
CEMS scope (Part 60 vs Part 75)Environmental counselChanges analyzers, QA schedule, and report templates.
Setpoint allow-list for step 4Engineer of recordDefines the only things the model may ever propose to change.
Gas measurement and nomination interfaceGas supplier + SAVRNFuel accounting tags and the daily nomination workflow for the on-site line.

12Glossary

  • AVR automatic voltage regulator on a generator.
  • BESS / PCS / BMS battery energy storage system; power conversion system (the inverter); battery management system.
  • BECCS bioenergy with carbon capture and storage: biomass combustion with CO2 capture and geologic sequestration.
  • BTES borehole thermal energy storage: closed-loop pipes in boreholes that store heat in the ground.
  • CDU coolant distribution unit for liquid-cooled racks.
  • CEMS / DAHS continuous emissions monitoring system and its data acquisition and handling system.
  • DGA dissolved gas analysis of transformer oil.
  • DTT direct transfer trip from the utility (device 85).
  • Droop / isochronous generator speed-control modes; droop shares load, isochronous holds frequency.
  • Grid-forming / grid-following an inverter that sets voltage and frequency vs one that tracks them.
  • EST / heat battery energy storage technology; here the Rondo refractory-brick unit charged by resistive heaters and discharged as steam.
  • HHV / Wobbe higher heating value; Wobbe index (interchangeability of gas).
  • MRV monitoring, reporting, and verification (for sequestered CO2).
  • HRSG / SCR heat recovery steam generator; selective catalytic reduction for NOx.
  • Historian time-series database for plant tags.
  • Adapter training / quantization training a small set of added weights on the plant corpus; reducing model precision to fit the inference node.
  • PMC / EMS power management controller; energy management system.
  • Sparkplug B MQTT topic and payload specification for industrial data.
  • Unified namespace (UNS) one hierarchical topic tree that every system publishes into and reads from.
  • Setpoint a target value a controller holds (for example, BESS SoC 70 percent).
  • Engineer of record the licensed engineer responsible for the design.