软件介绍 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