Hallo Leute, ich hoffe, dass mir jemand helfen könnte und bedanke mich schon im Voraus. Für mein Problem solle ich ein adptiven Pi-Regler programmieren, der Anfange habe ich schon gemacht und zwar der PI-Regler. es sieht jetzt bei mit so aus: //------------------------------------------------- int x,w, y, diff, eDiff; int kp = 10; int Ki = 40; int Ta = 1; diff = w-x; eDiff = eDiff + diff; if (eDiff < -0xFFF) {eDiff = 0x000;} if (eDiff > 0xFFF) {eDiff = 0xFFF;} y = Kp*e + ((Ki*Ta*esum)/100); //--------------------------------------------------------- jetzt meine frage: wie kann ich diesen Regler erweiteren, dass es zu einem adptiven (self tuning) wird? Also der Regler muss sein I-Anteil selber anpassen können. Danke
Anfänger93 schrieb: > selber anpassen können. Um was genau zu erreichen? Findest du keine Literatur?
Servus, adaptive Regler laut Unbehauen III nix anderes als heiße Theorie. Eine sehr gute Regelgüte erreicht man mit Aström Anti-Windup Regler. Dein Regler ist vollkommen unvollständig! Deshalb keinen weiteren Kommentar dazu.
> Also der Regler muss sein I-Anteil selber anpassen können.
Was hast du denn bisher schon erreicht und was ist nicht gut daran.
Anfänger93 schrieb: > if (eDiff < -0xFFF) {eDiff = 0x000;} > if (eDiff > 0xFFF) {eDiff = 0xFFF;} > y = Kp*e + ((Ki*Ta*esum)/100); Bei Codeteilen solltest du zumindest sicher stellen, dass der Compiler das frisst. Wie groß ist dein int Datentyp. Du solltest dir ein bisschen Gedanken über Wertebereiche machen, wenn du in int zu Gange bist. Die Schreibweise "-0xFFF" mag zwar syntaktisch richtig sein, nur führt sie eher zur Verwirrung.
Kai schrieb: > Um was genau zu erreichen? Es geht darum eine veränderbare Rollendurchmesser (in einer Wickler-Applikation) zu kompensieren.
aSma>> schrieb: > Dein Regler ist vollkommen unvollständig! Wieso ist es nicht volkommen? was fehlt noch?
длинний зелёний тролль schrieb: > Was hast du denn bisher schon erreicht und was ist nicht gut daran. Bis zu einem bestimmten Durchmesser funktioniert diese Reglung sehr gut, aber wenn das Durchmesser noch größer wird, fängt extrem zu schwingen, deswegen ist meine Idee, den I-Anteil veränderbar einzusetzen, also Auto Tuning so zu sagen.
Beim Ändern des I-Anteils Ki darf sich die Regelgrösse nicht sofort mit ändern. Denk mal ein bisschen nach, ist nicht so schwer zu implementieren.
Das Problem ist, dass unter "adaptive control" gut ein Dutzend verschiedene Methoden fallen, die von "gain scheduling" bis "machine learning" reichen und in jener Reihenfolge auch entsprechend in der Komplexität explodieren. Den "adaptiven Regler" perse gibt es so also eigentlich nicht. Was für kleine µC in der Regel am zielführendsten ist, ist erstmal ein simples "gain scheduling" auf Basis irgendwelcher selbst erstellten Parameter zu erstellen. Etwa "I steigt mit dem Quadrat des Rollendurchmessers"... oder was auch immer für deine Applikation als passend erscheind. Führt das nicht zum Erfolg, dann kann man sich immer noch überlegen ein Referenzmodell der Regelstrecke zu erstellen. Entweder im voraus, oder vom µC selbst via Messungen off- oder online. Solche modellbasierten Regler ermöglichen dann meist auch echte "adaptive Regler", indem man das Verhalten des Modells mit dem des Reglers in ein Optimierungsproblem packt und abgleicht... das is dann aber schon sehr, ich sag mal fortgeschritten. ;)
Welcher Wert ist die Mess-/Eingangs-/Steuergröße und ist diese für die Anwendung korrekt ?
Hallo, zunächst, wo wird e und esum berechnet? Habe ich etwas übersehen? VG Walter
Anfänger93 schrieb: > Hallo Leute, > ich hoffe, dass mir jemand helfen könnte und bedanke mich schon im > Voraus. > > Für mein Problem solle ich ein adptiven Pi-Regler programmieren, Was zum Geier ist ein "adaptiver" PI Regler?
Stm M. schrieb: > Was zum Geier ist ein "adaptiver" PI Regler? Zur Laufzeit werden die Reglerparameter Kp und Ki angepasst.
Hallo, das Wörtchen "adaptiv" taucht seit undenklichen Zeiten immer mal in allen möglichen Verbindungen auf. Am Anfang meiner Berufslaufbahn war das schlicht ein PR-Argument. Adaptiver PI-Regler z.B. hört sich ja auch gewichtig an. Und suggeriert etwa so etwas wie automatisch, selbstständig...was würde man also in diesem Fall des TO erwarten. Einen PI-Regler, der sich selbst seine Regelaufgabe optimiert. Auch wenn es durchaus (überaus komplexe) Systeme gibt, die sowas können, so wird praktisch eher ein Parameter des Systems in simpelster Art und Weise umgeschaltet und nennt sich dann eben adaptiv. Bin kein Regeltechniker und kann dem TO deshalb nur raten, sich mit der Optimierung seines Regelkreises zu beschäftigen. Vielleicht ist ein PI-Regler ja z.B. gar nicht geeignet, um die gestellte Aufgabe zu lösen! Jedenfalls, bevor "adaptiv" gedacht wird, sollte das System erst mal stehen. Und dazu wird hier im Forum sicher kompetente Hilfe vorhanden sein. Gruß Rainer und gutes Gelingen!
Frueher hat "adaptiver Regler" bedeutet : Der Chefingenieur laesst auf die Pensionierung hin auslaufen und arbeitet jetz nur noch daran. Der Output wird Null sein, aber lassen wir ihn. Vieleicht brauchen wir ihn nochmals.
Seine Regelstrecke ändert sich. Daher wird ein Regler, der sich auf die Veränderung anpasst überlegen sein. Ist auch nichts kompliziertes. Der I Anteil schleppt Information von vergangenen Zeiten mit sich (deshalb heißt er auch so), man kann nicht einfach den Faktor Ki anpassen, damit würde der Anteil der vergangenen Zeit mit verstärkt. Also den alten Anteil so lassen und nur den neu dazugekommenen mit einem neuen KIneu dazu addieren.
Wenn die Regelung stabil ist, dann ist eSum * Ki der Ausgabewert. e = 0 -> e*Kp = 0 Wenn man den Ki ändert eSum = eSum / KiNeu * Ki Ki = KiNeu
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.