ALLSHIFT/AICONTROL/configs/env.yaml
pepe ef7857da31 Add shared Python environment, AICONTROL cluster folder, and CLAUDE.md
- Root pyproject.toml + uv.lock: one pinned Python 3.12 environment for every
  cluster (the Project Manual's rule), as a uv workspace; cluster code folders
  are workspace members.
- AICONTROL/: the AI & Control cluster package. spaces.py builds the 64-value
  observation and 4-value action spaces from configs/env.yaml; interface draft
  for the November session with Simulations; tests; clone-and-run README.
- .gitignore: Python environment, caches, W&B runs, raw data downloads.
- CLAUDE.md: repository guidance for Claude Code.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-11 14:15:02 +02:00

40 lines
2 KiB
YAML

# Environment settings — the shape of the Simulations → AI handover.
#
# This file feeds aicontrol/env/spaces.py now and the placeholder environment next week.
# Values marked PLACEHOLDER are ours until: the joint session with Simulations (November)
# for sizes, ranges and the forecast layout; the reward-weight conversation with Energy
# Management and Business (Q2) for the weights. Same YAML style as Simulations' scenario
# files, to be aligned with their core developer.
step_minutes: 5 # the manual's timestep; 105,120 steps per year
plant: # PLACEHOLDER: the Rijnstate-type pilot plant from the cost register
pv_kw: 460 # 2,300 m² of panels
electrolyser_kw: 118 # H2B2 EL20N datasheet, found in the live Simulink model
fuel_cell_kw: 100
battery_kwh: 500
battery_kw: 250
h2_capacity_kg: 200
tank_p_max_bar: 30 # 30 bar storage, from the cost register
load_max_kw: 1000 # upper bound for scaling load observations, PLACEHOLDER
observation:
price_range: [-1.0, 5.0] # currency per kWh; negative prices happen
co2_range: [0.0, 1.5] # kg CO2 per kWh
forecast: # the block of forecasts the agent sees; layout to agree with Simulations
quantities: [solar, tier1, tier2, tier3]
horizons_min: [60, 180, 360, 1440]
quantiles: [p10, p50, p90] # best / likely / worst, as the manual asks
action:
shedding_levels: 3 # 0 nothing, 1 Tier 3, 2 Tiers 2 and 3
reward: # PLACEHOLDER weights — not ours to set; a proposal for the Q2 conversation
cost_per_currency: -1.0 # energy cost this step
co2_per_kg: -0.05 # emissions this step
tier1_unserved_per_kwh: -1000.0 # must dominate everything else
tier2_shed_per_kwh: -2.0
tier3_shed_per_kwh: -0.5
limit_violation: -10.0 # battery or tank pushed past a safe limit
switching: -0.1 # equipment switched on or off this step