Pressure Tests
The bucket was easily made air tight by placing a 2mm bead
of modeling clay on its lip before sealing the lid. The allthread clamps hold
the lid on securely.
The programming and interfacing of the Arduino Uno was challenging but not
impossible. I found Beginning Arduino Programming by Brian Evans to
be an excellent text. An Arduino C-like program gets written and uploaded from
your computer, though a GUI supplied by Arduino. The Arduino program environment consists of a global variable
definition section, a setup section that is executed only once and a loop
section that runs continuously thereafter.
Arduino sketch |
The Arduino program is designed so it can run the engine independent of the desktop computer, but information and control is available when it is connected to the desktop graphical interface. The Arduino program keeps track of the engine
timing, reads the sensors and actuates the fan and heater relays. Each time a crank sprocket blocks the timing
sensor (48 times per revolution), telemetry is sent to the desktop interface;
Telemetry example
: “44 15 85 010 #”
Crank
position (0-47) zero = TDC
Engine
speed (milli-seconds since last crank
sprocket detection)
Engine
relative air pressure (PSI times 100)
Relay values as a binary string (fan switch 1 & 2, heater switch)
End of data
string character (#)
I wrote a VB6
graphical interface that receives and graphs the real-time engine telemetry and
also sends single character commands to the Arduino program over the connecting
USB cable. The commands are:
“0” for
stop engine and exit test mode
“1” for
start engine
“2” for
change the baud rate to 38400
“3” for
turn on fan and heater*
“4” for
turn off fan*
“5” for
turn off heater*
“6” enter
test mode
*The fan and heater timing commands are time
dependent and are sent only once, just
prior to the desired change. The change
is remembered by the Arduino program and is used during subsequent cycles.
Piston pressure real-time graph. |
In RUN mode, the Arduino program uses the crank angle
position to control the fan and heater relays. This real-time graph is of
pressure (black), speed (red) and switch values (magenta), as I manually turn
the crank with no heat supplied and the valve between the piston and bucket
open (connected). The changes in pressure are due solely to the pumping of the
piston. There is a pressure range of about 0.6 PSI to -0.5 PSI.
Piston pressure simulation. |
It is gratifying
that the graph of the real data looks remarkably similar to the pressure (blue) predicted
by my engine simulation program. The simulation gives a pressure range of positive 0.77 PSI to -0.72 PSI.
Regenerator pressure real-time graph. |
In TEST mode the Arduino simulates the crank movement at a
rate of one sprocket position every 15 mS.
I ran the engine in TEST mode with the heater and fan cycling on and off
and the valve closed to the piston (a completely closed bucket). The change in pressure is due solely to the
action of the air moving back and forth through the regenerator. Temperatures at 60ºC and 23ºC. Pressures at +0.6 PSI and -0.3 PSI
Regenerator pressure simulation. |
It is interesting that the real-time pressure curve
increases and decreases linearly as the fan moves the air through the
regenerator, instead of the sinusoidal curve as predicted in the engine
simulation program. Simulation pressures were at +0.8 PSI and -0.6 PSI
The engine has not produced enough power to run by itself yet. I am having some very frustrating fan motor problems that
interfere with the USB cable data transmissions. I keep loosing the interface
when the fan runs. I must reopen the bucket to add noise filtering capacitors
to the hair dryer motor before doing more tests.
No comments:
Post a Comment