DE102022107743A1 - Verbesserte datenkompression - Google Patents

Verbesserte datenkompression Download PDF

Info

Publication number
DE102022107743A1
DE102022107743A1 DE102022107743.8A DE102022107743A DE102022107743A1 DE 102022107743 A1 DE102022107743 A1 DE 102022107743A1 DE 102022107743 A DE102022107743 A DE 102022107743A DE 102022107743 A1 DE102022107743 A1 DE 102022107743A1
Authority
DE
Germany
Prior art keywords
data
data points
computer
differences
sample data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102022107743.8A
Other languages
English (en)
Inventor
Lynn Valerie Keiser
Dominique Meroux
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ford Global Technologies LLC
Original Assignee
Ford Global Technologies LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ford Global Technologies LLC filed Critical Ford Global Technologies LLC
Publication of DE102022107743A1 publication Critical patent/DE102022107743A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07CTIME OR ATTENDANCE REGISTERS; REGISTERING OR INDICATING THE WORKING OF MACHINES; GENERATING RANDOM NUMBERS; VOTING OR LOTTERY APPARATUS; ARRANGEMENTS, SYSTEMS OR APPARATUS FOR CHECKING NOT PROVIDED FOR ELSEWHERE
    • G07C5/00Registering or indicating the working of vehicles
    • G07C5/08Registering or indicating performance data other than driving, working, idle, or waiting time, with or without registering driving, working, idle or waiting time
    • G07C5/0841Registering performance data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • G06F17/175Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method of multidimensional data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W10/00Conjoint control of vehicle sub-units of different type or different function
    • B60W10/04Conjoint control of vehicle sub-units of different type or different function including control of propulsion units
    • B60W10/06Conjoint control of vehicle sub-units of different type or different function including control of propulsion units including control of combustion engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
    • B60W2556/00Input parameters relating to data
    • B60W2556/10Historical data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/17Function evaluation by approximation methods, e.g. inter- or extrapolation, smoothing, least mean square method
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Transportation (AREA)
  • Mechanical Engineering (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

Eine Vielzahl von Sätzen von Abtastdatenpunkten von einem Fahrzeugsensor wird bestimmt, wobei jeder Satz eine vorbestimmte Anzahl von aufeinanderfolgenden Abtastdatenpunkten beinhaltet. Jeweilige Differenzen zwischen Paaren aufeinanderfolgender Abtastdatenpunkte werden in jedem Satz bestimmt. Die Differenzen werden in jeweiligen Teilräumen eines von einer Vielzahl von Speicherräumen des Speichers gespeichert, wobei in jedem Speicherraum in der Vielzahl von Speicherräumen Differenzen von einem und nur einem von der Vielzahl von Sätzen von Abtastdatenpunkten gespeichert werden. Die gesammelten Daten werden basierend auf den gespeicherten Differenzen in der Vielzahl von Speicherräumen wiederhergestellt. Eine Fahrzeugkomponente wird basierend auf den wiederhergestellten Daten betätigt.

Description

  • GEBIET DER TECHNIK
  • Die Offenbarung betrifft im Allgemeinen eine verbesserte Datenkompression.
  • ALLGEMEINER STAND DER TECHNIK
  • Fahrzeuge können mit Rechenvorrichtungen, Netzwerken, Sensoren und Steuerungen ausgestattet sein, um Daten bezüglich des Betriebs von Fahrzeugkomponenten und der Umgebung des Fahrzeugs zu erfassen. Die Rechenvorrichtungen können das Fahrzeug basierend auf den Daten betreiben. Fahrzeugsensoren können Daten bereitstellen, die z. B. eine Motordrehzahl, einen Bremsdruck, einen Lenkradwinkel usw. betreffen. Der Betrieb des Fahrzeugs und die Analyse des Fahrzeugbetriebs können sich auf umfangreiche Komponentendaten stützen, die gesammelt werden, während das Fahrzeug auf einer Fahrbahn betrieben wird. Fahrzeuge können die gesammelten Daten in Speichern der Rechenvorrichtungen speichern.
  • KURZDARSTELLUNG
  • Ein System beinhaltet einen Computer, der einen Prozessor und einen Speicher beinhaltet, wobei in dem Speicher Anweisungen gespeichert sind, die durch den Prozessor ausführbar sind, um eine Vielzahl von Sätzen von Abtastdatenpunkten zu bestimmen, die von einem Fahrzeugsensor gesammelt werden, wobei jeder Satz eine vorbestimmte Anzahl von aufeinanderfolgenden Abtastdatenpunkten beinhaltet, jeweilige Differenzen zwischen Paaren aufeinanderfolgender Abtastdatenpunkte in jedem Satz zu bestimmen, die Differenzen in jeweiligen Teilräumen eines von einer Vielzahl von Speicherräumen des Speichers zu speichern, wobei in jedem Speicherraum in der Vielzahl von Speicherräumen Differenzen von einem und nur einem der Vielzahl von Sätzen von Abtastdatenpunkten gespeichert werden, die gesammelten Daten basierend auf den gespeicherten Differenzen in der Vielzahl von Speicherräumen wiederherzustellen und eine Fahrzeugkomponente basierend auf den wiederhergestellten Daten zu betätigen.
  • Die gesammelten Daten können Motordrehzahldaten sein und die Anweisungen können ferner Anweisungen zum Betätigen eines Fahrzeugantriebs basierend auf wiederhergestellten Motordrehzahldaten beinhalten.
  • Eine Speichergröße jedes Speicherraums kann kleiner sein als eine kombinierte Speichergröße des Satzes von Abtastdatenpunkten, der dem jeweiligen Speicherraum zugeordnet ist.
  • Der Speicherraum kann eine Vielzahl von 16-Bit-Datenblöcken sein und jeder 16-Bit-Datenblock kann zwei der Differenzen beinhalten, die als eine 8-Bit-Zahl gespeichert sind.
  • Die Anweisungen können ferner Anweisungen zum Generieren einer Polynominterpolation basierend auf der Vielzahl von Abtastdatenpunkten und zum Wiederherstellen der gesammelten Daten basierend auf der Polynominterpolation und den gespeicherten Differenzen beinhalten.
  • Die Polynominterpolation kann ein kubischer Spline sein.
  • Die Anweisungen können ferner Anweisungen zum Betätigen der Fahrzeugkomponente basierend auf einem wiederhergestellten Datenpunkt zwischen zwei aufeinanderfolgenden Abtastdatenpunkten beinhalten, wobei der wiederhergestellte Datenpunkt auf der Polynominterpolation zwischen den zwei aufeinanderfolgenden Abtastdatenpunkten basiert.
  • Die Anweisungen können ferner Anweisungen zum Bestimmen einer jeweiligen Steigung zwischen jedem Paar aufeinanderfolgender Abtastdatenpunkte in jedem Satz und zum Wiederherstellen der Abtastdatenpunkte basierend auf den bestimmten Steigungen beinhalten.
  • Jeder Satz der Abtastdatenpunkte kann Abtastdatenpunkte innerhalb eines spezifizierten Zeitraums beinhalten.
  • Die Anweisungen können ferner Anweisungen zum Bestimmen eines Skalierungsfaktors für jeden Speicherraum, um jede bestimmte Differenz von einer Gleitkommazahl in eine ganze Zahl umzuwandeln, und zum Speichern des Skalierungsfaktors als ein Segment in dem Speicherraum beinhalten.
  • Der Skalierungsfaktor kann auf einer Größe einer der Differenzen in dem Speicherraum basieren.
  • Die Anweisungen zum Wiederherstellen der Abtastdatenpunkte können ferner Anweisungen zum Dividieren jeder Differenz in dem Speicherraum durch den Skalierungsfaktor beinhalten.
  • Der Speicherraum kann einen ersten Abtastdatenpunkt des Satzes von Abtastdatenpunkten beinhalten, der dem Speicherraum zugeordnet ist, und die Anweisungen zum Wiederherstellen der gesammelten Daten können Anweisungen zum Summieren des ersten Abtastdatenpunktes mit mindestens einer der gespeicherten Differenzen beinhalten.
  • Ein Verfahren beinhaltet Bestimmen einer Vielzahl von Sätzen von Abtastdatenpunkten, die von einem Fahrzeugsensor gesammelt werden, wobei jeder Satz eine vorbestimmte Anzahl von aufeinanderfolgenden Abtastdatenpunkten beinhaltet, Bestimmen jeweiliger Differenzen zwischen Paaren aufeinanderfolgender Abtastdatenpunkte in jedem Satz, Speichern der Differenzen in jeweiligen Teilräumen eines von einer Vielzahl von Speicherräumen des Speichers, wobei in jedem Speicherraum in der Vielzahl von Speicherräumen Differenzen von einem und nur einem der Vielzahl von Sätzen von Abtastdatenpunkten gespeichert werden, Wiederherstellen der gesammelten Daten basierend auf den gespeicherten Differenzen in der Vielzahl von Speicherräumen und Betätigen einer Fahrzeugkomponente basierend auf den wiederhergestellten Daten.
  • Die gesammelten Daten können Motordrehzahldaten sein und das Verfahren kann ferner Betätigen eines Fahrzeugantriebs basierend auf wiederhergestellten Motordrehzahldaten beinhalten.
  • Das Verfahren kann ferner Generieren einer Polynominterpolation basierend auf der Vielzahl von Abtastdatenpunkten und Wiederherstellen der gesammelten Daten basierend auf der Polynominterpolation und den gespeicherten Differenzen beinhalten.
  • Das Verfahren kann ferner Betätigen der Fahrzeugkomponente basierend auf einem wiederhergestellten Datenpunkt zwischen zwei aufeinanderfolgenden Abtastdatenpunkten beinhalten, wobei der wiederhergestellte Datenpunkt auf der Polynominterpolation zwischen den zwei aufeinanderfolgenden Abtastdatenpunkten basiert.
  • Das Verfahren kann ferner Bestimmen einer jeweiligen Steigung zwischen jedem Paar aufeinanderfolgender Abtastdatenpunkte in jedem Satz und Wiederherstellen der Abtastdatenpunkte basierend auf den bestimmten Steigungen beinhalten.
  • Das Verfahren kann ferner Bestimmen eines Skalierungsfaktors für jeden Speicherraum, um jede bestimmte Differenz von einer Gleitkommazahl in eine ganze Zahl umzuwandeln und Speichern des Skalierungsfaktors als ein Segment in dem Speicherraum beinhalten.
  • Das Verfahren kann ferner Dividieren jeder Differenz in dem Speicherraum durch den Skalierungsfaktor beinhalten.
  • Der Speicherraum kann einen ersten Abtastdatenpunkt des Satzes von Abtastdatenpunkten beinhalten, der dem Speicherraum zugeordnet ist, und das Verfahren kann ferner Summieren des ersten Abtastdatenpunktes mit mindestens einer der gespeicherten Differenzen beinhalten.
  • Ferner wird eine Rechenvorrichtung offenbart, die dazu programmiert ist, beliebige der vorstehenden Verfahrensschritte auszuführen. Darüber hinaus wird ein Fahrzeug offenbart, das die Rechenvorrichtung umfasst. Darüber hinaus wird ein Computerprogrammprodukt offenbart, das ein computerlesbares Medium umfasst, auf dem Anweisungen gespeichert sind, die durch einen Computerprozessor ausgeführt werden können, um beliebige der vorstehenden Verfahrensschritte auszuführen.
  • Kontinuierlich gesammelte Fahrzeugdaten, wie etwa eine Motordrehzahl, können Raum in einem Speicher eines Computers verwenden, in dem andere Daten gespeichert sein könnten. Das Übertragen dieser kontinuierlich gesammelten Daten ohne Kompression über z. B. ein drahtloses Netzwerk kann Bandbreite verwenden, die andernfalls andere Daten und Nachrichten übertragen könnte. Begrenzter Speicherraum und begrenzte Netzwerkbandbreite stellen Beschränkungen für das Sammeln großer Mengen von kontinuierlich gesammelten Daten von einem oder mehreren Sensoren und das Speichern der Rohdaten bereit.
  • Die vorstehenden technischen Hindernisse können durch einen Computer angegangen werden, der den Speicherraum, der zum Speichern von kontinuierlich gesammelten Fahrzeugdaten verwendet wird, reduzieren kann, indem ein Teilsatz der Rohdaten ausgewählt wird, eine polynomische Näherung für Näherungswerte zwischen den Datenpunkten des Teilsatzes erzeugt wird und der Teilsatz in kleinere Speicherräume komprimiert wird, die andernfalls für die Rohdaten verwendet werden würden. Der Kompressionsalgorithmus kann die Menge des verwendeten Speicherraums reduzieren, während die Genauigkeit der Rohdaten beibehalten wird. Zum Beispiel können die meisten Daten, die als vorzeichenbehaftete 16-Bit-Ganzzahlen gesammelt werden, als vorzeichenbehaftete 8-Bit-Ganzzahldifferenzen gespeichert werden, wodurch die Menge des verwendeten Speicherraums um fast die Hälfte reduziert wird, während der Großteil der Genauigkeit der rohen vorzeichenbehafteten 16-Bit-Ganzzahlen beibehalten wird. In einem Beispiel können 22 16-Bit-Ganzzahlen in einem Speicherraum mit 12 16-Bit-Teilräumen gespeichert werden, indem ein erster Datenpunkt als 16-Bit-Ganzzahl gespeichert wird, die 21 Differenzen von aufeinanderfolgenden geordneten Paaren 16-Bit-Ganzzahlen als 8- Bit vorzeichenbehaftete Ganzzahlen gespeichert werden und eine vorzeichenlose 8-Bit-Ganzzahl als Skalierungsfaktor gespeichert wird, um die vorzeichenbehaftete 8-Bit-Ganzzahl, die sich von vorzeichenbehafteten 16-Bit-Ganzzahlen unterscheidet, wiederherzustellen.
  • Wenn der Computer bestimmt, die gespeicherten Daten zu verwenden, kann der Computer die komprimierten Daten abrufen und die polynomische Näherung verwenden, um die Daten wiederherzustellen. Die wiederhergestellten Daten sind eine Näherung der Rohdaten und die polynomische Näherung kann bestimmt werden, um Differenzen zwischen den Rohdaten und den wiederhergestellten Daten zu minimieren. Zum Beispiel kann die polynomische Näherung ein kubischer Spline sein, der Werte zwischen Datenpunkten des Teilsatzes mit einem kubischen Polynom nähert. Der kubische Spline kann eine kleinere Differenz zwischen den Rohdaten und den wiederhergestellten Daten ausgeben als z. B. eine lineare Interpolation zwischen Datenpunkten des Teilsatzes. Durch Verwenden des kubischen Splines kann der Computer Komponenten auf eine Weise betätigen, als ob der Computer die Rohdaten verwendet hätte, wodurch die Menge an Speicherraum, der in dem Computer verwendet wird, reduziert wird, während eine ähnliche Leistung wie bei Verwendung der Rohdaten ausgegeben wird.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines beispielhaften Systems zum Komprimieren und Wiederherstellen von Daten, die in einem Fahrzeug gesammelt wurden.
    • 2 ist ein Diagramm von beispielhaften gesammelten Daten.
    • 3 ist ein Diagramm von beispielhaften Datenpunkten und Steigungen zwischen den Datenpunkten.
    • 4 ist ein Blockdiagramm eines beispielhaften Speicherraums in dem Fahrzeug.
    • 5 ist ein Blockdiagramm eines beispielhaften Prozesses zum Komprimieren und Wiederherstellen von Daten, die in dem Fahrzeug gesammelt wurden.
  • DETAILLIERTE BESCHREIBUNG
  • 1 veranschaulicht ein beispielhaftes System 100 zum Komprimieren und Wiederherstellen von Daten, die in einem Fahrzeug 105 gesammelt wurden. Ein Computer 110 in dem Fahrzeug 105 ist dazu programmiert, gesammelte Daten von einem oder mehreren Sensoren 115 zu empfangen. Zum Beispiel können die Daten des Fahrzeugs 105 einen Standort des Fahrzeugs 105, Daten über eine Umgebung um ein Fahrzeug, Daten über ein Objekt außerhalb des Fahrzeugs, wie etwa ein anderes Fahrzeug usw., beinhalten. Ein Standort des Fahrzeugs 105 wird typischerweise in einer herkömmlichen Form bereitgestellt, z. B. Geokoordinaten, wie etwa Breiten- und Längengradkoordinaten, die über ein Navigationssystem erlangt werden, welches das globale Positionsbestimmungssystem (GPS) verwendet. Weitere Beispiele für Daten können Messwerte von Systemen und Komponenten des Fahrzeugs 105 beinhalten, z. B. eine Geschwindigkeit des Fahrzeugs 105, eine Bewegungsbahn des Fahrzeugs 105 usw.
  • Der Computer 110 ist im Allgemeinen für Kommunikationen in einem Fahrzeugnetzwerk 125 programmiert, das z. B. einen herkömmlichen Kommunikationsbus des Fahrzeugs 105, wie etwa einen CAN-Bus, LIN-Bus usw., und/oder andere drahtgebundene und/oder drahtlose Technologien, z. B. Ethernet, WIFI usw., beinhaltet. Über das Netzwerk, den Bus und/oder andere drahtgebundene oder drahtlose Mechanismen (z. B. ein drahtgebundenes oder drahtloses lokales Netzwerk in dem Fahrzeug 105) kann der Computer 110 Nachrichten an verschiedene Vorrichtungen in einem Fahrzeug 105 übertragen und/oder Nachrichten von den verschiedenen Vorrichtungen, z. B. Steuerungen, Aktoren, Sensoren usw., einschließlich der Sensoren 115, empfangen. Alternativ oder zusätzlich dazu kann in Fällen, in denen der Computer 110 tatsächlich mehrere Vorrichtungen umfasst, das Fahrzeugnetzwerk zur Kommunikation zwischen Vorrichtungen verwendet werden, die in dieser Offenbarung als der Computer 110 dargestellt sind. Zum Beispiel kann der Computer 110 ein generischer Computer mit einem Prozessor und einem Speicher sein, wie vorstehend beschrieben, und/oder kann er eine dedizierte elektronische Schaltung beinhalten, die eine ASIC beinhaltet, die für einen bestimmten Vorgang hergestellt ist, z. B. eine ASIC zum Verarbeiten von Sensordaten und/oder Kommunizieren der Sensordaten. In einem anderen Beispiel kann der Computer 110 ein FPGA (Field-Programmable Gate Array) beinhalten, bei dem es sich um eine integrierte Schaltung handelt, die so hergestellt ist, dass sie durch einen Insassen konfiguriert werden kann. In der Regel wird eine Hardware-Beschreibungssprache, wie etwa VHDL (Very High Speed Integrated Circuit Hardware Description Language - Hardware-Beschreibungssprache für integrierte Schaltungen mit sehr hoher Geschwindigkeit), in der elektronischen Ausgestaltungsautomatisierung verwendet, um digitale und Mischsignal-Systeme, wie etwa FPGA und ASIC, zu beschreiben. Zum Beispiel wird eine ASIC basierend auf einer vor der Herstellung bereitgestellten VHDL-Programmierung hergestellt, wohingegen logische Komponenten innerhalb eines FPGA basierend auf der VHDL-Programmierung konfiguriert sein können, z. B. in einem Speicher gespeichert, der elektrisch mit der FPGA-Schaltung verbunden ist. In einigen Beispielen kann eine Kombination aus Prozessor(en), ASIC(s) und/oder FPGA-Schaltungen in dem Computer 110 beinhaltet sein. Zusätzlich dazu kann der Computer 110 zum Kommunizieren mit einem Netzwerk programmiert sein, das verschiedene drahtgebundene und/oder drahtlose Netzwerktechnologien beinhalten kann, z. B. Mobilfunk, Bluetooth®, Bluetooth® Low Energy (BLE), drahtgebundene und/oder drahtlose Paketnetzwerke usw.
  • Der Speicher kann von beliebiger Art sein, z. B. Festplattenlaufwerke, Festkörperlaufwerke, Server oder beliebige flüchtige oder nichtflüchtige Medien. Der Speicher kann die von den Sensoren 115 gesendeten gesammelten Daten speichern. Der Speicher kann eine von dem Computer 110 getrennte Vorrichtung sein und der Computer 110 kann durch den Speicher gespeicherte Informationen über ein Netzwerk in dem Fahrzeug 105 abrufen, z. B. über einen CAN-Bus, ein drahtloses Netzwerk usw. Alternativ oder zusätzlich dazu kann der Speicher Teil des Computers 110 sein, z. B. als ein Speicher des Computers 110.
  • Die Sensoren 115 können eine Vielfalt an Vorrichtungen beinhalten. Zum Beispiel können verschiedene Steuerungen in einem Fahrzeug 105 als Sensoren 115 betrieben werden, um Daten über das Fahrzeugnetzwerk 125 bereitzustellen, z. B. Daten in Bezug auf Fahrzeuggeschwindigkeit, Beschleunigung, Standort, Teilsystem- und/oder Komponentenstatus usw. Ferner könnten andere Sensoren 115 Kameras, Bewegungsmelder usw. beinhalten, d.h. Sensoren 115, um Daten zum Bewerten einer Position einer Komponente, zum Bewerten einer Neigung einer Fahrbahn usw. bereitzustellen. Die Sensoren 115 könnten ohne Einschränkung zudem Kurzstreckenradar, Langstreckenradar, LIDAR und/oder Ultraschallwandler beinhalten.
  • Die gesammelten Daten können eine Vielfalt an Daten, die in einem Fahrzeug 105 gesammelt wurden, beinhalten. Beispiele für gesammelte Daten sind vorstehend bereitgestellt und darüber hinaus werden Daten im Allgemeinen unter Verwendung eines oder mehrerer Sensoren 115 gesammelt und können zusätzlich Daten beinhalten, die daraus in dem Computer 110 und/oder auf einem Server berechnet werden. Im Allgemeinen können die gesammelten Daten beliebige Daten beinhalten, die durch die Sensoren 115 erhoben und/oder anhand derartiger Daten berechnet werden können.
  • Das Fahrzeug 105 kann eine Vielzahl von Fahrzeugkomponenten 120 beinhalten. In diesem Zusammenhang beinhaltet jede Fahrzeugkomponente 120 eine oder mehrere Hardwarekomponenten, die dazu ausgelegt sind, eine mechanische Funktion oder einen mechanischen Vorgang durchzuführen - wie etwa Bewegen des Fahrzeugs 105, Abbremsen oder Anhalten des Fahrzeugs 105, Lenken des Fahrzeugs 105 usw. Nicht einschränkende Beispiele für die Komponenten 120 beinhalten eine Antriebskomponente (die z. B. eine Brennkraftmaschine und/oder einen Elektromotor usw. beinhaltet), eine Getriebekomponente, eine Lenkkomponente (die z. B. eines oder mehrere von einem Lenkrad, einer Lenkzahnstange usw. beinhalten kann), eine Bremskomponente, eine Einparkhilfekomponente, eine Komponente für adaptive Geschwindigkeitsregelung, eine adaptive Lenkkomponente, einen bewegbaren Sitz und dergleichen. Die Komponenten 120 können Rechenvorrichtungen, z. B. elektronische Steuereinheiten (electronic control units - ECUs) oder dergleichen und/oder Rechenvorrichtungen, wie vorstehend in Bezug auf den Computer 110 beschrieben, beinhalten, die ebenfalls über ein Netzwerk des Fahrzeugs 105 kommunizieren.
  • Das Fahrzeug 105 beinhaltet ein Fahrzeugnetzwerk 125. Wie vorstehend beschrieben, kann das Fahrzeugnetzwerk 125 z. B. ein CAN-Bus, LIN-Bus usw. und/oder andere drahtgebundene und/oder drahtlose Technologien, z. B. Ethernet, WIFI usw., sein. Der Computer 110 kann mit den Sensoren 115 und den Komponenten 120 über das Fahrzeugnetzwerk 125 kommunizieren. Das heißt, die Sensoren 115 können dem Computer 110 über das Fahrzeugnetzwerk 125 Daten bereitstellen, und der Computer 110 kann den Komponenten 120 über das Fahrzeugnetzwerk 125 Anweisungen bereitstellen.
  • 2 ist ein Diagramm von Daten 200, die durch einen Sensor 115 gesammelt werden. Bei den Daten 200 handelt es sich um Motordrehzahldaten, die von einem Sensor 115 gesammelt werden, der mit einem Antrieb in Kommunikation steht. Die Daten 200 sind „Rohdaten“, d. h. Daten, die direkt von dem Sensor 115 gesammelt werden. 2 veranschaulicht rohe Motordrehzahldaten 200 auf der vertikalen Achse, die über einen Zeitraum entlang der horizontalen Achse aufgetragen sind. Die Rohdaten 200 können in dem Speicher des Computers 110 gespeichert werden. Der Computer 110 kann jedoch eine begrenzte Speicherkapazität aufweisen und das Speichern der Rohdaten 200 kann Raum verwenden, den der Computer 110 für andere Daten verwenden könnte. Somit kann der Computer 110 zum Speichern der Rohdaten 200 die Rohdaten 200 in eine Form komprimieren, die weniger Speicherraum verwendet, als die Rohdaten 200 verwenden würden, wie nachstehend beschrieben.
  • Um die Rohdaten 200 zur Speicherung in dem Speicher zu komprimieren, kann der Computer 110 eine polynomische Näherung 205 der Rohdaten 200 bestimmen. Die polynomische Näherung 205 ist eine Gleichung, welche die Rohdaten 200 nähert. Die polynomische Näherung 205 kann ein kubischer Hermite-Spline sein, d. h. ein Satz von Gleichungen der Form ax3 + bx2 + cx + d, wobei a, b, c, d reelle Zahlen-Koeffizienten sind und x eine Eingabevariable, z. B. Zeit, ist. 2 veranschaulicht die polynomische Näherung 205 als einen kubischen Spline 205. Der kubische Spline 205, der eine Gleichung ist, kann in einem Speicher des Computers 110 mit weniger Speicherraum als die Rohdaten 200, die der kubische Spline 205 nähert, gespeichert werden. Somit kann der Computer 110 bestimmen, einige der Rohdaten 200 nicht zu speichern, und den kubischen Spline 205 verwenden, um einen genäherten Datenwert zu bestimmen, wodurch die Gesamtmenge des durch die Rohdaten 200 verwendeten Speichers reduziert wird.
  • Der Computer 110 kann abgetastete Daten 210 identifizieren, die ein Teilsatz der Rohdaten 200 sind. Der Computer 110 kann Datenpunkte, d. h. Elemente von abgetasteten Daten 210 (d. h., ein Element von Daten bedeutet eine einzelne Dateneinheit, z. B. einen einzelnen Wert, der von einem Sensor 115 ausgegeben wird) als einen Satz der Rohdaten 200 identifizieren, die gleichmäßig voneinander beabstandet sind. Zum Beispiel kann der Computer 110 jedes 20. Element der Rohdaten 200 als die abgetasteten Daten 210 identifizieren. Um die abgetasteten Daten 210 zu bestimmen, kann der Computer 110 jeweilige Indizes der Rohdaten 200 identifizieren, d. h. ganzzahlige Werte, die eine Reihenfolge angeben, in der die Elemente der Rohdaten 200 gesammelt wurden, und der Computer 110 kann die abgetasteten Daten 210 basierend auf den Indizes bestimmen. Zum Beispiel kann der Computer 110, um jedes 20. Element der Rohdaten 200 zu identifizieren, jedes Element der Rohdaten 200 identifizieren, das einen Index aufweist, der ohne Rest durch 20 teilbar ist, d. h. kongruent zu 0 modulo 20 ist (z. B. die Indizes 20, 40, 60, 80 usw.). Der Computer 110 kann die Abtastdaten 210 in dem Speicher speichern, wodurch die Menge des verwendeten Speicherraums um 95 % reduziert wird, wenn jeder 20. Datenpunkt gespeichert wird.
  • Der Computer 110 kann Daten, welche die Rohdaten 200 mit der polynomischen Näherung 205 und den abgetasteten Daten 210 nähern, wiederherstellen. In diesem Zusammenhang bedeutet „Wiederherstellen“ von Daten das Nähern der Werte der Rohdaten 200 mit der polynomischen Näherung 205 und den abgetasteten Daten 210, einschließlich Umkehren einer Kompressionstechnik, um einen abgetasteten Datenpunkt 210 zu bestimmen, der zur Speicherung in einem Speicher komprimiert wurde, und die polynomische Näherung 205 zu verwenden, um ein Element der Rohdaten 200 zwischen zwei Abtastdatenpunkten 210 zu nähern. Das heißt, die abgetasteten Daten 210 beinhalten weniger Datenpunkte als die Rohdaten 200, und um die Komponenten 120 basierend auf Daten zu betätigen, die nicht in den Abtastdaten 210 gespeichert wurden, nähert die polynomische Näherung 205 Werte zwischen den Abtastdaten 210. Wie nachstehend ausführlicher beschrieben, kann die polynomische Näherung 205 ein kubischer Spline sein, der Werte zwischen Datenpunkten 210 mit einem kubischen Polynom nähert.
  • Die abgetasteten Daten 210 können Elemente der Rohdaten 200 beinhalten, die nicht gleichmäßig voneinander beabstandet sind. Das heißt, zusätzlich zu den gleichmäßig beabstandeten abgetasteten Daten 210 kann der Computer 110 spezifische Elemente der Rohdaten 200 sammeln, die von Interesse sind, aber nicht durch die vorstehend beschriebene Sammlung gleichmäßiger Abtastungen gesammelt würden. Zum Beispiel kann der Computer 110 beim Bestimmen der polynomische Näherung 205 jeweilige Differenzen zwischen jedem Elemente der Rohdaten 200 und seiner polynomischen Näherung 205 bestimmen. Der Computer 110 kann einen Teilsatz von Elementen der Rohdaten 200 identifizieren, die basierend auf den Differenzen in die abgetasteten Daten 210 einbezogen werden sollen. Zum Beispiel kann der Computer 110 eine vorbestimmte Anzahl von Elementen der Rohdaten 200 identifizieren, die größere Differenzen zu ihren polynomischen Näherungen 205 aufweisen als andere Elemente der Rohdaten 200. Das heißt, der Computer 110 kann die Differenzen von der größten zu der geringsten sortieren und eine vorbestimmte Anzahl von Elementen der Rohdaten 200 identifizieren, beginnend mit den Elementen der Rohdaten 200 mit der größten Differenz von deren jeweiliger polynomischen Näherung, dann die nächstgrößere Differenz und so weiter, bis der Computer 110 die vorbestimmte Anzahl von Elementen der Rohdaten 200 identifiziert hat. Zum Beispiel kann der Computer 110 unter allen Elementen der Rohdaten 200 die 100 Elemente der Rohdaten 200 identifizieren, welche die größten Differenzen zu der polynomischen Näherung 205 aufweisen. Durch Einbeziehen zusätzlicher Elemente von Rohdaten 200 basierend auf Differenzen zu der polynomischen Näherung 205 kann der Computer 110 Daten, welche die Rohdaten 200 mit der polynomischen Näherung 205 nähern, genauer komprimieren und wiederherstellen als ohne diese Elemente von Rohdaten 200. Das heißt, das Einbeziehen der Elemente der Rohdaten 200 mit den größten Differenzen zur der polynomischen Näherung 205 ermöglicht die Wiederherstellung der Daten, wie nachstehend beschrieben, um die Rohdaten 200 genauer zu nähern, als nur die gleichmäßig beabstandeten abgetasteten Daten 210 allein zu verwenden.
  • Der Computer 110 kann eine oder mehrere Fahrzeugkomponenten 120 basierend auf der polynomischen Näherung 205 betätigen. Zum Beispiel kann der Computer 110 Kraftstoffverbrauchswerte zwischen Werten der Rohkraftstoffverbrauchsdaten 200 mit der polynomischen Näherung 205 nähern. Der Computer 110 kann die genäherten Kraftstoffverbrauchswerte verwenden, um eine Kraftstoffverbrauchsrate eines Antriebs für eine zuvor gefahrene Fahrt zu bestimmen und eine Kraftstoffverbrauchsrate für eine zukünftige Fahrt vorherzusagen, und kann mindestens eines von einer Kraftstoffeinspritzvorrichtung, einer Zündkerze, einem Abgasrückführungsteilsystem und/oder einer Drossel basierend auf der vorhergesagten Kraftstoffverbrauchsrate betätigen. Das heißt, die polynomischen Näherung 205 charakterisiert den Betrieb des Fahrzeugs 105 genauer als die abgetasteten Daten 210 allein den Betrieb.
  • In einem anderen Beispiel kann der Computer 110 die abgetasteten Daten 210 und die polynomische Näherung 205 auf einen Server hochladen, der mit einem Programm für maschinelles Lernen programmiert ist, das dazu trainiert ist, ein Antriebsstrangsteuerprogramm für das Fahrzeug 105 einzustellen. Das Antriebsstrangsteuerprogramm kann eine Programmierung des Computers 110 sein, der eine oder mehrere Komponenten betätigt, um die Bewegung des Fahrzeugs 105 zu steuern, z. B. die Zündkerze, die Drossel, die Kraftstoffeinspritzvorrichtung usw. Zum Beispiel kann das Antriebsstrangsteuerprogramm eines oder mehrere von dem Kraftstoffeinspritzzeitpunkt, der Kraftstoffeinspritzmenge, dem Turboladerdruck, dem Zündzeitpunkt, der Ventilzeitsteuerung, dem Getriebeschaltbetrieb und/oder anderen Handlungen steuern, die sich aus der Betätigung der Komponenten 120 ergeben. Das Programm für maschinelles Lernen kann einen oder mehrere Parameter des Antriebsstrangsteuerprogramms basierend auf eingegebenen abgetasteten Motordrehzahldaten 210 und der polynomischen Näherung 205 einstellen. Der Server kann die eingestellten Parameter an den Computer 110 übertragen und der Computer 110 kann die eingestellten Parameter mit dem Antriebsstrangsteuerprogramm verwenden, um z. B. die Motorleistung zu erhöhen, die Motoreffizienz zu erhöhen, Motoremissionen zu reduzieren und/oder die Konsistenz und Vorhersagbarkeit der Leistungsausgabe von dem Motor zu verbessern.
  • In einem anderen Beispiel kann der Computer 110 Motordrehzahldaten von einem Antrieb sammeln, die abgetasteten Daten 210 komprimieren und die abgetasteten Daten 210 und die polynomische Näherung 205 über ein Netzwerk an einen Server senden, der eine Flotte von Fahrzeugen 105 verwaltet. Der Server kann beim Wiederherstellen der abgetasteten Daten 210 mit der polynomischen Näherung 205 eine Zeit zum Reparieren des Antriebs des Fahrzeugs 105 basierend auf herkömmlichen Verschleißmodellen vorhersagen, die einen Verschleiß eines Antriebs basierend auf der Motordrehzahl ausgeben. Bei Erreichen der vorhergesagten Zeit, kann der Server dann das Fahrzeug 105 anweisen, sich zu einem Reparaturstandort zu bewegen, um den Antrieb zu reparieren. Durch das Sammeln von komprimierten abgetasteten Daten 210 von jedem einer Vielzahl von Fahrzeugen 105 kann der Server den Betrieb der Fahrzeugflotte 105 verwalten. In noch einem weiteren Beispiel kann der Flottenserver abgetastete Daten 210 des Stromverbrauchs und polynomische Näherungen von einer Vielzahl von elektrischen Dienstfahrzeugen 105 verwenden, um Dienstfahrzeuge 105 Routen zuzuweisen, die den Stromverbrauch von Batterien der elektrischen Dienstfahrzeuge 105 minimieren, wodurch die Betriebseffizienz der Fahrzeuge 105 verbessert wird.
  • 3 ist ein Diagramm 300 von vier beispielhaften Datenpunkten 305, 310, 315, 320. Die Datenpunkte 305-320 sind Rohdaten 200 oder Abtastdaten 210, die durch den Sensor 115 gesammelt wurden, und jeder Datenpunkt 305-320 weist entsprechende (x, y)-Werte auf. In dem Beispiel aus 3 ist die x-Achse die Zeit in Millisekunden (ms) und ist die y-Achse die Motordrehzahl in Umdrehungen pro Minute (U/min). Jeder Datenpunkt 305, 310, 315, 320 ist somit ein einzelner Motordrehzahlwert, der zu einem einzigen Zeitpunkt bewertet wird. Der Datenpunkt 305 ist als (x1, y1) dargestellt, der Datenpunkt 310 ist als (x2, y2) dargestellt, der Datenpunkt 315 ist als (x3, y3) dargestellt und der Datenpunkt 320 ist als (x4, y4) dargestellt.
  • Der Computer 110 kann den kubischen Spline für jeden Datenpunkt 305-320 basierend auf Steigungen an jedem Datenpunkt 305 bestimmen. Zum Beispiel kann die Steigung M2 für den Datenpunkt 310 basierend auf den folgenden Ausdrücken bestimmt werden: M 2 = tan ( L 12 2 L 12 2 + L 23 2 atan  m 12 + L 23 2 L 12 2 + L 23 2 atan  m 23 )
    Figure DE102022107743A1_0001
    m 12 = y 2 y 1 x 2 x 1 ; m 23 = y 3 y 2 x 3 x 2
    Figure DE102022107743A1_0002
    L 12 = ( y 2 y 1 ) 2 + ( x 2 x 1 ) 2
    Figure DE102022107743A1_0003
    L 23 = ( y 3 y 2 ) 2 + ( x 3 x 2 ) 2
    Figure DE102022107743A1_0004
    wobei tan() die Tangensfunktion ist, atan() die Arcustangensfunktion ist (d. h. die zu der Tangensfunktion inverse Funktion), M2 die Steigung an dem Datenpunkt 310 ist, L12 der euklidische Abstand zwischen den Datenpunkten 305, 310 ist, L23 der euklidische Abstand zwischen den Datenpunkten 310, 315 ist, m12 die lineare Steigung zwischen den Datenpunkten 305, 310 ist und m23 die lineare Steigung zwischen den Datenpunkten 310, 315 ist.
  • Um Daten zwischen den Datenpunkten 305-320 zu nähern, kann der Computer 110 den kubischen Spline, wie vorstehend beschrieben, als eine kubische Gleichung der Form ax3 + bx2 + cx + d bestimmen. Der Computer 110 kann die Koeffizienten a, b, c, d durch Lösen einer Matrixgleichung bestimmen, wie in dem nachstehenden Ausdruck gezeigt: [ 1 x 1 x 2 x 3 1 x 2 x 3 x 4 0 M 1 M 2 M 3 0 M 2 M 3 M 4 ] \ [ y 1 y 2 M 1 M 4 ] = [ d   c   b   a ]
    Figure DE102022107743A1_0005
    wobei „\“ die linke Matrixdivisionsoperation ist (wie zum Beispiel in Matlab und GNU Octave definiert und verwendet), die x, y-Werte die vorstehend aufgeführten Datenpunkte 305-320 sind und M1, M2, M3, M4 die Steigungen an den Datenpunkten 305-320 sind, wie vorstehend beschrieben. Alternativ dazu kann der Computer 110 die Koeffizienten a, b, c, d bestimmen, indem die Umkehrung der 4x4-Matrix in dem vorstehenden Ausdruck unter Verwendung einer anderen Technik, z. B. Gauß-Jordan-Eliminierung, des Adjunkt-Verfahrens, des Partitionierungsverfahrens usw., für jeden Satz von vier Datenpunkten 305, 310, 315, 320 in den abgetasteten Daten 210, die in dem Speicher gespeichert sind, verwendet wird.
  • 4 ist eine Darstellung eines Speicherraums 400 in dem Speicher des Computers 110. Der Speicherraum 400 speichert Daten, die durch die Sensoren 115 und/oder Komponenten 120 gesammelt wurden, wie vorstehend beschrieben. Der Speicherraum 400 beinhaltet eine Vielzahl von Teilräumen 405, wobei jeder Teilraum 405 eine spezifizierte Anzahl von Bits zum Speichern der Daten beinhaltet. Zum Beispiel kann der Teilraum 405 16 Bit beinhalten und kann eine einzelne 16-Bit-Zahl oder zwei 8-Bit-Zahlen speichern. Der beispielhafte Speicherraum 400 aus 4 beinhaltet einen 16-Bit-Teilraum 405 und 22 8-Bit-Teilräume 405. Somit kann der Speicherraum 400 ohne Komprimieren der Rohdaten 200 12 Datenpunkte der Rohdaten 200 oder der abgetasteten Daten 210 speichern, wobei jeder Datenpunkt eine 16-Bit-Zahl ist.
  • Der Computer 110 kann alle Rohdaten 200 oder den abgetasteten Teilsatz 210 der Rohdaten 200 in dem Speicherraum 400 speichern. Jeder Datenpunkt der Rohdaten 200 kann eine 16-Bit-Zahl sein, z. B. eine Gleitkommazahl, eine vorzeichenbehaftete Ganzzahl usw. Wie vorstehend angegeben, kann der Speicherraum 400 einen 16-Bit-Teilraum 405 und 22 8-Bit-Teilräume 405 beinhalten. Um die 16-Bit-Datenpunkte der Rohdaten 200 zu komprimieren, damit sie in die 8-Bit-Teilräume 405 passen, kann der Computer 110 eine Differenz zwischen aufeinanderfolgenden Paaren von Datenpunkten bestimmen und die Differenz als eine 8-Bit-Zahl in jedem 8-Bit-Teilraum 405 speichern. Zum Beispiel kann der Computer 110 einen ersten Datenpunkt als eine 16-Bit-Zahl in einem 16-Bit-Teilraum 405 speichern. Der Computer 110 kann dann eine Differenz zwischen dem ersten Datenpunkt und einem zweiten Datenpunkt als eine 8-Bit-Zahl in einem 8-Bit-Teilraum 405 speichern. Der Computer 110 kann dann eine Differenz zwischen dem zweiten Datenpunkt und einem dritten Datenpunkt als eine 8-Bit-Zahl in einem anderen 8-Bit-Teilraum 405 speichern. Der Computer 110 kann weiterhin die 8-Bit-Teilräume 405 mit 8-Bit-Differenzen aufeinanderfolgender Datenpunkte füllen, wobei 23 Datenpunkte in einem Speicherraum 400 gespeichert werden, in dem typischerweise nur 12 Datenpunkte von Rohdaten 200 gespeichert werden würden.
  • Das Bestimmen der Differenz zwischen aufeinanderfolgenden 16-Bit-Datenpunkten als eine 8-Bit-Zahl kann Rundungsfehler einführen, da die letzten 8 Bit Genauigkeit beim Umwandeln von der 16-Bit-Zahl in die 8-Bit-Zahl verloren gehen. Um die Rundungsfehler zu reduzieren, kann der Computer 110 jede Differenz als eine vorzeichenbehaftete 8-Bit-Ganzzahl speichern, die basierend auf einer Quadratwurzel der Differenz zwischen dem Paar von Datenpunkten bestimmt wird. Das heißt, für einen ersten und einen zweiten Datenpunkt p1, p2 kann der Computer 110 die gespeicherte Differenz D wie folgt bestimmen: D 0102 = s g n ( p 1 p 2 ) | p 1 p 2 |
    Figure DE102022107743A1_0006
    D i = s g n ( p i p i + 1 ) | p i p i + 1 |
    Figure DE102022107743A1_0007
    wobei sgn die Signumfunktion ist, die das Vorzeichen der Differenz p1 - p2 ausgibt (d. h. 1 für positiv und -1 für negativ) und |p1 - p2| der Absolutwert der Differenz p1 - p2 ist. Das Verwenden des Absolutwertes der Differenz und das Multiplizieren mit der Signumfunktion verhindert, dass die Quadratwurzelfunktion eine Quadratwurzel einer negativen Zahl (im Bereich der reellen Zahlen nicht definiert) verwendet, während das Vorzeichen der Differenz beibehalten wird. Di ist die Differenz zwischen dem i-ten Datenpunkt und dem (i + 1)-ten Datenpunkt. Wenn die Quadratwurzel der Differenz p1 - p2 als eine 16-Bit-Zahl verwendet wird und dann auf eine 8-Bit-Zahl gerundet wird, wird der Rundungsfehler reduziert, da der Rundungsverlust einer Quadratwurzel einer Zahl kleiner als der Rundungsverlust der Zahl selbst ist. Der Computer 110 kann die gespeicherte Differenz D für jedes aufeinanderfolgende Paar von Datenpunkten für einen spezifizierten Satz von Datenpunkten speichern, die in dem Speicherraum 400 gespeichert werden sollen. Zum Beispiel können die 22 8-Bit-Teilräume 22 Differenzen speichern, und zusätzlich zu dem ersten Datenpunkt, der in dem 16-Bit-Teilraum 405 gespeichert ist, kann der Speicherraum 400 23 Datenpunkte in einem Speicherraum 400 speichern, in dem typischerweise nur 12 Datenpunkte von Rohdaten 200 gespeichert werden würden.
  • Um Rundungsfehler weiter zu reduzieren, kann der Computer 110 die Differenz D als vorzeichenbehaftete 8-Bit-Ganzzahl anstelle einer 8-Bit-Gleitkommazahl speichern. Eine vorzeichenbehaftete Gleitkommazahl verwendet ein Bit für das Vorzeichen der Zahl, ein oder mehrere Bits für einen Exponentenwert und die verbleibenden Bits für die Zahl, die mit dem Exponentenwert zu multiplizieren ist. Das heißt, das eine oder die mehreren Bits, die für den Exponentenwert verwendet werden, können nicht für den Wert des Datenpunkts verwendet werden, wodurch die Anzahl der Bits (und somit die Genauigkeit) des komprimierten Datenpunktes reduziert wird. Durch Komprimieren des Datenpunktes auf eine vorzeichenbehaftete 8-Bit-Ganzzahl, die keine Bits für einen Exponentenwert verwendet, kann der Computer 110 7 der 8 Bits für Werte der Differenz D verwenden, wodurch die Genauigkeit der Komprimierung des 16-Bit-Datenpunktes zu der 8-Bit-Differenz D verbessert wird. Um die 8-Bit-Ganzzahl zu bestimmen, kann der Computer 110 einen Skalierungsfaktor SF für einen Satz von Datenpunkten bestimmen, jede Differenz Di mit dem Skalierungsfaktor SF multiplizieren und jede skalierte Differenz auf eine vorzeichenbehaftete 8-Bit-Ganzzahl runden: D m a x = max i | D i |
    Figure DE102022107743A1_0008
    S F = | 127 D m a x |
    Figure DE102022107743A1_0009
    wobei Dmax der maximale Absolutwert der Differenz DL ist und [x] die Abrundungsfunktion ist, die den ganzzahligen Teil der eingegebenen Zahl ausgibt. Der Skalierungsfaktor SF wird auf eine vorzeichenlose 8-Bit-Ganzzahl gerundet. Der Computer 110 kann jede Differenz Di mit dem Skalierungsfaktor SF multiplizieren, um eine skalierte Differenz SDi als vorzeichenbehaftete 8-Bit-Ganzzahl zu erzeugen. Der Computer 110 kann dann jede skalierte Differenz SDi in jeweiligen der 8-Bit-Teilräume 405 und den Skalierungsfaktor SF in dem letzten 8-Bit-Teilraum speichern. Somit kann der Computer 110 einen Rohdatenpunkt als eine 16-Bit-Ganzzahl, 21 Datenpunkte als vorzeichenbehaftete 8-Bit-Ganzzahlen und den Skalierungsfaktor SF als eine vorzeichenlose 8-Bit-Ganzzahl speichern, wodurch 22 Datenpunkte in einem Speicherraum 400 gespeichert werden, in dem typischerweise nur 12 Datenpunkte von Rohdaten 200 gespeichert werden würden.
  • Um die Daten wiederherzustellen, kann der Computer 110 den ersten Rohdatenpunkt aus dem 16-Bit-Teilraum 405 und den Skalierungsfaktor SF aus seinem Teilraum 405 abrufen. Dann kann der Computer 110 die erste skalierte Differenz SD0102 abrufen, die skalierte Differenz mit dem Skalierungsfaktor SF und ihrem Absolutwert multiplizieren und die multiplizierte skalierte Differenz zu dem ersten Rohdatenpunkt addieren. Für den zweiten Datenpunkt zeigt der nachstehende Ausdruck die Berechnung: p 2 = p 1 + S F S D 0102 | S D 0102 |
    Figure DE102022107743A1_0010
  • Das heißt, die skalierte Differenz SDi behält das Vorzeichen des ursprünglichen Datenpunktes p2 bei und ist die Quadratwurzel der Differenz zwischen den Datenpunkten p2 - p1, die durch den Skalierungsfaktor skaliert ist. Der wiederhergestellte Punkt p2 ist eine vorzeichenbehaftete 16-Bit-Ganzzahl.
  • 5 ist ein Blockdiagramm eines beispielhaften Prozesses 500 zum Komprimieren von Daten, die in einem Fahrzeug 105 gesammelt wurden. Der Prozess 500 beginnt in einem Block 505, in dem ein Computer 110 des Fahrzeugs 105 Rohdaten 200 von einem Sensor 115 sammelt. Der Computer 110 kann die Rohdaten 200 von dem Netzwerk 125 sammeln. Die Rohdaten 200 können z. B. Motordrehzahldaten, Kraftstofffüllstandsdaten usw. sein, um nur einige mögliche Beispiele zu nennen.
  • Als Nächstes identifiziert der Computer 110 in einem Block 510 Abtastungen 210 der Rohdaten 200. Da der Speicher des Computers 110 möglicherweise nicht genügend Raum zum Speichern aller Rohdaten 200 aufweist, kann der Computer 110 einen Teil der Rohdaten 200 als abgetastete Daten 210 speichern. Der Computer 110 kann die abgetasteten Daten 210 als gleichmäßig beabstandete Datenpunkte der Rohdaten 200 identifizieren. Der Computer 110 kann einen ersten Datenpunkt der Rohdaten 200 identifizieren und dann jeden Datenpunkt, der eine spezifizierte Anzahl von Datenpunkten von dem ersten Datenpunkt ist, als die Abtastdaten 210 identifizieren. Zum Beispiel kann der Computer 110 für einen Satz von 10.000 Datenpunkten von Rohdaten 200 einen ersten Datenpunkt mit einem Index „0“ identifizieren und dann einen zweiten Datenpunkt identifizieren, der 20 Datenpunkte nach dem ersten Datenpunkt liegt, d. h. mit einem Index „20“. Der Computer 110 kann dann jeden Datenpunkt identifizieren, der einen Index aufweist, welcher 20 Werte nach dem zuvor identifizierten Datenpunkt liegt, d. h. mit den Indizes „40“, „60“ usw., und die identifizierten Datenpunkte als die abgetasteten Daten 210 speichern. Das heißt, der Computer 110 kann Datenpunkte mit entsprechenden Indizes, die kongruent zu 0 modulo 20 sind, als die abgetasteten Daten 210 speichern, wodurch die 10.000 gesammelten Datenpunkte auf 500 gespeicherte Abtastdatenpunkte 210 reduziert werden.
  • Als nächstes bestimmt der Computer 110 in einem Block 515 eine Vielzahl von Teilsätzen der abgetasteten Daten 210 und identifiziert jeweilige Differenzen zwischen den abgetasteten Datenpunkten 210 in jedem Teilsatz. Wie vorstehend beschrieben, kann der Computer 110 Sätze von 22 aufeinanderfolgenden abgetasteten Datenpunkten 210 bestimmen und die Quadratwurzel der Differenz zwischen jedem aufeinanderfolgenden Paar von Datenpunkten bestimmen. Diese Quadratwurzeldifferenzen können 16-Bit-Gleitkommazahlen sein. Der Computer 110 kann dann die Quadratwurzeldifferenzen auf vorzeichenbehaftete 8-Bit-Ganzzahlen durch einen Skalierungsfaktor SFskalieren. Das Skalieren der 16-Bit-Gleitkommazahl-Quadratwurzeldifferenzen auf vorzeichenbehaftete 8-Bit-Ganzzahlen reduziert die Menge an Speicherraum, die zum Speichern der Quadratwurzeldifferenzen verwendet wird, während die Genauigkeit der 16-Bit-Zahl in 8 Bit Raum beibehalten wird.
  • Als nächstes speichert der Computer 110 in einem Block 520 die Differenzen in einem Speicherraum 400. Wie vorstehend beschrieben, kann der Speicherraum 400 eine Vielzahl von 8-Bit-Teilräumen 405 beinhalten, und der Computer 110 kann jede ganzzahlige 8-Bit-Differenz in einem der 8-Bit-Teilräume 405 speichern. Der Computer 110 kann den Skalierungsfaktor SF in einem der 8-Bit-Teilräume und einen ersten abgetasteten Datenpunkt 210 in einem 16-Bit-Speicher-Teilraum 405 speichern. Somit kann der Computer 110 22 8-Bit-Differenzen in einem Speicherraum 400 speichern, der 12 16-Bit-Teilräume 405 aufweist (die ferner in 8-Bit-Teilräume 405 unterteilt sind), wodurch Daten von 22 Datenpunkten 210 in einen Speicherraum 400 komprimiert werden in dem typischerweise 12 Datenpunkte 210 gespeichert werden würden. Das heißt, 22 Datenpunkte können in 12 16-Bit-Speicherwörtern codiert werden.
  • Als Nächstes stellt der Computer 110 in einem Block 525 die abgetasteten Datenpunkte 210 aus den Speicherräumen 400 wieder her. Wie vorstehend beschrieben, kann der Computer 110 die abgetasteten Datenpunkte 210 durch Abrufen des ersten Datenpunktes aus dem ersten Speicherunterraum 405, Addieren der Differenz in dem nächsten Speicherteilraum 405, um einen zweiten Datenpunkt wiederherzustellen, und Addieren aufeinanderfolgender Differenzen aus aufeinanderfolgenden Speicherräumen 405 wiederherstellen, bis alle 22 abgetasteten Datenpunkte 210 wiederhergestellt sind.
  • Als Nächstes bestimmt der Computer 110 in einem Block 530 eine polynomische Näherung 205 zwischen den abgetasteten Datenpunkten 210, um Daten, welche die Rohdaten 200 nähern, wiederherstellen. Wie vorstehend beschrieben, kann der Computer 110 eine kubische polynomische Näherung 205 (z. B. einen kubischen Hermite-Spline) basierend auf bestimmten Steigungen zwischen den abgetasteten Datenpunkten 210 bestimmen. Zum Beispiel kann der Computer 110 für vier Datenpunkte 305, 310, 315, 320 eine kubische Gleichung ax3 + bx2 + cx + d basierend auf Steigungen M1, M2, M3, M4 der Datenpunkte 305, 310, 315, 320 bestimmen. Der Computer 110 kann die polynomische Näherung 205 als die Summe der kubischen Splines für jeden Satz von vier Datenpunkten 305-320 bestimmen. In dem Prozess 500 kann der Computer 110 die polynomische Näherung 205 bestimmen, nachdem die abgetasteten Daten 210 aus den Speicherräumen 400 wiederhergestellt wurden. Alternativ dazu kann der Computer 110 die polynomische Näherung 205 vor dem Komprimieren der abgetasteten Datenpunkte 210 bestimmen und die polynomische Näherung in dem Speicher speichern, d. h. nach dem Block 510, aber vor dem Block 515 in dem beispielhaften Prozess 500.
  • Als Nächstes betätigt der Computer 110 in einem Block 535 eine oder mehrere Fahrzeugkomponenten 120 basierend auf den wiederhergestellten Datenpunkten 210 und der polynomischen Näherung 205. Zum Beispiel kann der Computer 110 Kraftstoffverbrauchsdaten wiederherstellen und die wiederhergestellten Kraftstoffverbrauchsdaten verwenden, um eine Kraftstoffverbrauchsrate eines Antriebs für eine zuvor gefahrene Fahrt zu bestimmen. Der Computer 110 kann dann eine Kraftstoffverbrauchsrate für eine zukünftige Fahrt vorhersagen und mindestens eines von einer Kraftstoffeinspritzvorrichtung, einer Zündkerze, einem Abgasrückführungsteilsystem und/oder einer Drossel basierend auf der vorhergesagten Kraftstoffverbrauchsrate betätigen.
  • Als Nächstes bestimmt der Computer 110 in einem Block 540, ob der Prozess 500 fortgesetzt werden soll. Zum Beispiel kann der Computer 110 bestimmen, den Prozess 500 nicht fortzusetzen, wenn das Fahrzeug 105 ausgeschaltet ist. Wenn der Computer 110 bestimmt, fortzufahren, kehrt der Prozess 500 zu dem Block 505 zurück. Andernfalls endet der Prozess 500.
  • In dieser Schrift erörterte Rechenvorrichtungen, die den Computer 110 beinhalten, beinhalten Prozessoren und Speicher, wobei die Speicher im Allgemeinen jeweils Anweisungen beinhalten, die durch eine oder mehrere Rechenvorrichtungen, wie etwa die vorstehend identifizierten, und zum Ausführen vorstehend beschriebener Blöcke oder Schritte von Prozessen ausführbar sind. Computerausführbare Anweisungen können von Computerprogrammen kompiliert oder interpretiert werden, die unter Verwendung einer Reihe von Programmiersprachen und/oder -techniken erstellt wurden, die Folgende ohne Einschränkung, entweder allein oder in Kombination, beinhalten: Java™, C, C++, Visual Basic, Java Script, Python, Perl, HTML usw. Im Allgemeinen empfängt ein Prozessor (z. B. ein Mikroprozessor) Anweisungen, z. B. von einem Speicher, einem computerlesbaren Medium usw., und führt diese Anweisungen aus, wodurch er einen oder mehrere Prozesse durchführt, die einen oder mehrere der in dieser Schrift beschriebenen Prozesse beinhalten. Derartige Anweisungen und andere Daten können unter Verwendung vielfältiger computerlesbarer Medien gespeichert und übertragen werden. Eine Datei in dem Computer 110 ist im Allgemeinen eine Sammlung von Daten, die auf einem computerlesbaren Medium gespeichert ist, wie etwa einem Speichermedium, einem Direktzugriffsspeicher usw.
  • Ein computerlesbares Medium beinhaltet ein beliebiges Medium, das am Bereitstellen von Daten (z. B. Anweisungen) beteiligt ist, die durch einen Computer ausgelesen werden können. Ein derartiges Medium kann viele Formen annehmen, einschließlich unter anderem nichtflüchtiger Medien, flüchtiger Medien usw. Nichtflüchtige Medien beinhalten zum Beispiel optische oder magnetische Platten und andere Dauerspeicher. Flüchtige Medien beinhalten dynamischen Direktzugriffsspeicher (dynamic random access memory - DRAM), der typischerweise einen Hauptspeicher darstellt. Gängige Formen computerlesbarer Medien beinhalten beispielsweise eine Diskette, eine Folienspeicherplatte, eine Festplatte, ein Magnetband, ein beliebiges anderes magnetisches Medium, eine CD-ROM, eine DVD, ein beliebiges anderes optisches Medium, Lochkarten, Lochstreifen, ein beliebiges anderes physisches Medium mit Lochmustern, einen RAM, einen PROM, einen EPROM, einen FLASH-EEPROM, einen beliebigen anderen Speicherchip oder eine beliebige andere Speicherkassette oder ein beliebiges anderes Medium, das von einem Computer gelesen werden kann.
  • Hinsichtlich der in dieser Schrift beschriebenen Medien, Prozesse, Systeme, Verfahren usw. versteht es sich, dass, obwohl die Schritte derartiger Prozesse usw. als gemäß einer gewissen geordneten Abfolge erfolgend beschrieben worden sind, die beschriebenen Schritte bei der Ausführung derartiger Prozesse in einer Reihenfolge durchgeführt werden könnten, bei der es sich nicht um die in dieser Schrift beschriebene Reihenfolge handelt. Es versteht sich ferner, dass bestimmte Schritte gleichzeitig durchgeführt, andere Schritte hinzugefügt oder bestimmte in dieser Schrift beschriebene Schritte weggelassen werden könnten. Zum Beispiel könnten in dem Prozess 500 einer oder mehrere der Schritte weggelassen werden oder die Schritte könnten in einer anderen Reihenfolge als in 5 gezeigt ausgeführt werden. Mit anderen Worten sind die Beschreibungen von Systemen und/oder Prozessen in dieser Schrift bereitgestellt zum Zweck der Veranschaulichung bestimmter Ausführungsformen bereitgestellt und sollten keinesfalls so ausgelegt werden, dass sie den offenbarten Gegenstand einschränken.
  • Dementsprechend versteht es sich, dass die vorliegende Offenbarung, welche die vorstehende Beschreibung und die beigefügten Figuren und nachfolgenden Patentansprüche beinhaltet, veranschaulichend und nicht einschränkend sein soll. Viele Ausführungsformen und Anwendungen, bei denen es sich nicht um die bereitgestellten Beispiele handelt, werden dem Fachmann beim Lesen der vorstehenden Beschreibung ersichtlich. Der Umfang der Erfindung sollte nicht unter Bezugnahme auf die vorstehende Beschreibung bestimmt werden, sondern stattdessen unter Bezugnahme auf Patentansprüche, die hier beigefügt sind und/oder in einer hierauf basierenden, nicht vorläufigen Patentanmeldung enthalten sind, gemeinsam mit dem vollständigen Umfang von Äquivalenten, zu welchen derartige Patentansprüche berechtigen. Es wird erwartet und ist beabsichtigt, dass es zukünftige Entwicklungen im in dieser Schrift erörterten Stand der Technik geben wird und dass die offenbarten Systeme und Verfahren in derartige zukünftige Ausführungsformen aufgenommen werden. Insgesamt versteht es sich, dass der offenbarte Gegenstand modifiziert und variiert werden kann.
  • Der ein Substantiv modifizierende Artikel „ein(e)“ sollte dahingehend verstanden werden, dass er eine(n) oder mehrere bezeichnet, es sei denn, es ist etwas anderes angegeben oder der Kontext erfordert etwas anderes. Der Ausdruck „basierend auf“ schließt teilweise oder vollständig basierend auf ein.
  • Ordinale Adjektive, wie etwa „erster“ und „zweiter“, werden in der gesamten Schrift als Identifikatoren verwendet und sollen keine Bedeutung oder Reihenfolge andeuten.
  • Gemäß der vorliegenden Erfindung ist ein System bereitgestellt, das einen Computer aufweist, der einen Prozessor und einen Speicher beinhaltet, wobei in dem Speicher Anweisungen gespeichert sind, die durch den Prozessor zu Folgendem ausführbar sind: Bestimmen einer Vielzahl von Sätzen von Abtastdatenpunkten, die von einem Fahrzeugsensor gesammelt werden, wobei jeder Satz eine vorbestimmte Anzahl von aufeinanderfolgenden Abtastdatenpunkten beinhaltet; Bestimmen jeweiliger Differenzen zwischen Paaren aufeinanderfolgender Abtastdatenpunkte in jedem Satz; Speichern der Differenzen in jeweiligen Teilräumen eines von einer Vielzahl von Speicherräumen des Speichers, wobei in jedem Speicherraum in der Vielzahl von Speicherräumen Differenzen von einem und nur einem der Vielzahl von Sätzen von Abtastdatenpunkten gespeichert werden; Wiederherstellen der gesammelten Daten basierend auf den gespeicherten Differenzen in der Vielzahl von Speicherräumen; und Betätigen einer Fahrzeugkomponente basierend auf den wiederhergestellten Daten.
  • Gemäß einer Ausführungsform sind die gesammelten Daten Motordrehzahldaten, und die Anweisungen beinhalten ferner Anweisungen zum Betätigen eines Fahrzeugantriebs basierend auf wiederhergestellten Motordrehzahldaten.
  • Gemäß einer Ausführungsform ist eine Speichergröße jedes Speicherraums kleiner als eine kombinierte Speichergröße des Satzes von Abtastdatenpunkten, der dem jeweiligen Speicherraum zugeordnet ist.
  • Gemäß einer Ausführungsform ist der Speicherraum eine Vielzahl von 16-Bit-Datenblöcken, und jeder 16-Bit-Datenblock beinhaltet zwei der Differenzen, die als eine 8-Bit-Zahl gespeichert sind.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Generieren einer Polynominterpolation basierend auf der Vielzahl von Abtastdatenpunkten und zum Wiederherstellen der gesammelten Daten basierend auf der Polynominterpolation und den gespeicherten Differenzen.
  • Gemäß einer Ausführungsform ist die Polynominterpolation ein kubischer Spline.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Betätigen der Fahrzeugkomponente basierend auf einem wiederhergestellten Datenpunkt zwischen zwei aufeinanderfolgenden Abtastdatenpunkten, wobei der wiederhergestellte Datenpunkt auf der Polynominterpolation zwischen den zwei aufeinanderfolgenden Abtastdatenpunkten basiert.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Bestimmen einer jeweiligen Steigung zwischen jedem Paar aufeinanderfolgender Abtastdatenpunkte in jedem Satz und zum Wiederherstellen der Abtastdatenpunkte basierend auf den bestimmten Steigungen.
  • Gemäß einer Ausführungsform beinhaltet jeder Satz der Abtastdatenpunkte Abtastdatenpunkte innerhalb eines spezifizierten Zeitraums.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen ferner Anweisungen zum Bestimmen eines Skalierungsfaktors für jeden Speicherraum, um jede bestimmte Differenz von einer Gleitkommazahl in eine ganze Zahl umzuwandeln, und zum Speichern des Skalierungsfaktors als ein Segment in dem Speicherraum.
  • Gemäß einer Ausführungsform basiert der Skalierungsfaktor auf einer Größe einer der Differenzen in dem Speicherraum.
  • Gemäß einer Ausführungsform beinhalten die Anweisungen zum Wiederherstellen der Abtastdatenpunkte ferner Anweisungen zum Dividieren jeder Differenz in dem Speicherraum durch den Skalierungsfaktor.
  • Gemäß einer Ausführungsform beinhaltet der Speicherraum einen ersten Abtastdatenpunkt des Satzes von Abtastdatenpunkten, der dem Speicherraum zugeordnet ist, und die Anweisungen zum Wiederherstellen der gesammelten Daten beinhalten Anweisungen zum Summieren des ersten Abtastdatenpunktes mit mindestens einer der gespeicherten Differenzen.
  • Gemäß der vorliegenden Erfindung beinhaltet ein Verfahren Folgendes: Bestimmen einer Vielzahl von Sätzen von Abtastdatenpunkten, die von einem Fahrzeugsensor gesammelt werden, wobei jeder Satz eine vorbestimmte Anzahl von aufeinanderfolgenden Abtastdatenpunkten beinhaltet; Bestimmen jeweiliger Differenzen zwischen Paaren aufeinanderfolgender Abtastdatenpunkte in jedem Satz; Speichern der Differenzen in jeweiligen Teilräumen eines von einer Vielzahl von Speicherräumen des Speichers, wobei in jedem Speicherraum in der Vielzahl von Speicherräumen Differenzen von einem und nur einem der Vielzahl von Sätzen von Abtastdatenpunkten gespeichert werden; Wiederherstellen der gesammelten Daten basierend auf den gespeicherten Differenzen in der Vielzahl von Speicherräumen; und Betätigen einer Fahrzeugkomponente basierend auf den wiederhergestellten Daten.
  • In einem Aspekt der Erfindung sind die gesammelten Daten Motordrehzahldaten; und das Verfahren umfasst ferner Betätigen eines Antriebs basierend auf wiederhergestellten Motordrehzahldaten.
  • In einem Aspekt der Erfindung ist der Speicherraum eine Vielzahl von 16-Bit-Datenblöcken, und jeder 16-Bit-Datenblock beinhaltet zwei Differenzen, wobei jede Differenz als eine 8-Bit-Zahl gespeichert ist.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Generieren einer Polynominterpolation basierend auf der Vielzahl von Abtastdatenpunkten und Wiederherstellen der gesammelten Daten basierend auf der Polynominterpolation und den gespeicherten Differenzen.
  • In einem Aspekt der Erfindung beinhaltet das Verfahren Bestimmen einer jeweiligen Steigung zwischen jedem Paar aufeinanderfolgender Abtastdatenpunkte in jedem Satz und Wiederherstellen der Abtastdatenpunkte basierend auf den bestimmten Steigungen.
  • In einem Aspekt der Erfindung beinhaltet jeder Satz der Abtastdatenpunkte Abtastdatenpunkte innerhalb eines spezifizierten Zeitraums.
  • In einem Aspekt der Erfindung beinhaltet der Speicherraum einen ersten Abtastdatenpunkt des Satzes von Abtastdatenpunkten beinhalten, der dem Speicherraum zugeordnet ist, und das Verfahren umfasst ferner Summieren des ersten Abtastdatenpunktes mit mindestens einer der gespeicherten Differenzen.

Claims (15)

  1. Verfahren, umfassend: Bestimmen einer Vielzahl von Sätzen von Abtastdatenpunkten, die von einem Fahrzeugsensor gesammelt wurden, wobei jeder Satz eine vorbestimmte Anzahl von aufeinanderfolgenden Abtastdatenpunkten beinhaltet; Bestimmen jeweiliger Differenzen zwischen Paaren aufeinanderfolgender Abtastdatenpunkte in jedem Satz; Speichern der Differenzen in jeweiligen Teilräumen eines von einer Vielzahl von Speicherräumen des Speichers, wobei in jedem Speicherraum in der Vielzahl von Speicherräumen Differenzen von einem und nur einem von der Vielzahl von Sätzen von Abtastdatenpunkten gespeichert werden; Wiederherstellen der gesammelten Daten basierend auf den gespeicherten Differenzen in der Vielzahl von Speicherräumen; und Betätigen einer Fahrzeugkomponente basierend auf den wiederhergestellten Daten.
  2. Verfahren nach Anspruch 1, wobei die gesammelten Daten Motordrehzahldaten sind und das Verfahren ferner Betätigen eines Fahrzeugantriebs basierend auf wiederhergestellten Motordrehzahldaten umfasst.
  3. Verfahren nach Anspruch 1, wobei eine Speichergröße jedes Speicherraums kleiner ist als eine kombinierte Speichergröße des Satzes von Abtastdatenpunkten, der dem jeweiligen Speicherraum zugeordnet ist.
  4. Verfahren nach Anspruch 1, wobei der Speicherraum eine Vielzahl von 16-Bit-Datenblöcken ist und jeder 16-Bit-Datenblock zwei der Differenzen beinhaltet, die als eine 8-Bit-Zahl gespeichert sind.
  5. Verfahren nach Anspruch 1, ferner umfassend Generieren einer Polynominterpolation basierend auf der Vielzahl von Abtastdatenpunkten und Wiederherstellen der gesammelten Daten basierend auf der Polynominterpolation und den gespeicherten Differenzen.
  6. Verfahren nach Anspruch 5, wobei die Polynominterpolation ein kubischer Spline ist.
  7. Verfahren nach Anspruch 5, ferner umfassend Betätigen der Fahrzeugkomponente basierend auf einem wiederhergestellten Datenpunkt zwischen zwei aufeinanderfolgenden Abtastdatenpunkten, wobei der wiederhergestellte Datenpunkt auf der Polynominterpolation zwischen den zwei aufeinanderfolgenden Abtastdatenpunkten basiert.
  8. Verfahren nach einem der Ansprüche 1-7, ferner umfassend Bestimmen einer jeweiligen Steigung zwischen jedem Paar aufeinanderfolgender Abtastdatenpunkte in jedem Satz und Wiederherstellen der Abtastdatenpunkte basierend auf den bestimmten Steigungen.
  9. Verfahren nach einem der Ansprüche 1-7, wobei jeder Satz der Abtastdatenpunkte Abtastdatenpunkte innerhalb eines spezifizierten Zeitraums beinhaltet.
  10. Verfahren nach einem der Ansprüche 1-7, ferner umfassend Bestimmen eines Skalierungsfaktors für jeden Speicherraum, um jede bestimmte Differenz von einer Gleitkommazahl in eine ganze Zahl umzuwandeln und Speichern des Skalierungsfaktors als ein Segment in dem Speicherraum.
  11. Verfahren nach Anspruch 10, wobei der Skalierungsfaktor auf einer Größe einer der Differenzen in dem Speicherraum basiert.
  12. Verfahren nach Anspruch 10, ferner umfassend Dividieren jeder Differenz in dem Speicherraum durch den Skalierungsfaktor.
  13. Computer, der dazu programmiert ist, das Verfahren nach einem der Ansprüche 1-7 durchzuführen.
  14. Fahrzeug, umfassend den Computer nach Anspruch 13.
  15. Computerprogrammprodukt, umfassend ein computerlesbares Medium, auf dem Anweisungen gespeichert sind, die durch einen Computerprozessor ausführbar sind, um das Verfahren nach einem der Ansprüche 1-7 auszuführen.
DE102022107743.8A 2021-04-19 2022-03-31 Verbesserte datenkompression Pending DE102022107743A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/233,992 2021-04-19
US17/233,992 US20220335105A1 (en) 2021-04-19 2021-04-19 Enhanced data compression

Publications (1)

Publication Number Publication Date
DE102022107743A1 true DE102022107743A1 (de) 2022-10-20

Family

ID=83446945

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022107743.8A Pending DE102022107743A1 (de) 2021-04-19 2022-03-31 Verbesserte datenkompression

Country Status (3)

Country Link
US (1) US20220335105A1 (de)
CN (1) CN115220650A (de)
DE (1) DE102022107743A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117860267A (zh) * 2024-03-12 2024-04-12 北京智冉医疗科技有限公司 脑神经信号处理方法、计算机存储介质、电子设备和脑电信号处理系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7237433B2 (en) * 2003-11-07 2007-07-03 General Motors Corporation Hybrid tire pressure monitoring system
WO2010088465A1 (en) * 2009-02-02 2010-08-05 Gentex Corporation Improved digital image processing and systems incorporating the same
US10122831B2 (en) * 2013-11-19 2018-11-06 Here Global B.V. Method for compressing and reconstructing data sampled from continuous functions
US9425819B1 (en) * 2015-01-29 2016-08-23 The Boeing Company Adaptive compression of data
KR20220068239A (ko) * 2019-09-20 2022-05-25 소나투스, 인코포레이티드 추가 차량 통신 제어를 위한 시스템, 방법, 및 장치
WO2021141117A1 (ja) * 2020-01-09 2021-07-15 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元データ符号化方法、三次元データ復号方法、三次元データ符号化装置、及び三次元データ復号装置

Also Published As

Publication number Publication date
CN115220650A (zh) 2022-10-21
US20220335105A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
DE102011010608A1 (de) Verfahren und Vorrichtung für die Prognose der Funktionsfähigkeit einer Fahrzeugkomponente durch Integration eines Alterungsmodells, Gebrauchsinformation sowie Funktionsfähigkeitkeitssignaturen
DE102011113016A1 (de) Verfahren zur Umgebungsrepräsentation eines Fahrzeugs
DE102016121539A1 (de) Vorrichtung und Verfahren zum aktiven Vibrationssteuern eines Hybridelektrofahrzeugs
DE102010011629A1 (de) Verfahren zur Umgebungsrepräsentation eines Fahrzeugs
DE102007030431A1 (de) Verfahren zur Fahrtrichtungserkennung eines Kraftfahrzeugs
DE102019121589A1 (de) Verfahren zur Bestimmung einer Sensorkonfiguration
DE102009024544A1 (de) Automatisierte Bedatung eines Ottomotors
DE102021102898A1 (de) Verbesserte objekterfassung mit clustering
DE102022107743A1 (de) Verbesserte datenkompression
DE102022114048A1 (de) Bildentzerrung
DE102014225039A1 (de) Verfahren und Vorrichtung zum Bereitstellen von spärlichen Gauß-Prozess-Modellen zur Berechnung in einem Motorsteuergerät
DE102021129697A1 (de) Maschinenlernverfahren und Maschinenlernsystem
DE102019208878A1 (de) Vorrichtung und Verfahren zur adaptiven Geschwindigkeitssteuerung
DE102016109762A1 (de) Kompressionsalgorithmen für fahrzeugbus-messaging von vorschaudaten
EP2088486A1 (de) Verfahren zur Vermessung eines nichtlinearen dynamischen realen Systems mittels Versuchsplanung
DE102018126511A1 (de) Lidar-signal-komprimierung
DE102020128818A1 (de) Verbesserte dimensionierung von komponenten
DE102020202335A1 (de) Verfahren und Vorrichtung zum Erstellen eines Modells eines technischen Systems aus Messungen
DE102019201953B4 (de) Verfahren und Detektionsvorrichtung zum Detektieren eines Eingriffs in ein Kraftfahrzeug sowie Kraftfahrzeug mit einer Detektionsvorrichtung
DE102021103024A1 (de) System und verfahren zur nahezu verlustfreien universellen datenkompression mit korrelierten datensequenzen
CN114648044A (zh) 基于eemd和深度域对抗网络的振动信号诊断分析方法
DE102021120968A1 (de) Fahrzeugsensorbetrieb
DE102020127051A1 (de) Verfahren zur Bestimmung von sicherheitskritischen Ausgabewerten mittels einer Datenanalyseeinrichtung für eine technische Entität
DE102019214546A1 (de) Computerimplementiertes Verfahren und Vorrichtung zur Optimierung einer Architektur eines künstlichen neuronalen Netzwerks
DE102022113690A1 (de) Verfahren, System und Computerprogrammprodukt zum autonomen intuitiven Kalibrieren eines technischen Bauteils, insbesondere eines Fahrzeugantriebsstrangs für ein Kraftfahrzeug

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: LORENZ SEIDLER GOSSEL RECHTSANWAELTE PATENTANW, DE