C-Implementierung einer PID-Roboter-Regelung

Aus Winfwiki

Wechseln zu: Navigation, Suche
Vorwort
Als Basis dieses Artikels dient die Abschlussarbeit (Bachelor Thesis) zum Bachelor of Information Technology Engineering von Herrn Christian Scharrer. In diesem Artikel finden Sie die leicht veränderte und gekürzte Fassung dieser Abschlussarbeit.


Titel der Bachelor Thesis
C-Implementierung einer PID-Roboter-Regelung mit prädiktiver Erweiterung zur Trajektorienverfolgung auf Basis eines ATmega8-Controllers

Status: Rohentwurf

Inhaltsverzeichnis


1 Einführung

Im vorliegenden Artikel geht es um eine Trajektorienverfolgung mit einem Embedded System. Das Embedded System trägt die Abkürzung ASURO. Obwohl in dieser Abkürzung schon das Wort Roboter vorhanden ist, wird diese Bezeichnung im folgenden als eigenständiger Name behandelt und zum Zwecke der flüssigen Lesbarkeit oft als ASURO-Roboter bezeichnet.

Anhand des ASURO-Roboters wird ein PID-Regler auf Basis eines ATmega8-Controllers entwickelt, programmiert und getestet. Die Programmierung erfolgt in der Programmiersprache C. Dieser Algorithmus übernimmt die Regelung des Antriebsystems, um eine Trajektorienverfolgung zu realisieren. Zur Erweiterung wird die Regelung auf eine Vektorbasis umgestellt und ein Prädiktionsalgorithmus implementiert.

Für aufgeführte Zahlen ohne Angaben zu Einheiten gilt das internationale Einheitensystem Système international d'unités SI.

Die Ausführungen zur Regelungstechnik beziehen sich auf SISO-Systeme. MIMO-Systeme werden aufgrund ihrer Komplexität in diesem Artikel nicht betrachtet.

Bei der theoretischen Betrachtung einer umfangreichen Regelung auf einem Embedded System ergeben sich mehrere Fragestellungen:

  • Kann eine PID-Regelung auf einem 8 Bit, 8 MHz Prozessor entwickelt werden?
  • Laufen die Berechnungen zeitdiskret ab?
  • Wird eine Echtzeitberechnung erreicht?
  • Ist die Regelung stabil?
  • Fährt der Roboter enge Kurven oder rechte Winkel?

Die Zielsetzung dieser Ausführung besteht darin, diese und weitere Fragen im Verlauf des Artikels zu spezifizieren und zu beantworten.

Der Leser sollte über Grundkenntnisse der Regelungstechnik und Elektrotechnik verfügen. Zum besseren Verständnis dieses Artikels wird auf Hardware-Bauteile eingegangen. Es sind jedoch tiefergehende Kenntnisse des Lesers nötig, da auf eine sehr detaillierte Darstellung verzichtet wird. Programmiererfahrung mit der Programmiersprache C fördern das Leseverständnis des Lesers. Es werden mehrfach Sequenzen des Quellcodes oder eines Algorithmus aufgeführt.

2 Grundlagen

In diesem Kapitel werden die wichtigsten Grundlagen der Regelungstechnik sowie der Embedded Systems zusammengefasst und dargestellt. Die weiteren Kapitel bauen auf diesen Informationen auf.

2.1 Regelungstechnik

Zu den Grundlagen der Regelungstechnik gehören die im folgenden aufgeführten wichtigen Punkte.

2.1.1 Steuerung

Diagramm einer Steuerkette

Bei der Steuerung handelt es sich um einen offenen Wirkungskreislauf. Kennzeichnend für eine Steuerung ist das Fehlen einer Rückkopplung der Regelgröße y(t). Der hier entstandene Wirkablauf wird Steuerkette genannt [1].
mehr ...

2.1.2 Regelung

Diagramm eines Regelungskreises

Im Gegensatz zur Steuerung handelt es sich bei einer Regelung um einen geschlossenen Wirkungskreislauf. Kennzeichnend für eine Regelung ist die Rückkopplung der Regelgröße y(t) und die Berechnung der Regeldifferenz e(t). Der hier entstandene Wirkungskreislauf wird darum Regelungskreis genannt [1].
mehr ...

2.1.3 Laplace-Transformation

