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

Bruce A Bowling bbowling
Wed Apr 4 12:34:36 UTC 2007

><cough> Drives the point but the ready paradigm of violence doesnt help your case ;)

But it did catch your attention. 

>You mean to say the real world of el cheapo crank triggering methods.

Unfortunately, millions of people are stuck with el-cheapo crankwheels. We agree that its not optimal, but for many its the situation they are in. 

>Ah ha, you might well use a Kalman like technique to arrive at rotational acceleration as a factor
>to use (perhaps) for additional injection in the same vein as an accelerator pump for carby systems...
>ie. its "Kalman" like because you use the previous time samples between pulses but you are not
>using it to change a filter coefficient etc. Your a-b-g filter is really a predictor isnt it ?

What happens if you have one source of data (namely the crakwheel sensor), thats all you have, that has the same statistical variance, and implement a Kalman configuration? There are no other sources of measurement data, other than the one sensor, yielding the exact same error distribution each and every sample. And a linear prediction of an event into the future as your model? The full Kalman reduces to a simple predictor-corrector method. This was done in the famous example in the Maybeck book, but even this example had a few different sources of measurement. To say that a tracking filter is not simply a reduced form of a Kalman filter is incorrect, and the literature is full of references to this effect.

>This raises a question, do you need to know instantaneous changes in rotational acceleration within
>the 6 deg period of two adjacent crank pulses ?

You assume that there is always a high-density tooth count crankwheel available, it's siply not the case with many existing installs. Plenty of 12, 24, and tons of 36 (EDIS) setups out there. Again, they are not optimal, but they exist nontheless.

>Is it not sufficient to measure the period of time between those 6deg pulses, other than to
>inject a bit of extra fuel for acceleration, what else do you need it for ?

A few places where Vdot is required. One is to maintain accurate dwell charging of an induction ignition coil. If a coil requires 2 ms to charge to a given energy level, it will always require this (given potenital, R and L are the same). The Vdot term is used to adjust the turn-on time of the coil such that when the coil discharges in the future it will have charged for the requisite 2 ms. Without this correction insufficient spark energy is delivered (fron real-world experience).

Also, the placement of the actual spark event needs to be corrected for acceleration, otherwise there will be spark retard during acceleration due to incorrect placement of the event. Stated again, the amount of error depends on crankwheel configuration, and RPM. 

I am really not trying to sound like a jerk here, but we have spent over 7 years on the MS system and have researched/implemented many different algorithms. From the real world measured data, for low tooth count wheels a form of interpolation is desired. For high tooth counts it is not. We have settled on a tracking filter mainly because it is easy to implement and the data shows it performs as well as more complicated prediction methods, and is a trivial computation burden with the processor family we have chosen.

- Bruce

More information about the Diy_efi mailing list