LabVIEWForum.de - nochmal was über Beschleunigungssensor

LabVIEWForum.de

Normale Version: nochmal was über Beschleunigungssensor
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
mein erster Versuch mit dem ADXL311(von Analog), habe einfach eine schiene gebaut und die Platine mit Gyro und Beschleunigungssensor senkrecht nach unten bewegt, also praktisch freienfall.
Daten hole ich alle 0,0001 s ab. die Daten werden dann in eine Datei geschrtieben mit der ich dann anfange will, mein Algorithmus zu entwerfen.
hab erst angefangen die Daten mit Excel zu berarbeiten, war leider bis auf die umrechnung von den AD Code in V nicht zu gebrauchen gewesen, aber dann kam ich eine studentenversion von LabVIEW ran und versuche seit dem damit das zu machen, weil dort ja schon Integral rechnung als Funktion ja schon vorliegt.

also wenn ich den Sensor richtig verstanden habe,
ich betreibe den ADXL311 mit 5 V. wenn ich das jetzt richtig mache, heißt das doch, dass ich meine Spannungswerte, einfach durch 0,312 V/g nehmen muss, dann habe ich doch die Beschleunigung a, oder? und dann noch mal 9,81 m/s*s, damit ich SI einheiten habe. soweit ist das doch richtig oder?
aber der Sensor arbeite ja auch als Tilt sensor, könnten meine Werte daher so schlecht zu berechnen sein, weil dann doch die Erdgravitation zu tragen kommt?

Probleme bei dennen mir gerne auch noch geholen werden kann ;-))
1.
wie könnte man das hinbekommen, das man ihn am anfang Kalibriert? also nicht im laufenden betrieb von daten holen sondern, wenn ich meine Daten in LabVIEW lade. bekomme dort das Signal nicht wirklich auf null.

2.
gibt es ein Vi, mit welchen ich ein Signal verlauf untersuchen kann, ich meine an anfang als der sensor sich nicht bewegt hatte, habe ich ja trotzdem kleine änderung der Spannung gehabt und die denke ich, intergiert sich gerade mit auf, daher komme ich auhc so schlecht werte. habe mal die beiden Achsen Signale angehängt. der eine ist X, der andere in X Richtung, was mich da verwundert ist, ich hätte ja gedacht das ich in eine richtung kaum beschleunigung habe.

so ich denke ich habe euch erstmal genügend zugetextet.
ich wäre sehr dankbar über jede kleine, aber auch antürlich über große Hilfe :-)
da ich im moment wirklich festhänge und dabei dachte ich als ich mir das überlegt hatte so schwer könnte das ja nicht sein
' schrieb:mein erster Versuch mit dem ADXL311(von Analog), habe einfach eine schiene gebaut und die Platine mit Gyro und Beschleunigungssensor senkrecht nach unten bewegt, also praktisch freienfall.
Daten hole ich alle 0,0001 s ab. die Daten werden dann in eine Datei geschrtieben mit der ich dann anfange will, mein Algorithmus zu entwerfen.
hab erst angefangen die Daten mit Excel zu berarbeiten, war leider bis auf die umrechnung von den AD Code in V nicht zu gebrauchen gewesen, aber dann kam ich eine studentenversion von LabVIEW ran und versuche seit dem damit das zu machen, weil dort ja schon Integral rechnung als Funktion ja schon vorliegt.

also wenn ich den Sensor richtig verstanden habe,
ich betreibe den ADXL311 mit 5 V. wenn ich das jetzt richtig mache, heißt das doch, dass ich meine Spannungswerte, einfach durch 0,312 V/g nehmen muss, dann habe ich doch die Beschleunigung a, oder? und dann noch mal 9,81 m/s*s, damit ich SI einheiten habe. soweit ist das doch richtig oder?
aber der Sensor arbeite ja auch als Tilt sensor, könnten meine Werte daher so schlecht zu berechnen sein, weil dann doch die Erdgravitation zu tragen kommt?

Probleme bei dennen mir gerne auch noch geholen werden kann ;-))
1.
wie könnte man das hinbekommen, das man ihn am anfang Kalibriert? also nicht im laufenden betrieb von daten holen sondern, wenn ich meine Daten in LabVIEW lade. bekomme dort das Signal nicht wirklich auf null.

