Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Possible to set coefficient greater than 1 for RPM+TPS mode of Charge Temperature Estimation #464

Open
DenisMitchell opened this issue Aug 15, 2024 · 1 comment

Comments

@DenisMitchell
Copy link
Contributor

float tChargeMinRpmMinTps;;"", 1, 0, 0, 3, 4
float tChargeMinRpmMaxTps;;"", 1, 0, 0, 3, 4
float tChargeMaxRpmMinTps;;"", 1, 0, 0, 3, 4
float tChargeMaxRpmMaxTps;;"", 1, 0, 0, 3, 4

I'm not sure why the coefficient here can go to 3 - I'd think it should only be possible to define a maximum of 1, which to my understanding would mean that 100% of the calculated charge temperature would be coming from the IAT.

Looking at speed_density.cpp it looks like rpmMin and rpmMax might be hard-coded to 500RPM and 8000 RPM respectively, so setting a number higher than 1 could allow the coefficient to hit 1 (and be clamped to 1) at a lower RPM than 8000 RPM. I'm not sure if this intended behavior but it may be better to expose the values for low RPM and high RPM as user configurable settings.
reference: fome-fw/firmware/controllers/math/speed_density.cpp: lines 25, 26, 103-106

@DenisMitchell
Copy link
Contributor Author

Reference implying coefficient should be 0-1:

// Interpolate between CLT and IAT:
// 0.0 coefficient -> use CLT (full heat transfer)
// 1.0 coefficient -> use IAT (no heat transfer)
float Tcharge = interpolateClamped(0.0f, coolantTemp, 1.0f, airTemp, sdTcharge_coff);

possibly hard-coded minRPM and maxRPM values:

#define rpmMin 500
#define rpmMax 8000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant