Comments on magic numbers, some formatting; take-over comments from ST-Code for orientation
This commit is contained in:
@@ -743,11 +743,11 @@ 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];
|
||||
@@ -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,32 +866,38 @@ 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_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_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)
|
||||
{
|
||||
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_I_Anteil_MAX = 100.0; // 111
|
||||
}
|
||||
//----------------------
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user