25.02.2013 Aufrufe

PDF, 1MB - AG Technische Informatik - Universität Bielefeld

PDF, 1MB - AG Technische Informatik - Universität Bielefeld

PDF, 1MB - AG Technische Informatik - Universität Bielefeld

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

<strong>Universität</strong> <strong>Bielefeld</strong><br />

<strong>Technische</strong> Fakultät<br />

<strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

Bachelorarbeit<br />

Kompensatorbasierte Regelung eines<br />

balancierenden Roboters auf<br />

Mikrocontrollerbasis<br />

David Fleer<br />

5. November 2009<br />

Betreuer<br />

Dr.-Ing. Tim Köhler<br />

Dr.-Ing. Wolfram Schenck


Diese Bachelorarbeit wurde von Dr.-Ing. Tim Köhler betreut und begutachtet.<br />

Der zweite Gutachter war Dr.-Ing. Wolfram Schenck.<br />

Ich danke meinem Betreuer Dr.-Ing. Tim Köhler, der mir jederzeit mit Rat und Tat zur<br />

Seite stand. Zudem danke ich all jenen, die mich während dieser Arbeit auf vielfältige<br />

Art und Weise unterstützt haben.<br />

2 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Inhaltsverzeichnis<br />

Inhaltsverzeichnis<br />

1 Einführung 5<br />

1.1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

1.2 Einführung in den Roboter Fast A4 . . . . . . . . . . . . . . . . . 5<br />

1.2.1 Beschreibung der neuen Sensorik . . . . . . . . . . . . . 7<br />

1.3 Einführung in die Regelung auf Kompensatorbasis . . . . . . . . 7<br />

2 Entwurf eines Kompensators für den Fast A4 9<br />

2.1 Modellierung des Fast A4 im Zustandsraum . . . . . . . . . . . . 9<br />

2.2 Entwurf des Zustandsraumreglers . . . . . . . . . . . . . . . . . 12<br />

2.2.1 Beweis der Steuerbarkeit . . . . . . . . . . . . . . . . . . 12<br />

2.2.2 Bestimmung der Reglermatrix K . . . . . . . . . . . . . . 12<br />

2.3 Entwurf des Beobachters . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.3.1 Beweis der Beobachtbarkeit . . . . . . . . . . . . . . . . . 13<br />

2.3.2 Bestimmung der Verstärkermatrix L . . . . . . . . . . . . 14<br />

3 Simulation der Kompensatorregelung 15<br />

3.1 Aufstellung der numerischen Matrizen . . . . . . . . . . . . . . . 15<br />

3.2 Simulation in Simulink . . . . . . . . . . . . . . . . . . . . . . . . 16<br />

3.2.1 Aufbau der Simulation in Simulink . . . . . . . . . . . . . 16<br />

3.2.2 Ergebnisse der ersten Simulation . . . . . . . . . . . . . . 18<br />

4 Mikrocontroller-Implementierung der Kompensatorregelung 21<br />

4.1 Umformung der Reglergleichungen . . . . . . . . . . . . . . . . . 21<br />

4.2 Details der Implementation . . . . . . . . . . . . . . . . . . . . . 22<br />

4.2.1 Sensorkalibrierung . . . . . . . . . . . . . . . . . . . . . . 22<br />

4.2.2 Messung der Servo-Offsets . . . . . . . . . . . . . . . . . 22<br />

4.2.3 Messung der translatorischen Geschwindigkeit . . . . . . 23<br />

4.2.4 Korrektur der Richtungsänderung . . . . . . . . . . . . . . 23<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 3


Inhaltsverzeichnis<br />

5 Tests und Verbesserungen 25<br />

5.1 Initialer Test auf der Fast A4-Plattform . . . . . . . . . . . . . . . 25<br />

5.2 Erweiterung der Simulation . . . . . . . . . . . . . . . . . . . . . 26<br />

5.2.1 Simulation von Sensorrauschen . . . . . . . . . . . . . . 27<br />

5.2.2 Simulation einer Totzeit . . . . . . . . . . . . . . . . . . . 28<br />

5.2.3 Messung der Totzeit . . . . . . . . . . . . . . . . . . . . . 29<br />

5.3 Ergebnisse der erweiterten Simulation . . . . . . . . . . . . . . . 29<br />

5.3.1 Simulation mit Totzeit . . . . . . . . . . . . . . . . . . . . 30<br />

5.3.2 Erneute Simulation mit verbesserten Polen . . . . . . . . 31<br />

5.4 Korrektur des Kompensators . . . . . . . . . . . . . . . . . . . . 32<br />

5.4.1 Test des korrigierten Kompensators . . . . . . . . . . . . 33<br />

5.5 Vergleich zu anderen Reglern . . . . . . . . . . . . . . . . . . . . 35<br />

5.5.1 Kompensator unter Nutzung aller Sensoren . . . . . . . . 35<br />

5.5.2 Kompensator mit direkter Verwendung der Gyroskopmessungen<br />

. . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

5.6 Schlussfolgerung . . . . . . . . . . . . . . . . . . . . . . . . . . . 37<br />

6 Zusammenfassung und Ausblick 41<br />

6.1 Ausblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

6.1.1 Optimierung der Pole . . . . . . . . . . . . . . . . . . . . 41<br />

6.1.2 Verwendung der RC-Steuerung . . . . . . . . . . . . . . . 42<br />

6.1.3 Halten einer bestimmten Position . . . . . . . . . . . . . . 42<br />

6.1.4 Alternative Sensorkonzepte . . . . . . . . . . . . . . . . . 43<br />

A Weitere Messergebnisse 45<br />

B Literaturverzeichnis 55<br />

4 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Einführung<br />

1.1 Einleitung<br />

1<br />

Ziel dieser Arbeit ist die Entwicklung eines Regelungssystems, welches den<br />

zweirädrigen, balancierenden Roboter Fast A4 kontrolliert. Der Fast A4-Roboter ist in<br />

Abbildung 1.1 dargestellt und wird in Abschnitt 1.2 kurz beschrieben.<br />

Dabei soll ein Regler auf Basis des Zustandsraums verwendet werden. Durch die Verwendung<br />

eines Beobachters ist zudem eine Regelung auch dann möglich, wenn die<br />

vorhandenen Sensoren nicht ausreichen, um den vollständigen Zustand des Systems<br />

zu ermitteln. Die Grundlagen des Zustandsraumreglers und des Beobachters werden in<br />

Abschnitt 1.3 dargestellt. Im Anschluss an den theoretischen Entwurf des Reglers in Kapitel<br />

2 wird dieser zunächt in Kapitel 3 in einer Simulation getestet und dann in Kapitel<br />

4 für den Fast A4-Roboter implementiert. Das fertige System wird in Kapitel 5 getestet,<br />

wobei dabei gewonnene Erkenntnisse zur Verbesserung des Reglers eingesetzt werden.<br />

Abschließend erfolgt in Kapitel 6 ein Ausblick auf weitere mögliche Verbesserung und<br />

Erweiterungen des Systems.<br />

1.2 Einführung in den Roboter Fast A4<br />

Der Fast A4 ist ein balancierender zweirädriger Roboter, der für den Einsatz in Forschung<br />

und Lehre entwickelt wurde. Die ursprüngliche Entwicklung fand dabei im<br />

Rahmen von Fuhrmann and Tenge (2005) statt, später wurde der Roboter unter anderem<br />

im Rahmen von Basa et al. (2009) und Bertschik (2008) weiterentwickelt. Wie<br />

aus der Abbildung 1.1 ersichtlich, bewegt sich der Fast A4 auf zwei neben einander<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 5


Abbildung 1.1: Fast A4-Roboter während einer translatorischen Bewegung.<br />

1 Einführung<br />

angebrachten Rädern fort. Jedes der beiden Räder wird über eine 28:1 Übersetzung von<br />

einem eigenen 24-Volt Motor angetrieben, welcher jeweils von einem Servoverstärker<br />

angesteuert wird. Über das von den Motoren auf das Chassis ausgeübte Drehmoment<br />

wird zudem der Kippwinkel des Chassis beeinflusst, was ein Balancieren des Roboters<br />

ermöglicht (Fuhrmann and Tenge, 2005, Seite 6). Dabei ist der maximal mögliche Kippwinkel<br />

durch ein nach vorne und hinten abstehendes Schutzblech mechanisch begrenzt.<br />

Am oberen Ende des Chassis befinden sich drei Akkus, welche die Elektronik mit 12V<br />

und die Antriebseinheit mit 24V Spannung versorgen. Das Gewicht der Akkus sorgt<br />

zudem dafür, dass der Schwerpunkt des Systems nach oben verschoben wird, was die<br />

Modellierung des Fast A4 als inverses Pendel ermöglicht.<br />

Die Steuerung des Fast A4 erfolgt über einen Mikrocontroller. Seit der Arbeit von Basa<br />

et al. (2009) wird hierfür ein Controller der ARM7-Familie verwendet. Ein Laser-<br />

Entfernungsmesser misst die Distanz zwischen einem festen Punkt am Chassis und dem<br />

Boden vor dem Roboter, woraus sich der Kippwinkel des Chassis ermitteln lässt. Zudem<br />

wird mittels eines Differenzenquotienten, also der Änderung des Kippwinkels zwischen<br />

zwei auf einander folgenden Messungen, die Winkelgeschwindigkeit des Chassis<br />

berechnet. Über zwei an den Motorachsen angebrachte Drehimpulsgeber kann die relative<br />

Rotation zwischen Rädern und Chassis gemessen werden, woraus in Verbindung<br />

6 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


1 Einführung<br />

mit der bereits bekannten Rotationsgeschwindigkeit des Chassis die translatorische Geschwindigkeit<br />

des Systems in Fahrtrichtung ermittelt werden kann. Die Interaktion des<br />

Benutzers mit dem Fast A4 erfolgt über ein seitlich angebrachtes vierzeiliges LCD-<br />

Display mit vier Tastern. Zudem können über eine handelsübliche RC-Fernsteuerung<br />

im laufenden Betrieb Bewegungskommandos an den Mikrocontroller gesendet werden.<br />

Eine serielle Schnittstelle ermöglicht die Übertragung von RAM-Programmen und das<br />

Herunterladen von Logdateien.<br />

1.2.1 Beschreibung der neuen Sensorik<br />

Die oben beschriebene Messung des Kippwinkels und der Winkelgeschwindigkeit über<br />

einen Lasersensor hat den Nachteil, dass sie einen ebenen, glatten Untergrund voraussetzt.<br />

Stören Hindernisse oder ein ungeeigneter Untergrund die Messung des Lasersensors<br />

und somit die Messung des Kippwinkels, führt dies zu einer falschen Reglerantwort,<br />

die oftmals mit einem Umkippen des Roboters endet. In der Arbeit von Basa et al.<br />

(2009) wurden daher alternative Sensoren zur Messung des Kippwinkels und der Winkelgeschwindigkeit<br />

untersucht. Letztendlich wurde ein Analog Devices ADXRS300 Gyroskopsensor<br />

(Analog Devices, Inc., 2003) gewählt, welcher eine direkte Messung der<br />

Winkelgeschwindigkeit des Chassis liefert. Mit dem Gyroskopsensor kann allerdings<br />

nur die Winkelgeschwindigkeit, nicht aber der Kippwinkel direkt gemessen werden. Daher<br />

muss der Kippwinkel durch einen Beobachter aus der Winkelgeschwindigkeit und<br />

der translatorischen Bewegung abgeschätzt werden. Im Rahmen der Arbeit wurde auch<br />

bereits versucht, den Gyroskopsensor zur Implementierung eines kompensatorbasierten<br />

Reglers zu nutzen, was allerdings nicht gelang (Basa et al., 2009, Seite 82). Später<br />

wurde dieser Sensor zudem als Teil von Bertschik (2008) auf eine neue Sensorplatine<br />

übertragen.<br />

1.3 Einführung in die Regelung auf Kompensatorbasis<br />

Ein Kompensator bezeichnet ein Regelungssystem, welches aus einem Zustandsraumregler<br />

und einem Beobachter besteht. Es ist jedoch möglich, diese beiden Komponenten<br />

zunächst getrennt zu betrachten (Dorf and Bishop, 2006).<br />

Der Zustandsraumregler hat dabei die Form u = −Kx. Dabei beschreibt der Vektor x<br />

