gproms 软件介绍. contents what is gproms application briefs how to use gproms case
TRANSCRIPT
What is gPROMS
gPROMS is a general PROcess Modelling
Syste with proven capabilities for the
simulation, optimization and parameter
estimation (both steady-state and
dynamic) of highly complex process.
Application area
• Rate based separation modelling
• Reaction system modelling
• Solution crystallisation
• Fuel cell system modelling
• Biotreatment processes
• allows you to quantify temperatures and compositions in every part of the reactor.
• you can operate closer to the catalyst limits to improve selectivity, thus maximising yield and throughput.
improve yield and throughput
Similar models of multitubular reactors allow you to locate and eliminate hotspots.
save operating costs
optimise batch operating procedures
Dynamic optimisation can be used to determine the optimal batch operating policy
maximise catalyst life
Modelling enables to optimise the catalyst changeover frequency of this complex large-scale reactor system
understand what is happening inside
allowing proper quantification of the operating envelope, enabling you to optimize equipment and control designs rapidly
When using gPROMs to made a model and work it out, user first need know how to express this model by math.
gPROMs language, like C language and Fortrun language, has some intrinsic functions which used in equations to perform mathematical operators, i .e, partial and integral.
How to use gPROMS
Case condition structure
For condition structure
IF condition structure
IF A > B THEN
FlowOut = ??????? ;
ELSE
FlowOut = ????? ;
END # If
FOR i := 1 TO 100 DO
T(i) = ???? ;
END
Buffer tank with gravity-driven outflow.
• Mass balance
dt
dM
Fin
Fout
• Relation between liquid level and holdup
ρAh = M
• Characterisation of the output owrate
= Fin — Fout
hFout =
• Variable Types
• Stream Types
• Models
• Tasks
• Processes
• Optimisations
• Estimations
• Experiments
• Saved Variable Sets
• Miscellaneous Files
Setp 2: create a new MODEL
• PARAMETER
• DISTRIBUTION_DOMAIN
• UNIT
• VARIABLE
• SELECTOR
• SET
• EQUATION
PARAMETER
Rho AS REAL
CrossSectionalArea AS REAL
Alpha AS REAL
VARIABLE
HoldUp AS Mass
FlowIn, FlowOut AS MassFlowrate
Height AS Length
EQUATION# mass balance$Holdup= Flowin — Flowout;
#calculation of height through holdupHoldup=CrossSectionArea*Height*Rho;
#Assume aquare root presure drop flowrate relation
Flowout=Alpha*SQRT(Height);
UNIT# UnitName AS ModelName
SET# ParameterPath := Expression ;# ParameterPath := [ Expression < , ... > ];
EQUATION# Equations
ASSIGN# VariablePath := Expression ;
PRESET# VariablePath := InitialValue ;# VariablePath := InitialValue : LowerBound : UpperBound
SELECTOR# SelectorPath := FlagPath ;# SelectorPath := [ FlagPath < , ... > ];
INITIAL# STEADY_STATE
SOLUTIONPARAMETERS
SCHEDULE# OperationSchedule
UNIT
T101 AS BufferTank
SET
T101.Rho := 1000 ; # kg/m3
T101.CrossSectionalArea := 1 ; # m2
T101.Alpha := 10 ;
ASSIGN
T101.Fin := 20 ;
PARAMETER Rho AS REAL CrossSectionalArea AS REAL WeirHeight AS REAL Alpha AS REAL
VARIABLEFlowIN, FlowOut1, FlowOut2 AS MassFlowRateHoldUp AS MassHeight AS Length
SELECTOR Valve AS ( ON, OFF) DEFAULT OFF
EQUATION# Mass Balance$HoldUp = FlowIn - FlowOut1 - FlowOut2;
# Calculation of liquid level from holdupHoldUp = CrossSectionalArea * Height * Rho;
#Assign squart root pressure drop flow relationFlowOut1 = Alpha * SQRT ( Height);
CASE Valve OF WHEN ON :FlowOut2 = 7* LOG ( Height * Height ); SWITCH TO OFF IF Height < WeirHeight - 2; WHEN OFF : FlowOut2 = 0; SWITCH TO ON IF Height > WeirHeight + 2;END # CASE
UNITT101 AS Adjustivetank
SETT101.Rho :=100; #Kg/m3T101.CrossSectionalArea := 1; # m2T101.Alpha := 7; T101.WeirHeight := 30; # m
ASSIGNT101.FlowIn := 80;
INITIALT101.Height = 10;
SOLUTIONPARAMETERSREPORTINGINTERVAL :=10;
SCHEDULECONTINUE FOR 200