Comments on magic numbers, some formatting; take-over comments from ST-Code for orientation
This commit is contained in:
@@ -743,15 +743,15 @@ 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];
|
||||||
Regler_Kuehlung_Xp = F_Xp_Kuehlung * Kennfeld_Regler_Kuehlung_Xp[Index_Temperatur_ohne_Feuchte];
|
Regler_Kuehlung_Xp = F_Xp_Kuehlung * Kennfeld_Regler_Kuehlung_Xp[Index_Temperatur_ohne_Feuchte];
|
||||||
/*
|
/*
|
||||||
* UJ : Warum fehlt das?
|
* UJ : Warum fehlt das?
|
||||||
IF BDR_Feuchtemodul THEN
|
IF BDR_Feuchtemodul THEN
|
||||||
@@ -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
|
||||||
if (Temperatursprung)
|
Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung,
|
||||||
{
|
Regler_Heizung_I_Anteil_MIN,
|
||||||
Regler_Heizung_I_Anteil_MAX = limit(100.0 - P_Anteil_Heizung, Regler_Heizung_I_Anteil_MIN, Regler_Heizung_MAX);
|
Regler_Heizung_MAX); // 111
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
/* Anpassung P-Anteil Heizung bei Temperatursprung */
|
||||||
Regler_Heizung_I_Anteil_MAX = 100.0;
|
if (Temperatursprung)
|
||||||
}
|
{
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
|||||||
Reference in New Issue
Block a user