Forum: Mikrocontroller und Digitale Elektronik Positionsregler für Motor


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Bert S. (kautschuck)


Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich versuche für einen DC brushed Motor einen Positionsregler zu 
implementieren. Kann ich dafür 2 PI Regler in Serie schalten oder wie 
würdet ihr das machen?

Ich habe das folgendermaßen implementiert: Der PI Controller für die 
Position gibt mir direkt den Referenzwert für den PI Speed Controller, 
welcher dann am Ausgang die DutyCycle für den Motor bestimmt. Nun 
funktioniert das eigentlich relativ gut, aber der Positionskontroller 
reagiert noch zu schwach auf kleine Fehler, wobei ich dies nicht 
wirklich tunen kann, sonst ist die Dynamik hin. Weiter ist auch der 
SpeedController nicht wirklich gut, speziell für langsame 
Geschwindigkeiten, wobei dies evtl. auch auf die 
Geschwindigkeitsschätzung zurückzuführen ist.

Was verwendet ihr so für Regler Topologien für einen Positionsregler?

Edit: Wenn ich nur einen PD Regler für die Position verwende, habe ich 
sehr gutes Tracking der Position, zumindest für langsame 
Geschwindigkeiten. Jedoch wirkt das ganze dann ziemlich "hart".

: Bearbeitet durch User
von WR (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Bert,

ich würde einen Lageregelkreis (P-Regler) mit unterlagertem 
Drehzahlregelkreis (PI-Regler) nehmen (Kaskadenregelung).

PI-Regler ist als Lageregler zu langsam.


Gruss Werner

von Bert S. (kautschuck)


Bewertung
0 lesenswert
nicht lesenswert
WR schrieb:
> Hallo Bert,
>
> ich würde einen Lageregelkreis (P-Regler) mit unterlagertem
> Drehzahlregelkreis (PI-Regler) nehmen (Kaskadenregelung).
>
> PI-Regler ist als Lageregler zu langsam.
>
> Gruss Werner

Danke Werner,

Mir gelingt es aber leider nicht den PI Regler für die Geschwindigkeit 
angemessen zu tunen. Wahrscheinlich liegt das an meiner 
Geschwindigkeitsmessung. Wie genau sollte man die Geschwindigkeit bei 
langsamen Drehzahlen messen? Ich habe einen Timer, der mir mit etwa 
100Hz die zwei Positionen vergleicht und daraus die Geschwindigkeit 
schätzt. Schnelleres messen führt zu kleineren Differenzen und da ich 
einen Abolutwertgeber habe, der +-0.1% schwankt, kann ich irgendwann 
nicht mehr vernünftig messen. Oder soll ich die Positionen mit hoher 
Frequenz in einem Ringbuffer speichern und dann z.B alle 20ms die 
Geschwindigkeit ermitteln?

: Bearbeitet durch User
von Gad Z. (gad)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal vor einiger Zeit einen Positionsregler gemacht.
Das Tunen der Regler nimmt schon Zeit in Anspruch.

Zu deiner Frage.
Ich lese mein Positonsgeber mit 1kHz aus.
Eine Positionsregelung alle 20ms halte ich schon für sehr langsam.
Kommt aber auf die Anwendung und deren Anforderungen an.

Was willst du genau?
Einen Positionsregler oder nur einen Geschwindigkeitsregler?

von Bert S. (kautschuck)


Bewertung
0 lesenswert
nicht lesenswert
Gad Z. schrieb:
> Ich lese mein Positonsgeber mit 1kHz aus.
> Eine Positionsregelung alle 20ms halte ich schon für sehr langsam.
> Kommt aber auf die Anwendung und deren Anforderungen an.

Der Controller läuft mit 2kHz, aber die Geschwindigkeitsmessung nur mit 
50Hz, da sonst das Rauschen im Vergleich zu der vergangenen Position zu 
groß und die Messung nichtig wird.

Ich versuche vielleicht mal eine art "time stamping" Algorithmus zu 
implementieren für die Geschwindigkeitsmessung, diese nimmt dann auch 
ältere Samples mit in Bezug, daher sollte es so viel genauer sein und 
die Sampling-Frequenz kann wesentlich erhöht werden.

https://www.mathworks.com/matlabcentral/answers/uploaded_files/10191/6868.pdf

Gad Z. schrieb:
> Was willst du genau?
> Einen Positionsregler oder nur einen Geschwindigkeitsregler?

Beides in einer kaskadierung, so das man auf Geschwindigkeitsregelung 
umschalten kann bei Bedarf.

: Bearbeitet durch User
von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Position gibt mir direkt den Referenzwert für den PI Speed Controller,
> welcher dann am Ausgang die DutyCycle für den Motor bestimmt.

Wenn ich dich richtig verstehe dann aendert die Ausgangsgrosse deines 
Reglers die mittlere Spannung am Motor und nicht den Strom? Dann hast du 
keinen linearen Zusammenhang. Das wird dann IMHO nicht funktionieren 
weil Regler LTI Systeme vorraussetzen.

Olaf

von MiMa (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bert S. schrieb:
> Beides in einer kaskadierung, so das man auf Geschwindigkeitsregelung
> umschalten kann bei Bedarf.

Dann würde ich auch den Regler umschalten.
Ich würde für den Motor einen P-Stromregler und je nach "Bedarf" einen 
überlagerten PI für die Drehzahl -> da genügen wahrscheinlich die 20ms
ODER einen überlagerten PD für die Position (Wenn nicht sogar PID mit 
antiwindup - je nach geforderter Genauigkeit). Bei der Positionsregleung 
würde ich wie Gad Z. rein Gefühlsmäßig auch die Abtastrate erhöhen.

von Raymund Hofmann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ich denke auch das Problem hier ist die Geschwindigkeitsermittlung.

Wenn diese mit 50Hz abtastet, dann ist grob gesagt wohl kaum mehr als 
5Hz Regelbandbreite für den Geschwindigkeitsregler drin und für den 
darüber liegenden Positionsregler dann 1/10 davon.

Generell in Servo Drives braucht es eine hohe Encoderauflösung oder 
einen separaten Tacho um hohe Regelbandbreiten und niedriges Rauschen zu 
erreichen.

Man könte noch versuchen mit einem Observer der ein "weicheres", besser 
interpoliertes Geschwindigkeitssignal rekonstruiert die Performance zu 
optimieren.

Ein Observer ist am Ende jedoch nichts anderes als ein Tiefpass und 
würde die Regelbandbreite weiter reduzieren.

Wenn die 50Hz Abtastung nur zwei Encoder Zählerstände subtrahiert um die 
Geschwindigkeit zu ermitteln, wird es so bald dieser Wert in den 
einstelligen Bereich kommt wohl rauh laufen.

Man könnte noch die Zeit zwischen zwei Zählerwerten messen.

von Bert S. (kautschuck)


Bewertung
0 lesenswert
nicht lesenswert
Ok, danke euch für die Tipps, ich probiere die mal aus. Noch eine Frage 
zur Kaskadierung von den Reglern, die inneren Regler müssen ja viel 
schneller sein als die äußeren, zumindest habe ich das damals so 
gelernt? Z.B wenn der Positionsregler mit 200Hz arbeitet sollte der 
Geschwindigkeitsregler sagen wir mit mit 600Hz arbeiten und ein 
Stromregler darunter mit 2kHz, oder so ähnlich. Oder kann ich auch hier 
sagen, umso schneller umso besser, also alles zusammen in der gleichen 
Loop?

von Patrick B. (p51d)


Bewertung
0 lesenswert
nicht lesenswert
Wieso genau hast du "nur" so tiefe Abtastfrequenzen?
Nur ein Verrauschen des Messwertes kann ja nicht der Grund sein. Ausser 
du hast eine überempfindliche Schaltung. Aber dann wird das sowieso eine 
kritische Angelegenheit, wenn du von deinem Labortisch in die reale Welt 
gehst.

Unsere eigenen Positionsregler sind alle so ausgelegt, dass die 
Soll-Positionswerte alle 1ms aktualisiert werden. Darunter ist ein 
Stromregler, welcher dann 10kHz hat. Also jede Kaskade arbeitet um 
Faktor 10 schneller.
Und wie schon gesagt wurde, müssen die Ist-Werte eine höhere Auflösung 
haben, als die Vorgaben. Wir haben hier auch Faktor 5-10 umgesetzt. Und 
dann immer schön von innen nach aussen die Regler tunen...

von Bert S. (kautschuck)


Bewertung
0 lesenswert
nicht lesenswert
Patrick B. schrieb:
> Wieso genau hast du "nur" so tiefe Abtastfrequenzen?
> Nur ein Verrauschen des Messwertes kann ja nicht der Grund sein. Ausser
> du hast eine überempfindliche Schaltung. Aber dann wird das sowieso eine
> kritische Angelegenheit, wenn du von deinem Labortisch in die reale Welt
> gehst.
>
> Unsere eigenen Positionsregler sind alle so ausgelegt, dass die
> Soll-Positionswerte alle 1ms aktualisiert werden. Darunter ist ein
> Stromregler, welcher dann 10kHz hat. Also jede Kaskade arbeitet um
> Faktor 10 schneller.
> Und wie schon gesagt wurde, müssen die Ist-Werte eine höhere Auflösung
> haben, als die Vorgaben. Wir haben hier auch Faktor 5-10 umgesetzt. Und
> dann immer schön von innen nach aussen die Regler tunen...

Diese Abtastraten waren nur ein Beispiel. Ich kann den Regler schon mit 
bis zu 5kHz ausführen, zumindest den Stromregler. Wenn der Regler aber 
jetzt zu Zeitaufwendig ist für in einem Interrupt abgearbeitet zu 
werden, wie genau macht ihr das, damit ihr genau mit z.B 1kHz regeln 
könnt? Ein FreeRtos? Oder einfach mit dem Timer ein globales flag 
triggern und in der Main die Funktion aufrufen?

: Bearbeitet durch User
von M. K. (sylaina)


Bewertung
0 lesenswert
nicht lesenswert
Bert S. schrieb:
> Oder einfach mit dem Timer ein globales flag
> triggern und in der Main die Funktion aufrufen?

Also auf einem AVR mache ich das so in der Art. In der ISR nen Regler 
durcharbeiten würde viel zu lange dauern. Solange man in der ISR ist 
kann man ja auf rein gar nichts anderes reagieren.

von Patrick B. (p51d)


Bewertung
-1 lesenswert
nicht lesenswert
Bert S. schrieb:
> Wenn der Regler aber
> jetzt zu Zeitaufwendig ist für in einem Interrupt abgearbeitet zu
> werden, wie genau macht ihr das, damit ihr genau mit z.B 1kHz regeln
> könnt? Ein FreeRtos?

Ok, ich hab wohl irgendwo überlesen, dass es um einen AVR 8-Bitter geht.
Die "einfachen" Regler laufen auf STM32F0 mit 72MHz. Und auch hier wurde 
halt auf "unnötiges" verzichtet sowie die Taktfrequenzen der Regler 
reduziert.
Die aufwendigeren sind auf einem FPGA mit Soft-Core. Alle PI und PID 
Regler sind da in VHDL geschrieben, mit direkter Anbindung an ADCs und 
PWM Outputs. So kann die Kommunikation im Softcore entspannt 
abgearbeitet werden.

P.S.: Ein Rtos ist nicht immer die beste Lösung. Oft generiert es mit 
Task-Switch und Inter-Task-Kommunikation bei einfachen Systemen mehr 
Probleme als es löst. Da muss man halt auf die gute alte FSM und 
geschicktes Firmware-Design ausweichen.

von Bert S. (kautschuck)


Bewertung
0 lesenswert
nicht lesenswert
Danke euch für die vielen Ratschläge. Wenn ich also einen P-Regler für 
die Position und einen PI-Regler für die Gewschwindigkeit wähle, wie 
bestimme ich da, wie viel Fehler jedes mal akkumuliert wird und wie groß 
die Anti-Windup Grenzen sein sollen?

Ich habe momentan folgendes:

speed_control.sum+=speed_control.speed_err*speed_control.sum_period;

wobei speed_control.sum_period hier 0.001 ist, da der Controller mit 
1kHz ausgeführt wird. Das Problem ist nur, dass nun der Controller sehr 
träge wird für die Geschwindigkeit. Anti Wind-Up Grenze habe ich 10.

von Hermann (Gast)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Wie schon gesagt, muss der unterlagerte Regelkreis deutlich schneller 
als der Positionsregler sein, so dass er z.B. durch ein einfaches 
PT1-Glied ersetzt werden kann. Der überlagerte Regelkreis sähe dann wie 
im Anhang aus. Die Strecke besteht dann aus dem PT1 des Motors und dem 
Integrator der Spindel.
Ein PI-Regler ist schon die richtige Wahl, allerdings geht das 
prinzipbedingt nicht ohne erhebliche Überschwinger. Wenn Überschwinger 
nicht zulässig sind, schaltet man vor den Sollwert eine 
Sollwertverzögerung (PT1).

von Hermann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage: warum schaltet ihr einen Stromregler vor den Motor? Der 
Strom gibt das Moment vor, gefragt ist aber die Spannung. Die Spannung 
gibt die Drehzahl vor, die dann durch die Spindel zum Weg integriert 
wird. Einen Strom könnte man im Regelkreis nicht ohne weiteres 
nachbilden, das ergäbe also eine undefinierte Strechennachbildung.
Meiner Meinung nach kann die Spannung einfach gestellt werden, da die 
Fehler durch den überlagerten Regelkreis ausgeglichen werden.

von Hermann (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Für die Auslegung des Reglers ist es hilfreich, den Regelkreis zu 
simulieren, da man leicht an den Parametern spielen kann, um das 
Ergebnis zu optimieren. Da ich das schon mal gemacht habe, kann ich das 
auch zeigen. Die Regelparameter sind nach Lehrbuch berechnet.

Wie man am rechten Diagramm erkennen kann, kommt der Reglerausgang an 
die Spannungsbegrenzung, was zum Überschwingen führt - dies ist bewusst 
gemacht, um die Auswirkung zu testen. Weiterhin ist der Integrator sehr 
früh begrenzt, das vermindert das Überschwingen und der Integrator soll 
sowieso nur die Genauigkeit bei kleinen Abweichungen erhöhen.

von Patrick B. (p51d)


Bewertung
-1 lesenswert
nicht lesenswert
Hermann schrieb:
> Noch eine Frage: warum schaltet ihr einen Stromregler vor den Motor?

Weil praktisch alle relevanten Grössen eines Motors sich nur durch den 
Strom berechnen lassen (Drehmoment, induzierte Spannung, 
Ankerspannung...
Ein Motor ist nichts anderes als ein komplexes Gebilde, dass sich 
Magnetfelder zunutze macht. Und Magnetfelder werden über Ströme und 
nicht Spannungen definiert.

Ausserdem verhält sich das ganze dann auch linear und die Dynamik des 
Motors wird verbessert.
Die Stellgrösse im Kreis entspricht dann schon einer Spannung (über PWM 
durch den Regelkreis definiert).

Falls du mehr Details willst, such nach Formelsammlungen oder fertige 
Regler von namhaften Herstellern.

: Bearbeitet durch User
von Hermann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Patrick B. schrieb:
> Weil praktisch alle relevanten Grössen eines Motors sich nur durch den
> Strom berechnen lassen

Das ist schon klar. Aber das hilft nicht für die Auslegung des 
Regelkreises. Mit welchem Übertragungsglied ergibt sich denn die 
Drehzahl aus dem Strom. Da geht insbesondere das erforderliche Moment 
mit ein. Jedenfalls ist die Berechnung aus dem Strom für die Regelung 
ein nicht zielführender Weg.

von Christopher J. (christopher_j23)


Bewertung
0 lesenswert
nicht lesenswert
Hermann schrieb:
> Mit welchem Übertragungsglied ergibt sich denn die
> Drehzahl aus dem Strom.

Der Strom ist direkt Proportional zum Moment und die Summe aller Momente 
proportional zur Winkelbeschleunigung. Die Winkelbeschleunigung 
integriert ergibt die Drehzahl.

von Hermann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Christopher J. schrieb:
> Hermann schrieb:
>> Mit welchem Übertragungsglied ergibt sich denn die
>> Drehzahl aus dem Strom.
>
> Der Strom ist direkt Proportional zum Moment und die Summe aller Momente
> proportional zur Winkelbeschleunigung. Die Winkelbeschleunigung
> integriert ergibt die Drehzahl.

Christopher J. schrieb:
> Der Strom ist direkt Proportional zum Moment und die Summe aller Momente
> proportional zur Winkelbeschleunigung. Die Winkelbeschleunigung
> integriert ergibt die Drehzahl.

Auch richtig! Der Reglerausgang als PWM-Spg ist der Drehzahl-Sollwert. 
Das daraus ein Strom entsteht, der das Moment und alles weitere 
verursacht ist klar. Das ist aber nur Mittel zum Zweck. Für die 
Reglerauslegung muss man aber eine definierte Regelstrecke finden. Die 
durch den Umweg über den Strom unnötig komplizierter wird. Das Ergebnis 
ist doch wieder eine PT1-Motorsimulation, weil sich etwas anderes kaum 
besser regeln lässt.

Was allerdings helfen würde, ist ein unterlagerter Drehzahlregler. Der 
verbessert dann das Anlaufverhalten und die Regelung bei kleinen 
Drehzahlen. Der Drehzahlregler mit Motor ist dann für die übergeordnete 
Regelung wieder eine PT1-Simulation des Motors.

Für mein obiges Beispiel habe ich einfach den Motor am Oszi ausgemessen. 
Sehr einfach: durch oszillografieren des Aufnahmestroms. Die gemessene 
Zeitkonstante entspricht der der Drehzahl. Das kann man dann auch mit 
der Drehzahlregelung machen.

von RP6conrad (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Noch eine Frage zu den hardware : was ist die Auflosung von encoder ? 
Wird beide kanalen (A/B) und Flanke verwendet um die Position/Speed zu 
vermessen ?
Welchen typ von DC motor ist das ? Wiefiel Polen hat das Anker ? Billig 
DC-motoren haben oft 5 Polen, und damit ist das Moment bei kleine 
Winkelanderungen nicht constant. Idealerweise soll das so ein 
"Eisenloss" Anker sein (Maxon, Minimotor).
Wie werd die H-Brucke angesteurt ? Die "harte" Ansteuerung ergibt fiel 
besseres Regelung : Enable immer hoch, Kanal A für Richtung, Kanal B für 
PWM. Das ist eine "harte" Ansteuerung. Wenn sie PWM auf "Enable" 
schalten, lauft der Motor immer frei bei PWM "low", damit wird er nicht 
gebremst.

von Patrick B. (p51d)


Bewertung
0 lesenswert
nicht lesenswert
Ich hab die Unterlagen aus dem Studium leider nicht gerade zur Hand, 
aber hier kannst du dich ja auch ein wenig einlesen:
http://www.control.tu-berlin.de/images/b/be/Versuch1_Motor.pdf

Meine Erfahrung mit Reglern zeigte, dass die Regelstrecke sich nur bis 
zu einem bestimmten Grad vereinfachen lässt:
- Temperaturbedingte Reibungen durch unterschiedliche 
Schmiermitteleigenschaften
- Dynamik und Umkehrspiel von Spindeln  Getrieben  Riemen
- Messgrösse wird oft vom Motor genommen und nicht vom Ende der 
Regelstrecke (-> z.B. Linearer Positionsencoder von einem Tisch)
- Alterungs- und Verschmutzungsbedingte Reibungen
- Überlastete Mechanik, die zum Verbiegen und somit höheren Reibungen 
führte
- Kosteneinsparung bei Positionsgebern und Führungen

Daher würde ich die Strecke soweit vereinfachen, wie möglich.
Aber um ehrlich zu sein: Mein letzter Regler liegt schon ein paar Jahre 
zurück.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Meine Erfahrung mit Reglern zeigte, dass die Regelstrecke sich nur bis
> zu einem bestimmten Grad vereinfachen lässt:

Jo, das ist auch meine Erfahrung. Modellbildung und Theorie gut und 
schoen, aber fuer die letzten 10% braucht es dann 50% der Arbeit auf der 
Basis von Intuition.

Olaf

von Hermann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
RP6conrad schrieb:
> Die "harte" Ansteuerung ergibt fiel
> besseres Regelung

Das halte ich für eine Vergewaltigung des Motors. Der Kurzschluss des 
Motors ist eigentlich nur eine Abbremsung zum Stillstand. Kurzschluss 
nach jedem PWM-Impuls verbrät die gesamte Energie im Motor und in der 
Brücke. Schon der Lärm und das Rütteln tut mir in der Seele weh. Bei 
kleinen Drehzahlen und Frequenzen steppt der Motor nur noch. Dass das 
für die Regelung gut ist, kann ich mir nicht vorstellen.
Haben andere noch Erfahrung mit diesem "harten" Betrieb?

von Hermann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Patrick B. schrieb:
> Meine Erfahrung mit Reglern zeigte, dass die Regelstrecke sich nur bis
> zu einem bestimmten Grad vereinfachen lässt

Das stimmt wohl. Die Feineinstellung macht man dann im realen Betrieb.

Die theoretische Betrachtung gilt erstmal für das grundlegende 
physikalische Verhalten. Das ermöglicht dann die Auswahl des richtigen 
Reglertyps und die Grundeinstellung der Reglerparameter. Um näher an der 
Praxis zu sein, messe ich die reale Strecke vorher aus. Wenn andere 
Einflüsse bekannt und messbar sind, kann man sie auch in das Modell 
einbeziehen und die Reglerparameter adaptiv machen.
Auf jeden Fall hilft die analytische Betrachtung für die richtige 
Vorgehensweise. Das führt zum optimalen Reglertyp und vermeidet ein 
probieren an der falschen Stelle.

von RP6conrad (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hermann schrieb:
> Das halte ich für eine Vergewaltigung des Motors. Der Kurzschluss des
> Motors ist eigentlich nur eine Abbremsung zum Stillstand.
Zum Stillstand kommt es nicht, da den PWM frequenz
zu hoch ist ! Aber das Stromverbrauch ist hoher (ca +50%), da haben sie 
recht. Aber der Inductivität des Motor ist zo hoch, das sich fast 
normale Stromen einstellen. Bei eine harte Ansteuerung, haben sie fast 
eine liniair Verhaltnis zwischen PMW Wert und Drehzahl, das hilft stark 
bei eine Regelung. Bei eine "Sanfte" Ansteurung ist das Drehzahl fiel 
mehr abhangig von der Belastung von Motor ! Auch hier mussen sie umpolen 
wen eine active Bremsung gewunscht ist, und das ist naturlich noch 
slimmer ! Ich mache seit lange das so bei al meine "Differential Drive" 
robots, mit gute Regel Ergebnissen !

von Bert S. (kautschuck)


Bewertung
0 lesenswert
nicht lesenswert
Danke euch für die vielen Antworten.

Ich habe nun die Geschwindigkeitsmessung optimiert und ziemlich gute 
Resultate erhalten, aber noch nicht optimal. Im inneren habe ich den 
Stromregler, welcher mit 5.6kHz läuft (maximum möglich), dann die 
Geschwindigkeitsregelung mit 2kHz und die Positionsregelung mit 500Hz. 
Ich denke das hier die Positionsregelung und die 
Geschwindigkeitsregelung noch zu schnell sind, oder? Aber viel spatzig 
habe ich ja nicht, da für digitale Regler eine gewisse Bandbreite 
vorhanden sein muss. Wie würdet ihr da die einzelnen 
Reglergeschwindigkeiten wählen?

von Hermann (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bert S. schrieb:
> Im inneren habe ich den
> Stromregler, welcher mit 5.6kHz läuft (maximum möglich), dann die
> Geschwindigkeitsregelung mit 2kHz und die Positionsregelung mit 500Hz

Eine 3-fache Reglerstruktur ist wohl auch übertrieben. Kannst du mal die 
gesamte Reglerstruktur aufzeichnen?! Mir ist nicht klar, wie der 
Stromregler eingebaut ist und woher der Strom-Sollwert kommt.

Die Abstufung der Reglerfrequenzen sollte mindestens Faktor 5 (besser 
10) erreichen. Die Zeitkonstanten der Strecken sollten auch Faktor 5 bis 
10 niedriger als die Abtastfrequenzen sein. Das bedeutet: wenn die 
Strecke der der Lageregelung eine Zeitkonstante von 1 sek hat, sollte 
der Positionsregler mit 10 Hz, der Drz-Regler mit 100 Hz und der 
I-Regler mit 1000 Hz arbeiten. Das setzt voraus, dass die Strecken die 
gleichen Dynamikabstufungen haben.

Bert S. schrieb:
> Wie würdet ihr da die einzelnen
> Reglergeschwindigkeiten wählen?

Was heißt Reglergeschwindigkeit? Ein PI-Regler hat eine Verstärkung und 
eine Zeitkonstante. Die würde ich nach den Stabilitätskriterien der 
Regelungstechnik berechnen und im realen Aufbau feinjustieren.
Die Reglerparameter kann man nicht aus dem Handgelenk zaubern. Dafür 
muss die Strecke bekannt sein. Dazu fängt man innen beim Stromregler an 
und bestimmt die Strecke (im einfachsten Fall schätzen, aber am besten 
messen). Dann wird dieser innere Regler optimiert. Dieser innere Regler 
ist dann die Strecke für den nächsten Regler, der wieder gemessen wird. 
Also Stück für Stück bis man beim Positionsregler ist.
Wenn hier einer mit Zahlenwerten aus der Hüfte schießt (wie von dir 
gewünscht), kannst du die in die Tonne hauen.

von Hermann (Gast)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Hermann schrieb:
> Kannst du mal die gesamte Reglerstruktur aufzeichnen?!
> Mir ist nicht klar, wie der Stromregler eingebaut ist
> und woher der Strom-Sollwert kommt

Ich habe im Anhang den unterlagerten Drehzahlregler eingezeichnet. Wie 
da jetzt ein unterlagerter Stromregler reinpasst, ist mir unklar - würde 
mich aber interessieren.
Sizziere den doch mal - vielleicht hast du ja noch einen Designfehler.

von Patrick B. (p51d)


Bewertung
-1 lesenswert
nicht lesenswert
Hermann schrieb:
> Mir ist nicht klar, wie der
> Stromregler eingebaut ist und woher der Strom-Sollwert kommt.

Eventuell so?
https://de.wikipedia.org/wiki/Kaskadenregelung

Bert S. schrieb:
> Wie würdet ihr da die einzelnen
> Reglergeschwindigkeiten wählen?

Wie schon erwähnt wurde Faktor 5-10 schneller nach innen.
Kommt auf deine Anforderungen an, aber so könnte es gehen:
I-Regler 5kHz, V-Regler 500Hz, und s-Regler 50Hz
oder
I-Regler 5kHz, V-Regler 1kHz, und s-Regler 200Hz

: Bearbeitet durch User
von Hermann (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Patrick B. schrieb:
> Hermann schrieb:
>> Mir ist nicht klar, wie der
>> Stromregler eingebaut ist und woher der Strom-Sollwert kommt.
>
> Eventuell so?
> https://de.wikipedia.org/wiki/Kaskadenregelung

Ja, Danke, so macht es Sinn. Der Strom-Sollwert ist also die 
Beschleunigung.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.