Wie unterschiedlich sind redundante Flugsteuerungscomputer?

Fakten

In Airbus-Flugzeugen gibt es Computer, um die Flughülle zu sichern oder die Steuerflächen zu bewegen. FADECs kontrollieren die Triebwerke vollständig. Computer treffen Entscheidungen anstelle der Piloten oder sogar gegen ihre Befehle. Boeing-Flugzeuge haben ähnliche Computer, auch wenn die Besatzung mehr Autorität hat.

Geben Sie hier die Bildbeschreibung ein
A330 Elektronikschacht, Quelle , Foto von 'swiss_a320'

Auswirkungen auf die Sicherheit

Da die Systeme kritisch sind, sind sie redundant und überwachen sich gegenseitig, um mögliche Fehler zu erkennen und ausgefallene Komponenten zu isolieren. Dennoch kann ein Computer aus fehlerhaften Spezifikationen entwickelt oder falsch hergestellt werden, und ein Programm kann Fehler enthalten. Wenn derselbe Fehler auf allen Computern in der Produktionslinie vorhanden ist, kann der Zweck der Redundanz zunichte gemacht werden, da sie kein fehlerhaftes Verhalten erkennen können.

Dies wird in diesem Artikel besser ausgedrückt :

Aufgrund der schwerwiegenden Folgen, die sich aus einem einzelnen Fehlerpunkt ergeben, ist Hardwareredundanz in DAL A-Systemen von entscheidender Bedeutung. Wenn das Flugzeug jedoch eine redundante Architektur mit ähnlichen Kanälen verwendet, ist dieses System immer noch anfällig für Gleichtaktfehler, die dazu führen können, dass alle Kanäle auf die gleiche Weise ausfallen.

Frage

Welche Prinzipien werden in der Luftfahrt verwendet, um die Wahrscheinlichkeit zu verringern, dass redundante Computer ausfallen oder dieselben Fehler gleichzeitig machen?

3 oder 4, normalerweise. Aber um Ihre andere Frage zu beantworten: Wenn alle redundanten Computer auf die gleiche fehlerhafte Weise hergestellt oder programmiert werden, wären die Besatzung und die Passagiere tatsächlich am Arsch, wenn sie alle Überprüfungen, Audits und Tests durchlaufen und sich auf einem betriebsbereiten Produkt befinden würden, das ist warum es sehr teuer und zeitaufwändig ist, so etwas zu machen und es durch den Prozess zu bringen und zertifiziert zu werden.
Aber leider ist Ihre Sorge berechtigt, und viele Testpiloten sind wegen fehlerhafter Computer und Computerprogramme ums Leben gekommen, und ich denke, das gilt auch für Passagiere und Besatzungsmitglieder.
Sehr verwandt (lesen Sie über den Titel hinaus): Warum sind kritische Flugcomputer überflüssig?
Beispiel eines Fehlers, der es durch Testen schafft . Zum Glück ist es eine ziemlich seltene Sache.
Wie viel Gewicht bist du bereit zu opfern? Welche Strafe sind Sie bereit, für die nächste Stufe der Entlassung zu zahlen? Haben Sie den CEO informiert? Möchten Sie morgen früh beschäftigt werden?
Vielleicht lassen sie die Programmierer zum ersten Testflug aufsteigen.
Hier gibt es zwei getrennte Probleme, Redundanz und Unähnlichkeit. Der Grad der Redundanz ist nur ein Maß dafür, wie viele Systeme Sie steuern und überwachen, während die Unähnlichkeit angibt, wie getrennt und unabhängig diese Systeme sind. Ich würde vorschlagen, zu klären, auf welchen Sie neugierig sind, indem Sie den Titel in etwas umbenennen wie "Wie unterschiedlich sind redundante Flugsteuerungscomputer".
@CodyP: Danke, das ist ein guter Vorschlag.
@mins Ich bin ein wenig geteilter Meinung über die Titeländerung. Es fühlt sich leicht so an, als ob die Frage geändert wurde, und macht Teile einiger Antworten ungültig (Teil 2 und 4 der akzeptierten Antwort handeln beispielsweise nicht von Computern). Vielleicht der alte Titel und eine Erwähnung in der Frage "Wie werden redundante Systeme unähnlich gemacht"? Oder vielleicht einfach "Computer" entfernen, da ein Großteil der Redundanz außerhalb der Computer selbst liegt. Ich bin mir nicht sicher ... Ich überlasse es Ihnen, zu entscheiden.
Die duplizierten Systeme sind auf unterschiedlichen Chips aufgebaut, verwenden unterschiedliche Programmiersprachen (ADA ist eine davon) und werden von unterschiedlichen Teams nach derselben funktionalen Spezifikation codiert. Dies minimiert die Wahrscheinlichkeit, dass dieselben Betriebsparameter (z. B. Fluggeschwindigkeit, Anstellwinkel usw.) in zwei Systemen denselben fehlerbedingten „Fehler“ erzeugen. Nach AF447 hat Airbus Änderungen an den Softwaresystemen vorgenommen, um das Abschalten bei widersprüchlichen Ergebnissen zu vereinfachen.
@ Pete855217 - Sie scheinen diese großartige und faszinierende Frage konkret und tatsächlich beantwortet zu haben. Dank dafür
Übrigens ist das Bild in der Frage ...... in gewisser Weise etwas erschreckend!