den momentanen internen Zustand des zu regelnden Systems, wobei der Zustand x ein<br />

Punkt innerhalb des sogenannten Zustandsraums ist. Die als Stellwert bezeichnete Antwort<br />

u ergibt sich dabei durch die Multiplikation der Reglermatrix K mit dem Zustandsvektor<br />

x. Über den Stellwert kann der Regler Einfluss auf den Systemzustand x nehmen,<br />

im Fall des Fast A4 stellt die Reglerantwort u zum Beispiel das von den Motoren zu er-<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 7


1 Einführung<br />

zeugende Drehmoment M dar. Aufgabe des Zustandsraumreglers ist es nun, zu jedem<br />

Zeitpunkt t aus dem momentanen Systemzustand x(t) einen Stellwert u(t) zu errechnen,<br />

so dass der Systemzustand x an einen bestimmten gewünschten Wert angeglichen wird.<br />

Dieser Vorgang wird als Regelung bezeichnet. Der Entwurf des Zustandsraumreglers<br />

über die Wahl einer passenden Matrix K wird in Abschnitt 2.2 durchgeführt.<br />

In vielen Systemen kann allerdings der eigentliche Systemzustand x nicht direkt gemessen<br />

werden. Stattdessen ist nur eine Regelgröße y bekannt, welche sich über Gleichung<br />

2.2 aus dem eigentlichen Systemzustand ergibt. Der Vektor y enthält somit die Größen,<br />

die für den Regler messbar sind. Da allerdings der Zustandsraumregler Kenntnis über<br />

den Systemzustand x erfordert, wird mittels eines Beobachters eine Näherung des Zustands<br />

ˆx aus der Regelgröße y und dem Stellwert u abgeschätzt. Die Schätzung ˆx kann<br />

dann als Eingabe für den Zustandsraumregler verwendet werden. Der Entwurf des Beobachters<br />

wird in Abschnitt 2.3 behandelt.<br />

8 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Entwurf eines Kompensators für<br />

den Fast A4<br />

2<br />

In diesem Kapitel wird der Entwurf eines Kompensators für den Fast A4 durchgeführt.<br />

Dies beinhaltet die Modellierung des Fast A4 im Zustandsraum in Abschnitt 2.1 sowie<br />

den Entwurf des Zustandsraumreglers und des Beobachters in den Abschnitten 2.2 und<br />

2.3. Dabei wird für die Entwurfsschritte und -verfahren auf Kapitel 11 von Dorf and<br />

Bishop (2006) zurückgegriffen.<br />

2.1 Modellierung des Fast A4 im Zustandsraum<br />

Bevor der Entwurf des Zustandsraumreglers und des Beobachters möglich ist, muss das<br />

System, in diesem Fall also der Fast A4, zunächst im Zustandsraum modelliert werden.<br />

Es muss also ein physikalisches Modell des Fast A4 in der Form<br />

˙x = Ax + Bu, (2.1)<br />

y = Cx (2.2)<br />

gefunden werden (Dorf and Bishop, 2006). Dabei repräsentiert der Zustandsvektor x<br />

den internen Zustand des modellierten Systems. Der zeitliche Verlauf des Systemzustands<br />

ergibt sich aus der Differentialgleichung 2.1. Der Stellwert u und die Regelgröße<br />

y beziehen sich dabei auf die in Abschnitt 1.3 beschriebenen Größen. Die physikalische<br />

Modellierung des Fast A4 auf Basis eines invertierten Pendels und mit Hilfe des<br />

Euler-Lagrange-Ansatzes wird dabei aus Fuhrmann and Tenge (2005) übernommen:<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 9


2 Entwurf eines Kompensators für den Fast A4<br />

−M = J ′ p ¨ Θp + mprL ¨ Θw − mpgLΘp − µ ˙ Θw + µ ˙ Θp<br />

M = J ′ w ¨ Θw + mprL ¨ Θp + µ ˙ Θw − µ ˙ Θp + δ ˙ Θw<br />

(2.3)<br />

(2.4)<br />

Abbildung 2.1: Schematische, nicht maßstabsgetreue Skizze des Fast A4 mit eingezeichneten<br />

Größen.<br />

Dabei ist Θw der Rotationswinkel des Rades und Θp der Rotationswinkel des Chassis.<br />

Beide Winkel werden relativ zur senkrechten Position und im Bogenmaß angegeben.<br />

Das Drehmoment zwischen Chassis und Rad M entspricht dem Stellwert u des Systems<br />

und kann über die Motoren beeinflusst werden. Das Trägheitsmoment des Chassis<br />

Jp, das Trägheitsmoment der Räder Jw, die Chassismasse mp, die Radmasse mw, der<br />

Radradius r, die halbe Chassishöhe L sowie die Reibungsterme δ und µ sind Konstanten,<br />

welche in Abschnitt 3.1 aus den empirischen Messungen von Fuhrmann and Tenge<br />

(2005) übernommen werden. Für alle physikalischen Größen werden die Einheiten des<br />

SI-Systems verwendet. Ein Teil der hier aufgeführten Größen sind in Abbildung 2.1<br />

veranschaulicht.<br />

Als Zustandsvektor des Systems wird x = ( ˙xv Θ ˙ Θ) T verwendet. Die Komponenten<br />

des Zustandsvektors wurden so gewählt, dass über die translatorische Geschwindigkeit<br />

˙xv [m/s] das System auf einer Stelle und über den den Chassis-Kippwinkel<br />

10 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


2 Entwurf eines Kompensators für den Fast A4<br />

Θ = Θp [rad] und die Chassis-Winkelgeschwindigkeit ˙ Θ = ˙<br />

Θp [rad/s] in aufrechter<br />

Position gehalten werden kann (Basa et al., 2009). Voraussetzung dafür ist die Steuerbarkeit<br />

des Systems, welche in Abschnitt 2.2.1 überprüft wird.<br />

Nun gilt es aus den Gleichungen 2.3 und 2.4 lineare Differentialgleichungen erster Ordnung<br />

zu bilden, die die Komponenten des Vektors ˙x = (¨xv ˙ Θ ¨ Θ) T als Linearkombinationen<br />

aus den Komponenten des Vektors x und dem Stellwert M darstellen.<br />

Da ˙ Θ sowohl in x als auch in ˙x vorkommt, ergibt sich diese Komponente von ˙x direkt<br />

aus x.<br />

Die translatorische Geschwindigkeit ˙xv kommt weder in Gleichung 2.3 noch in Gleichung<br />

2.4 vor. Da allerdings für die Winkelgeschwindigkeit des Rades im Verhältnis<br />

zur translatorischen Geschwindigkeit ˙ Θw = ˙xv/r und analog ¨ Θw = ¨xv/r gilt, lässt sich<br />

˙xv durch Ersetzen von ˙ Θw und ¨ Θw in den Gleichungen 2.3 und 2.4 einführen.<br />

Um weitergehende Vereinfachungen zu ermöglichen, werden zudem die<br />

Trägheitsmomente zerlegt (Fuhrmann and Tenge, 2005):<br />

J ′ p = 2mpL 2<br />

J ′ w = 3<br />

2 mwr 2 + mpr 2<br />

Wenn nun 2.3 und 2.4 respektive nach ¨ Θp und ¨xv aufgelöst werden, so ergibt sich:<br />

¨Θp = − Mr + µ ˙ Θpr + mpL¨xvr − mpgLΘpr − µ ˙xv<br />

2rmpL 2<br />

¨xv = −2 −Mr + δ ˙xv + mpr 2 L ¨ Θp − µ ˙xv − µ ˙ Θpr<br />

r 2 (3mw + 2mp)<br />

(2.5)<br />

(2.6)<br />

Innerhalb dieser Gleichungen hängen jedoch ¨xv und ¨ Θp noch von einander ab. Um diese<br />

Abhängigkeiten aufzuheben, wird jeweils Gleichung 2.5 in Gleichung 2.6 und Gleichung<br />

2.6 in Gleichung 2.5 eingesetzt. Durch erneutes Auflösen und Umformen erhalten<br />

wir dann für ˙x = Ax + Bu folgende Matrizen:<br />

⎡<br />

⎢<br />

A = ⎣<br />

−2δL−µr+2µL<br />

Lr2 − (3mw+mp) mpg<br />

3mw+mp<br />

µ(r+2L)<br />

rL(3mw+mp)<br />

0 0 1<br />

− 2mpLµ−2mpLδ−3µrmw−2µrmp<br />

2r 2 mpL 2 (3mw+mp)<br />

⎡<br />

g(3mw+2mp)<br />

2L(3mw+mp)<br />

r+2L<br />

rL(3mw+mp)<br />

0<br />

− µ(3rmw+2mpr+2mpL)<br />

2rmpL 2 (3mw+mp)<br />

⎤<br />

⎤<br />

⎥<br />

⎦ (2.7)<br />

⎢<br />

B = ⎣<br />

− 3rmw+2mpr+2mpL<br />

2rmpL2 (3mw+mp)<br />

⎥<br />

⎦ (2.8)<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 11


2 Entwurf eines Kompensators für den Fast A4<br />

Da aus x = ( ˙xv Θ ˙ Θ) T mit den vorgesehen Sensoren nur ˙xv und ˙ Θ direkt gemessen<br />

werden können, ergibt sich C in Gleichung 2.2 zu<br />

� �<br />

1 0 0<br />

C =<br />

(2.9)<br />

0 0 1<br />

Durch das Aufstellen der Matrizen A, B und C lässt das Fast A4-System nun also im<br />

Zustandsraum durch die Gleichungen 2.1 und 2.2 beschreiben.<br />

2.2 Entwurf des Zustandsraumreglers<br />

Nachdem das System nun im Zustandsraum modelliert wurde, gilt es als nächstes einen<br />

passenden Kompensator zu entwerfen, welcher aus einem Zustandsregler und einem<br />

Beobachter besteht. Nach dem Separationsprinzip ist es möglich, Zustandsregler und<br />

Beobachter zunächst unabhängig von einander zu entwickeln (Dorf and Bishop, 2006,<br />

p. 888). Dabei soll als erstes der Zustandsregler<br />

u = −Kx (2.10)<br />

entworfen, oder genauer gesagt die Reglermatrix K bestimmt werden. Der Entwurf des<br />

Beobachters folgt dann in Abschnitt 2.3.<br />

2.2.1 Beweis der Steuerbarkeit<br />

Damit ein System durch eine geeignete Wahl der Stellgröße u(t) in einer endlichen<br />

Zeitspanne t0 ≤ t ≤ T von einem beliebigen Anfangszustand x(t0) in einen beliebig<br />

vorgegebenen Endzustand x(t) überführt werden kann, muss dieses System vollständig<br />

steuerbar sein (Dorf and Bishop, 2006, Seite 882). Dies ist dann der Fall, wenn die<br />

Steuerbarkeitsmatrix<br />

PC = � B AB A 2 B �<br />

vollen Rang hat. Mit Hilfe eines Computeralgebrasystems lässt sich zeigen, dass die<br />

3 × 3 - Matrix PC hier den Rang rank(PC) = 3 und somit vollen Rang hat. Damit ist<br />

das oben entwickelte System ˙x = Ax + Bu steuerbar.<br />

2.2.2 Bestimmung der Reglermatrix K<br />

Da ˙x = Ax + Bu steuerbar ist, lassen sich die Pole des geschlossenen Regelkreises<br />

˙x = Ax − BKx durch entsprechende Wahl der Matrix K frei verschieben. Die Pole<br />

sind dabei als die Nullstellen der charakteristischen Gleichung<br />

det(λI − (A − BK)) = 0<br />

12 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


2 Entwurf eines Kompensators für den Fast A4<br />

definiert (Dorf and Bishop, 2006, Seite 888).<br />

Wird K nun so gewählt, dass die Pole alle in der linken Hälfte der komplexen s-Ebene<br />

liegen, so ist der geschlossene Regelkreis stabil, und es gilt x(t) → �0 wenn t → ∞ für<br />

jeden möglichen Anfangszustand x(t0). Um ausgehend von einer vorgegebenen Menge<br />

an Polen P die Matrix K passend zu ermitteln, wird hier die place-Funktion der<br />

Software Matlab verwendet:<br />

K = place(A, B, P ) (2.11)<br />

