Liste der Anhänge anzeigen (Anzahl: 2)
Regler-Parameter für Autopilot
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.
Liste der Anhänge anzeigen (Anzahl: 1)
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.
Beginner braucht euren Rat
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
Liste der Anhänge anzeigen (Anzahl: 2)
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.