Antworten (4)

Was Airbus betrifft:

  1. Jede Einheit besteht aus zwei unterschiedlichen Platinen, von denen eine den Ausgang steuert und die andere ihn prüft. Unähnlich bedeutet sowohl unterschiedliche CPUs und Chipsätze (A320 verwendet i386 (Intel) und m68k (Motorola); neuere Modelle verwenden andere Kombinationen, im Grunde alles, was zum Zeitpunkt ihrer Entwicklung weit verbreitet war) und Software, die von zwei unabhängigen Teams geschrieben wurde.

  2. Es gibt Failover, je nach System zwei oder drei (IIRC, die Einheit, die die Side-Sticks liest, ist die einzige mit vier Kopien).

  3. Die beiden Hauptachsen Nicken und Rollen werden von zwei unterschiedlichen Systemen gesteuert. ELAC steuert Höhen- und Querruder, SEC steuert Höhenleitwerk und Spoiler. Dies sind zwei völlig unabhängige Ketten mit unterschiedlichen tatsächlichen Steuerflächen mit Ausnahme der Seitenknüppel.

  4. Der A320 verfügt über ein (hydro-)mechanisches Backup für Pitch über das Trimmrad und Gieren über die Pedale, wobei die Gier-Roll-Kopplung für das Rollen verwendet wird. Das funktioniert auch bei komplettem Stromausfall. IIRC die Backups bei neueren Modellen jedoch nicht (weil ein vollständiger Stromausfall noch nie vorgekommen ist).

