diff options
author | David Crocker <dcrocker@eschertech.com> | 2020-12-19 13:49:00 +0300 |
---|---|---|
committer | David Crocker <dcrocker@eschertech.com> | 2020-12-19 13:49:00 +0300 |
commit | 9f3f5a26f95d097de32f2de02530c8b55d453870 (patch) | |
tree | a7a3fb6827762b62e71414a996c6a17032a71db5 /src/Heating | |
parent | b2caa157b4a94a460cb991325e51c7ec58293936 (diff) |
Changed minimum allowed heating rate
Diffstat (limited to 'src/Heating')
-rw-r--r-- | src/Heating/FOPDT.cpp | 2 | ||||
-rw-r--r-- | src/Heating/LocalHeater.cpp | 7 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/Heating/FOPDT.cpp b/src/Heating/FOPDT.cpp index e343f027..ac4db04a 100644 --- a/src/Heating/FOPDT.cpp +++ b/src/Heating/FOPDT.cpp @@ -65,7 +65,7 @@ bool FopDt::SetParameters(float phr, float pcrFanOff, float pcrFanOn, float pdt, { // DC 2017-06-20: allow S down to 0.01 for one of our OEMs (use > 0.0099 because >= 0.01 doesn't work due to rounding error) const float maxTempIncrease = max<float>(1500.0, temperatureLimit + 500.0); - if ( phr > 0.1 // minimum 0.1C/sec at room temperature + if ( phr/pcrFanOff > 10.0 // minimum 10C temperature rise (same as with earlier heater model) && phr/pcrFanOff <= maxTempIncrease // max temperature increase within limits && pcrFanOn >= pcrFanOff && pdt > 0.099 diff --git a/src/Heating/LocalHeater.cpp b/src/Heating/LocalHeater.cpp index de5029b2..949c6096 100644 --- a/src/Heating/LocalHeater.cpp +++ b/src/Heating/LocalHeater.cpp @@ -876,9 +876,10 @@ void LocalHeater::SetAndReportModel(bool usingFans) noexcept { const float hRate = (usingFans) ? (fanOffParams.heatingRate + fanOnParams.heatingRate) * 0.5 : fanOffParams.heatingRate; const float deadTime = (usingFans) ? (fanOffParams.deadTime + fanOnParams.deadTime) * 0.5 : fanOffParams.deadTime; + const float fanOnCoolingRate = (usingFans) ? fanOnParams.coolingRate : fanOffParams.coolingRate; String<StringLength256> str; const GCodeResult rslt = SetModel( hRate, - fanOffParams.coolingRate, (usingFans) ? fanOnParams.coolingRate : fanOffParams.coolingRate, + fanOffParams.coolingRate, fanOnCoolingRate, deadTime, tuningPwm, #if HAS_VOLTAGE_MONITOR @@ -915,9 +916,9 @@ void LocalHeater::SetAndReportModel(bool usingFans) noexcept } else { - reprap.GetPlatform().MessageF(WarningMessage, "Auto tune of heater %u failed due to bad curve fit (R=%.3f, C=%.3f:%.3f, D=%.1f)\n", + reprap.GetPlatform().MessageF(WarningMessage, "Auto tune of heater %u failed due to bad curve fit (R=%.3f, 1/C=%.4f:%.4f, D=%.1f)\n", GetHeaterNumber(), (double)hRate, - (double)fanOffParams.coolingRate, (double)fanOnParams.coolingRate, + (double)fanOffParams.coolingRate, (double)fanOnCoolingRate, (double)fanOffParams.deadTime); } } |