Ich möchte meine eigene Flugführungs-, Navigations- und Steuerungssoftware (GN&C) auf einem Raspberry Pi für ein kleines Hobby-Starrflügler-UAV entwickeln. Was ist aus physikalischer Sicht der Mindestsatz an Sensoren/Eingängen, der benötigt wird, um die einfache alte GPS-Wegpunktverfolgung zu implementieren?
Ich verstehe, dass ich viel Mathematik lernen muss, aber was sind die Mindesteingaben für diese Mathematik? Ich habe Erfahrung mit eingebettetem C++ für Fahrzeugunterhaltungssysteme, aber keine Kenntnisse im Bereich der Luftfahrt.
Das absolute Minimum für ein verallgemeinertes Fahrzeug, das seine Position und Lage (Orientierung) im Raum kennen muss, ist eins pro Freiheitsgrad. Dies kann reduziert werden, wenn wir Informationen über die natürlichen Modi des Systems und ihre Stabilität haben .
Nehmen wir der Einfachheit halber an, dass sich ein Fahrzeug in 3 Dimensionen bewegt, das bedeutet insgesamt 6 DoF:
Der einfachste Weg, diese Anforderungen zu erfüllen, sind Beschleunigungsmesser für die XYZ-Koordinaten und Gyroskope für die Winkel, und diese werden oft zusammen in eine IMU gepackt . Technisch gesehen brauchen Sie nicht einmal ein echtes GPS, solange Sie die Koordinaten des Startorts kennen, da Sie einfach daraus integrieren können, um Ihre Position zu kennen. Dies ist als Koppelnavigation über Trägheitsnavigation bekannt und funktioniert auf diese Weise (verwenden wir "coordinate als Beispiel):
Das hat natürlich mehrere Mängel. Reale Beschleunigungsmesser haben Rauschen, Gyroskope haben Drift, Ihr Startort ist wahrscheinlich ungenau, Ihr Fahrzeug benötigt wahrscheinlich mehr Daten als diese, um zu funktionieren, und die gesamten Systeme, die ich gerade beschrieben habe, hatten keine Möglichkeit, sich selbst zu finden, wenn sie während der Mission zurückgesetzt werden.
Für ein realistisches Barebone-Projekt, wie Sie es beschrieben haben, benötigen Sie:
Weitere Datenquellen sind wünschenswert, verkomplizieren die FCS-Architektur jedoch erheblich, da Sie die Daten richtig gewichten müssen, schließlich möchten Sie nicht, dass das Flugzeug dem Magnetometer mehr vertraut als den Gyros und Ihnen einen kleinen Trick zeigt, den es beim Annähern gelernt hat eine magnetische Anomalie.
Insbesondere eine Pitot-Sonde ist gut, um Ihre Fluggeschwindigkeit im Gegensatz zu Ihrer Bodengeschwindigkeit zu kennen. Eine Alphafahne ist ein bisschen Luxus und wird nicht benötigt, es sei denn, Sie gehen an die Grenzen des Fluges.
Jeder Bodenbeobachtungssensor mit ausreichender Aktualisierungsrate, Reichweite und Genauigkeit (IR, Laser, LiDAR, Akustik usw.) ermöglicht es Ihnen, Ihre Landungen zu glätten, und welche Sie auswählen, sollte von Ihrem Design und Budget abhängen. sie haben alle vor- und nachteile.
Wenn Sie es ernst meinen, dies von Grund auf selbst zu tun, sollten Sie sich vom Standpunkt der Codierung aus mit Echtzeitsystemen, Kalman-Filtern und dem weiten Feld der Sensorfusion befassen. Lernen Sie dabei auch etwas Aerodynamik, damit die Flugzeugzelle selbst keine Blackbox für Sie ist. Sie können ein FCS auf einem Arduino ausführen, sogar für Quadrocopter, wenn Sie nur mit einem einfachen SAS zufrieden sind .
Es gibt eine große Community von Hobby-UAV-Bauern online, die Ihnen eine fast fertige Lösung für Ihr FCS ( Ardupilot ) anbieten können, wenn Sie diesen Ansatz bevorzugen. Ich persönlich finde ihre Dokumentation oft mangelhaft, daher schlage ich vor, dass Sie sich zumindest die Grundlagen hinter dem, was Sie tun, aneignen, um Ihnen zu helfen, die unvermeidlichen Lücken im Handbuch zu überwinden. Da es sich um ein Open-Source-Projekt handelt, können Sie diese Lücken auch füllen.
Es ist wahrscheinlich nur mit dem GPS-Empfänger möglich , aber es wäre nicht einfach, und Sie müssen möglicherweise einige Kompromisse beim Design der Flugzeugzelle eingehen, um die erforderliche passive Stabilität zu erreichen.
Die traditionelle Reihe von Sensoren für diese Art von Anwendung sind ungefähr in der Reihenfolge ihrer Priorität:
Da dies Ihr erstes UAV ist, würde ich dringend empfehlen, die ersten 4 Sensoren und wahrscheinlich Nr. 5 und / oder Nr. 6 zu haben (aber verwenden Sie diese vielleicht eher für Diagnose und Analyse als für die Steuerung, da sie mit Nichtlinearitäten und Zuverlässigkeit etwas schwierig sein können). .
Wenn Sie nur möchten, dass Ihr UAV zu einem Wegpunkt fliegt, können Sie dies nur mit einem GPS-Sensor tun, wenn es auf einem sehr stabilen Flugzeug wie einem "Gentle Lady" oder "Radian" RC-Segelflugzeug basiert, solange Sie es waren ' Es darf nicht bei sehr starkem Wind geflogen werden, wo die Möglichkeit besteht, dass das Flugzeug rückwärts über den Boden fliegt, wenn es in den Wind zeigt und mit Trimmgeschwindigkeit fliegt. Ich nehme an, Sie möchten wahrscheinlich auch einen Höhensensor, es sei denn, Sie möchten nur genug Leistung aufbringen, damit das Flugzeug während des autonomen Teils des Fluges langsam steigt. Natürlich könnten Sie die Höheninformationen auch einfach vom GPS-Sensor abrufen.
Wenn Sie sich entscheiden, einen 1-Achsen-Gierratenkreisel hinzuzufügen, würde dies eine sanftere Steuerung ermöglichen. Aber im Zusammenhang mit einem sehr stabilen Flugzeug als Ihrer Basisplattform brauchen Sie wirklich nicht mehr als das, wenn Ihr grundlegendes Ziel darin besteht, es einfach zu halten.
Ich spreche aus der Sicht von jemandem, der erfolgreich ein Ultraleichtflugzeug in der Wolke gesteuert hat, indem er nur einen elektronischen 1-Achsen-Drehratenanzeiger, GPS und einen Nasskompass verwendet hat – und der Kompass hat sich die Hälfte der Zeit rückwärts gedreht. Die Steuerung unter bestimmten begrenzten Umständen (dh ruhige Luft, kein Versuch, ständig in thermischer Aufwindrichtung zu kreisen, nur sehr langsame Kurven zu machen) war ohne die Wendegeschwindigkeitsanzeige möglich, und ein Roboter würde dies sicherlich besser machen als ein Mensch.
Führen Sie einfach ausreichende Tests durch, um sicherzustellen, dass das Flugzeug bei dem von Ihnen verwendeten Schwerpunkt nicht zu starken "phugoiden" Schwingungen der Neigung neigt.
Diese Eingaben reichten vor sechzehn Jahren für einen autonomen Transatlantikflug mit einer Kette von Wegpunkten aus .
Vielleicht könnte Ihnen eine zusammenfassende Einführung in die Steuerungstheorie helfen. Aus steuerungstechnischer Sicht ist Ihr Luftfahrzeug ein dynamisches System, das durch einen Zustand und ein dynamisches Modell beschrieben werden kann.
Der Zustand ist einfach eine Sammlung von Variablen darüber, wo sich das Flugzeug zu jedem Zeitpunkt befindet. Für eine vollständige Beschreibung hätten Sie die Position und Lage im Raum sowie ihre ersten Ableitungen. Jede andere Trägheit kann auch ihre eigene Zustandsvariable haben; zum Beispiel die Propellerdrehzahl.
Die Zustandsgleichungen beschreiben, wie sich der Zustand mit der Zeit entwickelt. Aus diesen Gleichungen (insbesondere in linearisierter Form) können wir eine Reihe von (Eigen-) Moden destillieren . Diese Modi beschreiben ein bestimmtes Verhalten des Systems und kommen in zwei Formen vor: stabile und instabile Modi. Ein stabiler Modus ist eine Systemdynamik, die für eine endliche Eingabe (Störung) nicht dazu führt, dass irgendeine Zustandsvariable gegen unendlich geht. Beachten Sie, dass dies nicht bedeutet, dass die Zustandsvariablen auf einen konstanten Wert zurückkehren: Eine begrenzte Schwingung kann immer noch als stabil angesehen werden! Ein instabiler Modus ist eine Dynamik, die bei endlicher Eingabe zu einem unbegrenzten Wachstum einer Zustandsvariablen führt.
Um zu sehen, wie viele Sensoren Sie benötigen, benötigen Sie einige Dinge. Zunächst einmal möchten Sie, dass Ihr System stabil läuft. Offensichtlich bedeutet dies, dass Sie einen Satz Sensoren haben möchten, die jeden instabilen Modus messen können ( Erkennbarkeit ), und einen Satz Aktuatoren, die instabile Modi steuern können ( Stabilisierbarkeit ). Es gibt eine Reihe von (möglicherweise) instabilen Moden, von denen die wichtigste die Spiraldivergenz ist . Viele Starrflügelflugzeuge haben keine inhärente Rollstabilität, daher sollten Sie Ihren Rollwinkel spüren können(Aufgrund der Roll/Gier-Kopplung könnte auch ein Gierraten- oder Steuerkurssensor funktionieren). Außerdem gibt es einfach Ihre lineare Bewegung, die ebenfalls instabil ist (dies mag kontraintuitiv erscheinen, aber alles bedeutet, dass Sie sich unendlich weit von Ihrem Ausgangspunkt entfernen können, indem Sie sich in einer geraden Linie bewegen). Dazu benötigen Sie eine Art Positionssensor (höchstwahrscheinlich ein GPS).
Alle anderen dynamischen Modi sind in einem Starrflügelflugzeug nicht von Natur aus instabil, obwohl Ihr spezielles Design einige zusätzliche Instabilitäten aufweisen kann, wie z. B. eine instabile Phugoidbewegung, für die Sie in der Lage sein möchten, die Nickbewegung zu messen und zu steuern.
Das absolute Minimum sind also zwei bis drei Sensoren (Breiten- und Längengrad und wahrscheinlich Rollen oder Gieren) und verwenden Sie die Vorwärtskopplung für alle anderen Variablen (stellen Sie Trimmung und Leistung basierend auf der gewünschten Höhe und Geschwindigkeit ein und legen Sie einfach los). In der Praxis würde niemand ein UAV mit nur drei Sensoren bauen. Dafür gibt es zwei Gründe,
Für ein Hobby-UAV stellt sich typischerweise heraus, dass Sensoren dank MEMS relativ billig sind. Sie würden normalerweise einen 3-Achsen-Beschleunigungsmesser, ein 3-Achsen-Gyroskop (Rollrate) und ein 3-Achsen-Magnetometer (Kompass) verwenden, und warum nicht auch ein Barometer und ein Thermometer? Und da Sie ein GPS verwenden, können Sie auch dessen Höhendaten verwenden. Wenn Sie einen bürstenlosen Gleichstrommotor verwenden, sollte es kein Aufwand sein, die Propellerdrehzahl zu messen. Ich denke, Sie werden es viel einfacher finden, ein funktionierendes UAV mit diesen handelsüblichen Komponenten (und Open-Source-Software, die normalerweise für diese Sensoren geschrieben wird) zu erstellen, als einen einachsigen Gyroskopsensor zu finden und Ihre eigene Software zu schreiben.
Darüber hinaus vereinfacht die Verwendung von mehr Sensoren Ihre Beobachtbarkeit erheblich . Dies ist die Vorstellung, aus den Ausgängen auf den Zustand des Systems schließen zu können. Wenn Ihr Modell ausreichend komplex ist, benötigen Sie theoretisch nur sehr wenige Sensoren, um den aktuellen Zustand abzuschätzen (Koppelnavigation). Wenn Sie Ihre Zustände jedoch tatsächlich messen können, ist Ihr Modell nicht mehr so wichtig, und Ihr UAV wird viel besser reagieren können und weniger empfindlich auf Änderungen in der Umgebung oder dem UAV selbst reagieren.
Das ArduPilot-Projekt hat wahrscheinlich bereits einen Großteil der Arbeit für Sie erledigt, wenn Sie mehr am Endergebnis interessiert sind als daran, es selbst zu erstellen. Selbst wenn Sie sich entscheiden, ihre Software nicht zu verwenden, gibt es wahrscheinlich gute Informationen darüber, welche Sensoren und wie viele erforderlich sind.
Jeffrey
leiser Flieger
Chris Stratton
Harper - Wiedereinsetzung von Monica
reirab
Steve
Schlafmann
Schlafmann
Steve
Schlafmann
Schlafmann
Benutzer7915
Steve