Prof. J. Walter - Informationstechnik, Mikrocomputertechnik, Digitale Medien Konzeptentwicklung
Hochschule Karlsruhe Logo F & E - Projekt Master
EncoderFT-32
Sommersemester 2019
Timo Tränkel
Tim Brachat
Maximilian Schmitz

Konzeptentwicklung

1. Konzept zum mechanischen Aufbau des Fahrzeugs

Konzeptidee:

-    Fahrzeug mit niedrigem Schwerpunkt
-    Gewicht des Fahrzeuges soweit möglich reduzieren, um Spielraum für Regelung zu vergrößern
-    ABER: Ein Durchdrehen / Rutschen der Räder muss vermieden werden
-    Bekannter und unveränderlicher Radstand
-    Stift, zum Prüfen des Geradeauslaufes oder zum Malen des Haus des Nikolaus, achsmittig platzieren
-    Kugelrolle als drittes Rad, da damit bisher die besten Ergebnisse erziehlt wurden
-    Mechanischer Anschlag (s. Wiederholbarkeit)



gewähltes Fahrzeugkonzept mit niedrigem Schwerpunkt


Der mechanische Aufbau des Fahrzeugs hatte das Ziel, die Regelung der Encodermotoren so wenig wie möglich zu beeinflussen. Dabei
wurde ein niedriger Schwerpunkt angestrebt. Dafür müssen die Motoren und der Akku des Roboters möglich niedrig verbaut werden. In der obenstehenden Abbildung ist das gewählte mechanische Konzept für das Fischertechnik-Fahrzeug zu sehen. Man kann erkennen, dass das Gewicht der Motoren und des Akkus gleichmäßig auf die Gesamtfläche des Roboters verteilt ist. Dadurch ist es ebenfalls gelungen, den
Schwerpunkt des Fahrzeugs niedrig zu halten.

1.1 Konzept zum Verbessern der Wiederholbarkeit

Konzeptidee:

-    mechanischer Anschlag in Fahrzeugkonzept integrieren (s. Abbildung)
-    Anfahrrampe in Software realisieren um ein Durchdrehen der Räder zu vermeiden
-    Haftung der Räder verbessern / Reproduzierbarkeit sicherstellen (s. Haftung)


Gewähltes Fahrzeugkonzept mit mechanischem Anschlag hinten


Um die Wiederholbarkeit der Versuche sicherzustellen, wurde ein mechanischer Anschlag am Ende des Fahrzeuges verbaut. Er erlaubt ein
immer gleiches Aufsetzen des Fahrzeugs und soll Fehler durch schiefes Platzieren des Fahrzeugs vermeiden. Außerdem wurde in Software
eine Anfahrtsrampe realisiert. Diese ermöglicht es, dass der Roboter ohne Ruck anfahren kann. Dadurch kann ein Rutschen oder Driften des Roboters im Anfahrtsprozess verhindert werden. Geplant war auch eine Verbesserung der Haftung der Räder, dies wird im nächsten Kapitel weiter betrachtet. Aufgrund der Verbesserung des Anfahrtsverhaltens durch die Anfahrtsrampe entschieden wir uns dazu, dass keine zusätzliche Strategie zur Verbesserung der Haftung der Räder notwendig ist.

Außerdem gab es zwei Ansätze zur Umsetzung der Anfahrtsrampe in Software:

1. Ungeregelte Anfahrtsrampe: Bei der ungeregelten Anfahrtsrampe sollte die Motorregelung erst starten, wenn der Motor den zuvor
eingestellten Sollwert erreicht hatte. Allerdings gab es hierbei große Sprünge beim Übergang von ungeregleter Rampe auf den geregelten
Betrieb. Dies ist im nachfolgenden Graph zu erkennen:



Ungeregelte Anfahrtsrampe mit großen Sollwertsprüngen beim Übergang zur Regelung   


