EDAboard.com | EDAboard.de | EDAboard.co.uk | EE World

Frage an die Regelungstechniker - Positionsregelung eines E-

NEUES THEMA

elektroda.net NewsGroups Forum Index - Electronics DE - Frage an die Regelungstechniker - Positionsregelung eines E-

Wolfgang Weinmann
Guest

Sat Apr 26, 2008 7:22 pm   



Hallo,

es geht um eine Positionsregelung eines DC-Motors. Die aktuelle
Position wird über einen Encoder erfaßt.

Der PID Regler läuft mit 1ms. Für die gewünschte "Fahrkurve" wird
periodisch ein neuer Weg-Sollwert ausgegeben. Dabei ist folgendes zu
beobachten: Wird der neue Weg-Sollwert alle 10ms vorgegeben, stellt
sich ein lauter brummender Lauf ein. Dieses ist auch nachvollziehbar:
Wird der Sollwert erhöht, stellt der Regler fest, daß er mehr "gas"
geben muß und steuert auf. Dann bleibt der Sollwert ja 10ms gleich und
der Regler stellt fest, daß er schon übers Zeil hinausgeeilt ist und
regelt ab. Dann kommt wieder der nächste Sollwertsprung und das
gleiche fängt von vorne an - er steuert wieder auf.

Wenn ich die Sollwertvorgabe alle 1ms mache und dadurch geringere
Quantisierungssprünge drin habe, läuft der Motor mit den gleichen
Reglerparametern ruhig. Es gibt durch den fehlenden "großen"
sollwertsprung keine großen Stellgrößenausschläge.

Was ich bräuchte wäre eine Informationsquelle, wie am besten so ein
digitaler Regler für eine Führungsregelung zu implementieren ist. Wer
kann weiterhelfen?

Gruß

Wolfgang

Siegfried Schmidt
Guest

Sat Apr 26, 2008 7:22 pm   



Hallo Wolfgang,

Quote:
Was ich bräuchte wäre eine Informationsquelle, wie am besten so ein
digitaler Regler für eine Führungsregelung zu implementieren ist. Wer
kann weiterhelfen?

Am nähesten an praktischen Problemen sind Diskussionen über diverse
Selbstbauprojekte von Lagereglern.

www.cncecke.de hat da viel zu bieten, z.B. alles rund um den UHU.


Siegfried
--
http://www.schmidt.ath.cx

Gernot Fink
Guest

Sat Apr 26, 2008 8:23 pm   



In article <48c47e7e-ca80-4068-8d22-c44ed78094fb_at_e39g2000hsf.googlegroups.com>,
Wolfgang Weinmann <Wolfgangweinmann_at_aol.com> writes:
Quote:
Was ich bräuchte wäre eine Informationsquelle, wie am besten so ein
digitaler Regler für eine Führungsregelung zu implementieren ist. Wer
kann weiterhelfen?

Hast du schon versucht den Regler weicher einzustellen?

Vieleicht hilft der Quellcode eines solchen Reglers?
http://elm-chan.org/he_m_e.html

Du mußt aber abstriche an die Nachregelgeschwindichkeit machen wenn du alle 10
ms eine Vorgabe machst. Es kann aber recht gut gehen wenn du den 1ms Regler
auf die 10ms syncronisierst.

--
MFG Gernot

Heiko Nocon
Guest

Sat Apr 26, 2008 9:09 pm   



Wolfgang Weinmann wrote:

Quote:
Was ich bräuchte wäre eine Informationsquelle, wie am besten so ein
digitaler Regler für eine Führungsregelung zu implementieren ist.

Wenn in einem festen Zeitraster Sollpositionen vorgegeben werden sollen,
ist die Lösung ist ziemlich einfach: Nicht die Position regeln, sondern
die Geschwindigkeit, mit der diese angefahren wird.

Jan Kandziora
Guest

Sat Apr 26, 2008 9:16 pm   



Wolfgang Weinmann schrieb:
Quote:

Wenn ich die Sollwertvorgabe alle 1ms mache und dadurch geringere
Quantisierungssprünge drin habe, läuft der Motor mit den gleichen
Reglerparametern ruhig. Es gibt durch den fehlenden "großen"
sollwertsprung keine großen Stellgrößenausschläge.

Ist der Regleralgorithmus zeitdiskret oder quasikontinuierlich gebaut?


Mit einer Sollwertvorgabe im Bereich der Reglergeschwindigkeit verlässt du
den quasikontinuierlichen Fall. Ein quasikontinuierlicher Regler wird
dadurch seine "gewohnten" Eigenschaften verlieren. Deshalb ist der zweite
von dir beobachtete Fall mit Vorsicht zu betrachten.

Auch der Fall 1:10 kratzt WIMRE schon an der Grenze.

Mit freundlichem Gruß

Jan

Rafael Deliano
Guest

