Archiv verlassen und diese Seite im Standarddesign anzeigen : Regler-Parameter für Autopilot
voidpointer
18.10.2006, 16:26
Hallo Leute,
nachdem ich vor ein paar Monaten ein GPS-gesteuertes Fahrzeug (https://www.roboternetz.de/phpBB2/viewtopic.php?t=18005) vorgestellt hatte, wage ich mich nun daran, eine Steuerung für ein Modellflugzeug zu entwickeln. Dazu habe ich den EasyStar von Multiplex mit Gumstix-Rechner, GPS-Empfänger und Windrad ausgestattet. Einige Testflüge habe ich auch schon gemacht, so dass ich eine Handvoll Logfiles zur Verfügung habe.
In den letzten Tagen habe ich versucht, den Flieger auf Autopilot fliegen zu lassen, d.h., ich übergebe die Steuerung per Schaltkanal an der Fernsteuerung und dann soll er einfach die aktuelle Höhe, Richtung und Geschwindigkeit halten. Das tut er dann auch, aber nach wenigen Sekunden fängt alles an zu schwingen, d.h., er fliegt Schlängellinien und Auf-und-Ab bis ich die Steuerung wieder übernehmen muss, damit er nicht abstürzt.
Jetzt die Frage an die Regelungs-Experten: Ich benutze einen PID-Regler für alle drei Stellgrößen (Gas, Seitenruder, Höhe). Wie finde ich am besten die geeigneten Parameter für den Regler heraus, ohne tausendmal Testflüge zu machen und Abstürze zu riskieren? Würdet Ihr die Parameter aus den Telemetriedaten bestimmen?
Ich glaube, dass meine Sensoren prinzipiell für die Steuerung des Fliegers geeignet sind. Das GPS hat eine Update-Rate von 5 Hz und sollte damit ausreichend für den relativ langsamen Flieger sein. In der Regel macht der EasyStar so um die 40 km/h...
Ich häng mal zwei Bilder von heute Morgen an. Leider scheint ja jetzt das schöne Wetter erstmal vorbei zu sein. Mal sehen, wann ich wieder fliegen kann 8-[
Gruß, Achim.
Ich glaube, dass meine Sensoren prinzipiell für die Steuerung des Fliegers geeignet sind.
GPS und "Windrad" alleine wird wohl nicht genügen.
Was hast Du sonst noch an Sensorik?
hi,
ich denke gps ist zu ungenau, was auch zu schwingungen führen kann.
am einfachsten ist die regler auslegung am modell. stell doch ein mathematisches modell auf, da gibt´s bestimmt einige unterlagen in form von uniskripten für luftis, wie man das am besten modelliert mit auftrieb, usw. dann sollten einige testflüge reichen, um die parameter zu identifizieren.
dann kannst du den regler mit den unterschidlichen verfahren, von loop-shaping, bis h-unendlich entwerfen.
am pc kannst dann dein flieger beliebig oft fliegen und abstürzen lassen in simulink oder ahnlichem. und so dein regler testen und optimieren.
sonst bleibt halt nur ausprobieren in testflügen.
mfg jeffrey
voidpointer
19.10.2006, 17:07
Hm, also abgesehen von zwei Temperatursensoren habe ich nur GPS und "Windrad". Letzteres hat einen Messbereich von ca. 10-40 km/h, wobei es relativ träge reagiert. Also nicht gerade ideal. Muss ich eben erstmal bei Windstille fliegen ;-)
Was die Genauigkeit von GPS betrifft, bin ich eigentlich zuversichtlich. Die Messungen schwanken zwar in bestimmten Bereichen, aber das geschieht langsam und stetig. Nur selten habe ich harte Sprünge von mehreren Metern. Weiterhin fliegt ein gut getrimmter Flieger ja auch erstmal geradeaus und der EasyStar ist eigenstabil. Lässt man ihn einfach so segeln, sieht die Flugbahn eigentlich recht geradlinig aus. Die Regelung sollte also nicht zu viel eingreifen, sondern versuchen, den Flieger möglichst sich selbst zu überlassen.
Puh, was die Reglerverfahren anbetrifft, muss ich mich wohl erstmal belesen. Naja, es stehen ja lange Winterabende an ;-) Auf jeden Fall schon mal danke für die Anregungen.
Ich denke, für den nächsten Testflug beschränke ich mich erstmal nur auf eine Stellgröße, nämlich das Seitenruder, und steuere den Rest manuell. Dann werde ich den D-Anteil des Reglers relativ hoch wählen, weil das m.E. dem Verhalten des Seitenruders am ehesten entspricht. Aus den Logfiles lese ich ab, dass man eine Kurve mit einem großen Ruderausschlag einleitet und dann mit fast neutralem Ruder durchfliegt...
OK, wenn es was neues gibt, melde ich mich wieder.
Gruß, Achim.
hi,
ich denke um einen autopilot zu programmieren musst du mindestens noch die lage des flugzeugs, woher solle er sonst wissen, ob das flugzeug ins trudeln gerät, oder gerade auf dem kopf steht.
mfg jeffrey
ja einen gyro weil das gps erkennt nicht die lage im raum den wenn dein flugzeug auf dem kopf fliegt reagiert es anderst als wenn richtig rum fliegt.
mfg
voidpointer
20.10.2006, 10:16
Ja, eine Lageregelung wäre natürlich wünschenswert und bei schnellen oder nicht eigenstabilen Flugzeugen auch notwendig. Ich möchte aber pragmatisch vorgehen und zeigen, dass es mit dem EasyStar auch ohne geht. Hab vor einiger Zeit mal ein Paper gelesen ( http://controls.ae.gatech.edu/papers/johnson_dasc_01.pdf), wo genau das beschrieben ist.
Abgesehen davon, dass ich gar keinen Platz mehr für ein Gyro habe, ist ein solcher Sensor zur Lagemessung allein nicht geeignet. Er könnte sicher helfen, Windeinflüsse auf die Drehung um die Hochachse zu stabilisieren. Aber normalerweise legt der Flieger sich nicht auf den Rücken, es sei denn, es herrscht Orkan oder der Pilot legt es darauf an.
Das Problem mit Gyros und Beschleunigungssensoren, die in Kombination sog. IMUs ergeben, ist, dass sie zu ungenau sind und mit der Zeit wegdriften oder für normale Leute nicht bezahlbar sind. Sie müssten also noch durch zusätzliche Magnetfeldsensoren oder Horizontabtaster (Infrarot- Temperatursensoren, siehe http://www.nongnu.org/paparazzi/autopilot.html) ergänzt werden. Das möchte wegen Platzmangels, zu hohem Stromverbrauch und der Einfachheit erstmal vermeiden.
Gruß, Achim.
hi,
in dem paper steht ja schon drin, wie man das flugzeug modellieren kann.
mfg jeffrey
tomtombello
20.10.2006, 13:44
Is ja lustig, ich bin auch gerade an dem (fast) gleichen Projekt dran und benutze ebenfalls den Easystar, der ist wirklich schön eigenstabil (jedenfalls bei Windstille).
Was benutzt du denn für einen GPS-Empfänger?
Ich glaube nicht, dass GPS allein ausreichen wird.
Ich baue mir zudem gerade die IMU selber. Platinen für die 3 Gyroskope und den 3-Achsen-Beschleunigungssensor sind fertig. Es wird dann der Gyro-Typ "XV3500CB" von Epson und der ACCL-Typ "ADXL330" von Analog Devices verbaut.
Die Lageerkennung und Lageregelung sehe ich als zwingend notwendig um eine stabile Plattform zu bekommen.
Mit der Drift hast du natürlich recht, aber ich habe schon von Projekten gelesen, wo das hin bekommen wurde.
Gerade der Beschleunigungssensor und die nachhaltige Filterung (am besten mittels Kalman-Filter) soll das kompensieren.
Gruß,
Tom
voidpointer
20.10.2006, 14:45
Hi, ich benutze den SAM-LS von u-blox. Den gibts dort wohl mittlerweile nicht mehr, aber die Teile werden ja immer kleiner und leistungsfähiger. Das Modul ist mit 4Hz Update-Rate angegeben, aber 5-6 Hz ist auch noch drin.
Eine IMU habe ich auch - die von Rotomotion. Das Teil ist aber viel zu groß und schwer für den Easystar. Sollte es mit GPS allein nicht klappen, muss ich mir einen anderen Flieger besorgen, der mehr Zuladung verträgt. Der Movie Star soll dafür geeignet sein...
So Leute, schönes Wochenende! Ich geh fliegen :-)
Gruß, Achim.
Suggarman
23.10.2006, 13:51
Hallo Achim,
ich habe in den letzten Monaten leider nichts mehr gemacht (neuer Nachwuchs, Rest der Familie, Haus und Job gehen halt vor).
Ich habe mir eine Twinstar gekauft. Dank LiPo Akku (11,1V,3300mAh) dürfte ich locker 200g Zuladung verkraften können. Die Motorisierung habe ich gleich erhöht um gemütlich mit Teillast fliegen zu können.
Die Geschwindigkeit wollte ich garnicht messen (allerdings den GPS-Geschwindigkeitswert protokollieren). Solange die Fluglage (mit ADXL202) im Normalbereich liegt und sinnvol Gas gegeben wird, sollte die Fluggeschwindigkeit immer im grünen Bereich liegen. Das Gas sollte einen Grundwert 50-75% haben und dann in Abhängigkeit von gewünschten Höhenänderungen leicht korrigiert werden. Soweit meine Theorie, die noch nicht erprobt ist. Da ich den Jackpot nicht gewonnen habe, wird meine Zeit leider weiterhin viel zu begrenzt sein...
Aber auf Deine HP sehe ich gelegentlich :-)
mfg
Stefan
Suggarman
23.10.2006, 14:32
Ich wollte noch 2 Anmerkungen nachreichen:
Bei dem "Windrad" habe ich etwas Bedenken, ob Du die Geschwinigkeit des Modells oder des Ansaugluftstroms mißt. In Anbetracht der Größe könnte natürlich eine außermittige Montage neue Probleme mit sich bringen.
Ich habe zur Höhenmessung einen Luftdrucksensor verbaut, der mit 12 bit eine Auflösung von ca 30cm ergibt. Den GPS-Höhendaten traue ich überhaupt nicht. Ich will auch sie nur protokollieren, nicht aber zur Steuerung verwenden.
mfg
Stefan
tomtombello
23.10.2006, 16:07
Hallo,
welchen Luftdrucksensor hast du denn verbaut?
Ich hab den MS5534 von INTERSEMA, der ist bereits temperaturkompensiert (softwaremäßig) über SPI angeschlossen. Meine Werte schwanken jedoch ganz schön (+/- 5m). Sollte mich aber durch die Lagestabilisierung mittels IMU hoffentlich nicht weiter stören.
@voidpointer
Ich hab leider nur ein paar der MS1E von u-blox, ganz schöner Klopper und Stromzieher, aber für mehr ist erstmal nix im Geldbeutel drin...
Gruß
Tom
Suggarman
23.10.2006, 16:24
welchen Luftdrucksensor hast du denn verbaut?
Der ist von Fuji, den Typ kann ich aus dem Kopf nicht sagen. Der wurde schon häufiger bei ebay angeboten.
Wer etwas mehr auszugeben bereit ist, dann auch einen fertigen Sensor mit I2C-Schnittstelle nehmen (ich glaube gut 40 EUR kostet der).
Ich habe noch einen Op-Amp und dann den 12bit-AD-Wandler.
mfg
Stefan
voidpointer
23.10.2006, 18:26
Hi Stefan, Hallo Tom,
wegen der Höhenmessung: ist klar, dass man GPS-gestützt keinen Landeanflug machen sollte. Bei +-5 Metern Genauigkeit ist das eine heikle Sache. Das geht dann wohl erst mit Galileo. Oder mit einer 100 Meter langen Landepiste (angenommene Sinkrate 1m auf 10m, Ungenauigkeit 10 Meter). ;-)
Ich mache die Flüge deshalb auch immer in min. 50 Metern Höhe. Mit der neuen Motorisierung kommt der Easystar jetzt auch schneller hoch.
Ein Höhenmesser mit I2C ist bestimmt ne gute Sache. Der Vorteil von I2C ist, dass es das Hardwaredesign stark vereinfacht - man braucht nur noch genügend "Steckplätze" vorsehen und den Rest erledigt die Software. So wird man nicht durch elektronischen Kleinkram abgelenkt und kann sich auf die Hauptsache konzentrieren. Mir wird der I2C-Bus immer sympathischer...
Bezüglich des Windrades bin ich gerade wieder auf der Suche nach etwas besseren. Für Jet-Modelle gibt es ein Pitot-Rohr (ca. 130 Euro), das hat einen Messbereich von 30 - 500 km/h. Für langsame Flugzeuge also nicht zu gebrauchen. Ich suche also wieder ein Windrad, das kleiner als mein jetziges ist, nicht so träge, also nicht nachläuft und vielleicht optisch funktioniert. Idealerweise mit I2C-Anschluss (war n Scherz ;-) ) Wegen der Ansaugluft mache ich mir keine Sorgen - ein Staubsauger hat in 30cm Entfernung auch keine Wirkung mehr.
Wegen GPS: es gibt jetzt eins von u-blox bei Conrad für ca. 60 Euro. Das hat einen USB-Anschluss, sollte aber auf seriell umzulöten sein. Preislich günstiger wird es wohl so schnell nicht.
Ich werde demnächst mal ein paar Logfiles online stellen, dann könnt Ihr Euch ein Bild über die Qualität der GPS-Daten machen.
Gruß, Achim.
Suggarman
24.10.2006, 08:20
Moin Achim,
wegen der Höhenmessung: ist klar, dass man GPS-gestützt keinen Landeanflug machen sollte. Bei +-5 Metern Genauigkeit ist das eine heikle Sache
Ich habe mir noch nie die Schwankungen der GPS-Höhe in einem kurzen Zeitraum betrachtet. Mir war nur aufgefallen, daß die Angabe bei mir direkt nach der Positionsbestimmung deutllich mehr als 5 m schwankt. Für eine Höhensteuerung scheinen mir aber selbst 5m entschieden zu schlecht zu sein.
Der Vorteil von I2C ist, dass es das Hardwaredesign stark vereinfacht - man braucht nur noch genügend "Steckplätze" vorsehen
Nichteinmal, es ist ja ein Bus, an den man beliebig viele Bausteine hängen kann. Ich plane auch noch ein I2C-LCD um mir Parameter anzusehen und verändern zu können, die Trimmfunktion sozusagen. Wenn die Trimmwerte alle in einem I2C-Speicher liegen, kann ich sie prima verändern und speichern.
Gestern Abend habe ich spontan an der Twinstar weitergebaut :-)
Auch habe ich die Motorisierung getestet. Zwei mal 11V, 13A sollten doch ausreichend sein :-)
mfg
Stefan
voidpointer
30.10.2006, 10:02
Hallo,
es gibt Neuigkeiten. Habe mich in den letzten Tagen schrittweise an vernünftige Parameter für die PID-Regelung des Seitenruders herangetestet. Dazu habe ich die Software so modifiziert, dass ich Motor und Höhe weiter fernsteuere und nur die Seite über GPS geregelt wird. Die Parameter sind derzeit KP = 4.0, KI = 0.1, KD = 6.0. Die PID-Regelung berechnet dabei aus der Abweichung des Kurses (in Grad) die Servostellung (in Millisekunden), welche sich zwischen -400 und +400 bewegt. In der angehängten Grafik sieht man einen Ausschnitt aus der 3D-Darstellung des gestrigen Testfluges. Den autonomen Anteil habe ich blau gefärbt. Gestern war ziemlich böiger Wind, der im entsprechenden Abschnitt von der Seite kam. Wie man sieht, hat der Flieger einigermaßen die Spur gehalten - vielleicht besser, als man es manuell steuern könnte.
Zwei Minuten später hat ihn dann allerdings bei Gegenwind eine Böe erwischt (oder war es ein Sprung in den GPS-Daten?), so dass ich eingreifen musste.
Trotzdem bin ich optimistisch. Als nächstes werde ich die Parameter für das Höhenruder austesten. Ich bin mir dabei noch nicht ganz sicher, ob ich jetzt die Abweichung der Sink- bzw. Steigrate regeln soll oder einfach die Abweichung von der Zielhöhe (das wäre ja die Integration der Steigrate). Ich versuche es erstmal mit der Höhenabweichung.
@Stefan: zweimal 11V mit 13A klingt kräftig genug, um den Flieger zügig auf Höhe zu bekommen.
Gruß, Achim.
Hallo voidpointer und alle,
habe über dein Fahr- und Flugzeug gelesen, es gefällt mir sehr. Was sind das für Regler die ihr da verwendet? (Ich weis was ein PID ist)
Was würdet ihr denn für mich zum Einstieg empfehlen? Ich bräuchte ein SAM LS und ein INS. Wozu braucht man ein TIM LP? Ich kann etwas Assembler und kenne den µP8051.
Ich baute einen Autopilot(nie getestet) mit einem Fluxgate. alles diskret aufgebaut bis zur Servoansteuerung. Wie macht ihr die Höhensteuerung?
Aber das geht ja heute viel kleiner. gibts da Pläne?
Flieger hätte ich.
Bin für Tips sehr dankbar,
Viele Grüße, J 8-[ ohannes
voidpointer
08.11.2006, 09:58
Hallo Johannes,
welche Regler meinst Du? Die PID-Regler sind in Software realisiert - ziemlich genau so, wie es im RN-Wissen beschrieben ist. Eine Regelgröße wird gemessen, die Differenz bestimmt und schließlich die Stellgröße durch die PID-Formel berechnet. Dabei gibt es für jede Stellgröße eigene Parameter. Um diese geht es in diesem Thread. Bei meinem Flieger müssen Stellgrößen für Seitenruder, Höhenruder und Fahrtregler berechnet werden. Als Sollwert setze ich dazu Richtung, Höhe und Geschwindigkeit jeweils separat. Es bietet sich natürlich an, die Stellgrößen zu mischen, d.h., wenn eine Kurve geflogen wird, sollte auch etwas "Höhe gegeben" werden, wenn der Flieger aufsteigen soll, wäre es hilfreich, nicht nur das Höhenruder zu steuern, sondern gleichzeitig auch mehr "Gas" zu geben. Aber das sind Feinheiten, die man später hinzufügen kann.
Was brauchst Du: So wie ich es versuche, brauchst Du als Sensor nur ein GPS-Modul, das eine möglichst hohe Update-Rate hat. So 5-10 Hz wären ganz gut. Ob das jetzt eines von ublox (SAM-LS oder TIM-LP) ist, musst Du entscheiden. Es gibt auch ständig neue und bessere Module, so dass man schnell die Übersicht verliert. Das GPS liefert Dir alle benötigten Daten wie Position, Höhe und Geschwindigkeit (über Grund) mit gewissen Toleranzen. Dann brauchst Du einen Microcontroller, der die GPS-Daten schnell genug verarbeiten kann. Wahrscheinlich geht schon ein schnell getakteter ATMega. Wegen der Bequemlichkeit und besseren Entwicklungsumgebung verwende ich einen Embedded-Linux Computer.
Andere Projekte verwenden andere Sensoren, oft mehrere in Kombination, z.B. IMU+GPS = INS oder Infrarot+GPS+3D-Magnetometer usw. Zum Einstieg empfehle ich Dir das Paparazzi-Projekt (Siehe oben).
Gruß, Achim.
Hi voidpointer,
Vielen Dank für die Erklärungen, habe mir das paparazi proj. schon angesehen, doch finde ich es ist für Fortgeschrittene. Du meinst ein GPS alleine ist ausreichend, ohne einen Autopilot? Welches Programm läuft denn auf deinem linux stick mit den Reglern?
Ich glaube man braucht unbedingt einen Autopilot für einen Stabilen Flug.
Du steuerst also die Richtung mit dem Seitenruder, und die Höhe mit dem Höhenruder und die geschwindigkeit mit dem Fahrtregler? alles nur mit den Daten aus dem gps ? Das funktioniert?
Viele Grüße,
Johannes =P~
voidpointer
08.11.2006, 12:04
Hier wieder die Frage, was Du unter einem Autopilot verstehst? Die optischen Teile, die es für Modellflugzeuge zu kaufen gibt, sollen angeblich nicht viel taugen. Die Infrarot-Sensoren, die von Paparazzi benutzt werden, sollen besser sein. Aber klar, sie richten das Flugzeug nach dem Horizont aus. Ich versuche, ohne so einen Sensor auszukommen, weil ich denke, dass es bei einem eigenstabilen Flugzeug wie dem EayStar nicht nötig ist.
Wie oben geschrieben, werden zurzeit noch nicht alle Stellgrößen autonom gesteuert. Das ist aber m.E. nur eine Frage der Zeit. Das Programm, was das Ganze steuert und auf dem Gumstix läuft, ist eine Eigenentwicklung in C. Im Prinzip läuft da eine Schleife: GPS-Daten lesen, Umrechnen, Abweichung von den Sollgrößen bestimmen, Regler berechnen, Korrekturdaten an die Servos ausgeben, Warten auf neue GPS-Daten. Wenn die Software in einem vorzeigbaren Zustand ist, werde ich sie auf meiner Hompage veröffentlichen.
Gruß, Achim.
phaidros
08.11.2006, 16:06
Also ich verstehe das nicht ganz. GPS-Daten sind doch völlig ungenau oder irre ich mich da? Ich dachte immer es gibt Abweichungen im Meter-Bereich und bei der Höhe so im 10-Meter-und-mehr Bereich? Hast du die GPS-Daten mal im Stand längere Zeit protokolliert? Wie groß sind die Schwankungen?
Gruß
Phaidros
hallo,
ich habe mal mit einer gps-maus die daten über 1000s aufgenommen. Das Ergebnis steht hier: https://www.roboternetz.de/phpBB2/viewtopic.php?t=23342
mfg jeffrey
voidpointer
08.11.2006, 18:34
Hallo Phaidros,
als völlig ungenau würde ich die Daten nicht bezeichnen. Habe erst neulich die Daten von dem Flieger aufgezeichnet, der 45 Minuten lang unbewegt auf meinem Autodach lag. Die dabei festgestellten Abweichungen stimmen mit denen überein, die Jeffrey festgestellt hat. Also: die x-y-Position bewegt sich langsam und stetig innerhalb eines Kreises von max. 3 Meter Radius. Die Höhenangabe schwankt um +- 5 Meter, also z.B. zwischen 245 und 255 Meter. Ich hänge ein paar Grafiken an.
Meines Erachtens sind diese Genauigkeiten nur durch SBAS möglich, also mehrere zusätzliche Satelliten, die Korrektursignale senden. Der Empfänger muss diese auch auswerten können. Noch genauer geht es nur mit einem lokalen DGPS oder irgendwann mal mit Galileo.
Aus der Grafik des Höhenverlaufs ist abzulesen, dass die Höhenmessung kurz nach dem Einschalten stark ansteigt. Dafür mache ich den Temperaturwechsel vom Auto ins Freie verantwortlich. Nicht alle GPS-Empfänger haben einen temperaturstabilisierten Oszillator. Möglich, dass sich mein Empfänger auch erst an die Umgebungstemperatur anpassen musste.
Also zum Fliegen reicht diese Genauigkeit doch, oder? Die Probleme mit dem Landeanflug hatte ich ja schon genannt. Aber sobald der Flieger eine Sicherheitshöhe hat, kann man auch die Höhendaten zur Steuerung verwenden. Klar, dass man keine Punktlandung oder Ballonstechen oder ähnliches ohne zusätzliche Sensoren machen kann...
@Jeffrey: Habe mir den Thread schonmal angeschaut. Was gpsklaus da schreibt, nämlich dass die Amis die Ungenauigkeit von GPS steuern, stimmt nicht mehr. Im Jahr 2000 wurde SA abgeschaltet und seit dem haben wir die maximale Genauigkeit.
Gruß, Achim.
phaidros
08.11.2006, 20:55
Ja, mit zusätzlichen Korrekturdaten ist einiges möglich.
Zur Steuerung der Fluglage von Flugzeugen hier noch ein Link auf ein Applikationsbeispiel von Microchip. Sehr lehrreich:
http://ww1.microchip.com/downloads/en/AppNotes/00996a.pdf
Source code dazu:
http://ww1.microchip.com/downloads/en/AppNotes/COMPASS_071505.zip
Gruß
Phaidros
Ja Gps ist ungenau, aber nur absolut. Wen kümmerts, ( beim modellflieger) dass sich die ganze Navigationsroute ein paar Meter weiter links oder re. befindet. Es ist eben nur absolut ungenau. Bei wirklicher Eigenstabilität eines Fliegers, bei ....Windstille u. besten Bedingungen könnte das funktionieren. Rein theoretisch.
Ich habe Modellflieger: habe ausprobiert sie nur zB 30 sec sich selbst zu überlassen. Meistens wären sie abgestürzt, oder total instabiel geworden u. dann abgestürzt. Mit einem sehr schnellen Regelkreis mit GPS Daten wäre es natürlich rein theoretisch möglich den Flieger auf Kurs zu halten- wenn er mal drauf ist und die GPS Daten die kleinsten Abweichungen sofort dem Regler zuführen. Aber ist das in der Praxis möglich? Ich würde unbedingt einen Fluglage-Regler( bank & pitch) bevorzugen, wobei ich auf den pitch verzichten könnte, da man vom Höhenmesser weis, dass er keinen lag hat. Dh könnte ein P regler direkt die daten eines Luftdrucksensors ans Höhensteuer ausgeben. ( wenn der Höhenmesser stoppt , weis man, dass das Flugzeug Neutrallage hat.- je nachdem was vorher war, geht es durch die Neutrallage- vom steigflug in den sinkflug, oder anders rum wenn der Höhenmesser kurzteituig inne hält.Beim Drucksensiblen Höhenmesser ist eines fix. Trendreversal= Neutrallage)
Viele Grüße,
Johannes
Suggarman
21.11.2006, 09:53
@Stefan: zweimal 11V mit 13A klingt kräftig genug, um den Flieger zügig auf Höhe zu bekommen.
Am Samstag war der Erstflug. Die Leistung ist mehr als ausreichend. 1/3-Gas reicht vollkommen für einen flotten Geradeausflug. Ich glaube, bei meiner 13A-Messung war der Akku nicht mehr 100% voll. Ich werde noch Propeller mit größerer Steigung testen um die Drehzahl zu senken.
mfg
Stefan
hi,
ist eigentlich nicht einfacher einen kompass zuverwende, da es ja nur um den kurs geht, und nicht um eine bahn verfolgung?
mfg jeffrey
voidpointer
21.11.2006, 17:49
Klar, ein Kompass würde auch helfen, vor allem wenn er eine höhere Abfrage-Rate hätte. D.h., das problematische bei GPS ist u.a. die große Latenzzeit. Das macht die Einstellung des Reglers so schwierig. Je schneller ein Sensor die aktuelle Richtung liefert, umso besser kann der Regler reagieren. Ist dasselbe wie mit Gyros und Accelerometern.
Letztlich soll aber nicht nur eine Flugrichtung gehalten, sondern ein Flugplan abgeflogen werden. Also Anfliegen bestimmter Wegpunkte, Streckenflug zwischen den Wegpunkten, Kreissegmente, Einleiten des Landeanflugs usw. Dazu braucht man auch Positionsmessungen. Der Regler zum Einhalten einer Flugstrecke oder einer Kreisbahn hat dann nicht nur die Kursabweichung, sondern auch den seitlichen Abstand von der geplanten Bahn als Eingangswerte. Die Formeln dazu habe ich schon fertig. Doch dafür brauche ich erstmal verlässliche Basis-Parameter.
Gruß, Achim.
Hi,
wie wird denn die Bahn abgespeichert? In Vektorform, oder eintelne Punkte der Bahn? Woran wird dann erkannt, was der nächste Bahnpunkt für die Regelung ist? Wie hast du vor das zu realisieren?
MfG Jeffrey
voidpointer
22.11.2006, 10:03
Hi Jeffrey,
die geplante Flugbahn soll als sog. Flugplan vorgegeben werden. Der Flugplan enthält Anweisungen, ähnlich einer Batch-Datei oder Script-Sprache. Wesentliche Bestandteile sind Wegpunkte, die entweder absolut (genaue GPS-Koordinaten) oder relativ zur aktuellen Position festgelegt sind. Dann soll es bestimmte Anweisungen geben, um diese Wegpunkte zu erreichen, z.B. "goto", "straight", "turn", "approach" oder ähnlich. Weitere Anweisungen für Speed, Höhe und Regeln für besondere Ereignisse. Die Syntax dazu habe ich aber noch nicht beschrieben. Zur Zeit definiere ich sie wie ich es gerade brauche.
Bisher kann der Code schon bestimmen, ob ein Wegpunkt erreicht ist, nämlich wenn die aktuelle Position kleiner als ein vorgegebener Grenzwert ist (z.B. 3 Meter) und die Entfernung zum Wegpunkt ansteigt, also das Fahrzeug sich schon wieder vom Wegpunkt wegbewegt. Bei den Tests auf dem Boden hat das schon gut geklappt. In der Luft muss man möglicherweise den Grenzwert höher setzen. Wenn ein Wegpunkt erreicht ist, gilt die Flugplan-Anweisung als erledigt und die nächste Anweisung wird gelesen. Zu klären ist, was die Navigation tun soll, wenn der Flugplan durch manuellen Eingriff unterbrochen wurde. Darüber muss ich noch nachdenken, aber wahrscheinlich werde ich dies als Flugplan-Ereignis (so eine Art Sprungmarke) behandeln, welches dann den Flugplan an einer definierten Stelle wieder aufnimmt.
Die Ansätze hatte ich übrigens hier im Forum: https://www.roboternetz.de/phpBB2/viewtopic.php?t=3569 schonmal beschrieben.
Gruß, Achim.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.