2. Geregelte Anfahrtsrampe: Bei einer geregelten Anfahrtsrampe ist ein deutlich besserer Übergang zwischen der Rampe und dem danach
angestrebten Sollwert zu erkennen. Das Fehlverhalten des Reglers ist dabei einem Kompromiss aus Agilität und Genauigkeit geschuldet.
Allerdings ist klar zu erkennen, dass eine Regelung der Anfahrtsrampe deutlich bessere Ergebnisse liefert, im Vergleich zu einer
ungeregelten Anfahrt.



Geregelte Anfahrtsrampe mit deutlich besserem Verhalten gegenüber einer ungeregleten Anfahrt


1.2.1. Konzept zum Verbessern der Haftung (1)

Konzeptidee:

-    Haarspray auf Reifen aufbringen
-    Reifen zusätzlich aufrauen

1.2.2. Konzept zum Verbessern der Haftung (2)

Konzeptidee:

-    Reifen mit Fahrradschlauch (oder weichen Gummibändern) überziehen
-    überzogenen Reifen mit Alkohol bearbeiten um weichere Reifen (mehr Haftung) zu erhalten
-    Reifen zusätzlich aufrauen

Es wurde entschieden auf eine Verbesserung der Haftung durch oben genannnte Konzepte zu verzichten, da mit Hilfe der Anfahrtsrampe
deutliche Verbesserungen im Bezug auf Rutschen und Driften des Roboters erzielt wurden.

2. Regelungskonzepte

2.1 Differenzdrehzahlregelung


Differentdrehzahlregelungskonzept

Das erste Reglerkonzept für einen Geradeauslauf wurde durch einen Differenzregler umgesetzt. Hierbei wird ein Motor mit einer vorgegebenen Geschwindigkeit beaufschlagt und der andere Motor auf die Nulldifferenz der rückgekoppelten Geschwindigkeiten geregelt. Da sich die Motoren mit diesem Konzept in jeder Lage gleich schnell drehen sollen, ist ein Geradeauslauf unumgänglich.

Dieses Konzept brachte leider einige Nachteile mit sich. Die einzelnen Motoren sind mit diesem Konzept nicht mehr individuell und intuitiv bedienbar. Jede Bewegung muss in Drehzahldifferenzen ausgedrückt werden, was die gesamte Bedienbarkeit erschwert. Zudem hat sich in den ersten Versuchen gezeigt, dass es kaum möglich ist, die Drehzahldifferenz zuverlässig auszuregeln. Die Drehzahl des „führenden“ Motors ist dabei nicht genau einstellbar und unterliegt Schwankungen beispielswe
ise durch die Batteriespannung. Der „folgende“ Motor hinkt dem führenden Motor stehts etwas hinterher. Eine präzise Nulldifferenz der Drehzahlen ist nicht realisierbar.

2.2 Individuelle Geschwindigkeitsregelung


Konzept der individuellen Geschwindigkeitsregelung

Im zweiten Reglerkonzept werden die Motoren einzeln mit identischen Regelkreisen geregelt. Die Parameter und der Geschwindigkeitssetpoint werden mit gleichen Werten an beide Regler übergeben. Dadurch soll ein sehr ähnliches Verhalten der beiden Regler erzielt werden. Im Versuch wurde festgestellt, dass sich die beiden Regler in der Tat sehr ähnlich verhalten. Kombiniert mit einer Anfahrtsrampe war es möglich, den Regelfehler der beiden Regler innerhalb von kleiner 0,042 Umdrehungen/s zu halten. Dies entspricht einder Encoderauflösung von +- 5 Incrementen.


2.1   Systemidentifikation und Simulation mit Matlab Simulink

Konzeptidee:

    -    Aufnahme einer Sprungantwort und bestimmen der Regelparameter
    -    Sprungantwort wird mit Hilfe eines zusätzlichen Encoders am Ausgang der Motorwelle aufgenommen

2.1.1 Systemidentifikation

Im Folgenden wird das System identifiziert. Dies ist vorteilhaft, um eine spätere Implementierung einer Regelung und der Einstellung der Regelparametern zu erleichtern. Es wird die Übertragungsfunktion des Motors identifiziert, welche mit einem PT2-Glied angenähert wird.

