Closed-loop LPG splitter — dual zero-offset PI control — a PENG-ROBINSON process flowsheet
Two independent, genuinely converged integral (PI) control loops in one train, wired on the canvas (transmitter → controller → manipulated unit, not just reported): a feed preheater's duty holds the column feed at its temperature setpoint, and the column's distillate-to-feed split ratio holds the bottoms temperature at its setpoint — a classic temperature-inferred composition control scheme (this solver has no composition transmitter, so temperature is the composition proxy, exactly as most real columns are actually controlled). Both loops reach a genuine zero-offset steady-state operating point via the flowsheet's outer fixed-point iteration (result.control_iterations > 0), each report's measured equal to its setpoint. This is honestly decentralized SISO PI control, not simultaneous MIMO DMC (no predictive horizon, no MV/CV interaction matrix, no constraint handling) — that capability lives in the separate live APC/MPC runtime (see the Control Room), not a static flowsheet example.
119 views 1 forks
- Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
- 4 unit operations modeled: PH, 2× TT BOT, 2× CTRL BOT, COL.
- Focus areas: Closed-loop control, PI control, Temperature-inferred composition control.
- Thermodynamics
- PENG-ROBINSON
- Components
- n_butane, n_pentane
- Unit operations
- PH2× TT BOT2× CTRL BOTCOL
Opens in a new tab, loaded straight into the app — no setup.
Read the step-by-step guideReproduce this exact result from Python — the real client.get_example() → run_and_wait() path, not a mockup.
from flowsim.sdk import FlowSimClient
client = FlowSimClient()
example = client.get_example("closed-loop-distillation-dual-pi")
sim = client.create_simulation(example["title"], example["flowsheet"])
result = client.run_and_wait(sim["id"])
print(result["status"]) # "converged"
streams = client.streams(sim["id"])