CGE of Producer Gas in Co-Gasification of Two Biomasses (Mathematica vs. Aspen-Plus)​
​Asma Hammami, Housam Binous, Hatem Dhaouadi and Ahmed Bellagi

We consider olive pomace + grape pomace gasification (or biomass co-gasification) in the presence of oxygen only.

We investigate (1) the effect of temperature and (2) Equivalence Ratio (ER) on the Cold Gas Efficiency (CGE) of the process.
​
Based on proximate and ultimate analyses, given in Aspen-Plus, olive pomace is modeled as a pseudo-compound whose formula is
C
1
H
1.53015
O
0.501421
while grape pomace is modeled as
C
1
H
1.30934
O
0.438956
.
​
CGE calculated using Mathematica agree closely with their counterpart given by Aspen-Plus.
In[]:=
In[]:=
sol[{x_,ER_}]:=Quiet@FindMinimum[{Re[Gtot[x,P]],{n[7]<1/1000000,n[1]>0,n[2]>0,n[3]>0,n[4]>0,n[5]>0,n[6]>0,n[7]>0,n[8]>0,n[9]>0,n[10]>0},n[1]+n[5]+n[4]+n[10]1+1,​​4n[1]+2n[2]+2n[3]1.53015+1.30934,​​n[3]+n[4]+2n[5]+n[6]+2n[7]+2n[9]0.501421+0.438956+2ER2.2397,n[6]+n[7]+2n[8]0.0},Table[{n[j],0.07},{j,1,10}],MaxIterations10000,AccuracyGoal5];(*xistemperatureandERisequivalenceratio*)​​
In[]:=
P=1;
Temperature effect on CGE for ER=0.446
BIOMASS 1 :
C
1
H
1.53015
O
0.501421
In[]:=
(*Defineatomicweights*)atomicWeights=<|"C"->12.01,"H"->1.008,"O"->16.00,"N"->14.01|>;​​​​(*Definecompoundformula(subscriptscanbedecimal)*)​​compound=<|"C"->1,"H"->1.53015,"O"->0.501421,"N"->0.0|>;​​​​(*Step1:Molecularweight*)​​molecularWeight1=Total[compound[#]*atomicWeights[#]&/@Keys[compound]];​​Print["Molecular weight (g/mol) = ",molecularWeight1];​​​​(*Step2:Massfractions*)​​massFractions=AssociationMap[compound[#]*atomicWeights[#]/molecularWeight1&,Keys[compound]];​​​​(*Step3:LHVperkgusingDulongformula*)​​LHVperKgB1=100(0.3391*massFractions["C"]+1.4444*massFractions["H"]−0.1805*massFractions["O"])-9*massFractions["H"]*2.443;​​Print["LHV (MJ/kg) = ",LHVperKgB1]​​
Molecular weight (g/mol) = 21.5751
LHV (MJ/kg) = 20.9185
In[]:=
LHVperMolB1=LHVperKgB1*molecularWeight1
Out[]=
451.319
BIOMASS 2 :
C
1
H
1.30934
O
0.438956
In[]:=
massFractions=.
In[]:=
(*Defineatomicweights*)atomicWeights=<|"C"->12.01,"H"->1.008,"O"->16.00,"N"->14.01|>;​​​​(*Definecompoundformula(subscriptscanbedecimal)*)​​compound=<|"C"->1,"H"->1.30934,"O"->0.438956,"N"->0.0|>;​​​​(*Step1:Molecularweight*)​​molecularWeight2=Total[compound[#]*atomicWeights[#]&/@Keys[compound]];​​Print["Molecular weight (g/mol) = ",molecularWeight2];​​​​(*Step2:Massfractions*)​​massFractions=AssociationMap[compound[#]*atomicWeights[#]/molecularWeight2&,Keys[compound]];​​​​(*Step3:LHVperkgusingDulongformula*)​​LHVperKgB2=100(0.3391*massFractions["C"]+1.4444*massFractions["H"]−0.1805*massFractions["O"])-9*massFractions["H"]*2.443;​​Print["LHV (MJ/kg) = ",LHVperKgB2]​​
Molecular weight (g/mol) = 20.3531
LHV (MJ/kg) = 21.7217
In[]:=
LHVperMolB2=LHVperKgB2*molecularWeight2
Out[]=
442.104
In[]:=
ER=1/2.2397(*equivalenceratio*)
Out[]=
0.446488
In[]:=
LHV=<|"H2"->242,"CO"->283.0,"CH4"->802.0|>;
In[]:=
tbl=Table[{T,(n[2]*LHV["H2"]+n[4]*LHV["CO"]+n[1]*LHV["CH4"])/(LHVperMolB1+LHVperMolB2)/.sol[{T,ER}][[2]]},{T,700,1200,20}]
Out[]=
{{700,0.199293},{720,0.210874},{740,0.224335},{760,0.240331},{780,0.259641},{800,0.283166},{820,0.311911},{840,0.346944},{860,0.389315},{880,0.439923},{900,0.499324},{920,0.567466},{940,0.64341},{960,0.722014},{980,0.727702},{1000,0.731374},{1020,0.733761},{1040,0.735364},{1060,0.736505},{1080,0.737377},{1100,0.73809},{1120,0.738704},{1140,0.739254},{1160,0.73976},{1180,0.740232},{1200,0.740678}}
In[]:=
p1=ListPlot[tbl,Frame->True,GridLines->Automatic,AspectRatio->1,Joined->True];
In[]:=
Show[p1,FrameLabel->{Style["Temperature (K)",16],Style["CGE",16]}];
In[]:=
tbl2={{700,0.200091958},{750,0.232180004},{800,0.282123118},{850,0.363783247},{900,0.492007441},{950,0.671049581},{1000,0.730226359},{1050,0.734875753},{1100,0.737009637},{1150,0.738443447},{1200,0.739619292}};
In[]:=
p2=ListPlot[tbl2,PlotMarkers->"OpenMarkers",PlotStyle->Red];(*Aspenresultsarerepresentedusingredopenmarkers*)
In[]:=
Show[p1,p2,FrameLabel->{Style["Temperature (K)",16],Style["CGE",16]}]
Out[]=
ER effect on LHV for T=800K
In[]:=
P=1;
In[]:=
ER=.(*equivalenceratio*)
In[]:=
LHV=<|"H2"->242,"CO"->283.0,"CH4"->802.0|>;
In[]:=
tbl=Table[{ER,(n[2]*LHV["H2"]+n[4]*LHV["CO"]+n[1]*LHV["CH4"])/(LHVperMolB1+LHVperMolB2)/.sol[{800,ER}][[2]]},{ER,0.01,0.75,0.025}]
Out[]=
{{0.01,0.356856},{0.035,0.347618},{0.06,0.33945},{0.085,0.332202},{0.11,0.32575},{0.135,0.319994},{0.16,0.314847},{0.185,0.310239},{0.21,0.306108},{0.235,0.302404},{0.26,0.29908},{0.285,0.296099},{0.31,0.293427},{0.335,0.291035},{0.36,0.288897},{0.385,0.286991},{0.41,0.285296},{0.435,0.283795},{0.46,0.282472},{0.485,0.281313},{0.51,0.280305},{0.535,0.279437},{0.56,0.278698},{0.585,0.27808},{0.61,0.277574},{0.635,0.277172},{0.66,0.276867},{0.685,0.276652},{0.71,0.276523},{0.735,0.276473}}
In[]:=
p1=ListPlot[tbl,Frame->True,GridLines->Automatic,AspectRatio->1,Joined->True];
In[]:=
tbl2={{0.1,0.34347865},{0.2,0.330175418},{0.3,0.319356999},{0.4,0.310495349},{0.5,0.303203031},{0.6,0.297189082},{0.7,0.292230604},{0.8,0.288153874},{0.9,0.284821445},{1,0.282123118},{1.1,0.279969483},{1.2,0.27828723},{1.3,0.27701567},{1.4,0.276104125},{1.5,0.275509942}};
In[]:=
tbl2=Table[{tbl2[[i]][[1]]/2.2397,tbl2[[i]][[2]]},{i,1,Length@tbl2,2}]
Out[]=
{{0.0446488,0.343479},{0.133947,0.319357},{0.223244,0.303203},{0.312542,0.292231},{0.40184,0.284821},{0.491137,0.279969},{0.580435,0.277016},{0.669733,0.27551}}
In[]:=
p2=ListPlot[tbl2,PlotMarkers->"OpenMarkers",PlotStyle->Red];(*Aspenresultsarerepresentedusingredopenmarkers*)
In[]:=
Show[p1,p2,FrameLabel->{Style["ER",16],Style["CGE",16]},PlotRange->All]
Out[]=