Avionik – HRKULES

Eine Platine trägt Sensorik, Regelung, Bergungsauslösung, Datenaufzeichnung und Funk, und sie wird im eigenen Haus entwickelt, gebaut und getestet.

  1. 01

    Eine Platine

    HRKULES ist der Flugrechner: eine einzige Platine für Sensorik, Regelung, Bergungsauslösung, Datenaufzeichnung und Funk. Ein RP2040 liest IMU und Barometer aus, fusioniert sie in einem Kalman-Filter zur Höhenschätzung, führt den Zustandsautomaten und beide Regelkreise aus, zeichnet jeden Flugzyklus im internen Flash auf und steuert die Gimbal-Servos sowie den Pyrokanal an. Alles läuft in einem festen 200-Hz-Takt; jeder Zyklus, der sein Zeitfenster überschreitet, wird gezählt. Dritte Platinenrevision, entworfen in KiCad.

    Der Flugrechner HRKULES V3, dargestellt aus dem KiCad-Layout
    Abb. 2.2  –  HRKULES · Layout V3, Platine 2.0 auf dem Arbeitstisch, Avionikbucht
  2. 02

    Ein fester 200-Hz-Takt

    Der gesamte Flugrechner läuft nach einem festen Takt: 200 Durchläufe pro Sekunde. Jeder Durchlauf liest die Sensoren, lässt den Zustandsautomaten entscheiden, aktualisiert den Schätzer, führt die Regelkreise aus und protokolliert den Zyklus; die Telemetrie geht mit niedrigerer Rate hinaus. Die Schleife wartet auf ihren Zeitschlitz und schaltet den Takt um eine feste Periode weiter, sodass die Rate nicht driften kann, und jeder Durchlauf, der seinen Zeitschlitz überschreitet, wird gezählt. Nach einer Überschreitung synchronisiert sie sich neu, statt hintereinander aufzuholen, denn ein Schub von Durchläufen würde alles verfälschen, was über die Zeit integriert.

  3. 03

    Telemetrie

    Der Funktreiber ist direkt gegen die Registerbeschreibung des RFM95W programmiert, nicht gegen eine Bibliothek. Die Telemetrie besteht aus einem kompakten Paket, 50-mal pro Sekunde: Zeitstempel, Zustand, Höhe, drei Lagewinkel, Gesamtbeschleunigung, Temperatur, Akkuspannung, ein Fehlerwort, ein Filter-Innovationswert, ein Flag-Byte, ein Sequenzzähler und ein Versionsbyte. Die Paketgröße wird beim Bau der Firmware geprüft: Ein geändertes Layout lässt den Build scheitern, statt den Downlink zu verfälschen. Den Paketverlust leitet die Bodenstation aus dem Sequenzzähler ab.

  4. 04

    Aufzeichnung

    Jeder Zyklus des Flugs wird in einen Flash-Baustein auf der Platine geschrieben. Nach der Landung wird das Protokoll auf die SD-Karte kopiert, sodass nichts verloren geht, wenn der Akku abgezogen wird, und die Daten sich direkt im Data Viewer öffnen lassen. Liegt beim nächsten Einschalten noch ein Protokoll auf dem Baustein, wird es zuerst auf die Karte kopiert.

  5. 05

    Konfiguration am Startplatz

    Parameter werden beim Start aus einer Konfigurationsdatei auf der SD-Karte gelesen und sind nicht fest einkompiliert. So lässt sich die Rakete an der Startrampe ohne Toolchain nachjustieren. Jeder Wert wird gegen einen zulässigen Flugbereich geprüft; eine fehlende Datei, ein unbekannter Schlüssel oder ein Tippfehler lassen den einkompilierten Standardwert unverändert.

  6. 06

    Fehler und Startsperre

    Fehler werden zweifach erfasst: die aktuell anstehenden und alle, die seit dem Start aufgetreten sind. Ein Fehler, der nur zeitweise auftritt, bleibt in der aktuellen Anzeige unsichtbar – dafür gibt es die Speicherung. Fällt beim Start ein flugkritisches Subsystem aus, startet die Hauptschleife gar nicht erst und die Status-LED blinkt: Die Rakete bleibt am Boden, statt mit unzuverlässigen Daten zu fliegen.

  7. 07

    Technische Daten

    Revision
    V3  (V1 → V3)
    MCU
    RP2040 @ 133 MHz · Arduino-Nano-RP2040-Connect-Modul
    IMU
    MPU6050 – 6 Achsen
    Barometer
    BMP180
    Zustandsschätzung
    Kalman-Filter aus Barometer und Beschleunigungssensor
    Hauptschleife
    200 Hz, fester Takt
    Funk
    RFM95W · 433-MHz-Band
    Speicher
    W25Q-Flash (Flugdaten) · SD (Konfiguration, Kopie nach dem Flug)
    Ausgänge
    2 Servokanäle (Gimbal) · 1 Pyrokanal
    Telemetrie
    kompaktes, versioniertes Paket · 50 Hz

Höhenschätzung

Höhe und Vertikalgeschwindigkeit stammen aus einem Kalman-Filter mit zwei Zuständen. Der Beschleunigungssensor treibt die Prädiktion mit 200 Hz an; das Barometer korrigiert sie, sobald ein neuer Messwert vorliegt. Jeder Barometerwert wird gegen die Unsicherheit des Filters selbst geprüft: Ist er statistisch unplausibel, wird er verworfen, und erst eine anhaltende Folge von Verwerfungen setzt den Filter neu auf das Barometer auf. Ein einzelner Ausreißer kann die Schätzung somit nicht verschieben, ein tatsächlich abgedrifteter Filter findet jedoch von selbst zurück.

Punkte: Barometer · rote Linie: Schätzung · gestrichelt: tatsächliche Höhe Ignorierte Messwerte: 0
Synthetische Daten und beispielhafte Parameter, nicht die Flugwerte.

WeiterBergungGround Control und Simulation