Forum: Digitale Signalverarbeitung / DSP / Machine Learning Welche geeigneteste Regelstruktur bzw. Modellstruktur (Positioniersystem)


von halDK (Gast)


Lesenswert?

Hallo,

als Absolvent der Regelungstechnik stehe ich nun vor meiner ersten 
Aufgabe und möchte mich gerne mal mit Fachkundigen austauschen, wie ihr 
die Situation beurteilt.

Ausgangssituation:
Produkte sind verschiedene Positionersysteme (im Prinzip bewegte Massen 
auf X-und Y-Achse) betrieben mit hauseigenen 2-Phasen-Linearmotoren, 
hauseigenen inkrementellen AMR-Messsystemen und hauseigener Steuerung. 
Dokumente sind generell kaum vorhanden..um die Regelung hatte sich vor 
Jahren mal jemand beschäftigt, der schon lange nicht mehr dabei ist. 
Alle Parametrierungen erfolgen rein auf Basis von Erfahrungswerten..

Grobe Anforderungen an die Regelung (Durchschnittsmodell):
max. Geschwindigkeiten ca. 1 m/s, Beschleunigung 15 m/s^2, max. 
zulässiges Peak to Peak-Rauschen ca. 800 nm, maximale Einschwingzeit ca. 
2s

Zu den Motoren:

2-Phasen-Linearmotoren. Sie werden so angesteuert, dass immer maximale 
Kraftumsetzung erfolgt (Somit kann nur Amplitude gestellt werden und 
Phasenwinkel ist immer +- 90 Grad). Der Kommutierungswinkel-Offset wird 
über ein Testverfahren automatisiert ermittelt.

Zum Messsystem:

AMR-Messsystem mit magnetisch beschriebenen Masstäben. Auflösung 5 nm

Steuerung: Ausgangsspannung 2x24 V, Abtastfrequenz: 4 kHz


Vorhandene Regelung und Vorsteuerung:

Derzeit wird eine Solltrakjektorie draufgegeben (klassisches 
trapezförmiges Geschwindigkeitsprofil, wahlweise auch Algorithmus mit 
reduziertem Ruck vorhanden, aber KEINE modellbasierte 
Trajektorieplanung). Somit stehen zu jedem Abtastschritt theoretisch 
aktuelle Sollposition, Geschwindigkeit-und Beschleunigung zur Verfügung. 
Geregelt wird aber nur die Differenz zwischen Soll-und Ist-Position und 
das erfolgt über einen einfachen PID-Regler, dessen Parameter nach 
Erfahrungswerten eingestellt werden.

Für Geschwindigkeit und Beschleunigung existiert allerdings eine 
Vorsteuerung, dessen Parameter über Testverfahren ermittelt werden und 
je nach aktuellem Sollwert von Geschwindigkeit und Beschleunigung dann 
im Betrieb linear verändert werden. Also eine adaptive Vorsteuerung. 
(Hat sich ein Physiker ausgedacht, der nicht mehr dabei ist)

Der Regler selbst hat auch adaptive Einstellmöglichkeiten. Für jeden 
Anteil P,I und D können Ruhe-und Bewegungsparameter definiert werden. 
Bis zu einer einstellbaren Grenzgeschwindigkeit erfolgt zwischen diesen 
Werten ebenfalls eine lineare Veränderung und ab der 
Grenzgeschwindigkeit bleiben sie konstant. Das wird im Moment aber 
praktisch nur als Schalter benutzt, da die Grenzgeschwindigkeit einen 
sehr kleinen Wert hat (nach den Erfahrungswerten)...

Problem ist, dass der Regler bisher überhaupt nicht robust gegenüber 
kleinen Änderungen ist. Sogar kleine Modellabweichungen bei Geräten 
desselben Typs bewirken ein anderes Bewegungsverhalten.


