-
GEBIET DER OFFENBARUNG
-
Die vorliegende Offenbarung betrifft die Kalibrierung von Vektoren in einem Messsystem, und insbesondere die Kalibrierung einer Korrekturfunktion für systematische Fehler in aufeinanderfolgenden Datenvektoren.
-
HINTERGRUND
-
Es ist in verschiedenen Zusammenhängen erforderlich, Daten zu kalibrieren, um systematische Fehler in Datenvektoren zu berücksichtigen. Derzeit muss die Kalibrierung durchgeführt werden, indem zunächst ein bekannter Eingabestimulus erzeugt wird, der eine Erwartung für eine Ausgabe bereitstellt. Bei jedem Unterschied bzw. jeder Differenz zwischen der erwarteten Ausgabe und den tatsächlichen Werten ist dann bekannt, dass systematische Fehler enthalten sind und diese Information kann dann verwendet werden, um abgelesene Datenwerte weiter zu kalibrieren, indem angemessene Anpassungen an den nachfolgenden tatsächlichen abgelesenen Datenwerten gemacht werden.
-
Jedoch ist es oftmals nicht zweckmäßig, einen bekannten Eingabestimulus zu erzeugen. Es kann dauern, um den Stimulus zu erzeugen, wodurch der normale Betrieb der üblichen Datenverarbeitungsfunktionalität unterbrochen wird. Es kann schwierig sein, den bekannten Stimulus anzuwenden, zum Beispiel falls es erforderlich ist, ihn bei Werksbedingungen oder in einer anderen künstlichen Umgebung anzuwenden.
-
ZUSAMMENFASSUNG DER OFFENBARUNG
-
Gemäß einem ersten Aspekt der Offenbarung ist ein Verfahren zum Bestimmen einer Vektorkalibrierungsfunktion bereitgestellt, umfassend: Zuordnen von aufeinanderfolgenden Datenvektoren zu Bins; und Optimieren der zugeordneten Datenvektoren, sobald Datenvektoren beobachtet wurden, die einer minimalen Anzahl von eindeutigen Bins zugeordnet sind.
-
Optional umfasst das Verfahren das Erstellen eines anfänglichen Kalibrierungsschätzwerts und wobei das Zuordnen und Optimieren basierend auf diesem anfänglichen Kalibrierungsschätzwert durchgeführt werden.
-
Optional werden Bins für dieses Zuordnen von aufeinanderfolgenden Datenvektoren basierend auf einer Richtung eines kalibrierten Vektors definiert.
-
Optional wird ein Bin für jeden Orthanten eines Raums definiert ist, der von den Datenproben aufgespannt wird.
-
Optional werden zusätzliche Bins in Grenzbereichen zwischen den Hauptbins definiert.
-
Optional weisen diese Grenzbereiche Bereiche an oder innerhalb eines Grenzbereichs von einer oder mehr Achsen eines Raums auf.
-
Optional weisen die Datenproben Vektoren auf und eine Kalibrierungsfunktion umfasst eine affine Transformation, die eine Hermitische Lineartransformation und einen Versatz bzw. Offset auf Rohdatenproben anwendet, wobei die Parameter der Lineartransformation und der den Versatz bzw. Offset definierende Vektor die freien Parameter der Kalibrierungsfunktion definieren.
-
Optional ist die minimale Anzahl von eindeutigen Bins zumindest gleich der Anzahl an freien Parameter in der affinen Transformation.
-
Optional wird jedem der zugeordneten Datenproben eine Gültigkeitsperiode gegeben, die beginnt, wenn die Probe in einem Bin platziert wird und die abläuft, nachdem eine festgelegte Zeit abgelaufen ist; und nachdem diese Gültigkeitsperiode abgelaufen ist wird die Datenprobe ignoriert, wenn die Optimierung durchgeführt wird.
-
Optional umfasst das Optimieren der zugeordneten Datenproben ein Gradienten(abfall)verfahren.
-
Optional wird bei diesem Gradientenverfahren eine Kostenfunktion minimiert, wobei diese Kostenfunktion eine Abweichung von dem Einheitsbetrag für jede gespeicherte Datenprobe darstellt.
-
Optional umfasst das Verfahren das Überprüfen der Gültigkeit einer optimierten Lösung und Verwerfen der Lösung, falls sie durch eine oder mehr Gültigkeitsprüfungen fällt.
-
Optional weisen die Datenproben Vektoren auf und eine Kalibrierungsfunktion umfasst eine affine Transformation, die eine Hermitische Lineartransformation und einen Versatz auf Rohdatenproben anwendet, wobei die Parameter der Lineartransformation und des den Versatz definierenden Vektors die freien Parameter der Kalibrierungsfunktion definieren.
-
Optional wird eine Lösung als ungültig identifiziert, falls einer oder mehr ihrer assoziierten freien Parameter oder Kombinationen davon Beträge haben, welche vorgegebene Grenzwerte übersteigen oder schneiden.
-
Optional wird ein Fehler markiert, falls nachfolgende Eingabevektoren, die dem gleichen Bin zugeordnet sind, um mehr als einen maximal vorgegebenen Winkel abweichen.
-
Optional wird eine Lösung erst als ungültig identifiziert wird, nachdem eine vorgegebene Anzahl an Fehlern markiert wurden.
-
Optional umfasst ein anfänglicher Kalibrierungsschätzwert eine Identitätsmatrix für die Hermitische Lineartransformation und einen Nullversatz.
-
Optional umfasst ein anfänglicher Kalibrierungsschätzwert eine anfängliche Menge von Datenproben.
-
Optional umfasst das Verfahren das Aktualisieren der Probendaten, bis ein Stoppkriterium erfüllt ist.
-
Optional umfasst das Stoppkriterium das Bestimmen, dass das eine oder mehr Diagonalmatrixelement der Hermitischen Lineartransformation innerhalb eines vorgegebenen Bereichs liegt.
-
Optional umfasst das Verfahren das Zurücksetzen des Zuordnungs-Prozesses, falls der anfängliche Schätzwert schlecht ist.
-
Gemäß einem zweiten Aspekt der Offenbarung ist ein Sensorkalibrierungssystem bereitgestellt, aufweisend einen Prozessor, der angeordnet ist, um Sensordatenvektoren von einem oder mehr Sensoren zu empfangen, eine Kalibrierungsfunktion zu bestimmen durch Zuordnen von aufeinanderfolgenden Datenvektoren zu Bins und Optimieren der zugeordneten Datenvektoren, sobald Datenvektoren beobachtet wurden, die einer minimalen Anzahl von eindeutigen Bins zugeordnet sind, und um einen kalibrierten Sensormesswert auszugeben.
-
Gemäß einem dritten Aspekt der Offenbarung ist eine tragbare elektronische Vorrichtung bereitgestellt, aufweisend einen oder mehr Sensoren und das Sensorkalibrierungssystem nach dem zweiten Aspekt.
-
Optional umfassen die Sensoren, die angeordnet sind, um durch das Sensorkalibrierungssystem kalibriert zu werden: ein oder mehr Magnetometer und/oder einen oder mehr Beschleunigungsmesser; und/oder einen oder mehr Radiofrequenz-Empfänger, -Sender oder -Sendeempfänger.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
- 1 veranschaulicht schematische Komponenten eines Systems zum Implementieren einer Kalibrierungsfunktion gemäß der Offenbarung;
- 2 zeigt eine Oberfläche, die durch nicht-kalibrierte Messungen eines verzerrten Vektorfelds in drei Dimensionen gebildet wurde
- 3 zeigt, wie die gleichen Messungen aus 2 nach der Kalibrierung aussehen sollten;
- 4 zeigt eine Visualisierung von dreidimensionalen Vektor-Index-Bins;
- 5 zeigt eine Menge von Eingabevektoren, die von einer Sensorvorrichtung aufgezeichnet wurden, gefolgt von den kalibrierten Vektoren, die erhalten werden, wenn die Kalibrierungsparameter ohne Zuordnung zu Bins berechnet werden;
- 6 zeigt berechnete Parameter unter Verwendung von Parameteroptimierung ohne Zuordnung zu Bins;
- 7 zeigt Eingabe- und Ausgabevektoren unter Verwendung von Parameteroptimierung mit Zuordnung zu Bins; und
- 8 zeigt berechnete Parameter unter Verwendung von Parameteroptimierung mit Zuordnung zu Bins.
-
DETAILLIERTE BESCHREIBUNG
-
Obgleich die vorliegende Offenbarung allgemein die Kalibrierung von jedweder Art von Daten betrifft, ist ein bestimmtes Beispiel das der Mess- bzw. (Ab)Lesewerte, die durch Messvorrichtungen erhalten werden, und zum Zwecke der Veranschaulichung wird hier die Kalibrierung von Messvorrichtungen dieser Art erörtert, die in einer tragbaren Rechenvorrichtung wie etwa einem Mobiltelefon, Smartphone, Tablet-Computer, einer tragbaren Vorrichtung oder einem anderen Sensorknoten verwendet werden kann, um verbesserte Mess bzw. Lesewerte für das bessere Funktionieren dieser Vorrichtungen bereitzustellen.
-
Die Offenbarung betrifft die Kalibrierung der Ausgabemesswerte bzw. Ablesewerte solcher Vorrichtungen und als solche werden die Daten kalibriert, obgleich erkannt werden wird, dass dort, wo eine Messvorrichtung bereitgestellt ist, die eine Primärfunktion besitzt, um eine Art von Parameter zu messen, die Kalibrierung als Vorrichtungskalibrierung bezeichnet wird; zum Beispiel kann die Kalibrierung der Ausgabe eines Magnetometers als Kalibrierung der Daten bezeichnet werden, die durch das Magnetometer verarbeitet werden, oder allgemein als „Magnetometer Kalibrierung“.
-
Die Kalibrierung von Messvorrichtungen kann zum Beispiel den dreidimensionalen Fall der Kalibrierung einer Menge von orthogonal platzierten Magnetfeldsensoren, oder den zweidimensionalen Fall der Korrektur der Unausgeglichenheit zwischen phasengleichen und Quadraturkomponenten eines Radiofrequenz (RF) -Empfängers beinhalten.
-
Die Offenbarung richtet sich an Probleme, die durch systematische Fehler in Datenvektoren verursacht werden. Die systematischen Fehler können von Messfehlern stammen, von externen Faktoren wie etwa Temperaturschwankungen oder elektromagnetischer Interferenz, oder von anderer Verarbeitung, die nach der Messung durchgeführt wird, wie etwa der Verstärkung oder Filterung. Die systematischen Fehler können als Verstärkungs-Nichtübereinstimmung zwischen unterschiedlichen Sensoren in einem Sensorarray dargestellt werden, die zum Beispiel auftreten können, wo Empfindlichkeiten auf externe Stimulationen leicht verschieden sind, und/oder als damit in Verbindung stehende relative Versätze. Zudem erlaubt es die Kalibrierung, dass externe Interferenz, welche die Datenlesewerte einschließlich der Sensormesswerte bzw. (Ab)Lesewerte beeinträchtigen kann, ausgeglichen bzw. kompensiert wird. Beispiele hierfür sind die harten und weichen Eisenverzerrungen, die beim Versuch, das Magnetfeld der Erde zu messen, durch Metall oder Magnete eingebracht werden. Solche Verzerrungen können durch Kalibrierung entfernt werden, wodurch eine zuverlässige Messung des Zielmagnetfelds ermöglicht wird. Dies ist von besonderer Bedeutung für konstante Verzerrungen, die durch elektronische Bauteile eingebracht werden, die eine Magnetometer-Vorrichtung unterstützen.
-
1 ist ein schematisches Diagramm, das ein Beispiel eines Systems zur Kalibrierung von Vektoren gemäß der vorliegenden Offenbarung angibt. Das System nimmt Eingabevektoren 100 aus einer Datenquelle wie etwa einem Sensor, Sensorarray, oder allgemein jeder Datenquelle auf, und gibt kalibrierte Vektoren 102 aus, die einer Zielvorrichtung wie einer tragbaren Rechenvorrichtung bereitgestellt werden können.
-
Das System umfasst eine optionale Grobkalibrierungseinheit 104, eine Optimierungseinheit 106, eine Zuordnungs-Einheit 108, und eine Hauptkalibrierungseinheit 110. Die Kalibrierungsparameter (die untenstehend erörtert und definiert werden) werden aus der Grobkalibrierungseinheit 104 abgeleitet, die auf den Roheingabevektoren 100 arbeitet, oder aus vorab festgelegten anfänglichen Parametern 114. Die Optimierungseinheit 106 empfängt die Kalibrierungsparameter und wendet einen Optimierungsalgorithmus basierend auf vorab gespeicherten Vektoren 114 und den empfangenen Kalibrierungsparametern an. Die Vektoren werden über eine Binning-Einheit 108 gespeichert, deren Betrieb untenstehend beschrieben werden wird.
-
Es sei angemerkt, dass das Funktionsdiagramm aus 1 nicht für die physische Implementierung eines Kalibrierungssystems vorgeschrieben ist. Jedwede geeignete Kombination von Software, Firmware und Hardware kann verwendet werden, um die veranschaulichten Funktionalitäten zu implementieren, und die relevanten Module können auf einem oder mehr Prozessoren in einer verteilten, nicht-verteilten, oder Multiprozessor- Umgebung ausführen. Das System kann auf einem Mikroprozessor oder einem Digitalsignalprozessor (DSP) oder jedwedem entsprechenden Prozessor implementiert werden.
-
Das Kalibrierungssystem aus 1 kann optional dem Rest der Verarbeitungskette einen Hinweis dahingehend bereitstellen, ob die kalibrierten Sensordaten gültig sind oder nicht. Dies kann in Form eines Gültigkeitsflags erfolgen, der durch das Kalibrierungssystem aus 1 zusammen mit den kalibrierten Vektoren 102 ausgegeben wird. Der Gültigkeitshinweis könnte beispielsweise verwendet werden, um aufzuzeigen, dass die Kalibrierungsroutine noch keine geeignete Kalibrierungsfunktion gefunden hat, oder dass die Sensorrohdaten den falschen Maßstab besitzen, um als gültige Eingabe an der Zielanwendung angesehen zu werden.
-
Die gegenwärtige Praxis, um die Kalibrierungsfunktion zu bestimmen, besteht darin, einen vorgegebenen Eingabestimulus zu verwenden, um es zu ermöglichen, dass der dynamische Bereich der oder jeder Datenquelle (wie etwa jeder Sensor in einem Array) beobachtet werden kann, wodurch es ermöglicht wird, dass Skalierungsfaktoren und Versätze derart berechnet werden können, dass die kalibrierten Ausgaben innerhalb des gewünschten Bereichs für die Zielanwendung liegen.
-
Für das Magnometerbeispiel, bei dem Versuch das Magnetfeld der Erde zu messen, besitzt der erwartete Betrag des Vektors einen bekannten und konstanten Betrag. Eine Kalibrierungsroutine konditioniert die Sensorrohdaten derart, dass sie dieser Erwartung entsprechen, oder versieht die Rohdaten potentiell mit einem Flag als ungültig, falls deren Betrag übermäßig groß oder klein ist.
-
Die vorliegende Offenbarung berechnet und wendet eine Kalibrierungsfunktion auf Rohsensordaten bei Laufzeit an. Das bedeutet, dass die Kalibrierung ausgeführt werden kann, während eine Zielvorrichtung verwendet wird oder ein Hostsystem in Betrieb ist. Weil die Kalibrierungsparameter kontinuierlich aktualisiert werden, ermöglicht es die Korrektur systematischer Fehler, die einem Drift unterliegen.
-
Gemäß der Offenbarung wird ein anfänglicher Schätzwert aus Kalibrierungsparametern aufgebaut bzw. berechnet. Dies kann einen vorab festgelegten Wert der Daten verwenden oder auf tatsächlichen Dateneingaben basieren, um eine grobe Schätzung der Kalibrierungsparameter bereitzustellen.
-
Dann wird die anfängliche Schätzung bzw. der anfängliche Schätzwert optimiert, um den anfänglichen Kalibrierungsparameterschätzwert zu verfeinern. Eine bestimmte Untermenge der beobachteten Datenvektoren über der Zeit, von denen bekannt ist, dass sie zu einer stabilen Lösung konvergieren, werden verwendet, um eine Optimierung der Kalibrierungsparameter durchzuführen. Dies wird durch das Zuordnen bzw. Binning der abgetasteten Vektoren der Daten erzielt, und die Optimierung der Daten findet statt, wenn Vektoren beobachtet werden, die einer minimalen Anzahl eindeutiger Bins zugeordnet sind. Die anfängliche Schätzung ermöglicht es, dass der Optimierungsprozess schnell hin zu einer stabilen Lösung konvergiert.
-
Die Erfindung findet eine Kalibrierungsfunktion C, die auf eine Menge von N Sensoren oder anderen Datenquellen angewendet werden kann, die ein Vektorfeld der Dimension N messen, was zu einem kalibrierten Vektorwert führt.
-
In einer bevorzugten Ausführungsform wird angenommen, dass die Kalibrierungsfunktion C eine affine Transformation bzw. Abbildung ist, die als die Kombination einer Hermitischen Lineartransformation (A) bzw. Abbildung und einem Versatz bzw. einer Verschiebung (Offset) (b) ausgedrückt werden kann:
-
Wobei:
- x ein Spaltenvektor mit N Elementen ist (Eingabedatenvektor)
- y ein Spaltenvektor mit N Elementen ist (kalibrierter Datenvektor)
- A eine Hermitische NxN Matrix ist
- b ein Spaltenvektor mit N Elementen ist.
-
Eine alternative, äquivalente Form lautet C(x) = A · (x + b'), wobei b' = A-1b. b' = A-1b.
-
Für N=2 kann die affine Abbildung definiert werden als:
wobei p
l, mit l = {1, ··· , 5}, die zu bestimmenden freien Parameter sind.
-
Auf ähnliche Weise, für N=3, kann die affine Abbildung wie folgt definiert werden:
wobei p
l, mit l = {1, ···, 9}, die zu bestimmenden freien Parameter sind, die vorliegend als Kalibrierungsparameter bezeichnet werden. Die Offenbarung stellt ein Verfahren zum Verwenden einer Optimierung auf einer begrenzten Menge von Eingabevektoren bereit, um diese freien Parameter zu schätzen. Die Kalibrierungsfunktion bildet dann ein verzerrtes Vektorfeld auf ein Vektorfeld mit konstanter Größe bzw. Betrag ab.
2 zeigt ein Beispiel einer ovalen Oberfläche, die durch nicht-kalibrierte Messungen eines verzerrten Vektorfelds in drei Dimensionen gebildet wird.
3 zeigt, wie die gleichen Messungen nach der Kalibrierung aussehen sollten - Verschiebungen bzw. Versätze wurden entfernt und die Messungen bilden die Oberfläche einer mittigen Kugel.
-
Eine Hermitische Matrix stimmt mit ihrer komplexen Transponierten überein. Wenn man weiß, dass die Elemente der Matrix real sind, ist die Matrix entlang der Diagonalen symmetrisch. Der Grund dafür, dass diese bestimme Untermenge von affinen Transformationen bzw. Abbildungen gewählt wird besteht darin, dass die Kostenfunktion E (unten definiert) im Hinblick auf den Betrag des kalibrierten Ausgabevektors definiert ist, somit rotationsinvariant ist. Die Wahl schließt Drehungen und Spiegelungen aus der Menge aller möglichen affinen Transformationen aus, weil wir diese nicht kalibrieren können.
-
Anfängliche Kalibrierung
-
Der Kalibrierungsvorgang beginnt mit einem anfänglichen Schätzwert der Kalibrierungsparameter und verfeinert diese Schätzung in der Folge. Der anfängliche Schätzwert für die Kalibrierungsparameter kann ein vorab festgelegter Wert sein, zum Beispiel die Annahme eines anfänglichen Schätzwerts, wobei A die Identitätsmatrix ist, und ein anfänglicher Schätzwert für b gleich null ist. Alternativ, oder nach einer anfänglichen Schätzung basierend auf einem vorab festgelegten Wert, könnte ein verbesserter anfänglicher Schätzwert für die freien Parameter erhalten werden, indem die Sensoren über eine kurze Zeitspanne abgetastet werden, wobei ein Abtastwert zum Zeitpunkt t von Sensor n aus N als x(n),t bezeichnet wird.
-
Die anfängliche Schätzung basiert bevorzugt auf der Annahme, dass es keine Querterme (Elemente in A außerhalb der Diagonale D) in der Kalibrierungsfunktion gibt: nur Verstärkungs- und Verschiebungsausgleich. Für jede Achse können die Verstärkungs-Korrekturwerte geschätzt werden durch 2 dividiert durch die Differenz zwischen dem maximalen und dem minimalen Wert entlang jener Achse, und die Verschiebung kann geschätzt werden durch den Mittelwert der maximalen und minimalen Werte, negiert und multipliziert mit der Verstärkungs-Korrektur. Es sei angemerkt, dass beim Schätzen des Versatzes der minimale Wert als negativ zu erwarten ist. Falls die maximalen und minimalen Werte gleich sind, jedoch unterschiedliche Vorzeichen tragen, ist der Versatz bzw. die Verschiebung gleich null.
-
Als Beispiel, für N = 2, können die Parameter mithilfe der folgenden Formel aktualisiert werden, bis ein Stoppkriterium erfüllt ist:
-
Auf ähnliche Weise, für N=3, können die Parameter mithilfe der folgenden Formel aktualisiert werden, bis ein Stoppkriterium erfüllt ist:
-
Ein geeignetes Stoppkriterium für die anfängliche Kalibrierungsstufe sieht vor, dass das Inverse von jedem der relevanten freien Parameter PI größer ist als ein Grenzwert (oder entsprechend dass die Verstärkungen kleiner sind als das Inverse eines Grenzwerts) - so dass die minimalen und maximalen beobachteten Werte für jeden der Sensoren ausreichend divergent sind, derart dass es angemessen sein kann anzunehmen, dass die Werte entsprechend den minimalen und maximalen Werten unter normalen Bedingungen beobachtet wurden. Als solche könnten diese Werte verwendet werden, um Verschiebungen und Skalierungsfaktoren zu korrigieren, derart dass die Sensoren kalibriert werden, um Daten in dem erwarteten Bereich auszugeben, wobei der Wertebereich unter normalen Betriebsbedingungen beobachtet wird.
-
Verfeinerung der anfänglichen Schätzung
-
Die anfängliche Schätzung wird mithilfe eines Vektor-Binning-Verfahrens verfeinert, um eine Menge von eindeutigen Vektoren bereitzustellen, auf denen ein Optimierungsalgorithmus ausgeführt werden kann, um eine Lösung für die freien Kalibrierungsparameter zu finden. Die anfänglichen Schätzwerte dieser Parameter werden durch den Verfeinerungsschritt als Ausgangspunkt für die Optimierung verwendet.
-
Binning
-
Eine Binning-Funktion B bildet jeden eingehenden Vektor x auf einen bestimmten Bin ab, basierend auf der Richtung von C(x), das heißt der Richtung, in der sich die kalibrierten Sensordaten von dem anfänglichen Schätzwert bewegen.
-
Jeder Bin weist eine bestimmte Untermenge von Abtastwerten auf. Die von unterschiedlichen Bins definierten Untermengen überschneiden sich nicht. Für jeden Bin behalten wir einen repräsentativen Eingabevektor, der aktualisiert wird, wenn ein neuer Abtastwert gefunden wurde, der in diesen bestimmten Bin fällt. Die zurückgehaltenen Vektoren werden mit einer Bin-Kennzeichnung markiert und dem Optimierungsalgorithmus durch ein Array zugänglich gemacht, das über die Bin-Kennzeichner-Indizes läuft. Deshalb umfasst das Binning von aufeinanderfolgenden Abtastwerten das Zuweisen von jedem Eingabevektor zu einer vorgegebenen Untermenge von Vektorwerten (ein Bin) und das Behalten von lediglich eines einzelnen Abtastwerts aus jedem Bin, wobei neuere Vektoren Ältere ablösen.
-
Der eingehende Vektor wird dann in einem Array gespeichert, dessen Indizes über den Bin laufen. Falls der Bin zuvor einen Vektor enthalten hat, wird dieser bestehende Vektor ersetzt. Die Menge an Bins stellt die bekannte Menge an Sensorwerten dar, die zu einer stabilen Parametrisierungslösung führen. Die Bins sollten den Raum aller möglichen Lösungen aufspannen, disjunkt sein, und es sollte mindestens so viele Bins geben wie die Anzahl der freien Parameter.
-
Optional wird jedem Vektor eine Gültigkeitsperiode zugewiesen, die für jeden Bin zurückgesetzt wird, wenn ein neuer Vektor in dem Bin platziert wird. Wenn die Gültigkeitsperiode abläuft, kann der Vektor in dem entsprechenden Bin dann als ungültig markiert werden und wird so von dem Optimierungsalgorithmus übergangen bzw. ignoriert. Dies verhindert, dass fehlerhafte Daten weiterhin zur Fehlerfunktion in der Optimierungsstufe beitragen, was wichtig wird, falls die kalibrierte Vorrichtung stationär bzw. ortsfest gehalten wird, da so langfristige Drifts der berechneten freien Parameter verhindert werden.
-
Die Binning-Funktion kann den Lösungsraum in eine beliebige Anzahl von Bins aufteilen, vorausgesetzt es gibt zumindest so viele Bins wie freie Parameter. Eine vergleichsweise kleine Anzahl von Bins stellt eine größere Geschwindigkeit und Berechnungseffizienz bereit, jedoch auf Kosten der Genauigkeit. Eine vergleichsweise große Anzahl von Bins stellt größere Genauigkeit bereit, jedoch auf Kosten der Geschwindigkeit und Berechnungseffizienz. Es wird einen Kompromiss im Hinblick auf die Wahl der Anzahl von Bins geben, wobei die angemessene Anzahl von den Anforderungen und Bedingungen bzw. Beschränkungen einer gegebenen Anwendung abhängt.
-
Für zweidimensionale Vektoren (N=2) besteht eine mögliche Binning-Funktion darin, alle möglichen Richtungen in einem Euklidischen Raum, der durch die zwei Sensorwerte darstellbar ist, in Quadranten zu unterteilen. Weitere Bins („Schutzbins“) können ebenfalls für Vektoren hinzugefügt werden, die innerhalb einer oder mehr Grenzabstände der Achsen des Raums liegen. Die zusätzlichen Bins stellen einen Schutz gegen zwei Vektoren bei benachbarten Bins bereit, die zufällig nahe aneinander liegen, wodurch sichergestellt wird, dass alle Bins unabhängige Vektoren enthalten. Dies stellt sicher, dass das resultierende Optimierungsproblem für die Menge an gespeicherten Vektoren nicht falsch aufgesetzt bzw. konditioniert wird.
-
Für dreidimensionale Vektoren (N=3) besteht eine mögliche Binning-Funktion darin, den Euklidischen Raum, der durch drei Sensorwerte darstellbar ist, in Oktanten zu unterteilen gemäß der Vorzeichen der Sensorwerte. Wiederum können weitere Bins („Schutzbins“) zu den Vektoren hinzugefügt werden, die innerhalb einer Menge von Grenzabständen der Achsen des Raums liegen. Diese zusätzlichen Bins stellen einen Schutz gegen zwei Vektoren bei benachbarten Bins bereit, die zufällig nahe beinander liegen, wodurch sichergestellt wird, dass alle Bins unabhängige Vektoren enthalten. Dies stellt sicher, dass das resultierende Optimierungsproblem für die Menge von gespeicherten Vektoren nicht falsch aufgesetzt bzw. konditioniert wird.
-
Ein Beispiel dieser Konfiguration ist in 4 für drei Dimensionen veranschaulicht, wobei unterschiedliche Bins in verschiedenen Farben angegeben sind. Die veranschaulichte Kugel ist im Ursprung zentriert, der den Wert der anfänglichen Kalibrierungsschätzung repräsentiert. Nachdem die Kalibrierungsfunktion angewendet wurde, wird jeder Oktant der resultierenden (sphärischen) Oberfläche (eine ist in Bezug auf Referenz 400 gezeigt) einem separaten Bin zugewiesen, wobei es auch zwei zusätzliche Bins gibt, die nahe an jeder der Achsen des Raums liegen. Ein Bin 402 (dunklere Schattierung) liegt den Achsen am nächsten, und ein anderer Bin 404 (hellere Schattierung) ist ein Bin-Index, der nicht stetig ist, und liegt zwischen dem einen Achsen-Bin 402 und einem Oktanten 400. Es wird allgemein effizient und ausreichend sein, zwei Bins zu haben, jedoch können sie wenn gewünscht in separate Bins aufgeteilt werden.
-
Man wird es zu schätzen wissen, dass ein ähnlicher Ansatz auf Vektoren höherer Ordnungen zutreffen würde. Der von Sensorwerten repräsentierte Raum kann in verschiedene Orthanten oder andere Sub-Vektoren in Abhängigkeit der Richtung der kalibrierten Messwerte bzw. Lesewerte aufgeteilt werden, und es ist möglich, zusätzliche Bins mit Grenzen innerhalb der festgelegten Grenzwerte jeder Achse des Raums bereitzustellen, um sicherzustellen, dass alle Bins unabhängige Vektoren enthalten.
-
Optional können Abtastwerte, die einen kalibrierten Wert haben, der einen Betrag hat, der kleiner ist als ein konfigurierbarer Minimalwert, oder größer ist als ein konfigurierbarer Maximalwert, als Außreiser bzw. „Outliner“ betrachtet werden, die ignoriert werden sollten: diese nicht zu einer Aktualisierung von irgendeinem Binrepräsentativen Wert führen.
-
Gradientenverfahren bzw. Gradientenabfall
-
Wenn die Anzahl von belegten Bins k einen Grenzwert Kmin' übersteigt, wird das Verfahren mit einem Optimierungsalgorithmus fortgesetzt. In einer bevorzugten Ausführungsform umfasst der Optimierungsalgorithmus ein Gradienten(abfall)verfahren.
-
Der Grenzwert Kmin sollte festgelegt werden, um zu garantieren, dass zumindest so viele unabhängige Vektoren beobachtet wurden, wie es freie Parameter gibt. Dies stellt sicher, dass es einen eindeutigen Raum (ein Ellipsoid für N=3, eine Ellipse für N=2) geben wird, auf dessen Oberfläche die beobachteten Vektoren liegen.
-
Zum Beispiel für N = 3, kann Kmin als 10 gewählt werden, wodurch garantiert wird, dass es zumindest 9 unabhängige Vektoren gibt, und für N = 2 kann Kmin als 6 gewählt werden, wodurch garantiert wird, dass es zumindest 5 unabhängige Vektoren gibt.
-
Eine Kostenfunktion E wird definiert, welche die Gesamtabweichung vom Einheitsbetrag für jeden gespeicherten Vektor darstellt. Der Gesamtfehler ist die Summe des Fehlers aus jedem Vektor. Die zu minimierende, quadrierte Fehlerfunktion ist dann definiert durch:
wobei
-
Die Kostenfunktion E kann mithilfe des Gradienten(abfall)verfahrens optimiert werden. Der Gradient kann als das Produkt der zwei Ableitungsfaktoren berechnet werden.
wobei:
und:
wobei jedes
direkt aus der Ableitung von C(x) erhalten werden kann.
-
Der Ausdruck für
stellt eine Approximation bzw. Annäherung dar, und der gesamte Ausdruck lautet:
-
Wenn y · y nahe bei 1 liegt, kann die folgende Approximation für
vorgenommen werden:
-
Durch Substitution kann F(C) ausgedrückt werden als:
-
Dies führt wiederum zu dem vereinfachten Ausdruck für
-
Detektion von ungültigen Lösungen
-
Es kann für die Optimierung der freien Parameter zu Lösungen kommen, die keine echte bzw. wirkliche Kalibrierung des Sensor-Arrays darstellen. Insbesondere, da die Diagnonalterme von A (die Verstärkungen darstellen) gegen 0 streben, strebt die kalibrierte Ausgabe immer gegen bzw. hin zu Vektor b. Somit gibt einen Raum lokaler Minima der Fehlerfunktion, der vermieden werden muss. Falls das System diesen Zustand erreicht, müssen Schritte unternommen werden, um das Problem zu korrigieren, zum Beispiel ein Rücksetzen.
-
Das Detektieren einer solchen Lösung kann durch verschiedene Mittel erzielt werden. Schwellen- bzw. Grenzwerte können an die freien Kalibrierungsparameter gelegt werden, um diese ungültigen Zustände zu detektieren. Alternativ kann das Binning-System als Detektionssystem verwendet werden, indem bemerkt wird, dass aufeinanderfolgende Vektoren, die dem gleichen Bin zugewiesen sind, einen Maximalwinkel zwischen sich haben. Insbesondere Vektoren, die einem der Orthanten in einem N-dimensionalen System zugewiesen sind, sollten immer unter einem Winkel von weniger als 90° zueinander stehen.
-
Diese Bedingung kann für jeden neuen Eingabevektor überprüft werden, indem dessen Skalarprodukt gebildet wird mit dem zuvor in dem Bin, der dem neuen Vektor zugewiesen ist, gespeicherten Vektor. Weil:
-
Das Ergebnis kann mit einem Grenzwert verglichen werden, um große Winkel zwischen Vektoren zu detektieren, da er von θ abhängt, der Winkel zwischen ihnen. In dem einfachen Fall für Orthanten kann der Fehlerzustand ausgelöst werden, falls das Skalarprodukt kleiner als 0 ist. In der Praxis kann es erforderlich sein, dass dieser Zustand mehrere Male nacheinander ausgelöst wird, bevor eine Korrekturmaßnahme ausgelöst wird, um mit Berechnungsungenauigkeiten, verrauschten Daten, und großen Winkeln zwischen Vektoren, die in den Schutzbins potentiell gültig sind, umzugehen.
-
Schlechte anfängliche Schätzwerte können dazu führen, dass die Binning-Funktion sich mit der Zeit deutlich verändert, derart dass ein Eingabevektor verschieden gebinnt werden könnte nach einer Aktualisierung der Parameterschätzungen, jener Eingabevektor angenommen. Es ist möglich, mit dieser Situation umzugehen, indem die berechneten Parameterindize des Eingabevektors vor und nach der Aktualisierung verglichen werden. Falls sie verschieden sind, hat sich die Binning-Funktion deutlich verändert. In diesem Fall kann es vorteilhaft sein, die Binning-Funktion nochmals auf alle gespeicherten Vektoren unter Verwendung der freien Parameter anzuwenden.
-
Schätzung des Betrags des echten Vektorfelds
-
In einer gegebenen Anwendung der Offenbarung kann eine Schätzung der lokalen Größe bzw. des lokalen Betrags des Vektorfelds vorab bekannt oder vorab nicht bekannt sein. Die Erfindung kann in beiden Fällen funktionieren, wobei die freien Parameter derart berechnet werden, dass die resultierende Kugel entweder eine Einheitskugel ist oder eine Kugel, die auf einen gewünschten Zielradius skaliert ist. Falls eine Schätzung des echten Betrags bzw. der Größe des Vektorfelds benötigt wird, kann diese/r mithilfe der Matrix A der Kalibrierungsfunktion abgeleitet werden. Eine Schätzung der Größe bzw. des Betrags könnte zum Beispiel durch die Berücksichtigung der Größe des quadratischen Mittels der Elemente von A-1 erfolgen. Zu beachten ist, dass die absolute Genauigkeit einer solchen Berechnung durch die Genauigkeit der Sensibilität der verwendeten Messvorrichtungen begrenzt ist.
-
Resultierendes System
-
Für das resultierende System wurde gefunden, dass es schnell hin zu einer stabilen Lösung konvergiert, wodurch es gegenüber einem System zu bevorzugen ist, das die Kalibrierungsparameter ohne den Binning-Schritt optimiert. 5 zeigt eine Menge an Eingabevektoren, die von einer Sensorvorrichtung aufgezeichnet wurden, gefolgt von den kalibrierten Vektoren, die erhalten werden, wenn die Kalibrierungsparameter ohne das Binning berechnet werden. Anstelle des Binning werden die letzten 10 beobachteten Eingabevektoren (Kmin for N=3) mit der Zeit als Eingabe im Optimierungsschritt verwendet. Zu beachten ist, dass der Betrag des Ausgabevektors mit der Zeit abnimmt, wenn er konstant bleiben sollte. Dies liegt daran, dass die Kalibrierungsparameter sich nicht an einer geeigneten stabilen Lösung einstellen, wie in 6 gezeigt.
-
7 hingegen zeigt die gleichen Eingabedaten, die mithilfe der Optimierungsstufe mit gebinnten Daten verarbeitet werden. Die Figur zeigt, dass der Optimierungsalgorithmus sich an einer stabilen Lösung einstellen, wodurch eine große Verschiebung bzw. ein großer Versatz erfolgreich entfernt wird, der an dem X-Achsensensor vorhanden ist, während der Betrag des Ausgabevektors beibehalten wird. Die entsprechenden, berechneten Parameterkoeffizienten mithilfe von Optimierung an gebinnten Daten sind in 8 gegen die Zeit aufgetragen.
-
In den 6 und 7 entspricht den markierten Parametern „Verstärkung“ die freien Parametern p1, p2 und p3 jeweils für die x-, y- und z-Achse. Die mit „Kreuz“ markierten Parameter entsprechen den freien Parameters p3, p4, und p5 jeweils für die xy-, yz- und xz- Kreuzterme. Die mit „Offset“ bzw. Versatz markierten Parameter entsprechen den freien Parametern p7, p8 und p9 jeweils für die x-, y- und z-Achsen.
-
Die Offenbarung stellt neuartige Verfahren wie vorliegend beschrieben bereit, sowie eine Vorrichtung zum Umsetzen des Verfahrens. Die Offenbarung ist nicht auf eine bestimmte physische Implementierung beschränkt und es wird erkannt werden, dass angemessene Software, Firmware und Hardware zum Ausführen der Offenbarung bereitgestellt werden kann. Insbesondere kann die Offenbarung anwendungsspezifische integrierte Schaltungen bereitstellen oder in einem feldprogrammierbaren Gate-Array oder anderen wiederprogrammierbaren Schaltungen kodiert sein. Alternativ kann die Offenbarung durch geeignete Software implementiert werden, die auf einem geeigneten Prozessor läuft. Sensorsysteme und Vorrichtungen beinhaltend Sensorsysteme können gemäß der Offenbarung ebenfalls bereitgestellt werden.
-
Die Offenbarung stellt viele vorteilhafte Merkmale bereit. Eine Kalibrierungsfunktion kann berechnet werden und auf Daten von einem Sensor-Array oder anderen Datenquellen angewendet werden, wobei nur die abgetasteten Rohdaten verwendet werden. Die Kalibrierungsunktion sollte Unterschiede bzw. Differenzen bezüglich der Skalierung und Verschiebung bzw. Versatz zwischen Sensoren, die aufgrund von Herstellungstoleranzen sowie konstanten externen Einflüssen in dem gemessenen Vektorfeld vorliegen, korrigieren. Die Offenbarung erfordert keinen vorab definierten Eingabestimulus, um zu funktionieren, und kann die Kalibrierungsfunktion auf Rohsensordaten bei Laufzeit anwenden, während eine Zielvorrichtung verwendet wird.
-
Wie oben beschrieben führt die Verwendung von gebinnten Vektoren ebenfalls zu einem Verfahren zum Detektieren ungültiger Kalibrierungskoeffizienten, die durch eine Optimierung verursacht werden, die ein lokales Minimum einer Fehlerfunktion anstatt den gewünschten Zielminimumfehlerzustand erreicht. Diese niedrigen, jedoch ungültigen Fehlerzustände können bei Vorhandensein von Interferenzsignalen oder Rauschen in den Sensormesswerten erreicht werden.
-
Die vorgeschlagene Erfindung bietet die folgenden Vorteile:
- • sie erfordert das Speichern und Durchführen der Optimierung nur auf so vielen Vektoren, wie Bins vorhanden definiert sind
- • Skalierungen für Vektorfelder mit N Dimensionen
- • Die Gestaltung der Bin-Anordnung ermöglicht die Konvergenz zu einer stabilen Lösung
- • Einfache Detektion einer deutlich veränderten externen Umgebung durch die Detektion von schlechten Lösungen des Optimierungsschritts.
- • Fähigkeit, mit schlechten anfänglichen Schätzwerten mittels eines wiederholten Binning-Schitts umzugehen
- • Geringe Berechnungsanforderungen, geeignet zur Verwendung in Systemen mit geringer Leistung
- • Die Möglichkeit der Kalibrierung nur auf Rohdaten mit einer Größe bzw. einem Betrag größer als ein Minimalgrenzwert (um z.B. mögliche Probleme mit Systemrauschen zu verhindern) und/oder mit einer Größe kleiner als ein Maximalgrenzwertpegel.
-
Verschiedene Verbesserungen und Modifikationen können vorgenommen werden, ohne den Schutzumfang der Offenbarung zu verlassen.
-
Es sei angemerkt, dass der Logik-Code, Programme, Module, Prozesse, Verfahren, und die Reihenfolge, in der die jeweiligen Elemente jedes Verfahren durchgeführt werden, lediglich beispielhaft sind. Je nach Implementierung können sie in jedweder Reihenfolge oder parallel ausgeführt werden, falls nicht gegenteilig in der vorliegenden Offenbarung vermerkt. Ferner ist der Logik-Code nicht auf eine bestimmte Programmiersprache bezogen oder beschränkt und kann ein oder mehr Module umfassen, die auf einem oder mehr Prozessoren in einer verteilten, nicht-verteilten oder Multiprozessor-Umgebung laufen.