Jump to content
Click here to contact our helpful office staff ×

Trying to understand adaptive mapping and AFR corrections


k80rum

Recommended Posts

Can anybody help me better understand my Emerald adaptive mapping capability?

 

I'm running a pretty standard Emerald configuration as far as the AFR parts go I think:

My map is running in adaptive mode for speed sites above 1500 rpm at load site 0 and above 1000rpm at all other load sites. The conditions that update the corrections table are:

 

speed and load interpolation both <50

lock on timer 0.25s

AFR target within 0.4

 

I need to set a date this year to get my car properly mapped but would like to make the best of the one I've got until then. Checking my AFR corrections table, I've got entries in some sites already. Quite a few are still blank.

 

My first question is whether I should apply the corrections table to the base map. I can't really see an advantage to doing this at the moment. Perhaps after a full rolling road session is done it would be worth it, but since the corrections table is always added to the base fuelling map, I loose nothing by not applying it do I?

 

My second question concerns the blank correction cells. These must not be getting updated because some/all of the update criteria aren't getting met. Logic tells me to change the AFR target to something much less granular because my fuelling map is quite likely to provide a reading more than 0.4 lambda out. If I change it to say 1.2, do a run to pick up any anomalies and set it to 0.8, do a second run and then set it back to 0.4, this is likely to catch and gradually reduce any over/under fuelling issues isn't it?

I think this would be a better approach than giving it more lock-on time - when the car's on the road the engine is more likely to be changing sites quite rapidly. I wonder if the lock-on time is more a function to let the mixture stabilise enough for the wideband sensor to see a 'truer' reading for a given site (longer lock-on time), rather than to react to a spike in the reading as the result of another site which has been moved on from. 0.25s seems a while to wait before making a correction so I don't think I would want to make it any longer, hence my coarser-target approach.

 

I'm also wondering if its more productive to do at least one gentle acceleration through the entire rev-range to get a map, rather than 'just drive it'

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

 

 

Edited by - k80rum on 27 Jan 2008 10:16:59

Link to comment
Share on other sites

It definitely helps if you go for a mapping drive - find a long straight road (boring huh!) and hold a gear from low down to higher rpm, and just vary the amount of throttle applied. So to start with, you could give it 30%'ish throttle from, say 1500rpm, holding your foot still, then repeat with a bit more throttle, and so on.

 

This is what I tried to do and it did seem to work quite well, however I never got a full map of corrections - I think because it passes over the points in the map so quickly, especially if you've adjusted the site values to more closely match your engines rev range.

I ended up using the corrections in the table as a guide, making a note of where they were (rpm vs TP %) and then, after applying them to the map, going back and doing an interpolation between the various points to take out any high spots.

 

My settings are quite close to yours, <64 & 0.25s. However I think you could try upping the AFR target to 1.0. I believe this setting governs how close the actual measured AFR has to be to the target AFR before any corrections are recorded. Certainly, to begin with, a larger number here will mean more correction values are logged.

 

Phil Waters

Link to comment
Share on other sites

Darren,

 

quite subtle changes to these settings influence whether you ever get any readings at all, especially if you are self mapping on the road. Even if you deliberately carry out acceleration runs at constant throttle.

 

Some of the blank correction cells will be genuinely places you don't go!

 

Speed: You always pass through speed sites so set the speed number low, say 16.

Load: Much more difficult to hit the target here as you don't have a gauge on tps so leave it wide, say 96.

AFR: You want to update when it's right so set it low, even zero.

Lock on: You are looking at transients, keep it low, say 0.05sec.

 

The other bit which makes a big difference is the update/gain characteristics. I would have to check a map on the lappy if you are interested in where I ended up with that.

 

I also closed up the resolution of speed/load sites significantly to utilise all the sites within the speed range of the engine and get better throttle resolution at low % opening.

 

As per Peter Carmichael posts on self mapping from last year, don't be surprised to see significant differences between adjacent cells and not always increases as speed/load increase.

 

This is what I have seen work using a K3 Emerald, Innovate LC-1 and the reasoning behind it. For the armchair experts: If you don't like it the challenge is to suggest something better *wink*

 

 

Ian

 

Green and Silver Roadsport 😬

Link to comment
Share on other sites

Missed the first question....

 

Erm, I don't think you loose anything by holding off, apart from running the risk of getting close to your 'Max +/- Correction' setting. I'm not 100% sure how it works but I think it would stop making any more corrections if the value in the correction table were to equal, lets say 20% of the value in the main map.

 

