Sunday 2 April 2017

Moving Average Filter Beschleunigungsmesser

Ein einfacher, einpoliger, tiefer Pass, rekursiver IIR-Filter ist schnell und einfach zu implementieren, egal x, y sind die rohen ungefilterten XY-Beschleunigungssensoren, xf, yf sind die gefilterten Ausgangssignale und k bestimmt die Zeitkonstante von Die Filter in der Regel ein Wert zwischen 0 9 und 0 9999 wo ein größeres k bedeutet eine längere Zeit konstant. Sie ​​können k empirisch bestimmen, oder wenn Sie wissen, Ihre erforderliche Cut-off-Frequenz, Fc dann können Sie die formula. where Fs ist die Sample Rate. Hinweis, dass xf, yf sind die vorherigen Werte des Ausgangssignals auf der RHS und die neuen Ausgangswerte auf der LHS der Ausdruck oben. Hinweis auch, dass wir hier annehmen, dass Sie die Beschleunigungssensoren regelmäßig abtasten werden Zeitintervalle, zB alle 10 ms Die Zeitkonstante wird eine Funktion sowohl von k als auch von diesem Sampling-Intervall sein. Ich habe ein 1D-Beschleunigungssignal nur eine Achse, ich möchte einen robusten Algorithmus erstellen, der in der Lage wäre, einige Formen zu erkennen Das Signal. Zuerst wende ich einen gleitenden durchschnittlichen Filte an R zum Rohsignal Auf dem angehängten Bild ist das Rohsignal rot gefärbt und das gemittelte Signal ist schwarz Wie aus dem Bild gesehen, sind einige Trends aus dem gemittelten schwarzen Signal sichtbar - das Signal enthält 10 Wiederholungen eines peakähnlichen Musters, bei denen die Beschleunigung erfolgt Klettert auf ein Maximum und fällt dann zurück nach unten Ich habe die Anfänge und Endungen dieser Muster mit einem cross. So mein Ziel ist es, die markierten Positionen automatisch zu finden Das Problem, dass die Muster Extraktion schwierig ist. Der Beginn des Musters könnte ein Ein anderer y-Wert als das Ende des Musters. Das Muster könnte mehr als einen Peak haben. Ich habe keine konkrete Zeitinformation vom Anfang bis zum Ende des Musters, das es braucht. Eine Zeiteinheit. Ich habe verschiedene Ansätze ausprobiert, die hübsch sind Viel heimgebraut, also habe ich sie nicht erwähnt - ich möchte nicht, dass du durch meine Denkweise voreingenommen wirst. Gibt es einen Standard oder durch die Bücher, um sich für diese Art von Muster-Extraktion zu entscheiden, oder vielleicht weiß man was auch immer Das Problem in einer robusten Weise anpacken. Eine Idee wird geschätzt. die deklariert 3. Dezember bei 0 04.Halten Sie es einfach Es scheint, die gleitenden Durchschnitt ist ein gut genug Dämpfer Gerät halten, wie es ist, vielleicht nur Erhöhung oder Verringerung der Probe zählen Wenn du bemerkt hast, dass es entweder zu viel Lärm verlässt oder zu viel Signal entfernt, dann wirst du dann dieses gemittelte Signal ausschöpfen. Die Mustermarkierungen, die du suchst, sind relativ leicht zu erkennen. Ausgesprochen auf Englisch sind diese Marker die Punkte der Beugung in der Gemittelte Messkurve, wenn die Steigung deutlich positiv auf positiv ist Sie sollten daher in der Lage sein, diese Situation durch Vergleich der Steigungswerte zu ermitteln, die mit dem gleitenden Durchschnitt berechnet werden, da jeder neue Lesewert natürlich mit einer kurzen Verzögerung zur Verfügung steht Natürlich kann die Steigung an einem gegebenen Punkt nur berechnet werden, wenn das gemittelte Lesen für die nächsten Punkte s zur Verfügung steht. Um eine falsche Erkennung zu vermeiden, müssen Sie jedoch einige Parameter aime definieren D bei der Filterung der unerwünschten Muster Diese Paremeter definieren genauer die Bedeutung von deutlich in der obigen Zieldefinition. Vorzugsweise könnte die Formel zum Erfassen eines interessanten Punktes so einfach sein wie diese -1 S t-1 S t MindeltaSlope wobei S die ist Neigung mehr dazu bei der Zeit t-1 und t, MindeltaSlope ist ein Parameter, der definiert, wie scharf eine Veränderung der Steigung, die wir wollen, an einem Minimum Angenommen, normalisierte t und Y-Einheiten, können wir die MindeltaSlope-Parameter in der Nähe oder sogar nach 1 intuitiv ein Wert von 1 wieder in normalisierten Einheiten würde darauf hindeuten, dass wir Punkte ansprechen, wo die Kurve mit einer Abwärtsneigung von etwa 50 ankam und verließ den Punkt mit einer Aufwärtsneigung von 50 oder 40 60 oder 10 dh fast flach und 90 dh fast vertikal Um zu vermeiden, zu erkennen Punkte in dem Fall, wenn dies nur ein kleines Dip in der Kurve ist, können wir mehr Punkte in Betracht ziehen, mit einer Zauberer Formel wie sagen. Pm2 S t-2 Pm1 S t-1 P0 S t Pp1 S t 1 MindeltaSlope wobei Pm2, Pm1, P0 und Pp1 Koeffizienten sind, die der Steilheit an verschiedenen Punkten vor und nach dem interessierenden Punkt Pm2 und Pm1 typischerweise negative Werte verleihen Es sei denn, wir verwenden nur positiven Parameter und verwenden negative Zeichen in der Formel S t - n ist die Steigung eine verschiedene Zeit und MindeltaSlope ist ein Parameter, der definiert, wie scharf eine Veränderung der Steigung wir wollen, um ein Minimum Intuitiv, diese 4 Punkte Formel würde berücksichtigen Die Form der Kurve an einem Punkt zwei Lesungen vor und zwei Lesung hinter dem Punkt des Interesses zusätzlich zu der Betrachtung der Punkt direkt vor und nachher Angesichts der richtigen Werte für die Parameter, würde die Formel erfordern, dass die Kurve stetig nach unten kommen Zwei Zeitscheiben, dann stetig nach oben für die nächsten zwei Zeitscheiben, damit vermeiden, kleinere Dips in der Kurve zu markieren Ein alternativer Weg, dies zu erreichen, kann es sein, die Steigung zu berechnen, indem man den Unterschied in Y-Wert zwischen dem Mittelwert verwendet Das Lesen von zwei oder mehr Zeitscheiben vor und das des aktuell gemittelten Lesens Diese beiden Ansätze sind ähnlich, würden aber etwas unterschiedliches Ergebnis erzeugen, im allgemeinen haben wir in der gewünschten Form der Kurve mit den Pm2-, Pm1-, P0- und P1-Parametern mehr zu sagen. Erweiterte Dec 3 10 bei 3 22.Beschleuniger messen Beschleunigung Das ist Beschleunigung durch Bewegung und auch Beschleunigung durch Schwerkraft Beschleunigungsmesser werden oft verwendet, um einen Neigungswinkel zu berechnen Sie können dies nur zuverlässig tun, wenn sie statisch sind und sich nicht bewegen Um eine genaue zu bekommen Neigungswinkel werden oft mit einem oder mehreren Kreiseln kombiniert und die Kombination von Daten wird verwendet, um den Winkel zu berechnen. Digitaler Beschleunigungsmesser gibt Ihnen Informationen über ein serielles Protokoll wie I2C SPI oder USART, während analoge Beschleunigungsmesser einen Spannungspegel innerhalb ausgeben Ein vordefinierter Bereich, den Sie mit einem ADC Analog-Digital-Wandler-Modul in einen digitalen Wert umwandeln müssen. In diesem Tutorial werden wir kurz die Funktionalität von acce erklären Lerometer, wie sie verwendet werden, um Neigungswinkel zu messen und schließlich einen Beispielcode zu liefern Siehe auch das Tutorial zum Kombinieren von Beschleunigungssensoren und Gyro-Daten, um einen besseren Neigungswinkel für ein dynamisches System zu liefern. Was macht ein Beschleunigungsmesser-Maß. Beschleunigungsmesser messen Beschleunigung Für ein statisches Objekt Das ist die Beschleunigung aufgrund der Schwerkraft 1g Beachten Sie auch, dass die Ausgabe von Beschleunigungssensoren nicht linear ist, sondern eine Sinuswelle ist, so dass Sie nicht die direkte Ausgabe als eine proportionale Darstellung eines Neigungswinkels auf der Grundlage der Schwerkraft nehmen können. Normalerweise ein Beschleunigungsmesser sx und y Ausgangsspannungen werden die Hälfte der Versorgungsspannung bei der Messung von Null sein, wenn das Gerät senkrecht zur Schwerkraft ist - horizontal Neigen Sie es auf eine Weise und die Spannung erhöht sich, kippt es auf die andere Richtung und es wird mit einem Triple-Achsen-Beschleunigungsmesser abnehmen, wird die z-Achse gemessen 1g mit dem Gerät horizontal Der Ausgang eines Beschleunigungsmessers ist eine Sinuswelle der Beschleunigung gemessen Beschleunigungsmesser sind empfindlicher gegenüber kleinen Änderungen in der Neigung Wenn sie senkrecht zur Schwerkraft sind, wenn sie waagerecht sind, geben kleine Änderungen in der Neigung nützliche Lesungen Vergangenheit etwa 45 Grad der Neigung werden sie immer weniger empfindlich. Aus diesem Grund ist es üblich, mehr als einen Achsenwert bei der Bestimmung des Neigungswinkels zu verwenden, wie es wird Siehe unten. Measuring Tilt Angle mit einer Achse. Wenn Sie wollen, um die Neigung in x und y-Achse mit einem 2-Achsen-Beschleunigungsmesser zu messen, dann können Sie einfach sin-1 a verwenden, wo a die Ausgabe von einer Achse des Beschleunigungsmessers ist. Denken Sie daran, dass über 45 und -45 Grad die Genauigkeit abnimmt. Measuring Tilt Angle mit zwei Achsen. Die Reduzierung der Auflösung und Genauigkeit über 45 Grad der Neigung kann durch die Verwendung von 2 Achsen zur Messung der Neigung verbessert werden Die Komponente der Schwerkraft wirkt auf die x Achse ist eine Sinusfunktion, während die auf die y-Achse einwirkende Cosinus ist Wenn die Empfindlichkeit der x-Achse nach 45 Grad der Neigung abfällt, steigt die Empfindlichkeit der y-Achse. Wie in der folgenden Tabelle zu sehen ist, ist die fettgedruckte Par Ts jeder Zeile zeigen den Bereich der meisten Empfindlichkeit. Thus durch die Kombination der x und y-Werte eine viel verbesserte Genauigkeit erhalten werden kann. Der Winkel wird unter Verwendung der formula. Measuring Tilt Angle mit drei Achsen berechnet. Für genaue Messungen der Neigung in der x Und y-Ebenen benötigen wir daher einen 3-Achsen-Beschleunigungsmesser Wir könnten die obige Formel verwenden, um die Winkel mit x und z für die x-Achse zu berechnen und mit y und z für die y-Achse zu arbeiten. Allerdings können wir die Dinge weiter verbessern, indem wir alle drei zu berechnenden Ausgänge verwenden Jeder Winkel Dies geschieht mit den folgenden Formeln. Lets bekommen auf einige Coding. Hopefully, sind wir jetzt ziemlich klar über die Grundsätze, aber sehen wir, wie dies in der Praxis getan wird Wir werden ein 3-Achsen-Beschleunigungsmesser und arbeiten Winkel für Roll X und Tonhöhe y. Wir nehmen an, dass je nach Art des verwendeten Beschleunigungsmessers die Werte für x, y und z gelesen wurden und dass Sie auch Grundlinienwerte für x, y und z haben, wenn der Beschleunigungsmesser stationär ist und level. void calcxyangles ist Void Mit xy und Z vom Beschleunigungsmesser, berechnen x und y Winkel float xval, yval, zval, Ergebnis unsigned kurz lang x2, y2, z2 24 bit. Lass uns die Abweichungen von unserer Grundlinie xval float accelvaluex - float accelcenterx yval float accelvaluey - float accelcentery zval float accelvaluez - float accelcenterz. Ausarbeiten der Quadrate x2 unsigned kurz lang xval xval y2 unsigned kurz lang yval yval z2 unsigned kurz lang zval zval. X Achsenergebnis sqrt y2 z2 Ergebnis xval Ergebnis accelanglex atan Ergebnis. Y Axis Ergebnis sqrt x2 z2 Ergebnis yval Ergebnis accelangley atan result. Ok, das ist es nur ein paar Notizen über Beschleunigungsmesser im Allgemeinen Sie sind sehr empfindlich und sind daher sehr anfällig für Vibrationen Wenn Sie eins in einem System mit Motoren oder anderen Quellen verwenden Der Vibration Ich schlage vor, einige Form der Schaum Dämpfung Auch nehmen Sie mehrere Messwerte aus dem Beschleunigungsmesser und durchschnittlich sie zu filtern alle Lärm.


No comments:

Post a Comment