Sun Apr 27, 2008 5:49 am   



Quote:
PID Regler
Wenn ich die Sollwertvorgabe alle 1ms mache und dadurch geringere
Quantisierungssprünge drin habe, läuft der Motor mit den gleichen
Reglerparametern ruhig.

Soweit es von Seiten der Anwendung keine Probleme gibt:
TP-Filter in die Führungsgrösse einbauen damit die sich nur noch
kontinuierlich ändern kann.

Das Fehlersignal, also das Eingangssignal zum PID-Filter, ist
die Differenz zwischen Sensorsignal und Führungssignal.
Das PID-Filter kann gar nicht unterscheiden von welcher
Seite die Änderung kommt.
Der PID wird auf die Störungen aus der Strecke ( typisch ein
Tiefpaß und kann damit keinen Sprung machen ) eingestellt.
PID kann damit nicht gleichzeitig für eine sprungartige Änderung
der Führungsgrösse sauber passen.
Insofern sollte das TP-Filter für die Führungsgrösse ungefähr
die Zeitkonstante der Strecke haben.

Für TP-Filter kein IIR wegen DC-Fehler verwenden
sondern z.B. FIR wie Averager/Mittelwertfilter.

MfG JRD

Wolfgang Weinmann
Guest

Sun Apr 27, 2008 7:38 pm   



@ Siegfried Schmidt:

Quote:
cncecke.de hat da viel zu bieten, z.B. alles rund um den UHU.

Danke - habe mich angemeldet und werde mal reinschauen.

@Gernot Fink:

Quote:
Vieleicht hilft der Quellcode eines solchen Reglers?
http://elm-chan.org/he_m_e.html

Hab ich bereits angeschaut. Der hat eine Kaskadenregelung
benutzt. Sregler und extra nachgeschalteter V-Regler.
Und der Regler läuft auch mit 1KHz.

@Heiko Nocon:

Quote:
Wenn in einem festen Zeitraster Sollpositionen vorgegeben werden sollen,
ist die Lösung ist ziemlich einfach: Nicht die Position regeln, sondern
die Geschwindigkeit, mit der diese angefahren wird.

Ich will ja letztendlich den Weg regeln - also muß dieser doch auch
irgendwie in der Regelung auftauchen. Mit dem Kaskadenregler
könnte man eine s-v-Regelung machen. Habe mal gelernt, daß sich
damit auch D-Anteile vermeiden lassen. Aber ob das das beschriebene
Problem mit dem "Brummen" entschärft?

@Jan Kandziora:

Quote:
Ist der Regleralgorithmus zeitdiskret oder quasikontinuierlich gebaut?

Hm - das ist eine Frage. Es ist ein "normaler" PID Algorithmus, der
alle ms
aufgerufen wird. Die Regelparameter sind eher nach stabile Antwort auf
einen Sprung eingestellt, bzw nach dem Ziegler-Nichols Prinzip


Quote:
Mit einer Sollwertvorgabe im Bereich der Reglergeschwindigkeit verlässt du
den quasikontinuierlichen Fall. Ein quasikontinuierlicher Regler wird
dadurch seine "gewohnten" Eigenschaften verlieren. Deshalb ist der zweite
von dir beobachtete Fall mit Vorsicht zu betrachten.

Das beschriebene Verhalten habe ich genauer angeschaut, indem ich die
Regler- und Sollwert - Werte während eines Laufes aufgezeichnet habe.
Das hat so ausgesehen, wie ich es bei einem analogen Regler auch
nicht anders erwarten würde. Es Wäre ja auch bei einer analogen
Regelung
theoretisch möglich den Sollwert so mit Stufen vorzugeben. Der Analog-
Regler
würde dann wahrscheinlich das gleiche Verhalten zeigen.


Quote:
Auch der Fall 1:10 kratzt WIMRE schon an der Grenze.

Bei einem viel größeren einmaligen Sprung funktioniert das ganze
problemlos. Dort hat dann die Regelabweichung halt fast die ganze Zeit
das gleiche Vorzeichen und der Motor wird ganz schnell ohne Brummen
auf die
Sollposition usw. gefahren.
Das Problem ist bei meiner "Trepppenform" wohl, daß der Regler immer
zuerst durch den D-Anteil voll aufregelt, um dann über die
Sollposition
hinauszuschießen und gegenzuregeln. Das ganze periodisch ist das
Problem.
ICh habe auch schon versucht bei der Sollwertanhebung einen Reglertakt
den D-Anteil gleich zu lassen. Der Motor lief dann wesentlich ruhiger,
aber der Lauf war immer noch etwas unruhig. Der P-Anteil macht bei der
Sollwertanhebung halt auch einen Sprung.

Ich habe auch schon versucht die Reglerparameter herunterzudrehen.
Dann läuft es zwar auch gut, aber die Position wird dann im Stillstand
nicht mehr so gut gehalten.

