Discussion and questions related to the course Understanding AFR
Hi guys, I'm experiencing a weird bouncy/wave in my AFR that I can't figure out.
This is on a 3-cyl 1.5L supercharged jetski motor with G4+ ecu and LC2 as the controller. The controller is wired correctly with no ground offset issues.
In the attached image I'm holding the throttle dead steady, the motor hunts RPM a bit and AFR is all over the place. It's open loop.
You might want to change your scaling on the injector pulse width channels so you can see how much the effective PW is really changing. Looks to me like it may need more fuel below 3000 RPM.
Is your ignition timing changing too rapidly in this area? That can lead to the engine speed hunting as it can change the torque quickly. The torque changes tries to increase the engine speed, but the nearly closed vacuum now moves to a lower load zone where it makes less torque, and it repeats. Retarding the timing where the engine seems to surge may help.
Here is more resolution on the Inj data as well as ignition angle which is steady.
Could behaviour like this be caused by wrong injector short pulse width or dead times data?
Much easier to see. It looks like the effective fuel pulse width changes by about 0.1ms out of 1.4 ms (or roughly 7%), while the AFR varies by about twice this amount. What do the cells in the fuel table look like in this area? Remember there is going to be a bit of a delay from when the fuel is delivered until the combustion is detected by the Lambda Sensor. I would add some fuel (3-4%) to the lower RPM site, and remove some fuel (3-4%) from the upper RPM site in the fuel table, smooth the sites in between those, and see what happens.
Another thought -- if there is an intake or exhaust resonance at this RPM, then you might need more RPM sites in your fuel table to deal with the exact fuel requirements as you approach that RPM.
This is a jetski and tuning it has been a nightmare, struggled all of last season. Tune one RPM column and making any adjustments to the adjacent columns screws up the the one that was just tuned. Countless hours logging, and using mixture map corrections or making tiny adjustments directly and testing, making big adjustment and testing or doing it live on the water on a tablet. Getting one RPM column, mostly 500 increments, dialled in and not being able to tune adjacent without breaking the one that was just tuned. Or way off transient values between two somewhat tuned columns, I can't just run the motor at 500 RPM increments. Lower RPM column requiring more fuel than higher RPM column, then the next column requiring huge spike up to match target afr.
It's been a totally bizarre experience with this ecu that makes no sense.
Here is a screen shot of the log and underlying table. Yes it's weird, 2250 wants more fuel than 2500, then big spike up to get 3000 somewhat on target.
I think you are certainly seeing the effects of table interpolation confusing you. As a general rule, the fuel table will want to be very smooth, with little variation between adjacent cells. Since the Jetski has to be tuned on the water, I would suggest you try to keep your table very smooth, and make overall subtle shape changes to tune it.
Here are the trends we expect to see. As you go from -8.7 psig to 8.7 (and above), the fuel should normally be increasing for the same RPM. So the 68.7 @ -7.3,2500 looks too high, or the 66.9 @ -5.8,2500 looks too low, since it breaks these trends.
And the fuel should have a nice smooth shape for a given row of manifold pressure. In general at low load points (-8.7 to -5.8 MPG), the fueling will be almost the same at each RPM (high load will vary more with RPM depending on the torque curve of the engine). I wouldn't be afraid to put the entire -7.3 row at 70, and the entire -5.8 row at 72-75 and see what happens with you try to hold the throttle steady in those ranges. (try 76-78 for the -4.4 row) As you find lean or rich parts of the map, change all the cells in the general area in the direction you need to go, but keep in mind the above guidelines (if you add fuel, then all the higher pressures at a given RPM will need at least the same or more fuel).
From memory the LC2 has an adjustable sample rate and you may be best to connect to it using LM Programmer and slow down the response rate slightly. It is likely to be either 'instant' or '1/12 second' by default. Try sitting it to '1/6 second' and see if that helps.
Beyond this I'd also suggest you follow David's advice above. Interpolation can be really confusing if you're not operating in the centre of a cell. One last thing to try is to log your accel enrichment too just to make sure the ECU isn't adding any fuel and confusing matters further.
Thanks guys I'll try your suggestions.
The 2500-3000 section is bumpy in that image I posted. It's just what the AFR was telling me, if I tried to get 2500/-5.8 into 70s it went crazy rich. If I tried getting 3000/-5.8-4.4 lower into 60s it went crazy lean. No matter what I tried there I was being told 3000 col required big spike in fuel from 2500, below at 2250 it was asking for more than 2500.
Map becomes big peak and valleys, at one point last season I tried smoothing the entire map down to flattish and went out to log and adjust and again ended up back with massive peaks and valleys.