Für die Identifikation ist die Aufzeichnung einer Sprungantwort nötig. Um diese aufzuzeichnen, wird ein Drehgeber auf die Motorwelle aufgebracht und der Motor bestromt. Dabei wird die Rotationsgeschwindigkeit über die Zeit gemessen.

 

Sprungantwort eines PT2-Glieds 

Ein Elektromotor kann durch ein Verzögerungsglied zweiter Ordnung angenähert werden. Die Übertragungsfunktion eines PT2-Glieds lautet y(t) = K/((T1*s+1)(T2*s+1)) .

 

Abbildung 2: Simulink Simulationsmodell des Elektromotors

In der Abbildung 2 wurde das System Elektromotor in Simulink aufgebaut. Bei einem Elektromotor sind die Zeitkonstanten nur sehr gering, was zu kleinen Verzögerungszeiten der Sprungantwort führt. Anders als in Abbildung 1, welche die beispielhafte Sprungantwort y(t) eines PT2-Glieds darstellt, wird die Zeitskala der Sprungantwort des Elektromotors deutlich kleiner sein. Die Messung der Sprungantwort erfolgte im Rahmen des Projektes in einem Zeitraum von 0,08 s.

 

Die Identifikation des Systems wird im Folgenden über das Gaußsche Fehlerquadrat im Zusammenspiel mit der Matlab Optimierungsfunktion fminsearch, welche dem Prinzip des Nelder-Mead-Algorithmus zugrunde liegt. Da in der Messung der Sprungantwort die Rotationsgeschwindigkeit gemessen wurde, die Regelgröße jedoch der PWM Duty-Cycle ist, wird von Umdrehungen pro Sekunde in Duty-Cycle umgerechnet. Hierbei hilft eine Linearisierung des PWM-Signals.

Im ersten Durchlauf der Systemidentifikation wird das Fehlerquadrat der simulierten Kurve zur realen Kurve gebildet. Die Funktion fminsearch erhält als Eingangsgröße die Summe des Fehlerquadrates und gibt nach einer Iteration die Zeitkonstanten T1, T2 aus. In den nachfolgenden Iterationen werden die neu errechneten Zeitkonstanten als neuer Startwert verwendet und der Prozess wiederholt, solange bis das Fehlerquadrat der gemessenen und simulierten Kurve minimal ist. Somit kann das System adäquat identifiziert werden.

 


Abbildung3: Identifiziertes, simuliertes System vs. Sprungantwort des Motors im Realbetrieb

 

Abbildung 3 zeigt das identifizierte System. Als Anfangswert wurden die Zeitkonstanten T1 = 0,01s und T2 = 0,01s, sowie der Verstärkungsfaktor K = 90 gesetzt. Nach 83 Iterationen des Algorithmus fminsearch ist der Elektromotor mit den Zeitkonstanten T1 = 1e-4s und T2 = 0,0029s angemessen identifiziert.


2.1.2 Regelparametereinstellung

Parameter für ein derartiges System können durch empirische Methoden oder auch durch die Benutzung der PID-Tuning App von Matlab erfolgen. Heuristische Methoden, wie beispielsweise durch Ziegler/Nichols vorgegeben, führen zu keinem Erfolg, da diese Methoden für Systeme mit großer Verzögerungszeit geeignet sind.

2.1.3 Einstellung des Reglers mit der PID Tuning App

Sobald die Übertragungsfunktion identifiziert wurde, deklariert man diese im Matlab Workspace. Parallel hierzu wird ein Simulink-Modell benötigt, welches das identifizierte System samt PID-Regler repräsentiert. Nun kann mit verschiedenen Bedingungen das Verhalten des Reglers beeinflusst werden. Beispielsweise kann die Zeit, in welcher der Regler reagiert, eingestellt werden. Ebenso kann man zwischen robustem und aggressivem Regelverhalten wählen.
Im Rahmen des Projekts wurden vier Regler-Einstellungen untersucht.

-          Standard ( Kp = 0,016, Ki = 10,2, Kd = -2,24e-7)

-          Schnelle Reaktionszeit ( Kp = 0,2226, Ki = 248, Kd = 4,5e-6)

