Originally posted by heinzboehmer
View Post
Announcement
Collapse
No announcement yet.
A quick and easy way to street tune your CSL conversion for drivability.
Collapse
This is a sticky topic.
X
X
-
Originally posted by Bry5on View Post
Super wild how different the results are between the two cars after running the same optimization! I wonder if you have a looser ICV than I do? That’s the only thing I can think of that would need that much extra fuel down low.
I have a set of TT injectors in the garage, but haven't swapped them cause I haven't been ready to go down that rabbit hole.2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - MSS54HP Conversion - SSV1 - HJS - Mullet Tune - MK60 Swap - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
Comment
-
Okay so when it comes to the cold-start map I think the presumption has been to log up until the point that TMOT is at 80 degrees C at which point the engine is warm and on the standard map.
As I was chasing the last few parameters I came across this again and looked at it in a slightly new light. the Alpha N Kath table is blended in based on AVAN1_SOLL_FAKTOR. But why use AVAN1_SOLL_FAKTOR and not KATH_FAKTOR directly. Last time I looked at this I wasn't in the detail enough to question it, but it seems to be an interesting choice.
AVAN1_SOLL_FAKTOR is calculated on the slave here:
The key thing to note is if EVAN1_ST bit 4 is set then AVAN1_SOLL_FAKTOR ramps to 1 over a few seconds) if bit 4 is cleared then AVAN1_SOLL_FAKTOR ramps to 0. So it's either on or off with a bit of smoothing over the few seconds of the transition.
How is EVAN1_ST set?
bit 4 is set here:
What this is doing is using the curve KL_VAN_KATH_TMOT to determine how long EVAN1_ST should be cleared for before it is set.
First time the function runs and engine is in running state (LL/TL/VL) it checks current TMOT and looks up how many seconds the warm up period should last for. (e.g. if TMOT is 18 degrees C then the warm up will last for 120 seconds).
EVAN_1_ST bit 4 stays cleared for 120 seconds and is then set.
So the warm up period that the AlphaN Kath table is used is a set number of seconds based on TMOT at the time the engine starts, not a temperature target that is achieved by the end of warm up.
So back to my original question, why are we using AVAN1_SOLL_FAKTOR rather than KATH_FAKTOR. Thinking about it a bit more it actually makes a fair bit of sense. Use of the AlphaN Kath table is tied to the use of the VANOS Kath tables because the different camshaft tables affect the volumetric efficiency and therefore the AlphaN table needs to be tuned to the VANOS Kath profiles. Likewise they both use AVAN1_SOLL_FAKTOR as they need to switch together as well.
Anyway, why am I writing this in here? Because we should stop presuming that the AlphaN Kath table is used until TMOT >= 80 degrees and come up with a different strategy (We could probably log AVAN1_SOLL_FAKTOR over DS2, or we could log TMOT on engine start and work out how many seconds into the log file to take data from from there).
Not sure in practice how much this will really affect anything but might as well make sure we have the most correct knowledge :-)2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread: https://nam3forum.com/forums/forum/m...e46-m3-journal
- Likes 3
Comment
-
Originally posted by Bry5on View PostCan we log short term adaptations and watch for the first transition from 1? If I remember correctly, adaptations are forced to 1 during this period - hence the difficulty in tuning cold start fueling.
Sent from my iPhone using Tapatalk2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread: https://nam3forum.com/forums/forum/m...e46-m3-journal
- Likes 2
Comment
-
Hi all - this one is a bit of a PSA from Bry5on and I.
TL;DR: There is an area of the closed-loop tune that you shouldn't be targeting for stoich (lambda == 1) when VE tuning. If you do you will almost certainly end up with that area of tune too lean. IMHO anyone who has VE tuned should remediate this area of the VE table to ensure they aren't running leaner than they think. There's some ways to fix it, see the "So what do I need to do?" section at the bottom.
Background
A few weeks ago when discussing something else Bry5on mentioned to me that he'd found, and been working on, a region between 2000-3500ish rpm under heavier closed-loop loads needed more fuel in order to nicely transition from closed loop to open loop. A few days later I had my CAN-logger up and running and got to something I'd long wanted to do which was to log various intermediate variables in the RF calculation path. It's one thing to look in the code at what these variables do, but it's another to actually see the end effect that they each have.
I found a number of interesting observations, but for clarity will keep this post focused on one in particular, what I've named rf_korr. This variable is obtained from KF_RF_KORR_DRREL (one of the few CSL-specific parameters we know the actual name for).
KF_RF_KORR_DRREL
This table has x axis: N (rpm) and y axis: rf_tabg_modell - TABG. The output is a multiplier factor which is applied to RF.
rf_tabg_modell
So what is rf_tabg_modell then. It's nominal TABG (exhaust gas temp) as obtained from this table:
Essentially this is a table of expected TABG for a given RPM/RF. This is what BMW would have measured during testing.
Okay so why do we need this?
Obviously we don't know for sure all the reasons BMW might have done this because we don't have the documentation, so please keep that in mind when you read the below explanation, but I'm personally pretty confident that this makes sense, and indeed what we see playing out in reality aligns with this.
KF_RF_KORR_DRREL is needed to account for differences between the nominal gas temperature in the cylinder when BMW calibrated the VE table (and indeed the entire RF calculation path) (this would have almost certainly been done on a test bed with the engine and exhaust fully up to temperature) and the actual gas temperature in varying real-world conditions.
When the engine is at full operating temperature the gas is hotter, and therefore less-dense, requiring less fuel. In real-world conditions when you've been driving around for a bit and exhaust temps are relatively cold, and you then suddenly put load on the engine (for example when you're doing VE tuning runs 🙃) the gas temperature is significantly lower and therefore more dense.
What all this means in practice is that if you simply log lambda and aq_rel_rf you're going to end up with that area appearing rich (because the number you're looking at to chase stoich has been intentionally adjusted rich) and incorrectly leaning it out.
To prove this point here is the familiar histogram (note I'm using aq_rel_rf which is the previously noted correct input variable to be using for VE tuning).
There's a big rich patch in the middle there at higher aq_rel_rf that needs to be corrected right?
Let's have a look once we've corrected lambda for rf_korr:
As we can see we're actually still lean in some cells! These screenshots were from an early tuning run experimenting with this, which is why the corrected table hasn't converged on 1 everywhere.
How does it drive?
So all this academic stuff is interesting, how does it actually drive?
Enormously better. When I first tried this out I didn't need to read the logs to know it was a huge improvement. Power and smoothness through that higher load rpm range was massively improved. When I was logging on DS2 I thought this area of my tune was average due to not having done open-loop tuning with a Wideband. It was only when CAN logging that I realized this area was still in closed loop.
Validating the theory
Meanwhile Bry5on was approaching this same theory from another approach. I won't go into too much detail on this, he can if he wants to, but essentially we've now confirmed the same behavior and obtained the same results by approaching this in two different ways. The fact that we arrive at the same conclusions in different ways is very reassuring that we are on the right track. I believe Bryson's had some good feedback on the changes that he's made, and likewise I've found this has brought massive improvements to my tune as well.
Given all of this I'm pretty confident in saying that BMW tuned the VE table to target stoich, and have then applied corrections over the top where the actual target needs to differ lean or rich for varying operating conditions.
So what do I need to do?
Okay, the most important thing to be aware of is that you shouldn't be chasing lambda == 1 in the range that KF_RF_KORR_DRREL covers.
Option 1 (simple but rough): I found with my setup (Euro M3, stock exhaust, Euro headers, standard cams) that I needed the VE table to have MORE fuel than the stock CSL table in that range (which makes sense given the standard cams). If you currently have less fuel in that area you're almost certainly too lean, as an immediate fix I'd at least go back to the stock CSL cell values in that range where you are currently leaner).
Option 2 (complicated but accurate): If you're setup for it you can do what I'm doing and CAN-log the intermediate variable and calculate lambda adjusted for rf_korr, but appreciate most can't do that with their current setups as I'm using a custom program rom to enable logging those variables. What is more in reach would be logging TABG and then doing the math to calculate the difference between the model and actual TABG, which in turn would give you your rf_korr. It's a bit of excel math, but would be a reliable approach.
Option 3 (easy and accurate): Or in my ( karter16's) opinion, if you're able, even better would be to reach out to Bry5on and get onto the Mullet Tune, not only does it solve this problem but it is by far the most sophisticated tune available for these cars and you'll reap a whole range of other improvements as well. (Honestly if you haven't actually driven it and felt the difference in drivability you can't appreciate what it is that you're missing).
All questions/challenges/etc. welcome!Last edited by karter16; Yesterday, 10:31 PM.2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread: https://nam3forum.com/forums/forum/m...e46-m3-journal
- Likes 4
Comment
-
Damn, excellent work! Awesome to see the explanation behind some of the weird behaviors I've noticed when trying this out.
Originally posted by karter16 View Post(Honestly if you haven't actually driven it and felt the difference in drivability you can't appreciate what it is that you're missing).
2002 Topasblau M3 - Coupe - 6MT - Karbonius CSL Airbox - MSS54HP Conversion - SSV1 - HJS - Mullet Tune - MK60 Swap - ZCP Rack - Nogaros - AutoSolutions - 996 Brembos - Slon - CMP - VinceBar - Koni - Eibach - BlueBus - Journal
2012 Alpinweiss 128i - Coupe - 6AT - Slicktop - Manual Seats - Daily - Journal
- Likes 2
Comment
-
Originally posted by heinzboehmer View PostAwesome to see the explanation behind some of the weird behaviors I've noticed when trying this out.2005 ///M3 SMG Coupe Silbergrau Metallic/CSL bucket seats/CSL airbox/CSL console/6 point RACP brace/Apex ARC-8s
Build Thread: https://nam3forum.com/forums/forum/m...e46-m3-journal
- Likes 3
Comment
-
Great work as always karter16
I would love to do some CAN logging. I have also purchased a Gauge.S
Which software do you use to record the logs?
How can i implement CAN bus logging?
I could try the mullet tune route but since i have CSL camshafts in my engine it won't really help.
- Likes 1
Comment
-
Originally posted by karter16 View PostMeanwhile Bry5on was approaching this same theory from another approach. I won't go into too much detail on this, he can if he wants to, but essentially we've now confirmed the same behavior and obtained the same results by approaching this in two different ways. The fact that we arrive at the same conclusions in different ways is very reassuring that we are on the right track. I believe Bryson's had some good feedback on the changes that he's made, and likewise I've found this has brought massive improvements to my tune as well.
My validation strategy was pretty simple: I zeroed (or 1’d in this case) the effect of the enrichment table, turned off adaptations and MAP calcs, then datalogged AFR, EGT, and a few other variables at various throttle inputs and rpms to see which conditions caused the motor to run lean. This then essentially allowed me to ‘back calculate’ the KF_RF_KORR_DRREL table (rather, the appropriate numbers for non-CSL cams) and fully validate this theory. Given that we’re logging all of these values (plus knock) every 10 milliseconds, again thanks to karter16’s legendary work, this gave a super clear picture and converged nicely with the theory above. Cleaning up both the rf_tabg_modell Target EGT and KF_RF_KORR_DRREL Fuel Enrichment tables seems to have eliminated the momentary torque lump and lean condition. The default CSL values are pretty close, so if you’re doing this yourself you can trust that you’ll be pretty safe by following the advice above.
Last, I want to be clear that you should *not* repeat my test, as it essentially deliberately puts your motor in danger by running it lean under load. I did this for a short period of time with cool down in between test pulls and specifically targeted exact cases which I knew would populate the table, in order to minimize any harm I would cause. I’d recommend using the approach karter16 outlined above to iterate yourself to an answer instead, as it will be safer but may take a little bit longer.
Happy fuel tuning!‘02 332iT / 6 | ‘70 Jaguar XJ6 electric conversion
- Likes 1
Comment
-
Originally posted by ac427 View PostGreat work as always karter16
I would love to do some CAN logging. I have also purchased a Gauge.S
Which software do you use to record the logs?
How can i implement CAN bus logging?
I could try the mullet tune route but since i have CSL camshafts in my engine it won't really help.
Then you’ll need to map all the standard CAN values, knock CAN values (if you turned this on in your tune file) and any custom CAN values you may have implemented (more advanced, if you get this far).
Attaching a gauge.s config file that contains lots of CAN setup info for you or anyone else stumbling in here.
config-8-24-25_knockCAN04.zipAttached Files‘02 332iT / 6 | ‘70 Jaguar XJ6 electric conversion
- Likes 1
Comment
Comment