I guess it depends how close your map is to start with. I know mine was really quite rich in places and I was seeing values in the correction table of -15 and above. After applying the values to the map I would then see further corrections to the same sites - so I think I was hitting my 'Max +/- Correction' setting. It is there for safety so that the ECU can't decide to just keep correcting itself all the way to 0 or 255 fueling, if say your sensor went AWOL and fed strange readings. It acts as a bit of a sense check - you get 20% correction and then have to physically apply them before allowing any more and you should spot if it is doing something stupid.

 

Having said all that, you can't beat a RR session. All the work I put in on my fueling was good but my ignition was a long way off and that's the bit you can't easily do yourself (or at least not quite so scientifically). Holding the car at rev and load with a keyboard in front of you and a big screen for the displays makes it so much easier and faster and I had gotten to a point were I couldn't map the higher rpm as you are doing silly speeds to try to go over them repeatedly. Plus it takes all the stress out of it - I no longer worry about the AFR, I know it's about right and I just drive it, rather then keeping an eye on the gauge in case I hot a lean or rich spot and need to make a mental note. That was worth the money to me on it's own.

 

Phil Waters

Link to comment
Share on other sites

Thanks Phil and Ian - That's been very useful and gives me some idea of where to start from. I'm going to use your suggested values Ian, along with your AFR target of 1, doing some constant throttle runs and gradually bringing things back down to refine the corrections map. It was interesting to read what you said about the corrections map acting as a failsafe Phil - I hadn't realised that, it's very sensible!

 

I also started on one of my maps, closing up the resolution to use more of the available map space and get better throttle resolution. it seemed quite a laborious process within the software though and I decided to give it a miss..partly I admit, because I imagined the reaction of a RR operator when they discovered the map had effectively doubled in size 😬

 

A proper mapping session on the rolling roads has got to be on the cards - as you say, getting the fuelling close becomes slightly easier with self-mapping, but the original ignition map is likely to be off in places anyway. Once I've had the RR mapping done, I'll probably commit the corrections map, forget about things and get on with enjoying the driving. Any adaptive corrections made after that are likely to be the effects of variances in octane rating/air density and the like I guess.

 

Have either of you ever bothered to recalibrate your wideband sensors over time? I notice the Innovate literature recommends doing so every so often but I haven't run mine for long enough to bother yet.

 

Ian - when you get the chance, yes I'd be interested to hear the gain/update values you ended up at. *thumbup*

 

I really like where the Emerald software's at. I'll be interested to see what else Dave and Karl come up with for it. My other project is to get the flat-throttle shift function working, I've run out of time today to get my clutch-switch properly located but it looks like quite a quick, easy and fun feature to get working.

 

Thanks so much for your help 😶‍🌫️

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

 

Link to comment
Share on other sites

Darren,

 

now fired up the lappy;

 

latest map Closed Loop settings screen.

 

LH check boxes

Wband/AFR,5,30,80,3,5,23

 

RH check boxes

60,-60, 0.050980, 0.05, 11, 16, 127, 0.05, 0.0

 

This populates the corrections map very quickly during normal driving, even at the higher speed load sites. Bear in mind I started from an Emerald basemap for exactly my engine specification which at my chosen injector scaling worked out typically 5% rich but with occasional sites as much as 35% rich.

 

You need to decide whether you are happy with your start point - All the usual self mapping disclaimers apply *wink*

 

I have worked on the basis of save map, drive, apply corrections to zero corrections table, save etc. That way it is easy to spot when things are settling down to Ian

 

Green and Silver Roadsport 😬

Link to comment
Share on other sites

I have worked on the basis of save map, drive, apply corrections to zero corrections table, save etc. That way it is easy to spot when things are settling down to <5% corrections and you can revert to previous versions if needed.

 

This is great advice.

 

Although the load interval setting is deliberately not too picky at 127, the speed interval is quite low at 16. These are being used in conjunction with a map that starts 1%, 2%, 3%, 6% TPS and once above natural idle the speed sites are in 250rpm steps.

 

My setup isn't with an Emerald, but I had trouble with varying the load site spacing below a standard of sixteen evenly spaced sites. In my setup the TPS output is an 8 bit value; the full range of 0-255 is presented as a percentage. This means...

 

... the smallest determinable throttle change is 100/255 = 0.392%

... with a range of motion of the throttle pot from idle to WOT as 4%-77%.

... the evenly spaced load sites are steps of either 12x or 13x 0.392% (i.e. 4.704% or 5.096%)

... the appropriate load site target interval for self-mapping was < 3x 0.392 (i.e. ±1.176%)

 

Moving the load sites closer together in the map just made it more likely the self-learning algorithm would go unstable.

 

