Forum: Mikrocontroller und Digitale Elektronik Positionsregelung eines Antriebs


von Mike Litoris (Gast)


Lesenswert?

Hallo zusammen,

ich habe einige Fragen zu einem - bis jetzt - rein theoretischen 
Problem.
Aufbau bzw. reale Anwendung habe ich nicht, das ist mir nur letztens so 
durch den Kopf geschwirrt...

Ich habe also eine Linearführung mit einem Schlitten mit einer 
unbekannten Masse.
Antrieb des Schlittens mit einem DC Motor.
Ein umlaufender Riemen verbindet Motor und Schlitten.
Der Motor ist zusätzlich mit einem Rotationsencoder auagestattet, sodass 
Geschwindigkeit, Position und Drehrichtung bekannt sind.

Der Schlitten soll dann moglichst schnell von einer Position zur anderen 
gefahren werden. Am besten ohne über das Ziel hinauszuschießen. Bei 
externer Krafteinwirkung soll dagegen gehalten werden.

Aus meiner Regelungstechnik Vorlesung hab ich ein bisschen Grundwissen, 
glaube aber nicht, dass diese Konzepte alleine ausreichen.


Grundsätzlich lässt sich das ja mit einem P-Regler der Position lösen. 
Ist aber langsam und schießt möglicherweise über das Ziel hinaus.

Im Prinzip soll der Motor voll beschleunigen und dann voll Bremsen, 
sodass er auf dem Punkt zum stehen kommt.

Eine klassische Beschleunigungs- und Bremsrampe geht auch nicht, Problem 
ist hierbei die unbekannte Masse...

Wie wird sowas gelöst?

Grüße!

von Karl H. (kbuchegg)


Lesenswert?

Was du gerade suchst, das ist der optimale Regeler, der ohne Anpassunf 
an die tatsächlichen Gegebenheiten unter allen Umständen immer perfekt 
arbeitet.

Den gibt es nun mal nicht.

Gewöhn dich daran, dass es nicht für alles perfekte 100% Lösungen gibt. 
Eigentlich gibt es für die meisten Dinge keine 100% perfekte Lösungen. 
Techniker wissen das. Nur die Menschen auf der Strasse denken immer, es 
gäbe für alles perfekte Lösungen und die Konzerne würden die nur 
unterdrücken. Technik ist praktisch immer ein Kompromiss in der einen 
oder anderen Art und Weise.


Man kann natürlich einen konservativ eingestellten Regler verwenden, der 
zwar (Hausnummer) 95% aller praktisch vorkommenden Problemstellungen 
zufriedenstellend behandeln kann, wenn auch mies. Die Alternative ist 
ein perfekt eingestellter Regler, der zwar nur 5% aller praktisch 
relevanten Problemstellungen behandeln kann, die aber perfekt.

Will man was dazwischen, das beste aus 2 Welten, dann kommst du nicht 
umhin, dem Benutzer die Regelparameter auf die konkrete Aufgabenstellung 
einstellen zu lassen. Ob das dann ein händisches Einstellen ist oder ob 
es sich um einen selbstlernenden Regler handelt, der mittels einiger 
Testläufe sich selbst gute Regelparameter ermittelt, ist dabei 
zweitrangig. Wichtig ist, dass es kein 'out of the box' perfektes System 
gibt. Irgendeine Form der Anpassung ist immer notwendig. Genau das meint 
man ja auch, wenn heutzutage von sogenannten 'intelligenten' Systemen 
die Rede ist. Intelligent ist da gar nichts dran. Das System hat einfach 
nur Verfahren und Algorithmen mitgekriegt, mit denen es seine 
Arbeitsparamter an die konkrete Aufgabenstellung anpassen kann.

: Bearbeitet durch User
von Seggelohr (Gast)


Lesenswert?

Mike Litoris schrieb:
> Eine klassische Beschleunigungs- und Bremsrampe geht auch nicht, Problem
> ist hierbei die unbekannte Masse...

