StatusParameters¶
StatusParameters add on/off behavior to flows — startup costs, minimum run times, cycling limits.
Basic: Binary Status¶
A status variable \(s(t) \in \{0, 1\}\) controls whether equipment is active:
generator = fx.Flow(
label='power', bus=elec_bus, size=100,
relative_minimum=0.4, # 40% min when ON
status_parameters=fx.StatusParameters(
effects_per_startup={'costs': 25000}, # €25k per startup
),
)
When \(s(t) = 0\): flow is zero. When \(s(t) = 1\): flow bounds apply.
Startup Tracking¶
Detect transitions: \(s^{start}(t) - s^{stop}(t) = s(t) - s(t-1)\)
Duration Constraints¶
Once on, must stay on for minimum duration:
\(s^{start}(t) = 1 \Rightarrow \sum_{j=t}^{t+k} s(j) \geq T_{up}^{min}\)
Once off, must stay off for minimum duration:
\(s^{stop}(t) = 1 \Rightarrow \sum_{j=t}^{t+k} (1 - s(j)) \geq T_{down}^{min}\)
Force shutdown after limit:
\(\sum_{j=t-k}^{t} s(j) \leq T_{up}^{max}\)
Reference¶
| Symbol | Type | Description |
|---|---|---|
| \(s(t)\) | \(\{0, 1\}\) | Binary status (0=off, 1=on) |
| \(s^{start}(t)\) | \(\{0, 1\}\) | Startup indicator |
| \(s^{stop}(t)\) | \(\{0, 1\}\) | Shutdown indicator |
| \(T_{up}^{min}\) | \(\mathbb{R}_{\geq 0}\) | Min uptime in hours (min_uptime) |
| \(T_{up}^{max}\) | \(\mathbb{R}_{\geq 0}\) | Max uptime in hours (max_uptime) |
| \(T_{down}^{min}\) | \(\mathbb{R}_{\geq 0}\) | Min downtime in hours (min_downtime) |
| \(H^{min}\) | \(\mathbb{R}_{\geq 0}\) | Min total active hours (active_hours_min) |
| \(H^{max}\) | \(\mathbb{R}_{\geq 0}\) | Max total active hours (active_hours_max) |
| \(\Delta t\) | \(\mathbb{R}_{> 0}\) | Timestep duration (hours) |
Classes: StatusParameters, StatusModel