MaximaLabs
Back to gallery
Reference model (CN104628563A)

Patent benchmark: methyl lactate synthesis (CN104628563A) — a PSRK process flowsheet

Real patent replication, not an invented process: CN104628563A's acid-catalyzed lactate-ester route — lactic acid esterified with excess methanol, then purified by vacuum distillation — reproduced here as a continuous flowsheet. The patent's own worked methyl-lactate example reports 98.8% esterification conversion and 99.6% product purity at 120 degC/3h. This flowsheet's reactor conversion is set directly to the patent's reported 98.8% (not fitted); the vacuum column (0.2 atm, matching the patent's vacuum-distillation purification step) then splits the methanol and reaction water off the ester completely — zero methyl lactate leaves overhead — and delivers 97.8 mol% methyl lactate in the bottoms at 389.9 K.

The property method is the whole story here, exactly as it was on the sulfolane extractive column. Written on Peng-Robinson, this example did not converge at all: every pair in a methanol / water / lactic-acid / methyl-lactate mixture is hydrogen-bonding, which van der Waals mixing cannot represent, and the column returned a partial profile carrying 2.60 mol/s of methyl lactate out of a column fed 1.98 — 32% more product than the reactor made, a 0.26 component-balance residual. (That wrong profile is where this example's previously-published 98.75% purity was read from; the number was retracted at the test level and is now corrected here.) A plain activity model cannot be used either, for a data reason rather than a physics one: neither lactic acid nor methyl lactate carries a regressed ideal-gas-Cp correlation, and the gamma-phi enthalpy path raises on that where a cubic quietly falls back to a corresponding-states estimate. PSRK is a cubic whose mixing is driven by UNIFAC, so it has both — and it converges to a 2.7e-06 component-balance residual, with methyl lactate and lactic acid each leaving in exactly the amount the reactor made.

Modeling assumptions & limitations

  1. 1The 2.2 mol% of the product that is not methyl lactate is arithmetic, not an unconverged residual, and it splits cleanly in two. 1.19 points of it is unreacted lactic acid, and that part is structural — at the patent's own 98.8% conversion 1.2% of the feed acid survives, and lactic acid boils *above* methyl lactate (505 K vs 418 K), so it leaves with the product in the bottoms. No lights-removal column rejects it at any stage count; the patent's 99.6% needs a second product column or an acid recycle, and this flowsheet has neither. The other 0.99 points is the deliberate light-cut margin: methanol plus reaction water is exactly 0.800 of the feed, and this column takes 0.798, leaving 1% of the light cut in the bottoms rather than specifying a perfect split no finite column can deliver. Raising the stage count does not move either number — 10 and 12 stages were both measured and return the same 97.82%, because the ester/lights split is already complete at 8. See the Patent Benchmarks docs page for the full validation table and citation.

180 views 0 forks

FEED
Ester Reactor
feed
dist
btms
Vacuum Column
Lights Product
Methyl Lactate Product
What this showcases
  • Rigorous PSRK thermodynamics, solved by the same engine every simulation runs on.
  • 2 unit operations modeled: Ester Reactor, Vacuum Column.
  • Focus areas: Patent benchmark, Esterification, Vacuum distillation, Validated.
Specification
Thermodynamics
PSRK
Components
methanol, water, lactic_acid, methyl_lactate
Unit operations
Ester ReactorVacuum Column
Open in workspace

Opens in a new tab, loaded straight into the app — no setup.

Read the step-by-step guide
Python SDK

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("patent-methyl-lactate-synthesis")
sim = client.create_simulation(example["title"], example["flowsheet"])
result = client.run_and_wait(sim["id"])

print(result["status"])              # "converged"
streams = client.streams(sim["id"])

Related models

Oleochemicals plant, Port Klang, Malaysia

Fatty-ester vacuum fractionation

Biodiesel methyl esters (C₁₆ / C₁₈) split at 0.05 bar — vacuum keeps the bottoms under 515 K; near-total C₁₆ recovery overhead and ~98% C₁₈ in the bottoms (the two components' relative volatility caps bottoms purity there — more stages/reflux do not push it further). From the ChemSep casebook (Fatty_Acids, as methyl esters).

Reference model (Luyben & Yu 2006)

Methyl acetate esterification via reactive distillation

Acetic acid and methanol esterify over the reactive stages of a column into methyl acetate and water — a genuine quadruple-azeotrope system where reactive distillation intensifies what would otherwise need several conventional columns. Reactive Distillation Design and Control, Luyben & Yu, Wiley (2006), pp. 147-164.

Reference model (JP2024028821A)

Patent benchmark: gas fermentation to single-cell protein (JP2024028821A)

The gas-fermentation process class JP2024028821A describes: hydrogen-oxidizing chemolithoautotrophic bacteria (the patent names Cupriavidus necator and Rhodococcus opacus strains) fixing CO₂ using H₂ as the electron donor to grow single-cell protein biomass. Built here with real physics closing two genuine gaps this session's fact-check found missing: gas-liquid mass transfer (Henry's-law dissolution + a volumetric kLa driving the H₂ dissolution rate) and chemolithoautotrophic growth stoichiometry (McCarty's electron-balance method combining the H₂-oxidation, O₂-reduction, and C₅H₇O₂N cell-synthesis half-reactions) — not a Monod-on-dissolved-substrate shortcut repurposed for a gas feed.

Reference model (US9359625B2)

Patent benchmark: enzymatic cannabinoid synthesis (US9359625B2)

Real patent replication: US9359625B2's THCA-synthase-catalyzed conversion of cannabigerolic acid (CBGA) into either THCA or CBCA depending on operating pH — closing the genuine enzyme-kinetics gap this session's fact-check found (only Monod biomass-growth kinetics existed anywhere in MaximaLabs, no Michaelis-Menten). The patent's own disclosed pH-selectivity data anchors this model: it reports 'catalysis at a lower pH... favored THCA... while... neutral pH... favored CBCA,' a ~10:1 THCA:CBCA ratio at pH 5.0, and CBCA dominant at pH 7.0 — fit here as a single-ionizable-group pH-titration switch (pKa_switch=6.0), which reproduces the reported 10:1 ratio at pH 5.0 exactly (that's how pKa_switch was chosen) and gives ~10:1 CBCA:THCA at pH 7.0 (matching the patent's 'CBCA exclusively' qualitatively, not to an exact published ratio, since the patent gives no numeric ratio at pH 7.0 to match). Reactor volume is sized to clear the patent's own disclosed '>20% conversion' commercial threshold (reaches ~25.0% here).

Reference model (US6495732B1)

Patent benchmark: selective C3 diene/acetylene hydrogenation (US6495732B1)

Real patent replication: US6495732B1's palladium-catalyzed selective hydrogenation of a cracked-gas C₃ stream, removing methylacetylene (propyne) and propadiene down to trace levels while leaving propylene and propane untouched — the patent's own Example 1 feed (82.7 mol% propylene, 2.37% methylacetylene, 1.30% propadiene) reacted here to '>99.5% removal of both dienes/acetylenes, no propylene-to-propane over-hydrogenation' (propane's mole fraction is unchanged before/after — the actual selectivity claim the patent is about).

Reference model

Batch campaign: a batch step inside a continuous flowsheet

Fine chemicals and pharma run batches, but a flowsheet is written in mol/s. These two unit ops reconcile that: they integrate the real batch physics over the batch, then report the products as the RATE that campaign delivers, so a batch step sits inside a continuous flowsheet the way a plant actually runs one. The batch reactor esterifies ethanol with acetic acid to ethyl acetate and water. It reaches 63.2% conversion and stops, and that number is not a specification — it is the equilibrium. The reaction is reversible with an equilibrium constant of 4 (the forward and reverse pre-exponentials are given as 5.0e4 and 1.25e4), and solving K = x(0.10+x)/(0.45-x)^2 = 4 for an equimolar charge carrying 10% water gives an extent of 0.285, which is 63.3% of the acid. Fischer esterification really does plateau there; a model that ran to completion would be describing a different reaction. Turnaround time costs throughput exactly as reaction time does. Two hours of reaction plus one hour of turnaround is a 3-hour cycle and 2922 batches a year, and the reactor is only reacting for 67% of the time it is occupied. That fraction is the number that decides whether you need a second reactor, and it is invisible to a steady-state model. The batch still then takes the crude and recovers the ethyl acetate — the distillate comes off essentially pure, from a pot that started at 28.5 mol% ester — on its own longer 4-hour cycle, so the two units run at genuinely different campaign rates. Bounded: the flowsheet sees each unit's CYCLE AVERAGE, not the transient. A real plant has a surge tank between these two smoothing the pulses, and neither the concentration profile during the batch nor the still's changing overhead composition is visible downstream.

Stop fighting legacy software. Build your first flowsheet in 60 seconds.