-          Aggressives Regelverhalten ( Kp = 0,016, Ki = 11,07, Kd = -2,26e-7)

-          Robustes Regelverhalten ( Kp = 0,0195, Ki = 7,6, Kd = 4,92e-6)


Die von MatLab ermittelten Regelparameter wurden im Weitern im Realbetrieb untersucht. Nachfolgend die erhaltenen Resultate.

2.1.3.1 Ergebnisse "Standard"

Kp = 0,016, Ki = 10,2 Kd = -2,24e-7 (wurde 0 gewählt, da vernachlässigbar gering)


Reglerverhalten bei Einstellung "Standard"

Die Einstellung „Standard“ beinhaltet die automatisch generierten Einstellungen aus der PID-Toolbox von MatLab ohne weitere manuelle Parametrierung.
Man erkennt eine starke Schwingung des Istwerts um den Sollwert der Regelung. Betrachtet man die Anteile der Regelung sticht hier ein verhältnismäßig großer I-Anteil heraus. Dieser erkennt die Abweichung des Istwerts zum Sollwert und möchte den Fehler ausintegrieren, wobei Über- und Unterschwinger mit etwa gleicher Amplitude entstehen. Die Folge hierbei ist eine dauerhafte Schwingung des Istwerts. Dies zeigt, dass die hier gefundenen Regelparameter für das System ungeeignet sind. Eine Verbesserung könnte durch eine nachträgliche Reduktion des I-Anteils erreicht werden.

2.1.3.2 Ergebnisse "Schnelle Reaktionszeit"

Kp = 0,2226, Ki = 248, Kd = 4,5e-6 (wurde 0 gewählt, da vernachlässigbar gering)


Reglerverhalten bei Einstellung "Schnelle Reaktionszeit"

Diese Einstellung des Reglers bedeutet einen deutlich höheren I-Anteil in der Regelstrecke, um Agilität zu gewährleisten.
Der Istwert des Systems schwingt hier um den Sollwert, da hier durch den höheren I-Anteil der Regelstrecke versucht wird, die Regeldifferenz schnell auszugleichen. Da das System Encodermotor sehr agil ist und somit schnell auf intensivere Ströme an Motorspulen anspricht, wird der Überschwinger des Istwerts zum Sollwert generiert. Ebenso kann hier kein Einschwingvorgang stattfinden, da der hohe I-Anteil der Strecke immer selbst kleine Regeldifferenzen auf den Stellwert des PWM-Signals integriert, sodass die Differenz selbst nie Null werden kann. Der I-Anteil müsste hierbei deutlich reduziert werden, um eine Verbesserung zu erzielen.


2.1.3.3 Ergebnisse "Agressives Regelverhalten"

Kp = 0,016, Ki = 11,07, Kd = 2,26e-7 (wurde 0 gewählt, da vernachlässigbar gering)


Reglerverhalten bei Einstellung "Agressives Regelverhalten"

Mit einer „aggressiven“ Reglereinstellung wird lediglich ein leicht höherer I-Anteil zur Regelstrecke hinzugefügt als bei Standard-Einstellungen.
Auch mit diesen Einstellungen treten Schwingungen des Istwerts um den Sollwert, wie bei 2.1.3.1, auf. Das Verhalten des Reglers könnte hier ebenfalls durch eine Reduktion des I-Anteils der Strecke verbessert werden.


2.1.3.4 Ergebnisse "Robustes Regelverhalten"

Kp = 0,0195, Ki = 7,6, Kd = 4,92e-6 (wurde 0 gewählt, da vernachlässigbar gering)


Reglerverhalten bei Einstellung "Robustes Reglerverhalten"

