I stumbled across a rather odd feature in my PCM. Predictive fueling. Basically, the PCM attempts to predict what the future required mass of fuel for each cylinder will be based on past conditions, such as the previous delivered fuel masses, engine speed, MAP, CTS, etc. Anyone have any experience with something like this? Seems like a neat idea, using a model along with past conditions to predict what the actual fueling will be to compensate for sensor lag and such. But, would it work when using a large cam with overlap? Sort of seems like something that would only work on a stable system like a stock engine. My instinct tells me that with the large cam I have, it will be like trying to predict noise at low engine speeds.
Supreme Member
Hmm, what ecm is this? Got my attention.
JP86SS
Supreme Member
close
Oh no, Fuzzy Logic! 
Could be to cover transitions between MAF and MAP fueling as my first thought.
Or as a second thought, Could be just a hiccup in the code where fueling is concerned and that was the Engineer's way of smoothing the problem over.

Could be to cover transitions between MAF and MAP fueling as my first thought.
Or as a second thought, Could be just a hiccup in the code where fueling is concerned and that was the Engineer's way of smoothing the problem over.
This is the 98VCM Rev. A code, used in the 98/99 vortec trucks. Since its the first revision of the code, it does have some errors and coding mistakes. The MAF/MAP is actually done as a blend, based on the engine operating conditions. Basically, the MAP calculates the base fueling, and the MAF is allowed increasing or decreasing authority to 'correct' the airmass calculated by the SD code based on its readings. There is also a dynamic airmass component, which uses the MAP/TPS/MAF to adjust the airmass during transients. All calculations are also done in real time for each cylinder in the firing order, so its not like there is much lag in the system.
With all that in mind, it does make me wonder why they would include something like that. Its especially odd since the predictive algo only uses the finalized cylinder fuel mass. Would seem to make more sense to apply it to the dynamic airmass calculated by the MAF or MAP, rather than the final fueling, which is sort of arbitrary. The other odd thing is that its active all the time. Once the engine has run long enough to stablize, its active, and remains active at all times. OL, CL, PE, etc. I think the thing thats really fuzzy about this logic is the original intent. Maybe its to get that last little bit of control over the AFRs? Guess I'll find out once I disable it and try it out
.
With all that in mind, it does make me wonder why they would include something like that. Its especially odd since the predictive algo only uses the finalized cylinder fuel mass. Would seem to make more sense to apply it to the dynamic airmass calculated by the MAF or MAP, rather than the final fueling, which is sort of arbitrary. The other odd thing is that its active all the time. Once the engine has run long enough to stablize, its active, and remains active at all times. OL, CL, PE, etc. I think the thing thats really fuzzy about this logic is the original intent. Maybe its to get that last little bit of control over the AFRs? Guess I'll find out once I disable it and try it out
.Member
Can not say for sure without looking at the code and seeing how it is used, but on control systems a predictive element is often used as a feedforward signal to reduce system error. eg. In machine tool type motion controls a velocity feedforward signal is often used to reduce following error.
The code is fairly short and self contained, so I attached it.
I looked on the internet, but couldnt find the exact set of governing equations, so Im not sure what method is used. I dont have much experience in this area of control, but it looks sort of generic. Basically it looks like there are multipliers to control how much of the past fueling is fed forward and how much influence all the previous fuel masses can have on the calculation of future masses. One thing that lingers in my mind is that should something like this be disabled? Will the output of the routine still be convergent with a larger cam, or will it just cause a surging idle?
I looked on the internet, but couldnt find the exact set of governing equations, so Im not sure what method is used. I dont have much experience in this area of control, but it looks sort of generic. Basically it looks like there are multipliers to control how much of the past fueling is fed forward and how much influence all the previous fuel masses can have on the calculation of future masses. One thing that lingers in my mind is that should something like this be disabled? Will the output of the routine still be convergent with a larger cam, or will it just cause a surging idle?
Member
After just a quick look at this routine, I would think it should not be adversely effected by a large cam. In fact, it may help to stabilize the engine under steady state conditions such as idle due to its filtering effect based on past injector cycles.
Supreme Member
If only I were more familiar with computer language. How is it storing previous values? Just using the last value or is there a running average over time?
To conserve processing power, its sort of a quick and dirty running average. As the weighting multiplier (which determines the influence of previous fueling) is 'increased', the stored average of the fraction of cylinder masses fed in grows to be a very large value, which means that individual changes in fueling from cylinder to cylinder have less and less of an effect on the average value as a whole.
