#*-------------------------------------------------------------------
* EMSO Model Library (EML) Copyright (C) 2004 - 2007 ALSOC.
*
* This LIBRARY is free software; you can distribute it and/or modify
* it under the therms of the ALSOC FREE LICENSE as available at
* http://www.enq.ufrgs.br/alsoc.
*
* EMSO Copyright (C) 2004 - 2007 ALSOC, original code
* from http://www.rps.eng.br Copyright (C) 2002-2004.
* All rights reserved.
*
* EMSO is distributed under the therms of the ALSOC LICENSE as
* available at http://www.enq.ufrgs.br/alsoc.
*
*----------------------------------------------------------------------
* Author: Andrey Copat, Estefane S. Horn, Marcos L. Alencastro
* $Id: pump.mso 372 2007-09-21 22:17:36Z arge $
*--------------------------------------------------------------------*#
using "streams";
Model centrifugal_pump
ATTRIBUTES
Pallete = true;
Icon = "icon/CentrifugalPump";
Brief = "Model of a centrifugal pump.";
Info =
"== Assumptions ==
* Steady State;
* Only Liquid;
* Adiabatic;
* Isentropic.
== Specify ==
* the inlet stream;
* the Pressure Increase Pdiff.
";
PARAMETERS
outer PP as Plugin (Brief = "External Physical Properties", Type="PP");
outer NComp as Integer (Brief = "Number of chemical components", Lower = 1);
Mw(NComp) as molweight (Brief = "Molar Weight");
Eff as positive (Default = 0.72, Brief = "Pump Efficiency");
Meff as positive (Default = 0.95, Brief = "Brake Efficiency");
Beta as positive (Default = 0, Brief = "Volumetric Expansivity", Unit = '1/K');
g as acceleration (Brief = "Gravity Acceleration", Default = 9.81);
N as vel_angular (Brief = "Rotation", Default = 100);
Lev as length (Brief = "Loss Friction", Default = 0);
VARIABLES
rho as dens_mass (Brief = "Specific Mass");
Cp as cp_mol (Brief = "Heat Capacity");
FPower as power (Brief = "Fluid Power");
BPower as power (Brief = "Brake Power");
EPower as power (Brief = "Eletrical Potency");
Pratio as positive (Brief = "Pressure Ratio", Symbol ="P_{ratio}");
Pdrop as press_delta (Brief = "Pressure Drop", DisplayUnit = 'kPa', Symbol ="\Delta P");
Head as head (Brief = "Head Developed");
Head_is as head (Brief = "Isoentripic Head");
Mwm as molweight (Brief = "Mixture Molar Weight");
pvm as pressure (Brief = "Mixture Vapour Pressure");
NPSHa as length (Brief = "Available Net Positive Suction Head");
NS as positive (Brief = "Specific Speed");
Q as flow_vol (Brief = "Volumetric Flow Rate");
vm as vol_mol (Brief = "Mixture Molar Volume");
in Inlet as stream (Brief = "Inlet stream", PosX=1, PosY=0.4025, Symbol="_{in}");
out Outlet as stream (Brief = "Outlet stream", PosX=0, PosY=0, Symbol="_{out}");
SET
Mw = PP.MolecularWeight();
EQUATIONS
#Mixtures Properties
"Calculate Mwm for Inlet Mixture"
Mwm = sum(Mw([1:NComp])*Inlet.z([1:NComp]));
"Calculate Cp Using a External Physical Properties Routine"
Cp = PP.LiquidCp(Inlet.T,Inlet.P,Inlet.z);
"Calculate rho using a External Physical Properties Routine"
rho = PP.LiquidDensity(Inlet.T,Inlet.P,Inlet.z);
"Calculate Mixture Vapour Pressure"
[pvm] = PP.BubbleP(Inlet.T,Inlet.z);
"Calculate Outlet Vapour Fraction"
Outlet.v = PP.VapourFraction(Outlet.T, Outlet.P, Outlet.z);
"Calculate Liquid Molar Volume"
vm = PP.LiquidVolume(Inlet.T,Inlet.P,Inlet.z);
"Pressure Ratio"
Outlet.P = Inlet.P * Pratio;
"Pressure Drop"
Outlet.P = Inlet.P - Pdrop;
"Calculate Isentropic Head"
Head_is = -Pdrop * Mwm/rho;
"Calculate Real Head"
Head = Head_is/(Eff*Meff);
"Calculate Outlet Enthalpy"
Outlet.h - Inlet.h = Head;
"Calculate Fluid Power"
FPower = Head_is * Inlet.F;
"Calculate Brake Power"
BPower * Eff = FPower;
"Calculate Eletric Power"
BPower = EPower * Meff;
"Calculate Outlet Temperature"
(Outlet.T - Inlet.T) * Cp = (Outlet.h - Inlet.h) + Pdrop * Mwm / rho * (1 - Beta * Inlet.T);
"Molar Balance"
Outlet.F = Inlet.F;
"Calculate Outlet Composition"
Outlet.z = Inlet.z;
"Calculate Net Positive Suction Head"
NPSHa = - Lev + (Inlet.P - pvm)/(g*rho); #If Inlet.P is the suction pump pressure, Lev is 0.
"Calculate Volumetric Flow Rate"
Q = Inlet.F*vm;
"Calculate Specific Speed"
NS = N*(Q^0.5)/((Head/Mwm)^(3/4));
end
#*-------------------------------------------------------------------
* Model of a pump (simplified, used in distillation column model)
*----------------------------------------------------------------------
* Author: Paula B. Staudt
*--------------------------------------------------------------------*#
Model pump
ATTRIBUTES
Pallete = true;
Icon = "icon/Pump";
Brief = "Model of a simplified pump, used in distillation column model.";
Info =
"Specify:
* the inlet stream;
* the pump press delta dP.
";
PARAMETERS
outer PP as Plugin (Brief = "External Physical Properties", Type="PP");
outer NComp as Integer;
VARIABLES
in Inlet as stream (Brief = "Inlet stream", PosX=0, PosY=0.4727, Symbol="_{in}");
out Outlet as streamPH (Brief = "Outlet stream", PosX=1, PosY=0.1859, Symbol="_{out}");
dP as press_delta (Brief="Pump head");
EQUATIONS
"Molar Balance"
Inlet.F = Outlet.F;
Inlet.z = Outlet.z;
"Pump head"
Outlet.P = Inlet.P + dP;
"FIXME: pump potency"
Outlet.h = Inlet.h;
end