30.08.2006, 06:33
Beitrag #1
|
sneube
LVF-Gelegenheitsschreiber
Beiträge: 53
Registriert seit: Mar 2006
7.1
2006
kA
Deutschland
|
Beschleunigung, Integration
Hallo,
ich weiß, dass es zum Thema Beschleunigungsaufnahme mit Sensoren schon Beiträge gibt, aber mein Problem liegt etwas anders.
Mit Hilfe von zwei ICs kann ich die Beschleunigung in x-y-und z-Richtung aufnehmen. Mit Hilfe einer Messbox und LabVIEW kann ich die Beschleunigungen in alle drei Richtungen als Graph anzeigen, in ein Array schreiben, usw....
Nun möchte ich aber diese Funktionen zwei Mal integrieren, damit ich erstens ein v-t-Diagramm und ein s-t-Diagramm erhalte. Für die Zeiterfassung würde ich einen Timer verwenden. Doch leider ist die Sache nicht ganz so einfach:
Ich kann zwar diese fertigen VIs benutzen, es wird auch etwas integriert, aber das ist für mich nicht brauchbar, da die Sensoren in Ruhe nicht exakt 0g liefern, sondern entweder etwas in den pos oder neg Bereich gehen. Benutze ich diese Integratoren, bin ich schon nach Sekunden auf Werten, die über 10000 liegen.
Vielleicht kann mir jemand helfen
Grüße
Stefan
LV Version 7.1
|
|
|
30.08.2006, 07:40
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2006 07:46 von Lucki.)
Beitrag #2
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Beschleunigung, Integration
Dazu kann ich nur allgemein etwas sagen, das hat mehr mit Physik und nichts mit als LabVIEW zu tun.
Zur Vereinfachung argumentiere ich nur für eine Achsrichtung
Es gibt zwei Möglichkeiten das Problem zu lösen:
1) statisch
Da brauchst außer der normalen Taste "Rücksetzen", mit der die Ausgänge beider Integratoren auf Null gesetzt werden, noch eine zweite Taste "Offset-Kalibrierung". Wenn sie gedrückt wird, dürfte sich der Sensor nicht bewegen. Dann läuft folgendes ab: Der erste Integrator, also der Geschwindigkeitsausgang, wird über die Zeitdauer T beobachtet, und nach dieser Zeit wird die Geschwindigkeit V gelesen. Der Quotient V/T wäre dann der Beschleunigungs-Offset der Messeinrichtung. Dieser Offset muß gespeichert und bei künftigen Messungen immer von der vom Sensor abgegebenen Beschleunigung subtrahiert werden. Die Taste ist unbedingt erforderlich, ein einmalig ermittelter fester Offset-Wert wäre nicht gut, da der Offset z.B. temperaturabhängig ist.
2) dynamisch
Das funktioniert nur, wenn sich der Sensor die meiste Zeit im Positionsnull befindet und er sich bei den Messungen nur vergleichwseise kurz bewegt.
In Diesem Fall könnte man die untere Grenzfrequnz beider Integratoren beschneiden. Sie haben dann die Eigenschaft, sich immer von selbst auf den Wert Null zurückzubewegen. Die Grenzfrequenz muß im Vergleich zur Messdauer so weit unten liegen, daß diese Verhalten während der Dauer einer Messung nicht stört.
3) Kombination beider Methoden.
Innerhalbe eines Positionsfensters um den Nullpunkt herum wird der Offset dynamisch korrigiert, wenn aber eine gewisse Postion anliegt, dann wird dieses dynamische Rücksetzen abgeschaltet, so daß bei längerem Verweilen an einer außerhalb des Nullpunktes liegender Position kein Fehler entsteht. Das ist aber dann schon die Höhere Schule und nicht mehr nur die einfache Lösung.
|
|
|
30.08.2006, 09:38
Beitrag #4
|
sneube
LVF-Gelegenheitsschreiber
Beiträge: 53
Registriert seit: Mar 2006
7.1
2006
kA
Deutschland
|
Beschleunigung, Integration
Hallo Lucki,
erstmals danke für deine Hilfe.
es ist mir schon klar, dass ich einen Offset von zB der Geschwindigkeit abziehen muß, da ja der Wert an einem Punkt im v-Diagramm die Fläche unter dem a-Graph in einem Definitionsbereich ist.
Aber ich denke, es ist schwer zu realisieren, denn ich müsste ja genau wissen wann der Sensor im Ruhezustand ist. Gerade durch die Integration möchte ich unter anderem wissen, wann die Geschwindigkeit konstant ist. Natürlich könnte man sagen, schau auf den Graph, wenn man im v-Diagramm eine Gerade hat, ist die Geschwindigkeit konstant. Ich glaube es ist nicht ohne weiteres möglich, durch den Sensor und Integratoren, die bei LabVIEW mitgelieft sind, genau eine abgefahrene Strecke zu ermitteln.
Ich glaube, man kommt mit der Idee von Bierber zum Ziel, in dem man die Formel nimmt und die Sensorwerte als Array dieser Formel übergibt. Was meinst du dazu?
Grüße
Stefan
|
|
|
30.08.2006, 10:01
Beitrag #5
|
|
|
30.08.2006, 16:42
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2006 16:57 von Lucki.)
Beitrag #6
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Beschleunigung, Integration
Du wirst nicht darum herumkommen, für Deine Apparatur eine Kalibrier-Umgebung zu schaffen. Ich kann mir nicht vorstellen, wieso es nicht möglich sein soll, das sich bewegende Ding, auf dem der Sensor sitzt, nicht mal für eine kurze Zeit ruhig zu stellen.
Der Sensor könnte sich während der Kalibrierung sogar bewegen, man muß nur wissen wohin.
Beipiel: Zur Zeit t0 hat der Sensor die Lage X0 und die Geschwindigkeit 0 (bei v0<>0 würde die Formel noch komplizierter). Zur Zeit t1 hat er die Lage x1, die Messung zeigt aber die fehlerhafte Lage x1' an. Dann ist x1' - x1 der Lagefehler, von dem angenommen wird, daß er durch einen konstanten Beschleunigungs-Offsetfehler entstanden ist. Nach der Formal (x1'-x1) = a_offset/2 * (t1-to)^2 läßt sich der Beschleunigungs-Offset leicht berechnen.
Es geht aber genauso nur mit den Geschwindigkeiten, denn es kann angenommen werden, daß die Intergratioen über die Geschwindigkiet fehlerfrei ist, also nur ein Korrekturwert für die erste Integration zu zu ermitteln ist.
Also für die gleiche Situation wie oben gilt dann: (v1'-v1) = a_offset * (t1-t0).
Bierber macht wohl dasselbe, und er hat auch noch in einem anderen Punkt recht: Man braucht hier kein besonderes Integrations-VI zu verwenden. Bei entsprechend vielen Stützpunkten, z.B 1000 oder mehr, genügt es, die Werte einfach zu summieren und mit dt zu multipizieren. Wenn Du's noch etwas genauer haben möchtest, dann nimmst Du vom ersten und letzten Wert nur die Hälfte, oder läßt wenigstens einen der beiden weg, denn Du hast für die Zeitdauer N*dt immer N+1 Messwerte, da ist einer zu viel.
Es wäre von Vorteil, wenn Du das Kind beim Namen nennst, also ich meine damit die Anwendung, um die es geht. Dann könnte man noch qualifizierter helfen. Oder ist das alle hochgeheim?
|
|
|
30.08.2006, 18:52
(Dieser Beitrag wurde zuletzt bearbeitet: 30.08.2006 19:02 von Lucki.)
Beitrag #7
|
|
|
31.08.2006, 07:39
Beitrag #8
|
|
|
31.08.2006, 09:21
(Dieser Beitrag wurde zuletzt bearbeitet: 31.08.2006 09:25 von Lucki.)
Beitrag #9
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Beschleunigung, Integration
' schrieb:habs mal probiert mit deinem VI. Generell scheint es zu gehen hat aber auch den gleichen Fehler drin. Die kurve haut in eine Richtung ab
Dann haben Sensor und/oder DA-Input einen Offset - was übrigens ganz normal ist. Er muß kompensiert werden. Wie? Ganz einfach: Kurve aufnehmen, während der Sensor in Ruhe ist. Der Offset äußert sich dann als scheinbare konstante Geschwindigkeitszunahme. Der Offset ist dann a_offset = V_end/T_end. Dieser Wert ist von jedem Abtastwert zu subtrahieren.
|
|
|
| |