Dabei entspricht P den gewünschten Polen als Spaltenvektor. Im Gegensatz zur häufig<br />

zur Berechnung von K verwendeten Ackermann-Formel bietet der von place implementierte<br />

Algorithmus höhere numerische Stabilität (The MathWorks, 2005).<br />

2.3 Entwurf des Beobachters<br />

Nach dem Entwurf des Reglers in Abschnitt 2.2 muss nun als zweiter Teil des Kompensators<br />

ein passender Beobachter entworfen werden. Der Zustandsbeobachter für das<br />

System 2.1 wird durch die folgende Differentialgleichung beschrieben (Dorf and Bishop,<br />

2006, Seite 894):<br />

˙ˆx = Aˆx + Bu + L(y − C ˆx) (2.12)<br />

Dabei ist ˆx der vom Beobachter geschätzte Zustand und L stellt die Beobachterverstärkungsmatrix<br />

dar. Ziel ist es nun einen Beobachter zu finden, so dass ˆx(t) → x(t)<br />

für beliebige x(t0) und ˆx(t0) wenn t → ∞.<br />

2.3.1 Beweis der Beobachtbarkeit<br />

Ein System gilt dann als vollständig beobachtbar, wenn, jeder beliebige Anfangszustand<br />

x(t0) in einer endlichen Zeit 0 ≤ t < T aus dem bekannten Verlauf der Eingangs- und<br />

Ausgangsgrößen u(t) und y(t) bestimmbar ist (Dorf and Bishop, 2006, Seite 885).<br />

Allerdings ist der Beweis der Beobachtbarkeit für ein System mit nur einer Regelgröße,<br />

also skalarem y, einfacher durchzuführen. Wenn sich zeigen lässt, dass das System<br />

schon mit einer kombinierten Messung von ˙xv + ˙ Θ beobachtbar ist, dann ist offensichtlich<br />

auch ein System mit einer getrennten Messung von ˙xv und ˙ Θ beobachtbar, da<br />

sich die Summe ˙xv + ˙ Θ aus den Einzelwerten berechnen lässt. Daher wird im Rahmen<br />

dieses Beweises anstelle der eigentlichen Matrix C aus Gleichung 2.9 eine Hilfsmatrix<br />

C ′ = � 1 0 1 �<br />

verwendet. Die Regelgröße y = C ′ x = ˙xv + ˙ Θ ist dann nur noch ein Skalar.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 13


2 Entwurf eines Kompensators für den Fast A4<br />

Um zu zeigen, dass ein System vollständig beobachtbar ist, reicht es zu zeigen, dass die<br />

Beobachtbarkeitsmatrix PO vollen Rang hat. PO ist dabei<br />

PO =<br />

⎡<br />

⎣<br />

C ′<br />

C ′ A<br />

C ′ A 2<br />

Auch hier lässt sich mit Hilfe eines Computeralgebrasystems zeigen, dass die 3 × 3<br />

Matrix PO mit rank(PO) = 3 vollen Rang hat.<br />

2.3.2 Bestimmung der Verstärkermatrix L<br />

Ziel des Beobachters ist es, eine Schätzung ˆx des Systemzustands zu liefern, welche gegen<br />

den echten Systemzustand x konvergiert. Damit das System durch einen Kompensator<br />

geregelt werden kann, muss also für den Beobachterfehler e(t) bei jedem initialen<br />

Nachführungsfehler e(t0) folgendes gelten:<br />

⎤<br />

⎦<br />

e(t) = x(t) − ˆx(t)<br />

lim e(t) = 0<br />

t→∞<br />

Dies ist dann der Fall, wenn alle Pole, d.h. Nullstellen, der charakteristischen Gleichung<br />

det(λI − (A − LC)) = 0<br />

in der linken Hälfte der s-Ebene liegen (Dorf and Bishop, 2006).<br />

Wenn ein System vollständig beobachtbar ist, so können die Pole der charakteristischen<br />

Gleichung frei verschoben werden. Damit ist es auch möglich, eine Matrix L zu finden,<br />

für die die Pole der charakteristischen Gleichung in der linken Hälfte der s-Ebene liegen.<br />

Mit einer solchen Verstärkungsmatrix würden somit die obigen Anforderungen an den<br />

Beobachter erfüllt werden.<br />

Analog zu 2.11 lässt sich auch L über die place-Funktion von Matlab gewinnen, wobei<br />

A ′ und C ′ den Matrizen A T und C T entsprechen(The MathWorks, 2005):<br />

L = place(A ′ , C ′ , P )<br />

14 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Simulation der<br />

Kompensatorregelung<br />

3<br />

Vor der Implementation des entworfene Kompensator auf dem Fast A4 wird zunächst<br />

eine numerische Simulation durchgeführt. Damit soll überprüft werden, ob der Kompensator<br />

zumindest für das theoretische Modell das gegebene Stabilisierungsproblem<br />

lößt.<br />

3.1 Aufstellung der numerischen Matrizen<br />

Zur Verwendung in einer numerischen Simulation müssen empirisch ermittelte Systemparameter<br />

in die oben aufgestellten Matrizen A und B (Gleichungen 2.7 und 2.8) eingesetzt<br />

werden. Dazu werden folgende bereits in Abschnitt 2.1 beschriebene Parameter<br />

aus Fuhrmann and Tenge (2005) übernommen:<br />

L = 0, 15m<br />

r = 0, 0685m<br />

mp = 6, 6kg<br />

mw = 0, 4kg<br />

g = 9, 81 m<br />

s 2<br />

µ = 0, 014<br />

δ = 0, 03<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 15


3 Simulation der Kompensatorregelung<br />

Damit ergeben sich folgende numerische Lösungen für A und B:<br />

⎡<br />

−1, 049011076 −8, 300769230<br />

⎤<br />

0, 06437082789<br />

A = ⎣ 0 0 0 ⎦ (3.1)<br />

4, 184850260 60, 36923078 −0, 2617074734<br />

⎡<br />

⎤<br />

4, 597916278<br />

B = ⎣ 0 ⎦ (3.2)<br />

−18, 69339096<br />

Die Einträge der Matrizen sind dabei jeweils auf 10 Stellen genau berechnet worden.<br />

3.2 Simulation in Simulink<br />

Zur numerischen Simulation des geschlossenen Regelkreises wird die Matlab-<br />

Umgebung Simulink verwendet. Von dort aus lassen sich die gewonnenen Daten zur<br />

weiteren Analyse exportieren.<br />

3.2.1 Aufbau der Simulation in Simulink<br />

Der Simulationsaufbau in Simulink besteht aus zwei Teilen: Der Modellsimulation im<br />

oberen und der zu testende Kompensator im unteren Teil des Diagramms 3.1. Um einzelne<br />

Teile des Kompensators einfach untersuchen zu können, wurde der Kompensator<br />

dabei in einzelnen Blöcken aufgespalten.<br />

Die Pole P für Regler und Beobachter wurden für die Simulation wie folgt gewählt:<br />

⎡ ⎤<br />

−6 + 6i<br />

P = ⎣−6<br />

− 6i⎦<br />

(3.3)<br />

−9<br />

Aus praktischen Gründen wird für C statt der 2 × 3-Matrix aus Gleichung 2.9 folgende<br />

3 × 3 - Matrix verwendet, damit die Regelgröße y die selbe Dimensionalität wie der<br />

Systemzustand x hat:<br />

⎡<br />

1 0<br />

⎤<br />

0<br />

C = ⎣0<br />

0 0⎦<br />

0 0 1<br />

Die über die place-Funktion berechneten Matrizen K und L sind dann (auf 6 Nachkommastellen<br />

genau):<br />

⎡<br />

⎤<br />

−5, 489045<br />

K = ⎣−12,<br />

810927⎦<br />

,<br />

−2, 403387<br />

16 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


3 Simulation der Kompensatorregelung<br />

K*u<br />

Regler<br />

−K*x^<br />

Beobachteter<br />

Zustand<br />

x^<br />

1<br />

s<br />

x^ = x^’dt<br />

K*u<br />

B*u<br />

K*u<br />

A*x^<br />

x^’ =<br />

A*x^ + B*u + L*y~<br />

K*u<br />

C*x^<br />

x’ = Ax+Bu<br />

y = Cx+Du<br />

y~<br />

K*u<br />

L*y~<br />

Modell<br />

x^<br />

Beobachter−<br />

fehler<br />

y<br />

y~ = y − Cx^<br />

Realer Zustand<br />

Abbildung 3.1: Simulationsaufbau in Simulink. Da Simulink innerhalb von Beschriftungen<br />

nur ASCII-Symbole zulässt, steht innerhalb des Diagramms xˆ für ˆx, x’ für ˙x<br />

und y˜ für ˜y.<br />

⎡<br />

8, 071561 0<br />

⎤<br />

−0, 323082<br />

L = ⎣−0,<br />

199782 0 2, 165104 ⎦ .<br />

3, 302255 0 11, 617721<br />

Während der Simulation werden der echte Zustand des Systems x, der beobachtete Zustand<br />

ˆx und der Schätzfehler x − ˆx gemessen.<br />

Die maximale Zeitschrittweite der Simulation wurde auf 1 ms festgesetzt. Dies scheint<br />

10<br />

angemessen unter der Abschätzung, dass der implementierte Regler auf dem Fast A4-<br />

Mikrocontroller vermutlich mit einem Intervall im Bereich von 5 ms arbeiten wird.<br />

Da beim Fast A4 zwar ein Start aus einer Ruhelage, nicht aber einem Gleichgewichtszustand<br />

vorgesehen ist, werden die beiden Geschwindigkeiten ˙xv und ˙ Θ für System und<br />

Beobachter mit ˙xv = 0 m<br />

s und ˙ Θ = 0 rad initialisiert. Als Startwert für den Systemzustand<br />

wurde testweise ein Kippwinkel von Θt0 = 10 ◦ ≈ 0, 17453 rad gewählt, wobei<br />

dieser Winkel innerhalb der am Fast A4 real möglichen Neigung liegt. Da eine direkte<br />

Messung des Winkels in diesem Entwurf für den Regler nicht möglich ist, wird der<br />

beobachtete Winkel mit ˆ Θt0 = 0 rad initialisiert.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 17


dx [m/s], Theta [rad]<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

-0.2<br />

-0.4<br />

-0.6<br />

-0.8<br />

0 0.5 1 1.5 2 2.5 -2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

3 Simulation der Kompensatorregelung<br />

Abbildung 3.2: Wirklicher Systemzustand x(t) in der Simulation.<br />

3.2.2 Ergebnisse der ersten Simulation<br />

Wie aus Graph 3.2 ersichtlich, funktioniert der entworfene Kompensator zumindest für<br />

die Regelung des theoretischen Modells wie erwartet. Auch der Schätzfehler in Graph<br />

3.4 konvergiert wie erwartet gegen �0.<br />

Es ist anzunehmen, dass sich das Verhalten des Kompensators im Bezug auf Ausregelzeit<br />

und Überschwung durch eine Änderung der Pole noch weiter optimieren lässt.<br />

Zunächst soll der Kompensator jedoch auf dem Fast A4-System getestet werden, da nur<br />

so die Korrektheit von Modell und Simulation im Bezug auf das reale System überprüft<br />

werden kann.<br />

18 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

dTheta [rad/s]


3 Simulation der Kompensatorregelung<br />

dx [m/s], Theta [rad]<br />

0.8<br />

0.6<br />

0.4<br />

0.2<br />

0<br />

-0.2<br />

-0.4<br />

-0.6<br />

-0.8<br />

0 0.5 1 1.5 2 2.5 -2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung 3.3: Vom Beobachter geschätzter Systemzustand ˆx(t) in der Simulation.<br />

dx [m/s], Theta [rad]<br />

0.2<br />

0.15<br />

0.1<br />

0.05<br />

0<br />

-0.05<br />

-0.1<br />

-0.15<br />

-0.2<br />

0 0.5 1 1.5 2<br />

-0.6<br />

2.5<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung 3.4: Schätzfehler x(t) − ˆx(t) in der Simulation.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 19<br />

0<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

0.6<br />

0.45<br />

0.3<br />

0.15<br />

-0.15<br />

-0.3<br />

-0.45<br />

dTheta [rad/s]<br />

dTheta [rad/s]


3 Simulation der Kompensatorregelung<br />

