ArduMower: Regler: Unterschied zwischen den Versionen
Zeile 130: | Zeile 130: | ||
! style="font-weight: bold;" | ID | ! style="font-weight: bold;" | ID | ||
! style="font-weight: bold;" | Testfallbeschreibung | ! style="font-weight: bold;" | Testfallbeschreibung | ||
! style="font-weight: bold;" | Eingänge | ! style="font-weight: bold;" | Eingänge Abstand_Soll_Kurs, PWM Sollgeschwindigkeit, Soll_Abstand | ||
! style="font-weight: bold;" | Erwartetes Ergebnis | ! style="font-weight: bold;" | Erwartetes Ergebnis | ||
! style="font-weight: bold;" | Testergebnis | ! style="font-weight: bold;" | Testergebnis | ||
Zeile 137: | Zeile 137: | ||
|- | |- | ||
| 1 | | 1 | ||
| Der Mäher fährt | | Der Mäher fährt mit 0,5 m Abstand zum Sollkurs. | ||
| 0. | | 0.5, 120, 0 | ||
| | | Der Mäher fährt zurück auf Sollkurs | ||
| OK | | OK | ||
| [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | | [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | ||
Zeile 145: | Zeile 145: | ||
|- | |- | ||
| 2 | | 2 | ||
| Der Mäher fährt | | Der Mäher fährt mit 1 m Abstand zum Sollkurs. | ||
| | | 1.0, 120, 0 | ||
| | | Der Mäher fährt in weniger als 3 m zurück auf Sollkurs | ||
| OK | | OK | ||
| [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | | [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | ||
Zeile 153: | Zeile 153: | ||
|- | |- | ||
| 3 | | 3 | ||
| Der Mäher fährt | | Der Mäher fährt mit 1,5 m Abstand zum Sollkurs. | ||
| | | 1.5, 120, 0 | ||
| | | Der Mäher fährt zurück auf Sollkurs. | ||
| OK | | OK | ||
| [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | | [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | ||
Zeile 161: | Zeile 161: | ||
|- | |- | ||
| 4 | | 4 | ||
| Der Mäher | | Der Mäher fährt mit 3 m Abstand zum Sollkurs. | ||
| | | 3.0, 120, 0 | ||
| | | Der Wert an den PWM Ausgängen überschreitet den Schwellwert von 255 nicht. | ||
| OK | | OK | ||
| [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | | [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | ||
Zeile 169: | Zeile 169: | ||
|- | |- | ||
| 5 | | 5 | ||
| | | Der Tower wir während der fahrt um 90 Grad gedreht. | ||
| 0 | | 0, 120, 0 | ||
| | | Der Mäher fährt zurück auf Sollkurs. | ||
| OK | | OK | ||
| [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | | [[Benutzer:Marcel_Kreuer| Marcel Kreuer]] | ||
| 24.01.2018 | | 24.01.2018 | ||
|- | |- |
Version vom 19. Februar 2018, 19:29 Uhr
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom Fachpraktikum Elektrotechnik im 6. Semester und 7. Mechatronik absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht.
Autoren: Marcel Kreuer
Betreuer: Prof. Dr.-Ing. Schneider, Prof. Dr.-Ing. Mirek Göbel
Einleitung
Dieser Artikel beschreibt die Implementierung des Reglers eines Mähroboters. Ziel ist es eine Regelung der Radgeschwindigkeiten zu erreichen, sodass der Mähroboter die von der Strategie errechneten Wege trotz Störeinflüssen befahren kann.
Anforderungen
Sowohl im Lasten als auch im Pflichtenheft finden sich keine direkten Anforderungen an eine Regelung der Fahrt des Mähroboters. Sie ist jedoch essential wichtig um beispielsweise die Fahrt zur Ladestation, das Umsetzen einer Mähstrategie, das vollständige Mähen der Fläche und die Anforderung an die Verarbeitungszeit zu erfüllen
Um eine Umsetzung des Reglers zu spezifizieren wurden folgende Anforderungen an die Karte gestellt
ID | Inhalt | Ersteller | Datum | Geprüft von | Datum |
---|---|---|---|---|---|
1 | Der Regler hat folgende Eingangsgrößen.
|
Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
2 | Der Regler hat folgende Ausgangsgrößen.
|
Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
3 | Der Roboter muss aus Entfernungen von bis zu 1,5 Metern zum Soll-Kurs, zurück zum Sollkurs finden. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
4 | Der Roboter muss aus einer Entfernung von 1 Meter, binnen 3 Metern zurück auf dem Soll-Kurs sein. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
5 | Der Roboter darf bei der Regelung im vorgeschriebenen Funktionsbereich nicht mehr als 30 cm überschwingen. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
6 | Die Regler muss zyklisch aktualisiert werden. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
7 | Die Umsetzung muss als Simulink-Modell erfolgen. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
8 | Die Implementierung muss nach dem Prinzip eines PID-Reglers geschehen. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
9 | Die Ausgangsgrößen dürfen einen Wert von 255 zu keiner Zeit überschreiten. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
10 | Die Implementierung muss ohne Beeinträchtigung der Laufzeit erfolgen. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
11 | Bei Kommentierung und Dokumentation muss sich an die Projektrichtlinien gehalten werden. | Marcel Kreuer | 05.10.2017 | Simon Kohfeld | 05.10.2017 |
Funktionaler-/Technischer Systementwurf
Bei der Größe des zu erstellenden Modells werden die Schritte Funktionaler Systementwurf / Technischer Systementwurf des V-Modells zusammen gelegt und bereits Schnittstellen zwischen den einzelnen Blöcken definiert.
- Aufgrund der geringen Komplexität des Reglers wird dieser in einem Block implementiert.
Komponenten Spezifikation
Das Modell des Reglers wird als Komponente aufgefasst, d.h. in einem Block Regler dem späteren Hauptprogramm zur Verfügung gestellt.
Dabei wird wie folgt vorgegangen.
Zunächst wird aus dem Abstand zum Soll-Kurs und dem Soll_Abstand eine Abweichung berechnet. Diese wird mit einem Multiplikationsfaktor(P-Anteil) verrechnet Parallel wird die Abweichung auch an einem Integrator (I-Anteil) und an einen Differentiator mit vorgeschaltetem Filter verrechnet. Die drei Anteile bilden addiert die Stellgröße. Von der Mittleren Geschwindigkeit der Räder wird die Steilgröße einmal Abgezogen und einmal Addiert, so dass sich unterschiedliche Werte für das Linke und Rechte Rad ergeben. Diese Werte werden auf 255 begrenzt.
Programmierung
Komponententest
Da es sich bei dieser Entwicklung um die einer einzelnen Komponente handelt, schließt der Komponententest mit dem Testbericht die Entwicklung ab.
ID | Testfallbeschreibung | Eingänge Abstand_Soll_Kurs, PWM Sollgeschwindigkeit, Soll_Abstand | Erwartetes Ergebnis | Testergebnis | Testperson | Datum |
---|---|---|---|---|---|---|
1 | Der Mäher fährt mit 0,5 m Abstand zum Sollkurs. | 0.5, 120, 0 | Der Mäher fährt zurück auf Sollkurs | OK | Marcel Kreuer | 24.01.2018 |
2 | Der Mäher fährt mit 1 m Abstand zum Sollkurs. | 1.0, 120, 0 | Der Mäher fährt in weniger als 3 m zurück auf Sollkurs | OK | Marcel Kreuer | 24.01.2018 |
3 | Der Mäher fährt mit 1,5 m Abstand zum Sollkurs. | 1.5, 120, 0 | Der Mäher fährt zurück auf Sollkurs. | OK | Marcel Kreuer | 24.01.2018 |
4 | Der Mäher fährt mit 3 m Abstand zum Sollkurs. | 3.0, 120, 0 | Der Wert an den PWM Ausgängen überschreitet den Schwellwert von 255 nicht. | OK | Marcel Kreuer | 24.01.2018 |
5 | Der Tower wir während der fahrt um 90 Grad gedreht. | 0, 120, 0 | Der Mäher fährt zurück auf Sollkurs. | OK | Marcel Kreuer | 24.01.2018 |
Zusammenfassung
Ansatzpunkte für die Fortführung des Ardumower Projektes
Pinbelegung der Motortreiber auf der Ardumower Platine
Geschwindigkeit links: PWM Pin 3
Geschwindigkeit rechts: PWM Pin 5
Richtung links: Digital Pin 31
Richtung rechts: Digital Pin 33
Link zum Quelltext in SVN
→ zurück zum Hauptartikel: Projekt ArduMower