Merge pull request #726 from dhiltonp/temp-correction
High wattage means tip temp is low, compensate
This commit is contained in:
@@ -8,6 +8,7 @@
|
||||
#include "TipThermoModel.h"
|
||||
#include "Settings.h"
|
||||
#include "BSP.h"
|
||||
#include "power.hpp"
|
||||
#include "../../configuration.h"
|
||||
|
||||
/*
|
||||
@@ -102,6 +103,10 @@ uint32_t TipThermoModel::convertFtoC(uint32_t degF) {
|
||||
uint32_t TipThermoModel::getTipInC(bool sampleNow) {
|
||||
int32_t currentTipTempInC = TipThermoModel::convertTipRawADCToDegC(getTipRawTemp(sampleNow));
|
||||
currentTipTempInC += getHandleTemperature() / 10; //Add handle offset
|
||||
// Power usage indicates that our tip temp is lower than our thermocouple temp.
|
||||
// I found a number that doesn't unbalance the existing PID, causing overshoot.
|
||||
// This could be tuned in concert with PID parameters...
|
||||
currentTipTempInC -= x10WattHistory.average() / 25;
|
||||
if (currentTipTempInC < 0)
|
||||
return 0;
|
||||
return currentTipTempInC;
|
||||
@@ -111,6 +116,7 @@ uint32_t TipThermoModel::getTipInF(bool sampleNow) {
|
||||
uint32_t currentTipTempInF = TipThermoModel::convertTipRawADCToDegF(
|
||||
getTipRawTemp(sampleNow));
|
||||
currentTipTempInF += convertCtoF(getHandleTemperature() / 10); //Add handle offset
|
||||
currentTipTempInF += x10WattHistory.average() / 45; // 25 * 9 / 5, see getTipInC
|
||||
return currentTipTempInF;
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user