20 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Mikrocontroller-Implementierung<br />

der Kompensatorregelung<br />

4<br />

Für die Implementierung auf dem Fast A4 soll der Kompensator in der Programmiersprache<br />

C und als Fast A4 RAM-Programm implementiert werden. Da ein RAM-<br />

Programm dabei nach einer Programmierung über die serielle Schnittstelle aus dem<br />

Arbeitsspeicher des Mikrocontrollers heraus ausgeführt wird, kann der Regelungsalgorithmus<br />

des Fast A4 zur Laufzeit ausgetauscht werden, was Entwicklung und Test<br />

beschleunigt.<br />

Zwar gehen RAM-Programme beim Abschalten der Stromversorgung verloren und sind<br />

zudem auf 12 Kilobyte beschränkt, wenn ein Teil des RAM zudem für Logdateien verwendet<br />

wird (Basa et al., 2009, Seite 49). Allerdings überwiegen die oben genannten<br />

Vorteile diese Einschränkungen, da der Platz für den implementierten Kompensator<br />

ausreicht und die Alternative, eine Übertragung in den Flash-Speicher, die kurzfristige<br />

Modifikation des Regelalgorithmus wesentlich erschweren würde.<br />

4.1 Umformung der Reglergleichungen<br />

Um die Berechnung auf dem Mikrocontroller zu beschleunigen, werden die Gleichungen<br />

des Kompensators noch einmal umgeformt. Aus der Beobachtergleichung 2.12<br />

ergibt sich durch Einsetzen von u = −K ˆx sowie anschließender Umformung die<br />

Gleichung ˆ˙x = (A − BK − LC)ˆx + Ly. Durch Vorberechnung der Matrix F =<br />

A − BK − LC lässt sich der Rechenaufwand für den Kompensator auf die drei Matrix-<br />

Vektor-Multiplikationen F ˆx, Ly und −K ˆx sowie zwei Vektoradditionen reduzieren,<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 21


4 Mikrocontroller-Implementierung der Kompensatorregelung<br />

was ein schnelleres und somit häufigeres Ausführen des Reglers auf dem Mikrocontroller<br />

möglich macht.<br />

4.2 Details der Implementation<br />

Bei der Implementation des Kompensators für dem Fast A4 gibt es eine Reihe von<br />

plattformspezifischen Details, die als Abweichungen vom theoretischen Modell gesondert<br />

behandelt werden mussten. Diese Besonderheiten und ihre Behandlung werden in<br />

diesem Abschnitt vorgestellt.<br />

4.2.1 Sensorkalibrierung<br />

In der Zeit vor dieser Arbeit wurden einige Modifikationen am Fast A4 vorgenommen.<br />

Es stellte sich in der Praxis heraus, dass die dokumentierten Nullpunkte, also die<br />

Sensorwerte, für die sich der Fast A4 in vertikaler Position befindet, für den Laser-<br />

Entfernungsmesser und für den Gyroskopsensor nicht mehr exakt zutreffen. Daher wurde<br />

eine Kalibrierung vorgenommen, bei der der Fast A4 auf seinen Rädern stehend<br />

in vertikaler Position fixiert wurde. In diesem Zustand wurden die Ausgaben der 10-<br />

Bit Analog/Digital-Wandler für Gyroskop- und Lasersensor gemessen. Für den Lasersensor<br />

ergab sich über 3011 Messwerte ein Mittelwert und somit Nullpunkt von<br />

µL ≈ 494, 1511 Zählern bei einer Varianz von σ 2 L ≈ 0, 2074 ≈ 0, 4770 · 10−6 rad 2 , für<br />

den Gyroskopsensor wurden µG ≈ 511, 9900 und σ 2 G<br />

≈ 0, 1959 ≈ 56, 6151 · 10−6 rad2<br />

s 2<br />

gemessen.<br />

Da Laser- und Gyroskopsensor über 10-Bit Analog-Digital-Wandler mit dem Mikro-<br />

controller verbunden sind, ist die maximal mögliche Genauigkeit beschränkt. Diese<br />

maximale Genauigkeit liegt bei ɛG ≈ 0, 0170 rad<br />

◦<br />

≈ 0, 9766 für den Gyroskop-<br />

s<br />

s<br />

sensor und bei ɛL ≈ 1, 5060 · 10−3 rad ≈ 86, 2888 · 10−3 ◦ für den Lasersensor.<br />

Mit dem ADXRS300-Gyroskopsensor können dabei maximal Winkelgeschwindigkeiten<br />

von ±300 ◦<br />

≈ ±5.2360 rad gemessen werden (Analog Devices, Inc., 2003). Alle<br />

s<br />

hier angegebenen Werte wurden auf vier Nachkommastellen gerundet.<br />

4.2.2 Messung der Servo-Offsets<br />

Ein bekanntes Problem der Fast A4-Plattform ist die Tatsache, dass die Antriebseinheit<br />

erst ab einer gewissen vom Mikrocontroller angelegten minimalen Steuerspannung ein<br />

messbares Drehmoment erzeugt. Die vom Mikrocontroller generierte Steuerspannung<br />

ist dabei proportional zu einem Motorbefehl, der zur Steuerung der Motoren vom RAM-<br />

Programm an das Basissystem des Fast A4 übergeben wurde.<br />

Um den minimale Motorbefehl, hier Offset genannt, zu messen, wurde nach einander<br />

jeweils ein langsam ansteigender Motorbefehl festgelegt. Der Betrag des Motorbefehls<br />

22 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


4 Mikrocontroller-Implementierung der Kompensatorregelung<br />

wurde alle 50 ms um 10 Zähler erhöht. Dabei wurde jeweils der Motorbefehl protokolliert,<br />

ab dem der jeweilige Drehimpulsgeber des Motors eine Bewegung der Motorachse<br />

anzeigte. Die Messung wurde für die Motoren A und B und jeweils in Vorwärtsund<br />

Rückwärtsrichtung separat durchgeführt. Aus zehn Messungen wurde dann der<br />

Mittelwert berechnet. Für Motor A, welcher das rechte Rad antreibt, ergab sich in<br />

Vorwärtsrichtung ein durchschnittlicher Offset von OA,F = 3350, in Rückwärtsrichtung<br />

ein Offset von OA,R = −3592. Für den Motor B ergab sich ein Vorwärts-Offset von<br />

OB,F = 2090 und ein Rückwärts-Offset von OB,R = −1970. Um diese Offsets auszugleichen,<br />

werden die hier gemessenen Offsets je nach Achse und Drehrichtung jeweils<br />

auf den vom Regler berechneten Motorbefehl aufaddiert.<br />

Dabei ist anzumerken, dass bei späteren Messungen des Offsets Schwankungen von<br />

bis zu 7% gemessen wurden. Dies hängt vermutlich von der Versorgungsspannung<br />

der Servoverstärker ab, welche je nach Ladezustand der Akkus variiert. Durch diese<br />

Schwankungen kann zu einem früheren Zeitpunkt gemessen Offset O also unter oder<br />

über dem momentanen Offset liegen. Wird der Offset jedoch überschätzt und sind die<br />

auf den vom Regler berechneten Motorbefehl aufaddierten Werte somit zu groß, so ist es<br />

für das System nicht mehr möglich, weniger als ein bestimmtes minimales Drehmoment<br />

zu erzeugen. Da das System somit gezwungen ist, sich ständig entweder vorwärts oder<br />

rückwärts zu bewegen, kommt es zu einer Oszillation. Um dies zu vermeiden, werden<br />

die Offsets O bewusst unterschätzt, wobei sich in der Praxis eine Skalierung auf 0, 8 ·<br />

O als sinnvoller Faktor herausgestellt hat. Ein Unterschätzen des Offsets hingegen hat<br />

sich im Rahmen früherer Reglerimplementationen als unproblematisch erwiesen, womit<br />

diese Unterschätzung den oben genannten Nachteilen einer Überschätzung vorzuziehen<br />

ist.<br />

4.2.3 Messung der translatorischen Geschwindigkeit<br />

Zu beachten ist, dass die translatorische Geschwindigkeit ˙xv nicht direkt gemessen werden<br />

kann, da die Drehimpulsgeber die Rotationsgeschwindigkeit des Rades nur als ˙ Θr<br />

relativ zur Chassisrotation messen können. Die absolute Rotationsgeschwindigkeit des<br />

Rades ˙ Θw ergibt sich also nur in Verbindung mit der Winkelgeschwindigkeit des Chas-<br />

sis ˙ Θp. Dadurch führen Fehler bei der Messung von ˙ Θp somit implizit zu Fehlern bei<br />

der errechneten translatorischen Geschwindigkeit ˙xv = ˙ Θwr.<br />

4.2.4 Korrektur der Richtungsänderung<br />

In der Praxis liefern die beiden Motoren A und B bei gleichem Befehl unterschiedliche<br />

Drehmomente auf der jeweils rechten oder linken Radachse. Dazu kommen noch die in<br />

Abschnitt 4.2.2 genauer beschriebenen unterschiedlich hohen Servo-Offsets für beide<br />

Motoren. Wird also stets der gleiche Befehl an beide Motoren gegeben, vollführt der<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 23


4 Mikrocontroller-Implementierung der Kompensatorregelung<br />

Fast A4 keine geradlinige, sondern eine Kurvenbewegung. Um dieser Bewegung entgegen<br />

zu steuern wurde bereits in früheren Fast A4-Projekten ein integrierender Regler<br />

eingesetzt. Der integrierende Regler, auch I-Regler genannt, wird auf die bestehende<br />

Kompensatorregelung aufgesetzt. Dabei wird über Integration der gemessenen Geschwindigkeitsdifferenz<br />

der beiden Räder ∆ ˙xv = ˙xrechts − ˙xlinks die Richtungsabweichung<br />

∆xv berechnet. Ein Anteil dieser Richtungsabweichung wird dann jeweils vom<br />

Motorbefehl für den rechten Motor subtrahiert beziehungsweise auf den Motorbefehl<br />

des linken Motors aufaddiert. Wichtig ist, dass jede Änderung des linken Motorbefehls<br />

an eine entgegengesetzte Änderung des rechten Motorbefehls gekoppelt ist. Das für den<br />

Kompensator als Stellgröße relevante Gesamtdrehmoment M bleibt also, abgesehen von<br />

den nicht idealen Antworten der Antriebseinheiten, annähernd unberührt.<br />

24 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Tests und Verbesserungen<br />

5<br />

In diesem Kapitel wird zunächst in Abschnitt 5.1 der in Kapitel 4 implementierte Kompensator<br />

auf dem Fast A4 getestet. Das System zeigt jedoch in diesem Test ein unerwartetes<br />

und nachteilhaftes Verhalten. Um die Auswirkungen möglicher Fehlerquellen<br />

auf das System zu überprüfen, wird in Abschnitt 5.2 und 5.3 eine erweiterte Simulation<br />

durchgeführt. Die daraus gewonnenen Erkenntnisse werden im Anschluss in Abschnitt<br />

5.4 zur Verbesserung des Kompensators genutzt.<br />

5.1 Initialer Test auf der Fast A4-Plattform<br />

Für einen ersten Test auf der Fast A4-Plattform wurden die Pole P aus Gleichung 3.3<br />

übernommen, da mit diesen Polen in der Simulation bereits eine funktionierende Regelung<br />

möglich war. Daher entsprechen auch die verwendeten Matrizen K und L denen<br />

in Abschnitt 3.2.<br />

Während des Versuchs wurden mit Hilfe der Logfunktion des Fast A4 der gemessene<br />

Systemzustand x, der vom Beobachter geschätzte Zustand ˆx und die aus der Schätzung<br />

ˆx resultierende Reglerantwort M protokolliert. Der Systemzustand x wurde dabei über<br />

die Drehimpulsgeber, den Laser-Entfernungsmesser und den Gyroskopsensor des Fast<br />

A4 gemessen. Bei der Messung der Drehimpulsgeber wurde der Wert aus den beiden<br />

Drehimpulsgebern gemittelt.<br />

Der Regelalgorithmus wurde alle 5ms aufgerufen. Dabei wurden jedoch nur die Messwerte<br />

aus jeweils jedem fünften Aufruf in die Logdatei geschrieben, um den Speicher<br />

besser ausnutzen zu können.<br />

Wie in Abbildung 5.1 ersichtlich, zeigt das System in der Praxis anders als erwartet<br />