2.
gibt es ein Vi, mit welchen ich ein Signal verlauf untersuchen kann, ich meine an anfang als der sensor sich nicht bewegt hatte, habe ich ja trotzdem kleine änderung der Spannung gehabt und die denke ich, intergiert sich gerade mit auf, daher komme ich auhc so schlecht werte. habe mal die beiden Achsen Signale angehängt. der eine ist X, der andere in X Richtung, was mich da verwundert ist, ich hätte ja gedacht das ich in eine richtung kaum beschleunigung habe.

so ich denke ich habe euch erstmal genügend zugetextet.
ich wäre sehr dankbar über jede kleine, aber auch antürlich über große Hilfe :-)
da ich im moment wirklich festhänge und dabei dachte ich als ich mir das überlegt hatte so schwer könnte das ja nicht sein

Hallo Bastman,

zu erst mal eine Bitte an Dich. Wenn Du wirklich auf hilfreiche Antworten auf Deine Beiträge hoffst, dann tu uns allen doch den Gefallen und lies Dir Deinen Beitrag noch mal durch bevor Du ihn absendest. Das tut ja richtig weh beim Lesen. Versuche Dich bitte so auszudrücken, dass man weiß wovon Du redest.: Das heißt alle Dinge beim Namen nennen, die LabVIEW-Nutzern bakannt sein sollten, kurze aber vollständige Sätze bilden und das ganze in richtigem Deutsch.
Ich verstehe das meiste von dem was Du schreibst einfach nicht. Könnte ja sein das es anderen hier ähnlich geht. Die vielen Tipp-, Rechtschreib- und Ausdrucksfehler machen das ganze nicht besser.
Tut mir leid aber niemand kann Dir richtig helfen, wenn er Dich nicht versteht. Verstehe das bitte als gutgemeinten Rat!

Was ist das für eine Größe 0,312 V/g ? Was willst Du denn berechnen? Was hat das eigentlich mit LabVIEW zu tun?

zu 1.: Was willst Du kalibrieren, den Sensor, das Anzeigediagram, oder was? Und auf was? Woher und wohin holst Du welche Daten und von wo aus lädst Du sie in LabVIEW?
Wo genau willst Du welches Signal auf null bekommen. Wenn ich mir Deinen Graphen ansehe brauchst Du doch nur von jedem y-Wert 2,4-undbreitgetretene subtrahieren und Du hast vor und nach den deutlichen y-Ausschlägen ein Plateau auf dem Wert 0 und alle andern Werte auf die Höhe des Plateaus normiert. Oder Du subtrahierst von Deinem Integral das Produkt aus dem Plateau-Wert und der Anzahl der Messwerte.

zu 2.: Es gibt tausende VIs um Signalverläufe zu untersuchen. Es kommt darauf an wonach. Unter Signalverlaufsmessung gibt es einige Funktionen. Nach Funktionen zum Glätten von Signalverläufen musst Du mal ein paar mathematische Bücher und Webseiten durchstöbern und das dann in LV basteln. Kleine Ausschläge, die einen von Dir festgelegten Mindestausschlag nicht überschreiten könntest Du zum Beispiel einfach mit 0 überschreiben.
Kannst Du Deine Integrationsgrenzen nicht so legen dass Du den Bereich wo sich die Spannung nicht ändert nicht mit integrierst, nachdem Du Deinen Graphen auf 0 normiert hast?
In welche Richtung die Beschleunigung geht kannst nur Du wissen, da hier wahrscheinlich niemand Deinen Versuchsaufbau kennt.

Vielleicht kann Dir jemand helfen, wenn Du Dein Anliegen mal etwas verständlicher formuliert.

Grüße
SchwindelInside
<div align="left">Nee du hast ja vollkommen Recht, habe das leider heute Morgen nur schnell hin geschrieben, ohne das noch mal groß nachzulesen. Danke für deinen Rat, werde versuchen es ab nun verständlicher zu schreiben. Hatte wohl zu viele Gedanken auf einmal im Kopf gehabt.