Erstes Ziel wird sein, die vorhandene Struktur systematisch zu nutzen 
und modellbasiert und nicht rein empirisch zu parametrieren. Das 
langfristige Ziel wird eine neue Reglerstruktur sein. Ich dachte da an 
eine Zustandsreglung von mindestens den Zuständen Position und 
Geschwindigkeit. Die gegebene Solltrajektorie ist ja im Prinzip schon 
sehr gut um einen scharfen Regler für Störausreglungen zu generieren. 
(Später evtl. ja noch eine LQ-Folgetrajektorie denkbar, wenn ein Modell 
steht) Von der vorhandenen Vorsteuerung erhoffe ich mir ebenfalls, dass 
sie mir das Leben vereinfacht und ich sie weiter nutzen kann...

Bei der Vorgehensweise der Modellbildung bin ich mir aber sehr unsicher, 
da ja Linearmotoren bekannt für ihre Kraftwelligkeit und somit 
Nichtlinearitäten sind. Wenn ich das resultierende System also 
linearisiere, um welche Ruhelage(n) dann? Im Prinzip kann jede Position 
angefahren werden und eine Ruhelage sein.. auf der anderen Seite ist die 
Auslenkung ja nur ganz klein, wenn man die Abweichung zum Sollwert 
regeln will... ist so etwas wie Gain-Scheduling sinnvoll?
Oder könnte ich evtl. von Anfang an von einem linearen Modell ausgehen? 
Wären experimentelle Modellbildungen evtl. auch sinnvoll?

von halDK (Gast)


Lesenswert?

halDK schrieb:
> Sogar kleine Modellabweichungen bei Geräten
> desselben Typs bewirken ein anderes Bewegungsverhalten.

Ich meinte hier Materialabweichungen... ein Modell existiert ja leider 
nicht ;)

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Was wird mit 4kHz abgetastet, die Maßstäbe? Wie ist die Reglerfrequenz? 
Du schreibst der Regler, gibt es nur einen, keine Kaskadenregelung für 
Strom, Geschwindigkeit und Position?

Mit freundlichen Grüßen
Thorsten Ostermann

von halDK (Gast)


Lesenswert?

Es gibt tatsächlich nur einen Regler und der regelt lediglich die 
Positionsabweichung, ja...

4 kHz ist der Maschinenzyklus, Messsystemauslesung und Regelschritt 
erfolgen innerhalb dessen. Ich muss allerdings auch noch in den Code 
reinschauen, hierzu kann ich noch keine ganz präzisen Angaben machen... 
mir geht es hier um den groben Plan. Ich habe Angst, dass ich in eine 
völlig falsche Richtung laufe

von halDK (Gast)


Lesenswert?

Kleines Update: Ich habe mittlerweile an einem Testobjekt die 
Einstellregeln von Ziegler/Nichols angewendet. Also P-Anteil bis zur 
kritischen Verstärkung erhöht und Periode der Dauerschwingung gemessen. 
Es hat erfreulich gut funktioniert und das Objekt bestand auch die 
abschließenden Testdurchläufe mit verschiedenen Geschwindigkeiten und 
Beschleunigungen.
Wäre halt auch die Frage, ob man so etwas erst mal automatisiert an 
jedem Produkt durchführt und evtl. über den gesamten Verfahrweg 
Mittelwerte bildet...

von Weg mit dem Troll ! Aber subito (Gast)


Lesenswert?

Das Ganze soll nun als Produkt in Stueckzahlen raus ? Nun solange du das 
Gefuehl hast der Regler mache das nun alles Richtig und auch in Zukunft, 
wenn etwas Staub drauf ist, es die Umgebung etwas ablagert, ist doch 
gut.

Falls nicht, versuch das system zu verschlechtern. zB mit Reibung.

Kann eine verbesserte Version der Regelung nachgeliefert werden ?

von ManuelR (Gast)


Lesenswert?

die Geräte werden in nicht ganz so großen Stückzahlen gefertigt und 
verhalten sich wie gesagt sehr individuell. Zur Zeit kann der Kunde über 
die Software die Parameter selbst beeinflussen, ja.
Wenn die Umstrukturierung auf eine Zustandsregelung erfolgt, wird das 
wohl nicht mehr so einfach möglich sein.. also irgendwelche 
Matrizeneinträge nach Gefühl umzustellen... allerdings werden durch die 
aktuelle Regelung Geschwindigkeits-und Beschleunigungs-Solwerte sehr 
schlecht eingehalten

