Combustion Simulation of a Two Stroke Diesel Engine (NOx formation)

261 views
Skip to first unread message

Daniel Fiuza

unread,
Nov 10, 2014, 4:45:12 AM11/10/14
to canter...@googlegroups.com

Hi everyone!

I’m trying to make some simulations in Python of the products generated in a 2-stroke diesel engine (crosshead) using Cantera. I have been trying to write a model of the engine the most realistic as possible but I run into several problems. I hope someone could help me with it J

The main idea is to simulate the combustion process in the engine to know the production of species (mainly NOx) according to the change of parameters in the engine (as peak temperature, air/fuel ratio) and apply a EGR (exhaust gas recirculation) to compare the given results.

  1.   I can run a simulation with constant pressure or constant volume, but I don’t know how to do it without taking something constant (pressure or volume). I was thinking of using the cinematic formula of the movement of the crank to try to make a relation between the pressure and the volume, but I don’t know how to define in the code these relationships.
  2. I want to use a heavy fuel oil, I am currently using C11H12O4 (that is not a heavy fuel oil, but is a first approximation), with the mechanisms from Ranzi of Politecnico di Milano. Anyone know any place where we can find a heavy fuel oil mechanism like the one used in engines in bulk carriers? (Important to contain the NOx mechanism in it).
  3. Can I set the mass flow rate of fuel (or fuel + air) in function of time? To simulate in the best way the fuel injector. Is there any better way to simulate a fuel injector?

If anyone has already done a model of an IC diesel engine, it would be nice any advice or an overview of how to do it.

Thank you!

Nick Curtis

unread,
Nov 10, 2014, 10:15:43 AM11/10/14
to canter...@googlegroups.com
1.  What you want to do is set up an IdealGasReactor w/ a Wall installed.  Then you simply need to write the velocity of the piston head as a function of time, e.g.:

def piston_velocity(time):
   
return ... #your formula for velocity in m/s

Wall w
w
.setVelocity(piston_velocity)
w
.install(environment, reactor) #make sure you have the left and right arguments correct otherwise your volume will increase

3.  Similarly, you need a MassFlowController installed between the inlet reservoir and the reactor.  Then you can set the mass flow rate in a similar manner to the wall velocity function, i.e. any arbitrary function of time (or any other variable for that matter)

For a simple EGR model, I have simply sampled the gas state at exhaust valve opening, and assumed it throttled to the inlet temperature and mixed it on a per mass basis with the inlet gas.  You can come up with a more accurate model if needed.

Finally, note that you can apply a heat loss model through your wall using the setHeatFlux method and the Area
Reply all
Reply to author
Forward
0 new messages