„Robustes Regelverhalten“ beschreibt eine Einstellung, mit welcher Störungen angemessen ausgeglichen werden können.
Zwar schwingt der Istwert der Motoren um den Sollwert bei der Anfahrtsrampe, doch erkennt man auch einen klaren Einschwingvorgang, sobald der Sollwert sich nicht mehr verändert. Betrachtet man die Regelparameter mit Kp = 0,0195, Ki = 7,6 und Kd = 4,92e-6 und vergleicht diese mit den Parametern der anderen Einstellungen, so erkennt man, dass eine leichte Erhöhung des Proportionalanteils und eine Senkung des Integrationsanteils deutlich zur Verbesserung des Systemverhaltens beitragen. Für die geplante Anwendung sind diese Regelparameter zwar immer noch ungeeignet, jedoch kann man diese als Ansatz benutzen, um das Systemverhalten empirisch zu verbessern.


2.1.4 Berechnete Regelparameter

Aus der oben durchfegührten Systemidentifikation wurden die Zeitkonstanten T1 = 1e-4s und T2 = 0,0029s ermittelt. Außerdem wurde zuvor der Proportionalfaktor K = 90 ermittelt. Mit diesen Zeitkonstanten können nun die Regelparameter für einen PID-Regler berechnet werden. Für Tn = T1 + T2 ergibts sich, dass Tn = 0,003 beträgt. Tv = (T1*T2)/Tn beträgt daher Tv = 9,67e-3. Damit beträgt der Proportionalfaktor der Regelung Kp = K*Tn = 0,27. Nun kann man über Kp und Tn den Integralteil der Regelung ermitteln. Dieser beträgt Ki = Kp/Tn = 90. Der D-Anteil des Reglers fällt, wie auch bei den Simulationsergebnissen mit MatLab sehr gering aus und wird mit 2,6109e-5 nicht weiter berücksichtigt. Es fällt auf, dass die simulierten und die berechneten Parameter sehr ähnlich sind. Die D-Anteile sind jeweils verschwindend gering. Die I-Anteile sind sehr groß und der Proportionalanteil ist klein. Aufgrund der vergleichbaren Ergebnisse zur Simulation wurden diese Parameter nicht weiter untersucht. Daher wurde im Weitern eine empirische Bestimmung der Regelparameter durchgeführt, um bessere Ergebnisse zu erzielen.

2.1.5 Empirische Bestimmung der Regelparameter

Die empirische Bestimmung der Regelparameter ermöglicht es, den Regler auf das gegebene System fein einzustellen. Jeder Motor/Encoder weicht fertigungsbedingt oder durch Modellfehler vom Modellverhalten ab, weshalb eine Feinjustierung der Regelparameter der Systemidentifikation notwendig ist. Hierfür wurden die identifizierten Regelparameter aus 2.1.3.4 Ergebnisse „Robustes Regelverhalten“ verwendet und angepasst. Die auf diesem Wege empirisch ermittelten Regelparameter unterscheiden sich deutlich zu den Parametern aus 2.1.3.4, allerdings zeigt der Regler ein deutlich verbessertes Regelverhalten. Die Regelparameter wurden auf Kp = 0,75; Ki = 2,5; Kd = 0,005; ermittelt.

2.2 Gewählte Regelparameter

Die empirisch ermittelten Regelparameter zeigen mit Abstand das beste Regelverhalten und kommen deshalb in unserem Projekt zum Einsatz.


Reglerverhalten mit empirisch ermittelten Regelparametern

In der Abbildung ist ersichtlich, wie nah die Regelung an der maximal möglichen Encoderauflösung arbeitet. Für eine genauere Regelung wird ein höher auflösender Encoder benötigt, da bei so einem agilen System, ein geringfügiges Schwingen um den Setpoint nicht verhindert werden kann. Das derzeitige System weist im schlimmsten Fall Setpoinabweichungen des Reglers von maximal 100 auf. Rechnet man diesen Fehler auf den Encoderausgang zurück, kann gezeigt werden, dass dieser Fehler einem Ändern des Encoderwertes um 5 entspricht. Dies bedeutet, wenn der Encoder seinen Ausgangswert um 5 verändert, führt dies zu einer Änderung am Reglerausgang von 100. Mit einer höheren Auflösung des Encoders könnte dieser Fehler deutlich reduziert werden. Der Regler schöpft das maximale Potenzial des dürftigen Encodersignals aus.


3. Video mit Ergebnissen


  Mit Unterstützung von Prof. J. Walter Sommersemester 2019