Das Erweitern der unterschiedlichen Boards etwas - idk über Airbus oder irgendjemanden im Besonderen, aber ich habe davon gehört, drei verschiedene Systeme für eine Entscheidung zu haben - dies bedeutet, dass, wenn eines "fehlerhaft" ist, es nicht mit den anderen übereinstimmt, und das Die richtige Entscheidung kann aufrechterhalten werden, aber Sie können bei zwei Systemen nicht sagen, welches welches ist. Ist das richtig?
@Baldrickk Ja, das ist der normale Grund für eine Zwei-von-Drei-Abstimmung: Bei zwei, wenn einer falsch ist, können Sie nicht wissen, welcher falsch ist; alles, was Sie wissen können, ist, dass sie anderer Meinung sind. Wenn bei drei falsch ist, können Sie es wissen, weil zwei immer noch übereinstimmen. Solange nicht zwei von drei falsch sind, können Sie mit drei besser mit Meinungsverschiedenheiten umgehen als mit zwei.
„Weil ein kompletter Stromausfall noch nie vorgekommen ist“ >> Man sollte meinen, Flugzeughersteller hätten Murphys Gesetz längst gelernt. Fragen Sie Al Haynes nach „unmöglichen“ Fehlschlägen. en.wikipedia.org/wiki/United_Airlines_Flight_232 :-/
@MichaelKjörling Siehe: Minderheitenbericht
@Baldrickk, Im Allgemeinen ja, aber es gilt nie für Airbus . Alle Airbus-Systeme haben eine Einheit, die die Entscheidung trifft, und eine andere , die sie verifiziert. Und wenn die Überprüfung fehlschlägt, wird die Einheit aus zwei Systemen für fehlerhaft erklärt und ein Failover- Ansatz verwendet.
"... weil es noch nie einen kompletten Stromausfall gegeben hat" - meine Güte, ich hoffe, ich bin nicht im ersten Flugzeug, dem das passiert.
@Shawn, das ist das Ding. Hydraulikausfall ist passiert, wird aber trotzdem für die Flugsteuerung benötigt. Da ein elektrischer Ausfall weniger wahrscheinlich ist als ein hydraulischer, erhöht der Bedarf an elektrischer Energie das Risiko nicht so sehr.
Verstanden, und ich widerspreche dir nicht. Es ist jedoch sehr kurzsichtig von Airbus zu glauben, dass eine äußerst unwahrscheinliche Situation unmöglich ist. Fragen Sie Capt. Haynes noch einmal, was unmöglich ist. Alle möglichen "unmöglichen" Dinge passierten an diesem Tag.
@JanHudec danke für die zusätzlichen Informationen. Es ist interessant zu wissen, dass sie es so machen würden.
@Shawn: Sie scheinen anzudeuten, dass Sie die Flugsicherheit besser kennen als Airbus. Könntest du das weiter erläutern?
@MartinArgerami Ich entschuldige mich, wenn Sie das, was ich geschrieben habe, so aufgenommen haben. Ich sage nur, dass es einige ziemlich gute Beispiele aus der realen Welt gibt, wo Dinge passieren, die die Flugzeughersteller für unmöglich hielten – wie ein totaler Hydraulikausfall bei einer DC-10. Es würde Airbus wahrscheinlich nicht schaden, diese Beispiele im Hinterkopf zu behalten, wenn sie mit „unmöglichen“ Situationen umgehen wollen. Und meiner Erfahrung nach beinhaltete das Fliegen (und andere Dinge) immer, auf das Unmögliche und Unwahrscheinliche vorbereitet zu sein, damit das Wahrscheinliche, egal wie schwer, viel einfacher zu handhaben war.
@Shawn: keine Notwendigkeit, sich zu entschuldigen. Ich wollte nur andeuten, dass es eine Menge Wissen über Fliegensicherheit gibt. Sowohl Airbus als auch Boeing bauen seit langem Flugzeuge, und das Wissen über Unfälle ist Jahr für Jahr gewachsen. Die Realität ist, dass wir uns bereits in einem Stadium befinden, in dem die meisten Unfälle nicht durch Konstruktionsfehler verursacht werden.

Redundanz wird nicht nur durch die Vervielfachung der Rechner erreicht, sondern auch durch deren Diversifizierung. Auf Airbus-Flugzeugen werden zwei verschiedene Computer verwendet (einer mit Intel-Chips, der andere mit Motorola-Chips im Fall des A320) und Software wird zweimal geschrieben, einer zur Steuerung, der andere zur Überwachung, von zwei Teams, die nicht interagieren dürfen .

Um aus Kapitel 12 des Avionik-Handbuchs zu zitieren :

Trotz der einmaligen Kosten, die durch Unähnlichkeit verursacht werden, ist es von grundlegender Bedeutung, dass die fünf Computer alle unterschiedlicher Art sind, um Gleichtaktfehler zu vermeiden. Diese Ausfälle können zum Totalausfall des elektrischen Flugsteuerungssystems führen. Folglich können zwei Arten von Computern unterschieden werden:

2 ELAC (Höhen- und Querrudercomputer) und 3 SEC (Spoiler- und Höhenrudercomputer) auf A320/A321 und,

3 FCPC (primäre Flugsteuerungscomputer) und 2 FCSC (sekundäre Flugsteuerungscomputer) auf A330/A340.

Am Beispiel des 320 werden die ELACs von Thomson-CSF um 68010-Mikroprozessoren hergestellt, und die SECs werden in Zusammenarbeit von SFENA/Aerospatiale mit einer Hardware hergestellt, die auf dem 80186-Mikroprozessor basiert. Wir haben daher zwei verschiedene Design- und Fertigungsteams mit unterschiedlichen Mikroprozessoren (und zugehörigen Schaltungen), unterschiedlichen Computerarchitekturen und unterschiedlichen funktionalen Spezifikationen. Auf der Softwareebene führt die Architektur des Systems zur Verwendung von vier Softwarepaketen (ELAC-Steuerkanal, ELAC-Überwachungskanal, SEC-Steuerkanal und SEC-Überwachungskanal), wenn funktional eines ausreichen würde.

