I'm new to the forum, never built an ECU or had much experience with them but I am a tinkerer, a programmer, and very interested in engines.

It strikes me that an ECU could run an engine based on a few simple mathematical rules instead of maps.

I was wondering if there where any good reasons to use maps instead of a rule based system?

My hypothesis is that when ECU's where first developed the hardware was lacking in speed and power, making it faster to lookup a value in memory rather than calculate it. By the time hardware caught up maps would be the industry standard, but surely now we have the hardware to calculate the values on the fly?

Having a rule based system would be beneficial to the tuner in that there would only be a handful of rules and values to tweak.

On the contrary, we use tables because they're easy and fast to calibrate. Models are difficult to understand, and to model the typical curves of a million engines would be very difficult indeed, as the shapes vary wildy. OEMs use models, however they have large budgets and entire teams of engineers to develop calibrations with.

Startup rules would be something very simple like increase fuel by X% for 1min or until temp > 80degrees C or whatever, retard spark by Y% etc, simple stuff.

Then you would have a system where you have a target RPM(pedal position sensor) and actual RPM , if there is a discrepancy adjust throttle servo accordingly based on a percentage of a max aggressiveness value. This would give you an acceleration factor which is a temporary number which tells the rest of your code if the engine is trying to accelerate and by how much. Its a bit like tuning a servo motor on a CNC machine if you've ever done that. Basically just a few values which control how aggressively the algorithm tries to match the target and actual speed which stops overshooting and hunting.

Then you have a loop that would check the AF ratio and adjust your injector timing as necessary, factoring in a value that adjusts AF ratio based on acceleration factor.

Same for spark timing, adjust timing based on RPM*spark value+ any adjustments needed based acceleration factor + knock value.

Then simply max and min RPM.

Thats 4 tuning values and 3 or 4 basic parameters. The code needed to run it would be probably 4 or 5 code blocks probably couple hundred lines max.

You could easily optimize the 'tune' of this system by driving around, logging the acceleration factor, adjusting your values, rinse repeat untill you have a lowest average acceleration factor, meaning that the engine is achieving the desired RPM more of the time. It would even be easy to have the ECU adjust itself with some sort of learning algorithm based on average acceleration factor.

It could get more complicated if you have to set tuning values based on RPM instead of fixed values but still relatively easy to use.

Table based mapping is done because it's easy, not because it's the only correct way.Model based engine control is just simply difficult and very engine specific by nature, which is why virtually every generic ECU avoids it.

Look at true VE and pulse width fuelling, some of the high end systems avoid even VE because it's not as easy to explain to the end user.Some claim they use VE but don't, and others claim they only need milliseconds of fuel, and some are just misguided or following tradition.

There are still correction tables even in the OEM world regardless of the control strategy as engines are just not able to play nice and follow rational formulae.Have a look at the SAAB Trionic8 system for a pretty well documented torque demand/delivery model, Bosch ME-Motronic might also be a relevant reference.

Given enough time and money anything is possible, so if you have an idea and some time to spend on developing it, then go ahead and have a whack at it.The task won't be easy, but you know that

Having a rule based system would be beneficial to the tuner in that there would only be a handful of rules and values to tweak.

This is probably the sticking point, "tuners" aren't rocket scientists so there is going to be a bit of resistance to learning new things, new concepts and the science behind them just wont be an easy sell.

Who is online

Users browsing this forum: Baidu [Spider] and 2 guests

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum