Cleaning of equitherm function and onChange listener for chart

This commit is contained in:
P43YM
2025-02-28 17:53:01 +03:00
parent 54095892e1
commit ba255c1bd1
2 changed files with 14 additions and 20 deletions

View File

@@ -44,27 +44,12 @@ public:
private: private:
unsigned short _minOut = 20, _maxOut = 90; unsigned short _minOut = 20, _maxOut = 90;
// температура контура отопления в зависимости от наружной температуры
// datatype getResultN() {
// Kntemp = Kn*3.3; //Подгонка под типовые кривые
// float tempDiff = targetTemp - outdoorTemp;
// if (tempDiff < 0) tempDiff = 0;
// float T_rad = targetTemp + pow(Kntemp * tempDiff, 1.0 / Ke);
// return T_rad;
// }
datatype getResultN() { datatype getResultN() {
float tempDiff = targetTemp - outdoorTemp; float tempDiff = targetTemp - outdoorTemp,
if (tempDiff < 0) { maxPoint = targetTemp - (_maxOut - targetTemp) / Kn,
tempDiff = 0; sf = (_maxOut - targetTemp) / pow(targetTemp - maxPoint, 1.0 / Ke),
} T_rad = targetTemp + sf * pow(tempDiff, 1.0 / Ke);
float minOutside = targetTemp - (_maxOut - targetTemp) / Kn; return T_rad > _maxOut ? _maxOut : T_rad;
float c1 = (_maxOut - targetTemp) / pow(targetTemp - minOutside, 1.0 / Ke);
float T_rad = targetTemp + c1 * pow(tempDiff, 1.0 / Ke) ;
if (T_rad > _maxOut) {
T_rad = _maxOut;
}
return T_rad;
} }
// Расчет поправки (ошибки) термостата // Расчет поправки (ошибки) термостата

View File

@@ -1143,6 +1143,15 @@
updateChart(formData); updateChart(formData);
}); });
//Следим за изменениями в полях
document.querySelectorAll('#equitherm-settings input').forEach(input => {
input.addEventListener('change', () => {
const form = document.getElementById('equitherm-settings');
const formData = new FormData(form);
updateChart(formData);
});
});
// инициализируем // инициализируем
initChart(); initChart();