Die 0,312 V/g ist die Sensitivität des Sensors bei Vdd 5 V, laut Datenblatt. Soweit ich das Richtig verstanden habe, errechnet man damit die Beschleunigung für jeden einzelnen Wert. Z.B bei einer Spannung von 2,5 V, davon wird dann die Ref. Spannung( z.B. 2,3V) abgezogen. Das ist die Spannung die der Sensor in Ruhe hat. Das ist das was ich unter 1. versucht habe zu erfragen. Weil ich ja sonst eine Beschleunigung angezeigt bekomme, da die Spannungsdifferenz, aus der oberen Formel, nie wirklich null ergibt.
Noch mal zum Beispiel zurück. Ich habe also eine Spannungsdifferenz von 0,2 V, die ich dann durch 0,312 V/g teile, daraus ergibt sich die Beschleunigung = 0,0624 g. um m/s*s zubekommen, müsste ich es ja einfach mal ~9,81 nehmen.
So weit ist das doch noch alles Richtig, oder?

Also die Daten habe ich mit einer AD- Karte aufgenommen und mir in eine Datei geschrieben, die Datei lese ich durch die Funktion „Messwerte aus Datei lesen“ von LabVIEW aus. Dann errechne ich aus den AD Code mir die Spannungswerte und schreibe diese dann in ein Array. Habe dort nur die Spannungswerte. Die Daten wurden alle 0,0001 s abgeholt.

Dass man einen Mittelwert bilden kann,habe ich schon gefunden, gibt es denn dort auch eine Möglichkeit dass man einen Mittelwert nur über die ersten 5000 Daten bilden kann?
Dann bräuchte ich noch einen Filter oder eine Glättfunktion. Werde mal nachlesen ob ich darüber was finde.
Deine Idee mit den subtrahieren benütze ich schon, aber wie oben erwähnt, bekomme ich nicht das Signal auf Null, da ich ja den Mittelwert abziehe. Deswegen wäre ja Glätten und dann mittelwert Bildung besser, denke ich.

Zu 2.
Ich suche eine Signaluntersuchung, das ich angeben kann, wenn z.B. die Spannungsdifferenz großer als z.B. 0,1 V beträgt das ich dann ja weiß, das nun eine wirkliche Bewegung stattgefunden hat d.h. alles unter 0,1 V sehe ich als Ruhezustand an und alle drüber als tatsächliche Bewegung.

Ich hoffe ich habe es nun alles etwas verständlicher ausgedrückt und sorry noch mal für den ersten Text

</div>
<div align="left">
' schrieb:Nee du hast ja vollkommen Recht, habe das leider heute Morgen nur schnell hin geschrieben, ohne das noch mal groß nachzulesen. Danke für deinen Rat, werde versuchen es ab nun verständlicher zu schreiben. Hatte wohl zu viele Gedanken auf einmal im Kopf gehabt.

Die 0,312 V/g ist die Sensitivität des Sensors bei Vdd 5 V, laut Datenblatt. Soweit ich das Richtig verstanden habe, errechnet man damit die Beschleunigung für jeden einzelnen Wert. Z.B bei einer Spannung von 2,5 V, davon wird dann die Ref. Spannung( z.B. 2,3V) abgezogen. Das ist die Spannung die der Sensor in Ruhe hat. Das ist das was ich unter 1. versucht habe zu erfragen. Weil ich ja sonst eine Beschleunigung angezeigt bekomme, da die Spannungsdifferenz, aus der oberen Formel, nie wirklich null ergibt.
Noch mal zum Beispiel zurück. Ich habe also eine Spannungsdifferenz von 0,2 V, die ich dann durch 0,312 V/g teile, daraus ergibt sich die Beschleunigung = 0,0624 g. um m/s*s zubekommen, müsste ich es ja einfach mal ~9,81 nehmen.
So weit ist das doch noch alles Richtig, oder?

Müsste stimmen, soweit ich das jetzt nachvollziehen kann.

Zitat:Dass man einen Mittelwert bilden kann,habe ich schon gefunden, gibt es denn dort auch eine Möglichkeit dass man einen Mittelwert nur über die ersten 5000 Daten bilden kann?
siehe angehängtes VI

