PDF, 1MB - AG Technische Informatik - Universität Bielefeld
PDF, 1MB - AG Technische Informatik - Universität Bielefeld
PDF, 1MB - AG Technische Informatik - Universität Bielefeld
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