Jump to content


- - - - -

DTU.exe (was: Multiple stage gasification for low tar wet fuels and charcoal kilns)


  • Please log in to reply
12 replies to this topic

#1 GasMe Baby

GasMe Baby

    Member

  • Members
  • PipPipPip
  • 36 posts

Posted 04 April 2009 - 07:31 PM

Two problems have been rattling around in my otherwise empty head since I started interacting with you guys: 1] How would one use wet wood chips in a gasifier/engine like VTHR uses them in a furnace? and 2] How would one clean pyrolysis gases from charcoal production for use in an engine?  #1 is a little more important to me, as "drying"=="handling" and "handling"=="money|hassle".  #2 just annoys me because the offgasses are simply gratuitously burned.

Solutions have not completely formed, but a little digging has suggested a strategy...with roots going all the way back to ~1930.  I was innocently brushing up on my gasifier concepts by browsing A. Kaupp when I stumbled across the "Brandt Double Zone Gas Producer" (Figure 70; p. 77), which closely matched the form of the solution I had in mind.  (Those of you with the book can follow along at home; I don't have a scanner for the pic.)

Quote

The Brandt Double Zone Producer works on the downdraft principle with the gas drawn off at the very top.  The inner column was filled with high grade charcoal, whereas the outer annulus contained wood blocks....The sole purpose of this unusual design is to get a very clean gas.  This is achieved by passing all distillation gasses through the partial combustion zone and then up through the entire charcoal column together with the products of the gasification process.  This process was claimed to obtain a totally tar free gas.

This separation of zones appears to be making a comeback.  In A review of the primary measures for tar elimination in biomass gasification processes, where "primary methods" means "inside the gasifier", this separation of zones is credited with phenomenal tar cleanup (15 mg/m0^3 at best).  The Asian Institute of Technology and Technical University of Denmark designs also included the introduction of secondary air.  

My gut feeling is this: If we start with a "Brandt Double Zone Gas Producer" and add "some" secondary air just before the charcoal column, this could be designed to add enough energy to support the water-gas reaction to completion.  This device should be capable of using wet fuels without fear of tar in the gas.

Attacking the charcoal kiln problem is trickier.  By all accounts, the pyrolysis gasses must be heated to 800-900F for more than a second to crack most of the tars.  What if the pyrolysis gases were admitted to a combustion chamber which supplied enough secondary air to raise the temp to 1000F, and which takes about 2 sec for the gas to move thru.  Flue gas from the combustion chamber is piped directly thru a charcoal column, then cooled and sent to an engine?

It may take a bit of effort to root up the exact design and info around this Brandt gas producer.  There's a picture and a paragraph in A. Kaupp, and the reference he cites is to a "summary" paper which describes a lot of small gasifiers.  Not sure if its really worth it as I'm already thinking of how it could be made better.

Does anyone have a copy of:

Goldman, B. and N.C. Jones, The Modern Portable Gas Producer, Institute of Fuel, London, v 12, n 63, 1939, pp. 103-140

Lastly, if you're waiting on me to try this and report back, I'm afraid I must confess I couldn't reliably glue two sticks together.  The chances of me actually building something are zero.  If this notion interests you, feel free to try it out!  I'll help develop the notion, but I won't get one until I can buy it from Jim. :)

Any thoughts?

#2 Dutch John

Dutch John

    Junior Member

  • Members
  • PipPip
  • 25 posts

Posted 05 April 2009 - 05:34 PM

Perhaps these two figures clear up the fog: http://www.tpub.com/...76/02760026.htm ?

Drying is worth the hassle. At least when the productgas is used in an IC engine. Using it for heating purposes with a condensing flue could give other numbers.

Regards,
DJ
http://woodgas.nl/

#3 jimmason

jimmason

    Administrator

  • Administrators
  • 527 posts

Posted 05 April 2009 - 11:18 PM

http://www.tpub.com/...76/02760026.htm

john, i know you like these charts here, and i have mulled over them for a long time, and i think they need a bit of clarification about their meaning.  

the confusion comes from these charts apparently being premised on tests (or arguments) over a specific gasifier, and not over the raw chemistry.  the charts relate to a specific engineering solution, not the raw science behind the process.

i propose that the declining energy density values as moisture goes up in the chart relates to a non heat recycling gasifier that is seeing its combustion temps drop, and heat available for reduction drop, and thus more water and co2 passing through the system, and lower the fuel value.  such a gasifier will have to run a larger combustion:reduction ratio to maintain temps, and thus will have more combustion products diluting the gas.  you can see this playing with the DTU gasifier calculator.

we know that if we have adequate heat to maintain proper temps in these zones, through whatever means, then we will not see a degration of these reactions.  adding pure steam or co2 does create a thermal load, but to the degree you can support it, you are providing more material to reduce, without additional nitrogen dilution via increased combustion, thus your fuel out density goes up.

we can see this to be the case with the fuel heating values out of the DTU unit.  it produced fuel valves about 20% above normal air blown no heat recycle gasifiers from what i remember. this is because it was running very high moisture contents, and thus had a relatively large amount of steam to reduce, and also had the heat to handle it without making a mess.

if we could have 100% moisture coming into the reactor, and adequate heat also introduced via some external means, then we would have the highest energy density fuel possible in gasification-- pure syngas.  this is the point of many of the multi stage, multi vessel reactors.  combustion is externalized and co2 and h2 are sourced via some other means than direct combustion, so there is not a nitrogen dilution.

jim

#4 Dutch John

Dutch John

    Junior Member

  • Members
  • PipPip
  • 25 posts

Posted 06 April 2009 - 06:41 AM

Jim,

You are right that heat mining of waste energy will produce an other chart. But also beware of the DTU model. It works well within reasonable limits, but still produces numbers, when out of its limits. It can be fooled easily. Unfortunately the model gives no warning when numbers are put in that the gasification process cannot handle. The University of Eindhoven says it is a very good model, but only when used within tight limits. I'll ask them on a next meeting if they have a model that gives a warning when out of range numbers are put in.

I remain the opinion that not even waste productgas heat should be used for drying fuel. That's where we have sun, wind and time for. Waste heat should be used for torrefication and pyrolysis; so an application on the same temperature level as the heat of the gas. This heat is too low to help oxidation and too high to be wasted on drying fuel. Waste heat should be used in this order:
1.pyrolysis
2.torrefication
3.primairy air preheat
4.the remaining energy can be used for drying fuel

Even a monorator is half a solution. It is good when no dry fuel is available, but you pay a price, since it steals heat from the oxidation zone.

Regards,
John

#5 GasMe Baby

GasMe Baby

    Member

  • Members
  • PipPipPip
  • 36 posts

Posted 07 April 2009 - 05:45 PM

That gasifier.exe program models a downdraft gasifier, and doesn't expose the internals on the front page.  It does appear that you can click on "Windows->Equations" or "Windows->Formatted Equations" to see what it is solving.  If you then go to "Calculate->Solve", you get the final values for all the intermediate variables.  If we can identify what variables mean what, we may be able to make a "sanity checklist" for a valid result (and always remember that result is for a DOWNDRAFT gasifier, not an Imbert or updraft or any other configuration...)  It also boggles my mind that you get to specify the final producer gas temperature.  Where does the heat go?

Speaking of a "sanity checklist", Q_{pyrolyze} has a value of zero kW using the default values.  "Q"s traditionally mean "heat", and that's what they seem to mean in this context.  Until I come to understand why this model predicts zero heat for pyrolysis, I'm not going to trust any of its other numbers.  Would it be worthwhile to pick apart these "gasifier.exe" equations on the wiki?  

My other observation is that this EES program (which is really what "gasifier.exe" is) looks like the cat's meow!  You just type in all the equations you want to have solved, it rearranges them, solves for all the variables, etc.  Presumably it does this correctly.  Additionally, this "F-Chart" company seems to have a licensing model where if you have the "professional" version, you can tell it to make "stand-alone" programs which you can distribute.

Now this presents an enticing possibility...I think you (Jim) could probably make a freely available model of common GEK configurations merely by collecting the relevant equations together inside this EES.  Since Allpowerlabs is for-profit and does most of the GEK design work anyway, it may even make good business sense to buy the professional version.  The equations could be documented on the wiki, distributed as a stand alone EES program, and no one has to do any programming at all: not at first, and not down the line.  So it would in effect be a community-maintained set of equations packaged up and distributed by a central source, much like the GEK plans.  The downside is that the software is like $3500 or so (once).

#6 DanielChisholm

DanielChisholm

    Junior Member

  • Members
  • PipPip
  • 26 posts

Posted 08 April 2009 - 01:34 AM

GasMeBaby, the "Brandt Double Zone" looks like it ought to work; I'll post more over on the thread.  Short version for here: if possible, a gasifier should produce charcoal for itself, in-situ.

Also, the temperatures you quote for tar cracking etc. ought to be in "C", not "F".

Jim: the interesting figures to play with with the DTU program are with steam injection, with the steam heated to 800C (no, that's not physically practical, but you can figure out what the H2/CO benefit is, if any, and have this separate from the sensible heat loading requirements).

DutchJohn: You are the second person to express concerns about the DTU model.  Please let me know everything you are able to learn about its limitations, so I can avoid getting bitten.

GasMeBaby: in "gasifier.exe", the final temperature is an *INPUT* that you provide to the program.  Another *INPUT* that you provide is the CH4 content of the gas.  These you have to get from your actual gasifier, or from an informed guess; the internal model does not calculate them.

"gasifier.exe" works by figuring out how much air is needed, to form an energy balance, given the input constraints.  Coupled with this calculation, it calculates gas composition based on the temperature of the reduction zone that you specified and the various chemical species present (I *think* I recall that it assumes chemical equilibrium there).

I have glanced through the source code for "gasifier.exe", some of it is pretty Danish.  I know just enough German to be dangerous (e.g. "dampf" is steam).  I don't recall noticing Q_pyrolyze=0, and I can't explain that off hand.  (And like you, I was rather taken by the EES software - pretty slick!)

#7 jimmason

jimmason

    Administrator

  • Administrators
  • 527 posts

Posted 08 April 2009 - 02:11 AM

i asked a smart friend about porting this to a web app, and here's what i got back.  yes, i agree we need to understand the equations under it.  the modelling of pyrolysis remains the biggest mystery in all this.  the other issues are knowable by mortals, and the specifics are taking progressivley reasonable form here: http://gekgasifier.p...-Energy-Balance

seems someone should go and try to find the master's thesis on pyrolysis that the calculator was based on.  if nothing else, someone should write ulrik henriksen, who is was likely the advisor for this work.  i'm too underwater at the moment to take this on.  can someone else?
"Henriksen, Ulrik Birk" <ubh@mek.dtu.dk>

------------------------------------------------------------------------

from dan.

The program was written with an "application generator", EES,
that you can look at at http://www.fchart.com/ees/ees.shtml.
Gasifier.exe was generated with the professional version of the
program, which costs a thousand bucks. You probably have to find
an engineer to use it, otherwise you might have the GIGO problem.

The program was probably generated with equations from the master's
thesis of Fock, which had to do with the modelling of pyrolysis
in gasifiers. As the authors of the program suggest, you should
probably obtain the paper in question, to find out what the limits
of the model are. GIGO, again.

Until you have the paper, you don't really know if the calcs are
simple enough to "just plug into a spreadsheet". If they were that
simple, I would suspect that Fock and Thomsen would have just used
a spreadsheet.

And really, why bother with any recontextualization? Windoze boxes
are common. If you are a mac-only shop, take a look at Wine
for running gasifier.exe directly on a mac (http://www.winehq.org). Do a
writeup of how to use it, and some of the limitations of the Fock
Thomsen model. That would probably be less work and more useful than
reinventing the wheel for the 10 percent of the people that have just
an apple product on their desk.

Dan L

PS: it would be really good to get the paper. Here's the source code
from the equations window for gasifier.exe. It's kind of danish, which
looks german enough to read lots of it. It might be spreadsheet work,
after all.


FUNCTION Hm_vand_damp (T, m_vand_damp,H_fordampning)
IF (T<(373-273.15)) THEN
Hm = (ENTHALPY(H2O, T=T)+ H_fordampning)*m_vand_damp
ELSE
Hm = ENTHALPY(H2O, T=T)*m_vand_damp
ENDIF
Hm_vand_damp = Hm
END

{FUNCTION Q_tilført (T_ind; T_ud; Hm_ind; Hm_ud)
if T_ind = T_ud then
Q = 0
else
Q =  Hm_ind - Hm_ud
endif
Q_tilført = Q
END}

{INDFYRET EFFEKT}
Br_ind_sys = Br_n_flis*m_flis_ind/1000

{flisforvarmer}
{Q_flis = Q_tilført (T_ind; T_fugt; Hm_flis_ind; Hm_flis)}
Hm_flis {+ Q_flis }+ Q_pyrolyse= Hm_flis_ind
Hm_flis = h_flis*m_flis_ind
{Hm_flis_ind = h_flis_ind*m_flis_ind}

h_flis_0=Br_n_flis + ENTHALPY(CO2,T=(298-273.15))*1*MO_CO2/MO_flis + ENTHALPY(H2O,T=(298-273.15))*n_H_Cflis/2*MO_H2O/MO_flis

h_flis = h_flis_0 + 0.003867*((T_fugt+273.15)^2-298^2)/2 + 0.1031*((T_fugt+273.15)-298)
{h_flis_ind = h_flis_0 + 0,003867*((T_ind+273,15)^2-298^2)/2 + 0,1031*((T_ind+273,15)-298)}

Q_pyrolyse =(Q%p_ind/100-Q%p_fugt/100)*Br_ind_sys*1000

Q%p_ind =0.008192*T_ind
Q%p_fugt =0.008192*T_fugt

{fugtforvarmer}
{Q_fugt = Q_tilført (T_ind; T_fugt; Hm_fugt_ind; Hm_ind)}
Hm_fugt + Q_fugt =  Hm_fugt_ind
Hm_fugt = Hm_vand_damp (T_fugt, m_fugt_ind,H_fordampning)
Hm_fugt_ind = Hm_vand_damp (T_ind, m_fugt_ind,H_fordampning)

{DAMPGENERATOR}
m_vand = m_damp_ind

Hm_vand + Q_damp = Hm_damp_ind
Hm_vand = Hm_vand_damp (T_vand, m_vand,H_fordampning)
Hm_damp_ind = Hm_vand_damp (T_damp_ind, m_damp_ind,H_fordampning)


{LUFTFORVARMER}
{Q_luft = Q_tilført (T_luft_ind; T_luft; Hm_luft_ind;Hm_ind )}
Hm_luft + Q_luft =  Hm_luft_ind
Hm_luft = (ENTHALPY(N2,T=T_luft)*0.79 + ENTHALPY(O2,T=T_luft)*0.21) * m_luft_ind
Hm_luft_ind = (ENTHALPY(N2,T=T_luft_ind)*0.79 + ENTHALPY(O2,T=T_luft_ind)*0.21) * m_luft_ind


{FORGASSER}
{Molarmasser}
MO_H2O = 2*MO_H + MO_O
MO_CO = MO_C + MO_O
MO_CO2 = MO_C + 2*MO_O
MO_CH4 = MO_C + 4*MO_H
MO_H2 = 2*MO_H
MO_N2 = 2*MO_N
MO_O2 = 2*MO_O
MO_AIR = MO_N2*0.79+ MO_O2*0.21{}

MO_flis = MO_C + n_O_Cflis*MO_O + n_H_Cflis*MO_H

m%_C_flis = 1*MO_C*100/MO_flis
m%_H_flis = n_H_Cflis*MO_H*100/MO_flis
m%_O_flis = n_O_Cflis*MO_O*100/MO_flis

Br_ø_flis= 349.1*m%_C_flis + 1178.3*m%_H_flis - 103.4*m%_O_flis
Br_n_flis = Br_ø_flis + n_H_Cflis*0.5*MO_H2O/MO_flis*H_fordampning

{flis ind}
m_H_flis_ind/MO_H = n_H_Cflis * (m_flis_ind/MO_flis)
m_O_flis_ind/MO_O = n_O_Cflis * (m_flis_ind/MO_flis)
m_C_flis_ind/MO_C = (m_flis_ind/MO_flis)

(m_flis_ind*fugt%_våd_basis)/(100-fugt%_våd_basis) = m_fugt_ind
{fugt%_våd_basis = m_fugt_ind/(m_flis_ind + m_fugt_ind)*100}
fugt%_tør_basis = (m_fugt_ind/m_flis_ind)*100

{fugt ind}
m_H_fugt_ind / MO_H = 2 * (m_fugt_ind / MO_H2O)
m_O_fugt_ind / MO_O = 1 * (m_fugt_ind / MO_H2O)

{luft ind}
m_N2_luft_ind/MO_N2 = m_luft_ind/MO_AIR*0.79
m_O2_luft_ind/MO_O2 = m_luft_ind/MO_AIR*0.21

{damp ind}
m_H_damp_ind / MO_H = 2 * (m_damp_ind / MO_H2O)
m_O_damp_ind / MO_O = 1 * (m_damp_ind / MO_H2O)


{startværdier}
P_ud = P_ind- DELTAP

MO_gas_ud = m_gas_ud/(n_CO2_gas_ud + n_CO_gas_ud + n_H2_gas_ud + n_CH4_gas_ud + n_N2_gas_ud)

MO_gas_våd_ud = m_gas_våd_ud/(n_CO2_gas_ud + n_CO_gas_ud + n_H2_gas_ud + n_CH4_gas_ud +n_H2O_gas_ud + n_N2_gas_ud)

{Massebalancer}
m_ind= m_ud
m_ind = m_damp_ind + m_fugt_ind + m_luft_ind  + m_flis_ind
m_ud = m_gas_ud + m_damp_ud + m_koks_ud

m_gas_våd_ud = m_gas_ud + m_damp_ud
m_damp_ud = m_H2O_gas_ud

m_koks_ud = koks_ud%_af_k_ind_f * m_flis_ind /100

m_C_koks_ud = m_koks_ud

{grundstoffernes massebalance}
m_H_ind= m_H_ud
m_H_ind = m_H_flis_ind + m_H_damp_ind + m_H_fugt_ind
m_H_ud= m_H_gas_ud + m_H_damp_ud

m_C_ind= m_C_ud
m_C_ind= m_C_flis_ind
m_C_ud =  m_C_gas_ud + m_C_koks_ud

m_O_ind = m_O_ud
m_O_ind = m_O_flis_ind + m_O_damp_ind + m_O_fugt_ind + m_O2_luft_ind
m_O_ud = m_O_gas_ud + m_O_damp_ud

m_N2_ind = m_N2_ud
m_N2_ind = m_N2_luft_ind
m_N2_ud = m_N2_gas_ud

{damp ud}
m_H_damp_ud / MO_H = 2 * (m_damp_ud / MO_H2O)
m_O_damp_ud / MO_O = 1 * (m_damp_ud / MO_H2O)

{m_gas_ud = m_H_gas_ud + m_N2_gas_ud + m_O_gas_ud + m_C_gas_ud}

{Jens og Bennys ligevægtsudtryk}
K = (1.303E-6*(T_ud+273.15) + 7.17e-4)*(T_ud+273.15) - 1.3006

n_CH4_gas_ud = CH4%vol_tør_gas/100*n_gas_ud

{mol H, O og C i gas og damp ud af forgasseren fratrukket methan}
n_H_g_d_uCH4_ud = (m_H_gas_ud + m_H_damp_ud)/MO_H - 4*n_CH4_gas_ud
n_O_g_d_uCH4_ud = (m_O_gas_ud + m_O_damp_ud)/MO_O
n_C_g_d_uCH4_ud = m_C_gas_ud/MO_C - n_CH4_gas_ud

{andengradsligning for vandgasshift og de tre grundstof/gaskomp-balancer)}
a = K - 1
b = K*(n_H_g_d_uCH4_ud/2 - n_O_g_d_uCH4_ud + n_C_g_d_uCH4_ud) + n_O_g_d_uCH4_ud
c = n_C_g_d_uCH4_ud*n_C_g_d_uCH4_ud - n_C_g_d_uCH4_ud * n_O_g_d_uCH4_ud
D = b*b - 4*a*c
x = (-b+sqrt(abs(D))) / (2*a)
n_CO2_gas_ud = x
n_CO_gas_ud = n_C_g_d_uCH4_ud - n_CO2_gas_ud
n_H2O_gas_ud = n_O_g_d_uCH4_ud - 2*n_CO2_gas_ud - n_CO_gas_ud
n_H2_gas_ud = n_H_g_d_uCH4_ud/2 - n_H2O_gas_ud

{ mol<->masse }
n_CO2_gas_ud = m_CO2_gas_ud/MO_CO2
n_CO_gas_ud = m_CO_gas_ud/MO_CO
n_CH4_gas_ud = m_CH4_gas_ud/MO_CH4
n_H2O_gas_ud = m_H2O_gas_ud/MO_H2O
n_H2_gas_ud = m_H2_gas_ud/MO_H2
n_N2_gas_ud = m_N2_gas_ud/MO_N2

{Omregning af gassammensætning til masseprocent}
n_gas_ud = n_CO2_gas_ud + n_CO_gas_ud + n_CH4_gas_ud + n_H2_gas_ud + n_N2_gas_ud
n_gas_våd_ud = n_CO2_gas_ud + n_CO_gas_ud + n_CH4_gas_ud + n_H2O_gas_ud + n_H2_gas_ud + n_N2_gas_ud

{Omregning af gassammensætning til volumenprocent}
CH4_våd_vol%_ud = n_CH4_gas_ud/n_gas_våd_ud*100
CO2_våd_vol%_ud = n_CO2_gas_ud/n_gas_våd_ud*100
H2_våd_vol%_ud = n_H2_gas_ud/n_gas_våd_ud*100
H2O_våd_vol%_ud = n_H2O_gas_ud/n_gas_våd_ud*100
CO_våd_vol%_ud = n_CO_gas_ud/n_gas_våd_ud*100
N2_våd_vol%_ud = n_N2_gas_ud/n_gas_våd_ud*100

CH4_tør_vol%_ud = n_CH4_gas_ud/n_gas_ud*100
CO2_tør_vol%_ud = n_CO2_gas_ud/n_gas_ud*100
H2_tør_vol%_ud = n_H2_gas_ud/n_gas_ud*100
CO_tør_vol%_ud = n_CO_gas_ud/n_gas_ud*100
N2_tør_vol%_ud = n_N2_gas_ud/n_gas_ud*100

{Energibalance}
Hm_ind = Hm_ud + Q_tab
Hm_ind = Hm_flis_ind + Hm_fugt_ind + Hm_damp_ind + Hm_luft_ind
Hm_brændsel_ind = Hm_flis_ind + Hm_fugt_ind
Hm_ud = Hm_gas + Hm_damp + Hm_koks_ud

{Hm_flis_ind = h_flis_ind*m_flis_ind
Hm_fugt_ind = Hm_vand_damp (T_ind; m_fugt_ind;H_fordampning)
Hm_damp_ind = Hm_vand_damp (T_damp_ind; m_damp_ind;H_fordampning)
Hm_luft_ind = (ENTHALPY(N2;T=T_luft_ind)*0,79 + ENTHALPY(O2;T=T_luft_ind)*0,21)*m_luft_ind
Hm_gas = h_gas * m_gas_ud
Hm_damp = ENTHALPY(H2O;T=T_ud)* m_damp_ud}
Hm_koks_ud = h_koks_ud* m_koks_ud

h_koks_ud = 0.000425*(T_ud+273.15)^2+0.8679*(T_ud+273.15)-318.61



{Nedre brændværdi for gas på våd basis ud af forgasser}
Br_n_gas_masse =(Br_n_H2*m_H2_gas_ud + Br_n_CH4*m_CH4_gas_ud + Br_n_CO*m_CO_gas_ud)/m_gas_ud
Br_n_gas_vol = Br_n_gas_masse * DENSITY_N_gas_ud

DENSITY_N_gas_ud = MO_gas_ud*0.04462

Br_n_gas =(Br_n_H2*m_H2_gas_ud + Br_n_CH4*m_CH4_gas_ud + Br_n_CO*m_CO_gas_ud)

Br_n_koks =Br_n_C*m_koks_ud

{{Øvre brændværdi for gas på våd basis ud af forgasser}
Br_ø_gas_masse =(Br_ø_H2*m_H2_gas_ud + Br_ø_CH4*m_CH4_gas_ud + Br_ø_CO*m_CO_gas_ud)/m_gas_ud}
{Br_ø_gas_vol = Br_ø_gas_masse * DENSITY_N_gas_ud }

{Koldgaseffektivitet}
K_eff = Br_n_gas_masse * m_gas_ud/(Br_n_flis*m_flis_ind)*100

{NEDKØLING AF GAS}
Hm_gas = Hm_gas_ud+ Q_gas
Hm_gas = h_gas*m_gas_ud
Hm_gas_ud = h_gas_ud*m_gas_ud

h_gas*m_gas_ud = ENTHALPY(CO, T=T_ud)*m_CO_gas_ud + ENTHALPY(CO2, T=T_ud)*m_CO2_gas_ud + ENTHALPY(CH4, T=T_ud)*m_CH4_gas_ud + ENTHALPY(H2, T=T_ud)*m_H2_gas_ud + ENTHALPY(N2, T=T_ud)*m_N2_gas_ud
h_gas_ud*m_gas_ud = ENTHALPY(CO, T=T_gas_ud)*m_CO_gas_ud + ENTHALPY(CO2, T=T_gas_ud)*m_CO2_gas_ud + ENTHALPY(CH4, T=T_gas_ud)*m_CH4_gas_ud + ENTHALPY(H2, T=T_gas_ud)*m_H2_gas_ud + ENTHALPY(N2, T=T_gas_ud)*m_N2_gas_ud

{NEDKØLING AF DAMP}
Hm_damp = Hm_damp_ud + Q_damp_ud
Hm_damp= Hm_vand_damp (T_ud, m_damp_ud,H_fordampning)
Hm_damp_ud = Hm_vand_damp (T_gas_ud, m_damp_ud,H_fordampning)

{Tab}
Q_tab= tab%/100*m_flis_ind*Br_n_flis


{Konstanter}
H_fordampning =-2442

{Værdier}

P_ind = 101.3
DELTAP= 4

{n_H_Cflis =1,45
n_O_Cflis = 0,87}

MO_C = 12.011
MO_H = 1.0079
MO_O = 15.9994
MO_N = 14.005

Br_n_H2=119972
Br_n_CH4=50013
Br_n_CO=10103
Br_n_C=30000

{Enhedsomregning}
Hm_ud_f = Hm_ud/1000
Hm_ind_f = Hm_ind/1000
Hm_brændsel_ind_f = Hm_brændsel_ind/1000
Hm_damp_ind_f = Hm_damp_ind/1000
Hm_luft_ind_f = Hm_luft_ind/1000
Hm_fugt_ind_f = Hm_fugt_ind/1000
Hm_koks_ud_f = Hm_koks_ud/1000
Hm_våd_gas_ud_f = (Hm_damp+ Hm_gas)/1000

Q_tab_f = Q_tab/1000
Q_pyrolyse_f = Q_pyrolyse/1000
Q_fugt_f = Q_fugt/1000
{Q_flis_f = abs(Q_flis/1000)}
Q_luft_f = Q_luft/1000
Q_damp_f = Q_damp/1000
Q_gas_f = Q_gas/1000
Q_damp_ud_f = Q_damp_ud/1000
Q_våd_gas_f = Q_gas_f + Q_damp_ud_f
{Q_flis_pyrolyse_f = Q_flis_f + Q_pyrolyse_f }

Br_n_gas_ud_f = Br_n_gas/1000
Br_n_koks_ud_f = Br_n_koks/1000

m_flis_ind_ny = m_flis_ind*3.6
m_damp_ind_ny = m_damp_ind*3.6
m_fugt_ind_ny = m_fugt_ind*3.6
m_luft_ind_ny = m_luft_ind*3.6

{procenter}
m_flis_ind%= m_flis_ind/m_flis_ind*100
m_damp_ind%= m_damp_ind/m_flis_ind*100
m_fugt_ind%= m_fugt_ind/m_flis_ind*100
m_luft_ind%= m_luft_ind/m_flis_ind*100

Br_ind_sys% = Br_ind_sys/Br_ind_sys*100
Br_n_gas_ud_f% = Br_n_gas_ud_f/Br_ind_sys*100
Br_n_koks_ud_f% = Br_n_koks_ud_f/Br_ind_sys*100
Q_luft_f% = Q_luft_f/Br_ind_sys*100
Q_damp_f% = Q_damp_f/Br_ind_sys*100
Q_tab_f% = Q_tab_f/Br_ind_sys*100
Q_fugt_f% = Q_fugt_f/Br_ind_sys*100
{Q_flis_f% = abs(Q_flis_f/Br_ind_sys*100)}
Q_pyrolyse_f% = (Q_pyrolyse_f/Br_ind_sys)*100
Q_gas_f% = (Q_gas_f + Q_damp_ud_f)/Br_ind_sys*100
{Q_flis_pyrolyse_f%= Q_flis_pyrolyse_f/ Br_ind_sys*100}
- Hide quoted text -

#8 GasMe Baby

GasMe Baby

    Member

  • Members
  • PipPipPip
  • 36 posts

Posted 08 April 2009 - 03:10 AM

I guaran-frakkin-tee you this is not spreadsheet work.  There may be a Java toolkit available to help with a web implementation, but I'd encourage you to abandon that line of thought.  It would be hardcoded to a specific style of gasifier.  You are going to want to reconfigure the equations easily to test new ideas.

That ESS program is taking all of those equations, reordering them, considering them to be a system of equations, and solving them simultaneously.  ESS is one of the simpler interfaces I've seen (e.g., type all the eqns (any order, doesn't matter) and hit "go".)  Everything else is going to require programming of some sort...and reprogramming when you want to test a different configuration.

