Selbstfahrendes Motorad mit Arduino: Unterschied zwischen den Versionen
Zeile 49: | Zeile 49: | ||
{| | {| | ||
|[[Datei:Beschreibung_des_Motorrades_durch_physikalische_Größe.png|thumb|links|600px|Bild 3: Beschreibung des Motorrades durch physikalische Größe. [[Benutzer:Junjie Lyu|Junjie Lyu]] ([[Benutzer Diskussion:Junjie Lyu|Diskussion]]) 10:49, 12. Okt. 2021]] | |[[Datei:Beschreibung_des_Motorrades_durch_physikalische_Größe.png|thumb|links|600px|Bild 3: Beschreibung des Motorrades durch physikalische Größe. [[Benutzer:Junjie Lyu|Junjie Lyu]] ([[Benutzer Diskussion:Junjie Lyu|Diskussion]]) 10:49, 12. Okt. 2021]] | ||
|[[Datei: | |[[Datei:Regelkreis_Selbstfahrendes_Motorrad.png|none|600px|thumb|Bild 4: Regelkreis des Motorrades.[[Benutzer:Junjie Lyu|Junjie Lyu]] ([[Benutzer Diskussion:Junjie Lyu|Diskussion]]) 12:19, 22. Okt. 2021]] | ||
|} | |} | ||
Zeile 74: | Zeile 74: | ||
|- | |- | ||
| <math> W </math> | | <math> W </math> | ||
| Sollgröße | | Sollgröße. Wenn das Motorrad ganz aufrecht steht, ist der Schräglagenwinkel "0". Das heißt: <math> W = 0 </math> | ||
|- | |- | ||
| <math> e </math> | | <math> e </math> | ||
| Regelfehler | | Regelfehler. Wir hoffen <math> e = 0 </math>. Das heißt: <math> e = W - r = 0 </math>. | ||
|- | |- | ||
| <math>y</math> | | <math>y</math> | ||
| Stellgröße des Reglers | | Stellgröße des Reglers. Regelkontroller entsteht Gain nach Regelfehler zur Steuerung des DC Motors. | ||
|- | |- | ||
| <math>y^'</math> | | <math>y^'</math> | ||
| Stellgröße | | Stellgröße. DC motor wirkt sich auf das Trägheitsrad zur Ausgleichung des Fehlers. | ||
|- | |- | ||
| <math>z</math> | | <math>z</math> | ||
| Störung | | Störung. Luftwiderstand, Rotationsreibung zwischen dem motorrad und dem Boden oder zwischen dem Motorrad und dem Trägheitsrad | ||
|- | |||
| <math>y_{ges}</math> | |||
| Gesamtgröße. Die Gesamtgröße auf dem System. | |||
|- | |- | ||
| <math>x</math> | | <math>x</math> | ||
| Regelgröße | | Regelgröße. Der Schräglagenwinkel auf dem System | ||
|- | |- | ||
| <math>r</math> | | <math>r</math> | ||
| Rückführgröße | | Rückführgröße. Die Größe des Schräglagenwinkels auf dem System wird von Sensoren gemisst. | ||
|} | |} | ||
Version vom 22. Oktober 2021, 13:51 Uhr
Autoren: Junjie Lyu
Betreuer: Prof. Schneider
Art: PA
Projektlaufzeit: 04/2021-04/2022
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
- Einarbeitung in das Thema, auch aus regelungstechnischer Sicht
- Identifikation des Regelstrecke
- Sichtung und Test des bestehenden Bausatzes
- Aufbau des Systems (ggf. Platinenfertigung, etc.)
- Vergleichen und bewerten Sie verschiedene Regleransätze (P, PI, PID und andere).
- Modellbasierte Programmierung der Hardware via Matlab und Simulink
- Test des Segway
- Dokumentation nach wissenschaftlichem Stand
- 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
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
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
physikalische Größe | Bedeutung |
---|---|
der Schräglagenwinkel 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 |
physikalische Größe | Bedeutung |
---|---|
Sollgröße. Wenn das Motorrad ganz aufrecht steht, ist der Schräglagenwinkel "0". Das heißt: | |
Regelfehler. Wir hoffen . Das heißt: . | |
Stellgröße des Reglers. Regelkontroller entsteht Gain nach Regelfehler zur Steuerung des DC Motors. | |
Fehler beim Parsen (Konvertierungsfehler. Der Server („cli“) hat berichtet: „[INVALID]“): {\displaystyle y^'} | Stellgröße. DC motor wirkt sich auf das Trägheitsrad zur Ausgleichung des Fehlers. |
Störung. Luftwiderstand, Rotationsreibung zwischen dem motorrad und dem Boden oder zwischen dem Motorrad und dem Trägheitsrad | |
Gesamtgröße. Die Gesamtgröße auf dem System. | |
Regelgröße. Der Schräglagenwinkel auf dem System | |
Rückführgröße. Die Größe des Schräglagenwinkels auf dem System wird von Sensoren gemisst. |
Bewertung verschiedener Regleransätze
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
- Arduino Engineering Kit
- YouTube: Unboxing the Arduino Engineering Kit
- YouTube: Motorcycle Self Balancing Using Reinforcement Learning
- YouTube: Motorcycle Maneuvers
- Arduino Store
Software
- Arduino Engineering Kit Hardware Support
- Arduino Engineering Kit Hardware Support für R2018b
- Arduino Engineering Kit Project Files
- Reinforcement learning with Self-balancing motorcycle
Siehe auch
→ zurück zum Hauptartikel: Studentische Arbeiten