Bekanntlich hat die 777 drei redundante Computer, die von verschiedenen Teams/Unternehmen in verschiedenen Programmiersprachen erstellt wurden.
Meiner Erfahrung nach müssen manchmal sogar die zugrunde liegenden Algorithmen anders sein (wenn möglich).
Heiliger Karpfen! Das Motorola 68010 und das Intel 80186? Die sind geradezu uralt !! Aber ich denke, als die A320 1987 zum ersten Mal vom Band lief, waren sie ziemlich neu ...
@FreeMan: Der Eurofighter verwendet auch das Motorola 68000. Abgesehen von einigen Midlife-Upgrades müssen diese für die nächsten 30 Jahre oder mehr verfügbar sein. Um den letzten fliegen zu lassen, müssen Sie wahrscheinlich die Chips aus einem Museum stehlen. Zumindest die moderneren Airbus-Computer verwenden den PPC.
Das wirft eine ganz neue Frage auf (die für dieses Forum vielleicht nicht angemessen ist), wie hält Airbus Intel & Moto daran, diese alten CPUs zu produzieren und/oder wie viele haben sie (ihr Lieferant) auf Lager? Intel und Moto haben ihre Entwicklungs- und Startkosten längst wieder hereingeholt, also sollte die Produktion von mehr fast reiner Gewinn sein, aber es kostet viel , Fab-Anlagen für winzige Mengen am Laufen zu halten. /OT Gedanken
@FreeMan: Das sind Chips in Militärqualität, die einen sehr langen Genehmigungsprozess durchlaufen haben. Ein Teil des Prozesses besteht darin, sicherzustellen, dass jemand diese Chips in den kommenden Jahrzehnten herstellen kann. Natürlich mit reichlich staatlicher finanzieller Unterstützung. Das sind wirklich saftige Verträge, damit die Hersteller nicht aussterben oder das Interesse verlieren. Tipp: Nicht nur die WC-Sitze sind teurer als ihr Gegenstück in massivem Gold.
@FreeMan Selbst wenn die Kosten für einen 68000 in Mil-Qualität eine "lächerlich hohe" Zahl von 10.000 US-Dollar pro Teil wären, wäre dies im Vergleich zu den Kosten für die Zertifizierung eines neueren Chipdesigns vernachlässigbar. Zum Beispiel würde selbst eine Stunde Flugtestzeit mehr als 10.000 Dollar kosten, nur um das Flugzeug zu fliegen, ohne die Kosten für die tatsächliche Überwachung des Verhaltens von irgendetwas im Inneren zu berücksichtigen.
... einige obligatorische Motorzertifizierungsverfahren haben Budgets in der Größenordnung von 20 oder 30 Millionen USD - und das Doppelte oder Dreifache, wenn die Tests beim ersten Mal nicht bestanden werden und erneut durchgeführt werden müssen. Diese Art von Geld würde eine Menge CPU-Chips bezahlen! Aber selbst 20 Mio. USD sind eine relativ kleine Zahl in einem kompletten "neuen Triebwerks"-Projekt mit einem Budget in der Größenordnung von 1 Mrd. USD.

Im Allgemeinen wird Software nicht falsch hergestellt. Wenn die Software erstellt (programmiert) wird, können Fehler wie von Ihnen beschrieben entweder durch fehlerhafte Implementierungen oder durch schlechte Spezifikationen eingeführt werden. Fehlerhafte Implementierungen werden durch Testen der Software erkannt. Das Testen nimmt viele Formen an; Unit-Tests sind eine der einfacheren Formen, bei denen einzelne Funktionen des zugrunde liegenden Programmiercodes getestet werden, um zu sehen, ob sie korrekt implementiert sind. Dies kann nach oben skaliert werden, wenn System- und Integrationstests durchgeführt werden, bei denen größere Teile der Software miteinander gekoppelt werden, um zu sehen, wie sie als Ganzes funktioniert. Aber das einfache Testen des Codes auf dieser Ebene erfasst nicht alles. Beim Schreiben eines Programms geht es selten darum, es dazu zu bringen, das zu tun, was Sie wollen, es geht hauptsächlich darum, mit all den seltsamen Grenzfällen und Fehlerszenarien umzugehen. Und hier versagt die meiste Software.

Um sich vor solchen Fällen zu schützen, können Sie Audits, Simulationen, statische Codeanalysen und viele andere Formen von Inspektionen und Tests durchführen.

Anders verhält es sich mit fehlerhaften Spezifikationen, bei denen Sie sich auf die Dokumentation verlassen müssen. In einer perfekten Welt muss jede Anforderung auf einer Ebene dokumentiert werden, in der beschrieben wird, warum die Anforderung existiert, und alle Eingaben und Ausgaben, die sich gegebenenfalls daraus ergeben sollten. Spezifikationen werden von mehreren Personen entwickelt, um zu verhindern, dass eine Person etwas vergisst oder falsch interpretiert, aber auch das erfasst nicht alles.

