Selbstfahrendes Motorad mit Arduino: Unterschied zwischen den Versionen

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Zeile 105: Zeile 105:
Wenn <math>K_p</math> größer als <math>M_M \cdot g \cdot h_cm</math> ist, dann geht die Winkelbeschleunigung des Motorrads um die Rad-Boden-Achse <math>\ddot{\theta}</math> in die entgegengesetzte Richtung des Neigungswinkels <math>\theta</math>. Das heißt, wenn sich das Motorrad in eine Richtung neigt, wird es in die entgegengesetzte Richtung beschleunigt. Wenn sich das Motorrad auf die andere Seite des Gleichgewichtspunktes bewegt, wechselt die Winkelbeschleunigung die Richtung, um das Motorrad wieder in Richtung Gleichgewicht zu bewegen. Es handelt sich um ein stabiles Gleichgewicht, d. h., wenn das System aus der Gleichgewichtslage heraus gestört wird, stellt es sich selbst wieder ins Gleichgewicht zurück.
Wenn <math>K_p</math> größer als <math>M_M \cdot g \cdot h_cm</math> ist, dann geht die Winkelbeschleunigung des Motorrads um die Rad-Boden-Achse <math>\ddot{\theta}</math> in die entgegengesetzte Richtung des Neigungswinkels <math>\theta</math>. Das heißt, wenn sich das Motorrad in eine Richtung neigt, wird es in die entgegengesetzte Richtung beschleunigt. Wenn sich das Motorrad auf die andere Seite des Gleichgewichtspunktes bewegt, wechselt die Winkelbeschleunigung die Richtung, um das Motorrad wieder in Richtung Gleichgewicht zu bewegen. Es handelt sich um ein stabiles Gleichgewicht, d. h., wenn das System aus der Gleichgewichtslage heraus gestört wird, stellt es sich selbst wieder ins Gleichgewicht zurück.


[[Datei:Lösung der Differentialgleichung von theta.JPG|thumb|500px|none|Bild5: Lösung der Differentialgleichung von theta. Abbildung zeigt die Prozesse der Lösungsfindung der Differentialgleichung von theta [[Benutzer:Junjie Lyu|Junjie Lyu]] ([[Benutzer Diskussion:Junjie Lyu|Diskussion]]) 20:43, 22. Okt. 2021]]
[[Datei:Lösung der Differentialgleichung von theta.JPG|thumb|500px|none|Bild4: Lösung der Differentialgleichung von theta. Abbildung zeigt die Prozesse der Lösungsfindung der Differentialgleichung von theta [[Benutzer:Junjie Lyu|Junjie Lyu]] ([[Benutzer Diskussion:Junjie Lyu|Diskussion]]) 20:43, 22. Okt. 2021]]


die Differentialgleichung (10) löst: <math> \theta(t) = A\sin(\sqrt{\frac{K_p-M_M \cdot g \cdot h_{cm}}{I_M}}t+B) </math>  <br/>
die Differentialgleichung (10) löst: <math> \theta(t) = A\sin(\sqrt{\frac{K_p-M_M \cdot g \cdot h_{cm}}{I_M}}t+B) </math>  <br/>

Version vom 22. Oktober 2021, 23:42 Uhr

Autoren: Junjie Lyu
Betreuer: Prof. Schneider
Art: PA
Projektlaufzeit: 04/2021-04/2022

Abb. 1: Arduino Engineering Kit - Selbstfahrendes Motorad


Thema

Aufbau eines selbsfahrenden Motorades, welches sich selbst während der Fahrt ausbalanciert.

Ziel

Das Arduino Engineering Kit ermöglicht den Aufbau dreier regelungstechnischer Herausforderungen. In diesem Projekt soll ein selbstfahrendes Motorad gebaut und programmiert werden.

Aufgabenstellung

  1. Einarbeitung in das Thema, auch aus regelungstechnischer Sicht
  2. Identifikation des Regelstrecke
  3. Sichtung und Test des bestehenden Bausatzes
  4. Aufbau des Systems (ggf. Platinenfertigung, etc.)
  5. Vergleichen und bewerten Sie verschiedene Regleransätze (P, PI, PID und andere).
  6. Modellbasierte Programmierung der Hardware via Matlab und Simulink
  7. Test des Segway
  8. Dokumentation nach wissenschaftlichem Stand
  9. Erstellung von Gefährdungsbeurteilung und Betriebsanweisung

Anforderung

  • Wissenschaftliche Vorgehensweise (Projektplan, etc.)
  • Wöchentliche Fortschrittsberichte (informativ)
  • Projektvorstellung im Wiki
  • Machen Sie ein tolles Videos, welches die Funktion visualisiert.