No matter what you do, you have to understand the equations.  ESS represents the minimum additional effort.  Another framework like Matlab (opensource: scilab) or some Python/Java libraries may be your next best bet.  It depends on who you have doing the work and what languages they know.

#9 GasMe Baby

GasMe Baby

    Member

  • Members
  • PipPipPip
  • 36 posts

Posted 08 April 2009 - 03:22 AM

DanielChisholm said:

Also, the temperatures you quote for tar cracking etc. ought to be in "C", not "F".

My bad.  You are quite correct.

#10 DanielChisholm

DanielChisholm

    Junior Member

  • Members
  • PipPip
  • 26 posts

Posted 08 April 2009 - 12:18 PM

FWIW, I have been running "gasifier.exe" in Linux (ubuntu) under WINE for the past couple of months.  It seems a bit slow compared to native Windows, but definitely not anywhere near unusably slow.  Other than that, I haven't notices any problems with it under WINE, in my recent limited use of it .

GasMe Baby said:

I guaran-frakkin-tee you this is not spreadsheet work.  There may be a Java toolkit available to help with a web implementation, but I'd encourage you to abandon that line of thought.  It would be hardcoded to a specific style of gasifier.  You are going to want to reconfigure the equations easily to test new ideas.

Agreed it is not for a spreadsheet.  I'm pretty sure that "Octave" (free, Matlab-like solver) would easily handle it, and I am 95% sure that it would likely be a breeze to port it to Octave.  Though I don't know if it would be worth the effort, and I can't think of how to easily make a nice easy GUI like the existing one has. (I use octave under Linux, and am very happy with it; I know it is available for Windows, but I don't have any direct experience of whether it is good and useful under Windows, or if it is a pain).