starke Schwingungen. Dabei schwingt sich das System so weit auf, dass der für den<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 25


dx [m/s], Theta [rad]<br />

1.5<br />

1.125<br />

0.75<br />

0.375<br />

0<br />

-0.375<br />

-0.75<br />

-1.125<br />

-1.5<br />

0 0.5 1 1.5 2 2.5 3<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

-4<br />

5 Tests und Verbesserungen<br />

Abbildung 5.1: Gemessener Zustand x(t) während des initialen Tests des Kompensators.<br />

Das System schwingt sich dabei immer weiter auf, bis der implementierte<br />

Regler zum Ende der Messung durch eine Sicherheitsfunktion des Basissystems<br />

abgebrochen wird.<br />

Fast A4 zulässige Kippwinkel überschritten wird. Dies führt dazu, dass der Roboter an<br />

einem der Schutzbleche anstößt. Zudem unterbricht das Basissystem des Fast A4 die<br />

Ausführung des RAM-Programms, wenn der mit dem Lasersensor gemessene Winkel<br />

den sicheren Bereich verlässt. Dies ist am Ende der hier gezeigten Messung der Fall.<br />

Zu beachten ist insbesondere, dass auch der Schätzfehler des Beobachters, wie in Abbildung<br />

5.3 dargestellt, eine Oszillation zeigt. Damit ist eine Regelung des Systems auf<br />

Basis des geschätzten Zustands ˆx nicht wie geplant möglich. Anders als in der Simulation<br />

in Kapitel 3 entspricht das System im Experiment also nicht den Erwartungen.<br />

5.2 Erweiterung der Simulation<br />

Da das unerwartete starke Schwingen des Systems in der Simulation nicht auftritt,<br />

gibt es anscheinend Teilaspekte des Systems, die im ursprünglichen Modell nicht<br />

berückstichtigt wurden. Daher soll versucht werden, das beobachtete Fehlverhalten in<br />

der Simulation zu reproduzieren, um so Hinweise auf die Fehlerquelle zu finden.<br />

26 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

1.5<br />

1.125<br />

0.75<br />

0.375<br />

0<br />

-0.375<br />

-0.75<br />

-1.125<br />

5 Tests und Verbesserungen<br />

-1.5<br />

0 0.5 1 1.5 2 2.5 3<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Befohlenes Drehmoment M [Nm]<br />

Abbildung 5.2: Geschätzter Zustand ˆx(t) und die resultierende Reglerantwort M(t)<br />

während des initialen Tests des Kompensators<br />

5.2.1 Simulation von Sensorrauschen<br />

Bislang wurde in der Simulation davon ausgegangen, dass Sensoren den Systemzustand<br />

perfekt messen können. Wie in Abschnitt 4.2.1 gezeigt, liefern Gyroskop- und Lasersensor<br />

jedoch verrauschte Daten. Die Drehimpulsgeber sind auf Grund ihrer Funktionsweise<br />

praktisch rauschfrei. Wie jedoch in Abschnitt 4.2.3 beschrieben, ist auch die über<br />

die Drehimpulsgeber berechnete Geschwindigkeit ˙xv wegen der Einbeziehung von ˙ Θp<br />

gestört.<br />

Um dieses Rauschen in der Simulation zu berücksichtigen, wird ein Störgröße mit gaußschem<br />

Rauschen eingefügt. Das gaußsche Rauschen hat dabei den Mittelwert µ = 0.<br />

Die Varianz σ2 G für den Gyroskopsensor wird aus den Ergebnissen der Kalibrierung in<br />

Abschnitt 4.2.1 übernommen. Für ˙xv ergibt sich die Varianz durch die Einberechung<br />

von ˙ Θp über ˙xv = ˙ Θw · r zu σ2 x = σ2 G · r2 −6 m2<br />

≈ 0, 2657 · 10 s2 .<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 27<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

-4<br />

dTheta [rad/s], M[Nm]


dx [m/s], Theta [rad]<br />

0.5<br />

0.375<br />

0.25<br />

0.125<br />

0<br />

-0.125<br />

-0.25<br />

-0.375<br />

-0.5<br />

0 0.5 1 1.5 2 2.5 3<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

5 Tests und Verbesserungen<br />

Abbildung 5.3: Schätzfehler x(t) − ˆx(t) des Beobachters während des initialen Tests des<br />

Kompensators. Auch hier zeigt sich ein oszillierendes Verhalten.<br />

5.2.2 Simulation einer Totzeit<br />

In der Simulation wird angenommen, dass eine Änderung Stellwerts u sofort zu einer<br />

Änderung des Systemzustands x und damit der Regelgröße y führt. Eine Verzögerung<br />

zwischen der Änderung der vom Regler vorgegebenen Stellgröße und einer Auswirkung<br />

dieser Änderung auf die gemessenen Regelgröße y wird als Totzeit bezeichnet. In der<br />

Realität gibt es eine Reihe von Faktoren, die zu einer Totzeit führen können:<br />

• Totzeit der Servoverstärker<br />

• Totzeit der Motoren<br />

• Totzeit der Mechanik<br />

• Totzeit der Sensoren<br />

28 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-2<br />

dTheta [rad/s]


5 Tests und Verbesserungen<br />

• Totzeit der Signalverarbeitung und des Mikrocontrollers<br />

Da sich die Totzeit des Gesamtsystems aus der Summe der einzelnen Glieder ergibt,<br />

können kleine Totzeiten der Einzelkomponenten zu einer signifikanten Totzeit im Gesamtsystems<br />

führen. In der Simulink-Simulation wird diese Totzeit durch ein entsprechendes<br />

Totzeitglied dargestellt.<br />

5.2.3 Messung der Totzeit<br />

Für die Messung der Totzeit wird der Fast A4 bei deaktivierten Motoren nach vorne<br />

gekippt, so dass er auf dem vorderen Schutzblech zur Ruhe kommt. Im Anschluss werden<br />

beide Motoren aktiviert und mit voller Motorleistung angesteuert. Sobald einer der<br />

Drehimpulsgeber oder der Gyroskopsensor eine Abweichung vom Initialzustand misst,<br />

wird die Zeit bis zum Auftreten der ersten Abweichung für den jeweiligen Sensor protokolliert.<br />

Nach 18 Messungen mit einer Abtastzeit von 1 ms ergaben sich dabei eine durchschnittliche<br />

Totzeit von tD = 4 ms für die Messung über beide Drehimpulsgeber und eine<br />

durchschnittliche Totzeit von tG = 16, 4 ms für die Messung mit dem Gyroskopsensor.<br />

Eine mögliche Erklärung für die höhere Totzeit bei der Messung über den Gyroskopsensor<br />

ist eine intrinsische Zeitverzögerung des Gyroskopsensors. Zudem misst der<br />

Drehimpulsgeber die Bewegung der Motorachsen, während der Gyroskopsensor erst bei<br />

einer Bewegung des Chassis reagiert.<br />

Des weiteren stellte sich heraus, dass eine weitere Verringerung der Abtastzeit bei der<br />

Messung zu einer unerwartet hohen Verringerung der gemessenen Totzeit führt. So wurde<br />

bei einer Abtastzeit von 0, 1 ms nach 18 Messungen für den Gyroskopsensor eine<br />

Totzeit von t ′ G ≈ 11, 412 ms gemessen. Die Totzeit für Messungen über den Drehimpulsgeber<br />

änderte sich auf t ′ D ≈ 2, 988 ms. Die Ursache dieser Anomalie konnte jedoch<br />

im Rahmen dieser Arbeit nicht ermittelt werden.<br />

5.3 Ergebnisse der erweiterten Simulation<br />

Die Simulink-Simulation aus Kapitel 3 wurde nun um die in Abschnitt 5.2 eingeführten<br />

Elemente erweitert. Das resultierende System ist in Abbildung 5.4 dargestellt. Alle alten<br />

Systemparameter inklusive der Pole P wurde dabei aus Kapitel 3 übernommen,<br />

um Vergleichbarkeit zu gewährleisten. Zunächst wurde eine Simulation ohne Totzeit<br />

durchgeführt, um die Auswirkung des simulierten Sensorrauschen zu überprüfen. Dabei<br />

stellte sich jedoch keine wesentliche Veränderung des Systemverhaltens gegenüber<br />

den Ergebnissen aus Abschnitt 3.2.2 ein.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 29


K*u<br />

Regler<br />

−K*x^<br />

Beobachteter<br />

Zustand<br />

x^<br />

1<br />

s<br />

x^ = x^’dt<br />

K*u<br />

B*u<br />

K*u<br />

A*x^<br />

x^’ =<br />

A*x^ + B*u + L*y~<br />

K*u<br />

C*x^<br />

x’ = Ax+Bu<br />

y = Cx+Du<br />

y~<br />

K*u<br />

L*y~<br />

Modell<br />

y<br />

x^<br />

y~ = y − Cx^<br />

5 Tests und Verbesserungen<br />

Beobachter−<br />

fehler<br />

Totzeit<br />

Realer Zustand<br />

Stoergroessee<br />

Abbildung 5.4: Erweiterter Simulationsaufbau in Simulink. Dabei wurden die Störgröße und<br />

ein Totzeitglied hinzugefügt. Da Simulink innerhalb von Beschriftungen nur<br />

ASCII-Symbole zulässt, steht innerhalb des Diagramms xˆ für ˆx, x’ für ˙x und<br />

y˜ für ˜y<br />

5.3.1 Simulation mit Totzeit<br />

Wird nun das Totzeitglied in der Simulation verwendet, so zeigt das System ein oszillierendes<br />

Verhalten. Es ergab sich für eine Totzeit von 30 ms ein langsames Aufschwingen<br />

des Systems, wie aus den Graphen 5.5 und 5.6 ersichtlich ist. Zudem trat auch auch beim<br />

in Abbildung 5.7 dargestellten Beobachterfehler x − ˆx eine solche Oszillation auf. Des<br />

weiteren zeigte sich bei höheren Totzeiten ein noch stärkeres Aufschwingen, während<br />

das System sich für niedrige Totzeiten langsam in die Ruhelage x ≈ �0 einschwingt.<br />

Geringere Totzeiten führen dabei zu einem schnelleren Einschwingen.<br />

In der Simulation mit Totzeit zeigen also ähnliches Ergebnisse wie im Versuch aus Abschnitt<br />

5.1. Zu beachten ist, dass sich die Ergebnisse der Simulation nicht direkt auf das<br />

reale System übertragen lassen. So zeigt das simulierte System für die in Abschnitt 5.2.3<br />

gemessene Totzeit von tG = 16, 4 ms kein Aufschwingen, obwohl ein solches Verhalten<br />

im Experiment zu beobachten war. Das simulierte Modell zeigt hier also einen Fehler<br />

bei der Approximation des realen Systems, auch wenn sich qualitativ sowohl beim simulierten<br />

als auch beim realen System ein vergleichbares oszillierendes Verhalten auftritt.<br />

30 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


5 Tests und Verbesserungen<br />

dx [m/s], Theta [rad]<br />

1.6<br />

1.2<br />

0.8<br />

0.4<br />

0<br />

-0.4<br />

-0.8<br />

-1.2<br />

-1.6<br />

0 1 2 3 4 5 -4<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung 5.5: Wirklicher Systemzustand x(t) in der Simulation mit einer Totzeit von 30 ms.<br />

Dabei zeigt sich ein Aufschwingen des Systems.<br />

5.3.2 Erneute Simulation mit verbesserten Polen<br />

Im Allgemeinen gilt, dass für einen geschlossenen Regelkreis die Eigenfrequenz des<br />

Systems sinkt, wenn sich die Pole des Systems näher am Nullpunkt der s-Ebene befinden.<br />

Die Eigenfrequenz ist dabei die Frequenz der natürlichen Schwingung, mit der das<br />

System im ungedämpften Zustand schwingen würde. Zudem nimmt die Dämpfung des<br />

Systems zu, wenn sich der Imaginärteil der komplexen Pole an Null annähert (Dorf and<br />

Bishop, 2006).<br />

Durch eine Senkung der Eigenfrequenz und eine Steigerung der Dämpfung ließ sich<br />

das Verhalten des Kompensators im Bezug auf die Totzeit verbessern. Die Pole können<br />

