AM 11: PID-Regler
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom Fachpraktikum Elektrotechnik im 5. Semester 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: Simon Kohfeld, Marcel Kreuer
Betreuer: Prof. Schneider
Aufgabe
Regelung des Motors
Erwartungen an die Projektlösung
- Einarbeitung in die bestehenden Ardumowers-Unterlagen
- Implementierung des PID-Reglers zur Regelung der Antriebe.
- Reglersimulation
- Realisieren Sie eine geschmeidige Geschwindigkeitsregelung
- Realisieren Sie ein schwingungsfreies Folgen der Induktionsschleife zur Ladestation
- Mitwirkung bei der Inbetriebnahme und an der Schnittstelle Motor
- Darstellung und Bewertung der Ergebnisse im Vergleich zur Referenz und Simulation
- Erstellen Sie ein faszinierendes Video, welches die Funktion visualisiert.
- Test und wiss. Dokumentation
Schwierigkeitsgrad
- Mechanik:
- Elektrotechnik: *
- Informatik: **
Einleitung
Das Ardumowerprojekt des 5. Semesters Mechatronik in Kooperation mit dem Masterstudiengang Business and System Design Engineering an der Hochschule Hamm-Lippstadt hat zum Ziel, einen voll funktionsfähigen autonomen Rasenmähroboter in Betrieb zu nehmen. Dazu werden die notwendigen Aufgaben für die Erfüllung des Projektes auf einzelne Gruppen aufgeteilt. Der PID-Regler ist ein Bestandteil des Ardumower-Projektes und wird von einer Gruppe mit zwei Personen bearbeitet. Er soll für ein möglichst genaues Einhalten der vorgegebenen Richtung sorgen und somit Störeinflüsse auf die Fahrtrichtung herausregeln. Dazu ist es notwendig eine Hardware auszuwählen, die für den Regler relevante Messgrößen liefert. Anschließend muss der Regler mit einer Software impementiert werden und der ausgewählte Sensor dort eingebunden werden. In diesem Artikel werden begleitend zum Projekt des Ardumower der Projektverlauf und die erarbeiteten Aufgaben sowie die erreichten Ziele des Bereichs PID-Regler dokumentiert.
Projektdurchführung
In einem Kick-Off Meeting teilen die Projektleiter des BSE-Masterstudiengangs die einzelnen Themen in größere Bereiche auf, um die Projektkoordination zu vereinfachen. Der PID-Regler wird in die Gruppe Sensorik eingeordnet. Zusätzlich wird bekannt gegeben, dass im Rhytmus von zwei Wochen ein Wochenbericht jeder Gruppe im SVN hochzuladen ist, um den aktuellen Projektfortschritt überwachen zu können und um mögliche Probleme möglichst früh erkennen zu können.
Das Gesamtprojekt wird in drei Meilensteine aufgeteilt. Zunächst soll die Beschaffung stattfinden, dann schließt sich ein Funktionstest an, gefolgt von einem Integrationstest. Am 09.01.2017 soll das Gesamtprojekt im Rahmen einer öffentlichen Messe vorgestellt werden.
Benötigte Komponenten
Für den PID-Regler selbst werden keine Bauteile benötigt, da er auf die Daten der Gruppe Inertialnavigation zurückgreift und die geregelten Werte an die Motoren weitergibt, für welche es ebenfalls eine Gruppe gibt. Um in der Testphase eine zeitliche Unabhängigkeit zu gewärleisten, wird ein Ardumower Mini mit einem 3-Achsen Gyroskop bestellt. Dadurch können unabhängige Funktionstests durchgeführt werden. Die Aufgabe lautet also, den Ardumower Mini in Betrieb zu nehmen, um den Sourcecode für den PID-Regler testen zu können, damit die Läuffähigkeit für das Hauptprojekt garantiert werden kann.
Einarbeitung in bestehende Ardumower-Unterlagen
Da Ardumower ein OpenSource Projekt ist, gibt es den Sourcecode online zum Download. Dieser beinhaltet auch eine .cpp-Datei für den PID-Regler. Die notwendigen Einstellungen sind im Header dieser Datei beschrieben. Der P-Anteil soll erhöht werden, bis ein Signal vorhanden ist. Der I-Anteil kann dann auf 0,6*P und der D-Anteil kann auf 0,125*p eingestellt werden.
Laut Ardumower Wiki soll die OpenSource Software direkt auf den bestellten Arduino Mega geladen werden können und lauffähig sein.
Funktionsweise des Reglers
Das nachfolgende Simulink-Modell soll die Funktionsweise des PID-Reglers verdeutlichen. Die Eingangsgröße in den PID-Regler ist der Gierwinkel. Der Gierwinkel wird daraufhin mit dem Sollwinkel verglichen, das Ergebnis ist die Abweichung. Diese wird an den PID-Regler übergeben und in einen Korrekturfaktor umgewandelt. Beim Korrekturfaktor muss darauf geachtet werden, das dieser vom Betrag her nicht größer ist, als die Sollgeschindigkeit, da sonst negative Signale an den PWM-Ausgang zum Ansteuern der Motoren übergeben werden könnten. Die PWM-Ausgänge erwarten jedoch einen Wert zwischen 0 und 255.
Um eine Lenkregelung des Roboter durchzuführen wird der Korrekturfaktor auf der linken Antriebsseite von der Sollgeschindigkeit abgezogen und auf der Rechten hinzugerechnet. Der errechnete Wert wird an den jeweiligen PWM-Pin übergeben.
Erweiterungsmöglichkeiten
Nach momentanem Stand können die Motoren nur Vorwärts angesteuert werden. Eine sinnvolle Erweiterung wäre das Miteinbeziehen der Pins am Motortreiber zur Richtungsumkehrung. Auch sind der Sollwinkel und die Sollgeschwindigkeit feste Parameter. Schreibt man den PID-Regler als Funktion, so können diese Werte als Eingänge gewählt werden um beispielsweise eine Drehung auf der Stelle mit der Sollgewindigkeit 0 zu Realisieren.
Projektverlauf
Nach dem Kick-Off Termin wird damit begonnen eine BOM zu erstellen, welche in der Abbildung zu sehen ist.
Es werden ein Ardumower Mini mit den empfohlenen Komponenten und ein 3-Achsen Gyroskop bestellt.
Nachdem die Komponenten eingetroffen sind, wird mit dem Aufbau des Ardumower Mini begonnen. Es fällt auf, dass dieser einige vorgebohrte Löcher hat, diese aber für die wenigsten Komponententen passend sind. Aus diesem Grund ragen einige Komponenten über den Ardumower Mini hinaus. Der Zusammenbau gelingt schließlich und ist in der Abbildung zu sehen.
Bei der Einarbeitung in den OpenSource Quellcode für den Ardumower fällt auf, dass dieser von ziemlich schlechter Qualität ist. So fehlt eine hinteichende Kommentierung des Codes und die im Funktionsheader beschriebenen Einstellungen bezüglich der P-, I- und D-Werte sind nicht sichtbar zugänglich, was eine möglichst schnellen Inbetriebnahme unmöglich macht. Der gesamte Ardumower-Quellcode ist zusammenhängend und kann in dieser Gesamtheit nicht auf den AduinoMega gespielt werden, da es bei der Kompilierung zu Fehlern kommt, die im Umfang des Codes nicht gefunden werden können.
Ein neuer Ansatz wird gewählt und ein PID-Regler selbsständig implementiert. Dazu erfolgt zunächst eine Absprache mit der zuständigen Gruppe für die Inertialnavigation, um sich auf eindeutige Schnittstellen einigen zu können.
Ergebnis
Bei Ablauf des Projektzeitplans kann der PID-Regler auf Basis der Daten der Inertialnavigation die Geradeausfahrt des ArdumowerMini regeln. Da die Ansteuerung der Motoren des ArdumowerMini identisch zu der Ansteuerung der Motoren des Ardumower ist, wird diese geregelte Geradeausfahrt auch für den Ardumower funktionieren. Ein Test dieser Geradeausfahrt war im Rahmen des Projektes nicht mehr möglich.
Zusammenfasung
Insgesamt ist das Teilprojekt PID-Regler erfolgreich bearbeitet worden, da der Funktionstst des Reglers an der Testhardware erfolgreich war. Endgültig abgeschlossen werden konnte das Projekt nicht, da der Abschlusstest an der Originialhardware nicht vorgenommen wurde.
Ausblick
Um das Teilprojekt PID-Regler abzuschließen,sollte die erstellte Software auf der Originalhardware zum Einsatz kommen. Außerdem bezieht der PID-Regler sich lediglich auf die Daten der Inertialnavigation, sodass zusätzlich ein Einbezug der Daten des Perimeter-Schleifen-Sensors möglich ist, um auch ein geregeltes Fahren entlang der Schleife zu ermöglichen.
Weiterführende Links
- Ardumower Wiki
- PID-Regler
- Artikel: Exakt geradeausfahren
- Überblick über alle Sensoren des Ardumower
- Überblick über alle Schnittstellen der Hauptplatine
- Überblick über den in der Hauptsoftware integrierten PID-Regler des Ardumower
- Forenbeitrag über die passende Auslegung des PID-Reglers des Ardumower
- Datenblatt des Gyros auf der GY-85 Platine
- Datenblatt des Gyros auf der GY-80 Platine
Unterlagen
YouTube-Video
Das YouTube Video der PID-Regler-Gruppe ist hier zu finden.
→ zurück zum Hauptartikel: Fachpraktikum Elektrotechnik (WS 16/17)