Messe beim Beschleunigen die Anfahrrampe und berechne dann über eine 
vorher ermittelte Funktion den Punkt, an dem die Vollbremsung beginnt.

von m.n. (Gast)


Lesenswert?

Mike Litoris schrieb:
> Der Schlitten soll dann moglichst schnell von einer Position zur anderen
> gefahren werden. Am besten ohne über das Ziel hinauszuschießen. Bei
> externer Krafteinwirkung soll dagegen gehalten werden.

Was ist denn möglichst schnell?
Was ist denn eine externe Krafteinwirkung?

von Georg (Gast)


Lesenswert?

Mike Litoris schrieb:
> .. moglichst schnell
> ... ohne über das Ziel hinauszuschießen.

Das sind gegensätzliche Anforderungen an den Regler. Optimieren lässt 
sich das nur für ein bestimmtes Verhältnis von Antriebsmoment zu Masse, 
ändert sich das, so passiert das eine oder das andere. Reine Physik, da 
kann man nichts machen.

Man kann den Regler adaptiv machen, aber das bewirkt auch nur ein 
optimales Verhalten bei gleichbleibenden Verhältnissen, ändern sich die, 
muss sich der Regler erst wieder adaptieren.

Seggelohrs Vorschlag bedeutet, die Adaption während der Beschleunigung 
zu berechnen (praktisch wird dabei die Masse gemessen) und entsprechend 
zu bremsen. Ist eine gute Idee, kannst du probieren, aber dafür musst du 
zuerst mal für konstantes Drehmoment sorgen, sonst verläuft das Bremsen 
nicht spiegelbildlich zum Beschleunigen. Eine genaue Punktlandung wird 
auch schwierig, wahrscheinlich muss man abweichend von Seggelohrs 
Theorem am Ende sich langsam annähern.

Georg

von Stefan F. (Gast)


Lesenswert?

> Im Prinzip soll der Motor voll beschleunigen
> und dann
> voll Bremsen, sodass er auf dem Punkt zum stehen kommt.

Wann ist "und dann"? Das ist die Gretchenfrage, die du ohne Kenntnis der 
masse nicht beantworten kannst.

Mir gefällt der obige Ansatz, die Masse während der Beschleunigung zu 
messen, so dass Bremsweg geschätzt werden kann.

> Am besten ohne über das Ziel hinauszuschießen.

Ein ganz ander Lösungsansatz wäre, das Ziel durch einen Anschlag 
festzulegen und eine Rutschkupplung zu verwenden. Dann kannst du schnell 
und feste gegen den Anschlag prallen. So erreichst du die höchste 
Geschwindigkeit, aber auch die höchte Material-Belastung.

Noch ein Ansatz:

Du bremst erst sehr früh und fährst dann mit minimaler Geschwindigkeit 
bis zum Ziel. Beim nächsten mal bremst du etwas später, dann noch später 
usw. bis das System automatisch gelernt hat, wie lang der Bremsweg denn 
nun wirklich ist.

von Pandur S. (jetztnicht)


Lesenswert?

>Mir gefällt der obige Ansatz, die Masse während der Beschleunigung zu
messen, so dass Bremsweg geschätzt werden kann.

So nebenbei.. Funktioniert bei fester starrer Masse. Bei einem Glas 
Wasser, einem Sandhaufen, oder einem Block Gelatine geht das nicht mehr

von Seggelohr (Gast)


Lesenswert?

Jetzt Nicht schrieb:
> So nebenbei.. Funktioniert bei fester starrer Masse. Bei einem Glas
> Wasser, einem Sandhaufen, oder einem Block Gelatine geht das nicht mehr

Geht immer noch, wenn Du die dabei auftretende Schwingung 
herausrechnest.

von npn (Gast)


Lesenswert?

Seggelohr schrieb:
> Geht immer noch, wenn Du die dabei auftretende Schwingung
> herausrechnest.