Eine in der Regelungstechnik besonders häufig genutzte Methodik ist die Laplace-Transformation. Sie wurde nach dem französischen Mathematiker Marquis de Laplace (1749 - 1877) benannt. Sie gilt als wichtigstes Hilfsmittel zur Lösung linearer Differenzialgleichungen mit konstanten Koeffizienten. Hierbei geht es um die Tranformation einer Zeitfunktion in den Bildbereich. Der Bildbereich wird auch als Frequenz-Bereich bezeichnet.
mehr ...

2.1.4 Modellbildung

Mit Hilfe eines mathematischen Modells können bei Regelsystemen physikalische und logische Gesetzmäßigkeiten analytisch erfasst oder bestimmt werden. Die vorhandenen Systemeigenschaften bestimmen die Form des Modells: Es finden algebraische, logische oder Differenzialgleichungen Anwendung. Allgemein stellen derartige Systemmodelle die Basis für die Analyse und Synthese von Regelungsprozessen dar. Eine Simulation solcher Prozesse ermöglicht das Testen verschiedenartiger Situationen und Betriebsfälle, die im realen Prozess kaum oder nur mit erheblichem Aufwand überprüft werden können. Das reale Verhalten eines Systems kann in abstrahierter Form durch ein Modell vereinfacht, aber trotzdem ausreichend beschrieben werden [2].

Lineare und nichtlineare Systeme
Entscheidend für die Berechnung eines Reglers ist das Linearitätskriterium. Ein lineares System bezeichnet ein System linearer Gleichungen, gewöhnlicher Differentialgleichungen oder einfache funktionale Zusammenhänge. Besonders leicht lässt sich ein LTI(Linear Time-Invariant)-System berechnen.
mehr ...

2.1.5 kontinuierliche oder diskrete Arbeitsweise

In der Regelungstechnik werden die kontinuierliche und die diskrete Arbeitsweise unterschieden. Liegt ein Eingangs- oder Ausgangssignal zu jedem beliebigen Zeitpunkt vor, so wird dies als kontinuierlicher Signalverlauf bezeichnet. Eingangs- und Ausgangssignal sind stetig in Grenzen veränderbar.

Können aber nur gewisse diskrete Amplitudenwerte angenommen werden, dann handelt es sich um ein quantisiertes Signal.

Wenn der Wert nur zu bestimmten diskreten Zeitpunkten bekannt ist, handelt es sich um ein (zeit)diskretes Signal.

Falls die Signalwerte zu Zeitpunkten mit dem Intervall T ermittelt werden können, so liegt ein Abtastsignal mit der Abtastperiode T vor. Diese Systeme werden auch als Abtastsysteme bezeichnet. Alle Regelsysteme, die sich eines Digitalrechners bedienen, können nur diese zeitdiskreten quantisierten Signale verarbeiten [2].

2.1.6 Stabilität

Beispiel einer stabilen Regelung
Beispiel einer stabilen Regelung
Beispiel einer instabilen Regelung
Beispiel einer instabilen Regelung

Voraussetzung für die Brauchbarkeit eines Regelungssystems ist dessen Stabilität. Unter der Stabilität eines Regelungssystems wird die Eigenschaft verstanden, dass ein System bei einer beschränkten Eingangsgröße mit einer ebenfalls beschränkten Ausgangsgröße antwortet. Im Regelungskreis muss sichergestellt sein, dass die Regelgröße y(t) stabil verläuft, das heißt, sich aperiodisch oder periodisch gedämpft der Führungsgröße nähert.
mehr ...

2.1.7 Stationäres Verhalten

Eine weitere wichtige Aufgabe des Regelungskreises besteht darin, dass sich die Regelgröße y(t) trotz auftretender Störungen z(t) der Führungsgröße w(t) anpasst. Wird die Regelabweichung ausgeglichen, so wird dies stationäres Führungsverhalten genannt.
mehr ...

2.2 Embedded Systems

Ein Embedded System ist ein autarkes elektronisches System, das in einer technischen Umgebung für dezidierte Aufgaben eingefügt ist. Neben den speziellen elektronischen und mechanischen Bauteilen wird ein Embedded System in der Regel durch einen Digitalrechner gesteuert. Der dafür verwendete Digitalrechner kann aus einem standardisierten Microprozessor oder einem Microcontroller bestehen. Die für das System erstellte Software ist ebenfalls Bestandteil des Embedded Systems [3].

2.2.1 Embedded Control System