jedoch nicht beliebig nah am Nullpunkt der komplexen s-Ebene platziert werden, da<br />

dies zu schwächeren Reglerantworten und somit zu längeren Ausregelzeiten führt. Als<br />

Ausregelzeit wird dabei die Zeit bezeichnet, nach der das System ausgehend von einem<br />

Anfangszustand x(t0) innerhalb eines bestimmten Bereiches um den Zielzustand<br />

verbleibt.<br />

Unter diesen Gesichtspunkten wurden für das System versuchsweise die neuen Pole<br />

Pn = (−4, 487417 + 0, 336285i − 6, 731126 − 4, 487417 − 0, 336285i) T ausgewählt.<br />

Diese Pole wurden sowohl bei der Berechnung der Matrix K des Zustandsraumreglers<br />

als auch für die Bestimmung der Verstärkermatrix L verwendet. Bei der erneuten<br />

Simulation des Systems wurden abgesehen von den neuen Polen P die selben Parame-<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 31<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

1.6<br />

1.2<br />

0.8<br />

0.4<br />

0<br />

-0.4<br />

-0.8<br />

-1.2<br />

-1.6<br />

0 1 2 3 4 5 -4<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

5 Tests und Verbesserungen<br />

Abbildung 5.6: Komponenten des geschätzten Systemzustands ˆx(t) in der Simulation mit<br />

einer Totzeit von 30 ms.<br />

ter wie in Abschnitt 5.3.1 verwendet. Dabei ergab sich, wie in Abbildung 5.8 bis 5.10<br />

dargestellt, sowohl für den eigentlichen Systemzustand x(t) wie auch für den Beobachterfehler<br />

x(t) − ˆx(t) eine Konvergenz gegen den gewünschten Zielzustand.<br />

Es ist also zumindest in der Simulation exemplarisch möglich, ein totzeitbedingtes Aufschwingen<br />

durch die Wahl besserer Pole Pn zu korrigieren, auch wenn sich die Ergebnisse<br />

der Simulation für eine bestimmte Wahl der Pole, wie in Abschnitt 5.3.1 erläutert,<br />

nicht direkt auf das reale System übertragen lassen. Unter dieser Erkenntnis soll nun in<br />

Abschnitt 5.4 der Versuch unternommen werden, auch für den realen Kompensator das<br />

gewünschte Verhalten zu erreichen.<br />

5.4 Korrektur des Kompensators<br />

Da, wie in Abschnitt 5.3.1 festgestellt, sich die Ergebnisse der Simulation nicht direkt<br />

quantitativ auf das reale System übertragen lassen, wurden eine Reihe von Polen experimentell<br />

getestet. Bei der Wahl der zu überprüfenden Pole wurden die Erkenntnisse aus<br />

Abschnitt 5.3.2 angewendet.<br />

32 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

dTheta [rad/s]


5 Tests und Verbesserungen<br />

dx [m/s], Theta [rad]<br />

0.2<br />

0.15<br />

0.1<br />

0.05<br />

0<br />

-0.05<br />

-0.1<br />

-0.15<br />

-0.2<br />

0 1 2 3 4 5 -1.2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung 5.7: Schätzfehler x − ˆx(t) in der Simulation mit einer Totzeit von 30 ms. Dabei ist<br />

zu beobachten, dass neben dem System selbst auch der Beobachterfehler<br />

ein oszillierendes Verhalten aufweißt.<br />

Nach einer Reihe von Experimenten ergaben sich die folgenden Pole PK und PL jeweils<br />

als gute Lösung für die Reglermatrix K und die Beobachterverstärkungsmatrix L:<br />

PK = (−4, 999847 + 0, 039074i − 7, 499771 − 4, 999847 − 0, 039074i) T<br />

PL = (−2, 499924 + 0, 019537i − 3, 749885 − 2, 499924 − 0, 019537i) T<br />

5.4.1 Test des korrigierten Kompensators<br />

Das korrigierte System zeigte bei einem Test ein stabiles Verhalten. Zwar sind in Abbildung<br />

5.11 immer noch eindeutige Oszillationen zu erkennen, diese haben aber nur eine<br />

sehr geringe Amplitude: So liegt in diesem Versuch die maximal gemessene Auslenkung<br />

des Chassis bei Θmax ≈ 55, 95 · 10 −3 rad ≈ 3, 21 ◦ , die maximal gemessene translato-<br />

rischen Geschwindigkeit ˙xv,max beträgt ˙xv,max ≈ 0, 29 m.<br />

Die Standardabweichung des<br />

s<br />

gemessenen Kippwinkels ist σΘ ≈ 21, 35 · 10−3 rad ≈ 1, 22 ◦ , die Standardabweichung<br />

der translatorische Geschwindigkeit ist σxv ˙ ≈ 0, 0979 m.<br />

Da der Kompensator mit den<br />

s<br />

neuen Polen PK und PL die gewünschte aufrechte Lage in diesem Experiment im Mittel<br />

bis auf 1, 22 ◦ genau halten kann, wird das System als stabil betrachtet.<br />

In Abbildung 5.12 zeigt sich ein relativ träges Nachführungsverhalten für den vom Beobachter<br />

geschätzten Zustand ˆx. Die höherfrequenteren Bestandteile der Oszillationen<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 33<br />

1.2<br />

0.9<br />

0.6<br />

0.3<br />

0<br />

-0.3<br />

-0.6<br />

-0.9<br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

1.6<br />

1.2<br />

0.8<br />

0.4<br />

0<br />

-0.4<br />

-0.8<br />

-1.2<br />

-1.6<br />

0 1 2 3 4 5 -2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

5 Tests und Verbesserungen<br />

Abbildung 5.8: Wirklicher Systemzustand x(t) in der Simulation mit einer Totzeit von 30 ms<br />

mit den aktualisierten Polen Pn. Anders als im Abbildung 5.5 zeigt sich kein<br />

Aufschwingen mehr.<br />

aus Abbildung 5.11 werden dabei vom Beobachter nicht erfasst, was auch aus dem Graphen<br />

des Beobachterfehlers 5.13 ersichtlich ist. Allerdings reagiert der Regler immer<br />

noch ausreichend schnell auf eine von außen einwirkende Störung. Dieses Verhalten ist<br />

in den Abbildungen A.4 bis A.6 dargestellt.<br />

Auch ist das System in der Lage, sich aus der maximal möglichen, da durch das Schutzblech<br />

begrenzten, Vorwärtsneigung wieder aufzurichten. Damit ist es denkbar, dass der<br />

Roboter zum Einsparen von Akkuleistung zeitweise durch Abschalten der Motoren in<br />

einer durch das Schutzblech gestützten, gekippten Ruhelage verbleiben kann. Die Graphen<br />

A.7 bis A.9 zeigen das Verhalten des Systems bei einem solchen Aufrichten aus<br />

dem vorwärts gekippten Stand. Dabei ist es notwendig, dass ausreichend viel Platz für<br />

die zum Aufrichten nötige Vorwärtsbewegung zur Verfügung steht. Für den Start aus<br />

dem rückwärts gekippten Stand konnte dieser Versuch jedoch nicht durchgeführt werden,<br />

da die in das Basissystem integrierte Schutzfunktion einen solch großen Kippwinkel<br />

nicht zulässt.<br />

Allerdings kann dieser Kompensator nur mit der in Abschnitt 4.2.2 beschriebenen Korrektur<br />

der Offsets betrieben werden. Sonst reicht, wie aus Abbildung A.10 ersichtlich,<br />

die durch die Polwahl abgeschwächte Reglerantwort des Kompensators nicht aus, um<br />

den Chassiswinkel Θ innerhalb des erlaubten Intervalls zu halten.<br />

34 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

dTheta [rad/s]


5 Tests und Verbesserungen<br />

dx [m/s], Theta [rad]<br />

1.6<br />

1.2<br />

0.8<br />

0.4<br />

0<br />

-0.4<br />

-0.8<br />

-1.2<br />

-1.6<br />

0 1 2 3 4 5 -2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung 5.9: Komponenten des geschätzten Systemzustands ˆx(t) in der Simulation mit<br />

einer Totzeit von 30 ms bei Verwendung der aktualisierten Pole Pn.<br />

5.5 Vergleich zu anderen Reglern<br />

5.5.1 Kompensator unter Nutzung aller Sensoren<br />

Da es möglich ist, Gyroskopsensor und Lasersensor gleichzeitig zu verwenden, kann<br />

in Verbindung mit den Drehimpulsgebern der vollständige Zustand x des Systems gemessen<br />

werden. Bei einem vollständig messbaren Systemzustand x ist kein Beobachter<br />

mehr erforderlich, da der vom Regler zu ermittelnde Stellwert u direkt über die Gleichung<br />

2.10 berechnet werden kann. Dennoch macht es Sinn, einen Beobachter einzusetzen,<br />

um die Auswirkungen von Störungen der Sensoren zu vermindern (Dorf and<br />

Bishop, 2006). Um einen solchen Beobachter zu entwerfen, müssen nur die Entwurfsschritte<br />

aus Abschnitt 2.3 erneut durchgeführt werden, wobei nur die Matrix C durch<br />

eine 3 × 3 Einheitsmatrix ersetzt wird.<br />

Es wurde eine Simulation dieses Kompensators für alle drei Sensoren durchgeführt, wobei<br />

die selben Pole und Bedingungen wie in Abschnitt 5.3 verwendet wurden. Im Gegensatz<br />

zur Simulation des Kompensators ohne Lasersensor aus Abschnitt 5.3.1 zeigt<br />

sich hier bei gleicher simulierter Totzeit kein Aufschwingen. Dabei ist anzumerken,<br />

dass sich durch eine Erhöhung der simulierten Totzeit auch hier ein Aufschwingen herbeiführen<br />

lässt.<br />

Das Verhalten wurde im Experiment überprüft, wobei die Pole und alle anderen Para-<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 35<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

0.2<br />

0.15<br />

0.1<br />

0.05<br />

0<br />

-0.05<br />

-0.1<br />

-0.15<br />

-0.2<br />

0 1 2 3 4 5 -1.2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

1.2<br />

0.9<br />

0.6<br />

0.3<br />

0<br />

-0.3<br />

-0.6<br />

-0.9<br />

5 Tests und Verbesserungen<br />

Abbildung 5.10: Schätzfehler x(t) − ˆx(t) in der Simulation mit einer Totzeit von 30 ms bei<br />

Verwendung der aktualisierten Pole Pn. Auch hier zeigt sich anders als bei<br />

5.7 kein Aufschwingen mehr.<br />

meter identisch zu denen aus Abschnitt 5.1 gewählt wurden. Hier zeigte sich unter den<br />

gegebenen Bedingungen ein starkes Schwingverhalten. Anders als beim Kompensator<br />

rein auf Basis des Gyroskopsensors und der Drehimpulsgeber in Abschnitt 5.1 bleiben<br />

diese Schwingungen in ihrer Amplitude jedoch innerhalb des für den Fast A4 erlaubten<br />

Bereiches. Die Ergebnisse dieses Versuchs sind in Abbildung A.1 bis A.3 dargestellt.<br />

Schlussfolgerung im Bezug auf den Totzeitfehler<br />

Der Kompensator mit drei Sensoren erwies sich in der Simulation als stabiler gegenüber<br />

totzeitbedingtem Aufschwingen. Auch im Experiment zeigte sich ein etwas stabileres<br />

Verhalten als beim ursprünglich entwickelten Kompensator. Ein System, welches in der<br />

Simulation im Bezug auf totzeitbedingte Fehler ein besseres Verhalten zeigt, weist also<br />

auch im Experiment ein stabileres Verhalten auf. Dies ist ein weiteres Indiz dafür, dass<br />

die Ursache für das in den Experimenten beobachtete Schwingungsverhalten zumindest<br />

zum Teil totzeitbedingt ist.<br />

36 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

dTheta [rad/s]


5 Tests und Verbesserungen<br />

dx [m/s], Theta [rad]<br />

0.3<br />

0.225<br />

0.15<br />

0.075<br />

0<br />

-0.075<br />

-0.15<br />

-0.225<br />

-0.3<br />

0 2 4 6 8 10 12 14 16 -1<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung 5.11: Gemessener Systemzustand x(t) beim Test des Kompensators mit den<br />

aktualisierten Polen PK und PL. Anders als im Abbildung 5.1 zeigt sich<br />