Don't get too hung up on sites that never get "learnt". The benefits of a really accurate map come from the sites where the car spends most of its time operating. Fuel economy is not ruined by a transient load condition at a site where the fuelling is 5% out. The fuel economy is determined by the small number of cruise sites that the car spends 90% of its time using. Combine these with a well planned throttle overrun and acceleration fuelling strategy and you will have it about as good as it can be.

Link to comment
Share on other sites

Thanks a million Ian,

 

I'm curious as to what effect your AFR target within 0.0 (last RH checkbox value) effectively means - the load/speed site has to be spot on, rather than being interpolated?

 

I'm fairly happy that my map is quite close to the engine originally used - they're both VHPDs but all the maps I have are for the KV6 induction rather than Jenvey DTHs. I could load a second VHPD map into a different slot for comparison but I think this will complicate things. It's probably better to get a RR session sorted instead . NB - If anyone reading this has a map for a VHPD with Jenveys, I'd love to hear from you!

 

Is the damping identified as 'signal smoothing' in the Emerald? I'll need to check mine live. I've had a look but I can't tell what mine is in the current firmware, which I think is pretty recent. Whatever it is, it'll be the default. It's probably worth my while double checking my LC1 software to see what settings I've got. The interfacing between the LC1 and Emerald is obviously critical to what results I'll get and quite easy to overlook. *thumbup*

 

I think my mapping around the over-run sites may not be too bad. I haven't got 'fuel cut-off on overrun' selected but I've actually lost the popping and banging I used to have at around a 3.5k rpm lift-off point before adaptive mapping, so I'm assuming I'm not running over-rich on over-run (not that it's a definitive indicator of course *smile*)

 

I'm still having problems with my warm idle. I'm in open loop mode at this point and have tapped the fuelling down to the top end of the yellow lambda band, my warm idle was too low initially - about 650rpm, making it very easy to stall. I've increased my main idle screw, recalibrated the TPS and taken the car out for a run. But with idle control enabled, the engine now seems to hunt. The idle is supposed to be at 1150 but the idle control is taking it to about 1200, then falling down to about 900, back to 1200 and so on. (I've only registered this through the revcounter on a drive yesterday, so really need to connect via the M3Dk software to make sense of it)

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

 

Link to comment
Share on other sites

Thanks also Peter. Your feedback is very welcome given the extensive mapping work you've done, with such good fuel economy results. Also for the reminder to keep things in perspective. The deeper I get into the mapping process (and I realise I'm still only scratching the surface) the easier it is to get drawn into the fine detail. At the end of the day, the sites that are getting mapped are the sites where the engine spends most of it's time operatingas you say. Some transient sites are just that for a particular driving style and attempting to flatten everywhere to the nth degree is ultimately just not necessary.

 

I'm ashamed to say I hadn't thought of the apply-corrections and re-drive approach to monitoring the corrections advice. It makes a lot of sense and I'll certainly adopt it so that I can see what areas I'm homing in on.

 

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

 

 

Edited by - k80rum on 27 Jan 2008 19:53:55

Link to comment
Share on other sites

Darren,

 

