- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 25

Thema: Testaufbau für Positionsregelung von DC-Getriebemotoren

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    38
    Beiträge
    1.937
    @Malthy: genau, der Stellwert geht direkt auf den Motor, ohne weitere Geschwindigkeitsregelung.

    Der grobe Ablauf der Reglerschleife sieht so aus:
    -Sollposition wird empfangen
    -Istposition wird gemessen
    -Istposition wird geglättet
    -Abweichung wird berechnet (Differenz aus Soll- und Istwert) -> E
    -Differenz aus Abweichung des letzten Rechenschritts und der aktuellen Abweichung wird berechnet -> dE
    -ist dE betragsmäßig größer als ein bestimmter Wert, wird es auf diesen Wert beschränkt
    -Integral wird berechnet (E wird auf E_int addiert, wenn PWM<1023) -> E_int
    -Tastverhältnis = k_p*E + k_d*dE + k_i*E_int + Versatz
    -je nachdem, ob Tastverhältnis positiv oder negativ ist, wird die H-Brücke auf Linkslauf oder Rechtslauf geschaltet
    -Betrag von Tastverhältnis bilden und auf max. 1023 begrenzen (10-bit-PWM)
    -Tastverhältnis an den PWM-Port übergeben
    -Istwert an PC senden

    Derzeit ist es leider so, dass der Regler im Interrupt der UART läuft, da ich nicht weiß, wie ich das Ganze sonst synchron zum Rechner halten soll. Eigentlich wäre es besser, wenn der Regler mit einem eigenen Timer läuft und den Rechner nach neuen Werten fragt anstatt umgekehrt. Was passiert dann aber, wenn der Rechner dann nix von sich hören lässt?

    Ansonsten ist es sicher auch nicht verkehrt, eine kaskadierte Regelung aufzubauen (on innen nach außen Stromregler, Geschwindigkeitsregler und Positionsregler). Das soll auch ganz gut zu implementieren gehen, da man sich von innen nach außen vorarbeiten kann. Dann kann man jeden einzelnen Regler so einstellen, dass er das gewünschte Verhalten zeigt und er dann mit der zugehörigen Strecke als Blackbox behandelt werden kann.
    AI - Artificial Idiocy

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von malthy
    Registriert seit
    19.04.2004
    Ort
    Oldenburg
    Beiträge
    1.379
    Hi,

    Derzeit ist es leider so, dass der Regler im Interrupt der UART läuft, da ich nicht weiß, wie ich das Ganze sonst synchron zum Rechner halten soll. Eigentlich wäre es besser, wenn der Regler mit einem eigenen Timer läuft und den Rechner nach neuen Werten fragt anstatt umgekehrt. Was passiert dann aber, wenn der Rechner dann nix von sich hören lässt?
    Das verstehe ich nicht ganz. Wieso hältst Du nicht einfach in einer Variable die Position vor, auf die das System einregeln soll. Das System kümmert sich dann darum, dass es gegen äußere Störungen auf der Position bleibt. Neue Sollpositionen kannst Du dann asynchron, d. h. zu beliebigen Zeitpunkten an das System übergeben. Oder übersehe ich da etwas?

    Ansonsten ist es sicher auch nicht verkehrt, eine kaskadierte Regelung aufzubauen (on innen nach außen Stromregler, Geschwindigkeitsregler und Positionsregler). Das soll auch ganz gut zu implementieren gehen, da man sich von innen nach außen vorarbeiten kann. Dann kann man jeden einzelnen Regler so einstellen, dass er das gewünschte Verhalten zeigt und er dann mit der zugehörigen Strecke als Blackbox behandelt werden kann.
    Ich habe das alles ja nie systematisch gelernt. Bei meinen robolink Armen kamen Schrittmotoren zum Einsatz. Die kann man ja leicht open loop auf Drehzahl halten. Insofern habe ich das System so aufgebaut, dass innen quasi eine Drehzahlsteuerung (keine Regelung) war, die sich auch um Anfahrrampen u.ä. gekümmert hat. Die übergeordnete Positionsregelung hat dann als Stellwert die Drehzahl für den entprechenden DOF ausgegeben. Die Positionsregelung wurde dadurch sehr einfach, im Prinzip funktionierte schon ein reiner P-Regler ganz ordentlich (hier zu sehen). Natürlich kann man einen Schrittmotor nicht mit einem DC Motor vergleichen, aus der Erfahrung würde ich aber auf jeden Fall dazu neigen, zuerst eine Drehzahlregelung aufzubauen und dann die Positionsregelung obendrauf zu setzen.

    Gruß
    Malte

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,

    [QUOTE=Geistesblitz;612287Derzeit ist es leider so, dass der Regler im Interrupt der UART läuft, da ich nicht weiß, wie ich das Ganze sonst synchron zum Rechner halten soll. Eigentlich wäre es besser, wenn der Regler mit einem eigenen Timer läuft und den Rechner nach neuen Werten fragt anstatt umgekehrt. Was passiert dann aber, wenn der Rechner dann nix von sich hören lässt?[/QUOTE]

    Im UART-Interrupt nimmst du den Sollwert entgegen und legst den in einer globalen Variablen ab, zudem setzt du noch ein Flag.

    Der Regler, eigentlich wie jetzt, läuft im Timerinterrupt.
    Einzige Änderung ist, dass der Regler sich das Flag anschaut. Wenn es gesetzt ist, wird der neuen Sollwert übernommen und das Flag zurückgesetzt.

    Der Regler kann dann noch ein Flag setzen, welches anzeigt, dass die Soll-Position erreicht wurde.
    Mit einem weiteren Flag kannst du den Regler auch noch abschalten.

    MfG Peter(TOO)

    ---------------------------- 17.2.2015 01:18 ----------------------------------------------

    Eine Kleinigkeit habe ich übersehen:
    Der Regler sollte in den Interrupt der PWM, evtl. kannst du per Software untersetzen, also nur bei jedem 10ten PWM-Zyklus einen neuen Stellwert berechnen. Hängt aber von den Zeitkonstanten ab (PWM, Motorträgheit).
    Andernfalls kannst du Schwebungen bekommen, zwischen PWM- und Abtastfrequenz, wenn die beiden Frequenzen nahe beieinander liegen.

    MfG Peter(TOO)
    Geändert von Peter(TOO) (17.02.2015 um 00:18 Uhr)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 21.03.2012, 18:43
  2. Grafik LCD Testaufbau
    Von darwin.nuernberg im Forum Eigene fertige Schaltungen und Bauanleitungen
    Antworten: 8
    Letzter Beitrag: 28.10.2007, 13:54
  3. ansteuerung von getriebemotoren
    Von RedEagle667 im Forum Motoren
    Antworten: 6
    Letzter Beitrag: 04.05.2006, 12:01
  4. Ansteuerung von 8 Getriebemotoren
    Von j_volkers im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 6
    Letzter Beitrag: 30.09.2005, 20:18
  5. Antworten: 3
    Letzter Beitrag: 18.11.2004, 18:50

Berechtigungen

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

Labornetzteil AliExpress