Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Contents
What is gPROMS
Application briefs
How to use gPROMs
Case
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.
gPROMS advantage
Clear, concise language
Modelling power
Application area
understand what is
happening inside
IF A > B THEN
FlowOut = ??????? ;
ELSE
FlowOut = ????? ;
END # If
FOR i := 1 TO 100 DO
T(i) = ???? ;
END
Fin
Fout
Buffer tank with gravity-driven outflow.
Mass balance
dM
= Fin Fout
dt
Relation between liquid level and holdup
Ah = M
Characterisation of the output owrate
Fout =
Variable Types
Stream Types
Models
Tasks
Processes
Optimisations
Estimations
Experiments
Saved Variable Sets
Miscellaneous Files
PARAMETER
Rho
AS REAL
CrossSectionalArea AS REAL
Alpha
AS REAL
VARIABLE
HoldUp
FlowIn, FlowOut
Height
AS Mass
AS MassFlowrate
AS Length
EQUATION
# mass balance
$Holdup= Flowin Flowout;
#calculation of height through holdup
Holdup=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 ;
SOLUTIONPARAMETERS
REPORTINGINTERVAL := 60;
Step 6: run
Case 1
Case 2
Fin
Fout
Fout =
PARAMETER
Rho
AS REAL
CrossSectionalArea AS REAL
WeirHeight
AS REAL
Alpha
AS REAL
VARIABLE
FlowIN, FlowOut1, FlowOut2
HoldUp
Height
AS MassFlowRate
AS Mass
AS Length
SELECTOR
Valve
AS ( ON, OFF) DEFAULT OFF
EQUATION
# Mass Balance
$HoldUp = FlowIn - FlowOut1 - FlowOut2;
# Calculation of liquid level from holdup
HoldUp = CrossSectionalArea * Height * Rho;
#Assign squart root pressure drop flow relation
FlowOut1 = 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
UNIT
T101 AS Adjustivetank
SET
T101.Rho
T101.CrossSectionalArea
T101.Alpha
T101.WeirHeight
:=100; #Kg/m3
:= 1; # m2
:= 7;
:= 30; # m
ASSIGN
T101.FlowIn := 80;
INITIAL
T101.Height = 10;
SOLUTIONPARAMETERS
REPORTINGINTERVAL :=10;
SCHEDULE
CONTINUE FOR 200