gproms 软件介绍. contents what is gproms application briefs how to use gproms case

52
gPROMs 软软软软

Upload: damian-evans

Post on 18-Jan-2016

467 views

Category:

Documents


22 download

TRANSCRIPT

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 equation-based 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

• 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 =

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 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);

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 ;

CONTINUE FOR TimePeriod (1800)

SOLUTIONPARAMETERS

REPORTINGINTERVAL := 60;

Step 5: Syntax checking

Step 6: run

Case 1

Case 2Fin

Fout

hFout =

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