AFR target is the tolerance on the closed loop feedback i.e 0.0 means when the target value is achieved (can't comment on any additional tolerance built into the code of the ECU).

 

Oily has previously shared tips on setting up idle on tech talk. For info, my settings are 0%,1000rpm 20 degrees, 0%,1050rpm 4 degrees (idle speed) and 0%,1250rpm 0 degrees: all at the same fuelling value which achieves 14.7AFR at 1050rpm. The fuelling and idle screw adjustment were initially set with all these sites set to the same 4 degree ignition advance. This approach gives a naturally stable idle with some anti-stall functionality before the idle control is even turned on. Reset the TPS after any adjustment of the screw.

 

The idle characteristic has impressed me with virtually no '6-speed gearbox rattle' even with the R500 3kg flywheel. Result!

 

 

 

Peter,

 

I must admit I hadn't even considered the capability of the self mapping algorithm when the load sites are closed up like this. I just took the Emerald blurb at face value;

 

Movable load sites

 

It’s the same story with load sites. Rather than having them fixed you can now move them to a resolution of one percent (1%) and with so many new throttle body designs coming onto the market this allows you to set up the maps for traditional butterfly bodies or roller barrels – whatever the design. Should you feel the need to experiment you can have different speed and load sites on each of the three available maps.


 

I was especially keen to avoid low speed driveability issues. As such I made a variable rate throttle lever to improve precision at low throttle openings and closed up the load values as previously described. This was based an assumption that the airflow changes in this region would be more significant for a change in throttle angle than at wide open throttle where engine speed would be more significant in changing airflow. Either way the speed site resolution was increased across the table. I have no knowledge of the fuelling algorithm embedded in the code but it seems to have coped reasonably well with the exception of the missed combustion event scenario which I described. As that was a pretty limited occurrence at or near 0% load it was easy to discount corrections made at these sites as false and manually set fuelling. As the fuelling numbers involved here are so low, the main aim was to make it 'behave itself' above any absolute fuel economy aim.

 

From a fuelling point of view I also enabled the sequential injection feature as I have an EU3 engine with a cam sensor. The fuelling, at least at idle, was less than required for grouped output (x2). Is the system likely to be sensitive to injector timing also?

 

Ian

 

Green and Silver Roadsport 😬

 

Edited by - Mr Locust on 28 Jan 2008 23:08:07

Link to comment
Share on other sites

From a fuelling point of view I also enabled the sequential injection feature as I have an EU3 engine with a cam sensor. The fuelling, at least at idle, was less than required for grouped output (x2). Is the system likely to be sensitive to injector timing also?

 

Not sure what you mean by "less than required for grouped output".

 

When you switch the K3 to sequential, you need to completely rescale the injection figures (bit of a bodge if you ask me), approximately doubling them. On the installation I've played with, I switched between grouped and sequential just by changing the ㎲/bit injector scaling value. This needed to be set to just less than double the value for grouped. I never did the calculation to work out if the shortfall compared to a doubling of the scaling figure was fully accounted for by the reduced latency of only having one injector event.

 

Is this what you mean?

Link to comment
Share on other sites

Peter,

 

I was obviously posting after one of those too long kind of days..........and I'm getting there again!

 

As you said, in the Emerald when you go from grouped to sequential you have to almost double the fuelling values. Most easily achieved in the first instance using the injector scaling figure.

 

What I was driving at is whether the reduced injector pulse timing in the mapping is indicative of the injector's inability to start and stop instantaneously; resulting in two shorter start/stop cycles requiring more total injector pulse width than one longer one to deliver the same amount of fuel. Is this what you are describing as the injector latency?

 

The other question introduced by using the sequential configuration is whether fuelling once rather than twice per cycle affects fuel distribution within the charge sufficiently to change the ignition timing requirements and even the overall efficiency of the engine? And whether the injector timing, in terms of crank degrees rather than pulse width, also has a part to play in all this?

 

Admittedly this is more towards the realms of manufacturers' research engines, test beds and full emissions compliance than a spot of self mapping at the weekend but an interesting topic just the same.

 

Ian

 

Green and Silver Roadsport 😬

Link to comment
Share on other sites

What I was driving at is whether the reduced injector pulse timing in the mapping is indicative of the injector's inability to start and stop instantaneously; resulting in two shorter start/stop cycles requiring more total injector pulse width than one longer one to deliver the same amount of fuel. Is this what you are describing as the injector latency?

 

Yes. That's right. Two pulses requires more total pulse width.

 

The other question introduced by using the sequential configuration is whether fuelling once rather than twice per cycle affects fuel distribution within the charge sufficiently to change the ignition timing requirements and even the overall efficiency of the engine? And whether the injector timing, in terms of crank degrees rather than pulse width, also has a part to play in all this?

 

You can play around with the timing at idle and see if it has as little effect as I observed. FWIW, the map (done by Dave Walker) had the "injection event starts" setting rather than the "injection event finishes" setting and the degrees chosen suggest that the "finishes" would have been correct. The engine ran OK (once all the other bugs were fixed).

 

The one I was playing with was an 8 injector setup. Because the Emerald only has 6 injection outputs, the outers can only be run grouped. The software has a glitch. The software has a single 8 bit value defining the ratio between the inner and outer injector capacity as a percentage. In this engine, the outers had more capacity than the inners. However the difference in treatment of the injection events for sequential and grouped meant that the ratio immediately had to (you guessed it) be set to almost double. By the time the injector size was also taken into account, the parameter was maxed out at 255.

 

For 8 injector setups on the K3 as it currently stands, you should either ensure that the inners and outers are very close in capacity, or run both inners and outers grouped.

 

 

Link to comment
Share on other sites

I'm on the same revision. I think it was current as of about June '07 and would reckon there could be a later version by now.

 

I've done a run today with Ian's correction map settings and it's working nicely. It's certainly picking the corrections up. My next aim is to look at the LC-1 software and speed up it's response speed. I set it to 1/3s, which Emerald recommend if the output is noisy (I took the view that it might be, so this may be a good place to start). I don't know what others are using? I've got a choice of instantaneous, 1/12s or 1/6s. I'm thinking of trying 1/12s to see how I get on. The Emerald is using the default signal smoothing value of 3 for the AFR signal, which I was going to leave alone.

 

I managed to sort out my cold start and idle, I tracked it down to excessive advance at 1000rpm, load site 0 - it was obvious when I sat down and read a few posts, since the engine seemed 'stiff' to crank. Backing this off has seen the car start on the button hot or cold and idle nicely in both cases. *smile*

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

Edited by - k80rum on 3 Feb 2008 22:31:57

Link to comment
Share on other sites

Spurred on by cold starting vehicles at MIRA in -20degC this week, I have been refining the cold start strategy on the Caterham. I have now managed to achieve cold start at 4degC coolant/ambient temperature without the need to touch the throttle as part of the start procedure.

 

There are a few interesting bits and pieces in this document which may give pointers to different aspects of injection setup in particular.

 

Ian

 

Green and Silver Roadsport 😬

Link to comment
Share on other sites

  • 2 weeks later...

Great link Ian - that made for interesting reading. It's an insight to the science and technology employed by companies like Motec (I still lust after their eye-wateringly expensive ECUs *smile*)

 

Encouraged by your cold-start refinements, I've sat down and had a play myself. Knocking back the coolant injection corrections at the 0 and 10 degrees sites have provided me with good results. I too now get cold starting on the first stab of the button, standing outside the car at temperatures just above freezing.

 

Idle is a tad low at 950-960rpm but i'm trading off the fact that I don't have an IACV and the idle stop is where I want it for a good tickover when it's up to temperature.

 

I noticed one of the clever Motec functions is to AND the water temperature with the speed functions, so you can have different fan-on settings for whether you're blatting along or stuck in traffic. I wondered if that might be another thing for the feature-list to make it worth a code-revision.

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

 

Edited by - k80rum on 15 Feb 2008 08:54:59

Link to comment
Share on other sites

Brief thread update. I've chatted with Karl at Emerald and have found out:

 

v1 Rev0.81 is still the latest version of the software.

 

The twin-fan settings mentioned in the last post will be included in the next firmware update.

 

The next firmware update is not far off - there's a hold-up at the moment to incorporate changes to the CAN output. There's no published list of changes yet but there will be.

 

*thumbup*

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

 

 

Edited by - k80rum on 19 Feb 2008 08:40:17

Link to comment
Share on other sites

Idle is a tad low at 950-960rpm but i'm trading off the fact that I don't have an IACV and the idle stop is where I want it for a good tickover when it's up to temperature.


 

Sounds about right. There is a limit to what the idle control on advance can do alone without some form of IACV. Too much air means you can't hold it back once warmed up! Mine managed an 'out of the car' start at -3degC over the weekend.

 

Did you manage to sort out your LC-1 and Emerald settings to get the self mapping working acceptably?

 

Ian

 

Green and Silver Roadsport 😬

Link to comment
Share on other sites

Your Emerald settings seem to work well Ian. The corrections seem to get caught and become fewer for the same sites on subsequent runs.

 

I've got some examples of 3 runs here (green cell indicates a negative adjustment was made, red indicates a positive):

 

Map v1.5 (run 1)

Map v1.6 (run 2)

Map v1.7 (run 3)

 

The corrections aren't quite following Peter C's map-smoothing approach, although it could be since this is being done on the road, the engine might not be passing through the same points (unlikely at 3000 rpm though). I'm quite tempted to manually flatten the 3k peak in my latest map, to see what correction is then made. If it needs to be there, it should get adjusted upwards again.

 

One thing I've noticed is especially with the K3 maps being in binary format, there's no easy way to export data for comparison - It's be nice to be able select and copy cells from the injection screen for example, or to print the graphs to a file. (mine doesn't seem to allow me to print to anything in fact, unless there's a local printer). I might mention this to Karl, and see whether this facility could be improved.

 

Darren E

 

K80RUM Website and Emerald maps library

 

Superlight R #54

 

 

Link to comment
Share on other sites

following Peter C's map-smoothing approach

 

I'm sure Peter will be along to correct if I got it wrong but wasn't he indicating that the 'ideal' fuelling map (i.e. one generated from closed loop wideband) was far from smooth. In fact it was a pretty spiky affair.

 

Unless there is a noticeable performance issue such as hesitation at a speed/load node why would you go against what the system has generated as a fuelling value? Surely this is just indicative of a tuned frequency which makes the cylinder filling more or less effective.......?

 

Ian

 

Green and Silver Roadsport 😬

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...