gPROMs

advertisement
软件介绍
gPROMs
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.
• At its heart gPROMS is an equationbased system.
• gPROMS has an unprecedented
level of openness.
The gPROMS family of products
Application across the process and plant
lifecycle
gPROMS advantage
• Clear, concise language
• Modelling power
Application area
•
•
•
•
•
Rate based separation modelling
Reaction system modelling
Solution crystallisation
Fuel cell system modelling
Biotreatment processes
improve yield and throughput
•
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.
save operating costs
Similar models of multitubular reactors
allow you to locate and eliminate hotspots.
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
How to use gPROMS
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.
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
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 =
h
Step 1: create a new gPROMS “Project”
• 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
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);
Step 3: define VARIABLE
For example: Mass, MassFlowrate,
Length
Step 4: create a new PROCESS
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;
CONTINUE FOR TimePeriod (1800)
Step 5: Syntax checking
Step 6: run
Case 1
Case 2
Fin
Fout
Fout =
h
PARAMETER
Rho
CrossSectionalArea
WeirHeight
Alpha
AS
AS
AS
AS
REAL
REAL
REAL
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
Download