So one of the aims of my project is to use in-cylinder pressure as a means of providing a measurement of what is going on with the engine, and hence use this to in some way control my ignition and fuelling.
You may wonder what in-cylinder pressure is, it’s not something that you’d normally find as available data even on the very latest engines. Well, basically it’s just a pressure transducer inside the combustion chamber. This allows us to see the pressure generated from compression and combustion (and measure pressure anywhere else in the cycle). This pressure data can provide us with a vast amount of information about many of the processes that are occurring within the engine, and is probably one of the most useful possible sensors for analysing combustion. Using in-cylinder pressure, we can analyse a number of things
- Peak pressure
- Inlet pressure
- Combustion stability
- Indicated torque
- Heat release rate
And many more parameters can be calculated. The sensor that I am using is built into a custom spark plug by Kistler, and is of the piezo capacitive type, which means that its capacitance changes with pressure. In order to interface this type of sensor with any data acquisition units, a charge amplifier is required to convert this changing charge into a varying voltage. I’m using an AVL IndiSet 620 high speed data acquisition unit to capture the changing pressure data from the pressure sensor (although I have now built my own interface for this instead). The IndiSet box interfaces with a PC through a parallel port interface, and operates in conjunction with AVL IndiCom software in order to configure the IndiSet box and begin to capture high speed data. Below is an animation of 50 engine cycles captured by this equipment.
As you can see, it allows us to see exactly when the ignition, fuel injection and combustion has occurred. In this case, the fuel injection timing is extremely stable, but the ignition timing is a little jittery. I think that this is more to do variations caused by the analogue input I am using to control the ignition advance, and vibrations on the potentiometer used for setting the advance angle. We can see that this is what’s known as a wasted spark ignition system – there are two ignition (and fuel) events per one full engine cycle. This is because the ECU doesn’t have a reference for which of the 4 strokes is compression and power and which is exhaust and inlet (we would need a cam shaft sensor for this).
For my project, I am aiming to use in-cylinder pressure information as a means of controlling ignition timing in a closed loop manner, and also as a ‘virtual’ lambda sensor. As you may know, most engines will adjust the ignition timing according to engine speed and other parameters. On a distributor ignition system, this is done with a vacuum advance. The general idea is that as engine speed increases, the spark needs to happen earlier, because the fuel takes a fixed amount of time to burn. Adjustment of ignition timing is usually done in an open loop manner, with pre defined values for a given load and speed coming from an ignition map. The engine may then try to advance the ignition up to the point at which it detects knock, it will then retard the ignition again.
I am aiming to avoid this trial and error type of control, and instead be able to control the angle at which peak pressure occurs. This is generally a fixed angle for all engine operating conditions, some time around 20 degrees after TDC. I will be able to detect this point from the cylinder pressure, and alter the ignition timing to effectively move the angle of peak pressure.