kein katastrophales Aufschwingen mehr, und die noch vorhandenen Oszillationen<br />

sind in ihrer Amplitude gering.<br />

5.5.2 Kompensator mit direkter Verwendung der Gyroskopmessungen<br />

Bei Betrachtung der Graphen in Abbildung 5.13 fällt auf, dass bei der Winkelgeschwindigkeit<br />

˙ Θ der Schätzfehler besonders hoch zu sein scheint. Daher wurde überprüft,<br />

ob ein besseres Ergebnis erzielt werden kann, wenn statt der durch den Beobachter<br />

geschätzten Winkelgeschwindigkeit ˙ ˆ Θ direkt die durch den Gyroskopsensor gemessene<br />

Winkelgeschwindigkeit ˙ Θ an den Zustandsraumregler übergeben wird. Der Beobachter<br />

selbst bleibt dabei unverändert.<br />

Wie aus Abbildung A.11 ersichtlich zeigten sich im Experiment jedoch für den derart<br />

modifizierte Kompensator wesentlich ausgeprägtere Oszillationen. Diese improvisierte<br />

Maßnahme führte also zu keiner Verbesserung des Systemverhaltens.<br />

5.6 Schlussfolgerung<br />

Insgesamt erwies sich der Entwurf des Kompensators als schwieriger als zunächst in<br />

der Theorie angenommen. So zeigte sich in Abschnitt 5.1 ein Schwingungsverhalten,<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 37<br />

1<br />

0.75<br />

0.5<br />

0.25<br />

0<br />

-0.25<br />

-0.5<br />

-0.75<br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

0.3<br />

0.225<br />

0.15<br />

0.075<br />

0<br />

-0.075<br />

-0.15<br />

-0.225<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Befohlenes Drehmoment M [Nm]<br />

-0.3<br />

0 2 4 6 8 10 12 14 16 -1<br />

Zeit [s]<br />

1<br />

0.75<br />

0.5<br />

0.25<br />

0<br />

-0.25<br />

-0.5<br />

-0.75<br />

5 Tests und Verbesserungen<br />

Abbildung 5.12: Komponenten des geschätzten Systemzustands ˆx(t) zusammen mit der<br />

Reglerantwort M beim Test unter Verwendung der aktualisierten Pole PK<br />

und PL. Der Beobachter ist zu träge, um den höherfrequenteren Schwingungen<br />

aus 5.11 zu folgen.<br />

welches in der in Kapitel 3 vorgestellten anfänglichen Simulation nicht auftrat und auch<br />

nicht mit den in Kapitel 2 gemachten Vorhersagen vereinbar ist. Das in Kapitel 2 verwendete<br />

Modell ist also zumindest in Teilen fehlerhaft. Allerdings war es in einer Erweiterung<br />

der Simulation möglich, dass beobachtete Fehlverhalten zu reproduzieren.<br />

Mit Hilfe der in Abschnitt 5.3.2 gewonnenen Ergebnisse war es dann möglich, in Abschnitt<br />

5.4 einen Kompensator zu entwickeln, der bei den Tests in Abschnitt 5.4.1 ein<br />

ausreichend gutes Verhalten zeigte.<br />

Obwohl die Entwicklung des Regelungssystems also wesentlich komplizierter war als<br />

ursprünglich angenommen, konnte dennoch eine Lösung für das anfänglich in Kapitel<br />

1.1 formulierte Problem gefunden werden.<br />

38 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong><br />

dTheta [rad/s], M[Nm]


5 Tests und Verbesserungen<br />

dx [m/s], Theta [rad]<br />

0.25<br />

0.1875<br />

0.125<br />

0.0625<br />

0<br />

-0.0625<br />

-0.125<br />

-0.1875<br />

-0.25<br />

0 2 4 6 8 10 12 14 16 -0.5<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung 5.13: Schätzfehler x(t) − ˆx(t) des Beobachters unter Verwendung der aktualisierten<br />

Pole PK und PL.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 39<br />

0.5<br />

0.375<br />

0.25<br />

0.125<br />

0<br />

-0.125<br />

-0.25<br />

-0.375<br />

dTheta [rad/s]


5 Tests und Verbesserungen<br />

40 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Zusammenfassung und Ausblick<br />

6<br />

Das Hauptziel der Arbeit, der Entwurf des Kompensators, konnte zunächst in Kapitel 2<br />

ohne Probleme durchgeführt werden. Auch im Rahmen der in Kapitel 3 durchgeführten<br />

Simulation zeigte sich zunächst sowohl für den Zustandsraumregler als auch für den<br />

Beobachter das erwartete Verhalten. Die Implementierung als RAM-Programm verlief<br />

wie erwartet, wobei sich bei der Implementierung herausstellte, dass bestimmte Details<br />

des Fast A4-Roboters beachtet werden müssen. Diese Besonderheiten wurden daher in<br />

Abschnitt 4.2 getrennt behandelt.<br />

Zudem zeigte sich nach ersten Tests in Abschnitt 5.1, dass das reale Verhalten des entworfenen<br />

Kompensators nicht dem gewünschten und in der Simulation aufgetretenen<br />

Verhalten entsprach. Statt dessen wurden starke Oszillationen beobachtet, die den Kompensator<br />

in seiner urpsrünglichen Fassung quasi unbrauchbar machten. Allerdings war<br />

es möglich, den Fehler mit Hilfe der in Abschnitt 5.2 beschriebenen Simulation zu beheben<br />

und so zu einem korrigierten Kompensator mit dem gewünschten Verhalten zu<br />

gelangen.<br />

6.1 Ausblick<br />

Auf Basis des in dieser Arbeit entworfenen Reglers sind eine Reihe von Erweiterungen<br />

und Verbesserungen denkbar, welche hier vorgestellt werden sollen.<br />

6.1.1 Optimierung der Pole<br />

Die im Rahmen dieser Arbeit für den Zustandsraumregler und den Beobachter verwendeten<br />

Pole wurden auf Basis der Ergebnisse von Simulationen oder Messungen aus-<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 41


6 Zusammenfassung und Ausblick<br />

gewählt. Es ist allerdings zu erwarten, dass andere Pole existieren, die hinsichtlich von<br />

Ausregelzeit und Oszillation ein besseres Verhalten aufweisen. Es wäre denkbar, zum<br />

Auffinden solcher Pole ein systematisches Such- und Optimierungsverfahren durchzuführen.<br />

6.1.2 Verwendung der RC-Steuerung<br />

Wie in Abschnitt 1.2 bereits erwähnt, kann der Mikrocontroller Daten von zwei<br />

Achsen einer Funkfernsteuerung (RC-Steuerung) empfangen (Fuhrmann and Tenge,<br />

2005). Eine Achse der Fernsteuerung wird dabei einer Drehbewegung um die y-Achse<br />

des Fast A4, also einer Richtungsänderung, zugeordnet. Zur Umsetzung dieser Richungsänderung<br />

kann der in Abschnitt 4.2.4 beschriebene I-Regler erweitert werden,<br />

indem die dort verwendete Richtungsabweichung ∆xv entsprechend der RC-Eingabe<br />

verändert wird.<br />

Um die zweite Achse auf eine Vorwärts- / Rückwärtsbewegung abbilden zu können,<br />

muss jedoch der Kompensator erweitert werden. Dazu wird die Führungsgröße r eingeführt,<br />

die als Zielzustand des Systems dient. Der Kompensator soll nun also den Systemzustand<br />

x nicht mehr an �0 sondern an die Führungsgr¨ße r angleichen. Nach Dorf and<br />

Bishop (2006) lässt sich dieses Verhalten erreichen, indem die Beobachtergleichung<br />

2.12 zu ˙ ˆx = Aˆx + Bu + L(y − C ˆx) − Lr erweitert wird. Die Umformungen aus<br />

Abschnitt 4.1 lassen sich auch hier durchführen, womit sich die Beobachtergleichung<br />

zu ˙ ˆx = (A − BK − LC)ˆx + L(y − r) ergibt. Durch die Wahl einer entsprechenden<br />

Führungsgröße r kann nun die gewünschte translatorische Geschwindigkeit xv als Teil<br />

der Führungsgröße vorgegeben werden.<br />

Mit diesen Änderungen können Fahrtrichtung und Fahrtgeschwindigkeit vom Benutzer<br />

direkt kontrolliert werden. Von Interesse ist besonders, dass die Richtungs- und Geschwindigkeitsvorgaben<br />

auch aus anderen Quellen als der Funkfernsteuerung stammen<br />

können. Somit ist es möglich, komplexe Verhaltensweisen auf dem Fast A4 zu implementieren,<br />

solange sich diese auf einfache Bewegungskommandos reduzieren lassen.<br />

Zudem kann die optionale PC-104-Erweiterung des Fast A4 genutzt werden, um mehr<br />

Rechenkapazitäten für derartige Anwendungen zur Verfügung zu stellen. Da der Laser-<br />

Entfernungsmesser nun nicht mehr zur Regelung des Fast A4 benötigt wird, steht dieser<br />

Sensor für andere Aufgaben zur Verfügung. Zum Beispiel könnten mit Hilfe des Lasersensors<br />

Hindernisse oder Unebenheiten im Terrain erkannt werden. Allerdings war es<br />

im Umfang dieser Arbeit nicht mehr möglich, die Kontrolle mittels RC-Steuerung oder<br />

komplexere Verhaltensweisen zu implementieren oder zu testen.<br />

6.1.3 Halten einer bestimmten Position<br />

Wenn der Fast A4 um einen Sensor erweitert wird, der die Position entlang der Fahrstrecke<br />

messen kann, so ist es möglich, den Kompensator auch zum Halten einer be-<br />

42 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


6 Zusammenfassung und Ausblick<br />

stimmten Position entlang dieser Fahrstrecke zu nutzen. Dazu wird der Zustandsvektor<br />

x um die Position in Fahrtrichtung xv zu x = (xv ˙xv Θ ˙ Θ) T erweitert. Zudem müssen<br />

die Matrizen A, B, und C jeweils wie folgt erweitert werden, wobei Am,n und Bm,n sich<br />

auf die Einträge der Matrizen aus Gleichung 2.7 und 2.8 beziehen:<br />

⎡<br />

⎤ ⎡ ⎤<br />

0 1 0 0<br />

0<br />

⎢<br />

⎢0<br />

A1,1 · · · A1,3<br />

⎥ ⎢<br />

⎥ ⎢B1,1<br />

⎥<br />

A = ⎢<br />

⎣<br />

.<br />

0 . ..<br />

⎥ , B = ⎢ ⎥<br />

. ⎦ ⎣ . ⎦<br />

0 A3,1 · · · A3,3 B3,1<br />

⎡<br />

1 0 0<br />

⎤<br />

0<br />

C = ⎣0<br />

1 0 0⎦<br />

0 0 0 1<br />

Werden nun analog zum Vorgehen in den Abschnitten 2.2.1 und 2.3.1 die Steuerbarkeitsmatrix<br />

PC und die Beobachtbarkeitsmatrix PO entsprechend der Gleichung 2.2.1<br />

und 2.3.1 für die neuen Matrizen A, B und C aufgestellt, so ergibt sich für die 4 × 4-<br />

Matrizen PC und PO ein voller Rang von rank(PC) = 4 und rank(PO) = 4. Dabei wurde<br />

für PO analog zum Vorgehen in Abschnitt 2.3.1 eine Hilfsmatrix C ′ = � 1 1 0 1 �<br />

verwendet. Das erweiterte System ist also steuerbar und beobachtbar, und es kann mit<br />

dem Reglerentwurf wie in Kapitel 2 fortgefahren werden. Da allerdings zum Zeitpunkt<br />

dieser Arbeit kein passender Positionssensor zur Verfügung stand, bleibt eine solche<br />

Weiterentwicklung als zukünftige Verbesserungsmöglichkeit offen.<br />

6.1.4 Alternative Sensorkonzepte<br />

Mit dem in Abschnitt 2.2.1 und 2.3.1 beschriebenen Vorgehen lässt sich zeigen, dass<br />

das System auch dann steuerbar und beobachtbar bleibt, wenn allein die Geschwindigkeit<br />

˙xv gemessen werden kann. Auf Sensoren zur Messung des Kippwinkels oder der<br />

