-
EINLEITUNG
-
Die in diesem Abschnitt gegebenen Informationen dienen der allgemeinen Darstellung des Kontexts der Offenbarung. Arbeit der hier genannten Erfinder in dem Umfang, in dem sie in diesem Abschnitt beschrieben ist, sowie Aspekte der Beschreibung, die nicht auf andere Weise als Stand der Technik zum Zeitpunkt der Einreichung berechtigen können, sind weder explizit noch implizit als Stand der Technik gegenüber der vorliegenden Offenbarung anerkannt.
-
Die vorliegende Offenbarung betrifft allgemein Fahrzeugfehlerdiagnose- und Fahrzeugfehlerprognosesysteme und insbesondere die Fahrzeugfehlerdiagnose und die Fahrzeugfehlerprognose unter Verwendung automatischer Datensegmentierung und Datentrendverfolgung.
-
Ein Fahrzeugfunktionstüchtigkeits-Managementsystem umfasst ein Diagnosesystem, ein Prognosesystem und/oder ein Fehlerabschwächungssystem. Üblicherweise enthält das Diagnosesystem ein Borddiagnosemodul, das dem Fahrzeuginhaber unter Verwendung von Indikatoren auf dem Armaturenbrett des Fahrzeugs Fehler auf der Systemebene angibt. Außerdem enthält das Diagnosesystem eine fortgeschrittene Diagnose, die von Kundendienstpersonal verwendet wird, um eine ausführliche Fehlerdiagnose auszuführen, um die Grundursache eines Problems bis auf die Komponentenebene zu ermitteln. Üblicherweise vergleicht das Borddiagnosemodul einen Signalpegel eines Signals von einem Fahrzeugteilsystem mit einem vorgegebenen Schwellenwert und bestimmt es auf der Grundlage des Ergebnisses des Vergleichs, ob das Teilsystem fehlerhaft ist. Üblicherweise verwendet Kundendienstpersonal die fortgeschrittene Diagnose, die Signale von mehreren Komponenten des Teilsystems sowie von anderen zugehörigen Teilsystemen analysieren kann und die Grundursache eines Problems bis auf die Komponentenebene bestimmen kann.
-
Das Prognosesystem kann vorhersagen, welche Komponente in dem Fahrzeug in der nahen Zukunft ausfallen kann. Das Prognosesystem sagt einen Fehler vorher, bevor der Fehler auftritt. Das Prognosesystem kann dem Fahrzeuginhaber dabei helfen, einen Kundendienst zu planen, bevor die Komponente ausfällt. Auf diese Weise bleibt der Fahrzeuginhaber nicht stecken, wenn die Komponente ausfällt. Allerdings treten einige Fehler plötzlich auf und können nicht vorhergesagt werden. Das Fehlerabschwächungssystem bestimmt die Fahrzeugbetriebe, um die Auswirkung von Fehlern abzuschwächen. Zum Beispiel sind einige Fehler geringfügig und können abgeschwächt werden, um zu ermöglichen, dass das Fahrzeug eine bestimmte Zeit gefahren wird, bis der Fehler durch den Kundendienst des Fahrzeugs korrigiert wird.
-
ZUSAMMENFASSUNG
-
Ein System umfasst mehrere Sensoren, die mehreren Teilsystemen eines Fahrzeugs zugeordnet sind, und einen Controller, der dafür konfiguriert ist, mit den mehreren Teilsystemen des Fahrzeugs zu kommunizieren. Der Controller ist zum Verarbeiten von Daten, die von einem oder mehreren Sensoren eines der Teilsysteme des Fahrzeugs empfangen werden, konfiguriert. Das Verarbeiten enthält das Glätten der Daten und das Berechnen eines Mittelwerts der Daten. Der Controller ist zum Identifizieren eines Übergangspunkts in den verarbeiteten Daten, an dem ein Gleitmittelwert der Daten um einen vorgegebenen Betrag, der einen Aufwärtstrend angibt, kleiner als der Mittelwert ist oder an dem der Gleitmittelwert um den vorgegebenen Betrag, der einen Abwärtstrend angibt, größer als der Mittelwert ist, konfiguriert. Der Controller ist zum Auswählen eines Segments der verarbeiteten Daten nach dem Übergangspunkt; zum Detektieren eines Trends in dem Segment der verarbeiteten Daten nach dem Übergangspunkt unter Verwendung einer Regression, wobei der Trend den Aufwärtstrend oder den Abwärtstrend enthält; und zum Extrapolieren des detektierten Trends, damit er einen vorgegebenen Fehlerschwellenwert erreicht, konfiguriert. Der Controller ist zum Vorhersagen eines Fehlers des einen der Teilsysteme auf der Grundlage eines Anstiegs des extrapolierten Trends und zum Bereitstellen einer Angabe der Vorhersage auf der Grundlage des Anstiegs des extrapolierten Trends, um für das eine der Teilsysteme einen Kundendienst zu planen, konfiguriert.
-
Gemäß anderen Merkmalen ist der Controller ferner dafür konfiguriert, unter Verwendung des detektierten Trends einen Fehler in einem der Teilsysteme genau zu diagnostizieren, einen Steuerparameter des Fahrzeugs zu ändern, um die Fahrzeugsicherheit zu verbessern, und/oder die Lebensdauer einer Komponente des einen der Teilsysteme zu verlängern, bevor die Komponente ausfällt.
-
Gemäß anderen Merkmalen ist der Controller ferner zum Detektieren eines zweiten Trends in zweiten Daten, die von dem einen oder den mehreren Sensoren eines der Teilsysteme nach dem Kundendienst erhoben werden; und zum Bewerten des Kundendiensts auf der Grundlage dessen, ob ein zweiter Anstieg des zweiten Trends größer als ein zweiter Schwellenwert ist und/oder ob die zweiten Daten innerhalb eines vorgegebenen Bereichs liegen, konfiguriert.
-
Gemäß anderen Merkmalen enthalten die empfangenen Daten erste und zweite Daten für einen ersten bzw. einen zweiten Parameter des einen der Teilsysteme. Ferner ist der Controller zum Bestimmen, ob ein Alarm über einen Zustand des einen der Teilsysteme erzeugt werden soll, auf der Grundlage dessen, ob die ersten Daten für den ersten Parameter einen ersten Schwellenwert überschritten haben; und zum Detektieren des Trends unter Verwendung der zweiten Daten für den zweiten Parameter konfiguriert. Der zweite Parameter ist von dem ersten Parameter verschieden.
-
Gemäß einem anderen Merkmal ist der Controller dafür konfiguriert, die Angabe der Vorhersage in Ansprechen darauf bereitzustellen, dass der Anstieg des extrapolierten Trends größer als ein erster vorgegebener Schwellenwert ist.
-
Gemäß anderen Merkmalen ist der Controller zum Schätzen einer Betriebslebensdauer des einen der Teilsysteme auf der Grundlage des Anstiegs des extrapolierten Trends; und zum Bereitstellen der Angabe der Vorhersage auf der Grundlage der Schätzung konfiguriert.
-
Gemäß einem anderen Merkmal ist der Controller dafür konfiguriert, einen Typ der Regression in Abhängigkeit von einem Typ eines Parameters des einen der Teilsysteme, für den die Daten empfangen werden, auszuwählen.
-
Gemäß einem anderen Merkmal ist der Controller dafür konfiguriert, den Trend durch Ausschließen von Daten vor dem Übergangspunkt zu detektieren.
-
Gemäß anderen Merkmalen befindet sich der Controller in einer Computervorrichtung fern von dem Fahrzeug und enthält die Computervorrichtung eine mobile Vorrichtung, ein Kundendiensthilfsmittel oder einen Server in einer Cloud.
-
Gemäß nochmals anderen Merkmalen umfasst ein System einen Prozessor und einen Speicher, der Anweisungen speichert, die, wenn sie durch den Prozessor ausgeführt werden, den Prozessor zum Verarbeiten von Daten konfigurieren, die von einem Sensor eines Teilsystems eines Fahrzeugs empfangen werden, wobei das Verarbeiten das Glätten der Daten und das Berechnen eines Mittelwerts der Daten enthält. Die Anweisungen konfigurieren den Prozessor zum Identifizieren eines Übergangspunkts in den verarbeiteten Daten, an dem ein Gleitmittelwert der Daten um einen vorgegebenen Betrag, der einen Aufwärtstrend angibt, kleiner als der Mittelwert ist oder an dem der Gleitmittelwert um den vorgegebenen Betrag, der einen Abwärtstrend angibt, größer als der Mittelwert ist. Die Anweisungen konfigurieren den Prozessor zum Auswählen eines Segments der verarbeiteten Daten nach dem Übergangspunkt; zum Detektieren eines Trends in dem Segment unter Verwendung einer Regression, wobei der Trend den Aufwärtstrend oder den Abwärtstrend enthält; und zum Extrapolieren des detektierten Trends, damit er einen vorgegebenen Fehlerschwellenwert erreicht. Die Anweisungen konfigurieren den Prozessor zum Vorhersagen eines Fehlers des Teilsystems auf der Grundlage eines Anstiegs des extrapolierten Trends; und zum Bereitstellen einer Angabe der Vorhersage auf der Grundlage des Anstiegs des extrapolierten Trends, um für das Teilsystem einen Kundendienst zu planen.
-
Gemäß anderen Merkmalen konfigurieren die Anweisungen den Prozessor ferner dafür, unter Verwendung des detektierten Trends einen Fehler in dem Teilsystem genau zu diagnostizieren, einen Steuerparameter des Fahrzeugs zu ändern, um die Fahrzeugsicherheit zu verbessern, und/oder die Lebensdauer einer Komponente des Teilsystems zu verlängern, bevor die Komponente ausfällt.
-
Gemäß anderen Merkmalen konfigurieren die Anweisungen den Prozessor ferner zum Detektieren eines zweiten Trends in zweiten Daten, die von dem einen oder den mehreren Sensoren des Teilsystems nach dem Kundendienst erhoben werden; und zum Bewerten des Kundendiensts auf der Grundlage dessen, ob ein zweiter Anstieg des zweiten Trends größer als ein zweiter Schwellenwert ist und/oder ob die zweiten Daten innerhalb eines vorgegebenen Bereichs liegen.
-
Gemäß anderen Merkmalen enthalten die empfangenen Daten erste und zweite Daten für einen ersten bzw. einen zweiten Parameter des Teilsystems. Ferner konfigurieren die Anweisungen den Prozessor zum Bestimmen, ob ein Alarm über einen Zustand des Teilsystems erzeugt werden soll, auf der Grundlage dessen, ob die ersten Daten für den ersten Parameter einen ersten Schwellenwert überschritten haben; und zum Detektieren des Trends unter Verwendung der zweiten Daten für den zweiten Parameter. Der zweite Parameter ist von dem ersten Parameter verschieden.
-
Gemäß einem anderen Merkmal konfigurieren die Anweisungen den Prozessor ferner dafür, die Angabe der Vorhersage in Ansprechen darauf bereitzustellen, dass der Anstieg des extrapolierten Trends größer als ein erster vorgegebener Schwellenwert ist.
-
Gemäß anderen Merkmalen konfigurieren die Anweisungen den Prozessor ferner zum Schätzen einer Betriebslebensdauer des Teilsystems auf der Grundlage des Anstiegs des extrapolierten Trends; und zum Bereitstellen der Angabe der Vorhersage auf der Grundlage der Schätzung.
-
Gemäß einem anderen Merkmal konfigurieren die Anweisungen den Prozessor ferner dafür, einen Typ der Regression in Abhängigkeit von einem Typ eines Parameters des Teilsystems, für den die Daten empfangen werden, auszuwählen.
-
Gemäß einem anderen Merkmal konfigurieren die Anweisungen den Prozessor ferner dafür, den Trend durch Ausschließen von Daten vor dem Übergangspunkt zu detektieren.
-
Gemäß einem anderen Merkmal umfasst eine Computervorrichtung ein System nach Anspruch 10. Die Computervorrichtung befindet sich fern von dem Fahrzeug und enthält eine mobile Vorrichtung, ein Kundendiensthilfsmittel oder einen Server in einer Cloud.
-
Gemäß nochmals anderen Merkmalen umfasst ein Verfahren das Verarbeiten von Daten, die von einem Sensor eines Teilsystems eines Fahrzeugs empfangen werden, wobei das Verarbeiten das Glätten der Daten und das Berechnen eines Mittelwerts der Daten enthält. Das Verfahren umfasst das Identifizieren eines Übergangspunkts in den verarbeiteten Daten, an dem ein Gleitmittelwert der Daten um einen vorgegebenen Betrag, der einen Aufwärtstrend angibt, kleiner als der Mittelwert ist oder an dem der Gleitmittelwert um den vorgegebenen Betrag, der einen Abwärtstrend angibt, größer als der Mittelwert ist. Das Verfahren umfasst das Auswählen eines Segments der verarbeiteten Daten nach dem Übergangspunkt; das Detektieren eines Trends in dem Segment unter Verwendung einer Regression, wobei der Trend den Aufwärtstrend oder den Abwärtstrend enthält; und das Extrapolieren des detektierten Trends, damit er einen vorgegebenen Fehlerschwellenwert erreicht. Das Verfahren umfasst das Vorhersagen eines Fehlers des Teilsystems auf der Grundlage eines Anstiegs des extrapolierten Trends; und das Bereitstellen einer Angabe der Vorhersage auf der Grundlage des Anstiegs des extrapolierten Trends, um für das Teilsystem einen Kundendienst zu planen. Das Verfahren umfasst das Verwenden des detektierten Trends, um einen Fehler in dem Teilsystem genau zu diagnostizieren, einen Steuerparameter des Fahrzeugs zu ändern, um die Fahrzeugsicherheit zu verbessern, und/oder die Lebensdauer einer Komponente des Teilsystems zu verlängern, bevor die Komponente ausfällt.
-
Gemäß anderen Merkmalen umfasst das Verfahren ferner das Detektieren eines zweiten Trends in zweiten Daten, die von dem einen oder den mehreren Sensoren des Teilsystems nach dem Kundendienst erhoben werden; und das Bewerten des Kundendiensts auf der Grundlage dessen, ob ein zweiter Anstieg des zweiten Trends größer als ein zweiter Schwellenwert ist und/oder ob die zweiten Daten innerhalb eines vorgegebenen Bereichs liegen.
-
Weitere Bereiche der Anwendbarkeit der vorliegenden Offenbarung gehen aus der ausführlichen Beschreibung, aus den Ansprüchen und aus den Zeichnungen hervor. Die ausführliche Beschreibung und spezifische Beispiele sind nur zur Veranschaulichung bestimmt und sollen den Schutzumfang der Offenbarung nicht einschränken.
-
Figurenliste
-
Die vorliegende Offenbarung wird umfassender verständlich aus der ausführlichen Beschreibung und aus den beigefügten Zeichnungen; es zeigen:
- 1A-1 C ein Beispiel eines Systems für die Fahrzeugfehlerdiagnose und Fahrzeugfehlerprognose unter Verwendung automatischer Datensegmentierung und Datentrendverfolgung gemäß der vorliegenden Offenbarung;
- 2A und 2B normierte Daten von einem Teilsystem des Fahrzeugs, die gegen die Zeit aufgetragen sind, um die Fehlerdiagnose und Fehlerprognose zu veranschaulichen, die unter Verwendung der automatisierten Datensegmentierung und Datentrendverfolgung gemäß der vorliegenden Offenbarung ausgeführt wird;
- 2C ein Beispiel der Validierung einer Reparatur, die an einem Teilsystem des Fahrzeugs unter Verwendung normierter Daten von dem Teilsystem, die gegen die Zeit aufgetragen sind, gemäß der vorliegenden Offenbarung ausgeführt wird;
- 3A und 3B ein Verfahren für die Fehlerdiagnose und Fehlerprognose unter Verwendung automatischer Datensegmentierung und Datentrendverfolgung gemäß der vorliegenden Offenbarung; und
- 3C ein Verfahren zur Validierung einer Reparatur, die an einem Teilsystem des Fahrzeugs gemäß der vorliegenden Offenbarung ausgeführt wird.
-
In den Zeichnungen können Bezugszeichen zur Identifizierung ähnlicher und/oder gleicher Elemente mehrfach verwendet sein.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Diagnose- und Prognosesysteme erzeugen üblicherweise Alarme, falls Fehlersignaturen im Voraus definierte Schwellenwerte übersteigen. Diese Systeme können die Alarme nicht erzeugen, falls die Fehlersignaturen die im Voraus definierten Schwellenwerte nicht übersteigen. Häufig können die Fehlersignaturen die im Voraus definierten Schwellenwerte nicht übersteigen, wenn sich Teilsysteme, die überwacht werden, schnell verschlechtern oder wenn Daten von den Teilsystemen unmittelbar, bevor ein Fehler/eine Reparatur bevorsteht, nicht erhoben werden. Zum Beispiel können die neuesten Daten wegen eines Kommunikationsfehlers nicht für die Analyse verfügbar sein, falls die Verarbeitung in einem Server in einer Cloud anstelle an Bord des Fahrzeugs ausgeführt wird. Die Fehlerdiagnose unter Verwendung historischer Daten stellt außerdem andere Herausforderungen. Zum Beispiel können Reparaturen nicht unter Verwendung der historischen Daten genau bewertet oder validiert werden, was problematisch sein kann, wenn die Reparaturen OEM-Komponenten mit Gewährleistungsansprüchen umfassen.
-
Um die obigen Probleme zu lösen, schafft die vorliegende Offenbarung ein verbessertes Fehlerdiagnose- und Fehlerprognosesystem, das für Situationen, die eine schnelle Teilsystemverschlechterung oder das Fehlen von Daten enthalten, eine Vorgehensweise der automatischen Datensegmentierung und Datentrendverfolgung verwendet. Das System segmentiert die Daten automatisch und bestimmt einen Punkt, an dem sich die Daten von normal zu anomal ändern (d. h. ein Problem angeben). Das System verwendet die Daten nach dem Änderungspunkt, um einen Trend zu bestimmen. Das System extrapoliert den Trend, um einen Fehler zusammen mit anderen Fehlersignaturen vorherzusagen.
-
Genauer verwendet das System der vorliegenden Offenbarung die Gleitmittelwertbildung, um erhobene Daten zu glätten, bevor eine Trendanalyse ausgeführt wird. Das System verwendet eine Datensegmentierungsvorgehensweise, um den Änderungspunkt zu bestimmen. Das System verwendet eine Regression, um den Trend zu bestimmen. Das System verwendet eine Extrapolation, um die Strenge des Trends zu detektieren. Das System führt unter Verwendung des detektierten Trends und anderer Fehlersignaturen eine Fehlerisolation aus. Außerdem kann das System Reparaturen validieren. Dementsprechend ist das System der vorliegenden Offenbarung robuster als das vorhandenen Fehlerdiagnose- und Fehlerprognosesystem für Fahrzeuge und verbessert es dieses wesentlich. Diese und weitere Merkmale der vorliegenden Offenbarung sind im Folgenden ausführlich beschrieben.
-
1A-1 C zeigen ein Beispiel eines Systems 100 für die Fahrzeugfehlerdiagnose und Fahrzeugfehlerprognose unter Verwendung automatischer Datensegmentierung und Datentrendverfolgung gemäß der vorliegenden Offenbarung. Das System 100 in 1A umfasst einen Controller 102, der mit mehreren Teilsystemen 104-1, 104-2, ... und 104-N (zusammen die Teilsysteme 104) eines Fahrzeugs kommuniziert. Die Teilsysteme 104 können z. B. ein Kraftmaschinenteilsystem, ein Getriebeteilsystem, ein Abgasteilsystem, ein Bremsungsteilsystem, ein Aufhängungsteilsystem, ein Batterieteilsystem, ein HVAC-Teilsystem, ein Navigationsteilsystem, ein autonomes Teilsystem usw. enthalten.
-
1 B zeigt, dass allgemein jedes der Teilsysteme 104 umfassend einen oder mehrere Sensoren 120, einen oder mehrere Aktuatoren 122 und einen Prozessor 124 umfassen kann. Der Prozessor 124 empfängt Daten von dem einen oder den mehreren Sensoren 120 und steuert den einen oder die mehreren Aktuatoren 122. Außerdem kann der Prozessor 124 Daten von einem oder mehreren der anderen Teilsysteme 104 empfangen und kann er auf der Grundlage der Daten wenigstens einen der Sensoren 120 und der Aktuatoren 124 steuern.
-
In 1A kommuniziert der Controller 102 außerdem mit einem Infotainmentteilsystem 106 und mit einem Kommunikationsteilsystem 108 des Fahrzeugs. Das Infotainmentteilsystem 106 kann z. B. verwendet werden, um für einen oder mehrere Insassen des Fahrzeugs Audio-, Video- und/oder Tastalarme bereitzustellen. Das Kommunikationsteilsystem 108 umfasst z. B. einen oder mehrere Senderempfänger, die mit einem in 1C gezeigten verteilten Kommunikationssystem 110 kommunizieren. Das verteilte Kommunikationssystem 110 kann z. B. ein zellulares Netz, ein WiFi-Netz, ein Satellitennetz und/oder das Internet enthalten. Dementsprechend kann der Controller 102 über das Kommunikationsteilsystem 108 des Fahrzeugs und über das verteilte Kommunikationssystem 110 mit einem Server 112 (in 1C gezeigt) in einer Cloud kommunizieren.
-
1C zeigt, dass das Kommunikationsteilsystem 108 außerdem mit einem Kundendiensthilfsmittel 114 kommunizieren kann, das von Kundendiensttechnikern zum Prüfen und zur Fehlerbehebung des Teilsystems 104 verwendet wird. Das Kundendiensthilfsmittel 114 kann über das Kommunikationsteilsystem 108 auf das Teilsystem 104 des Fahrzeugs zugreifen. Gemäß einigen Beispielen kann das Kundendiensthilfsmittel 114 direkt an den (im Folgenden beschriebenen) CAN-Bus des Fahrzeugs angeschlossen werden und Daten wie etwa Diagnoseprüfcodes und andere in dem Controller 102 gesicherte Prüfergebnisse erhalten. Außerdem kann das Kommunikationsteilsystem 108 mit einer mobilen Vorrichtung 116 wie etwa einem Mobiltelefon kommunizieren. Die mobile Vorrichtung 116 kann z. B. allgemein nur über eine Bluetooth-Schnittstelle auf das Infotainment-Teilsystem 106 des Fahrzeugs zugreifen. Außerdem kann die mobile Vorrichtung 116 über einen Dongle (nicht gezeigt) auf andere sichere Teilsysteme und auf die Borddiagnostik des Fahrzeugs zugreifen. Außerdem können das Kundendiensthilfsmittel 114 und die mobile Vorrichtung 116 über das verteilte Kommunikationssystem 110 mit dem Server 112 kommunizieren. Dementsprechend kann das Fehlerdiagnose- und Fehlerprognosesystem der vorliegenden Offenbarung ebenfalls wenigstens teilweise in dem Server 112, in dem Kundendiensthilfsmittel 114 und/oder in der mobilen Vorrichtung 116 implementiert sein.
-
Der Controller 102, die Teilsysteme 104, das Infotainmentteilsystem 106 und das Kommunikationsteilsystem 108 sind durch ein Control Area Network (CAN-Bus) in dem Fahrzeug miteinander verbunden und kommunizieren über den CAN-Bus miteinander. Der Controller 102 ist dafür konfiguriert, die in 3A-3C gezeigten Verfahren auszuführen. Die in 3A-3C gezeigten Verfahren können ebenfalls durch den Server 112, durch das Kundendiensthilfsmittel 114 und/oder durch die mobile Vorrichtung 116 ausgeführt werden, nachdem die erforderlichen Daten an sie übertragen worden sind. Der Betrieb des Controllers 102 ist anhand von 2A-3C ausführlich beschrieben. Überall in der vorliegenden Offenbarung ist das Batterieteilsystem, das eine Batterie und einen Starter umfasst, nur als ein veranschaulichendes Beispiel verwendet, um verschiedene Betriebe des Fehlerdiagnose- und Fehlerprognosesystems der vorliegenden Offenbarung zu beschreiben. Die Lehren der vorliegenden Offenbarung sind auf irgendein Teilsystem des Fahrzeugs anwendbar.
-
2A und 2B zeigen ein Beispiel der Fehlerdiagnose und Fehlerprognose eines Batterieteilsystems (z. B. eines der Teilsysteme 104), die unter Verwendung automatischer Datensegmentierung und Datentrendverfolgung (z. B. durch den Controller 102) gemäß der vorliegenden Offenbarung ausgeführt werden. 2C zeigt ein Beispiel der Validierung einer Reparatur gemäß der vorliegenden Offenbarung. Nur beispielhaft zeigen 2A-2C Graphen normierter Daten, die von einem oder mehreren Sensoren (z. B. von den Sensoren 120) des Batterieteilsystems erhoben werden, aufgetragen gegen die Zeit auf der X-Achse.
-
Üblicherweise wird in 2A der gesamte Datensatz, der über eine verhältnismäßig lange Zeitdauer (z. B. viele Tage) erhoben wird, für die Kurvenanpassung verwendet, die zum Detektieren von Fehlern verwendet wird. Eine angepasste Kurve 200 wird üblicherweise unter Verwendung des gesamten Datensatzes erhalten, der über die verhältnismäßig lange Zeitdauer erhoben wird. Allerdings kann die Verwendung des gesamten Datensatzes für die Kurvenanpassung einen Fehler nicht genau vorhersagen. Wenn die angepasste Kurve 200 extrapoliert wird, kann eine extrapolierte Kurve 202 einen Fehlerschwellenwert 204 nicht erreichen und kann sie somit einen Fehler nicht erfolgreich detektieren.
-
Stattdessen kann in 2B ein Segment 205 des Datensatzes, das gemäß der vorliegenden Offenbarung ausgewählt wird (im Folgenden anhand von 3A und 3B ausführlich gezeigt und erläutert), einen Fehlertrend genauer angeben. In 2A wird eine angepasste Kurve 206 durch Kurvenanpassung der Daten von dem ausgewählten Segment 205 des Datensatzes erhalten. Wenn die angepasste Kurve 206 extrapoliert wird, kann eine extrapolierte Kurve 208 den Fehlerschwellenwert 204 erreichen und kann sie somit den Fehler erfolgreich vorhersagen. Wie im Folgenden ausführlich erläutert wird, kann ferner unter Verwendung der extrapolierten Kurve 208 außerdem eine verbleibende Lebensdauer L der fehlerhaften Komponente (d. h. eine Zeitdauer zwischen den Punkten 210 und 212) vorhergesagt werden.
-
Darüber hinaus kann nach einer bei 212 ausgeführten Reparatur eine plötzliche Umkehr des Trends, wie sie bei 214 zu sehen ist, gefolgt davon, dass der Datenwert unter einer Basislinie 216 ist, die Reparatur als erfolgreich und notwendig validieren. Im Gegensatz dazu würde eine langsame Umkehr des Trends angeben, dass die Reparatur nicht erfolgreich und/oder unnötig war (z. B., dass stattdessen eine andere Komponente repariert/ersetzt werden muss). Wie in 2C gezeigt ist, können die Daten angeben, dass die Reparatur erfolgreich und notwendig war, falls die nach der Reparatur erhobenen Daten innerhalb empirisch bestimmter oberer und unterer Fehlerschwellenwerte 204, 203 (d. h. innerhalb eines normalen Bereichs) liegen. Die Verfahren, die durch den Controller 102 verwendet werden, um diese Betriebe auszuführen, sind nun ausführlich beschrieben.
-
3A und 3B zeigen ein Verfahren 300 für die Fahrzeugfehlerdiagnose und Fahrzeugfehlerprognose unter Verwendung der automatischen Datensegmentierung und Datentrendverfolgung gemäß der vorliegenden Offenbarung. 3C zeigt ein Verfahren 370 zur Validierung einer Reparatur gemäß der vorliegenden Offenbarung. Überall in der folgenden Beschreibung ist wieder das Batterieteilsystem nur als ein Beispiel verwendet; außerdem können die folgenden Lehren auf irgendeines der Teilsysteme 104 angewendet werden. Ferner bezieht sich der Begriff Steuerung in der folgenden Beschreibung auf den Controller 102.
-
Wenn das Fahrzeug in 3A bei 302 angelassen wird, erhebt die Steuerung von den dem Batterieteilsystem zugeordneten Sensoren aktuelle Anlassdaten. Die Anlassdaten können z. B. den Batteriewiderstand, den Starterwiderstand, die Anlasszeit, die Leerlaufspannung der Batterie und den Ladewiderstand der Batterie enthalten. Allgemein erhebt die Steuerung unter Verwendung eines oder mehrerer Sensoren (z. B. der Sensoren 120) des Teilsystems aktuelle Werte eines oder mehrerer Parameter eines Teilsystems (z. B. eines der Teilsysteme 104) des Fahrzeugs.
-
Bei 304 liest die Steuerung aus dem Speicher historische Anlassdaten (allgemein historische Daten der Parameter) aus und vereinigt sie alle die Daten. Der Speicher kann sich z. B. in dem Teilsystem, in einem anderen Teilsystem des Fahrzeugs, in dem Controller 102 oder in dem Server 112 in der Cloud befinden.
-
Bei 306 bestimmt die Steuerung, ob die Anlasszeit oder der Ladewiderstand von den aktuellen Anlassdaten (allgemein ein aktueller Wert eines der Parameter) größer als ein vorgegebener Schwellenwert ist. Alternativ kann die Steuerung in Abhängigkeit von dem Typ des Parameters stattdessen bestimmen, ob der aktuelle Wert des Parameters kleiner als ein vorgegebener Schwellenwert ist. Im Wesentlichen bestimmt die Steuerung, ob der aktuelle Wert des Parameters einen oberen oder einen unteren Grenzwert überschritten hat.
-
Falls die aktuelle Anlasszeit oder der Ladewiderstand nicht größer als der vorgegebene Schwellenwert ist (allgemein, falls der aktuelle Wert des Parameters einen oberen oder einen unteren Grenzwert nicht überschritten hat), bestimmt die Steuerung bei 322, dass das Teilsystem normal arbeitet, und erzeugt die Steuerung keinen Alarm. Da das Anlassen kein andauernder Betrieb ist (d. h., da das Anlassen während des normalen Betriebs des Fahrzeugs nicht wiederholt ausgeführt wird), endet die Steuerung. Im Fall eines anderen Teilsystems kann die Steuerung zu 302 zurückkehren und weiter Parameterdaten des Teilsystems erheben, anstatt zu enden, falls die Steuerung den Betrieb des Teilsystems weiter überwachen kann.
-
Bei 307 bestimmt die Steuerung, ob das Anlassverhältnis größer oder kleiner als ein Schwellenwert ist. Falls das Anlassverhältnis bei 308 größer oder kleiner als ein Schwellenwert ist, erzeugt die Steuerung einen Batterie/Starter-Alarm. Falls das Anlassverhältnis nicht größer oder kleiner als ein Schwellenwert ist, geht die Steuerung zu 308 über, um die Trendverfolgungsvorgehensweise zu verwenden.
-
Falls die aktuelle Anlasszeit oder der Ladewiderstand bei 309 größer als der vorgegebene Schwellenwert ist (allgemein, falls der aktuelle Wert des Parameters einen oberen oder einen unteren Grenzwert überschritten hat), segmentiert die Steuerung die Daten, wie im Folgenden anhand von 3B ausführlich erläutert wird. Wie im Folgenden anhand von 3B ausführlich erläutert wird, detektiert die Steuerung einen Änderungspunkt für den Batteriewiderstand und für den Starterwiderstand (oder für das Anlassverhältnis, das ein Verhältnis des Batteriewiderstands zu dem Starterwiderstand ist). Es wird angemerkt, dass die Steuerung, wie im Folgenden beschrieben wird, bei 306 einen Satz von Parametern (z. B. die Anlasszeit und den Ladewiderstand) eines Teilsystems verwenden kann und einen anderen (z. B. verschiedenen) Satz von Parametern (z. B. das Anlassverhältnis) verwenden kann, um eine Trendanalyse auszuführen.
-
Bei 310 bestimmt die Steuerung für die Daten von dem Änderungspunkt bis zu dem aktuellen Punkt (d. h. bis zu dem Zeitpunkt, an dem die aktuellen Daten bei 302 erhoben werden) unter Verwendung von Kurvenanpassung und Kurvenregression einen Trend in dem ausgewählten Segment der Daten. Zum Beispiel kann in Abhängigkeit von dem Parameter, der beobachtet wird, ein linearer oder irgendein anderer Typ einer Regression (z. B. Polynomial- oder Exponentialregression oder Regression auf der Grundlage von maschinellem Lernen, z. B. Gaußsche Regression) ausgewählt werden.
-
Bei 312 extrapoliert die Steuerung den Trend, bis der Trend einen vorgegebenen Fehlerschwellenwert (z. B. den Fehlerschwellenwert 204) erreicht. Außerdem schätzt die Steuerung die verbleibende Lebensdauer L (die oben anhand von 2A beschrieben ist) der Komponente des Teilsystems (z. B. im Fall des Batterieteilsystems der Batterie und des Starters), nach der die Komponente des Teilsystems ausfallen wird.
-
Bei 314 bestimmt die Steuerung, ob die geschätzte Lebensdauer für die Batterie (auf der Grundlage des Batteriewiderstands geschätzt) kleiner als ein Schwellenwert (z. B. 3 Tage) ist und ob das Anlassverhältnis einen Aufwärtstrend (d. h. allgemein einen Anstieg des Trends) aufweist. Falls die geschätzte Lebensdauer für die Batterie kleiner als der Schwellenwert ist und falls das Anlassverhältnis einen Aufwärtstrend aufweist, erzeugt die Steuerung bei 316 einen Alarm für die Batterie. Zum Beispiel informiert die Steuerung den Insassen über das Infotainment-Teilsystem 106, dass die Batterie innerhalb der geschätzten Lebensdauer ausfallen wird und dass ein Kundendienst für die Batterie geplant werden sollte. Da das Anlassen kein andauernder Betrieb ist, endet die Steuerung wieder. Falls die Steuerung im Fall eines anderen Teilsystems den Betrieb des Teilsystems weiter überwachen kann, kann die Steuerung zu 302 zurückkehren und weiter Parameterdaten des Teilsystems erheben, anstatt zu enden.
-
Falls die geschätzte Lebensdauer für die Batterie nicht kleiner als der Schwellenwert ist und falls das Anlassverhältnis keinen Aufwärtstrend aufweist, bestimmt die Steuerung bei 318, ob die geschätzte Lebensdauer für den Starter (auf der Grundlage des Starterwiderstands geschätzt) kleiner als ein Schwellenwert (z. B. 3 Tage) ist und ob das Anlassverhältnis einen Abwärtstrend (d. h. allgemein einen Anstieg des Trends) aufweist und ob das Anlassverhältnis größer als ein Schwellenwert ist.
-
Falls die geschätzte Lebensdauer für den Starter nicht kleiner als der Schwellenwert ist und falls das Anlassverhältnis keinen Abwärtstrend aufweist und falls die Anlasszeit nicht größer als der Schwellenwert ist, erzeugt die Steuerung bei 322 keinen Alarm für den Starter. Da das Anlassen kein andauernder Betrieb ist, endet die Steuerung wieder. Falls die Steuerung im Fall eines anderen Teilsystems den Betrieb des Teilsystems weiter überwachen kann, kann die Steuerung zu 302 zurückkehren und weiter Parameterdaten des Teilsystems erheben, anstatt zu enden.
-
Falls die geschätzte Lebensdauer für den Starter kleiner als der Schwellenwert ist und falls das Anlassverhältnis einen Abwärtstrend aufweist und falls die Anlasszeit größer als der Schwellenwert ist, erzeugt die Steuerung bei 320 einen Alarm für den Starter. Zum Beispiel informiert die Steuerung den Insassen über das Infotainment-Teilsystem 106, dass der Starter innerhalb der geschätzten Lebensdauer ausfallen wird und dass ein Kundendienst für den Starter geplant werden sollte. Da das Anlassen kein andauernder Betrieb ist, endet die Steuerung wieder. Im Fall eines anderen Teilsystems kann die Steuerung zu 302 zurückkehren und weiter Parameterdaten des Teilsystems erheben, anstatt zu enden, falls die Steuerung den Betrieb des Teilsystems weiter überwachen kann.
-
3B zeigt den Datensegmentierungsschritt 309 des Verfahrens 300 in weiteren Einzelheiten. Bei 350 glättet die Steuerung die historischen Daten unter Verwendung eines Gleitmittelwerts oder anderer Gleitalgorithmen. Zum Beispiel ist in 2B bei 360 die Gleitmittelwertkurve gezeigt. Bei 352 berechnet die Steuerung einen Mittelwert der geglätteten (d. h. gemittelten) historischen Daten. Der Mittelwert ist z. B. in 2B bei 362 gezeigt.
-
Bei 354 identifiziert die Steuerung einen Änderungspunkt (oder einen Übergangspunkt) 364 in den Daten, an dem der Gleitmittelwert um einen vorgegebenen Betrag kleiner als der Mittelwert ist. Die nachfolgenden Daten, die später in der Zeit als der Änderungspunkt 364 sind, repräsentieren in dem Datensatz einen Aufwärtstrend. Alternativ kann der Änderungspunkt 364 in einem anderen Beispiel in Abhängigkeit von dem Teilsystem und von dem Parameter des Teilsystems, der beobachtet wird, dort sein, wo der Gleitmittelwert um einen vorgegebenen Betrag größer als der Mittelwert ist, und können die nachfolgenden Daten, die später in der Zeit als der Änderungspunkt 364 sind, einen Abwärtstrend in dem Datensatz repräsentieren. Bei 354 kehrt die Steuerung zu Schritt 310 des in 3A gezeigten Verfahrens 300 zurück.
-
Dementsprechend detektiert das Verfahren 300 den Trend auf der Grundlage der fehlerhaften Daten nach dem Änderungspunkt 364 und ohne Verwendung der funktionstüchtigen [engl.: „healthy“] historischen Daten vor dem Änderungspunkt 364. Somit kann der Trend, der nur auf der Grundlage der fehlerhaften Daten (d. h. ausschließlich der funktionstüchtigen Daten) bestimmt wird, anders als bei dem Trend, der auf der Grundlage des gesamten Datensatzes (d. h. einschließlich der funktionstüchtigen und fehlerhaften Daten) bestimmt wird, den Fehler der Extrapolation richtig vorhersagen.
-
Es wird angemerkt, dass die Trendinformationen für viele andere Zwecke verwendet werden können. Zum Beispiel kann der Controller 102 das Detektierte zum genauen Diagnostizieren eines Fehlers in dem Teilsystem 104 verwenden. Der Controller 102 kann einen Steuerparameter des Fahrzeugs (z. B. einen Parameter des autonomen Teilsystems) ändern, um die Fahrzeugsicherheit zu verbessern. Außerdem kann unter Verwendung des detektierten Trends (z. B. durch Beschränken der Verwendung der Komponente, Schalten zu einem Ersatzteil, falls verfügbar, usw.) die Lebensdauer einer Komponente des Teilsystems 104 verlängert werden, bevor die Komponente ausfällt.
-
3C zeigt ein Verfahren 370 zum Validieren einer Reparatur gemäß der vorliegenden Offenbarung. Das Verfahren 370 kann ausgeführt werden, nachdem an einem Teilsystem eine durch das Verfahren 300 (z. B. bei 316 oder 320) empfohlene Reparatur ausgeführt worden ist. Bei 372 erhebt die Steuerung Daten von einem oder mehreren dem Teilsystem zugeordneten Sensoren. Zum Beispiel erhebt die Steuerung von den dem Batterieteilsystem zugeordneten Sensoren Anlassdaten. Allgemein erhebt die Steuerung unter Verwendung eines oder mehrerer Sensoren (z. B. der Sensoren 120) des Teilsystems einen oder mehrere Parameter des Teilsystems (z. B. eines der Teilsysteme 104) des Fahrzeugs. Die Steuerung vergleicht die nach der Reparatur erhobenen Daten mit dem oberen und mit dem unteren Fehlerschwellenwert (z. B. mit den in 2C gezeigten Schwellenwerten 204, 203).
-
Bei 374 bestimmt die Steuerung, ob die Daten innerhalb des oberen und des unteren Fehlerschwellenwerts (d. h. innerhalb eines normalen Bereichs) liegen. Gemäß einigen Beispielen kann die Steuerung andere Schwellenwerte zum Bestimmen funktionstüchtiger Daten (z. B. die in 2C gezeigten Schwellenwerte 218 und 220) als die zum Bestimmen fehlerhafter Daten verwendeten Schwellenwerte (z. B. die in 2C gezeigten Schwellenwerte 204, 203) verwenden. Falls die Daten innerhalb des oberen und des unteren Fehlerschwellenwerts liegen, bestimmt die Steuerung bei 376, dass die Reparatur erfolgreich und notwendig war. Falls die Daten nicht innerhalb des oberen und des unteren Fehlerschwellenwerts liegen, bestimmt die Steuerung bei 378, dass die Reparatur erfolglos war (d. h., dass eine falsche Komponente ersetzt wurde und dass die fehlerhafte Komponente zu ersetzen bleibt oder dass die ersetzte Komponente defekt ist oder ausgefallen ist).
-
Zum Bewerten oder Validieren der Reparatur können andere Verfahren verwendet werden. Wie in 2C gezeigt ist, kann z. B., nachdem die Reparatur bei 212 ausgeführt worden ist, eine plötzliche Umkehr des Trends (d. h. ein Anstieg des Trends, der größer als ein Schwellenwert ist), wie bei 214 zu sehen ist, gefolgt davon, dass der Datenwert unter einer Basislinie 216 liegt, die Reparatur als erfolgreich und notwendig validieren. Im Gegensatz dazu würde eine langsame oder allmähliche Umkehr des Trends (d. h. ein Anstieg des Trends, der kleiner als ein Schwellenwert ist) angeben, dass die Reparatur nicht erfolgreich und/oder unnötig war (z. B., dass stattdessen eine andere Komponente repariert/ersetzt werden muss).
-
Die vorstehende Beschreibung ist dem Wesen nach lediglich veranschaulichend und soll die Offenbarung, ihre Anwendung oder Verwendungen in keiner Weise einschränken. Die umfassenden Lehren der Offenbarung können in einer Vielzahl von Formen implementiert werden. Obwohl diese Offenbarung bestimmte Beispiele enthält, soll der wahre Schutzumfang der Offenbarung somit nicht darauf beschränkt sein, da andere Änderungen bei einem Studium der Zeichnungen, der Beschreibung und der folgenden Ansprüche hervorgehen. Selbstverständlich können ein oder mehrere Schritte innerhalb eines Verfahrens in einer anderen Reihenfolge (oder gleichzeitig) ausgeführt werden, ohne die Prinzipien der vorliegenden Offenbarung zu ändern. Obwohl jede der Ausführungsformen oben als mit bestimmten Merkmalen beschrieben worden ist, können ferner ein oder mehrere dieser in Bezug auf irgendeine Ausführungsform der Offenbarung beschriebenen Merkmale in und/oder zusammen mit Merkmalen irgendeiner der anderen Ausführungsformen implementiert werden, selbst wenn diese Kombination nicht explizit beschrieben ist. Mit anderen Worten, die beschriebenen Ausführungsformen schließen sich nicht gegenseitig aus und Vertauschungen einer oder mehrerer Ausführungsformen miteinander bleiben im Schutzumfang dieser Offenbarung.
-
Räumliche und funktionale Beziehungen zwischen Elementen (z. B. zwischen Modulen, Schaltungselementen, Halbleiterschichten usw.) sind unter Verwendung verschiedener Begriffe einschließlich „verbunden“, „in Eingriff“, „gekoppelt“, „benachbart“, „neben“, „auf“, „über“, „unter“ und „angeordnet“ beschrieben. Wenn eine Beziehung zwischen einem ersten und einem zweiten Element in der obigen Offenbarung nicht explizit als „direkt“ beschrieben ist, kann diese Beziehung eine direkte Beziehung sein, bei der zwischen dem ersten und dem zweiten Element keine anderen dazwischenliegenden Elemente vorhanden sind, kann sie aber ebenfalls eine indirekte Beziehung sein, bei der zwischen dem ersten und dem zweiten Element ein oder mehrere (entweder räumlich oder funktional) dazwischenliegende Elemente vorhanden sind. Wie die Formulierung wenigstens eines von A, B und C hier verwendet ist, soll sie ein logisches (A ODER B ODER C) unter Verwendung eines nicht ausschließenden logischen ODER bedeuten und ist sie nicht in der Bedeutung „wenigstens eines von A, wenigstens eines von B und wenigstens eines von C“ zu verstehen.
-
In den Figuren veranschaulicht die Richtung eines Pfeils, wie sie durch die Pfeilspitze angegeben ist, allgemein den Informationsfluss (wie etwa von Daten oder Anweisungen), der für die Darstellung von Interesse ist. Wenn z. B. ein Element A und ein Element B eine Vielzahl von Informationen austauschen, für die Darstellung aber von dem Element A zu dem Element B übertragene Informationen relevant sind, kann der Pfeil von dem Element A zu dem Element B weisen. Dieser einfachgerichtete Pfeil bedeutet nicht, dass keine anderen Informationen von dem Element B zu dem Element A übertragen werden. Ferner kann für von dem Element A zu dem Element B gesendete Informationen das Element B Anforderungen für die Informationen an das Element A senden oder deren Quittierungen empfangen.
-
In dieser Anmeldung einschließlich in den folgenden Definitionen kann der Begriff „Modul“ oder der Begriff „Controller“ durch den Begriff „Schaltung“ ersetzt werden. Der Begriff „Modul“ oder der Begriff „Controller“ kann sich auf: eine anwendungsspezifische integrierte Schaltung (ASIC); eine digitale, analoge oder gemischt analog/digitale diskrete Schaltung; eine digitale, analoge oder gemischt analog/digitale integrierte Schaltung; eine Kombinationslogikschaltung; eine frei programmierbare logische Anordnung (FPGA); eine Prozessorschaltung (gemeinsam genutzt, dediziert oder Gruppe), die Code ausführt; eine Speicherschaltung (gemeinsam genutzt, dediziert oder Gruppe), die durch die Prozessorschaltung ausgeführten Code speichert; andere geeignete Hardwarekomponenten, die die beschriebene Funktionalität bereitstellen; oder eine Kombination einiger oder aller der Obigen wie etwa in einem Ein-Chip-System beziehen, ein Teil davon sein oder sie enthalten.
-
Das Modul oder der Controller kann eine oder mehrere Schnittstellenschaltungen enthalten. Gemäß einigen Beispielen können die Schnittstellenschaltungen verdrahtete oder drahtlose Schnittstellen enthalten, die mit einem lokalen Netz (LAN), mit dem Internet, mit einem Weitverkehrsnetz (WAN) oder mit Kombinationen davon verbunden sind. Der Begriff Code, wie er oben verwendet ist, kann Software, Firmware und/oder Mikrocode enthalten und kann sich auf Programme, Routinen, Funktionen, Klassen, Datenstrukturen und/oder Objekte beziehen.
-
Der Begriff Speicher ist eine Teilmenge des Begriffs computerlesbares Medium. Der Begriff computerlesbares Medium, wie er hier verwendet ist, umfasst keine transitorischen elektrischen oder elektromagnetischen Signale, die sich (wie etwa in einer Trägerwelle) durch ein Medium ausbreiten; somit kann der Begriff computerlesbares Medium als konkret und nichttransitorisch angesehen werden. Nicht einschränkende Beispiele eines nichttransitorischen, konkreten computerlesbaren Mediums sind nichtflüchtige Speicherschaltungen (wie etwa eine Flash-Speicherschaltung, eine löschbare, programmierbarere Nur-Lese-Speicherschaltung oder eine Masken-Nur-Lese-Speicherschaltung), flüchtige Speicherschaltungen (wie etwa eine statische Schreib-Lese-Speicherschaltung oder eine dynamische Schreib-Lese-Speicherschaltung), magnetische Ablagespeichermedien (wie etwa ein analoges oder digitales Magnetband oder ein Festplattenlaufwerk) und optische Ablagespeichermedien (wie etwa eine CD, eine DVD oder eine Blu-Ray-Disc).
-
Die in dieser Anmeldung beschriebenen Vorrichtungen und Verfahren können teilweise oder vollständig durch einen durch Konfigurieren eines Universalcomputers zum Ausführen einer oder mehrerer bestimmter Funktionen, die in Computerprogrammen verkörpert sind, erzeugten Spezialcomputer implementiert werden. Die Funktionsblöcke, Ablaufplankomponenten und anderen Elemente, die oben beschrieben sind, dienen als Softwarespezifikationen, die durch die Routinearbeit eines erfahrenen Technikers oder Programmierers in die Computerprogramme übersetzt werden können.
-
Die Computerprogramme enthalten durch einen Prozessor ausführbare Anweisungen, die in wenigstens einem nichttransitorischen, konkreten computerlesbaren Medium gespeichert sind. Außerdem können die Computerprogramme gespeicherte Daten enthalten oder sich auf sie stützen. Die Computerprogramme können ein Basis-Eingabe/Ausgabe-System (BIOS), das mit Hardware des Spezialcomputers zusammenwirkt, Vorrichtungstreiber, die mit bestimmten Vorrichtungen des Spezialcomputers zusammenwirken, ein oder mehrere Betriebssysteme, Benutzeranwendungen, Hintergrunddienste, Hintergrundanwendungen usw. umfassen.
-
Die Computerprogramme können enthalten: (i) beschreibenden Text, der zu parsen ist, wie etwa HTML (Hypertext Markup Language), XML (Extensible Markup Language) oder JSON (JavaScript Object Notation), (ii) Assemblercode, (iii) Objektcode, der durch einen Compiler aus Quellcode erzeugt wird, (iv) Quellcode zur Ausführung durch einen Interpreter, (v) Quellcode zur Compilierung und Ausführung durch einen Just-in-time-Compiler usw. Nur als Beispiele kann Quellcode unter Verwendung einer Syntax aus Sprachen einschließlich C, C++, C#, Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5 (Hypertext Markup Language, 5. Revision), Ada, ASP (Active Server Pages), PHP (PHP: Hypertext-Präprozessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, MATLAB, SIMULINK und Python® geschrieben sein.