# RL State Variables > **Markdown report of a non-markdown source document.** > > | | | > |---|---| > | **Source** | [`docs/_originals/STATE VARIABLES AND DESCRIPTIONS.docx`](../_originals/STATE%20VARIABLES%20AND%20DESCRIPTIONS.docx) | > | **Format** | Microsoft Word (.docx), 14.7 kB | > | **MD5** | `59dde2384627aa8cdc0412ed6d7f589f` | > | **Owner** | AI & Control Systems cluster | > | **Status** | Current — but see [Naming mismatch](#naming-mismatch-with-the-simulator-io-contract) | > | **Report generated** | 2026-07-25 | ## What this document is The observation space for the reinforcement-learning controller: everything the agent is allowed to *see* at each timestep. It is the counterpart to [RL Action Variables](rl-action-variables.md) (what the agent may *do*) and [RL Reward Function](rl-reward-function.md) (how it is *scored*). Thirty-two variables in eight groups. The source document gives a name and a one-line description for each; it does **not** specify units, ranges, or datatypes — those are implied at best. Adding them is the obvious next revision. ## State variables ### Photovoltaic array | Variable | Description | |---|---| | `PV_Generation` | Current electrical power produced by the solar panels. | | `Solar_Irradiance` | Amount of sunlight hitting the panels (W/m²). | | `PV_Temperature` | Panel temperature affecting efficiency. | | `PV_Efficiency` | Conversion efficiency of the PV array at the current moment. | ### Battery | Variable | Description | |---|---| | `Battery_SOC` | Battery state of charge (%) indicating energy stored. | | `Battery_Current` | Charge/discharge current flowing through the battery. | | `Battery_Voltage` | Terminal voltage of the battery pack. | | `Battery_Temperature` | Battery temperature affecting performance and lifespan. | ### Electrolyser | Variable | Description | |---|---| | `Electrolyzer_Power` | Electrical power supplied to the electrolyzer. | | `Electrolyzer_H2_ProductionRate` | Amount of hydrogen being produced per unit time. | | `Electrolyzer_WaterLevel` | Water reservoir level needed for electrolysis. | | `Electrolyzer_Temperature` | Stack temperature affecting efficiency and safety. | | `Electrolyzer_StackHealth` | Degradation/health level of the electrolyzer stack. | ### Hydrogen storage | Variable | Description | |---|---| | `HydrogenTank_Level` | Current amount of hydrogen stored in the tank. | | `HydrogenTank_Pressure` | Internal pressure of the hydrogen storage tank. | | `HydrogenTank_Temperature` | Tank temperature affecting pressure and safety. | ### Fuel cell | Variable | Description | |---|---| | `FuelCell_Power` | Current electrical power produced by the fuel cell. | | `FuelCell_Temperature` | Fuel cell stack temperature. | | `FuelCell_H2_ConsumptionRate` | Rate at which the fuel cell consumes hydrogen. | | `FuelCell_StackHealth` | Degradation/health of the fuel cell stack. | ### Grid | Variable | Description | |---|---| | `Grid_Status` | Whether the grid is online/offline/faulted. | | `Grid_Price` | Current real-time electricity price from the grid. | | `Grid_Availability` | Whether grid import or export is allowed at the moment. | ### Hospital load | Variable | Description | |---|---| | `Hospital_Load` | Total electrical demand of the hospital. | | `Critical_Load` | Portion of the load that must always be powered. | | `NonCritical_Load` | Flexible load that can be shed or shifted. | | `Predicted_Load` | Forecasted load in the near future. | ### Environment and calendar | Variable | Description | |---|---| | `Ambient_Temperature` | Outside temperature affecting PV, battery, and loads. | | `Ambient_Humidity` | Humidity affecting cooling and equipment performance. | | `TimeOfDay` | Current hour used for daily patterns in generation/load. | | `DayType` | Whether it is a weekday, weekend, or holiday (affects load patterns). | ## Naming mismatch with the simulator I/O contract This document and the [Simulator I/O Interface](simulator-io-interface.md) describe the same system with **two different naming conventions**, and neither references the other: | Concept | This document | Simulator I/O sheet | |---|---|---| | Battery state of charge | `Battery_SOC` (%) | `SoC(t)` (0–1) | | PV power | `PV_Generation` | `P_PV_available(t)` / `P_PV_used(t)` | | Hydrogen stored | `HydrogenTank_Level` | `H2_level(t)` (mol or kg) | | Critical demand | `Critical_Load` | `L_crit(t)` (W) | | Grid availability | `Grid_Availability`, `Grid_Status` | `grid_on(t)` (1/0) | The simulator sheet also **omits** several states listed here — stack health, water level, humidity, and all four component temperatures — because it assumes an isothermal tank and no degradation model (both flagged as open questions in that document). Conversely this document lists no `DayType` or `TimeOfDay` equivalent in the simulator outputs. **Neither document is wrong; they are unreconciled.** Before the environment is coded, one naming convention and one authoritative variable set has to win. The Simulator I/O sheet is the more rigorous artefact (it has units, ranges, sign conventions, and an explicit power-balance invariant), so it is the natural base — but it needs the health/temperature states from this document if degradation or thermal effects are to be modelled at all. ## Related - [RL Action Variables](rl-action-variables.md) — the action space - [RL Reward Function](rl-reward-function.md) — the reward terms - [Simulator I/O Interface](simulator-io-interface.md) — the typed simulator contract - [Rule-Based Controller](rule-based-controller.md) — the baseline policy this agent must beat