Liste der Anhänge anzeigen (Anzahl: 1)
Hilfe bei Einstellung Regelparameter (Tempregelung) mit PIC
Hallo!
Ich bin ein ziemlicher Neuling auf dem Gebiet der dig. Regelungstechnik, habe mich aber trotzdem an einer Temperaturregelung versucht.
Folgendes Stück Code ist dabei raugekommen:
Code:
#define I_BEGR 3000 // I-Anteil begrenzen
#define TA 4 // Sek.
float pAnteil = 0;
static float iAnteil = 0;
float e = 0; // Regelabweichung
static float esum = I_BEGR; // Integral (Summe der Regelabweigungen)
char outputPower = 0; // Leistung, die auf die Heizung gegeben wird (per PWM)
float Ta = TA; // Abtastrate (Zeit in Sek.)
e = (float) (presetTemp - currentTemp);
// P-Anteil
pAnteil = (e * Kp);
if (pAnteil > 100) { pAnteil = 100; }
if (TIMER_REGLER >= (char) (10*Ta)) // Der Timer wird alle 100ms aufgerufen
{
// I-Anteil
esum = esum + (e * Ta);
if (esum > I_BEGR) { esum = I_BEGR; }
else if (esum < 0) { esum = 0; }
iAnteil = esum * Ki;
TIMER_REGLER = 0;
}
outputPower = (int) (pAnteil + iAnteil);
Das zu regelnde System ist ziemlich langsam. Die Einheit der X-Achse ist Minuten.
Meine Frage jetzt: Wie bekomme ich den Unterschwinger weg? (Siehe Anhang) Der Überschwinger ist sogar gewollt.
Vielen Dank schonmal im Voraus!