W.r.t. the type of gasifier, even though it says that it is for a downdraft, it is flexible enough that with a small amount of insight into what it is doing, you can explore a lot of interesting configurations.

If you wanted to extend it beyond its present implicit "downdraft assumption", which I think I would describe as the idea that the reactions are isothermal and reach chemical equilibrium at the prescribed exit temperature, what would be useful to add?

The fact that the existing program displays the power to/from the various flows is something I find extremely useful, and in fact defers a lot of my perceived need/desire to enhance the program.  For example, one can choose a certain amount of preheating (say 600C air as in GEK), and then examine the power needed to heat that stream, and compare it to the power used to cool the exit gas.  While gasifier.exe isn't modelling a counterflow heat exchanger for you, you can look at those numbers and get a quick idea of whether or not it would be practical to use the exit gas flow to heat the intake air flow, and what the margin is.  And having figured out that it is, and there is lots of margin, one can explore just how much excess power there is there, and use it to consider whether one can make a more-moisture-tolerant gasifier.  For example, if one is thinking of a deLaCott/Susanto-type internal recirculating tar burner, I model this by assuming an injection of a certain quantity of superheated 800C steam; then examining the power involved in heating this notional steam flow.  I'm not actually going to inject 800C steam (that would be impractical), but essentially that is what you are doing internally, if you use a portion of the internal heat budget; by looking at the amount of power needed to bring that steam up to the reactor exit temperature, once you've accounted for that, the rest of the system is neutral.  And you can see if the presence of that steam, once you've paid for it energetically, provides any benefit or disadvantage to the chemical composition of the outlet gas.

