Comments on magic numbers, some formatting; take-over comments from ST-Code for orientation

This commit is contained in:
Uwe Jakobeit
2026-04-04 23:26:45 +02:00
parent 628076ead6
commit 9c4eb6ea1d

View File

@@ -743,15 +743,15 @@ void Step(void)
// ------------------------
// (* Parametersatzumschaltung über Kennfeld *)
Index_Feuchte = static_cast<std::uint16_t>( 8 - UTILITY_FUNCTIONS::real_to_int(limit((Sollwert_Feuchte - 10.0) /
(90.0 - 10.0) * 8.0, 0.0, 8.0) + 0.5));
(90.0 - 10.0) * 8.0, 0.0, 8.0) + 0.5)); // 111
Index_Temperatur = static_cast<std::uint16_t>( UTILITY_FUNCTIONS::real_to_int(limit((Sollwert_Temperatur - 10.0) /
(90.0 - 10.0) * 8.0, 0.0, 8.0) + 0.5));
(90.0 - 10.0) * 8.0, 0.0, 8.0) + 0.5)); // 111
Index_Temperatur_ohne_Feuchte = static_cast<std::uint16_t>(UTILITY_FUNCTIONS::real_to_int( limit((Sollwert_Temperatur - (-20.0)) /
(100.0 - (-20.0)) * 12.0, 0.0, 12.0) + 0.5));
(100.0 - (-20.0)) * 12.0, 0.0, 12.0) + 0.5)); // 111
// (* Zuweisung der Regelparameter *)
Regler_Heizung_Xp = F_Xp_Heizung * Kennfeld_Regler_Heizung_Xp[Index_Temperatur_ohne_Feuchte];
Regler_Kuehlung_Xp = F_Xp_Kuehlung * Kennfeld_Regler_Kuehlung_Xp[Index_Temperatur_ohne_Feuchte];
Regler_Heizung_Xp = F_Xp_Heizung * Kennfeld_Regler_Heizung_Xp[Index_Temperatur_ohne_Feuchte];
Regler_Kuehlung_Xp = F_Xp_Kuehlung * Kennfeld_Regler_Kuehlung_Xp[Index_Temperatur_ohne_Feuchte];
/*
* UJ : Warum fehlt das?
IF BDR_Feuchtemodul THEN
@@ -776,17 +776,17 @@ void Step(void)
!is_valid(Standardgradient_Regelabweichung_Temperatur) ||
Standardgradient_Regelabweichung_Temperatur <= 0.0)
{
Zykluszeit_Regelabweichung_Temperatur = 600.0;
Zykluszeit_Regelabweichung_Temperatur = 600.0; // 111
}
else
{
Zykluszeit_Regelabweichung_Temperatur = limit( 2.0 * 3.1415 * Standardregelabweichung_Temperatur / Standardgradient_Regelabweichung_Temperatur * 60.0,
120.0,
1200.0);
1200.0); // 111
}
Zykluszeit_Regelabweichung_Heizung = std::min(Zykluszeit_Regelabweichung_Temperatur, 300.0);
Zykluszeit_Regelabweichung_Kuehlung = std::max(Zykluszeit_Regelabweichung_Temperatur, 600.0);
Amplitude_Regelabweichung_Temperatur = 1.4142 * Standardregelabweichung_Temperatur;
Zykluszeit_Regelabweichung_Heizung = std::min(Zykluszeit_Regelabweichung_Temperatur, 300.0); // 111
Zykluszeit_Regelabweichung_Kuehlung = std::max(Zykluszeit_Regelabweichung_Temperatur, 600.0); // 111
Amplitude_Regelabweichung_Temperatur = 1.4142 * Standardregelabweichung_Temperatur; // 111
// Mittelwert Regelabweichung Temperatur
if (!Startup_finished || !is_valid(Regelabweichung_Temperatur_Mittelwert) || Temperatursprung)
@@ -845,13 +845,16 @@ void Step(void)
1.0);
}
// UJ: Todo ST Code neu konvertieren !!
// Temperatursprung
// f_TemperatureJumpHandler(...)
if (!Startup_finished)
{
Counter_Temperatursprung = 0.0;
}
else if (((Sollwert_Temperatur != Sollwert_Temperatur_alt) && (std::abs(Regelabweichung_Temperatur) > 1.0)) || Tuer_offen)
else if (((Sollwert_Temperatur != Sollwert_Temperatur_alt) &&
(std::abs(Regelabweichung_Temperatur) > 1.0)) ||
Tuer_offen)
{
Counter_Temperatursprung = std::max(Counter_Temperatursprung + sampling_time, 0.0);
}
@@ -863,33 +866,39 @@ void Step(void)
else if (Regelabweichung_Temperatur > std::max(0.5, 2.0 * Amplitude_Regelabweichung_Temperatur) ||
Regelabweichung_Temperatur < -std::max(0.5, 2.0 * Amplitude_Regelabweichung_Temperatur))
{
Counter_Temperatursprung = std::max(Counter_Temperatursprung + sampling_time, -120.0);
Counter_Temperatursprung = std::max(Counter_Temperatursprung + sampling_time, -120.0); // 111
}
Temperatursprung = (Counter_Temperatursprung > 0.0) || (Temperatursprung && Counter_Temperatursprung > -60.0);
Temperatursprung = (Counter_Temperatursprung > 0.0) || (Temperatursprung && Counter_Temperatursprung > -60.0); // 111
// Anti-wind-up Heizung (dynamisches Clamping)
// ------ F_PID_Temperatuer.AntiWindUpHeater(...)
if ((Counter_Tuer_geschlossen < 180.0) || (Counter_Tuer_offen > 0.0))
if ((Counter_Tuer_geschlossen < 180.0) || (Counter_Tuer_offen > 0.0)) // 111
{
Regler_Heizung_MIN = 0.0;
Regler_Heizung_MIN = 0.0;
Regler_Heizung_I_Anteil_MIN = 0.0;
Regler_Heizung_MAX = 100.0;
Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung, Regler_Heizung_I_Anteil_MIN, Stellgrad_Heizung_Mittelwert);
Regler_Heizung_MAX = 100.0; // 111
Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung,
Regler_Heizung_I_Anteil_MIN,
Stellgrad_Heizung_Mittelwert);
}
else
{
Regler_Heizung_MIN = 0.0;
Regler_Heizung_MIN = 0.0;
Regler_Heizung_I_Anteil_MIN = 0.0;
Regler_Heizung_MAX = 100.0;
if (Temperatursprung)
{
Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung, Regler_Heizung_I_Anteil_MIN, Regler_Heizung_MAX);
}
else
{
Regler_Heizung_I_Anteil_MAX = 100.0;
}
}
Regler_Heizung_MAX = 100.0; // 111
Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung,
Regler_Heizung_I_Anteil_MIN,
Regler_Heizung_MAX); // 111
}
/* Anpassung P-Anteil Heizung bei Temperatursprung */
if (Temperatursprung)
{
}
else
{
Regler_Heizung_I_Anteil_MAX = 100.0; // 111
}
//----------------------
// Anpassung Xp Heizung
@@ -898,13 +907,13 @@ void Step(void)
Regelabweichung_Temperatur_Mittelwert > 0.05 &&
!Temperatursprung)
{
Regler_Heizung_Xp /= 2.0;
Regler_Heizung_Xp /= 2.0; // 111
}
// Achtung: du referenzierst hier Zykluszeit_Regelabweichung_Feuchte später
// steht unten. Wir setzen default, falls noch uninitialisiert:
if (!is_valid(Zykluszeit_Regelabweichung_Feuchte) || Zykluszeit_Regelabweichung_Feuchte <= 0.0)
{
Zykluszeit_Regelabweichung_Feuchte = 600.0;
Zykluszeit_Regelabweichung_Feuchte = 600.0; // 111
}
Regler_Heizung_Xp = Regler_Heizung_Xp * limit(Zykluszeit_Regelabweichung_Feuchte / 300.0, 1.0, 2.0) *
@@ -917,7 +926,7 @@ void Step(void)
if (!Startup_finished || !is_valid(Regelabweichung_Temperatur)) {
P_Anteil_Heizung = 0.0;
} else {
P_Anteil_Heizung = 100.0 / Regler_Heizung_Xp * Regelabweichung_Temperatur;
P_Anteil_Heizung = 100.0 / Regler_Heizung_Xp * Regelabweichung_Temperatur; // 111
}
if (!Startup_finished || !is_valid(I_Anteil_Heizung)) {
@@ -944,6 +953,7 @@ void Step(void)
D_Anteil_Heizung) / (Tau_Heizung_Tv / sampling_time);
}
/* Berechnung Stellgrad Heizung */
if (Counter_Tuer_offen > 60.0 || Regelung_AUS || !Startup_finished)
{
Stellgrad_Heizung = 0.0;
@@ -955,6 +965,7 @@ void Step(void)
Regler_Heizung_MAX);
}
/* Berechnung Stellgrad Heizung Mittelwert *
if (!Startup_finished || !is_valid(Stellgrad_Heizung_Mittelwert))
{
Stellgrad_Heizung_Mittelwert = 0.0;