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,11 +743,11 @@ void Step(void)
// ------------------------ // ------------------------
// (* Parametersatzumschaltung über Kennfeld *) // (* Parametersatzumschaltung über Kennfeld *)
Index_Feuchte = static_cast<std::uint16_t>( 8 - UTILITY_FUNCTIONS::real_to_int(limit((Sollwert_Feuchte - 10.0) / 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) / 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)) / 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 *) // (* Zuweisung der Regelparameter *)
Regler_Heizung_Xp = F_Xp_Heizung * Kennfeld_Regler_Heizung_Xp[Index_Temperatur_ohne_Feuchte]; Regler_Heizung_Xp = F_Xp_Heizung * Kennfeld_Regler_Heizung_Xp[Index_Temperatur_ohne_Feuchte];
@@ -776,17 +776,17 @@ void Step(void)
!is_valid(Standardgradient_Regelabweichung_Temperatur) || !is_valid(Standardgradient_Regelabweichung_Temperatur) ||
Standardgradient_Regelabweichung_Temperatur <= 0.0) Standardgradient_Regelabweichung_Temperatur <= 0.0)
{ {
Zykluszeit_Regelabweichung_Temperatur = 600.0; Zykluszeit_Regelabweichung_Temperatur = 600.0; // 111
} }
else else
{ {
Zykluszeit_Regelabweichung_Temperatur = limit( 2.0 * 3.1415 * Standardregelabweichung_Temperatur / Standardgradient_Regelabweichung_Temperatur * 60.0, Zykluszeit_Regelabweichung_Temperatur = limit( 2.0 * 3.1415 * Standardregelabweichung_Temperatur / Standardgradient_Regelabweichung_Temperatur * 60.0,
120.0, 120.0,
1200.0); 1200.0); // 111
} }
Zykluszeit_Regelabweichung_Heizung = std::min(Zykluszeit_Regelabweichung_Temperatur, 300.0); Zykluszeit_Regelabweichung_Heizung = std::min(Zykluszeit_Regelabweichung_Temperatur, 300.0); // 111
Zykluszeit_Regelabweichung_Kuehlung = std::max(Zykluszeit_Regelabweichung_Temperatur, 600.0); Zykluszeit_Regelabweichung_Kuehlung = std::max(Zykluszeit_Regelabweichung_Temperatur, 600.0); // 111
Amplitude_Regelabweichung_Temperatur = 1.4142 * Standardregelabweichung_Temperatur; Amplitude_Regelabweichung_Temperatur = 1.4142 * Standardregelabweichung_Temperatur; // 111
// Mittelwert Regelabweichung Temperatur // Mittelwert Regelabweichung Temperatur
if (!Startup_finished || !is_valid(Regelabweichung_Temperatur_Mittelwert) || Temperatursprung) if (!Startup_finished || !is_valid(Regelabweichung_Temperatur_Mittelwert) || Temperatursprung)
@@ -845,13 +845,16 @@ void Step(void)
1.0); 1.0);
} }
// UJ: Todo ST Code neu konvertieren !!
// Temperatursprung // Temperatursprung
// f_TemperatureJumpHandler(...) // f_TemperatureJumpHandler(...)
if (!Startup_finished) if (!Startup_finished)
{ {
Counter_Temperatursprung = 0.0; 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); 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) || else if (Regelabweichung_Temperatur > std::max(0.5, 2.0 * Amplitude_Regelabweichung_Temperatur) ||
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) // Anti-wind-up Heizung (dynamisches Clamping)
// ------ F_PID_Temperatuer.AntiWindUpHeater(...) // ------ 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_I_Anteil_MIN = 0.0;
Regler_Heizung_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, Stellgrad_Heizung_Mittelwert); Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung,
Regler_Heizung_I_Anteil_MIN,
Stellgrad_Heizung_Mittelwert);
} }
else else
{ {
Regler_Heizung_MIN = 0.0; Regler_Heizung_MIN = 0.0;
Regler_Heizung_I_Anteil_MIN = 0.0; Regler_Heizung_I_Anteil_MIN = 0.0;
Regler_Heizung_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) if (Temperatursprung)
{ {
Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung, Regler_Heizung_I_Anteil_MIN, Regler_Heizung_MAX);
} }
else else
{ {
Regler_Heizung_I_Anteil_MAX = 100.0; Regler_Heizung_I_Anteil_MAX = 100.0; // 111
} }
}
//---------------------- //----------------------
// Anpassung Xp Heizung // Anpassung Xp Heizung
@@ -898,13 +907,13 @@ void Step(void)
Regelabweichung_Temperatur_Mittelwert > 0.05 && Regelabweichung_Temperatur_Mittelwert > 0.05 &&
!Temperatursprung) !Temperatursprung)
{ {
Regler_Heizung_Xp /= 2.0; Regler_Heizung_Xp /= 2.0; // 111
} }
// Achtung: du referenzierst hier Zykluszeit_Regelabweichung_Feuchte später // Achtung: du referenzierst hier Zykluszeit_Regelabweichung_Feuchte später
// steht unten. Wir setzen default, falls noch uninitialisiert: // steht unten. Wir setzen default, falls noch uninitialisiert:
if (!is_valid(Zykluszeit_Regelabweichung_Feuchte) || Zykluszeit_Regelabweichung_Feuchte <= 0.0) 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) * 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)) { if (!Startup_finished || !is_valid(Regelabweichung_Temperatur)) {
P_Anteil_Heizung = 0.0; P_Anteil_Heizung = 0.0;
} else { } 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)) { if (!Startup_finished || !is_valid(I_Anteil_Heizung)) {
@@ -944,6 +953,7 @@ void Step(void)
D_Anteil_Heizung) / (Tau_Heizung_Tv / sampling_time); D_Anteil_Heizung) / (Tau_Heizung_Tv / sampling_time);
} }
/* Berechnung Stellgrad Heizung */
if (Counter_Tuer_offen > 60.0 || Regelung_AUS || !Startup_finished) if (Counter_Tuer_offen > 60.0 || Regelung_AUS || !Startup_finished)
{ {
Stellgrad_Heizung = 0.0; Stellgrad_Heizung = 0.0;
@@ -955,6 +965,7 @@ void Step(void)
Regler_Heizung_MAX); Regler_Heizung_MAX);
} }
/* Berechnung Stellgrad Heizung Mittelwert *
if (!Startup_finished || !is_valid(Stellgrad_Heizung_Mittelwert)) if (!Startup_finished || !is_valid(Stellgrad_Heizung_Mittelwert))
{ {
Stellgrad_Heizung_Mittelwert = 0.0; Stellgrad_Heizung_Mittelwert = 0.0;