So I don't know what I would consider "needs" to be added to "gasifier.exe".  Perhaps an improved pyrolysis model, if the above comments about it are correct?  Perhaps a means to model and predict temperatures and energies in multiple zones, or to otherwise make it "pluggable" into a large system solver?

#11 GasMe Baby

GasMe Baby

    Member

  • Members
  • PipPipPip
  • 36 posts

Posted 09 April 2009 - 02:30 AM

My understanding of the most pertinent physical differences between a downdraft and Imbert gasifier from a modeling stand point are as follows:

  • Drying Zone: In a downdraft, incoming air directly impinges on the fuel, immediately transferring heat to the fuel (if the air is preheated) and starting the drying process.  In an Imbert, incoming air never touches the raw fuel directly and drying is initiated via radiation and convection from the combustion zone.  Water vapor in the downdraft is entrained in the air stream and is exported to the pyrolysis, combustion, and reduction zones.  In the Imbert, water vapor may be condensed and removed (as in the monorator case).
  • Pyrolysis zone: In a downdraft, O2 physically impinges on the pyrolyzing fuels and residual heat (if the air was preheated) adds energy to the pyrolysis process.  In an Imbert, incoming air does not flow through the pyrolysis zone: residual O2 may diffuse into the region but most O2 is used in the combustion zone; heating of the zone is primarily via radiation and convection.
  • Combustion Zone: In a downdraft, O2 in the input air, as well as the temperature, has been reduced due to its transit through the drying and pyrolysis zones.  In an Imbert, the input air has full O2 and is at the input temperature at the point of combustion.  (e.g., "chemical equilibruims" are vastly different).  The downdraft design assumes that all water vapor is transported thru the combustion zone and affects the combustion chemistry.  The Imbert design does not require this.
  • Reduction Zone: Product gas temperatures to the reduction zone are (could be) radically different between the two designs, as the inputs to the combustion zone not only have different moisture contents but also have potentially radically different reactant temps due to the cooling effect of the fuel on the input air in the downdraft design.  The temperature profile of the reduction zone is determined entirely by the initial temperature and composition of the producer gas.  Whenever the reduction zone drops below the magic temperature, it stops "reducing".

