Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Duet3D/RepRapFirmware.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Crocker <dcrocker@eschertech.com>2020-12-19 13:49:00 +0300
committerDavid Crocker <dcrocker@eschertech.com>2020-12-19 13:49:00 +0300
commit9f3f5a26f95d097de32f2de02530c8b55d453870 (patch)
treea7a3fb6827762b62e71414a996c6a17032a71db5 /src/Heating
parentb2caa157b4a94a460cb991325e51c7ec58293936 (diff)
Changed minimum allowed heating rate
Diffstat (limited to 'src/Heating')
-rw-r--r--src/Heating/FOPDT.cpp2
-rw-r--r--src/Heating/LocalHeater.cpp7
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);
}
}