@Rafael

Quote:
Soweit es von Seiten der Anwendung keine Probleme gibt:
TP-Filter in die Führungsgrösse einbauen damit die sich nur noch
kontinuierlich ändern kann.

Das geht doch in die Richtung, wenn ich den Sollwert auch alle 1ms hat
um den 1/10 Teil als wie nach 10ms anhebe. Dann läuft ja auch alles
ruhig.

Quote:
Insofern sollte das TP-Filter für die Führungsgrösse ungefähr
die Zeitkonstante der Strecke haben.

Das probiere ich mal aus - daß sich die Führungsgröße langsamer
ändert..

Wobei meine Anhebung um die kleinste mögliche Quantisierungsstufe
alle ms ja auch nicht viel anderes ist. Ein Tiefpaß macht aus einem
Sprung am Anfang ja auch eine Gerade, bei t<Tau.

Gruß an alle

Wolfgang

Volker Staben
Guest

Mon Apr 28, 2008 6:03 am   



Hallo Wolfgang, hallo NG,

Wolfgang Weinmann schrieb:
Quote:
Hallo,

es geht um eine Positionsregelung eines DC-Motors. Die aktuelle
Position wird über einen Encoder erfaßt.

Soweit ok. Wenn man eine Position geregelt anfahren will, soll man die
Position messen.

Quote:
Der PID Regler läuft mit 1ms. Für die gewünschte "Fahrkurve" wird
periodisch ein neuer Weg-Sollwert ausgegeben. Dabei ist folgendes zu

"Weg" = "Position"?

Quote:
beobachten: Wird der neue Weg-Sollwert alle 10ms vorgegeben, stellt
sich ein lauter brummender Lauf ein. Dieses ist auch nachvollziehbar:
Wird der Sollwert erhöht, stellt der Regler fest, daß er mehr "gas"
geben muß und steuert auf. Dann bleibt der Sollwert ja 10ms gleich und
der Regler stellt fest, daß er schon übers Zeil hinausgeeilt ist und
regelt ab. Dann kommt wieder der nächste Sollwertsprung und das
gleiche fängt von vorne an - er steuert wieder auf.

Wie wird denn die Klemmenspannung des Motors erzeugt? PWM? Taktfrequenz?
Nicht umsonst laufen industrielle PWMen mit unhörbaren Taktfrequenzen.
Die Ankerzeitkonstante eines DC-Motors kann durchaus klein sein.

Wie hast Du den Regler dimensioniert? Einschleifige Positionsregelung?
Unterlagerter Stromregler? Wie sieht das Streckenmodell aus? Was heißt
Deine Aussage "daß er schon übers Ziel hinausgeschossen ist" - wer ist
"er" bzw. welche Größe schießt übers Ziel hinaus?

Normalerweise (tm) dimensioniert man einen Regler so, dass die
Regelgröße - also bei Dir wohl die Position - nicht extrem, sondern
allenfalls leicht überschwingt. Die Wirkung eines D-Anteils soll ja
gerade sein, die Stellgröße bei schnellen Änderungen der Regelgröße kurz
vor Erreichen des Sollwerts wieder auf das gerade stationär benötigte
Maß zurückzunehmen. Es deutet einiges darauf hin, dass Du Deinen Regler
möglicherweise nicht optimal an die Strecke angepasst dimensioniert hast.


Quote:
Wenn ich die Sollwertvorgabe alle 1ms mache und dadurch geringere
Quantisierungssprünge drin habe, läuft der Motor mit den gleichen
Reglerparametern ruhig.

D.h., der Regler läuft nach wie vor mit 1ms, aber die Sollwerte werden
nur alle 10ms geändert?

Quote:
Es gibt durch den fehlenden "großen"
sollwertsprung keine großen Stellgrößenausschläge.

Zeigt die Regelstrecke vielleicht ein schwingungsfähiges Verhalten? Dann
liegst Du mit Sollwertänderungen alle 10ms vielleicht in der Nähe einer
Streckenresonanz, 100Hz kann bei mechanischen Systemen gut sein. Mit
1kHz lägest Du dann darüber?


Gruß, Volker.

elektroda.net NewsGroups Forum Index - Electronics DE - Frage an die Regelungstechniker - Positionsregelung eines E-

NEUES THEMA

Arabic version Bulgarian version Catalan version Czech version Danish version German version Greek version English version Spanish version Finnish version French version Hindi version Croatian version Indonesian version Italian version Hebrew version Japanese version Korean version Lithuanian version Latvian version Dutch version Norwegian version Polish version Portuguese version Romanian version Russian version Slovak version Slovenian version Serbian version Swedish version Tagalog version Ukrainian version Vietnamese version Chinese version Turkish version
EDAboard.com
WTWHMEDIA