Zitat:Zu 2.
Ich suche eine Signaluntersuchung, das ich angeben kann, wenn z.B. die Spannungsdifferenz großer als z.B. 0,1 V beträgt das ich dann ja weiß, das nun eine wirkliche Bewegung stattgefunden hat d.h. alles unter 0,1 V sehe ich als Ruhezustand an und alle drüber als tatsächliche Bewegung.

so vielleicht?:
[attachment=3846]

Zitat:Ich hoffe ich habe es nun alles etwas verständlicher ausgedrückt und sorry noch mal für den ersten Text

Schon ein ganz deutlicher Unterschied zu vorher Smile


Viel Erfolg!
Grüße, SI</div>
könntest du mir evtl das Vi etwas erklären?
habe es mir gerade angeschaut, aber steige nicht so ganz da hinter wie es richtig funzt.

naja man kann halt auch besser schreiben Big Grin
' schrieb:könntest du mir evtl das Vi etwas erklären?
habe es mir gerade angeschaut, aber steige nicht so ganz da hinter wie es richtig funzt.

naja man kann halt auch besser schreiben Big Grin

hab ein paar Anmerkungen rein geschrieben. Ich hoffe damit wird einiges klarer.

[attachment=3849]
Ja danke nun verstehe ich es schon etwas besser.
aber noch eine Frage, wie bekomme ich meine Werte dort jetzt rein?
Habe das Express VI Formel benutzt und anschleißend indiziere ich mit dem Ausgang ein Array.
muss wohl noch mal erwähnen das ich LabVIEW erst seit einer Woche benutze, ich hoffe man verzeiht mir daher solche frage :-)


ich Lade dir am besten meine Version mal schnell hoch, damit kannst du bestimmt etwas mehr anfangen
das einzige was dort fehlt ist die Konstante beim subtrahieren
ach so, hier auch noch die Daten die ich einlese.
musste diese nur als .txt speichern, weil ich sie sonst nicht hochladen konnte.
zur zeit lese ich jede einzeln ein. also wäre eine Datei auch ausreichend.
wäre super wenn du mal einen kurzen blick drauf werfen könntest
Hast du ein RT System, oder denkst du wirklich alles mit so schlechten Sensoren unter Windows zum Funktionieren zu bringen? Wie soll denn die Genauigkeit sein? Willst du nur Beschleunigung messen oder daraus auch die Position? Im zweiten Fall brauchst du zu jedem Abtastwert eine genaue Abtastzeit. Oder deine Abtastfrequenz soll wirklich äquiditant sein. Also alles deutet darauf hin ein RT System zu nehmen.

Gruss, Eugen
<div align="left">Hallo Bastmann,

Wenn Du ein Signalverlauf für ein XY-Graphen erstellen möchtest, muss der obere Eingang des Clusters ein 1D-Array mit den X-Werten, die in diesem Fall hier vermutlich die Zeitwerte sein sollen, und der untere Eingang ein 1D-Array mit den Y-Werten, was in Deinem Fall wohl die Wegpunkte bzw. deren zeitliche Ableitungen sind, sein.

Ich hab ein komplettes VI gebaut, das die Werte aus Deinen Dateien ausliest, verarbeitet und anzeigt.:
[attachment=3859]

Allerdings sind Deine Messwerte in den Dateien in zwei Dimensionen verteilt. Ist das beabsichtigt? Unterscheiden sich die Werte in den verschiedenen Zeilen oder Spalten durch irgendetwas bestimmtes? Oder wolltest Du einfach nur den gesammten Bildschirmplatz nutzten.

Du solltest Dir allerdings wirklich nicht viel Hoffnung machen unter M$-Windoof Messwerte in exakten Zeitabständen von 0,1 ms messen zu können. Sowas kann warscheinlich nur ein Echtzeit-System, also ein System, das ohne ein normales Betriebssystem als Zwischenschicht zwischen Deiner Steuerungssoftware und Deiner Sensor-Hardware auskommt. Dafür gibt es das RealTime-Module für LabVIEW. Ich glaub allerdings nicht, dass das in der Studentenversion enthalten ist.

Viel Erfolg noch
SchwindelInside</div>
Seiten: 1 2
Referenz-URLs