Simulation

Ich brauche eine Regelung, die resistent gegen meine Pilotenfehler ist. Eine solche Regelung will ich im folgenden versuchen herzuleiten. Diese soll möglichst zuverlässig, stabil, flexibel sein. Er soll sich einfach fliegen lassen. Flugmanöver sollen nicht zu ungewollten Schwingungen führen. Am Ende soll der Quadrokopter in der Lage sein selbst fliegen zu lernen (automatische Einstellung der Regelparameter). Die Regelung soll für verschiedene Konfigurationen (z.B. Propelleranordnungen, Masseverteilungen) und Ausbaustufen (Anzahl und Art der Sensoren) funktionieren. Allgemein kann man zwar sagen: Je mehr Informationen wir haben, desto stabiler kann die Regelung ausgelegt werden. Bei den etwas einfacher ausgelegten Modellen muss man halt etwas öfter mit der Fernsteuerung eingreifen. Die voll ausgebaute Version soll ohne Fernsteuerung auskommen.
Zunächst möchte ich hier ersteinmal aufschreiben, mit welcher Art von Daten wir es zu tun haben:
  1. Istgrössen (werden über Messgrössen ermittelt)
  2. Sollgrössen (werden über Steuergrössen vorgegeben)
  3. Regelgrössen
  4. Messwerte
  5. Massenverteilung
  6. Kräfte
Die Istgrössen beschreiben die aktuelle Grössen von Position , Geschwindigkeit , Beschleunigung , Winkellage , Drehgeschwindigkeit . Sie werden aus den Messwerten bestimmt. Die Werte sollten sich immer auf ein Koordinatensystem beziehen. Also das lokale Koordinatensystem des Quadrokopters bzw das globale Koordinatensystems in dem der Quadrokopter herumfliegt. Da manche Daten für das globale System gelten (GPS, Druck) und manche Daten für das lokale System ermittelt werden (Beschleunigung, Gyros) müssen Koordinatentransformationen durchgeführt werden. Die Istgrössen können nur bis auf einen Fehler genau ermittelt werden.
Die Sollgrössen sind die Werte, die die Istgrössen einnehmen sollen. Hierzu müssen Flugmanöver ausgeführt werden. Die Sollgrössen werden über die Steuergrössen vorgegeben. Steuergrössen können entweder das Signal der Fernsteuerung sein, oder eine vorprogrammierte Trajektorie (z.B. für Loopings) bzw Wegpunkte sein.
Regelgrössen sind beim Quadrokopter die Drehzahl der Rotoren und die Servos der Kameraplattform.
Die Messwerte werden über diverse Sensoren ermittelt und haben Fehler, die bei der Weiterverarbeitung berücksichtigt werden müssen.

