[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[tuner23] Re: ion sensing ignition tuning

It is the same theory but I don't know much on how Jacobs designed his unit. GM, Isuzu, Mercedes, and Saab, all use this in production now. Other cars may be using this also. My hopes are to use speed density and ion sensing in place of vain air.

--- In tuner23@y..., "Avanti" <duecento@A...> wrote:
Isn't this the same technology Jacobs is using to control spark
output in
his ignitions? He talks about using the sparkplug as a transducer
by putting
a voltage across the plug after ignition, and using this data to
adjust the
next spark cycle for this cylinder. He claims you can read th
across the spark plug gap from the primary side of the coil. That
seemed like quite a trick to me since the rotor/cap gap makes the
qite high, I would expect.

----- Original Message ----- From: "sac49091" <crisdresch@h...>
Page 1
DIY ion sensing ignition subsystemVille VartiovaaraVille.Vartiovaara@h... 3, 2002 Page 3 Chapter Disclaimer
This document is a description of how the author has built an ignition timing feedback subsystem that uses ion sensing. The system is being used solely for his private experiments. If you intend to use this information in any way, you should find out what you are allowed to do, since some companies have patented this technology.The author has nothing to do with these companies, and gives no guarantee for the authenticity or correctness of any information presented in this document. All information in this document is for informational purposes only; to givean idea of how a simplified ion sensing feedback system can be built. If you use this information for anything, you do it at YOUR OWN RISK, the author takes NO RESPONSIBILITY for any harm or damage caused by doing so. CHAPTER 1. PREFACE This is a PRELIMINAR version of a project description and not complete at all. This version is published to inform the readers of the existence of the project and give some basic information about it,while more complete version is to come when the writer has time to make one. A method to get to know whether ignition is too early or too late, on a cycle-to-cycle basis. No extra intrusive sensors, no engine modifications. The technology can be applied to any internal combustion engine that is ignited by a spark plug, independent of the enginge layout and fuel and efficienty. We get to know the crank angle where the pressure is at its maximum. If thisPPP (Peak Pressure
> Position) is kept constant (depends only on motor design)under all
> conditions, we can suppose to have the ignition "perfectly tuned"
> allthe time. The same could be achieved by installing a high
> sensor inthe cylinder head next to the spark plug, but it is
> possible due to bothlimited space in the block and also the high
> mechanical stress applied to theassembly. Ion sensing uses the
> plug as an intrusive sensor. We apply avoltage of 100-400Volts
> the spark gap just after the ignition, and as boththe combustion
> flame and also ionized resultants conduct a little electricity,
> measure the current via the spark gap, and get a curve, where we
> extractseveral parameters such as PPP.1.4 Benefits (to mention a
> Traditional ignition control relies on predetermined rules
(tables of
> factors).These rules are coded in the control system (electronic
> mechanical) uponmanufacture. The correctness of ignition timing in
> road conditions depend onhow well the designer has been able to
> reckon with all the parameters that affectthe burn rate and thus
> the 'ideal' advance. Not to mention the effect of agingof the
> engine.Usually the timing can be estimated quite well (with a
> ECU) duringmedium or high load, and when air humidity is
> low, as in the proto-typing lab. But, as these high load
> in dry air are quite infrequent innormal use, the correct timing
> light load (lean mixture) and varying humidityis of the highest
> importance, especially when economy, smooth operation,
> highinstantaneous power, low emissions and durability are
> factors. Thisis the case in all normal cars.When an ignition
> system uses ion sensing, it can, after every
singlecombustion, "see",
> if the ignition was too early or too late. The predetermined
> ------------------------------------------------------------------
> ----------
> Page 5
> CHAPTER 1. PREFACE4tables, which can be substantially simpler than
> with traditional predictive con-trol, are then updated to reflect
> current conditions. So a simple table maystill be used, but if a
> enough feedback system is used, the table is only usedupon
> and similar conditions, where no reasonable ionization currentmay
> present after ignition.The ignition control system is simplified a
> lot, asthe amount of discrete sensors is reduced to a minimum of a
> crank positionsender (TDC sensor or better).Due to the quite
> demanding nature of the ion current signal (the shape ofthe
> that flows across the spark gap during combustion) it is
> use ion sensing only as a correction factor. It may be difficult
> get reliabledata after every combustion, so the system may be
> in a way that thefeedback unit spits out an averaged error angle
> much the ignition is toolate or early, in degrees) of e.g. ten
> revolutions, and the original control unitmay then tune the
> ignition table, being able to do this after every cycle.With this
> technique the ignition tuning steps are 'blurred' to minimize the
> effectof a erroneous error angle, still maintaining short response
> delays to changingconditions such as mixture enrichment during
> acceleration.
> ------------------------------------------------------------------
> ----------
> Page 6
> Chapter 2Theory of operation2.1 PrerequisitesPrior to trying to
> understand the issues covered in this document it is advisedthat
> spend a little time e.g. searching the web and finding general
> informa-tion about ion sensing in ignition control, especially if
> are not familiar withthis kind of technology. I could give a
bunch of
> URLs here, but they would,sooner or later, become outdated. For
> convenience, please use a searchengine instead.2.2 GeneralWe can
> learn from deeply studying the nature of an internal combustion
> engine,that the signal we get from the spark plug can be
> as a sum of twoGaussian curves [1], the first of which is due to
> charge carried by particlesin the flame (a.k.a flame ionization).
> second presents the pressure in thecylinder (Fig. 2.1). This is
> because the voltage we apply across the spark plugelectrodes
> the results (not-yet-escaped exhaust gas), and the amount ofcharge
> carried by these ionized particles is proportional to the gas
> pressurearound the electrodes. And as we are interested in the
> (crank angle)where pressure reaches its maximum, it is the peak
> position of the latter term.The difficulty is to extract that
> position, and the first method that comes tomind is brute curve
> fitting. Gaussian curve is of type ae-b(x-c)2, so the wholecurve
> this model is a sum of two exponential functions. This leads to
> hugeamount of calculations in curve fitting, so we either have to
> reduce resolutionto an unusable amount, or simplify the process in
> some way. This is becausethe calculations have to be done approx.
> times per second per cylinder at aresolution of one degree.2.3 My
> versionThe curve fitting method can be simplified mathematically
> make it possibleto do the calculations in real-time with moderate
> computing power (an ordinarymicrocontroller). Despite this I
> that it would be nice to be able to build5
> ------------------------------------------------------------------
> ----------
> Page 7
> CHAPTER 2. THEORY OF OPERATION6[ht]Figure 2.1: The measured signal
> and its componentsa functional system without first having to bury
> oneself in maths. So I decidedto try a simplified version of curve
> fitting, something similar to what I do myselfwhen trying to
> approximate the peak position from a curve that is printed
> The model is:* find the highest peak of the whole signal (giving
> approx. the peak of theflame term)* do a primitive curve fit to
> a Gaussian curve that fits to the first peak'srising slope*
> that curve from the original signal* find the highest peak of the
> remainders* trust in the resultThis method gives surprisingly
> results, at least so correct that I couldn'tsay them to be
> when visually comparing to the original signal. So itis time to
> it to work. Oh, and of course, when the system is ready (allthe
> hardware built), the software can always be enhanced to give more
> accurateresults. The point here is to get a good enough algorithm
> start with.
> ------------------------------------------------------------------
> ----------
> Page 8
> Chapter 3First implementation,laptop-based test benchHaving
> the algorithm in C on Linux I wrote a program that read
signalfrom an
> 8-bit ADC attached to a laptop's parallel port, extracts the PPP
> andshows the result on screen. When the engine was idling, the
> laptop, that wason top of it, had a meter on its screen showing
> that was varying fromsomewhere near 15 degrees to over 40 degs
> occasionally. The engine is not inperfect tune..;) All the time I
> an oscilloscope attached to the signal cableto be able to verify
> results, which seemed to be correct. When the enginewas loaded a
> the PPP got more stable, so the system was working. Theproblem was
> that as I only had an 8-bit ADC, and the dynamic range of
> is much wider, I had to manually re-tune the preamplifier not to
> thesignal clipped during conversion at a higher load. Anyway, the
> algorithm wasproofed to work as expected.3.1 Detailed
> High voltage sideTo be able to get the signal from the spark plug,
> you have to apply a relativelyhigh voltage to it after ignition,
> measure the resulting current, which is oforder 1mA. For this
> I built a simple switching flyback inverter basedon the 555 timer
> a 10A mosfet (high rating to allow for bad design withoutsmoke :)
> Some systems use a plain zener diode and a capacitor in place,
> butthis is only possible when the car is fitted with four terminal
> coils or similarwith entirely isolated secondary side, which are
> quite common. At least mycar doesn't have one..:)3.1.2
> 400V must be applied to the spark plug, which means that we do not
> wantto get any current (especially at 15kV) from the plug during
> spark. So we musthave a diode that has reverse breakdown voltage
> substantially higher than theignition system's spark voltage. I
> 24 1kV avalanche diodes in series to get7
> ------------------------------------------------------------------
> ----------
> Page 9
> which is enough for my old coil ignition. The installation must
> bePlugsignal(-)400(+)Coil4.7kFigure3.1:High voltageassembly
> tothesparkplugdone with great caution, to make sure that no one
> hurt by either the highignition voltage (> 10kV) or the ion
> voltage (400V) when the engine isrunning. I used silicone tube to
> cover the diode chain.3.1.3 Noise reduction and signal
> the operation environment is quite demanding in the sense of
> protection fromelectromagnetic interference (EMI), the signal
> across the resistor nearthe spark plug is transferred in a coaxial
> (microphone) cable to the filtering andpreamp unit. I use a 4700
> resistor as the current sensor, so the amplitudeof the signal is
> somewhere between 3 and 5 Volts at its highest. The filteringmust
> minimal, because the useful band of the signal goes up to 30kHz,
> Iuse a simple RC low-pass filter with -3dB point somewhere around
> 50kHz. Alsominimal distortion is of utmost importance, as any
> shift in the majorcomponents result directly in wrong PPP
> The filter is built into atwo-stage amplifier consisting of a
> gain inverter and an adjustable-gainamplifier. This is because the
> signal present on the resistor leads is from 0 to-5V. To make the
> signal usable, it must first be inverted, and this is carried
> its simplest by constructing an op-amp-inverter with one half of a
> LM358.This design also provides us with a substantially high input
> impedance, whichis important due to the nonlinear nature of the
> signal source. Then the otherhalf is used to create the amplifier.
> The resulting signal is positive-up, 0-to-5Vsignal, which can be
> directly fed to the ADC.3.1.4 Analog-to-Digital conversionIn the
> first version I used a 8 bit ADC from Texas Instruments they
> meas a sample. It was chosen because I wanted to get easy
> via the parallelport. The ADC was of parallel-out type, so I just
> needed to put wires betweenthe parallel port pins and the pins on
> ADC. The return path (ground) fromthe parallel port was blocked
> a low-drop diode to prevent burning the portdriver if some of the
> data pins were mistakenly pulled low while the ADC wassending
> high.3.1.5 Crank angle senderTo make the sampled signal useful, we
> also need some timing information. I usea simple aluminum plate
> mounted to the generator belt pulley at the end of thecrank
> rotation of the plate is encoded with an optical switch and sent
> apin in the parallel port. The design of this sender is not
robust at
> all; it is justsimple to make, whereas the final version must
have a
> hall effect detector andan appropriate metal plate. But for a
> prototype this is good enough.20Figure3.2:Crank angletiming
> SoftwareI have no knowledge of an existing system that would be
> this technology.When writing software for the laptop
> I tried to make things
> ------------------------------------------------------------------
> ----------
> Page 10
simple as
> possible, and, first of all, fast. The goal was to keep the
> instructions per two engine revolutions (four-stroke) under 5000,
> theresult was approx 3000. This means that if the engine runs at
> 6000RPM, youneed a processor capable of doing 150000 instructions
> second for the signalinterpretation. So my 100MHz 486 was really
> enough..;) So I put a niceanalog meter on screen instead of a
> ASCII output.I don't provide any sources at this point, as this
> version was really aprototype in all respects. All I say is that
> was coded in C with Linux gccand basic X11 libs, with optional
> time scheduling. As soon as I saw thatthe algorithm was working,
> didn't need all too much computing power tokeep real-time, I moved
> forward to the next implementation. Anyway, the basicstructure of
> software is as follows:3.2.1 Basic structureData logging cycle:*
> discarding samples until a high spike due to spark occurs in the
> signal* when the spark peak goes down, start logging sampled data
> furtherprocessing* log data until 120ATDC (approximated from the
> amount of samples col-lected during signal from timing plate
> is active (from TDC toTDC+20 degrees)* when ready, hand over the
> logged data for PPP extractionPPP extraction routine:* find the
> peak location* fit a Gaussian curve to that peak's rising slope*
> extract that curve from the original data* find the remaining
> signal's peak position* transform the peak coordinate (sample
> into degrees ATDC withthe help of knowing from which sample to
> sample the timing platesignal was active (from TDC to TDC+20
> again)* put the PPP on the screen ;)* adjust sampling speed if the
> amount of samples was too small or too high(adapt sample rate to
> changing RPM)* pass control to the sampling routineAnd that's it.
> routines can be enhanced in many ways, such as controllingthe
> sampling with a PLL (Phase Locked Loop) so that no software RPM
> sensingneeds to be done, adding automatic signal level control
> used with a 12-bitDAC) etc.. But it works.As it became obvious
> the algorithm is promising, and that I neededmore resolution to
> A/D conversion, it was time for the next implementationwith Texas
> Instruments 16-bit RISC microcontroller MSP430.
> ------------------------------------------------------------------
> ----------
> Page 11
> Chapter 4Second implementation,MSP430 microcontrollerOk, now I'm
> working on an integrated version that is based on MSP430F149,the
> Texas Instruments' 16-bit RISC Flash microcontroller. The chip
> operates atclock frequencies of up to 8MHz and has many very
> features that bene-fit this project. It has a 12-bit ADC (8 MUXed
> inputs), 2 timers and a hardwaremultiplier module on chip along
> many other integrated peripherals. All theperipherals share the
> 2048byte memory, so the API is very simple. F149has 60kB of Flash
> memory with serial (in-system) reprogramming capability.The
> application code can also update the flash memory autonomously.
> Theseare the main points why I decided to use just this chip in my
> project.The software is mostly assembler, but there are still some
> lines of C wherespeed isn't important. The program structure is
> roughly the same as in thelaptop version, only the sampling
> are entirely different. The timing isdone by having two IRQs sent
> the timer and the ADC. So it's a bit more'multi'tasking..;)
> to keep this document preliminary, I won't writeabout this any
> Hope I'll find the time to finish this document soon.. Justnow I'm
> too busy debugging the new system that has all the basic
> (sampling, PPP extraction, PPP sending via RS232 interface (gives
> correctnumbers..:)) but needs more..10

------------------------ Yahoo! Groups Sponsor ---------------------~-->
4 DVDs Free +s&p Join Now

to post: tuner23@yahoogroups.com
to unsubscribe: tuner23-unsubscribe@yahoogroups.com
to change email delivery settings: http://groups.yahoo.com/group/tuner23
to share a file: http://groups.yahoo.com/files/tuner23/

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/