Bei einem Embedded Control System wird das Embedded System durch die Implementierung eines Reglers erweitert. Embedded Control Systems beinhalten somit sämtliche benötigten Hard- und Softwarekomponenten, die zum Messen, Vergleichen und Steuern benötigt werden.

Der in diesem Artikel vorgestellte Roboter ist ein solches Embedded Control System. Aufgrund des allgemeinen Sprachgebrauchs und zur Vereinfachung wird der ASURO weiterhin Embedded System genannt, wohlwissend, dass es sich um ein Embedded Control System handelt.

2.2.2 Echtzeit

Bei einem beliebigen Digitalrechner wird zwischen der harten Echtzeit und der weichen Echtzeit unterschieden. Bei harter Echtzeit muss die Verarbeitung eines Prozesses innerhalb eines vereinbarten Zeitabschnitts erfolgen. Bei der sogenannten weichen Echtzeit muss in der Regel, also mit einer gewissen Toleranz, die Verarbeitung eines Prozesses innerhalb des vereinbarten Zeitabschnitts erfolgen.

In einigen Einsatzbereichen ist harte Echtzeit unabdingbar. Beispielsweise muss ein Herzschrittmacher das Herz genau zum Zeitpunkt des Problems unterstützen. Das gilt ebenso beim Anti-Blockier-System.

Im Gegensatz dazu genügt bei Audio- und Multimediaanwendungen eine weiche Echtzeit. Ein CD-Player, dessen Bitumwandlung in Audiosignale zu lange dauert, liefert einen schlechten Klang. Ein vereinzeltes Überschreiten der Umwandlung fällt dagegen kaum oder überhaupt nicht auf [4].

2.2.3 Microcontroller

Der ATmega8-Controller
Der ATmega8-Controller

Die Funktion eines Microprozessors (CPU - Central Processing Unit) besteht darin, Rechen- und Steuerprozesse zu bearbeiten. Im heutigen Personal-Computer sind solche Microprozessoren verbaut. Für weitere Aufgaben werden zusätzliche Bauteile wie Hauptspeicher, Interrupt- oder DMA(Direct Memory Access)-Controller und Analog-Digital-Wandler benötigt. Da auf einem Embedded System wenig Platz vorhanden ist, wird ein großer Teil dieser Bauteile direkt auf dem integrierten Schaltkreis hinzugefügt. Der dadurch entstandene Schaltkreis heißt Microcontroller [5].

Der im ASURO verwendetete ATmega8 ist ein solcher Microcontroller.

3 Regelungsproblem

4 Trajektorienverfolgung

5 Realisierung

6 Verifikation

7 Zusammenfassung und Ausblick

Im Rahmen dieser Arbeit wurde der ASURO-Roboter als Bausatz erworben, gelötet und montiert. Zusätzlich zur Grundausstattung ist die hardwaretechnische Erweiterung für einen ISP-Anschluss implementiert worden. Damit bei den Versuchen der originale von der Firma Arexx speziell mit einem Bootloader ausgestattete Controller nicht beschädigt wird, wurde der ATmega8-Controller ausgetauscht. Daher musste der Controller neu initialisiert werden.

Um eine Trajektorienverfolgung auf diesem System zu realisieren, gibt es bisher nur eine Zwei- oder Dreipunktregelung nach dem "IF ... THEN ... ELSE" Prinzip. Aus diesem Grund wurde ein PID-Regler mit einem Algorithmus zur direkten digitalen Regelung entworfen. Zusätzlich zur entwickelten skalaren PID-Regelung konnte eine vektorbezogene Regelung umgesetzt werden. Außerdem ist ein prädiktiver Algorithmus zur vorausschauenden Berechnung der nächsten Eingangsgröße hinzugekommen.

Nach der Realisierung zeigte die Verifikation, dass die Algorithmen ohne Schwierigkeiten funktionieren.

An dieser Stelle wird auf die in der Einführung aufgestellten Fragen eingegangen. Des Weiteren wird nachvollzogen, inwieweit die Zielsetzung der Arbeit erreicht wurde.

Als erstes wurde der Frage nachgegangen, ob eine PID-Regelung auf einem 8 Bit, 8 MHz Prozessor entwickelt werden kann. Es kann sowohl eine normale PID-Regelung als auch eine PID-Regelung auf Vektorbasis genutzt werden. Für beide Regelungen ist gleichermaßen eine prädiktive Erweiterung möglich. Anzumerken ist jedoch, dass diese prädiktive Erweiterung nur bei leichten Störungen stabil ist.

