-         

Ergebnis 1 bis 3 von 3

Thema: Servo 3 Phasen synchron Motor, Regelungsproblem

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.09.2006
    Ort
    Nähe Mannheim
    Beiträge
    269

    Unglücklich Servo 3 Phasen synchron Motor, Regelungsproblem

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    Hallo,
    ich bin gerade dabei für ein größeres Projekt die Ansteuerung für den verbauten Torque Servomotor zu bauen und zu Programmieren.
    Folgende Komponenten werden verwendet:
    Motor: 20 Pol 44Watt 3 Phasen Synchronmotor
    Endstufe: DRV3801 (Mosfet treiber)
    Controller: STM32L152 Cortex M3 mit 32MHz
    Positionsgeber: 2000 Pulse pro Umdrehung, Position wird von einem FPGA über SPI ausgelesen

    Funktion:
    Positionierungssystem das die Position auf einen Teilstrich (Position) genau anfahren und halten soll.

    Problem:
    Also zunächst mal, die Positionierung funktioniert an sich wirklich gut, nur in der Endposition schwingt es zwischen 2.. 4 Pulsen hin und her.
    Ein Schwingen in der Endposition möchte ich natürlich vermeiden. Jeddoch habe ich nun keine Idee mehr wie ich das Anstellen könnte.

    Meine aktuelle Regelung:
    Da dieses System im normalen Betrieb niemals mehr als eine ganze Umdrehung macht erspare ich mir hier jegliche Transformation oder Vector Controller.
    Auch den Strom stelle ich über die Breite der PWM ein, das funktioniert da die PWM mit 21Khz und einer auflösung von 1500 Schritten arbeitet.
    Ich versuche das Ganze möglichst einfach und überschaubar zu halten.
    Mein Regelansatz sieht folgendermaßen aus:

    Lösung 1: Reiner Positionsregler mit digitaler Geschwindigkeit
    Ein PID Regler kümmert sich um den Abstand zwischen einem Digitalen Zeiger und der tatsächlichen Motor Position. Ist der Abstand größer als 90° (im Bezug auf die Polpaarzahl) so dreht sich der digitale Zeiger mit in die Richtung des Motor.
    Es wird also nur ein kleiner Bereich abgedeckt.
    Der überliegende PID Regler, regelt mittels der Geschwindigkeit des digitalen Zeigers den Abstand zwischen dem digitalen Zeiger und der Sollposition.

    Steller: Mittels des Stellers wird der synchronmotor zu einem Gleichstrommotor umfunktioniert. Ich gebe lediglich eine Zahl zwischen -100..0..100 an und der Motor fängt an in eine Richtung zu beschleunigen. Diese Zahl ist vergleichbar mit der SPannung an einem DC Motor.

    Problem: Der PID der sich um den kleinen Bereich kümmert schwingt. Das liegt hauptsächlich daran das ich sowas von an der Genauigkeitsschwelle des Dekoders hänge.
    Da es sich bei dem Motor um eine I Strecke handelt benutze ich lediglich den PD Anteil des Reglers.


    Lösung 2:
    Positionsregler mit Feldgeschwindigkeit

    Es gibt nur ein P Regler welcher ganz einfach eine feste Geschwindigkeit auf das Drehfeld gibt.
    Der Motor bewegt sich nun mit dem Feld mit, wird dieser gebremmst so bewegt sich das Feld schneller. Bei einem maximalabstand von 90% (im Bezug auf die Polpaarzahl) wir das Feld nciht weiter gedreht da der Motor nicht hinterher kommt.
    Problem: Der Motor bleibt in der Endposition zwar stehen jedoch nicht immer, und auch nur wenn ich den P-Regler wirklich sehr langsam einstelle.

    Lösung 3: Geschwindigkeitsregler

    Ähnlicher Aufbau wie Lösung 1, allerdings wird der digitale Zeiger durch die Berechnung der echten Geschwindigkeit des Motors ersetzt.
    Das geht solange gut wie sich der Motor dreht, sobald er stehen bleibt wackelt er ständig hin und her, liegt wieder an der knappen Anzahl an Pulsen die von Dekoder kommen.


    Das klingtnun nach viel Programmieraufwand usw aber ich habe alles in so in Module aufgeteilt das ich nur ein paar Zeilen ändern muss und schon funktoniert das das Regelsystem komplett anders.

    Also schon mal danke fürs lesen , über Lösungsvorschläge und Ideen würde ich mich sehr freuen.

    Gruß
    Feratu

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    52
    Beiträge
    1.819
    nur in der Endposition schwingt es zwischen 2.. 4 Pulsen hin und her.
    Die Frage ist, wie genau man das tatsächlich machen kann. Ein Beharren auf der Sollposition ist offensichtlich vom besten Regler nicht zu erwarten. Jeder Regler braucht eine Regeldifferenz um regeln zu können. Es wäre interessant ob ein Positionsgeber mit höherer Auflösung die Winkelabweichung noch verringern könnte. Dass sich die Schwingneigung beim Herausnehmen des D-Anteils und Verkleinern des P-Anteils verringert, konnte man erwarten. Man bezahlt das mit einer längeren Einstellzeit. Ob man da mit dem vorhandenen Setup wirklich noch wesentlich bessere Ergebnisse erzielen kann?

    Zu den drei vorgeschlagenen Regelkonzepten:
    Das erste scheint mir wegen der zwei gestaffelten Reglern etwas umständlich. Wenn man einen glatten Übergang bei einem Sprung des Zeigers haben will, dann legen die Regelparameter des einen Reglers gleichzeitig die Parameter des zweiten Reglers fest. Mathematisch gesehen sollte es sich in diesem Fall auf einen Regler reduzieren lassen. Ob man die Geschwindigkeit oder die Position innerhalb des Reglers verrechnet ist wahrscheinlich auch völlig gleich, was man anfangs differenziert muss man eben hinterher wieder integrieren, letztlich kommt doch wieder das selbe heraus (so zumindest meine bescheidene Ahnung von Regelungstechnik).

    [QUOTE]Da es sich bei dem Motor um eine I Strecke handelt benutze ich lediglich den PD Anteil des Reglers[QUOTE]

    Ich bin jetzt nicht ganz sicher ob ich das ganz verstanden habe. Du misst einen Ist-Winkel, der Regler gibt einen Stellwinkel aus. Ich sehe die I-Strecke jetzt nicht.

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    Zitat Zitat von Feratu Beitrag anzeigen
    Problem: Also zunächst mal, die Positionierung funktioniert an sich wirklich gut, nur in der Endposition schwingt es zwischen 2.. 4 Pulsen hin und her.

    Problem: Der PID der sich um den kleinen Bereich kümmert schwingt. Das liegt hauptsächlich daran das ich sowas von an der Genauigkeitsschwelle des Dekoders hänge. Da es sich bei dem Motor um eine I Strecke handelt benutze ich lediglich den PD Anteil des Reglers.

    Problem: Der Motor bleibt in der Endposition zwar stehen jedoch nicht immer, und auch nur wenn ich den P-Regler wirklich sehr langsam einstelle.

    Das klingtnun nach viel Programmieraufwand usw aber ich habe alles in so in Module aufgeteilt das ich nur ein paar Zeilen ändern muss und schon funktoniert das das Regelsystem komplett anders.
    Das ist richtig und man kann theoretisch, falls überhaupt möglich, auch ohne lernen durch zufällige Änderungen das gewünschte erreichen.
    MfG (Mit feinem Grübeln) Wir unterstützen dich bei deinen Projekten, aber wir entwickeln sie nicht für dich. (radbruch) "Irgendwas" geht "irgendwie" immer...(Rabenauge) Machs - und berichte.(oberallgeier) Man weißt wie, aber nie warum. Gut zu wissen, was man nicht weiß. Zuerst messen, danach fragen. Was heute geht, wurde gestern gebastelt. http://www.youtube.com/watch?v=qOAnVO3y2u8 Danke!

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 16.04.2007, 06:22
  2. Antworten: 0
    Letzter Beitrag: 28.03.2006, 11:36
  3. Antworten: 3
    Letzter Beitrag: 07.03.2006, 22:47
  4. 3 Phasen Motor
    Von Harry123 im Forum Motoren
    Antworten: 1
    Letzter Beitrag: 22.01.2006, 11:11
  5. 3 Phasen Motor - Ansteuerung
    Von andi-58 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 25.10.2005, 23:11

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •