mirror of
https://github.com/Laxilef/OTGateway.git
synced 2025-12-26 18:13:36 +05:00
Compare commits
1 Commits
a2ffdb93a5
...
b17ecd5ae8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b17ecd5ae8 |
@@ -44,16 +44,30 @@ public:
|
|||||||
private:
|
private:
|
||||||
unsigned short _minOut = 20, _maxOut = 90;
|
unsigned short _minOut = 20, _maxOut = 90;
|
||||||
|
|
||||||
datatype getResultN()
|
// температура контура отопления в зависимости от наружной температуры
|
||||||
{
|
// datatype getResultN() {
|
||||||
float tempDelta = targetTemp - outdoorTemp,
|
// Kntemp = Kn*3.3; //Подгонка под типовые кривые
|
||||||
maxPoint = targetTemp - (_maxOut - targetTemp) / Kn,
|
// float tempDiff = targetTemp - outdoorTemp;
|
||||||
sf = (_maxOut - targetTemp) / pow(targetTemp - maxPoint, 1.0 / Ke),
|
// if (tempDiff < 0) tempDiff = 0;
|
||||||
T_rad = targetTemp + sf * (tempDelta >= 0 ? pow(tempDelta, 1.0 / Ke) : -pow(-tempDelta, 1.0 / Ke));
|
// float T_rad = targetTemp + pow(Kntemp * tempDiff, 1.0 / Ke);
|
||||||
return T_rad > _maxOut ? _maxOut : T_rad;
|
// return T_rad;
|
||||||
}
|
// }
|
||||||
|
datatype getResultN() {
|
||||||
|
float tempDiff = targetTemp - outdoorTemp;
|
||||||
|
if (tempDiff < 0) {
|
||||||
|
tempDiff = 0;
|
||||||
|
}
|
||||||
|
float minOutside = targetTemp - (_maxOut - targetTemp) / Kn;
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Расчет поправки (ошибки) термостата
|
||||||
datatype getResultT() {
|
datatype getResultT() {
|
||||||
return constrain((targetTemp - indoorTemp), -3, 3) * Kt;
|
return constrain((targetTemp - indoorTemp), -3, 3) * Kt;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1143,17 +1143,10 @@
|
|||||||
updateChart(formData);
|
updateChart(formData);
|
||||||
});
|
});
|
||||||
|
|
||||||
//Следим за изменениями в полях
|
// инициализируем
|
||||||
document.querySelectorAll('#equitherm-settings input').forEach(input => {
|
initChart();
|
||||||
input.addEventListener('change', () => {
|
|
||||||
const form = document.getElementById('equitherm-settings');
|
|
||||||
const formData = new FormData(form);
|
|
||||||
updateChart(formData);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
// инициализируем график
|
|
||||||
initChart();
|
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
Reference in New Issue
Block a user