Hallo,
ich will eine Art Temperaturregelung mit PID-Regler bauen.
Wie finde ich dei optimalen Parameter?
Bisher fummel ich solange rum, bis es nicht mehr schwingt.
Den D-Anteil lasse ich im allgemeinen weg.
Kann man den Regler (Software auf einem ATmega) nicht selbsteinstellend
hinkriegen? Aber wie?
Man kann den Regler (ohne weitere andere Parameter, die du aber wieder
vorgeben musst) nicht automatisch einstellbar machen.
Denn, der Algorithmus kann nicht beurteilen, wann der Regelkreis für
dich in Ordnung ist. Ein Regelkreis kann ja nicht nur "stabil" und
"nichtstabil" sein. Sondern auch noch schnell, langsam, mit
Überschwinger, ohne.. etc.
Du wirst also Grips reinstecken müssen.
> Man kann den Regler (ohne weitere andere Parameter, die du aber wieder> vorgeben musst) nicht automatisch einstellbar machen.
Der Satz macht nicht so richtig Sinn und ist in deinem Sinne falsch.
Für bestimmte Regler für bestimmte Strecken gibt es Algorithmen, um die
Parameter zu bestimmen.
Du kannst das experimentelle Verfahren nach Ziegler-Nichols auch
automatisch Ablaufen lassen. Da man unkontrollierte Schwingungen durch
"ungeeignete" Parameter vermeiden will (Schäden an Anlage, Dauer des
Einstellens) macht man es eben kontrolliert..
http://books.google.de/books?id=_99UubsEMGIC&lpg=PP1&dq=pid%20auto-tuning&pg=PP1#v=onepage&q&f=false
> Für bestimmte Regler für bestimmte Strecken gibt es Algorithmen, um die> Parameter zu bestimmen.
Genau das meinte simon. Wenn die Randbedingungen bekannt sind.
Nur einfach so: "Regel mal optimal" ist zu wenig.
Alter Schwede schrieb:>> Man kann den Regler (ohne weitere andere Parameter, die du aber wieder>> vorgeben musst) nicht automatisch einstellbar machen.>> Der Satz macht nicht so richtig Sinn und ist in deinem Sinne falsch.
Ja, etwas blöd ausgedrückt.
Wie auch immer: Es gibt selbsteinstellende Regler, aber denen muss man
auch vorgeben, WIE sie einstellen sollen. Und damit hat man wiederum
einen Parameter, wo man per Hand dran rumdrehen muss.
Man kann keinen Regler bauen, wo man nichts mehr dran einstellen muss.
> Du kannst das experimentelle Verfahren nach Ziegler-Nichols auch> automatisch Ablaufen lassen. Da man unkontrollierte Schwingungen durch> "ungeeignete" Parameter vermeiden will (Schäden an Anlage, Dauer des> Einstellens) macht man es eben kontrolliert..>> http://books.google.de/books?id=_99UubsEMGIC&lpg=PP1&dq=pid%20auto-tuning&pg=PP1#v=onepage&q&f=false
Soweit ich weiß, hat Ziegler und Nichols irgendwie nur stark
theoretischen Hintergrund. In der Praxis liegt man oft (hängt natürlich
von vielen anderen Sachen ab) viel besser, wenn man per Handgefühl
einstellt (sofern möglich) oder direkt ein richtiges
regelungstechnisches Modell aufnimmt.
Trotzdem hat man bei den ganzen Einstellverfahren immer noch einen (oder
mehrere) zusätzliche Parameter. Beim Ziegler-Nichols ist das (laut
Wikipedia):
---
Bei Einstellung des Reglers nach diesem Verfahren wird ein leicht
schwingendes Führungsverhalten (schlechter als beim Reglerentwurf nach
dem Betragsoptimum) aber ein gutes Störverhalten erreicht.
---
Wenn man ein anderes Regelverhalten haben will, muss man eben andere
Parameter bzw. Verfahren anwenden.
Fazit: Man kann keinen Regler aufbauen ohne irgendwelche Parameter
festlegen zu müssen.
JW schrieb:>> Für bestimmte Regler für bestimmte Strecken gibt es Algorithmen, um die>> Parameter zu bestimmen.>> Genau das meinte simon. Wenn die Randbedingungen bekannt sind.> Nur einfach so: "Regel mal optimal" ist zu wenig.
Genau. Denn was "optimal" ist, weiß nur der Benutzer (oder nicht mal
der).
Man sollte auch die Faehigkeiten des Stellgliedes richtig einordnen. Ein
Temperatursteller, die nur einen Quadranten (heizen) kann bedingt einen
anderen Regler wie ein System, das zwei Quadranten (heizen und kuehlen)
kann, auch wenn die Temperaturen auf der einen Seite (zB oberhalb) der
Umgebungstemperatur liegen.
Man sollte sich die Zeit nehmen und eine Simulation schreiben.
es gibt sehr viele verschiedene verfahren wie man Adaptive Regler
realisiert. im simpelsten fall PID wird die strecke durch ein PTn model
approximiert und dadurch die parameter automatisch bestimmt und im
betrieb angepasst. zB "least square method"
Der adaptive Regler ist das Stiefkind der theorielastigen
Regelungstechniker und soll in der Regel ueberdecken, dass man weder
eine Ahnung vom System hat, noch eine Ahnung haben will. Der adaptive
Regler soll einfach mal machen - so schwierig kann's ja nicht sein -
Genauso wird der PID Regler verwendet wenn man weder eine Ahnung vom
System hat, noch eine Ahnung von Regelungstechnik hat. Der PID soll
natuerlich auch bei nichtlinearen Systemen optimal performen. Das hat
Grenzen.
Was ich damit sagen will ... falls man eine Ahnung von Regelungstechnik
hat, sollte man vielleicht mal eine Messung machen. Es kann sogar recht
spannend sein.
O.. oha Jetzt ! schrieb:> Der adaptive Regler ist das Stiefkind der theorielastigen> Regelungstechniker und soll in der Regel ueberdecken, dass man weder> eine Ahnung vom System hat, noch eine Ahnung haben will.
Hat da jemand die Wut auf die Reglungstechniker oder ist gar wegen
Regelungstechnik aus dem Studium geflogen? Tsstsstss....
Autor: Andi D. (xaos) schrieb:> es gibt sehr viele verschiedene verfahren wie man Adaptive Regler> realisiert. im simpelsten fall PID wird die strecke durch ein PTn model> approximiert und dadurch die parameter automatisch bestimmt und im> betrieb angepasst. zB "least square method"
Wie kann ich das machen?
(Mein wichtigster Randparameter ist: niemals Überschwingen!)
Donald Duck schrieb:> O.. oha Jetzt ! schrieb:>> Der adaptive Regler ist das Stiefkind der theorielastigen>> Regelungstechniker und soll in der Regel ueberdecken, dass man weder>> eine Ahnung vom System hat, noch eine Ahnung haben will.>> Hat da jemand die Wut auf die Reglungstechniker oder ist gar wegen> Regelungstechnik aus dem Studium geflogen? Tsstsstss....
Mag sein, dass der erste Satz ein wenig missverständlich war. Aber man
muss schon sehr begriffsstutzig sein, wenn man hackys Ausführungen so
falsch versteht...
>> es gibt sehr viele verschiedene verfahren wie man Adaptive Regler>> realisiert. im simpelsten fall PID wird die strecke durch ein PTn model>> approximiert und dadurch die parameter automatisch bestimmt und im>> betrieb angepasst. zB "least square method">Wie kann ich das machen?>(Mein wichtigster Randparameter ist: niemals Überschwingen!)
Temperaturregler ... was fuer eine Temperatur, was fuer eine Strecke,
Medium ? Was ist die Funktionalitaet des Systemes ? Gibt es
Stoergroessen ? Nichtlinearitaeten? Zeitabhaengigkeiten ? Was fuer ein
Stellglied ? Wo wird wie gemessen ?
Ich bin auch seit ein paar Wochen an einem Temperaturregler. Ein Gas mit
ein paar Hundert Grad, kann aber da wo ich sollte nicht messen, sondern
raeumlich spaeter. Dafuer lass ich eine Simulation mitlaufen, und nehm
den spaeteren Messpunkt. Das nennt sich dann Beobachter. Die Zeit geht
drauf um das Modell anzupassen. Erst muss die Diskrepanz zwischen
Messung und Simulation charakterisiert werden, dann kann man das Modell
verfeinern, dann durch eine Messung die Parameter bestimmen, und testen.
Und am Schluss sollte der Benutzer mit einer minimalen Anzahl von
Paramtern in Beruehrung kommen.
Man kann manuell einen kleinen Sprung aufschalten und dann die
Sprungantwort messen. Hiernach hofft man, dass sich die Strecke in
einige typische Modelle vereinfachen lässt, z.B. P-T1 oder P-T2
aperiodisch oder bei Schaltnetzteilen mit LC Filter auch P-T2
periodisch. Oder auch integrierend etc. Thermische Prozesse sind fast
immer mit aperiodischem P-T2 annäherbar.
Anhand der Sprungantwort und dem Modell erfasst man dann die relevanten
Parameter wie stationäre Verstärkung, Zeitkonstanten etc. Hieraus
rechnet man die Reglkerparameter aus. Es kann lästig sein, diese
Parameter zu erfassen, wenn die Strecke langsam ist oder sich mit der
Zeit ändert (Zeitvarianz).
Bekannte Einflussparameter wie z.B. Netzspannung auf Heizleistung oder
strömende Medien sollte man rechnerisch kompensieren, so dass sie der
Regler nicht sieht.
Nichtlinearitäten wie quadratische Zusammenhänge Spannung zu Leistung
oder krumme Kennlinien der Sensorik kann man mit interpolierten Tabellen
kompensieren. Der Regler kriegt dann nichts mit und regelt linear.
Wenn sich eien Strecke stark ändert, nimmt man die Parameter an
verschiedenen Arbeitspunkten auf und hinterlkegt die Reglerparameter als
interpolierten Parametersatz.
Diese Verfahren kann man automatisieren, indem man einen Algorithmus für
Autotuning implementiert. Dies erspart aber nicht die vorgherige
Abschätzung des groben Streckenmodelle. Man kann z.B. stationäre
Verstärkung und Zeitkonstante vom P-T1 im Autotune messen und dann im
Controller per Autotune die Parameter rechnen lassen - die Gefahr ist
aber, dass sich die Strecke ändert und das System dann schwingt.
Will man nicht den klassischen, kontinuierlichen Regler anwenden, so
bleiben Alternativen diskreter Regler mit Auslegung über
Z-Transformation. Z.B. kann mnan auch hier einen Sprung aufschalten, die
diskrete Streckenantwort messen und dann z.B. einen Deadbeatregler
entwerfen. Es kommt auf die Applikation an, welches Verfahren letztlich
einfach zum Erfolg führt. Mit Begrenzung der Parametergrenzen sollte man
aber die Stabilität sicherstellen, wenn das Autotune fehlschlägt.