-
Stand der Technik
-
Richtungssensoren werden häufig in Kleingeräten wie Kameras, Telefonen und Ferngläsern verwendet, um eine Ausrichtung des Geräts gegenüber einer konstanten Größe zu bestimmen. Diese Größe kann beispielsweise das Erdmagnetfeld sein. Häufig werden derartige Sensoren im Verbund mit anderen Sensoren, beispielsweise Beschleunigungssensoren, eingesetzt.
-
Das Ergebnis der Richtungsbestimmung kann durch lokale Störeinflüsse beeinträchtigt sein. Ein konstanter Versatz der bestimmten Richtungen in eine vorbestimmte Richtung kann beispielsweise durch ein magnetisches Objekt oder eine Stromleitung in der direkten Umgebung eines solchen mehrdimensionalen Magnetfeldsensors hervorgerufen sein. Zur Kompensation eines solchen Versatzes („Offset“) sind verschiedene Herangehensweise zur Kompensation im Stand der Technik bekannt.
-
Die
US 7,340,362 B2 zeigt ein Verfahren zum Offset-Abgleich eines dreidimensionalen Magnetfeldsensors. Während einer vorbestimmten Kalibrierungsphase werden Messwerte erfasst. Unterscheiden sich aufeinander folgende Messwerte, wird ein neu erfasster Messwert abgespeichert, bis eine vorbestimmte Anzahl Messwerte erreicht ist. Aus den abgespeicherten Daten wird später ein Offset der Messwerte bestimmt.
-
Die
US 7,275,008 B2 zeigt eine weitere Variante, bei der ein geometrischer Körper bestimmt wird, auf dessen Oberfläche eine Anzahl Messwerte liegt. Parameter, die eine Abweichung der Form dieses Körpers von der geometrischen Referenzfigur einer Kugel definieren, werden bestimmt. Die Parameter werden für eine Abbildung angewendet, um Messwerte zu kompensieren.
-
Die
EP 1 795 864 A1 offenbart ein Verfahren zur Bestimmung eines Versatzes von Messwerten eines mehrachsigen Richtungssensors.
-
-
Die
EP 1 793 200 A1 offenbart ein Verfahren zur Bestimmung von Abweichungen von Messwerten eines Kompasses.
-
Die meisten der bekannten Kompensationsverfahren sind jedoch entweder nicht genau oder erfordern einen hohen Rechenaufwand, der die Rechenkapazitäten einer Verarbeitungseinrichtung in einem mobilen Gerät oft übersteigt.
-
Der Erfindung liegt die Aufgabe zugrunde, ein Kompensationsverfahren der genannten Art anzugeben, welches präzise arbeitet und nur einen geringen Rechenaufwand erfordert.
-
Offenbarung der Erfindung
-
Die Erfindung löst diese Aufgabe durch ein Verfahren mit den Merkmalen des Anspruchs 1. Unteransprüche geben vorteilhafte Ausführungsformen wider.
-
Erfindungsgemäß wird in einem Verfahren zur Bestimmung eines Versatzes von Messwerten eines mehrachsigen Richtungssensors durch ein überlagertes Signal zunächst eine Vielzahl von mehrachsigen Messwerten aufgenommen. Messwerte, die in unterschiedlichen Ausrichtungen des Richtungssensors aufgenommen sind, bilden in einem Koordinatensystem, welches sich aus den Messachsen des Sensors ergibt, eine geometrische Figur, deren ideale Form bekannt ist, und deren idealer Mittelpunkt auf den Ursprung der Messachsen fällt. Im Fall eines zweiachsigen Sensors ist die geometrische Figur ein Kreis, im Fall eines dreiachsigen Sensors eine Kugel. Die Überlagerung durch die Störung ist dadurch reflektiert, dass der Mittelpunkt der geometrischen Figur gegenüber dem Ursprung der Messachsen verschoben ist. Die Überlagerung wird durch Bestimmen dieser Verschiebung erfasst, so dass neu aufgenommene Messwerte um die Verschiebung korrigiert werden können.
-
Hierfür ist eine Anzahl Gruppen („Cluster“) definiert und ein aufgenommener Messwert wird einer der Gruppen zugeordnet oder verworfen, falls der dem Messwert zugeordnete Gruppe bereits eine vorbestimmte Anzahl Messwerte zugeordnet ist. Das Verwerfen erfolgt für Messwerte, die aufgrund ihrer geometrischen Lage zu einer Verbesserung eines zu bestimmenden Versatzes wenig beisteuern können. Ein Speicher zur Ablage der Messwerte kann somit kleiner dimensioniert sein und die Berechnung des Versatzes kann auf einer verkleinerten Anzahl von Messwerten durchgeführt werden, so dass die Rechenlast bei unbeeinträchtigter Genauigkeit des Verfahrens verringert sein kann.
-
Vorteilhafterweise erfolgt das Bestimmen des Versatzes erst dann, wenn jeder einer vorbestimmten Anzahl Gruppen die vorbestimmte Anzahl Messwerte zugeordnet ist. Durch diese leicht zu bestimmende Bedingung wird sicher gestellt, dass die geometrische Verteilung der abgespeicherten Messwerte ausreicht, um den Versatz in einer geforderten Genauigkeit und/oder Zuverlässigkeit zu bestimmen.
-
Die Gruppen können entlang der Messachsen gleichmäßig verteilt sein. Beispielsweise kann der Versatz der Figur erst dann bestimmt werden, wenn 10% der definierten Gruppen jeweils einen Messwert aufweisen. Die Anzahl der Gruppen, denen bereits ein Messwert zugeordnet ist, kann als Indikator für einen Fortschritt beim Sammeln von Messwerten verwendet werden.
-
Die Größe der Gruppe kann einer Zweierpotenz sein und das Zuordnen kann eine Division des mehrachsigen Messwerts durch eine Zweierpotenz umfassen. Bei einer Verarbeitung binär kodierter Messwerte durch einen Mikroprozessor kann die Zuordnung zu einer Gruppe als Division der Messwerte durch die Gruppengröße ohne Rest. Wobei die Gruppengröße eine Ganzzahl oder auch eine Zweierpotenz sein kann. Vorteilhaft bei der letzten Variante ist, dass eine Division durch eine Zweierpotenz durch ein bitweise Verschieben der Binärzahl nach rechts implementiert sehr einfach implementiert werden kann. Damit kann die Auslastung eines das Verfahren ausführenden Rechenwerks gering gehalten werden.
-
Erfindungsgemäß können nach dem Bestimmen des Versatzes weitere Messwerte aufgenommen und den Gruppen zugeordnet werden und der Versatz kann aktualisiert werden. Dadurch kann die Bestimmung des Versatzes während eines normalen Messbetriebs durch neu aufgenommene Messwerte kontinuierlich nachgeführt werden („in-use calibration“). Eine Genauigkeit der Bestimmung des Versatzes kann so mit steigender Messdauer gesteigert sein.
-
Insbesondere können Parameter, die das Verfahren steuern, nach dem Bestimmen des Versatzes geändert werden. Erfindungsgemäß können die Parameter wenigstens eines von der Anzahl der Gruppen auf einer der Messachsen, der Anzahl der vorbestimmten Messwerte pro Gruppe und der vorbestimmten Anzahl der Gruppen mit zugeordneten Messwerten umfassen. Dadurch kann eine Bestimmungsqualität des Verfahrens bei gleichbleibenden Anforderungen an Speicher bzw. Rechenleistung verbessert und/oder die Anforderungen bei gleichbleibender Bestimmungsqualität verringert werden.
-
In einer bevorzugten Ausführungsform ist der Richtungssensor ein Magnetfeldsensor, die Anzahl der Messachsen ist drei und die geometrische Figur ist eine Kugel. Die Figur kann vorzugsweise mittels der bekannten Methode der kleinsten Quadrate als Annäherung an die abgespeicherten Messwerte bestimmt werden. Dadurch kann eine Rechenlast des gesamten Verfahrens für eine Bestimmungseinrichtung, auf der das Verfahren abläuft, gering gehalten werden.
-
Das Verfahren kann in Form eines Computerprogrammprodukts mit Programmcodemitteln auf einer Ausführungseinrichtung ablaufen.
-
Kurze Beschreibung der Figuren
-
Im Folgenden wird die Erfindung mit Bezug auf die beigefügten Figuren genauer beschrieben, in denen:
- 1 ein Blockschaltbild eines Systems zur Bestimmung eines Versatzes eines mehrachsigen Sensors;
- 2 eine Darstellung von Messwerten und gefilterten Messwerten für die Bestimmung des Versatzes;
- 3 ein Ablaufdiagramm eines Verfahrens zur Bestimmung des Versatzes; und
- 4 ein Blockschaltbild eines erweiterten Verfahrens nach 3
darstellt.
-
Genaue Beschreibung von Ausführungsbeispielen
-
1 zeigt ein Blockschaltbild eines Systems 100 zur Bestimmung eines Versatzes von Messwerten eines mehrachsigen Sensors. Das System 100 umfasst einen mehrachsigen Sensor 110, eine Verarbeitungseinrichtung 120, einen Speicher 130 und eine Schnittstelle 140. Die Verarbeitungseinrichtung 120 ist mit dem mehrachsigen Sensor 110, dem Speicher 130 und der Schnittstelle 140 verbunden.
-
Der mehrachsige Sensor 110 ist ein Magnetfeldsensor, der Komponenten eines Magnetfeldes in drei aufeinander senkrecht stehenden Komponenten x, y und z bestimmt. Der mehrachsige Sensor 110 kann beispielsweise mikromechanisch als Mikro-Elektromechanisches System („MEMS“) aufgebaut sein.
-
Die Verarbeitungseinrichtung 120 ist üblicherweise eine digitale Verarbeitungseinrichtung wie ein Mikroprozessorsystem. Nicht dargestellt sind digitalisierungsmittel zur Anpassung eines analog bereitgestellten Messwerts an eine digitale Verarbeitung der Verarbeitungseinrichtung 120. Der Speicher 130 ist vorzugsweise ein digitaler Halbleiterspeicher. Die Verarbeitungseinrichtung 120 und der Speicher 130 können Bestandteile eines mobilen mikroprozessorgesteuerten Gerätes, beispielsweise eines Mobiltelefons, sein. Die Schnittstelle 140 kann physisch (in Hardware) und/oder virtuell (in Software) ausgebildet sein und erlaubt die Aus- bzw. Weitergabe von verarbeiteten und unverarbeiteten Messwerten und Zwischenergebnissen, wie einen bestimmten Versatz aufgenommener Messwerte.
-
2 zeigt eine Darstellung von aufgenommenen und gefilterten Messwerten für die Bestimmung des Versatzes von Messwerten entsprechend dem System 100 von 1. Ein linke Darstellung 210 und eine rechte Darstellung 220 umfasstjeweils ein kartesisches Koordinatensystem, welches den Messachsen des mehrachsigen Sensors 110 aus 1 entspricht. In der linken Darstellung 210 sind als schwarze Punkte Messwerte visualisiert, die mittels des mehrachsigen Sensors 110 aufgenommen wurden. Die aufgenommenen Messwerte liegen auf der Oberfläche einer ersten Kugel 215, deren Oberfläche durch entlang der z-Achse verteilte Ringe angedeutet ist. Der Mittelpunkt der ersten Kugel 215 liegt außerhalb des Nullpunkts der Messachsen x, y und z.
-
Die Messwerte in der linken Darstellung 210 sind ungleichmäßig verteilt. In einigen Bereichen der Oberfläche der ersten Kugel 215 liegen die aufgenommenen Messwerte dicht aneinander, während in anderen Bereichen wenige oder gar keine Messwerte vorliegen.
-
Die rechte Darstellung 220 entspricht der linken Darstellung 210, mit dem Unterschied, dass nur solche Messwerte als schwarze Punkte eingezeichnet sind, die mittels des erfindungsgemäßen Verfahrens zu einer Bestimmung des Versatzes der Messwerte herangezogen werden. Die gefilterten Messwerte liegen auf der Oberfläche einer zweiten Kugel 225. Die Anzahl der gefilterten Messwerte ist deutlich geringer als die der aufgenommenen Messwerte in der linken Darstellung 210 und benachbarte gefilterte Messwerte weisen einen Mindestabstand zueinander auf.
-
Es ist ein Gegenstand des erfindungsgemäßen Verfahrens, eine vorteilhafte Reduzierung der aufgenommenen Werte entsprechend der linken Darstellung 210 auf Messwerte entsprechend der rechten Darstellung 220 zu erzielen, wobei eine Bestimmbarkeit des Versatzes der Kugel 215 bzw. 225 gegenüber dem Ursprung der Messachsen x, y und z beibehalten sein soll.
-
3 zeigt ein Ablaufdiagramm eines Verfahrens 300 zur Bestimmung des Versatzes entsprechend den 1 und 2. Verfahrensgemäß werden in einem ersten Schritt 305 Messwerte aufgenommen. Ein aufgenommener Messwert wird in einem ersten Schritt 310 einer Filterung unterworfen, um zu überprüfen, ob der aufgenommener Messwert eine bestehende Informationsbasis verbessert und den Messwert in diesem Fall abzuspeichern. Die Informationsbasis wird gebildet durch eine Anzahl abgespeicherter Messwerte, auf deren Basis später der Versatz der Messwerte bestimmt werden soll.
-
Zur Filterung wird überprüft, ob die Richtung, die dem Messwert zu Grunde liegt, bereits durch weitere Messwerte gestützt ist oder nicht. Das Filtern in Schritt 310 basiert darauf, jeden aufgenommenen Messwert einer vorbestimmte Anzahl Gruppen zuzuordnen, wobei die Gruppen unterschiedliche Richtungen des bestimmten Magnetfeldes repräsentieren. Von Messwerten, die sich auf die gleiche bestimmte Richtung beziehen, wird nur eine vorbestimmte Anzahl abgespeichert, weitere Messwerte werden verworfen. Ist die Informationsbasis groß genug, etwa indem eine vorbestimmte Anzahl ausreichen voneinander beabstandete Messwerte abgespeichert wurde, fährt das Verfahren 300 mit einem Schritt 320 fort.
-
Im Schritt 320 wird auf der Basis abgespeicherter Messewerte der Versatz bestimmt, der alle Messwerte betrifft. Dazu wird mittels eines numerischen Verfahrens, beispielsweise der Methode der kleinsten Quadrate, des Newton-Verfahrens oder eines Kalman-Filters eine geometrische Form in dem von den Messachsen aufgespannten Raum angenähert, wobei auf der Oberfläche der geometrischen Form die Messwerte liegen. Im Fall des Systems 100 aus 1 ist die geometrische Form eine Kugel. Der Versatz der Kugel gegenüber dem Ursprung der Messachsen ist der gesuchte Versatz aller Messwerte.
-
In einem folgenden Schritt 330 können aufgenommene Messwerte um diesen Versatz korrigiert werden. Alternativ kann auch nur der in Schritt 320 bestimmte Versatz als Ergebnis des Verfahrens 300 bereitgestellt werden.
-
Das Verfahren 300 kann während eines Messbetriebs auch nach dem ersten Bestimmen des Versatzes im Schritt 320 fortgesetzt werden, indem neu eintreffende Messwerte weiter im Schritt 310 gefiltert und anschließend in Schritt 320 auf der Basis der abgespeicherten Messwerte der Versatz neu bestimmt wird. Das Bestimmen des Versatzes im Schritt 320 kann beispielsweise jeweils nach Abspeichern einer vorbestimmten Anzahl neuer Messwerte oder zeitgesteuert erfolgen.
-
Das Filtern von Messwerten in Schritt 310 unterliegt der Wahl von Parametern. In einem ersten Durchlauf des Verfahrens 300 müssen für diese Parameter vorbestimmte Werte verwendet werden, in darauffolgenden Durchläufen können die Parameter an die aufgenommenen Messwerte angepasst sein. Messwerte, die bei einem vorhergehenden Durchlaufen des Schritts 310 abgespeichert wurden, können nach einer Veränderung eines der Parameter gelöscht, verändert oder beibehalten werden. Ein solcher Parameter ist die Anzahl bzw. Größe der Gruppen. Ein anderer Parameter ist die Anzahl der Gruppen, denen Messwerte zugeordnet sein müssen, um im Schritt 320 den Versatz zu bestimmen. Im Folgenden wird eine Möglichkeit angegeben, diesen Parameter zu bestimmen.
-
Der Radius der in
2 dargestellten Kugel bestimmt sich zu
-
Jede der Gruppen ist definiert als ein Raumelement, das durch Teilung des Messbereichs entlang der jeweiligen Messachse durch eine Konstante bestimmt ist.
-
Mögliche Realisierung 1:
- Ist eine mögliche Bestimmung von Parametern:
- Die Konstante ist für alle Messachsen gleich und soll eine Zweierpotenz sein: wobei i, j und k Laufvariablen (aufgenommene Messwerte) sind und nq die Quantisierungszahl ist, die folgendermaßen bestimmt ist:
wobei
Radius := Radius der Kugel aus 2
Nc := Anzahl der Messwerte pro Gruppe
-
Damit die erforderliche Mindestzahl der Punkte abgespeichert werden kann, sind folgende Bedingungen der Berechnung der Quantisierungszahl nötig:
-
Zunächst wird ein eintreffender Messwert also dahingehend überprüft, ob er einen Mindestabstand einer halben Gruppe zu dem zuletzt abgespeicherten Messwert einhält:
-
Ist das der Fall, so wird der eintreffende Messwert mit jedem gespeicherten Messwert verglichen:
-
Das Symbol „<>“ steht dabei für „ist ungleich“. Der eintreffende Messwert wird verworfen, falls er den vorbestimmten Abstand zu einem der abgespeicherten Messwerte nicht einhält. Für den Messwert wird eine Gruppe bestimmt, indem für jede Messachse der Index (j, k, l) der Gruppen bestimmt wird, in dem der Messwert der Komponente liegt. Ist die Anzahl der dieser Gruppe zugeordneten Messwerte kleiner als eine vorbestimmte Anzahl, wird der Gruppe der eintreffende Messwert zugeordnet.
-
Mögliche Realisierung 2 (Allgemein):
- Zur Einordnung der Daten in Gruppen wird der aktuelle Messwert aller Achsen durch eine Konstante geteilt. Je nach Genauigkeit des Rechenwerkes stellt diese Konstante (i) eine Zweierpotenz, (ii) eine Ganzzahl oder (iii) eine Gleitkommazahl dar. wobei i die Variable der Gruppe und Lx, Ly, Lz die Gruppengrößen in x, y und z Richtung sind. Die Gruppengröße kann beispielsweise durch die folgende Formel bestimmt werden (ermittelt eine optimale Größe der Gruppe in Abhängigkeit von den anderen Parameter):
wobei
Radius := Radius der Kugel aus 2
Nc := Anzahl der Messwerte pro Gruppe
Npts := Anzahl der Messwerte für Kalibrierung.
-
Damit die erforderliche Mindestzahl der Punkte abgespeichert werden kann, sind folgende Bedingungen der Berechnung der Gruppengröße nötig:
-
Zunächst wird ein eintreffender Messwert also dahingehend überprüft, ob er einen Mindestabstand einer halben Gruppe zu dem zuletzt abgespeicherten Messwert einhält:
-
Ist das der Fall, so wird der eintreffende Messwert mit jedem gespeicherten Messwert verglichen:
-
Der eintreffende Messwert wird verworfen, falls er den vorbestimmten Abstand zu einem der abgespeicherten Messwerte nicht einhält. Für den Messwert wird eine Gruppe bestimmt, indem für jede Messachse der Index (j, n, I) der Gruppen bestimmt wird, in dem der Messwert der Komponente liegt. Ist die Anzahl der dieser Gruppe zugeordneten Messwerte kleiner als eine vorbestimmte Anzahl, wird der Gruppe der eintreffende Messwert zugeordnet.
-
Eine Bestimmung des Versatzes erfolgt, wenn eine vorbestimmte Anzahl von Messwerten aufgenommen ist oder wenn eine vorbestimmte Anzahl von Gruppen die jeweils vorbestimmte Anzahl zugeordneter Messwerte aufweist. Danach können weitere Messwerte aufgenommen und abgespeichert werden, so dass verbesserte Bestimmungen des Versatzes durchgeführt werden können („in-use calibration“).
-
4 zeigt ein Ablaufdiagramm eines Verfahrens 400 als Ausführungsbeispiel des Verfahrens 300 aus 3. In einem ersten Schritt 405 werden Parameter des Verfahrens 400 initialisiert. Dazu gehören die Anzahl der Messwerte, die einer Gruppe zuzuordnen sind, eine Bestimmung der Empfindlichkeit des mehrachsigen Sensors 110, eine Bestimmung der Feldstärke und ein Vorbereiten des Speichers 130.
-
In einem folgenden Schritt 410 wird überprüft, ob Zwischenergebnisse eines vorhergehenden Durchlaufs des Verfahrens 400 vorliegen. Ist dies der Fall, werden Filterparameter auf der Basis dieser Zwischenergebnisse bestimmt. Liegen keine Zwischenergebnisse vor, so werden die Filterparameter auf der Basis von Voreinstellungen bestimmt.
-
In Schritt 415 wird ein mehrdimensionaler Messwert erfasst. Handelt es sich um den ersten Messwert, so wird er in einem Schritt 420 unmittelbar abgespeichert. Andernfalls wird in einem Schritt 425 überprüft, ob der eintreffende Messwert einen Abstand von wenigstens einer halben Gruppengröße von einem zuvor abgespeicherten Messwert einhält. Ist dies nicht der Fall, so wird der Messwert verworfen und das Verfahren 400 fährt mit dem Schritt 415 fort. Andernfalls werden in einem Schritt 430 die abgespeicherten Messwerte und der eintreffende Messewert durch die Gruppengröße geteilt. In einem Schritt 435 wird überprüft, ob der Gruppe bereits eine vorbestimmte Anzahl Messwerte zugeordnet ist. Ist dies der Fall, fährt das Verfahren mit Schritt 415 fort. Andernfalls wird der eintreffende Messwert in einem Schritt 440 abgespeichert.
-
In einem Schritt 445 wird die Anzahl der gespeicherten Messwerte inkrementiert. In einem Schritt 450 wird sodann überprüft, ob die Anzahl der Messwerte einen vorbestimmten Schwellenwert erreicht hat. Ist dies nicht der Fall, so fährt das Verfahren 400 mit dem Schritt 415 fort, um einen weiteren eintreffenden Messwert zu erfassen. Andernfalls wird in einem Schritt 455 die Gesamtheit der abgespeicherten Messwerte auf Plausibilität überprüft, wobei unplausible Messwerte verworfen werden können. Anschließend werden in einem Schritt 460 Zwischenergebnisse für die Filterung bestimmt und das Verfahren fährt mit Schritt 410 fort.
-
Eines der in Schritt 460 bestimmten Zwischenergebnisse betrifft den Versatz der Messwerte. Um diesen zu bestimmen, wird mit einem bekannten Verfahren, beispielsweise mittels des iterativen Newton-Gauss-Verfahrens oder der Methode der kleinsten Quadrate („Least Squares“) eine Kugel bestimmt, welche optimal an die abgespeicherten Messwerte angenähert ist. Ein Versatz des Mittelpunkts der Kugel vom Ursprung der Messachsen ist dann der gesuchte Versatz der Messwerte. Der bestimmte Versatz wird in Schritt 460 optional auch ausgegeben.