Software Regler

Hallo an Alle!

Ich habe vor die Temperatur in einem Terrarium zu regeln.

[Sprungantwort Heizmatte.png]
Strecke: Pt1

Durch die Aufgenommene Sprungantwort der Heizmatte habe ich mich für einen I-Regler entschieden, ich könnte natürlich auch einen PI-Regler nehmen und Kp auf 1 setzen.

Digitaler I-Regler:

//float Kp =1; nur beim PI-Regler
 float Ki = ?;
 float Ta = ?;

 e = sollwert - istwert; //Vergleich
 esum = esum + e; //Integration I-Anteil
 i f (esum < -400) {esum = -400;} //Begrenzung I-Anteil
 if (esum > 400) {esum = 400;}
 y = Ki*Ta*esum; //Reglergleichung
 if (y < 5) {y = 5;} //Begrenzung Stellgröße
 if (y > 95) {y = 95;}
 PWM = y; //Übergabe Stellgröße

Quelle: http://www.rn-wissen.de/index.php/Regelungstechnik

Durch die Sprungantwort habe ich ein T1-Wert von 1750s ermittelt.
Der Algorithmus wird im Takt der Abtastzeit, also alle 1,25s aufgerufen.
Wenn ich jetzt Ki haben will, muss ich doch Ki = Kp/T1 (Ki = 1/1750s) nehmen oder?

Dann bekomme ich aber ein Ki-Wert von 0,00057 1/s.

Was muss ich bei Ta und Ki eingeben?

Danke im Voraus!

Gruß Sven

Nimm besser den fertigen PID-Regler: http://playground.arduino.cc/Code/PIDLibrary

Den Differential-Anteil kannst du weglassen.

Dafür gibt es eine AutoTone Lib, die diese Einstellungen von selbst ermittelt: http://playground.arduino.cc//Code/PIDAutotuneLibrary

Wie muss ich den die PID-Library und PID-Autotune-Library anwenden??

Du installierst dir die PID Library

Die Funktionen sind im http://playground.arduino.cc/Code/PIDLibrary beschrieben. Am besten du öffnest das Beispiel "PID_Basic", dann ist eigentlich alles klar.

Im wesentlichen: Du spezifizierst einmal den Regler:

PID TerrariumRegler(&Input, &Output, &Setpoint,5,0.0057,0, DIRECT);

damit spezifizierst du die Eingangs und Ausgangsvariablen, die Parameter Kp, Ki, Kd.

Dann in der loop() Compute() aufrufen, damit wird der PID-Regler aktualisiert (hat intern eine Zeitscheibe)

Damit hast du in der Variablen Output immer den Stellerwert stehen (0-255). Den kannst du dann direkt als PWM ausgeben, oder selbst in ein Schaltintervall umwandeln.

Der PID Regler funktionier hervorragend! und dein Ki-Parameter macht für langsame Systeme Sinn, der sollte stimmen. Allerdings würde ich auch einen P-Anteil mit reinnehmen, der macht das ganze stabiler.

Tip zum Einregeln: die Werte Input und Output über die Serielle währende eines Regelvorganges mitloggen und dann in Excel auswerten. Dann sieht man schön die Kurven und weiß, wo man drehen muß. (Ach ja, und den Test am besten ohne Tiere :-) )