Hallo, es geht um Folgendes: Es geht um ein mechatronisches System, das auf einer Ebene und Gerade von A nach B fährt und positionieren muss. Es wird dabei einer Trajektorie nachgefahren, die u.a auch durch Eingabe einer maximalen Geschwindigkeit im Voraus berechnet wird. Das Übertragungsverhalten zwischen Motorspannung und gemessener Position ist nichtlinear. Ich habe den Plan, bei mehreren Ist-Geschwindigkeiten einzelne Linearisierungspunkte festzulegen und die Parameter eines existierenden PID-Reglers entsprechend zu adaptieren und interpolieren. Mir ist nicht ganz klar, wie ich bei meinen einzelnen Geschwindigkeitsstufen am Besten mit Testsignalen arbeiten soll. Bisher habe ich es so gemacht, dass ich von einem verzögerten Integralglied ausgegangen bin und den Positionsverlauf einzelner Spannungssprünge aufgenommen habe. Dabei ist z.B. bei einem Sprung von 0 auf 5 V eine Übertragungsfunktion herausgekommen und bei einem Sprung von 0 auf 10 V eine andere, was Grundlage für die Adaption ist... Allerdings habe ich ja hier nur eine Adaption der Stellgröße und nicht der Geschwindigkeit... wie löse ich das am Besten? Und könnte man evtl. mit einer Kaskadenregelung direkt auf die Adaption verzichten?
kunherr schrieb: > Hallo, es geht um Folgendes: > > Es geht um ein mechatronisches System, das auf einer Ebene und Gerade > von A nach B fährt und positionieren muss. Es wird dabei einer > Trajektorie nachgefahren, die u.a auch durch Eingabe einer maximalen > Geschwindigkeit im Voraus berechnet wird. Das Übertragungsverhalten > zwischen Motorspannung und gemessener Position ist nichtlinear. Ok du hast eine DGL die nicht linear ist. Das halte ich erstmal für nicht so schlimm. Die Frage ist, wie sieht deine Strecke für den du den Regeler auslegen willst aus? > Ich habe den Plan, bei mehreren Ist-Geschwindigkeiten einzelne > Linearisierungspunkte festzulegen und die Parameter eines existierenden > PID-Reglers entsprechend zu adaptieren und interpolieren. Oft hat man einen Kaskadenregelkreis bei dem nach der Positionsregelung, die unterlagerte Geschwindigkeit und dann die Stromregelung kommt. Was hast du denn noch außer einem Motor? Für mich ist die Geschwindigkeit erstmal nur proportional der Spannung und wird letztlich von der Dynamik bestimmt. > Mir ist nicht ganz klar, wie ich bei meinen einzelnen > Geschwindigkeitsstufen am Besten mit Testsignalen arbeiten soll. Bisher > habe ich es so gemacht, dass ich von einem verzögerten Integralglied > ausgegangen bin und den Positionsverlauf einzelner Spannungssprünge > aufgenommen habe. Dabei ist z.B. bei einem Sprung von 0 auf 5 V eine > Übertragungsfunktion herausgekommen und bei einem Sprung von 0 auf 10 V > eine andere, was Grundlage für die Adaption ist... Allerdings habe ich > ja hier nur eine Adaption der Stellgröße und nicht der > Geschwindigkeit... wie löse ich das am Besten? > > Und könnte man evtl. mit einer Kaskadenregelung direkt auf die Adaption > verzichten? Ich hätte mir erstmal eine Skizze der Strecke gemacht und anaysiert, wie ich die Nichtlinearitäten behandele bzw. wie diese Aussehen und dann ein hier für geeignetes Regelungskonzept entworfen.
naja ich schrieb ja, dass die Strecken einem verzögerten Integralglied entsprechen (geregelt wird nur die Position)..genauer gesagt einem IT2-Glied. Da aber die Sprungantwort zur Identifizierung dieses IT2-Glieds von der Sprunghöhe abhängig ist (0 auf 5V liefert anderes Ergebnis als z.B. 0 auf 10V), ist das mein Nachweis für Nichtlinearität. Die Struktur des IT2-Glieds kann aber beibehalten werden, lediglich Verstärkung und Zeitkonstanten variieren.. somit also die Frage, wie die Adaption am Cleversten gestalten
und natürlich meine ich die resultierende normierte Sprungantwort auf den EIínheitssprung.. die ist nicht einheitlich
Was ich zB noch gerne verwende bei nichtlinearen Systemen ist eine Linearisierung als Teil der Loesung. Ich kann ja zB bei einem PID, wo ich am Ende vor dem Stellglied Out = P + I + D addieren auch noch eine nichtlineare Stellgroesse bringen. also Out = P + I + D + NL. Und diese nichtlineare Stellgroesse ist zB mit einem Modell simulierbar, oder wird iterativ gemessen. Und hat natuerlich natuerlich nicht nur den Regelfehler als Eingang, sondern alles was hilft. zB bei einer Heizung weiss ich, dass die benoetigte Leistung irgendwas proportional zur Differenz zur Umgebungstemperatur ist. Also nehme ich die Differenz zur Umgebungstemperatur. Dann bin ich schon mal besser wie ohne diesen Term. Durch diesen Term entlaste ich den Integrator des PID, welcher erst mal dorthin integrieren muss.
Du möchtest also erstmal ne Parameteridentifikation machen und dann den Regler auslegen? Das sind ja 2 Paar Schuhe... Ich würde aber behaupten, dass du bei einem I Anteil in der Strecke, im Regler gar keinen brauchst
ja, natürlich muss ich hier die Strecke genau identifizieren, um eine passende Adaption meines Reglers einzustellen. Meine große Frage ist nach wie vor, wie ich die Adaption am Cleversten gestalte, wenn die Parameter der Strecke von der Stellgröße abhängen. (Eine Große Spannung evtl. einem gewissen Geschwindigkeitslevel zuornen?) Bei der Proportional-Verstärkung könnte man sogar grob eine lineare Abnahme mit steigender Spannung machen, bei den Zeitkonstanten kann man das aber nicht so einfach sagen.. Alles betrifft erst mal die Streckenparameter, wobei ja die Auslegung des Reglers direkt daraus resultiert
kunherr schrieb: > Alles betrifft erst mal die > Streckenparameter, Wieso die Streckenparameter? Bei der Strecke nutzt man "einfach" die nichtlineare DGL anstelle vieler linearer DGL für verschiedene Eingangsgrößen. Für den Regler kann man durch die Linearisierungen in unterschiedlichen Arbeitspunkten die Parameter für den Regler bestimmen. In vielen Fällen ist Gain Scheduling ausreichend.
okay ich muss noch dazu erwähnen, dass ich meine Regelstrecken experimentell ermittele.. also u.a. Faustformelverfahren um aus einer Sprungantwort die Parameter eines IT2-Glieds zu ermitteln... eine theoretisch ermittelte Differentialgleichung liegt mir also überhaupt nicht vor
bisher wurde hier leider alles nur intuitiv eingestellt ohne ein Modell zu verwenden, wie es in der Praxis wohl öfters der Fall sein soll^^
Ich wüßte nicht, wie man ein vernünftiges Parameter Scheduling ohne vernünftiges Streckenmodell hinbekäme, aber das muss nicht heißen, dass es nicht geht.
naja mein Ansatz ist ja bei mehreren Geschwindigkeitsniveaus diese Sprungantworten zu verwenden... das ist doch im Prinzip gar nichts anderes, als würde man ein Modell in verschiedenen Arbeitspunkten linearisieren. Der Unterschied ist nur, dass meine linearen Teilmodelle experimentell ermittelt werden
und das ist ja der entscheidende Knackpunkt und Augsngsfrage: Kann ich einfach annehmen, dass wenn das System schneller und weiter fahren muss, dass ich dann auch von der Sprungantwort mit größerem Spannungssprung ausgehe
Walter T. schrieb: > Ich wüßte nicht, wie man ein vernünftiges Parameter Scheduling > ohne vernünftiges Streckenmodell hinbekäme, aber das muss nicht heißen, > dass es nicht geht. Eine Skizze würde mir reichen, um zu verstehen was er möchte. Wenn es tatsächlich nur um die Regelung eines IQuadrat Gliedes geht, sehe ich hier keine Probleme
kunherr schrieb: > naja mein Ansatz ist ja bei mehreren Geschwindigkeitsniveaus diese > Sprungantworten zu verwenden... das ist doch im Prinzip gar nichts > anderes, als würde man ein Modell in verschiedenen Arbeitspunkten > linearisieren. Der Unterschied ist nur, dass meine linearen Teilmodelle > experimentell ermittelt werden Warum Geschwindigkeit? Du misst eine Position und willst eine selbige regeln. Natürlich hast du ne Sättigung, aber die könntest du z.B. mit harmonischer Balance annähern...
es handelt sich um ein Integralglied mit zeitlicher Verzögerung 2. Ordnung (IT2). Ich habe aber festgestellt, dass es keine einheitliche Sprungantwort für verschiedene Sprunghöhen der Stellgrößen nach Normierung gibt (Sprungantwort bei Stellgrößensprung 0 auf 1 V hat andere Streckenparameter als 0 auf 5 V nach Normierung auf 1).. Da das Ding einer Solltrajektorie nachfährt, bei der ganz klar die Geschwindihgkeit vom Endnutzer eingestellt werden kann, möchte ich somit eine Näherung machen: Wenn das Ding schnell fahren soll, dann verwende ich auch das Streckenmodell bei dem größeren Spannungssprung, da mehr Spannung benötigt wird! Hoffe, dass es jetzt klarer geworden ist, was ich meine
Hier ist eben eine sehr hohe Positioniergenauigkeit erforderlich, es geht um Genauigkeiten bis zu 150 nm) und die Geräte werden sehr schnell laut, wenn man sowohl für Ruheregelung als auch Fahrtregelung nach Trajektorie die selben Regelparameter verwendet
kunherr schrieb: > es handelt sich um ein Integralglied mit zeitlicher Verzögerung 2. > Ordnung (IT2). Ich habe aber festgestellt, dass es keine einheitliche > Sprungantwort für verschiedene Sprunghöhen der Stellgrößen nach > Normierung gibt (Sprungantwort bei Stellgrößensprung 0 auf 1 V hat > andere Streckenparameter als 0 auf 5 V nach Normierung auf 1).. Da das > Ding einer Solltrajektorie nachfährt, bei der ganz klar die > Geschwindihgkeit vom Endnutzer eingestellt werden kann, möchte ich somit > eine Näherung machen: Wenn das Ding schnell fahren soll, dann verwende > ich auch das Streckenmodell bei dem größeren Spannungssprung, da mehr > Spannung benötigt wird! > > Hoffe, dass es jetzt klarer geworden ist, was ich meine Du willst also im Prinzip sowohl die Geschwindigkeit als auch die Position regeln?
Nein, will ich NOCH nicht ;) Aber bei der Trajektorie werden sehr viele Zwischenpositionen vorgegeben und je nach vorgegebener Geschwindigkeit ist das Positionsreglerverhalten ja auch anders... Der Positionsregler kann bei schnellen Fahrten einfach nicht die selben Parameter wie bei langsamen Fahrten haben
es wäre doch kein Problem zu sagen: Der Nutzer gibt nun eine Positionstrajektorie für eine schnelle Bewegung vor, also muss mein Regler nach dem Streckenmodell aus dem höheren Spannungssprung ausgelegt sein... und das ist doch genau das selbe, wie mehrere Linearisierungen in verschiedenen Arbeitspunkten
kunherr schrieb: >Der Positionsregler kann bei schnellen Fahrten einfach nicht die selben >Parameter wie bei langsamen Fahrten haben Da hab ich ein Problem Dir zu folgen. Die Regelung für die Position gibt eine Stellgröße aus, die beim Motor eine Geschwindigkeit hervorruft. Was soll dann schnelles und langsames Fahren bedeuten? Willst Du die Stellgröße begrenzen, um das langsame Fahren zu erreichen? Oder was macht diese Geschwindigkeitsvorgabe?
Es wird langsam ein wenig schwierig und ich gebe es hier auch bald auf, weil es nicht weiterbringt: Der Positionsregler fährt einem SollwertVERLAUF nach und der Regler muss die kleinen Zwischenpositionen auf diesem langen Weg ALLEN nachfolgen können. Dieser Verlauf hat eine feste zeitliche Vorgabe und wenn der Regler irgendwann nicht mehr nachkommt, schaltet das System mit einem Fehler ab... also bestimmt die Geschwindigkeit nicht der Regler, sondern die Sollvorgabe, die nach gewünschter Geschwindigkeit und Zielpositionsvorgabe des NUTZERS berechnet wird
Ist die Positionierung gefahrlos möglich, oder hängt da Risiko dran? Im ersten Fall wäre es tatsächlich einen Versuch Wert, für verschiedene Einheitssprünge Parameter zu identifizieren, den Regler für einen mittlere Verstärkung auszulegen und ansonsten die Verstärkung an den Arbeitspunkt anzupassen (das klassische Gain Scheduling, das ich schon oben erwähnte). Ich will nicht behaupten, dass das klappen muss. Ich habe "aufwendigere" Regler noch nie ohne Streckenmodell entworfen. Aber einen Versuch ist es wert, wenn keine anderen Punkte dagegensprechen. (Ich selbst habe bei Trajektorienregelung auch sehr angenehme Erfahrung mit Sollgrößenaufschaltung gemacht, d.h. getrennten D-Anteil für Sollgröße und Rückführung. Das funktioniert aber nur gut, wenn der Zusammenhang zwischen Geschwindigkeit und Stellgröße analytisch bekannt ist.)
:
Bearbeitet durch User
eine Gefahr geht nicht wirklich aus, die Systeme können halt unangenehm laut werden und Schwingungen bis zu 4 kHz erreichen. Es sind mehrere Abschaltmechanismen realisiert (Schleppfehler, max. Motorstrom über Zeit, max. Leistung) okay danke für die Antwort.
Wie gesagt: Skizze hilft. Normal hat man bei sowas ne Kaskade. Du willst aber aktiv über eine Vorsteuerung in den dann unterlagerten RK eingreifen. Stellgrößenbegrenzungen hast du immer. Warum nicht einfach immer mit der max möglichen Geschwindigkeit fahren? Dein Positionsregler würde dann den Sollwert für die Geschwindigkeit vorgeben.
Die ganzen Theorien mit Impulsantwort, Schrittantwort, TP1, usw kann man bei einem nichtlinearen System vergessen. Denn die basieren auf linearen Modellen. Lineares Modell bedeutet hier, der doppelte Eingang hat den doppelten Ausgang zu Folge. Genauso kann man Frequenzgaenge vergessen, denn die basieren auch auf linearen Modellen. Lineares Modell bedeutet hier : ein Signal laesst sich aus Fourienkomponenten zusammenbauen. Das geht bei nichtlinearen Systemen nicht mehr.
Ulf schrieb: > Warum nicht einfach > immer mit der max möglichen Geschwindigkeit fahren? Ich wiederhole noch mal, dass die Trajektorie die Geschwindigkeit vorgibt und das soll auch mit einem neuen Regler so sein. Der Regler muss einfach dieser Trajektorie so schnell wie möglich folgen können. Oder meinst du das mit maximaler Geschwindigkeit? Wenn der Endnutzer nämlich ein Geschwindigkeitsprofil vorgibt, dann wird ein möglichst ruckarmes Positionsverlaufsprofil berechnet, das dann geregelt nachgefahren wird
Pandur S. schrieb: > Die ganzen Theorien mit Impulsantwort, Schrittantwort, TP1, usw kann man > bei einem nichtlinearen System vergessen. Denn die basieren auf linearen > Modellen. Naja aber es gibt viele wissenschaftliuche Methoden, die abschnittsweise lineare Annäherungen machen.. und genau das möchte ich hier tun
kunherr schrieb: > Ulf schrieb: > Warum nicht einfach > immer mit der max möglichen Geschwindigkeit fahren? > > Ich wiederhole noch mal, dass die Trajektorie die Geschwindigkeit > vorgibt und das soll auch mit einem neuen Regler so sein. Der Regler > muss einfach dieser Trajektorie so schnell wie möglich folgen können. > Oder meinst du das mit maximaler Geschwindigkeit? > Wenn der Endnutzer nämlich ein Geschwindigkeitsprofil vorgibt, dann wird > ein möglichst ruckarmes Positionsverlaufsprofil berechnet, das dann > geregelt nachgefahren wird Ich empfehle für den Fall ne Sliding Mode Regelung. Die ist robust gegen deine Parameterschwankungen und auch für nichtlineare Strecken geeignet.
die Methode mit dem Sliding Mode finde ich interessant, wobei ich gelesen habe, dass die mehr für Zustandsregler geeignet ist und wohl häufiger für die Stromregelung bei Servoantrieben genutzt wird.
kunherr schrieb: > die Methode mit dem Sliding Mode finde ich interessant, wobei ich > gelesen habe, dass die mehr für Zustandsregler geeignet ist und wohl > häufiger für die Stromregelung bei Servoantrieben genutzt wird. Ich kenne sie als schaltende Regelung, um mit möglichst wenigen Umschaltung auf die Zieltrajektorie zu kommen. Das ist danb der sogennante Gleitzustand
Beitrag #6435010 wurde von einem Moderator gelöscht.
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.