mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Temp-Regelung - Streckenidentifizierung und Parametrierung PI-Regler


Autor: Thomas L. (sps-tom)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte einen PI-Regler zur Temperaturregelung verwenden.
Aus der Sprungantwort konnte ich mit dem Wendetangentenverfahren
Tu = 1 min und Tg = 56 min ablesen.
Als Eingangssignal meiner Sprungantwort habe ich 24% Einschaltdauer 
meines PWM-Signals verwendet. Bei 24% Stellgröße erhalte ich meine 
gewünschte Temperatur von 100°C, die einer Regelgröße von 1000 
entspricht.
Die Stellgröße liegt zwischen 0 und 10000. Bei 24% habe ich somit einen 
Regler-Ausgangswert von 2400 (Einschaltdauer: 24% * 10s = 2,4s).
Die Verstärkung Ks der Regelstrecke berechnet sich zu 1000/2400 = 0,417 
(eine Führungsgröße von 2400 erzeugt eine Regelgröße von 1000, also 
100°C).

Mit der Einstellregel nach Chien, Hrones und Reswich berechne ich für 
den aperiodischen Grenzfall
Kr = (0,35/Ks) * (Tg/Tu) = (0,35/0,417) * (56/1) = 47
Tn = 1,2 * Tg = 1,2 * 56 min = 67 min = 4032 s

Kr kann ich direkt für den Regler verwenden, die Zeitkonstante Ki 
berechnet sich zu
Ki = Kr/Tn = 47/4032s = 0,012/s

Kr und Ki lege ich an meinen Regler als Kp und Ki.

Die Ausgangsgröße berechnet sich zu
Y = IN * Kp + IN * KI x DeltaT + I_alt

mit IN = Führungsgröße - Regelgröße = Regelabweichung
DeltaT = Zeit seit dem letzten Aufruf des Reglers
I_alt = I-Anteil bei vorhergehendem Aufruf

Meine Abtastzeit beträgt 2 min, also 120 s.

Leider funktioniert mein Regler nicht, der Endwert wird nicht erreicht. 
Bei etwa 80° (Regelgröße 800) bleibt die Temperatur relativ konstant und 
"kriecht" dann nur noch in Richtung 100°C.

Weiß jemand, wo hier der Fehler liegt?
Ist möglicherweise Ks der Regelstrecke falsch ermittelt? Ich habe den 
absoluten Betrag Regelgröße/Stellgröße ermittelt, ist hier die 
Streckenverstärkung am Arbeitspunkt zu ermitteln (Delta T/Delta 
Stellgröße)?

Die Heizung nähere ich mit einem PT2-Verhalten an, auch wenn Tu sehr 
klein ist.

Für konstruktive Rückmeldungen wäre ich dankbar.

: Verschoben durch Admin
Autor: A. S. (rava)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also ich kenn jetzt diese Verfahren nicht und weiß auch nicht, ob du 
deine Strecke richtig modelliert hast, aaaber:


wenn du einen I-Anteil im Regler hast, sollte das System eigentlich 
stationär genau sein, d.h. den Endwert erreichen.

Wie sind denn deine Stellgrößen, sobald dir das Ergebnis nicht gefällt?


Dass die Heizung ein lineares System ist, ist nur geraten, oder? 
Vielleicht fährst du ja mit der Stellgröße in die Begrenzung - aus 
welchem Grund auch immer?

Kannst du keinen genaueren Blick auf die Werte werfen?

Autor: Otto (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn deine Abtastzeit 120s beträgt, dann musst du gezwungenermaßen einen 
diskreten Regler entwerfen.

Autor: C Programmierer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die eine Zeitkonstate ist halb so groß wie die Abtastzeit. Diese würde 
ich einfach ignorieren und die Strecke zu einem Sytem 1. Ordnung 
vereinfachen.

Das Tg sieht für mich in dem wiki-Eintrag etwas größer als die 
Zeitkonstante eines PT1-Glieds aus. Probier doch einfach mal Tn auf etwa 
80% von Tg zu stellen, in diesem Fall also auf etwa 45 Minuten, damit 
wäre die Zeitkonstante deiner Strecke in der Überragungsfunktion 
gekürzt.

Das Kp kannst du anschließend (theoretisch) "beliebig" hoch stellen. 
Angemessen wäre hierbei m.E. das Kp so hoch zu stellen, dass bei der 
abgekühlten Temperatur ein Sollwertsprung auf deine Gewünschte 
Temperatur dazu führen würde, dass der Regler in den ersten Minuten 
seinen (fast) vollen Ausgangswert hat (z.B. 9000).

Falls das ganze klappt und du es noch optimieren willst, kannst du den 
Regler noch schärfer einstellen, indem du das Kp höher stellst, (z.B. 
verdoppeln oder verdreifachen) und statt eines Sollwertsprungs den 
Sollwert durch eine Rampe in einer geeigneten Zeit nach oben fahren 
lässt.

Autor: Klaus Günter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Parameterindentifikation würde ich mit dem IV4-Verfahren machen... Das 
dürfte aber recht schwer für dich werden es zu implementieren!

Autor: Willi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist zwar schon Ewigkeiten her aber das Ks dürfte falsch berechnet sein.
Die 100°C müssen noch um den Offset reduziert werden es sei denn dein 
Ausgangstemperaturwert liegt bei 0°C (gemeint ist die Temperatur bei 
Einschalten der Heizung)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.