Glaub ich nicht. Wenn du relativ stark beschleunigst, steht das Glas 
Wasser nicht mehr drauf und der Sandhaufen hat sich in eine Staubwolke 
verwandelt. Da wird keine Schwingung sein, die du rausrechnen kannst.
Wenn du Glück hast und die Gelatine bleibt liegen und wackelt nur, dann 
könnte es klappen mit der Schwingung...

von Stefan F. (Gast)


Lesenswert?

Wir haben alle ein Kriterium vergessen:

> Bei externer Krafteinwirkung soll dagegen gehalten werden.

So wird das nichts, mit dem selbst lernenden System.

von Klaus (Gast)


Lesenswert?

Mike Litoris schrieb:
> Der Schlitten soll dann moglichst schnell von einer Position zur anderen
> gefahren werden. Am besten ohne über das Ziel hinauszuschießen. Bei
> externer Krafteinwirkung soll dagegen gehalten werden.

Das ist das gleiche, was jedes Modellbauservo macht. Die simplen 
analogen sind einfach ein P-Regler mit einem kleinen Dead-Band. Ist 
dieses erreicht, wird der Motor kurzgeschlossen. Durch die hohe 
Getriebeuntersetzung steht der auf den Punkt. Ist die bewegte Masse zu 
groß, muß das Getriebe zum Zahnarzt.

MfG Klaus

von Marek (Gast)


Lesenswert?

Normalerweise macht man das mit einer kaskadierter Regelung.
Wichtig ist, dass für einen DC-Motor das Drehmoment zum Strom 
proportional ist. Das heißt, man macht:
1. Regler: Stromregler, der den DC-Strom im Motor regelt. = 
Drehmomentregler. Ausgabe vom Regler ist die DC-Spannung (PWM-DuCy). 
Eingang vom Regler ist der Sollstrom (~Soll-Drehmoment).
2. Regler: Drehzahlregler, der die Drehzahl vom Motor (=Geschwindigkeit 
des Schlittens) regelt.
Ausgabe vom Regler ist der Sollmoment für den 1. Regler. Eingang vom 
Regler ist die Solldrehzahl (bzw. die Sollgeschwindigkeit des 
Schlittens).
3. Regler: Lageregler, der die Lage des Motors (=Lage des Schlittens) 
regelt.
Ausgabe vom Regler ist die Sollgeschwindigkeit für den 2. Regler. 
Eingang vom Regler ist die Sollposition vom Motor (umgerechnet von der 
Sollposition des Schlittens).

Diese Anordnung muss entsprechende Zeitkonstanten kaskadiert abgestimmt 
haben, d.h. der Stromregler soll schneller einregeln, als der 
Drehzahlregler arbeitet, der Lageregler soll am langsamsten eingestellt 
sein.

Gruß,
Marek

von m.n. (Gast)


Lesenswert?

Stefan Us schrieb:
> Wir haben alle ein Kriterium vergessen:
>
>> Bei externer Krafteinwirkung soll dagegen gehalten werden.

Ich nicht!
Aber schwer zu sagen, ob für diese Frage eine Antwort geplant ist ;-)

von Mike Litoris (Gast)


Lesenswert?

Hallo!

Karl Heinz schrieb:
> Was du gerade suchst, das ist der optimale Regeler, der ohne Anpassunf
> an die tatsächlichen Gegebenheiten unter allen Umständen immer perfekt
> arbeitet.
>
> Den gibt es nun mal nicht.
Schön gesagt aber das hilft mir nicht weiter.
Ich wollte nur "möglichst schnell". So schnell wie mit den anderen 
Randbedingungen halt möglich.


> Gewöhn dich daran, dass es nicht für alles perfekte 100% Lösungen gibt.
> Eigentlich gibt es für die meisten Dinge keine 100% perfekte Lösungen.
> Techniker wissen das. Nur die Menschen auf der Strasse denken immer, es
> gäbe für alles perfekte Lösungen und die Konzerne würden die nur
> unterdrücken.
lol. Schlecht geschlafen?