Rotationsgeschwindigkeit des Chassis könnte dann verzichtet werden.<br />

Allerdings ist ein solcher Verzicht mit den momentan vorhandenen Sensoren nicht<br />

möglich, da, wie in Abschnitt 4.2.3 beschrieben, eine Berechnung der translatorischen<br />

Geschwindigkeit aus den Messungen der Drehimpulsgeber nur unter Einbeziehung der<br />

Rotationsgeschwindigkeit des Chassis ˙ Θ möglich ist. Eine Messung von ˙ Θ erfordert allerdings<br />

einen entsprechenden Sensor, so dass eine Regelung allein unter Verwendung<br />

der Drehimpulsgeber nicht möglich ist. Eine zukünftige Alternative bietet die Messung<br />

von ˙xv aus anderen Quellen. Zumindest theoretisch vorstellbar wäre eine Geschwindigkeitsmessung<br />

auf Basis von Kamerabildern unter Nutzung des optischen Flusses. Eine<br />

andere Möglichkeit ist die Ableitung der translatorischen Geschwindigkeit aus ausreichend<br />

genauen Positionsmessungen, welche auch für die in Abschnitt 6.1.3 beschriebene<br />

Erweiterung von Nutzen wären.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 43


6 Zusammenfassung und Ausblick<br />

44 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Weitere Messergebnisse<br />

dx [m/s], Theta [rad]<br />

1.5<br />

1.125<br />

0.75<br />

0.375<br />

0<br />

-0.375<br />

-0.75<br />

-1.125<br />

-1.5<br />

0 0.5 1 1.5 2 2.5 3<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

-4<br />

dTheta [rad/s]<br />

A<br />

Abbildung A.1: Gemessener Systemzustand x(t) bei der gleichzeitigen Nutzung von Laser-<br />

Entfernungsmesser und Gyroskopsensor. Dabei zeigt sich eine starke Oszillation,<br />

die jedoch nicht zur Katastrophe führt.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 45


dx [m/s], Theta [rad]<br />

1.5<br />

1.125<br />

0.75<br />

0.375<br />

0<br />

-0.375<br />

-0.75<br />

-1.125<br />

-1.5<br />

0.5 1 1.5 2 2.5 3<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Befohlenes Drehmoment M [Nm]<br />

4<br />

3<br />

2<br />

1<br />

0<br />

-1<br />

-2<br />

-3<br />

-4<br />

dTheta [rad/s], M[Nm]<br />

A Weitere Messergebnisse<br />

Abbildung A.2: Durch den Beobachter geschätzter Systemzustands ˆx(t) und die resultierende<br />

Reglerantwort M(t) für die gleichzeitige Verwendung von Laser- und<br />

Gyrosensor.<br />

46 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


A Weitere Messergebnisse<br />

dx [m/s], Theta [rad]<br />

0.5<br />

0.375<br />

0.25<br />

0.125<br />

0<br />

-0.125<br />

-0.25<br />

-0.375<br />

-0.5<br />

0.5 1 1.5 2 2.5 3<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung A.3: Schätzfehler x(t)− ˆx(t) des Beobachters bei der gleichzeitigen Verwendung<br />

von Laser- und Gyrosensor. Auch hier zeigt sich zwar eine Oszillation, anders<br />

als in Abbildung 5.3 jedoch kein katastrophales Aufschwingen.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 47<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-2<br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

1.5<br />

1.125<br />

0.75<br />

0.375<br />

0<br />

-0.375<br />

-0.75<br />

-1.125<br />

-1.5<br />

0 2 4 6 8 10 12 14 16 -2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

dTheta [rad/s]<br />

A Weitere Messergebnisse<br />

Abbildung A.4: Gemessener Systemzustand x(t) während des Tests der Stabilität gegenüber<br />

äußeren Einflüssen. Dabei wurde der Fast A4 manuell zunächst<br />

in Vorwärts- und dann in Rückwärtsrichtung angestossen. Beides mal kehrt<br />

das System wieder in eine stabile Ausgangslage zurück.<br />

48 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


A Weitere Messergebnisse<br />

dx [m/s], Theta [rad]<br />

1.5<br />

1.125<br />

0.75<br />

0.375<br />

0<br />

-0.375<br />

-0.75<br />

-1.125<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Befohlenes Drehmoment M [Nm]<br />

-1.5<br />

0 2 4 6 8 10 12 14 16 -2<br />

Zeit [s]<br />

Abbildung A.5: Durch den Beobachter geschätzter Systemzustands ˆx(t) und die resultierende<br />

Reglerantwort M(t) beim Auftreten externer Störungen.<br />

dx [m/s], Theta [rad]<br />

0.5<br />

0.375<br />

0.25<br />

0.125<br />

0<br />

-0.125<br />

-0.25<br />

-0.375<br />

-0.5<br />

-1<br />

0 2 4 6 8 10 12 14 16<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung A.6: Schätzfehler x(t) − ˆx(t) des Beobachters beim Auftreten externer<br />

Störungen. Das manuelle Anstoßen des Roboters führt zunächst zu einem<br />

größen Beobachterfehler, der dann aber wieder ausgeglichen wird.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 49<br />

1<br />

0<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

0.75<br />

0.5<br />

0.25<br />

-0.25<br />

-0.5<br />

-0.75<br />

dTheta [rad/s], M[Nm]<br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

2.8<br />

2.1<br />

1.4<br />

0.7<br />

0<br />

-0.7<br />

-1.4<br />

-2.1<br />

-2.8<br />

0 1 2 3 4 5 6 7 8 -2.8<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

2.8<br />

2.1<br />

1.4<br />

0.7<br />

0<br />

-0.7<br />

-1.4<br />

-2.1<br />

dTheta [rad/s]<br />

A Weitere Messergebnisse<br />

Abbildung A.7: Gemessener Systemzustand x(t) beim Start aus der nach vorne gekippten<br />

Lage. Beim Aufrichten vollführt das System eine lange Vorwärtsbewegung,<br />

so dass ausreichend Platz zur Verfügung stehen muss.<br />

50 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


A Weitere Messergebnisse<br />

dx [m/s], Theta [rad]<br />

2.8<br />

2.1<br />

1.4<br />

0.7<br />

0<br />

-0.7<br />

-1.4<br />

-2.1<br />

-2.8<br />

0 1 2 3 4 5 6 7 8 -2.8<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Befohlenes Drehmoment M [Nm]<br />

Abbildung A.8: Der vom Beobachter geschätzte Systemzustands ˆx(t) zusammen mit der<br />

Reglerantwort M(t) beim Aufrichten aus der nach vorne gekippten Lage.<br />

In Kombination mit Abbildung A.7 ist zu erkennen, dass die Reglerantwort<br />

M und damit der geschätzte Zustand ˆx erst langsam ansteigen. Erst wenn<br />

das vom Regler geforderte Drehmoment eine gewisse Schwelle übersteigt,<br />

zeigt sich auch eine Änderung des gemessene Zustands.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 51<br />

2.8<br />

2.1<br />

1.4<br />

0.7<br />

0<br />

-0.7<br />

-1.4<br />

-2.1<br />

dTheta [rad/s], M[Nm]


dx [m/s], Theta [rad]<br />

0.5<br />

0.375<br />

0.25<br />

0.125<br />

0<br />

-0.125<br />

-0.25<br />

-0.375<br />

-0.5<br />

0 1 2 3 4 5 6 7 8 -2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

dTheta [rad/s]<br />

A Weitere Messergebnisse<br />

Abbildung A.9: Schätzfehler x(t) − ˆx(t) beim Aufrichten des Systems aus der nach vorne<br />

gekippten Lage. Zu Beginn liegt ein sehr hoher Schätzfehler für den Kippwinkel<br />

Θ vor, da der geschätzte Kippwinkel ˆ Θ mit 0 initialisiert wird. Die in<br />

Abbildung A.8 dargestellte Reglerantwort M führt, wie in A.7 zu sehen, erst<br />

ab einer gewissen Schwelle zu einer Bewegung des realen Systems. Da M<br />

aber direkt in die Schätzung des Systemzustands mit einfließt, zeigt sich<br />

bei langsam ansteigendem M zunächst auch ein langsam ansteigender<br />

Schätzfehler. Dieser Fehler wird erst wieder geringer, sobald die Bewegung<br />

des realen Systems eintritt.<br />

52 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


A Weitere Messergebnisse<br />

dx [m/s], Theta [rad]<br />

2<br />

1.5<br />

1<br />

0.5<br />

0<br />

-0.5<br />

-1<br />

-1.5<br />

-2<br />

0 0.5 1 1.5 2<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

Abbildung A.10: Gemessener Systemzustand x(t) im Experiment mit dem in Abschnitt 5.4<br />

beschriebenem Kompensator. Dabei wurden die in Abschnitt 4.2.2 gemessenen<br />

Offsets jedoch nicht mit einberechnet. Es zeigt sich, dass der neue<br />

Kompensator ohne die Korrektur der Offsets nicht in der Lage ist, den<br />

Chassis-Kippwinkel Θ innerhalb des zulässigen Bereichs zu halten. Daher<br />

ist die Verwendung der in Abschnitt 4.2.2 beschriebenen Korrektur<br />

der Offsets bei diesem Kompensator zwingend erforderlich.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 53<br />

2.8<br />

2.1<br />

1.4<br />

0.7<br />

0<br />

-0.7<br />

-1.4<br />

-2.1<br />

-2.8<br />

dTheta [rad/s]


dx [m/s], Theta [rad]<br />

0.3<br />

0.225<br />

0.15<br />

0.075<br />

0<br />

-0.075<br />

-0.15<br />

-0.225<br />

-0.3<br />

0 2 4 6 8 10 12 14 16 -1<br />

Zeit [s]<br />

Trans. Geschw. dx [m/s]<br />

Kippwinkel Theta [rad]<br />

Winkelgeschw. dTheta [rad/s]<br />

1<br />

0.75<br />

0.5<br />

0.25<br />

0<br />

-0.25<br />

-0.5<br />

-0.75<br />

dTheta [rad/s]<br />

A Weitere Messergebnisse<br />

Abbildung A.11: Gemessener Systemzustand x(t) bei direkter Übergabe der gemessenen<br />

Winkelgeschwindigkeit ˙ Θ an den Zustandsraumregler. Die translatorische<br />

Geschwindigkeit ˙xv und der Kippwinkel Θ für den Zustandsraumregler<br />

werden weiterhin aus dem vom Beobachter geschätzten Systemzustand<br />

ˆx übernommen.<br />

54 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


LITERATURVERZEICHNIS<br />

Literaturverzeichnis<br />

Analog Devices, Inc. ADXRS300 Datenblatt Rev B., 2003.<br />

Basa, D., Olderdißen, J., and Winter, S. Implementierung eines Beobachter-gestützten<br />

Reglers für einen balancierenden Roboter. Unveröffentlichte Projekt-Dokumentation,<br />

<strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>, <strong>Technische</strong> Fakultät, <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>Bielefeld</strong>,<br />

2009.<br />

Bertschik, A. Bildstabilisation auf einem mobilen, balancierenden Roboter. Diplomarbeit,<br />

<strong>Technische</strong> Fakultät der <strong>Universität</strong> <strong>Bielefeld</strong>, 2008.<br />

Dorf, R. C. and Bishop, R. H. Moderne Regelungssysteme. Pearson Studium, München,<br />

2006.<br />

Fuhrmann, C. and Tenge, A. Konstruktion und Regelung eines autonomen Zweirad-<br />

Roboters. Diplomarbeit, <strong>Technische</strong> Fakultät der <strong>Universität</strong> <strong>Bielefeld</strong>, 2005.<br />

The MathWorks. Matlab-Dokumentation für Matlab Version 7.0.4, 2005.<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 55


LITERATURVERZEICHNIS<br />

56 <strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong>


Hiermit versichere ich, dass ich diese Bachelorarbeit selbständig bearbeitet habe.<br />

Ich habe keine anderen als die angegebenen Quellen und Hilfsmittel benutzt und<br />

entsprechende Zitate kenntlich gemacht.<br />

<strong>Bielefeld</strong>, den 5. November 2009<br />

David Fleer<br />

<strong>Universität</strong> <strong>Bielefeld</strong>, <strong>AG</strong> <strong>Technische</strong> <strong>Informatik</strong> 57

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!