Hallo Michael,
1. Man hat zwei unabhängige Systeme, welche die Höhe angeben. Wenn die Angaben um grob 6km auseinanderliegen, kann was nicht stimmen! Die Differenz der beiden Werte zu bilden und mit einen Grenzwert zu vergleichen ist wirklich kein Rechenaufwand. Der beginnt erst, wenn man den Fehler festgestellt hat.
2. Eine negative Höhenangabe von -2km ist irgendwie neben der Realität, da wundert man sich eher, wieso der Rechner noch funktioniert.
So viel zur Plausibilitätsprüfung!
Zudem war bekannt, dass die IMU falsche Werte liefern kann und das Bodenradar in diesem Zeitpunkt zuverlässiger arbeitet, also wäre es naheliegend gewesen mit den Radardaten zu rechnen.
Besser wäre es gewesen neben dem Zeitfenster eine Plausibilitätsprüfung zu machen und die falschen Daten wegzuwerfen.
Noch besser die Messwerte gegen eine Trendrechnung zu vergleichen.
So ein Problem hatte ich mal Mitte der 80er Jahre. Die Hardware war ein Hitachi 6301, also ein 6801 Derivat als SingleChip mit 1MHz Taktrate und 2 oder 4 KByte ROM. Also kein Vergleich mit der heutigen Rechenleistung.
Das Problem bestand aus einer 30kg Waage, auf welcher ein Trichter mit Motor und Förderschnecke montiert war. Gefördert wurde Kunststoffgranulat.
Das Problem war, dass wenn so ein Granulatkörnchen in der Schnecke verklemmte, dies Schläge auf die Waage übertrug. Die Störsignale lagen im Bereich von 10kg bis über 15 kg. Dosiert werden sollte in der Grössenordnung von kontinuierlich 100g/Min.
Gelöst habe ich das Problem auch mit einem Puffer, Trendrechnungen, Mittelwerten und Plausibilitätsrechnungen. Ausser beim Nachfüllen war es schon physikalisch nicht möglich, dass sich die Masse innerhalb von Sekundenbruchteilen um 10kg ändert, also eine Fehlmessung und weg damit. Auch die Drehzahlregelung hatte eine endliche Geschwindigkeit, sodass auch hiermit eingegrenzt werden konnte.
Man darf eben nicht nur stur rechnen, sondern muss auch die durch die Physik gegebenen Grenzen überwachen.
Für eine stabile Software sind grundsätzlich, zumindest einfache, Plausibilitätsprüfungen aller Sensoren angesagt. Wenn das Wasser im Wasserkocher 500°C hat, stimmt etwas nicht!
Gute Software macht aber auch innerhalb der Software, an Modulgrenzen, entsprechende Prüfungen.
Auch bei den Stellgrössen von Aktoren muss man entsprechend prüfen. Wenn der Aktor auf 110% gestellt werden soll, darf der ausgegeben Wert nicht nur 10% betragen, weil man einfach die 100er Stellen wegstreicht, sondern man muss halt 100% ausgeben und ggF noch eine Fehlermeldung absetzen.
MfG Peter(TOO)
P.S. SASSER war genau auch so ein Problem. Ethernet kann Datenblöcke bis zu 64KB übertragen. Für das MS-Subsystem waren aber Blöcke mit maximal 4KB definiert. Der Fehler war, dass man, ohne eine Prüfung, den Ethernet-Datenblock in einen 4kB Puffer kopiert hat.
Gerade in einem Netzwerk muss man immer damit rechnen, dass ein Datenpaket versehentlich an einen falschen Port gesendet wird...
Lesezeichen