Aspen Custom Modeler Membrane Reactor Example

Aspen Custom Modeler Membrane Reactor Example

Text Book

Membrane reactor model described in a textbook.H. Scott Fogler (2010), Section 6.4 Membrane Reactors,Essentials of Chemical Reaction Engineering, p.p. 217-225
Model MembReactor

  Kc  As RealVariable
    (Description:"Equilibrium constant [mol/dm3]", Fixed, 0.05);
  k   As RealVariable
    (Description:"Reaction rate constant [1/min]", Fixed, 0.7);
  Cto As RealVariable
    (Description:"Total molar concentration [mol/dm3]");
  kc_ As RealVariable
    (Description:"Transport coefficient [1/min]" , Fixed, 0.2);

  V   As LengthDomain (DiscretizationMethod:"OCFE4",
                        HighestOrderDerivative:1,
                        Length:500,
                        NumSections:2,
                        SpacingPreference:5,
                        Section(2).Location:100,
                        Section(2).SpacingPreference:20);

  Fa As Distribution1D(XDomain Is V, HighestOrderXDerivative:1)
                        Of RealVariable(0); // [mol/min]
  Fb As Distribution1D(XDomain Is V, HighestOrderXDerivative:1)
                        Of RealVariable(0); // [mol/min]
  Fc As Distribution1D(XDomain Is V, HighestOrderXDerivative:1)
                        Of RealVariable(0); // [mol/min]

  Nodes As IntegerSet([0 + V.Interior + V.EndNode]);
  Ft(Nodes) As RealVariable; // [mol/min]
  ra(Nodes) As RealVariable;

  T         As temperature;
  P         As pressure;
  Q         As enthflow;

  // Inlet variables
  Fin       As RealVariable; // [mol/min]
  zin(Componentlist)  As molefraction;
  hin       As enth_mol;
  Vin       As vol_mol;
  MWin      As molweight;

  // Retentate variables
  Fret      As RealVariable; // [mol/min]
  zret(Componentlist) As molefraction;
  hret      As enth_mol;
  rhoVret   As dens_mol;
  Vret      As vol_mol;
  MWret     As molweight;

  // Permeate variables
  Fper      As RealVariable; // [mol/min]
  zper(Componentlist) As molefraction;
  hper      As enth_mol;
  rhoVper   As dens_mol;
  Vper      As vol_mol;
  MWper     As molweight;
  
  // Ports
  PortIn  As Input  MaterialPort;
  PortRet As Output MaterialPort;
  PortPer As Output MaterialPort;

  // Inlet condition
  PortIn.F = Fin / 1000 * 60 ;
  PortIn.T = T ;
  PortIn.P = P ;
  PortIn.z = zin ;
  PortIn.h = hin ;
  PortIn.V = Vin ;
  Cto = 1 / Vin ;
  
  // Boundary condition (Inlet)
  Fa(0) = Fin * zin("A") ;
  Fb(0) = Fin * zin("B") ;
  Fc(0) = Fin * zin("C") ;

  // Component mole balances
  For i In [V.Interior + V.EndNode] Do
    Fa(i).ddx = -ra(i) ;
    Fb(i).ddx =  ra(i) - kc_ * Cto * (Fb(i)/Ft(i)) ;
    Fc(i).ddx =  ra(i) ;
  EndFor

  // Total molar flow
  Ft = Fa + Fb + Fc ;
  
  // Reaction rate
  ra = k * Cto * ((Fa/Ft) - Cto/Kc * (Fb/Ft) * (Fc/Ft)) ;

  // Average molar weight
  Call (MWin)  = pMolWeight(zin)  ;
  Call (MWret) = pMolWeight(zret) ;
  Call (MWper) = pMolWeight(zper) ;

  // Specific Vapor Molar Enthalpy
  Call (hret) = pEnth_Mol_Vap(T, P, zret) ;
  Call (hper) = pEnth_Mol_Vap(T, P, zper) ;

  // Specific Vapor Molar Density
  Call (rhoVret) = pDens_Mol_Vap(T, P, zret) ;
  Call (rhoVper) = pDens_Mol_Vap(T, P, zper) ;

  // Mass Balance
  Fin * MWin = Fret * MWret + Fper * MWper ;

  // Heat Balance
  Fin * hin + Q * 1000 / 60 = Fret * hret + Fper * hper ;

  // Retentate condition
  Fret = Ft(V.EndNode) ;
  zret("A") = Fa(V.EndNode)/Ft(V.EndNode) ;
  zret("B") = Fb(V.EndNode)/Ft(V.EndNode) ;
  zret("C") = Fc(V.EndNode)/Ft(V.EndNode) ;
  Vret = 1 / rhoVret ;
  PortRet.F = Fret / 1000 * 60 ;
  PortRet.T = T ;
  PortRet.P = P ;
  PortRet.z = zret ;
  PortRet.h = hret ;
  PortRet.V = Vret ;
  PortRet.Av= 1 ;
  
  // Permeate condition
  zper("A") = 0 ;
  zper("B") = 1 ;
  zper("C") = 0 ;
  Vper = 1 / rhoVper ;
  PortPer.F = Fper / 1000 * 60 ;
  PortPer.T = T ;
  PortPer.P = P ;
  PortPer.z = zper ;
  PortPer.h = hper ;
  PortPer.V = Vper ;
  PortPer.Av= 1 ;

End

Files associated with ACM

Download ACM file (V8.8)

Download MSI file (V8.8)

Download Aspen Plus file (V8.8)

Screenshot of ACM

For more blogs like this please visit: sleeping sirens

More on this…

Leave a Comment