Regelung

 


Der Code zur Regelung ist in der Regelung.ino implementiert.

 

Der Regelungszyklus des Zeppelins läuft wie folgt ab:

Der Zeppelin fliegt eine Liste von vorher gesetzten Wegpunkten (WP) ab. Pro Regelzyklus wird die aktuelle Position mit dem angestrebten WP abgeglichen und die Distanz berechnet. Ist diese Distanz innerhalb eines festgelegten Toleranzbereichs, gilt dieser WP als erreicht. Sollte der WP also erreicht sein, wird überprüft ob es sich um einen einfachen WP oder einen Abwurfpunkt handelt und gegebenenfalls der Abwurfmechanismus ausgelöst. Im darauffolgenden Zyklus wird dann die Distanz zum nächsten WP in der Liste berechnet.

Nach der Distanzprüfung wird die aktuelle Höhe mit der Soll-Höhe abgeglichen und geregelt. Anschließend wird die Ausrichtung des Zeppelins überprüft und in der Drehregelung geregelt. Aus Höhen- und Drehregelung wird nun die Kraft pro Motorpaar berechnet.

Im letzten Schritt des Regelzyklus findet die intelligente Motordrosselung statt. Da der Zeppelin schon bei geringen Geschwindigkeiten zu driften beginnt, wird hier versucht die Antriebsgeschwindigkeit zu drosseln. Gleichzeitig soll bei einer extremen Ausrichtungskorrektur, bei der die beiden Motorpaare gegeneinander drehen um mehr Drehschub zu bekommen, die volle Motorleistung vorhanden sein. Um beide Vorgaben zu erfüllen, wird in diesem Schritt folglich überprüft ob die Motorenpaare miteinander oder gegeneinander drehen. Bei gleichem Drehsinn wird die gesamte Motorkraft mit einem festgelegten Grenzwert abgeglichen und bei Überschreitung auf diesen Grenzwert proportional reduziert.

Regelzyklus des Teams TUfatTUfly

 

Höhen- und Drehregelung

Für die Höhen- und Drehregelung werden folgende Daten als Input verwendet:

  • Aktuelle X-Y-Position via webcambasiertes Navigationssystem
  • Aktuelle Höhe via Ultraschallsensor
  • Aktuelle Ausrichtung via Kompasssensor oder Gyroskop
  • Aktueller Wegpunkt über Wegpunktliste

 

Die empfangenen Sensordaten von Kompass und Gyroskop sind sehr ungenau und müssen vor der Verwendung gefiltert, bzw. optimiert werden.

Zunächst wird ein Tiefpassfilter auf alle Sensordaten gelegt. Das glättet den Datenverlauf und verhindert, dass falsche Mess-Peaks („Ausreißer“) die Regelung stören.

Der Kompass liefert in unserem Fall falsche, aber dennoch konstante Werte. Die Gradzahlen steigen bei einer Kreisbewegung nicht linear an, sodass bei einer 90°-Drehung beispielsweise ein Wert von 120° angezeigt wurde, bei einer 180°-Drehung ein Wert von 210° und bei einer 270°-Drehung ein Wert von 250°. Da also jeder Ausrichtung eine spezifische Gradzahl zugeordnet ist, haben wir Look-Up-Tables implementiert, die die angezeigte Gradzahl in die tatsächliche Gradzahl übersetzt.

Das Gyroskop liefert in Tests deutlich exaktere Werte, jedoch driftet er um 0°-2° pro Sekunde. Da die Driftabweichung nicht konstant ist, ist das Gyroskop zu unzuverlässig um für eine Drehregelung verwendet zu werden.

 

Im Folgendem wird die Funktionsweise der Höhen- und Drehregelung näher beschrieben.

Höhenregelung:

Die Höhenregelung erhält die aktuellen Höhendaten über den Ultraschallsensor und gleicht diese mit der Soll-Höhe aus der Wegpunktliste ab. Über einen PD-Regler wird die Ausrichtung der Motorkraft über den Servo entsprechend angepasst. Zusätzlich wird ein additiver Anteil zur Motorkraft an die Drehregelung weitergegeben. Dieser additive Anteil ist dringend notwendig um zu verhindern, dass die geregelte Servostellung aufgrund fehlender Motorkraft fast wirkungslos bleibt. Dies kann in Fällen auftreten, in denen der Zeppelin genau auf ein Ziel zusteuert und die Motorkraft damit auf ein Minimum reduziert wird. Auch in Fällen, in denen die Motorenpaare genau gegensätzlich drehen wäre die Höhenregelung sonst folgenlos.

Drehregelung:

Die Drehregelung ermittelt zunächst aus der aktuellen Position und dem angestrebtem Wegpunkt einen Soll-Winkel. Dieser Soll-Winkel legt fest, wie die Gondel optimalerweise orientiert sein müsste um den Wegpunkt direkt anzufliegen. Über die Kompassdaten, bzw. das Gyroskop wird der Soll-Winkel mit dem tatsächlichen Winkel abgeglichen und die Differenz festgestellt. Ein PD-Regler steuert entsprechend der Winkel-, bzw. Winkelgeschwindigkeits-Differenz die beiden Motorenpaare. In der finalen Version unseres Zeppelins wurde lediglich der Kompass verwendet, da eine präzise Regelung mit dem Gyroskop nicht möglich war. 

Höhen- und Dreregelungsschema von Team TUfatTUfly 

 

 

Anhänge:
Diese Datei herunterladen (Regelung.ino)Regelung.ino[Arduino Code der Regelung]%2013-%07-%18 %1:%Jul%+02:00