Fudge Factors
Posted: Thu Jun 05, 2008 6:59 pm
So I'm on the way to work today, driving my MS-II powered car, and it gives a little buck as it occasionally does. It's minor, overlookable, doesn't really effect anything... But nothing a Cadillac would do. I start mentally running down the list of probably causes.
First, if could be my inputs I made (always blame yourself first?), but I haven't seen any issues yet. Next, it could be the OEM sensors I'm using, which seem marginal.
Next it could be the software dealing with it. It does strange things when it sees a tooth it doesn't expect. But more likely, it's acceleration enrichment. Or, the idle motor. Or overrun fuel cut. Or deceleration enleanent. Or
...
wait a minute, how many exceptions to "engine at speed X, air flow at speed Y, deliver Z amount of fuel" can there be?!
I started thinking about all the various fudge factors (things like heat-soak handling by misreading the IAT sensor, or barometric correction which is actually a correction on top of the correction). the lists of conditions to enable or disable various enrichments and timing mods... And I think two things:
1) It'll be a long time till this catches up with the MS, in terms of all the challenges they've met
2) How much of what the MS does with artificial limits and windowings (ignore knock below X rpm, above Y tps, etc) is because they are doing such a bad job in the first place?
As stated here:
http://www.diyefi.org/forum/viewtopic.p ... =a&start=8
(the post has some disinformation but one good insight, read with caution or better still in context)
I was thinking about the heat soak issue - at Fred's prompting. I think this is an example of a "good" fudge. It takes a problem, knows where it comes from, how it works, and fixes it with existing (but not arbitrary) information.
It's not "giving up", which I feel so much in the MS world is.
So many things (my most well known gripe is the "PID" control) seem to have more constraints than can even (apparently) be documented. And I feel that in some of those cases, if the algorithms worked better, the number of variables used to define them would be fewer, and the results better. The MS is i/o challenged, to be sure, and they are doing a lot with what they have. But even given that I feel they could do better. The barometric correction shouldn't need correction. And if I wanted to turn it off, I should be able to. If I can't edit the table, show me what it is?
So, what's my point? I'm not quite sure. But I think it centers somewhere around an idea of "can we do things well enough, and commit to doing things right, that our ".msq" equivalent files don't end up a huge hodgepodge of obscure correction factors, and instead be a few, well defined tables and variables which define the motor and it's response based on physics and reality.
A fine example is the 'points in space' fuel table. I'm not sure it'll work, practically, but the idea of nodes is a good one. If I ever get off my duff, I want to write a true PID controller for the MS's idle, and prove to myself that things can be done better.
First, if could be my inputs I made (always blame yourself first?), but I haven't seen any issues yet. Next, it could be the OEM sensors I'm using, which seem marginal.
Next it could be the software dealing with it. It does strange things when it sees a tooth it doesn't expect. But more likely, it's acceleration enrichment. Or, the idle motor. Or overrun fuel cut. Or deceleration enleanent. Or
...
wait a minute, how many exceptions to "engine at speed X, air flow at speed Y, deliver Z amount of fuel" can there be?!
I started thinking about all the various fudge factors (things like heat-soak handling by misreading the IAT sensor, or barometric correction which is actually a correction on top of the correction). the lists of conditions to enable or disable various enrichments and timing mods... And I think two things:
1) It'll be a long time till this catches up with the MS, in terms of all the challenges they've met
2) How much of what the MS does with artificial limits and windowings (ignore knock below X rpm, above Y tps, etc) is because they are doing such a bad job in the first place?
As stated here:
http://www.diyefi.org/forum/viewtopic.p ... =a&start=8
(the post has some disinformation but one good insight, read with caution or better still in context)
I was thinking about the heat soak issue - at Fred's prompting. I think this is an example of a "good" fudge. It takes a problem, knows where it comes from, how it works, and fixes it with existing (but not arbitrary) information.
It's not "giving up", which I feel so much in the MS world is.
So many things (my most well known gripe is the "PID" control) seem to have more constraints than can even (apparently) be documented. And I feel that in some of those cases, if the algorithms worked better, the number of variables used to define them would be fewer, and the results better. The MS is i/o challenged, to be sure, and they are doing a lot with what they have. But even given that I feel they could do better. The barometric correction shouldn't need correction. And if I wanted to turn it off, I should be able to. If I can't edit the table, show me what it is?
So, what's my point? I'm not quite sure. But I think it centers somewhere around an idea of "can we do things well enough, and commit to doing things right, that our ".msq" equivalent files don't end up a huge hodgepodge of obscure correction factors, and instead be a few, well defined tables and variables which define the motor and it's response based on physics and reality.
A fine example is the 'points in space' fuel table. I'm not sure it'll work, practically, but the idea of nodes is a good one. If I ever get off my duff, I want to write a true PID controller for the MS's idle, and prove to myself that things can be done better.