Um eine weitere Schutzebene gegen Softwarefehler hinzuzufügen, fügen Sie mehrere Instanzen des Systems hinzu, und Sie lassen auch ein Team seine eigene Version des Systems erstellen, vorzugsweise auf anderer Hardware. Sie können dann die Verantwortung bestimmter Subsysteme aufteilen und auf die verschiedenen Computer verteilen, auf denen das System ausgeführt wird, wodurch eine weitere Redundanzebene hinzugefügt und die Rechenlast auf jedem Computer sowie das Risiko verringert wird, dass Teile des Systems auf unvorhergesehene Weise interagieren .

The Fast Company hatte eine hervorragende Beschreibung des Prozesses des Schreibens von Software für das Space Shuttle. Obwohl es weder mit Airbus noch mit Boeing in direktem Zusammenhang steht, gibt es einen Einblick, wie der Prozess funktionierte und was daraus resultierte.

Die Software für das Space Shuttle war auch eines der teuersten Softwareprojekte aller Zeiten, gemessen an fast jeder messbaren Metrik. Es kann jedoch nicht geleugnet werden, dass es eine Qualität hervorgebracht hat, die die meisten Softwareprojekte niemals erreichen können (und das sage ich als Softwareentwickler selbst).
Ich kannte einen Typen, der an der Shuttle-Software arbeitete. Ich glaube nicht, dass er sich je ganz davon erholt hat...
@BobJarvis Ich bin neugierig - könnten Sie Details teilen?
Es gibt einen grundlegenden Unterschied zwischen Space Shuttle und Airbus. Space Shuttle hatte eine Implementierung der Software und eine Implementierung der Hardware, die sich auf eine sorgfältige Implementierung stützte und Failover nur für mechanische Ausfälle während des Betriebs verwendete. Auf der anderen Seite verwendet Airbus mehrere Implementierungen und verlässt sich auf Failover, um sowohl mechanische Fehler als auch Software- und Hardware-Designfehler zu behandeln.
@JanHudec: Tatsächlich hatte das Space Shuttle eine Implementierung der Hardware, aber zwei Implementierungen der Software (die primäre und die Backup-Flugsoftware, die von zwei separaten Teams basierend auf denselben Spezifikationen entwickelt wurden).

Primäre Systeme sollten identische Computer und Software haben, und dies ist bei vielen Computern von Luftfahrzeugsystemen der Fall. Die unabhängigen Backup-Systeme sollten jedoch je nach Architektur und Redundanzverwaltungsanforderungen und Sicherheitsschemata unterschiedliche Systeme und Software aufweisen. Abgesehen von Flugsteuerungen, die Unterschiede in der Hardware aufweisen, sind primäre Fluganzeigen für Piloten- und Kopilotenseiten für Fluggeschwindigkeit und Trägheitsnavigation häufig dreifach redundant, um die Lagefunktion beizubehalten. Diese verwenden korrekterweise identische 3-Navigationssystem-Computer, während das "Backup" zum Zweck der flugsicherheitskritischen Funktionen und des Determinismus unterschiedlich ist. Die Gesamtsystemarchitektur von parallel oder mehr (Triplex) muss unabhängige und redundante Systeme aufweisen, die die behördlichen und behördlichen Kriterien für Sicherheit und Lufttüchtigkeit sowie Zuverlässigkeit und Verfügbarkeit erfüllen. Im Allgemeinen erfordert das Vorhandensein identischer Computer für "Primärsysteme" ein eingehendes Testen der Fehlereinfügung der Kombination komplexer Interaktionen, um die Möglichkeit von Softwarefehlern und manchmal unbegründeten Befürchtungen zu minimieren, dass sich Fehler irgendwie in Latenz manifestieren. Korrektes Testen in allen Umgebungen ist der Schlüssel zum Erfolg Beseitigung von Mängeln, die potenzielle Gefahren und Risiken verursachen würden. Software-Sicherheitsmethoden werden empfohlen, um solche Probleme zu verhindern, zu beseitigen und zu kontrollieren, um sicherzustellen, dass die Sicherheits- und Lufttüchtigkeitsanforderungen erfüllt werden. Sicherheitsanalysen und unabhängige Überprüfungen sind in diesen Fällen mit Genehmigungen erforderlich.