-         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Problem mit PID-Regelung (Störfaktoren)

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66

    Problem mit PID-Regelung (Störfaktoren)

    Anzeige

    Hallo

    Ich verweise mal auf den letzten Beitrag von mir, das hier knüpft daran an.
    https://www.roboternetz.de/community...rehzahl)/page2

    Der Motor läuft nun und seine mechanische Bremse ist installiert und betriebsbereit.
    Es handelt sich um eine Scheibenbremse, welche mit einem Servo angesteuert wird.

    Das Problem ist nun das einmischen der Bremse in den Regelkreis.
    Ich habe jetzt seit Wochen versucht dies manuell zu tun. Z.B. durch schrittweise Erhöhung der Bremskraft, wenn die Drehzahl zu groß wird.
    Der Regelkreis kann natürlich nicht erkennen ob das Fahrzeug einen Berg herunter fährt
    (und damit niemals langsamer wird), oder ob ein Wechsel von z.B 1000 auf 500 1/min nur noch nicht passiert ist. In beiden Fällen würde die Bremse einfallen.
    Jedoch hätte letzterer Fall fatale Folgen. Es passiert dann das ich 90% Leistung auf 10% runter bremse, statt direkt mit 10% Leistung zu fahren. Er würde die Bremse also nie wieder lösen.
    Dies hatte ich gemildert, indem ich mit zustellen der Bremse auch Motorleistung wegnehme.
    Beim Bergabfahren würde er schön bremsen (da der Motor ja eh "extern" beschleunigt wird) und bei Geradeausfahrt würde der Motor zu langsam, was die Bremse folglich ebenfalls wieder lösen würde.
    Aber dies habe ich nur mit kleinen zustellungsschritten der Bremse hinbekommen. D.h. der Wagen hällt vor jedem Hindernis etwa 1 minute an bevor er weiter fährt.
    Denn so lange dauert es, bis die Bremse von inc 1 nach inc ~300 zugestellt ist und stark genug bremst.

    Im Grunde ist es einfach falsch die Bremse "manuell" mit einzubringen. Welche Möglichkeiten habe ich hier? Kann ich das vernünftig in den Regelkreis integrieren?
    Der Regelkreis geht ja davon aus, dass bei "mehr Gas" wirds schneller und bei "weniger Gas" wirds langsamer. Aber das ist ja nunmal nicht so.
    Irgendwie muss ich dem Teil beibringen die Bremse zu benutzen. Er muss die Zustellung dieser, auch berechen.

    Gruß, Andreas




  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.04.2013
    Beiträge
    444
    Ich würde sagen, die Bremse darf erst eingreifen, wenn die Motorleistung schon null ist und umgekehrt.
    Stell dir Bremse und Motor als ein gemeinsames System vor, daß Drehmomente von minus 100% bis plus 100% erzeugen kann. Für den positiven Ast ist der Motor zuständig und für den negativen die Bremse.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    3.046
    halte ich beides für nicht machbar mit 1 PID Regler, denn für den PID ist ja der Setpoint entscheidend, der zu erreichen ist, abhängig von der momentanen Stellung, und geregelt wird über den Antrieb mit angepasster Leistung, in jedwede Richtung.
    Ich kann mir nur 2 unabhängige, simultane PID Regler vorstellen, davon 1 nur für die Bremse.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    08.03.2010
    Beiträge
    66
    Zitat Zitat von hbquax Beitrag anzeigen
    Ich würde sagen, die Bremse darf erst eingreifen, wenn die Motorleistung schon null ist und umgekehrt.
    Stell dir Bremse und Motor als ein gemeinsames System vor, daß Drehmomente von minus 100% bis plus 100% erzeugen kann. Für den positiven Ast ist der Motor zuständig und für den negativen die Bremse.
    Das wird nicht funktionieren, da der Regelkreis ja nicht sofort auf 0 geht. Er wird den aktuellen Wert langsam verringern und es wird zunächst nichts passieren.
    Wenn es dann darum geht wieder zu beschleunigen braucht er ebenfalls lange um den Zustand wiederherzustellen.


    Zitat Zitat von HaWe Beitrag anzeigen
    halte ich beides für nicht machbar mit 1 PID Regler, denn für den PID ist ja der Setpoint entscheidend, der zu erreichen ist, abhängig von der momentanen Stellung, und geregelt wird über den Antrieb mit angepasster Leistung, in jedwede Richtung.
    Ich kann mir nur 2 unabhängige, simultane PID Regler vorstellen, davon 1 nur für die Bremse.
    Das ging mir zuletzt auch durch den Kopf.
    Es wäre ja machbar, aber was soll die Eingangsgröße für den zweiten Regelkreis sein? Auch die gemessene Drehzahl?
    Wenn beide die Drehzahl bekommen, rechnen sie an der selben Sache herum, vor allem wird das Ergebnis immer vom anderen beinflusst.
    Ich wäre jetzt davon ausgegangen, das die Beiden voneinander wissen sollten.

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.04.2013
    Beiträge
    444
    Wo ist das Problem? Du hast die Größe "Drehmoment" als Ausgabewert und versuchst einen Sollwert "Drehzahl" zu erzeugen. Also, wenn Drehzahl zu klein muss Drehmoment größer und wenn Drehzahl zu groß muss Drehmoment kleiner. Oder habe ich da was nicht verstanden? Und wenn dein Drehmoment den Wert Null hat, ist der Motor stromlos und die Bremse offen. Bei +1 gibt der Motor etwas Gas, bei +100 Vollgas, und bei -1 fängt die Bremse an zu ziehen. Oder kann der Motor auch bremsen? Dann verschiebt es sich etwas, wenn der Motor z.B. bei -50 voll bremst, muss ab -51 die Bremse dazukommen.

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    3.046
    Zitat Zitat von MechMac Beitrag anzeigen
    Das wird nicht funktionieren, da der Regelkreis ja nicht sofort auf 0 geht. Er wird den aktuellen Wert langsam verringern und es wird zunächst nichts passieren.
    Wenn es dann darum geht wieder zu beschleunigen braucht er ebenfalls lange um den Zustand wiederherzustellen.



    Das ging mir zuletzt auch durch den Kopf.
    Es wäre ja machbar, aber was soll die Eingangsgröße für den zweiten Regelkreis sein? Auch die gemessene Drehzahl?
    Wenn beide die Drehzahl bekommen, rechnen sie an der selben Sache herum, vor allem wird das Ergebnis immer vom anderen beinflusst.
    Ich wäre jetzt davon ausgegangen, das die Beiden voneinander wissen sollten.
    der PID Regler vom Motor merkt "nur", dass seine Bremswirkung evtl. stärker ist als er kalkuliert hatte.
    Dann wird er das nächste Mal seine Bremskraft (durch umgedrehte Rotation/Polung) zurücknehmen, per intern angepasster P,I,D-Werte.
    der Regler von der Bremse wird das auch merken, und ebenfalls anpassen.
    Du musst nur dafür sorgen, das die Bremse nur bei Verzögerung reagiert, nicht bei erwünschter Beschleunigung. Von daher reicht bei der Bremse wschl. ein einfacher selbstgeschriebener P- oder max. PD-Regler, mit einer if-Abfrage für die "Eine Richtung" wann er aktiv weren soll.
    Den PID vom Motor wird das aber nicht jucken.

    ps,
    du wirst den Motor-PID-Regler für seine internrn P,I,D-Werte möglicherweise aber schon nach-tunen müssen.
    Geändert von HaWe (17.11.2017 um 09:39 Uhr)
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  7. #7
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    1.947
    Wäre es nicht möglich, die Soll- Drehzahl für die Bremse minimal höher einzustellen, als für den Antrieb?
    Dadurch sollte der Antrieb schon ziemlich auf 0 Leistung stehen, bevor die Bremse zugreift.

    Dann dürfte auch ein einfacher P Regler für die Bremse ausreichen - Wenn bestimmte Toleranzen akzeptierbar sind.

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.04.2013
    Beiträge
    444
    Warum wollt ihr für Motor und Bremse zwei getrennte Regler aufbauen?

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    09.10.2014
    Beiträge
    3.046
    Zitat Zitat von hbquax Beitrag anzeigen
    Warum wollt ihr für Motor und Bremse zwei getrennte Regler aufbauen?
    was meinen Vorschlag angeht: weil der OP ja einen PID Regler für den Motor hat (wenn ich es richtig verstanden habe), und PID Regler approximieren ja nun mal den Setpoint durch gezielte Vorwärts/Rückwärtsbewegung des Motors, die aus den P,I,D Summanden errechnet wird; Setpoint können ein Encoder-Zielwert, eine Ziel-Geschwindigkeit, eine Ziel-Richtung oder eine besondere Sensor-Zielstellung sein:
    damit ist, was den Motor angeht, quasi die Bremse beim Annähern an den Setpoint immer eingebaut (was ja genau das Ziel der PID Regelung ist: Sie verhindert Verrecken kurz vor dem Ziel, zu starke anfängliche Beschleunigung, sowie Überschwingen und Oszillieren bis der Endpunkt erreicht ist, sofern der Regler korrekt getuned ist): Eine momentane Über- oder Unter-Regelung kann selbstständig (durch eine gegenüber der vorherigen nun entgegengesetzte Aktion) kompensiert werden.

    Die Bremse arbeitet dagegen anders, nämlich nur in 1 Richtung, grundsätzlich also völlig anders als ein Motor-PID Regler, und braucht daher m.E. einen eigenen Regelkreis: denn wenn sie zu früh zu stark betätigt wurde, kann sie (im Gegensatz zum Motor mit PID) diese zu starke Aktion (z.B. zu früher kompletter Stillstand) nicht wieder selbsttätig korrigieren.

    Verzichtet man auf eine PID-Regelung des Motors, kann ntl auch beides in 1 und denselben Regelkreis rein, im einfachsten Fall durch separate aber unmittelbar miteinander verknüpfte P-Regler.
    ·±≠≡≈³αγελΔΣΩ∞ Schachroboter:www.youtube.com/watch?v=Cv-yzuebC7E Rasenmäher-Robot:www.youtube.com/watch?v=z7mqnaU_9A8

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    07.03.2011
    Beiträge
    1.491
    Zitat Zitat von HaWe Beitrag anzeigen
    Die Bremse arbeitet dagegen anders, nämlich nur in 1 Richtung,
    Daß die anders ist, kann ich nicht erkennen. Der Antrieb arbeitet auch nur in einer Richtung, beschleunigen. Du hast also, wie beim Auto: das Gaspedal von angetippt bis voll durchgetreten und das Bremspedal ebenso. Beides gleichzeitig sollte nicht sein.

    Zitat Zitat von hbquax Beitrag anzeigen
    Stell dir Bremse und Motor als ein gemeinsames System vor, daß Drehmomente von minus 100% bis plus 100% erzeugen kann. Für den positiven Ast ist der Motor zuständig und für den negativen die Bremse.
    Ist der Motor zu langsam, gibt man mehr Gas, ist er zu schnell gibt man weniger (kleinerer Duty bei der PWM). Erreicht man so den Sollwert nicht oder nicht schnell genug (trotz Duty von 0%) muß man zusätzlich bremsen. Ob und wieviel man beschleunigt (Duty erhöht) oder abbremst (Duty erniedrigt und wenn schon 0% auch noch bremst) sagt einem der Regler. Für diesen Ablauf spielt die Art des Reglers keine Rolle. Ob bei so einem offenen System wie einem Fahrzeug ein PID Vorteile gegenüber dem einfacheren P Regler etwas bringt, wage ich zu bezweifeln. Man kann aber auch bei einem PID I und/oder D zu Null machen und sehen, was raus kommt.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Regelung mit PIC
    Von Shunth im Forum PIC Controller
    Antworten: 4
    Letzter Beitrag: 25.06.2010, 20:49
  2. Servomotor Regelung
    Von Robikid im Forum Motoren
    Antworten: 0
    Letzter Beitrag: 17.04.2010, 18:36
  3. RP5 Geschwindigkeits regelung
    Von Presse im Forum Robby CCRP5
    Antworten: 2
    Letzter Beitrag: 12.03.2008, 18:38
  4. PWM-Regelung
    Von eis im Forum Elektronik
    Antworten: 0
    Letzter Beitrag: 20.05.2007, 11:03
  5. Regelung in Akkuschraubern
    Von Powell im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 26.05.2006, 13:31

Berechtigungen

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