- LiFePO4 Speicher Test         
Ergebnis 1 bis 9 von 9

Thema: Regelungstechnik: Geschwindigkeitsregelung

  1. #1

    Regelungstechnik: Geschwindigkeitsregelung

    Anzeige

    Praxistest und DIY Projekte
    Hallo an alle,
    auch, wenn das schon 1000000x durchgekaut und erklärt wurde, komme ich bei einem aktuellen Projekt nicht weiter.
    Es geht um die Geschwindigkeitsregelung eines Roboters. Geregelt werden soll mit einem PID Regler. Ich bin schon so weit, dass ich die Regelabweichung berechne (also die aktuelle Geschwindigkeit (Differenz von zwei Encoderwerten über Zeitraum von 0.1s, logischerweise wird mit dieser Periode dann auch der Regler aufgerufen)). Dann komme ich aber schon nicht mehr wirklich weiter. Die Reglergleichung sieht momentan so aus:

    Code:
    e_speed_l = speed_l - speed_l_raw;
    esum_speed_l += e_speed_l;
    steer_l = ((KP_SPEED * e_speed_l) + (KI_SPEED * TA_SPEED * esum_speed_l) + ((KD_SPEED * (e_speed_l - ealt_speed_l))/TA_SPEED));
    (Aus dem RN Wissen Artikel Regelungstechnik übertragen). KI und KD sind 0, KP ist 1, sodass ich anfangs einen reinen P-Regler habe. Wie übertrage ich aber nun das Ergebnis der Reglergleichung auf den PWM Wert? Momentan ist der PWM Wert = steer_l, also das Ergebnis der Reglergleichnung. Mit KP = 1 schwingt die Geschwindigkeit extrem, wenn ich KP heruntersetze, ist die Schwingung gleich groß, die Geschwindigkeit wird nur logischerweise kleiner.

    Ich hoffe, dass ich das halbwegs verständlich erklärt habe und dass das Problem verstanden wurde.
    Vielen Dank und
    Viele Grüße
    Jan
    teamohnename.de

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.02.2006
    Ort
    Scheeßel
    Alter
    43
    Beiträge
    233
    Du gibst einfach das Ergebnis steer_l als Tastverhältnis für dein PWM raus.

    Dadurch ergeben sich zwei Dinge, die du beachten musst:

    1. hast du eine Stellgrößenbegrenzung auf den Bereich 0 - 100 (= dein Tastverhältnis in Prozent; die Begrenzung kann bei einem I-Regler oder einem Regler mit I-Anteil problematisch werden und zu unschönen Nichtlinearitäten führen; Gegenmaßnahme: Anti-Windup)
    2. musst du deinen P-Parameter entsprechend anpassen, dass der Regelkreis nicht schwingt; später deine Parameter für I und D natürlich ebenfalls. Wenn die Strecke selbst schon schwingungsfähig ist, kannst du Zieger & Nichols als einfaches Auslegungsverfahren verwenden.

    //update: deinen letzten inhaltlichen Satz habe ich überlesen. Ja, steer_l als PWM Tastverhältnis ist korrekt. Das Auslegen der Parameter ist jedoch relativ tricky. Da dein System aber schwingt, guck dir mal Ziegler & Nichols als Auslegungsmethode an. Die ist zwar nicht sooooo super genau am Ende, aber du kriegst damit recht schnell die passenden Parameter raus.

    //update: mir fällt gerade noch ein: sorgst du dafür, dass steer_l keine Werte außerhalb deines Intervalls für das Tastverhältnis annehmen kann? Also < 0% oder > 100%? Das musst du begrenzen. Es ist nicht ersichtlich, wie dein PWM reagiert, wenn es Werte außerhalb des Intervalls [0%, 100%] bekommt.
    Geändert von SeveQ (27.03.2013 um 23:54 Uhr)
    "Gute Autofahrer haben die Fliegen an der Seitenscheibe" (Walter Röhrl)

  3. #3
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Hei Jan,
    Regelungstechnik mit den Mikrocontrollern machte mir auch n Riesenproblem beim (Wieder-) Einstieg (nach dem Schulwissen).
    ... Geregelt werden soll mit einem PID Regler. Ich bin schon so weit, dass ich die Regelabweichung berechne ...
    Einen gewissen Fortschritt brachte es für mich, als ich mir die Skizze der Regelungsschleife hernahm und alle Größen mit MEINEN Namen beschriftet hatte. Sieh mal hier (klick). Das brachte - mir - den Durchblick. Na ja, die Einstellregeln aus dem RNWiki taten ein Übriges - daraus hatte ich prima die Werte von Kp, Ki und Kd ableiten können - und es funzt prima. Natürlich war die Vorarbeit die Aufnahme der Sprungfunktion >>im vollständig aufgebauten System<< - ist im ersten Link unten mal beispielhaft zu sehen oder auch hier. Ob Dir mein Code weiterhilft weiß ich nicht, aber vielleicht ists ne Anregung.

    Viel Erfolg (und wenn Du Lust hast, kannst Du hier die Regelung beim Arbeiten sehen).
    Ciao sagt der JoeamBerg

  4. #4
    Hallo,
    vielen Dank für Eure Antworten.
    Ich habe die Ursache des Problems nun gefunden und auch korrigiert: Es werden LEGO Motoren und die integrierten Quadraturencoder verwendet. Zuvor wurde nur ein Kanal des jeweiligen Encoders über einen normalen Interrupt Eingang des ATmega2560 eingelesen und eine Variable entsprechend inkrementiert. Bei langsamen Geschwindigkeiten macht das auch keine Probleme, wenn der Roboter aber schneller fahren soll, wird das wohl doch irgendwie beeinflusst (wie und warum genau, kann ich nicht sagen, aufgefallen ist das aber besonders beim Geradeausfahren nach trecke über Encoder, was über einer Geschwindigkeit nicht mehr richtig funktionierte, da der Encoderwert nur in eine Richtung hochgezählt wurde und eben auch, wenn der Motor nur minimal rückwärts gedreht hat => noch extremer, wenn Motor blockiert bzw. stark abgebremst wurde). Jetzt werden die Encoder über einen Timer und normale IOs des µCs ausgewertet (siehe mikrocontroller.net).
    Nun schwingt die Geschwindigkeit nicht mehr (so extrem, also nicht mehr nur Motor an/aus).

    @SeveQ:Das Ergebnis der Reglergleichung wird entsprechend begrenzt.
    @oberallgeier: Mit Regelungstechnik beschäftige ich mich relativ oft, das sind aber meist sehr sehr einfache Regelungen, z.B. Abstand zu einer Wand halten (da wird das Ergebnis der Reglergleichung nämlich von der Maximalgeschwindigkeit subtrahiert/addiert: Bei keiner Abweichung beide Motoren mit voller Geschwindigkeit fahren lassen, sonst die Abweichung einrechnen).
    Verwirrt hat mich nun, dass beim P-Regler die Sollgeschwindigkeit nie erreicht wird, ohne dass die Geschwindigkeit stark schwingt, aber das ist ja laut dem RN-Wissen Artikel normal und kann nur mit I-Anteil behoben werden.
    Ich habe auch schon bei anderen Dingen die Ziegler/Nichols Methode angewandt. Danke auf jeden Fall für die Links, werde ich mir anschauen!

    Habe ich es richtig verstanden, dass die Sprungantwort das Ergebnis der Reglergleichung aufgetragen zur Zeit ist?

    Vielen Dank für Eure Hilfe!

    Grüße
    Jan

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    21.02.2013
    Ort
    Graz
    Beiträge
    211
    Ich würd den PID-Algorithmus nicht das Tastverhältnis bestimmen lassen, sondern eine Änderung des Tastverhältnisses ausgehend vom letzten Wert. Sonst stellt der Motor kurz ab, sobald er die Sollgeschwindigkeit erreicht, nen.

    edit: Sprungantwort ist generell die Reaktion eines Systems auf eine stufenförmig verlaufende Eingangsgröße. Hier meint das die Reaktion der "Regelstrecke" (PWM bis Geschwindigkeitsmessung) auf eine abrupt veränderte Sollgröße, also der zeitliche Geschwindigkeitsverlauf, wenn man ein neues (konstant gehaltenes) Tastverhältnis vorgibt.
    Geändert von ichbinsisyphos (28.03.2013 um 17:44 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Hallo Jan.
    ... dass die Sprungantwort das Ergebnis der Reglergleichung aufgetragen zur Zeit ist ...
    Diese Aussage verstehe ich nicht wirklich.

    Die Sprungantwort ist der Verlauf der zu regelnden Größe beim/am/im betrachteten (zu betrachtenden) System auf eine sprunghafte Änderung der Stellgrösse. Genauer gesagt: bei ansonsten gleichbleibenden Bedingungen.

    Beispiel mit Regelgröße (zu regelnde Größe) = Geschwindigkeit, Stellgröße = Gaspedalstellung: Kupplung im Auto praktisch schlagartig kommen lassen und sozusagen gleichzeitig Gaspedal bis ans Bodenblech oder auf eine während der Messung konstant bleibende Stellung. Die "Antwort" ist die Reaktion des Systems, also, hier der zeitliche Geschwindigkeitsverlauf. Das ist aber nicht das, was ich unter dem Ausdruck "Reglergleichung" verstehe.

    Zitat Zitat von ichbinsisyphos Beitrag anzeigen
    ... Sprungantwort ist generell die Reaktion eines Systems auf eine stufenförmig verlaufende Eingangsgröße ...
    Sorry wenn ich jetzt pingelig bin: das ist nur richtig, wenns nur EINE Stufe gibt. Diese eine Stufe heißt eben dann "Sprung".
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.02.2006
    Ort
    Scheeßel
    Alter
    43
    Beiträge
    233
    Die Reglergleichung ist doch jene, die du oben schon genannt hast: Kp * e + Ki * (i * dt) + Kd * (de / dt) mit e = Regelfehler; i = akkumulierter Regelfehler; de = Delta Regelfehler; dt = Delta Zeit. Oder irre ich mich? (geht hier eigentlich MathML oder LaTeX Math?)
    "Gute Autofahrer haben die Fliegen an der Seitenscheibe" (Walter Röhrl)

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.686
    Zitat Zitat von SeveQ Beitrag anzeigen
    Die Reglergleichung ist doch jene, die du oben schon genannt hast ...
    Das glaube ich auch, vermutlich schon. Diese Gleichung hat aber mit der Sprungantwort erstmal nicht viel zu tun, da sie und ihre Parameter ohne praktische Messung eher mühsam theoretisch bestimmt werden müssen. 1) Die Sprungantwort wird ohne Regler bestimmt, bei der praktischen Bestimmung wird einfach eine sprungförmige Stellgröße aufgeschaltet, siehe Beispiel oben, weil sonst die tatsächliche Reaktion des Systems auf die sprunghafte Vorgabe "weggeregelt" wird.

    Dazu kommt noch, dass die Reglergleichung nur eine modellhafte und >handhabbare< Lösung einer Differentialgleichung ist. Da bleiben Glieder höherer Ordnung im Lösungsteil oder gering bewertete Anteile öfters/meistens vernachlässigt. Die Gleichung kann also kaum das genaue Verhalten des Systems bei einer sprunghaften Erregung abbilden. Klar - das klingt ziemlich theoretisch, ist es auch. Und deshalb ist die Bestimmung der Sprungantwort und deren Auswertung für die Dimensionierung des Reglers auch die Verbindung des realen Systems zur theoretischen Abbildung/Nachempfindung.

    1) Natürlich wird der Regler häufig theoretisch ausgelegt. Die Regelung des Seitenruders eines Airliners (und vieler anderer realer, technischer Produkte) beispielsweise wird erstmal theoretisch ausgelegt was die Verbindung Steuerknüppel zu Seitenruder betrifft. Ich habe nur einmal in meinem Leben experimentell etwas Ähnliches wie einen sprunghaften Seitenruderausschlag im Airliner in der Luft provoziert : Umschalten von einem Kompasssystem aufs andere. Die geringe Differenz der Systeme wird dann ungefiltert wirksam. Da denkt man schon, dass die Mühle auseinanderfliegt. Sprich: manche Systeme sind so groß, manche auch so komplex, dass das Experiment durch analytische Rechnungen ersetzt werden muss. Im vorliegenden Fall des Fahrroboters hiesse es also z.B. die Kennfelder des Motors und der Energiestation u.ä. zusammenrechnen und die in der Bewegungsgleichung für das Fahrzeug mit den Kennfeldern von Trägheits-, Roll-, Reibungs- Luft- und anderen Widerständen verrechnen. Da ackere ich lieber durch ein Sprung-Experiment oder finde mich mit einer Näherungslösung ab.
    Ciao sagt der JoeamBerg

  9. #9
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    73
    Beiträge
    11.077
    Hallo!

    @ teamohnename

    Mir ist noch eingefallen, dass ein bestehender oszillierender Regler sich praktisch am einfachsten mit Tiefpassfilter bzw. Hysterese am Vergleichknoten (ist = soll) "stabilisieren" lässt.
    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. RP6: Geschwindigkeitsregelung
    Von Max Web im Forum Robby RP6
    Antworten: 0
    Letzter Beitrag: 07.07.2012, 20:39
  2. Servo Geschwindigkeitsregelung
    Von lwink im Forum Motoren
    Antworten: 30
    Letzter Beitrag: 01.04.2011, 20:34
  3. Geschwindigkeitsregelung Mofa
    Von steg14 im Forum Elektronik
    Antworten: 15
    Letzter Beitrag: 06.11.2009, 20:16
  4. Geschwindigkeitsregelung mit PI-Regler
    Von asuro_oli im Forum Asuro
    Antworten: 8
    Letzter Beitrag: 03.03.2007, 14:34
  5. Motoren Geschwindigkeitsregelung
    Von martinheidelberg im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 11.10.2006, 19:22

Berechtigungen

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

LiFePO4 Speicher Test