- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 9 von 9

Thema: Doppel pendel invertiert, regeln

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    29.06.2013
    Beiträge
    5

    Doppel pendel invertiert, regeln

    Anzeige

    Praxistest und DIY Projekte
    Guten Tag,

    habe eine Frage zu dem doppelten invertierten Pendel.

    Ich verstehe nicht wie man diesen regelt, sodass er senkrecht stehen bleibt.

    Die Lagrange-Gleichung kann ich aufstellen. So wie ich das verstanden habe,
    kann man bei der Lagrage-Gleichung die Winkel und deren Ableitungen eingeben
    und man bekommt die benötigten Drehmomente.

    Einen Robotor habe ich auch bereits, dieser erwartet die Positionen oder Winkel und regelt den Endeffektor mit dem PD Regler dorthin.

    Jetzt fehlt mir noch ein Puzzle wie ich weitermachen soll.
    Habe es davor noch nie gemacht und in den wissenschaftlichen Papers wird es nicht erklärt.

    - - - Aktualisiert - - -

    Mit Endeffektor meine ich den Arm, der dann den doppel-Pendel von unten bewegt.

    Was mir gearde eingefallen ist:
    Man könnte es mit dem PID-Regler probieren, in dem man die Regelabweichung (Winkel_soll - Winkel_ist) auf Null aus-regelt.
    Aber wie mache ich das mit Verbindung von Lagrange-Gleichung?

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    Könntest du den Aufbau nochmal genauer beschreiben? Ist mir noch nicht so ganz klar, was du meinst, das Doppelpendel hängt an einem Roboterarm? Oder hängt das Pendel an einem waagerechten Linearschlitten?

    Zum Doppelpendel:
    Soll es nur in der Ruhelage (beide Pendel stehen nach oben) geregelt werden oder soll es sich sogar selber aufstellen können? Wenns nur eine Regelung in der Ruhelage ist, sollte es reichen, die Bewegungsgleichungen, die du aus der Lagrangegleichung erhältst, um den Ruhelage zu linearisieren (phi1=phi2=0) und dieses linearisierte System für deinen Reglerentwurf zu verwenden. Kannst du vielleicht mal deine Bewegungsgleichungen zeigen?

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    29.06.2013
    Beiträge
    5
    Hier ist der Aufbau:


    Der Doppelpendel sind bei mir zwei Kreisscheiben. Gesteuert werden diese über die Bewegung des Effektors. Translation und Rotation.
    Ich möchte erst mal mit nur einer Kreisscheibe anfangen um das Prinzip der Regelung zu verstehen.

    Die Winkel der Kreisscheiben werden über das Kamerasystem geliefert.

    Zu den Gleichungen: Habe ein Foto von den Gleichungen T und V gemacht, da ich nicht weis, wie man hier Latex schreiben kann.
    Hoffentlich kann man es lesen. Falls etwas unklar ist bitte fragen.


    - - - Aktualisiert - - -

    Ich denke es ist besser in der Ruhelage zu regeln, damit man erst mal was hin bekommt und schaut, dass der Regler funktioniert.
    Für die eigentliche Bewegungsgleichung muss ich noch die Lagrange-Gleichung aufstellen.

    Bei der Linearisierung der Bewegungsgleichung meinst du schon die Lagrange-Gleichung, oder?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken manipulator2.jpg   gleichungen.jpeg  
    Geändert von Boschetun (08.07.2013 um 18:37 Uhr)

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    Ok, wie es aussieht hast du jetzt die Energiegleichungen für kinetische und potentielle Energie aufgeschrieben. Nun musst du noch die Lagrange-Gleichung damit anwenden:
    d/dt(dL/dx')-dL/dx=0
    Damit erhältst du die Bewegungsgleichungen.

    Dein System ist mir aber noch nicht ganz klar: was sind das für Scheiben auf dem Endeffektor, oder soll das das Doppelpendel sein? Wo sollen translatorische Freiheitsgrade sein? Bitte, beschreibe deine Aufgabe mal wirklich nachvollziehbar, bisher hast du uns nur Details verraten, aber noch nichts konkretes zum ganzen System.

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    29.06.2013
    Beiträge
    5
    Das system besteht aus einem Roboterarm mit einem runden End-Effektor. Auf diesen End-Effektor will ich Kreisscheiben balancieren.
    Zuerst nur eine Kreisscheibe. Der Roboterarm hat 3 Freiheitsgrade: x,y,phi .
    Mit dieser Anordnung will ich einen Regler erstellen, welcher den Schwerpunkt der Kreisscheibe über den Schwerpunkt des Endeffektors hält.
    Damit wäre die Kreisscheibe im Gleichgewicht. Die Position der Kreisscheibe sowie deren Orientierung erhalte ich über ein Camerasystem.

    Wenn man sich die Kreisscheibe als ein Balken denkt, dann ist die ganze Anordnung sehr ähnlich zu dem invertierten Pendel.
    Denn mit der Drehung des End-Effektors ändere ich die Position der Kreisscheibe. Somit wäre die Kreisscheibe eig. regelbar.

    Versuche gerade die Lagrange-Gleichung mit Hilfe von Matlab zu erstellen. L=T - V habe ich hin bekommen.
    Ist ein ziemlich langer Term!
    Jetzt kann ich aber nicht L nach thetas ableiten, wahrscheinlich weil diese bei mit zeitabhängig sind.
    Habe es so gemacht:

    syms t; %Zeit
    theta1 = sym('theta1(t)');
    %Z.B
    f = 3*theta1
    diff(f,theta1)

    das gibt komischerweise ein Problem.
    Error in sym/diff (line 44)
    R = mupadmex('symobj::diff', S.s, x.s, int2str(n));

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    In solchen Fällen würde ich erst nach einer Hilfsvariablen ableiten und diese dann durch Theta substituieren. Also in etwa so:

    syms t theta1h; %Zeit, Hilfsvariable
    theta1 = sym('theta1(t)');
    %Z.B
    f = 3*theta1h;
    g=diff(f,theta1h);
    g=subs(g,theta1h,theta1);

    Hmm, ich glaube nicht, dass es so einfach ist, wie du dir das denkst. Durch den Kontakt zwischen Kreisscheibe und Endeffektor kann sich nämlich die Kreisscheibe abwälzen, wodurch sich der Rotationsanteil verändert. Außerdem muss dabei Reibung beachtet werden, falls die Scheibe auf dem Effektor rutschen kann, und gegebenenfalls sogar abheben. Sehe ich das richtig, dass die Kreisscheiben einfach auf dem Endeffektor draufliegen, ohne weiter fixiert zu sein? Könnten die Kreisscheiben rein theoretisch nach vorne "umkippen"?

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    29.06.2013
    Beiträge
    5
    Habe vergessen zu erwähnen, dass der ganze Ablauf auf einem geneigten Tisch stattfindet. Der Kreis kann also nicht umfallen.

    Genau, die Kreisscheibe kann sich abwälzen aber durch die Drehung des Endeffektors soll sie aber stabil gehalten werden.
    Die Kreisscheibe ist aus Plastik und wiegt höchstens 200g. Die Scheibe ist nicht auf dem Endeffektor fixiert und kann abheben oder den Kontakt verlieren.
    Dazu habe ich eine Impuls- und Drall-Gleichung aufgestellt. Aus dennen habe ich bestimmt wie groß die Beschleunigungen der Winkel und y-Position werden dürfen. Das kann ich auch posten.

    Wie gesagt ich habe so was davor noch nie gemacht. Ist es richtig, dass die Lagrange-Gleichung mit dan den Bewegungsablauf und Momente des gesamten Systems gibt?
    Deswegen habe ich das Objekt mit in die Lagrange-Gleichung genommen.
    So wie ich mir das vorstelle ist wenn das Objekt sagen wir mal ein Stück nach rechts rutscht dann fixiert dass die Kamera. Der Lagrange-Gleichung wird gemeldet, dass sich der Manipulator nach links drehen soll.
    Die Lagrange-Gleichung liefert mir die nötigen Winkel wie ich den Roboter einstellen soll. Dann gebe ich die Winkel an die Roboter-Regelung und der Roboter führt die Bewegung aus.
    So stelle ich mir das vor.
    Frage ist: Ob die Lagrange-Gleichung das macht was ich mir vorstelle.
    Denn irgendwie finde ich in Büchern nichts. Oder ich schaue in die falschen Bücher. Denn es wird nicht das Prinzip erklärt.

    Danke für den Tipp mit Matlab!!! Das ist echt genial!

    Habe jetzt ein neues Problem. In der T-Gleichung habe ich Trägheits-Matrizen stehen. Bei der Berechnung kommen ebenfalls Matrizen mit complexen Anteilen.
    Aber das darf ja nicht sein. Das muss ja eine skalare Gleichung sein. Ich muss also die Trägheitsmatrizen in skalare Werte umrechnen.
    In einem Buch habe was dazu gefunden: Da wird die Trägheitsmatrix durch omega_i' * R_i * Trägheitsmatrix_li_nach_i * R_i'*w_i umgerechnet.
    Sehr seltsam.
    Es geht bestimmt auch einfacher, aber ich weiß noch nicht wie...

    - - - Aktualisiert - - -

    Habe noch ein wenig in Büchern geschaut.
    Ich führe nur Drehungen um die z-Achse aus, also brauche ich nur ein Element aus der Träghetsmatrix.
    Das mit der Rotation um die z-Achse. Vermute ich, bin mir noch nicht sicher.

  8. #8
    Erfahrener Benutzer Robotik Einstein Avatar von Geistesblitz
    Registriert seit
    15.03.2011
    Ort
    Dresden
    Alter
    36
    Beiträge
    1.937
    Wenn sich der Körper nur um die z-Achse dreht, dann brauchst du auch nur das Trägheitsmoment bezüglich der z-Achse
    Und da dein Körper rotationssymmetrisch ist, fallen die Deviationsmomente auch unter den Tisch.

    Die Lagrangegleichung ist eigentlich nur das Werkzeug, das du benutzt, um aus einem gegebenen System auf die Bewegungsgleichungen zu kommen. Mit den Bewegungsgleichungen musst du dann dein System steuern und deinen Regler auslegen. Die Bewegungsgleichung gibt normalerweise die Bewegungsabläufe zurück, wenn man eine Eingangsfunktion (Kräfte, Momente, Weganregung etc.) vorgibt. Somit kann man auch Sollwerte für die Bewegung vorgeben und sich umgekehrt die benötigten Stellmomente/-kräfte ausrechnen lassen (alles natürlich mit zeitlicher Abhängigkeit). Allerdings solltest du da wirklich nochmal ein wenig nachlesen, ich werd dir sicherlich nicht alles dazu erklären können.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    29.06.2013
    Beiträge
    5
    Vielen Dank, dass du dir Zeit nimmst mir zu Helfen!

    Bin immer noch dabei die Lagrange-Gleichung mit Matlab aufzustellen.
    Dabei bin ich auf folgendes gestoßen:
    p1 =
    l1*cos(theta1hilf)
    l1*sin(theta1hilf)
    >> p1'*p1
    ans =
    l1*cos(conj(theta1hilf))*conj(l1)*cos(theta1hilf) + l1*sin(conj(theta1hilf))*conj(l1)*sin(theta1hilf)

    Warum bekomme ich da komplexe Anteile?
    Wenn ich die Gleichung aufstelle habe ich dann lauter komplexe Anteile und dann wird es schwierig alles zusammenzufassen.

Ähnliche Themen

  1. Inverses Pendel
    Von mrg im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 10
    Letzter Beitrag: 06.04.2008, 17:55
  2. Projekt inverses Pendel
    Von Zentauro im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 2
    Letzter Beitrag: 12.06.2007, 09:04
  3. dauerschwingendes Pendel
    Von johannuhrmann im Forum Mechanik
    Antworten: 6
    Letzter Beitrag: 26.12.2006, 05:50
  4. Auto mit Pendel
    Von Fuzzy im Forum Motoren
    Antworten: 3
    Letzter Beitrag: 21.11.2006, 08:09
  5. LED-Pendel
    Von nux im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 2
    Letzter Beitrag: 16.07.2006, 18:23

Berechtigungen

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

12V Akku bauen