Hallo Leute, da ich begeisterter Modellflieger bin will ich (da auch ähnliche Projekte in der Arbeit laufen) mir einen kleinen Flugregler bauen. An Sensorik kommen definitiv mal nen GPS Empfänger (4Hz) und nen Drehratensensor (Gyro) rein. Damit will ich dann erstmal die Hochachse (Gieren) regeln. PD - Regler der Flugrichtung (aus dem GPS) und als Dämpfung der Wert aus dem Gyro. Für die Implementierung des Reglers wäre es sehr von Vorteil wenn der Controller floats verarbeiten könnte, und das mit einer Frequenz von mindestens 50Hz. Vorerst versuche ich mal um eine Kalman Filterung drum rum zu kommen, aber wahrscheinlich werde ich um ein Hängewinkel - Estimate nicht rumkommen. Ich denke, daß hierbei die AVR leider zu langsam sind (auswertung des NMEA Protokolls, auslesen eines AD Werts, Berechnung der Stellgröße, Abfrage eines PWM Kanals ob Automatik Modus oder Manueller Modus, Ausgabe der Stellgröße mittels PWM (Modellbau Servos), ....). Gibts hierfür Vorschläge für gut programmierbare (ich kann nur C und C++, aber das sehr gut) Controller ? Wie schauts da mit den ARMs aus ? Grüße, Michael
ich denke ein AVR sollte genug sein. Natuerlich ohne float. Das brauchts sicher nicht. Das NMEA liefert nur einen Satz Werte pro sekunde. rene
Also 50 Float-Berechnungen pro Sekunde schafft auch ein AVR ;) PWM-Ausgabe, AD-Wandlung und NMEA-Daten einlesen braucht auch so gut wie keine Resourcen. Wenn also deine Berechnungen nicht extrem aufwändig sind, reicht ein AVR da allemal. Floats braucht der Controller selbst nicht zu können, darum kümmert sich der C-Compiler. Auch ein ARM7 kann selbst nicht mit Floats rechnen, sondern macht das in Software. Wenn es eng wird hat der natürlich mehr Leistung, aber deine Aufgabe klingt wirklich nicht so, als würde das extreme Rechenleistungen brauchen.
Hallo, aus dem GPS alleine bekommst du keine Richtungsdaten für die zukünftige Strecke, ohne eine minimale Eigengeschwindigkeit zu haben. Eine Richtungsreferenz musst du zusätzlich erzeugen, z.B. aus dem Giersignal. Arno
Ich würd einen AVR mit 16 oder 20MHz nehmen, und alle variablen externen Signale den Hardware-Einheiten (ADC, ICP, PWM und USART) überlassen. Als Gyro würde ich einen der feinen kleinen modernen 3-Achs-Chips mit digitaler Ausgabe nehmen (SPI) - damit ist die Fluglage im Subsekundenbereich um Klassen einfacher und genauer zu kontrollieren als mit dem besten GPS-Empfänger. Auch wenn die 4 position fixes per second eines Antaris 4 im Flyer für die Kunden natürlich ordentlich was hermachen (die "mehr PS" wirken auch hier ;)), praktisch taugen sie aber doch nur für eine etwas akkuratere 2D-Geschwindigkeitsmessung. Um die Float-Berechnung mache ich mir dabei gar keine Sorgen. Ein AVR mit den genannten Taktraten schafft pro Sekunde 12-15Mio. Verarbeitungsschritte und mehr. Von denen bleiben, eine angemessene Programmstruktur vorausgesetzt, vielleicht 500.000 in den Interrupt-Routinen und den Entscheidungen des Hauptprogramms, was jeweils zu tun ist. Selbst bei 100 Berechnungen pro Sekunde hab ich also immer noch weit über 100.000 Programmschritte pro Berechnung, das sind schon eine ganze Menge Holz. Ok, das "Holz" kriegst Du mit (un)passender Programmierung auch ganz schnell klein, zum Beispiel mit massiv iterativ berechneten statt tabellenbasierten Winkelfunktionen. Aber erstmal denke ich, dass mit der oben skizzierten Hardware eine 64bit-Integer-Berechnung weit effizienter ist. Gruß Johannes
hmmm würd mich jetzt wunder nehmen wiso ein PD-Regler und nicht PID?
Vielen Dank schon mal für die vielen Beiträge. @Arno: Laut NMEA 0183 gibts es das Protokoll GPVTG, welches Informationen über Flugrichtung (true & magnetic) und Fluggeschwindigkeit enhält. @Johannes: Dieser schöne 3-Achs Gyro ist wahrscheinlich der neue von Analog mit SPI Ausgang und klingt wirklich sehr gut !! Das Ding hat auch noch 3 Accels und nen Filter mit drin. Schönes Teil! @Daniel: PID ist natürlich schöner, aber ich hab ein wenig Angst um a) Rechenleistung & zeit b) Probleme mit Überläufen von Variablen Welche Teile genau verbaut werden sollen ist noch nicht ganz klar, aber wahrscheinlich werde ich erstmal aus Kostengründen auf das GPS verzichten und versuchen mal ne erste rudimentäre Lageregelung zu verwirklichen. Hierfür einsetzten will ich 2 "normale" Gyros (Gier- und Rollachse) und nen Magnetfeldsensor (CMS03). Dann das Rollgyro als D - Anteil und den P - Anteil vom Giergyro. Flugrichtung als "outer loop" dann vom CMS03. Laufen soll das Ganze dann Testweise mal auf nem Mega32 (16MHz). Ich schau jetzt einfach mal daß ich die Sensoren herbekomme (den CMS hab ich schon !!) und dann gehts mit dem Testen mal los ..... Danke an alle und weiter Kommentare sind herzlich willkommen !! Grüße, Michael
Hallo, auch das tollste Protokoll benötigt dazu mindestens 2 Wegpunkte und ist immer eine Bestätigung des vergangenen Streckenabschnitts. Ohne Eigengeschwindigkeit über Grund gibt es nur einen Wegpunkt und somit ist keine Richtungsangabe möglich. Für die zukünftige Streckenabschnitte benötigst du einen Bezug zum LFz. Was nützt dich das Wissen, dass das Ziel sich im Norden befindet, wenn das Flugobjekt "Norden" nicht zuordnen kann. Magnetic ist imho auch nur über einen zusätzlichen Kompasssensor nutzbar oder hat dein GPS auch eine Isogonenkarte Onboard? Kurskreisel ginge auch, kommt drauf an, wie der Gierkreisel ausgewertet wird und wie stabil er ist. Du musst eine Möglichkeit haben die Längsachse in Bezug zum Heading auszuwerten. Früher hat man das mit dem Hintern (oder einem Wollfaden!) gemacht, heute gibt es dafür Elektronik. Arno
Arno, ich weiß nicht ob Du den ersten Beitrag gelesen hast, aber es handelt sich hier um ein Modellflugzeug, daß geflogen werden soll. Somit kann man im Flug von einer gewissen Grundgeschwindigkeit ausgehen, denn wenn das Ding am Boden liegt ist mir auch klar, daß mir die Kenntnis der Richtung in die ich momentan schaue relativ egal ist. Zum Thema Magnetic: Es handelt sich hier um ein MODELLFLUGZEUG, mit dem ich im SICHTBEREICH operiere, von dem her kann ich mir Isogonenkarten, eventuelle Merdianabweitungen und sonstige fiese spärische Trigonometrie getrost sparen. Und sobald mal ein stabiles GPS-Signal anliegt bei vorhandener Fluggeschwindigkeit kann der Kompasssensor ja "genullt" werden. Vorerst soll die Hochachse noch unter manueller Kontrolle bleiben... Das Ganze ist mehr als Hobby - Versuch zu verstehen, als EADS - Barracuda (blubb) Konkurrenz ! Von dem her will ich mich einfach mal ein wenig rantasten und mal schauen was rauskommt.... Das mit dem Wollfaden kenn ich auch noch !! Wichtigste "Sensor - Anzeige" beim Segelfliegen (manntragend)....... Und um vielleicht einige mögliche Ungeklärheiten aufzuklären. Der Flieger ist eine 2 Mot (elektrisch) mit rund 1.6m Spannweite. Die Schwerpunkt liegt deutlich vor dem Neutralpunkt, wobei hier dann von einer statischen Stabilität ausgegangen werden kann. Die Phygoide und Anstellwinkelschwingung, sowie die Dutch - Roll und der Seitenrutsch sind stark gedämpft und nach ersten Probeflügen mit visueller Datenaufzeichnung nicht erkennbar ;-) Grüße, Michael
Pardon, ich war von einem Heli ausgegangen, der Giersensor hat mich in diese Richtung gedrängt. Von Fixed Wing stand ja auch nichts da. Arno
Kein Problem Arno. Drum "reden" wir ja drüber .... Hab heute in der Arbeit mal mit Matlab und dem Embedded Coder ein wenig rumgespielt. Da könnte ich dann schön meine ersten Regelkreise auslegen und an ner 3DOF Simulation testen und dann direkt den Code erstellen lassen .... Ich probier's demnächst mal aus ...
Zum Thema "wo herbekommen" schau mal bei sander-elektronik unter Sensoren. Ansonsten hatte ich mich mit den Begriffen etwas vertan, sorry. Ich meinte eigentlich die Accelerometer... Gruß Johannes
Hi! Ich hab da mal was gebastelt. Hat eigentlich recht gut funktioniert: http://www.rclineforum.de/forum/thread.php?threadid=105947&sid=b4e8ad39543e630a18b9943ce3422faf&threadview=0&hilight=&hilightuser=&page=7 Ich habe zwei Controller verwendet: 1 Mega8 zum decodieren der PPM und zum erzeugen der Servoimpulse 1 Mega128 für den Rest(NMEA, AD-Wandler, Regler, Downlink usw.) verbunden sind beide über SPI. Gruß globe
Hallo Globe, sehr beeindruckend !! Könntest du mir mal Deine "Regelungen" näher ausführen und welche Rückführungen du dabei benutzt hast ? Hast Du eventuell auch diverse Filter angewendet (Kalman) ? Grüße, Michael
Hi, jo das meiste müsste eigentlich in dem Link stehen. Für die Stabilisierung der Fluglage habe ich hauptsächlich einen Gyrosensor, der die Winkelgeschwindigkeit um die vertikale Achse ausgibt über einen einfachen P-Regler den Querrudern aufgeschaltet. Das ergibt eine sehr gute Stabilisierung um die Längsachse. Die Stabilisierung um die Querachse erfolgt durch einen Beschleunigungssensor in Verbindung mit der nach der Zeit abgeleiteten Geschwindigkeit. Die Kurssteuerung übernimmt ein einfacher PD-Regler der auf das Seitenruder wirkt. Regelgröße ist hierbei die durch das GPS ermittelte Kursabweichung. Filter hab ich bis auf ein paar FIR-Filter nichts besonderes eingesetzt. Soviel mal auf die Schnelle. Wenn Du Fragen hast, steh ich natürlich zur Verfügung. Gruß globe
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.