Saturday, August 17, 2013

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