Daraufhin ist betrachtet worden, ob die Berechnungen zeitdiskret ablaufen. Festzuhalten ist, dass alle Berechnungen mit der angegebenen Abtastrate diskret durchgeführt werden.

Von weiterem Interesse war, ob eine Echtzeitberechnung erreicht wird. Alle vorgestellten Regelungen werden in Echtzeit ausgeführt. Die Abtastrate der PID-Regelung und der PID-Regelung auf Vektorbasis beträgt zwei Millisekunden. Bei den prädiktiven Versionen beträgt die Abtastrate drei bis fünf Millisekunden.

Außerdem wurde hinterfragt, ob die Regelung stabil ist. Unter Berücksichtigung der vorher dargestellten Kriterien wie Geschwindigkeit, Parametrisierung und Kurvenverlauf sind die Regelungen stabil.

Zuletzt wurde die Frage gestellt, ob der Roboter enge Kurven oder rechte Winkel fährt. Bei korrekter Parametrisierung der Regelung fährt der Roboter enge Kurven. Ein rechter Winkel kann jedoch mit den vorgestellten Regelungen nicht gefahren werden.

In dieser Bachelor Thesis / diesem Artikel ist somit die Realisation einer Regelung auf dem ASURO-Roboter belegt worden. Dennoch haben sich bei der Auseinandersetzung mit der Thematik weiterführende Fragestellungen ergeben.

Eine über die vorliegende Arbeit hinausgehende Entwicklung wäre die Erstellung eines mathematischen Regelungsmodells. Mit Hilfe eines solchen Modells lassen sich die Parameter zur Regelung berechnen und zudem die Stabilitätskriterien besser berücksichtigen.

Damit mehrere Prozesse gleichzeitig über ein Scheduling-Verfahren ablaufen können, wäre die Entwicklung eines Betriebssystems auf dem ATmega8-Controller eine grundlegende Verbesserung. Das Betriebssystem sollte ebenso über ein Ressourcenmanagement verfügen.

Ein weiterer bedeutender Punkt ist die Echtzeitbetrachtung. In dieser Arbeit wurde die Echtzeit nur festgestellt und oberflächlich analysiert. Eine intensive Echtzeitbetrachtung steht hingegen noch aus. Vor allem die in der AVR-Libc Bibliothek verwendeten Algorithmen müssen hierzu näher betrachtet werden. Offen ist die Frage, wie die Division implementiert ist. Diese Problematik konnte in der vorliegenden Arbeit eingeschränkt werden, da in kritischen Algorithmen keine Divisionen stattfinden. Stattdessen ist mit Fließpunktzahlen multipliziert worden.

Die vektorielle Betrachtung des Gesamtsystem ASURO ist nur durch \vec e(t) und eine Winkelabweichung dargestellt. Dadurch bleibt noch viel Potential, um beispielsweise eine Wegbeschreibung im Koordinatensystem vorzunehmen. Die Interrupt-Routine sieht diese Möglichkeit schon vor.

Durch Änderung oder Optimierung einiger Hardwarekomponenten könnte das System noch effektiver genutzt werden. Der ATmega8-Controller lässt eine effiziente Programmierung zu. Beispielsweise kann der ASURO-Roboter mittels Hinderniserkennung über die Taster oder zusätzlichen Ultraschallsensoren für Labyrinthfahrten genutzt werden. Ebenfalls kann das System räumliche Vermessungen vornehmen. Dies sind nur einige von unzähligen weiteren Anwendungsmöglichkeiten.

8 Literaturverzeichnis

  1. 1,0 1,1 Berger, Manfred: Grundkurs der Regelungstechnik. Books on Demand GmbH, 2001. – ISBN 3-8311-0847-1
  2. 2,0 2,1 Unbehauen, Heinz: Regelungstechnik I. Friedr. Vieweg & Sohn Verlag, 1997 (9. Auflage). – ISBN 3-528-83332-7
  3. Bräunl, Thomas: Embedded Robotics. Springer Verlag, 2006 (Second Edition). – ISBN 3-540-34318-0
  4. Tanenbaum, Andrew S.: Moderne Betriebssysteme. 2. Auflage. München : Pearson Studium, 2003. – ISBN 3-8273-7019-1
  5. Malz, Helmut: Rechnerarchitektur. Friedr. Vieweg & Sohn Verlag, 2004 (2. Auflage). – ISBN 3-528-13379-1
Persönliche Werkzeuge