von Udo S. (urschmitt)


Lesenswert?

ManuelR schrieb:
> die Geräte werden in nicht ganz so großen Stückzahlen gefertigt und
> verhalten sich wie gesagt sehr individuell.

Bist du der TO?
Dann halte dich doch bitte an die Regel ein Nickname pro Thread.

von halDK (Gast)


Lesenswert?

Ja, Verzeihung! Ich habe von einem anderen Rechner geschrieben und da 
war noch ein anderer Nick vorgemerkt^^

von halDK (Gast)


Lesenswert?

Bei den größeren Systemen ist leider bei Anwendung der Einstellregeln 
von Ziegler-Nichols das Problem, dass der kritische Punkt nicht ganz so 
gut ermittelt werden kann wie bei den kleinen. Also die Großen werden 
ziemlich schnell laut und es lösen Motorschutzabschaltungen aus. Evtl. 
könnte man die Schleppfehlertoleranz erhöhen...

Ich weiß auch nicht, in welcher Größenordnung es ideal wäre, das 
Experiment zu unterbrechen und die Schwingung anzunehmen... denn das 
Messsystem selbst hat ja ein hochfrequentes Grundrauschen. Wo sollte man 
da die Grenze ziehen?

von Pandur S. (jetztnicht)


Lesenswert?

Ein Zustandsregler ist nicht so verschieden zu einem PID. Einfach etwas 
verallgemeindert, aufgebohrt. Die Matrixglieder sind einfach 
Koeffizienten welcher Sensor an welche Groesse koppelt. Mit hinreichend 
Nullen in die Matrix eingefuellt bist du wieder beim PID.

von halDK (Gast)


Lesenswert?

ja, wobei man eine Zustandsregelung z.B. noch mit der LQR-Methode 
optimieren kann, mehr Zustände als messbare Größen definieren und diese 
beobachten kann und und...etc.
Ich möchte schon so viele Dinge wie möglich probieren um hinterher auch 
Erfahrungen sammeln und nachweisen zu können^^

von Maxe (Gast)


Lesenswert?

Joggel E. schrieb:
> Mit hinreichend
> Nullen in die Matrix eingefuellt bist du wieder beim PID.
Genau.


halDK schrieb:
> Ich dachte da an
> eine Zustandsreglung von mindestens den Zuständen Position und
> Geschwindigkeit.
Man wird die Geschwindigkeit durch Ableitung (Differentiation) aus der 
gemessenen Position bestimmen, dann bist du also genau bei einem 
PD-Regler.

Ein Zustandsregler beruecksichtigt allerdings per Definition alle 
Systemzustaende und nicht nur die, die gut zu messen sind. Der 
Strom/Beschleunigung muss sicher mit rein.

Ich wuerde es mit einer Kaskade versuchen und die Parameter per 
Polvorgabe bestimmen. Ein Modell braucht man dazu, ist aber beim Motor 
bekannt, bei der Mechanik kommts halt darauf an..


> Bei der Vorgehensweise der Modellbildung bin ich mir aber sehr unsicher,
> da ja Linearmotoren bekannt für ihre Kraftwelligkeit und somit
> Nichtlinearitäten sind.
Da wuerde ich mir keinen Kopf machen, erstmal den Mittelwert der Kraft 
annehmen. Wenns Probleme gibt, kann man immernoch die Trajektorie 
aufnehmen und eine phasenabhaengige Stromkorrektur einfuegen. Die muss 
dann halt in Echtzeit mitlaufen, dein Regler aber ja auch.

von noblao (Gast)


Lesenswert?

Ich würde für die Positionsregelung erst mal pro System eine 
Sprungantwort aufnehmen und daraus die Werte eines IT1-Glieds für die 
Strecke ermitteln. Das sollte eine gute Annäherung sein

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
Noch kein Account? Hier anmelden.