Seggelohr schrieb:
> Messe beim Beschleunigen die Anfahrrampe und berechne dann über eine
> vorher ermittelte Funktion den Punkt, an dem die Vollbremsung beginnt.
Gute Idee!

m.n. schrieb:
> Was ist denn möglichst schnell?
Siehe oben. So schnell wie mit den anderen Randbedingungen (kein 
Überschwingen, unbekannte Masse, etc.) möglich.

Ich weiss nicht, ob der Vergleich was taugt, aber in einer 
CNC-Fräse/Bestückungsautomat läuft das doch genauso? Möglichst schnelle 
und genaue Positionierung und kein Überschwingen.
Beim Beispiel der CNC-Fräse auch Aufnahme der Gegenkräfte(Fräskräfte).

m.n. schrieb:
> Was ist denn eine externe Krafteinwirkung?
z.B. ständig wirkende Schwerkraft wenn die Führung vertikal montiert 
ist. Oder z.B. jemand drückt mit dem Finger auf den Schlitten.

Stefan Us schrieb:
> Ein ganz ander Lösungsansatz wäre, das Ziel durch einen Anschlag
> festzulegen und eine Rutschkupplung zu verwenden. Dann kannst du schnell
> und feste gegen den Anschlag prallen. So erreichst du die höchste
> Geschwindigkeit, aber auch die höchte Material-Belastung.
Nein geht nicht. Will beliebige Punkte anfahren, hätte ich dazuschreiben 
sollen :-/

Jetzt Nicht schrieb:
> So nebenbei.. Funktioniert bei fester starrer Masse. Bei einem Glas
> Wasser, einem Sandhaufen, oder einem Block Gelatine geht das nicht mehr
Masse ist auf jeden Fall starr. Zumindet fast, denn wirklich starr ist 
ja nichts.

Klaus schrieb:
> Das ist das gleiche, was jedes Modellbauservo macht. Die simplen
> analogen sind einfach ein P-Regler mit einem kleinen Dead-Band. Ist
> dieses erreicht, wird der Motor kurzgeschlossen. Durch die hohe
> Getriebeuntersetzung steht der auf den Punkt. Ist die bewegte Masse zu
> groß, muß das Getriebe zum Zahnarzt.

So in der Richtung hab ich mir das vorgestellt.
Aber mit einem normalen P-Regler funktioniert das meines Wissens nach 
nicht?!
Entweder "kriecht" der Schlitten auf seine Position (zu langsam!) oder 
er überschwingt.
Auch kann ja ein P-Regler nicht bremsen, bevor er an der richtigen 
Position ist?

Marek schrieb:
> Normalerweise macht man das mit einer kaskadierter Regelung.
Das klingt auf den ersten Blick nicht schlecht, schau ich weiter an!

m.n. schrieb:
> Aber schwer zu sagen, ob für diese Frage eine Antwort geplant ist ;-)

Na aber sicher doch! Was läst dich daran zweifeln?

Grüße ;-)

von c-hater (Gast)


Lesenswert?

Stefan Us schrieb:

> Wir haben alle ein Kriterium vergessen:
>
>> Bei externer Krafteinwirkung soll dagegen gehalten werden.
>
> So wird das nichts, mit dem selbst lernenden System.

Richtig, damit ist's endgültig Essig mit der (ohnehin überaus wackligen) 
Vermessung der Masse beim Beschleunigen.

Das heißt aber nicht, daß so ein Problem nicht trotzdem ganz gut lösbar 
sein könnte. Die Evolution hat gezeigt, daß es möglich ist. Wir selber 
nutzen ständig bei jeder Bewegung diese evolutionär gefundenen 
Optimierungen für sich dynamisch anpassende Regelungen.