Sensoren

  • 3 x LIS: Beschleunigung
  • 3 x Gyro: Drehrate
  • Luftdruck: Höhe
  • Magnetfeld: Winkellage bezüglich des Nordpols
  • GPS: Position
  • Abstandssensoren (Ultraschall, Infrarot): Zur Vermeidung von Kollisionen
  • Drehrate der Motoren: Diese Info kommt von den Reglern. Die Propeller haben nicht sofort den vorgegebenen Wert.
  • evtl. Stromstärke an den Motoren: Bei Wind verändert sich das Verhältnis Stromstärke/Drehzahl
  • die Signale der Fernsteuerung
  • Schalter
  • Eine Auswertung von Kamerabildern könnte viele nützliche Fluginformationen geben, ist aber kompliziert und rechenintensiv.
    Die Sensoren werden charakterisiert durch
  • Meßbereich
  • Meßfrequenz
  • Auflösung
  • Rauschen
  • Schnittstelle

    Probleme der Sensoren

    Die verschiedenen Sensoren bringen verschiedene Probleme mit sich, die bei der Weiterverarbeitung berücksichtigt werden müssen.
    Für die Geschwindigkeit gibt es keine Sensoren. Man kann sie nur indirekt über die Positionssensoren (GPS, Luftdruck) oder über die Beschleunigungssensoren ermitteln.
    Die Beschleunigungssensoren detektieren auch die Schwingungen, die von den Propellern erzeugt werden.
    Die Gyros haben eine hauptsächlich temperaturabhängige Drift. Dies kann man entweder dadurch kompensieren, indem man davon ausgeht, dass das Ufo zwar viele kleine Hinundherdrehungen ausführt, aber im Mittel nicht so viel dreht. Also bildet man einen Mittelwert über ein paar Sekunden. Über einen Vergleich mit einem weiteren Mittelwert bekommt man die Drift heraus. Die etwas bessere Möglichkeit der Kompensation der Temperaturdrift hat man, wenn der Gyro einen Temperatursensor hat. Dann misst man zu dem Gyro, welche Werte er bei verschiedenen Temperaturen und Drehzahlen ausgibt und verwendet diese Werte zur Temperaturkompensation.
    Der Luftdrucksensor kann durch Wind und Licht gestört werden. Er sollte entsprechend geschützt sein. Besonders in Bodennähe staut sich die Luft von den Propellern. Der gemessene Luftdruck ist dann nicht mehr proportional zur Höhe.
    Das Magnetfeld kann durch magnetisierte Teile und die Motoren des Quadrokopters überlagert werden. Der Sensor sollte möglichst weit von den Leitungen entfernt sein, die starke Ströme führen.
    Der GPS-Sensor hat teilweise eine sehr schlechte Auflösung (20 Meter) und eine geringe Updaterate (1-10Hz).
    Die Signale von der Fernsteuerung und GPS können plötzlich ausbleiben oder nur teilweise auftreten.
    Die einzelnen Sensoren liefern ihre Werte in unterschiedlichen Zeitintervallen.

    Regelung

    Die Regelung soll durch Manipulation der Regelgrössen die Istgrössen möglichst schnell und effizient an die Sollgrössen heranbringen. Dabei soll es nicht zu unerwünschten Schwingungen kommen. Im allgemeinen wird dies durch einen sogenannten PID-Regler realisiert. Die drei Buchstaben stehen hierbei für die drei "Proportional", "Integral" und "Differential". P-Glied: eine sprunghafte Änderung der Eingangsgröße xe bewirkt eine sprunghafte Änderung der Ausgangsgröße xa I-Glied: eine sprunghafte Änderung der Eingangsgröße xe bewirkt eine zeitlich lineare Änderung der Ausgangsgröße xa, die ganz allgemein von einem Anfangszustand xa0 beginnt. D-Glied: eine sprunghafte Änderung der Eingangsgröße xe bewirkt einen (theoretisch) 8 hohen Sprung des Ausgangssignales xa.

    In der Regelungstechnik werden im Regelkreis fünf Teile unterschieden, die im Blockschaltbild dargestellt sind:
    1. FR = Regelglied / Regler
    2. FSt = Stellglied
    3. FS = Regelstrecke
    4. FZ = Störgrößenübertragungsglied
    5. FM = Messglied
    Es ergeben sich folgende Größen innerhalb des Regelkreises:
  • w = Führungsgröße
  • e = Regelfehler / Regeldifferenz
  • yr = Hilfsstellgröße / Reglerausgangsgröße
  • y = Stellwert / Stellgröße
  • z = Störgröße
  • x = Ausgangs- / Regelgröße
  • r = Rückführgröße

  • Datenausgabe

    Zu Debugzwecken möchte man Daten ausgeben, die einem Infos zum Zustand des Quadrokopters geben. (Sensorwerte, Softwarestatus, berechnete Werte, Regelparameter, ...)
  • Leuchtdioden
  • Pieper
  • RS232, evtl. auch über Funk
  • Display

    Koordinatensysteme

  • lokales Koordinatensystem: Der Nullpunkt liegt im Schwerpunkt des Kreuzes. Die y-Achse zeigt in Richtung Motor 1, die z-Achse beim Start nach oben.
  • globales Koordinatensystem: Der Nullpunkt entspricht dem lokalen Nullpunkt vor dem Start. Die y-Achse zeigt nach Norden, die z-Achse ist senkrecht zur Erde.

    Massenverteilung

    Für eine exaktere Steuerung ist es hilfreich die Massenverteilung des Quadrokopters zu kennen. Sie ist eine Liste von Koordinaten mit Teilmassen (z.B. das Gewicht der Motoren mit den Positionen.) Man erhält sie indem man die einzelnen Baugruppen auf die Waage legt. Die Position des Massenzentrums der Baugruppe wird in etwa ausgemessen. Sie sollte so auf 1-2cm genau sein. Für den Anfang sollten Massenpunkte zur Beschreibung von Motor, Ausleger, Elektronik, Akku und Nutzlast reichen (also 11 Massen). Um den Schwerpunkt werden aller Drehungen ausgeführt. Für eine gute Interpretation der Messungen sollte dieser möglichst gut bekannt sein. Evtl. lässt sich aus der Reaktion des Quadrokopters auf Manöver die Genauigkeit der Position verbessern. Nimmt der Quadrokopter Ladung auf oder ab (bzw. bei Bewegungen der Kamera) verschiebt sich der Schwerpunkt.
    Die Kräfte und Drehmomente werden so beschrieben, als ob sie nur an den Massenpunkten wirken. Wenn man nur Translationen hätte, würde ein Massenpunkt reichen. Zur Berechnung der induzierten Drehbewegungen müssen wir allerdings genau wissen, wo und wie die Kräfte angreifen.
  • Gravitation: Sie wirkt immer in Richtung Erde (Z-Achse im globalen Koordinatensystem)
  • Propellerkräfte, -momente: Sie sind abhängig von der Drehzahl, Grösse und Bauweise (Anstellwinkel) der Propeller. Wenn sich der Quadrokopter nicht dreht, heben sich die Momente gerade paarweise auf. (Z-Achse im lokalen Koordinatensystem). Da sich die Luft in Bodennähe unter dem Propeller staut, sind diese Kräfte auch vom Abstand zum Boden abhängig. Wenn die Drehzahl Eine Messreihe, die den Drehzahlen die Kräfte zuordnet müsste im Vorfeld durchgeführt werden.
  • Zentrifugalkraft: Durch Drehungen des Quadrokopters
  • Haltekraft der Beine: Nur solange der Quadrokopter am Boden steht.
  • Windkräfte: Wann und wie sie auftreten ist unbekannt. Sie müssen durch die Regelung kompensiert werden. (evtl. können statistische Informationen helfen angemessen zu reagieren. z.B. dauert eine Böhe nur eine gewisse Zeit. Oder der Wind kommt meistens aus einer bestimmten Richtung.) Der Stromverbrauch bei einer bestimmten Drehzahl kann einen Hinweis auf Wind geben.

    Bestimmung der Winkellage

    aus den Beschleunigungswerten Wenn der Quadrokopter nicht mehr genau waagrecht steht, dann wirkt die Kraft der Propeller nicht mehr nur entgegen der Schwerkraft. Es kommt so zu einer Beschleunigung in die Richtung in die der Quadrokopter verkippt ist. Der Winkel kann folgendermassen aus den globalen Beschleunigungswerten in x- und y-Richtung bestimmt werden:

    Fliegen lernen

    Der Quadrokopter soll durch Flugmanöver die vorhandenen Informationen zu Propellerkraft, Gewichtsverteilung etc. verbessern. Bei welcher Drehzahl startet der Quadrokopter? Fahre langsam paarweise 2 Propeller hoch. Bei welcher Drehzahl kippt der Quadrokopter? Wie verändern sich die gemessenen Drehraten bei Unterschieden in den Propellerdrehraten?

    Aussagen

  • Wenn der Quadrokopter steigt ist die Propellerkraft grösser als die Gewichtskraft.
  • Wenn der Quadrokopter schwebt, ist die Propellerkraft gleich der Gewichtskraft.
  • Wenn sich der Quadrokopter in der xy-Ebene beschleunigt, dann ist der Quadrokopter in Richtung der Beschleunigung verkippt.
  • Wenn der Quadrokopter sich nicht um die Z-Achse dreht, dann sind die Drehmomente ausgeglichen.

    Ein einfaches Steuerkonzept nur mit Gyros

    Die Fernsteuerung übermittelt die gewollten Drehgeschwindigkeiten des Ufos bezüglich drei Achsen. Ausserdem wird noch die Beschleunigung bezüglich der mitbewegten Z-Achse übermittelt.
    Man muss sich bei dieser Art von Steuerung gut in das Flugobjekt hineindenken können. Was kurz vorher links war, ist plötzlich rechts. Aus vorne wird plötzlich hinten oder irgend ein Zwischenzustand. Auf jeden Fall sollte man das erstmal am Simulator üben und sich auf Reparaturen gefasst machen. Die Sticks der Fernsteuerung liefern 4 Werte:
    , , ,
    Um externe Störungen (z.B. durch Wind) auszugleichen liefern 3 Gyros Messwerte zur aktuellen Drehrate des Ufos:
    , ,
    Aus den Messwerten und den Fernsteuerungswerten werden Werte gemischt, indem die Messwerte von den Stickwerten abgezogen werden:

  • Die Drehgeschwindigkeit der Rotoren ergibt sich damit zu:
  • Litertur

    Taschenbuch der Regelungstechnik: Mit MATLAB und Simulink
  •  






     Website designed by Webdesign Mika Salonen   and Andreas Greuer