Gantt - Chart

Bild1: Gantt Chart für Projektarbeit Selbstfahrendes Motorrad. Junjie Lyu (Diskussion) 12:54, 17. Okt. 2021

Datei:Gantt Chart für Projektarbeit.xlsx

Die Projektarbeit einschließlich Projektseminar wird im Sommersemester 2021 angemeldet. Das heißt, die Benotung der Projektarbeit muss bis zum Ende des Wintersemesters 21/22 erfolgt sein.

Bewertung des Bausatzes

Das Motorrad ist ein zweirädrig Roboter, der mit Hilfe einer rotierenden Scheibe (Trägheitsrad) das Gleichgewicht halten und sich bewegen kann, um zu kompensieren, wenn das Motorrad das Gleichgewicht verliert. Das Motorrad wird von einem Arduino MKR1000, dem Arduino MKR Motor Carrier, einem Gleichstrommotor zum Bewegen des Hinterrads, einem Encoder, einem Gleichstrommotor zum Steuern des Trägheitsrads, einer 6-Achsen-IMU, einem Standardservomotor zum Lenken des Motorradgriffs, einem Abstandssensor (Ultraschallsensor) und einem Drehzahlmesser (Hallsensor) gesteuert. Der Hardwareaufbau konnte mithilfe der Anweisung des Anleitungsvideos zusammengebaut werden. Das Kabel vom Gleichstrommotor zum Steuern des Trägheitsrads ist nicht lang genug. Versuchen Wir, durch das Innere des Motorrads zu führen, um dem Arduino MKR Motor Carrier anzuschließen. Der Akku rutscht leicht vom Motorkörper. Versuchen wir, mit einem Gummi den Akku mit Motorkörper befestigen.

Aufbau des Systems

Bild2: Darstellung des Motorrades. Abbildung zeigt die Komponenten des Mortorrades Junjie Lyu (Diskussion) 21:34, 11. Okt. 2021

Die Komponenten sind in der Bild2 dargestellt. Die Basis dieses Projekts bildet das Arduino-Board "MKR1000". MKR Motor Carrier ist eine MKR-Zusatzplatine für "MKR1000" zur Steuerung von Servo-, Gleichstrommotoren. Außerdem erweitert MKR Motor Carrier die Fähigkeiten von MKR1000 und vereinfacht die Anschluss zur anderen Aktoren und Sensoren über ein Reihe von 3-poligen Stiftleisten. IMU Sensor enthält verschiedene Sensoren, Beschleunigungsmesser, Gyrokope und Magnetometer, in einem einzigen Gehäuse. Mit IMU Sensor, der auf dem MKR1000 sitzt, wird die vertikale Position des selbstbalancierenden Motorrad gemisst und erkannt, wenn es fällt und der Kommuniziert mit MKR1000 via 122C. Hallsensor misst die Geschwindigkeit vom Trägheitsrad. Encoder misst die Geschwindigkeit vom Motorrad. Ultraschllsensor erkannt die Hindernisse vor dem Mortorrad. Servo-Motor ändert die Fahrrichtung des Motorrades. Das Motorrad nutzt Simulink, um die Sensoren, Aktuatoren und die Bewegung zu überwachen und zu steuern.

Identifikation der Regelstrecke

In diesem Projekt selbstfahrendes Motorrad ist die Regelstrecke der Neigungswinkel .

Bild 3: Beschreibung des Motorrades durch physikalische Größe. Junjie Lyu (Diskussion) 10:49, 12. Okt. 2021
physikalische Größe Bedeutung
Tabelle 1: Bedeutung dieser physikalischen Größe in Bild 3
der Neigungswinkel ist 0 Grad , wenn das Motorrad vollkommen aufrecht steht, ist positiv, wenn das Motorrad von hinten gesehen gegen den Uhrzeigersinn geneigt ist, und negativ, wenn das Motorrad im Uhrzeigersinn geneigt ist.
die Rotationsverschiebung des Trägheitsrads relativ zum Rest des Motorrads ist , wobei eine positive Verschiebung als gegen den Uhrzeigersinn definiert ist.
Die Höhe des Massenschwerpunkts über dem Boden bei aufrechtem Motorrad ( = 0) ist definiert als

Theoretische Diskussion über Bewegungsgleichungen für Motorrad

Das Drehmoment beim Motorrad hat 3 Hauptkomponenten, das auf das Motorrad um die Bodenachse des Rades wirkt:

Gravitationsmoment

Trägheitsmoment des Trägheitsrads

Externes Drehmoment

In dieser theoretischen Diskussion werden wir uns auf das ideale Szenario konzentrieren, bei dem . Dissipative Kräfte wie Reibung und Widerstandseffekte zwischen beweglichen Teilen . Die Neigungswinkel ist sehr klein (nur wenige Grad), gilt für .

