No Subject

Bruce Bowling bowling at cebaf.gov
Fri Mar 31 20:18:03 GMT 1995


Shortly, I will be ready to release a beta version of
the dynamic engine simulation (EngSim) I have been working on.
This first incarnation provides the dynamic position of engine
components (crank, cam, piston, etc) as a function of time/rpm.
I also have the start of airflow information, but this is
not complete.  All of the pertinent variables are "settable"
using a input card format.  These variables include:
  Initial: time, crankshaft and camshaft angle, rpm, change in rpm,
engine temp, etc.
  Engine: cid, bore, stroke, rod length, fire order, etc,
  Camshaft: Centerline, lobe separation, duration(s), flowbench CFM's etc.
  Dynamic Variables: delta time, delta crank angle, total running time,
     etc.
  
I have also put in a capability for "events".  This allows one
variable to influence another's value.  For instance, it may be desirable
to start the simulation at 2000 RPM, then after 5 seconds, go to
3000 RPM at a change rate of 100 RPM/sec, then maintain 3000 RPM
for 10 seconds, then change again, etc.  One can use the event mechanism
to accomplish this.  I used events to put in a engine temperature
"warm-up" curve which I measured from a real engine.

Outputs include a complete "dump" at every "n" crankshaft degrees
(user sets "n" and the amount of data dumped), with info on
every cylinder (EngSim currently tracks 4, 6, or 8 cylinders with
a user-defined firing order), piston postion, speed, acceleration, and
swept volume, valve lift/airflow (for each cylinder), engine
temperature, etc.

One question: Should I post the code directly to the mailgroup, or
use Majordomo, or an FTP site (which I will need)?  Should I post
the user's manual to the mailgroup ahead of time?

The code is written in non-ANSI "C", and was compiled successfully
using "gcc" on a HP workstation.  It should compile on another
platform with very little work.  On my machine (roughly 100 MIPS)
for a 8-cylinder simulated engine, using 1 degree crankshaft increments
and 5 seconds simulation time, the execution time was 22 seconds.
This should be kept in mind if one wants to use a slower computer.

The ultimate goal of EngSim is to provide resonalble simulated electrical
outputs (TPS voltage, crankshaft trigger wheel pulses, etc) to
"feed" into high-level ECU control algorithms, in order to help
debug them.  Algorithm control loops can be verified for proper
response before implementing them in a real hardware environment.
It is better to find an error in a user's control algorithm using
EngSim (or equivalent) then discovering it with a running engine.
EngSim was not designed to be a precise airflow model, or predict
structural problems in an engine. 

Right now, there is no "hook" to the outside world of the
variables at time N.  There are many ways to accomplish this.
One is to hook directly into the MAIN() routine and compile
everything together.  One can also dump EngSim output to a 
file and use the "test" code to read it back in.  The way
I am looking at is to use TCP/IP Berkeley Sockets and run
EngSim as a background process server, and test codes are
attached as clients.



-----------------------------------------------------
<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-----------------------------------------------------
               Bruce A. Bowling
  Staff Scientist - Instrumentation and Controls
 The Continuous Electron Beam Accelerator Facility
    12000 Jefferson Ave - Newport News, VA 23602
                 (804) 249-7240
               bowling at cebaf.gov
-----------------------------------------------------
<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
-----------------------------------------------------



More information about the Diy_efi mailing list