If we were to modify the equations, I would suggest developing one set of equations for each zone.  Each zone would have input and output variables.  A particular "gasifier" would be constructed by wiring the zones together in a manner appropriate for that style.  (e.g. outputs of previous zone connected to inputs of following zone.)  Using these basic building blocks we could quickly throw together a primitive model of whatever we could think of.

As to the steam injection experiment, I do not know how to interpret the results.  In a downdraft reactor, I can grant that it preheats and dries the fuels, and may even supply energy for pyrolysis.  In an Imbert reactor...well, spraying steam directly on the hot charcoal, by all accounts, is going to drop the charcoal temperature radically.  If that happens, less energy will radiate into the pyrolysis and drying zones, potentially stopping the entire process.  

The zones are coupled differently.  This affects the model.

#12 DanielChisholm

DanielChisholm

    Junior Member

  • Members
  • PipPip
  • 26 posts

Posted 15 April 2009 - 12:26 PM

"GasMe Baby" (gosh, that's a mouthful to say and to still keep a serious expression!),

Sorry about the delay in replying (your post needed some chewing over!).

Firstly, I should comment that an Imbert is a particular kind of downdraft gasifier; I suspect that when you say "downdraft", you probably mean "stratified downdraft", i.e. a nozzleless, open-top gasifier.  ("Downdraft" means the same thing as "cocurrent reactor", i.e. the air and the fuel flow in the same direction.  "Updraft" is the gasifier world's name for "countercurrent reactor", i.e. the air and the fuel flows are in opposite directions).

The DTU "gasifier.exe" program is essentially a "lumped parameter" model, treating the entire reaction zone (drying + pyrolysis + combustion + reduction) as a black box.  What it does (and this is all that it does) is solve for an airflow rate that will produce an energy balance.  Included in (coupled to) the energy balance is a modelling of the concentration of chemical species C, CO, CO2, H2, H2O (but not CH4!), under the assumption of chemical equilibrium at a specified temperature.

What you suggest as a model is the next logical step - going from gasifier.exe's "one box" model into a "four box" model.  W.r.t. your approach, I agree that a "wiring the zones together" approach would be a good one; perhaps some sort of "pluggable modules" we could assemble (e.g. a counterflow heat exchanger here, a heat source there, an air source there, a gas sink there, etc) and then get solved.

GasMe Baby said:

As to the steam injection experiment, I do not know how to interpret the results.  In a downdraft reactor, I can grant that it preheats and dries the fuels, and may even supply energy for pyrolysis.  In an Imbert reactor...well, spraying steam directly on the hot charcoal, by all accounts, is going to drop the charcoal temperature radically.  If that happens, less energy will radiate into the pyrolysis and drying zones, potentially stopping the entire process.

You correctly understand, in detail, what is going on, e.g. "400C steam injected into the cold fuel bed would help dry and heat the fuel before it gets to the reaction zone", or "400C steam injected into the reduction zone will cool it".  Both of these are correct, and important for a gasifier designer to understand.

Remember that I was describing things in a "black box" sense, because that's the only thing that the tool at hand modelled.  Your "problem" (though I shouldn't call it that!!) is that you are looking at the details of things.  My approach was simply that 400C steam, regardless of its injection point, is going to be overall endothermic - simply because it is eventually going to be discharged from the gasifier at 800C (OK, to correctly quibble, some of the H2O will be discharged as other products; but the reactions involving H2O are much closer to temp-neutral than those involving O2).

When I suggest, "what if we direct 800C (or 1000C) steam at the char", I am not suggesting generating such steam externally and then injecting it into the reaction zone (!!).  I am suggesting that if we have built an internal mechanism (e.g. an ejector-driven internal partial combustor) to generate superheated steam and/or air, then from a lumped-parameter modelling point of view, this is what would happen.  Since I am "lying" to the model, and not telling it where/how I will be generating this heat, I need to pay attention to the energy required to generate this steam blast, and manually account for it.  What I ought to do, probably in several iterations, is to then add an artificial heat loss, equal to the calculated energy in my postulated superheated steam/air blast (which is actually going to be generated from internal partial combustion).  As gasifier.exe attempts to balance that heat load, it will converge upon the air feed rate required, and the chemical species composition will be modelled correctly (I will be responsible, externally, for ensuring that the mysterious "heat added as ridculously superheated steam" balances the "heat lost as an unreasonably high heat loss").

With a coupled "pluggable" system as you suggest, I could model that in one step.  Until I get lazy enough to write an improved system ;-), I can do it as a handful of manual runs...  (So as a corollary to Jim's "sooner or later it all gets back to gasification", I offer "it's always laziness")

#13 jimmason

jimmason

    Administrator

  • Administrators
  • 527 posts

Posted 04 May 2009 - 05:15 AM

Well, if we are going to wander into ideas for better zone separation as displayed in the Brandt, and internal tar recyling and open combustion chambers like in the Beijer/Susanto unit, then I should likely admit my ringer for how to do all this (and improve on it) in the GEK.

This new reactor insert is called the "Triple Hips".  I started a thread on the details here.
http://gekgasifier.c...p?p=368#post368

Given the difficulties Bear has found making the ejector venturi tar recyling nozzles work against a packed bed, we might find ourselves exploring this design sooner rather than later.  It will be much easier to make the tar recycling work in this open combustion scenario vs fighting the packed bed.


jim




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users