Nettodrehmoment beim Motorrad für Bodenradachsen:

Drehmoment beim Trägheitrad für Drehachse durch die Motorwelle des Trägheitsrades:

Gravitationsmoment:

Das von der Motorwelle auf das Trägheitrad ausgeübte Drehmoment ist gleich groß und entgegengesetzt zu dem vom Trägheitrad auf die Motorwelle ausgeübten Drehmoment:

Ersetze Gleichung (4) in Gleichung (1):

Ersetze Gleichung (3) in Gleichung (5):

Ersetze Gleichung (2) in Gleichung (6):

Ersetze Gleichung in Gleichung (7):

wir programmieren den Motor so, dass er ein Drehmoment aufbringt, das proportional zum Neigungswinkel selbst ist. Das heißt: . Ersetze Gleichung in Gleichung (8):
Von (9) erhalten wir:

Wenn größer als ist, dann geht die Winkelbeschleunigung des Motorrads um die Rad-Boden-Achse in die entgegengesetzte Richtung des Neigungswinkels . Das heißt, wenn sich das Motorrad in eine Richtung neigt, wird es in die entgegengesetzte Richtung beschleunigt. Wenn sich das Motorrad auf die andere Seite des Gleichgewichtspunktes bewegt, wechselt die Winkelbeschleunigung die Richtung, um das Motorrad wieder in Richtung Gleichgewicht zu bewegen. Es handelt sich um ein stabiles Gleichgewicht, d. h., wenn das System aus der Gleichgewichtslage heraus gestört wird, stellt es sich selbst wieder ins Gleichgewicht zurück.

Bild4: Lösung der Differentialgleichung von theta. Abbildung zeigt die Prozesse der Lösungsfindung der Differentialgleichung von theta Junjie Lyu (Diskussion) 20:43, 22. Okt. 2021

die Differentialgleichung (10) löst:

In der obigen Gleichung sind und Konstanten, die von den Anfangswerten von und abhängen. ist das Trägheitsmoment des Motorradsystems um die Rad-Boden-Achse. Wenn die Konstante erhöht wird, wird die Schwingungsfrequenz schneller. Wir wollen dieses Verhalten so verbessern, dass die Amplitude der Schwingungen abnimmt und sich schließlich auf einen konstanten Neigungswinkel von 0 einpendelt und das Motorradsystem stabil auf zufällige Störeinflüsse anspricht.

Bewertung verschiedener Regleransätze

Bild 5: Regelkreis des Motorrades.Junjie Lyu (Diskussion) 12:19, 22. Okt. 2021
physikalische Größe Bedeutung
Tabelle 2: Bedeutung dieser physikalischen Größe in Bild 5
Sollwert. Wenn das Motorrad ganz aufrecht steht, ist der Neigungswinkel "0". Das heißt:
Regelabweichung. Wir hoffen . Das heißt: .
Stellgröße des Reglers. Unter Berücksichtigung der dynamischen Eigenschaften der Regelstrecke wird Stellgröße des Reglers nach Regelabweichung bestimmt.
Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle y^'} Stellgröße. DC motor wirkt sich auf das Trägheitsrad zur Ausgleichung der Abweichung.
Störung. USB-Kabel gegen Motorräder, Luftwiderstand, Wind und verschiedene andere Ablenkungen
Gesamtregelgröße. Die Gesamtregelgröße auf dem System.
Istwert. Der Neigungswinkel auf dem System
Rückführgröße. Die Größe des Neigungswinkels auf dem System wird von Sensoren gemisst.

Wahl des Reglers

Simulation des Reglers

Realisierung des Reglers

Validierung des Reglers

Zusammenfassung und Ausblick

Quelltext

Video

Verlinken Sie hier ein YouTube-Video zu Ihrem fertigen Projekt. Tipps zum Video finden Sie hier.

Weblinks

  1. Arduino Engineering Kit
  2. YouTube: Unboxing the Arduino Engineering Kit
  3. YouTube: Motorcycle Self Balancing Using Reinforcement Learning
  4. YouTube: Motorcycle Maneuvers
  5. Arduino Store

Software

  1. Arduino Engineering Kit Hardware Suppo​rt
  2. Arduino Engineering Kit Hardware Suppo​rt für R2018b
  3. Arduino Engineering​ Kit Project Files
  4. Reinforcement learning with Self-balancing motorcycle

Siehe auch

  1. Studentische Arbeiten bei Prof. Schneider
  2. Anforderungen an eine wissenschaftlich Arbeit



→ zurück zum Hauptartikel: Studentische Arbeiten