Ethylene glycol plant: fiber-grade MEG + DEG/TEG byproducts — a PENG-ROBINSON process flowsheet
Extends the EO/glycol chain all the way to separated products. Ethylene + O2 make ethylene oxide over a silver catalyst (with the competing total-combustion side reaction), EO condenses out, and then hydrates through the real CONSECUTIVE glycol reactions — EO + H2O -> MEG, EO + MEG -> DEG, EO + DEG -> TEG (all atom-balanced, keyed on the shrinking EO pool) — giving the industrial ~90/9/1 mono-/di-/tri-ethylene-glycol selectivity that a high water:EO ratio produces. The purification train recovers the water for recycle and splits the glycols into fiber-grade MEG (>=99.9%), DEG, and TEG products. HONEST SCOPE: the reaction chemistry is rigorous stoichiometry (real atom balances, realistic selectivity set by the fixed conversions); the PURIFICATION is modelled with spec-based component-split separators to the known product purities (the Aspen 'Sep'-block technique for a well-understood separation section), NOT rigorous vacuum distillation columns — a converged 99.9%-fiber-grade MEG column is not tractable in this solver under Peng-Robinson (the MEG/DEG relative volatility is too narrow for the wide-boiling MESH path; a real plant uses large multi-effect evaporators + vacuum columns). The water-recycle stream is left open (not looped back) — an honest simplification, like the parent EO example's ethylene recycle.
6 views 0 forks
- Rigorous PENG-ROBINSON thermodynamics, solved by the same engine every simulation runs on.
- 5 unit operations modeled: 2× MIX1, 5× RXN3, 2× Cool1, Condense, 4× DEG COL.
- Focus areas: Ethylene glycol, MEG, DEG, TEG, Consecutive reactions, Fiber-grade.
- Thermodynamics
- PENG-ROBINSON
- Components
- ethylene, oxygen, ethylene_oxide, co2, water, ethylene_glycol, diethylene_glycol, triethylene_glycol
- Unit operations
- 2× MIX15× RXN32× Cool1Condense4× DEG COL
Opens in a new tab, loaded straight into the app — no setup.
Reproduce 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("ethylene-glycol-fiber-grade")
sim = client.create_simulation(example["title"], example["flowsheet"])
result = client.run_and_wait(sim["id"])
print(result["status"]) # "converged"
streams = client.streams(sim["id"])