1
0
forked from me/IronOS

Merge pull request #726 from dhiltonp/temp-correction

High wattage means tip temp is low, compensate
This commit is contained in:
Ben V. Brown
2020-12-28 15:14:30 +11:00
committed by GitHub

View File

@@ -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