[Diy_efi] 60-2 Toothwheel - Kalman Filter or ( EKF ) usage

Bernd Felsche bernie
Fri Apr 6 06:31:52 UTC 2007

On Friday 06 April 2007 13:42, Mike wrote:
> Bruce A Bowling wrote:

> >Going back to the original answer to request for information on
> >Kalman filtering, the response was to look at a tracking filter.

> Although the initial poster thought that a Kalman filter 'might'
> be suitable, the more appropriate response might be to steer him
> or rather rotate the paradigm away from Kalman ;)  and just start
> with linear interpolation and when that works and he is
> comfortable with it that he then add a term to fit change of
> velocity over time to obtain a y=mx+b form which he can apply to
> the next interval to calculate the ignition point. ie No need for
> any filter.

I tend to agree. The necessary resolution isn't that fine
especially given the variability of the actual ignition event and
taht of actual injected fuel and ingested air quantities.

My perception of the problem however digresses from the norm in that
I consider the events to be triggered at a particular time relative
to a datum. An ignition event is largely determined by time; and not
by crank angle. (*) In order to maximise BMEP, the pressure profile of
the combustion/expansion is at a particular time after the datum
(e.g. TDC) for a given engine speed.

(*) complications occur due to changes in mixture, airflow and other
detected events.

Some time ago, when I thought that I had much more time on my hands,
(Though not 7 years!) I drafted
based on a simple, 8-bit RISC microcontroller. Event timing is
explained under Timer/Counter utilisation. Ignition and timing
events are by comparison registers the cause interrupts when
they match the main system free-running 16-bit timer/counter.

The advantage of this is that the crank "resolution" at low engine
speeds is very high, but in reality, due to compression, combustion,
crankshaft vibrations, distributor drive flexibility, etc, the
quality of the resolution isn't as high as the counter numbers would
have one wish... The values are only a straight linear interpolation
to expected events. They get "updated" every half crank revolution
but that is not sufficient to determine a usable velocity profile;
given only the one pulse (with up and down edges) per half rev.

/"\ Bernd Felsche - Innovative Reckoning, Perth, Western Australia
\ /  ASCII ribbon campaign | "If we let things terrify us,
 X   against HTML mail     |  life will not be worth living."
/ \  and postings          | Lucius Annaeus Seneca, c. 4BC - 65AD.

More information about the Diy_efi mailing list