OK, ist unfair, die Evolution hatte auch fast vier Milliarden Jahre Zeit 
dazu, immer neue Ansätze auszuprobieren und die zwangsläufigen 
Fehlschläge waren für die Probanden mit der Strafe des Sterbens oder 
Aussterbens belegt. So kommt man natürlich wahrscheinlicher zu guten 
Ergebnissen, als wenn vom Vertriebler zwei Monate Entwicklungszeit und 
10000€ Kostenrahmen angeboten werden, um ja nur den Auftrag zu 
reinzuholen...

Wie auch immer, am nächsten an den erfolgreichen Konzepten der Evolution 
ist in unserer primitiven technischen Nachahmung die Fuzzy-Logic. Die 
ist inzwischen so weit, daß die Mathe-Fetischisten bei dem Bemühen, 
deren Verhalten wenigstens nachträglich mathematisch korrekt zu 
beschreiben, wesentlich länger brauchen als diese Logik selber 
braucht, um zu einem praktisch nützlichen und brauchbaren Regelverhalten 
zu kommen. Sie ist aber trotzdem leider längst noch nicht so weit, wie 
die Evolution gekommen ist...

Damit kann man trotzdem was anfangen. Das Problem ist: 100% Erfolgsquote 
kann natürlich nicht garantiert werden. Und welcher Kunde kauft schon 
was ohne 100%-Garantie, das kann doch dem für die Bewilligung der Mittel 
zuständigen BWLer überhaupt nicht vermittelt werden.

Also wird fast immer erheblich suboptimaler, aber dafür leicht 
berechenbarer Scheiß gekauft...

von Disco (Gast)


Lesenswert?

Noch 2 Punkte zur kaskadierten Regelung. Du brauchst als Sollgröße für 
den P Regler einen Rampengenerator. Optimaler Weise mit sin Rampen da 
die Anleitung vom sin cos ist bekommt man keinen Ruck in der 
Beschleunigung.

2. Da der P Regler eine bleibende Regelabweichung hat. Steuert man den 
Drehzahlregler mit der solldrehzahl aus dem Rampengenerator vor. Das 
bewirkt, das der Regler noch besser an der Sollposition hängt.

Grüße
  Disco

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Mike Litoris schrieb:
> Klaus schrieb:
>> Das ist das gleiche, was jedes Modellbauservo macht. Die simplen
>> analogen sind einfach ein P-Regler mit einem kleinen Dead-Band. Ist
>> dieses erreicht, wird der Motor kurzgeschlossen. Durch die hohe
>> Getriebeuntersetzung steht der auf den Punkt. Ist die bewegte Masse zu
>> groß, muß das Getriebe zum Zahnarzt.
>
> So in der Richtung hab ich mir das vorgestellt.
> Aber mit einem normalen P-Regler funktioniert das meines Wissens nach
> nicht?!
> Entweder "kriecht" der Schlitten auf seine Position (zu langsam!) oder
> er überschwingt.
> Auch kann ja ein P-Regler nicht bremsen, bevor er an der richtigen
> Position ist?

Sicher kann der Regler bremsen: P heißt ja proportional. Die Ansteuerung 
ist proportional zum Fehler. Die meißte Zeit ist Ansteuerung aber bei 
100%, erst dicht am Ziel wird sie kleiner. Und ist das Dead-Band (ohne 
daß schwingt das System wie ein Komparator ohne Hysterese) erreicht, 
schließt die Brücke den Motor kurz. Da mag er noch eine Umdrehung weiter 
laufen, nach dem Getriebe bleibt da fast nichts mehr von über.

Ich hab mal ein Blockschaltbild von so einem RC-Servo-IC rangehängt, das 
sind so 2-3 Jahrzehnte alte Designs. Der erledigt die Dekodierung der 
Servopulse gleich mit.

MfG Klaus

von Klaus (Gast)


Angehängte Dateien:

Lesenswert?

Irgendwie ging das zweite Bild verloren

MfG Klaus

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.