Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unreasonable Distillation column temperature #169

Closed
zasddsgg opened this issue Sep 14, 2024 · 4 comments
Closed

Unreasonable Distillation column temperature #169

zasddsgg opened this issue Sep 14, 2024 · 4 comments

Comments

@zasddsgg
Copy link

zasddsgg commented Sep 14, 2024

Hello, when I called the distillation tower, I found that the temperature of the top flow of the distillation tower was higher than that of the bottom flow of the distillation tower, which seems unreasonable. Could you please see how to solve this problem. Thanks for your help.
The code is as follows.

import biosteam as bst
bst.nbtutorial()
from biosteam import settings
from biosteam import units
import thermosteam as tmo
import math
from biorefineries import cellulosic as cs
chemicals_cs = cs.create_cellulosic_ethanol_chemicals()

Me = bst.Chemical('methacrylic anhydride', Hf=-55700, Tc=650+273.15, Tb=240+273.15, Tm=270, Hvap=70000)
def Me_liquid_molar_volume_model(T):
     return 3*10**(-5)+2*10**(-7)*T-7*10**(-10)*T**2+9*10**(-13)*T**3
Me.V.l.add_method(f=Me_liquid_molar_volume_model, Tmin=270, Tmax=500)
def Me_solid_molar_volume_model(T):
     return 0.0001/(1.7-0.36*T/270)
Me.V.s.add_method(f=Me_solid_molar_volume_model, Tmin=270, Tmax=500)
def Me_liquid_viscosity_model(T):
     return math.exp(-20+3400/T +1.5*math.log(T) + 0.93*T**(-1.9/100000))
Me.mu.l.add_method(f=Me_liquid_viscosity_model, Tmin=270, Tmax=500)

chemicals = bst.Chemicals([])
chemicals.extend(bst.Chemicals([chemicals_cs.Water, chemicals_cs.Ethanol, chemicals_cs.AceticAcid, chemicals_cs.Furfural,
                                chemicals_cs.Glycerol, chemicals_cs.H2SO4, chemicals_cs.NH3, chemicals_cs.LacticAcid,
                                chemicals_cs.SuccinicAcid, chemicals_cs.P4O10, chemicals_cs.Lime, chemicals_cs.HNO3,
                                chemicals_cs.NH4OH, chemicals_cs.Denaturant, chemicals_cs.DAP, chemicals_cs.AmmoniumAcetate,
                                chemicals_cs.AmmoniumSulfate, chemicals_cs.NaNO3, chemicals_cs.Oil, chemicals_cs.HMF,
                                chemicals_cs.N2, chemicals_cs.H2S, chemicals_cs.SO2, chemicals_cs.NO2, chemicals_cs.NO, chemicals_cs.Glucose,
                                chemicals_cs.Xylose, chemicals_cs.Sucrose, chemicals_cs.CaSO4, chemicals_cs.Mannose,
                                chemicals_cs.Galactose, chemicals_cs.Arabinose, chemicals_cs.CellulaseNutrients, chemicals_cs.Extract,
                                chemicals_cs.Acetate, chemicals_cs.Tar, chemicals_cs.Ash, chemicals_cs.NaOH, chemicals_cs.Lignin,
                                chemicals_cs.SolubleLignin, chemicals_cs.GlucoseOligomer, chemicals_cs.GalactoseOligomer,
                                chemicals_cs.MannoseOligomer, chemicals_cs.XyloseOligomer, chemicals_cs.ArabinoseOligomer,
                                chemicals_cs.Z_mobilis, chemicals_cs.T_reesei, chemicals_cs.Biomass, chemicals_cs.Cellulose,
                                chemicals_cs.Protein, chemicals_cs.Enzyme, chemicals_cs.Glucan, chemicals_cs.Xylan,
                                chemicals_cs.Xylitol, chemicals_cs.Cellobiose, chemicals_cs.CSL, chemicals_cs.DenaturedEnzyme,
                                chemicals_cs.Arabinan, chemicals_cs.Mannan, chemicals_cs.Galactan, chemicals_cs.WWTsludge,
                                chemicals_cs.Cellulase, Me
                               ]))

bst.settings.set_thermo(chemicals)
chemicals.set_alias('methacrylic anhydride', 'Me')

a = bst.Stream(
    ID='a',
    units='kg/hr',
    T=296.5,
    P=111458,
    Me=1092,
    Ethanol=18940)

D101 = bst.BinaryDistillation('D101', ins=a, P=101325, 
                                      outs=('', ''), 
                                  Hr=0.9, Lr=0.3, k=1.2, 
                                  LHK=('Ethanol', 'Me')) 
sys = bst.main_flowsheet.create_system('sys')
sys.simulate()
top=D101-0
bottle=D101-1
print(top.T) # 357.8925607227239
print(bottle.T) # 352.1156147923237
@yoelcortes
Copy link
Member

@zasddsgg, the bubble and dew points (temperatures at the bottom and top) are correct for these compositions. What is happening is that your separation specification is so small, that you actually need less than a single stage to achieve it. BioSTEAM forces the specification (which was unreasonable to begin with) and results in unreasonable distillate and bottoms temperatures.

You can achieve better separation with a flash:

D101 = bst.Flash('D101', ins=a, P=101325, V=0.5)

It's been busy but I will try get to your other questions on multistage liquid-liquid equilibrium on Wednesday. No worries!

I hope this helps,
Thanks!

@zasddsgg
Copy link
Author

Thank you very much for your help and advice. When you're free on Wednesday, can you also take a look at questions about the physical property method (#167), physical property loss(#168), cooling towers(#163), and HP models(#154). Thanks for your help again.

@zasddsgg
Copy link
Author

@yoelcortes Hello, could you spare some time to look at the problem questions about the physical property method (#167), physical property loss(#168), cooling towers(#163), and HP models(#154). Thanks for your help again.

@yoelcortes
Copy link
Member

Will do! Thanks for your patience.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants