Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
ich habe ein Problem und komme nicht mehr weiter, hoffe ihr könnt mir helfen.
Ich werte ein Signal eines Beschleunigungssensors aus und möchte nun aus den Werten eine Strecke ermitteln, sprich 2mal integrieren. Und genau da ist das Problem, wie kann ich das machen mir LabView ??
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Auswertung Beschleunigungsensor in Strecke
Hab' das gerade mal getestet. Klappt aber nicht so ganz (wahrschienlich hab' ich aber nur einen Denkfehler ).
Wenn ich die Funktion x (untere For-Schleife) integriere kommt bei "Trapezoidal Rule" auch 1/2 * x^2 heraus, bei 3 z.B. 1/2 * 3^2 = 4,5.
In der oberen For-Schleife, bei einer Konstanten (Wert 10), gibt es doch nach dem Integrieren 10x(+C), oder stehe ich auf dem Schlauch? Weil da kommt bei 2 z.B. nicht 20, sondern je nach Integrierart was ganz anderes heraus.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Ich habe allerdings im moment das Problem, dass ich dieses Integral nicht bei den Funktionen finden kann. kann das an meiner Version liegen oder bin ich zu blöd zum es finden.
Vllt könnt mir jemand sagen wo ich diese Funktion finde.
Danke
15.09.2011, 07:43 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2011 07:43 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Auswertung Beschleunigungsensor in Strecke
Mathematics -> Integration & Differentiation -> Integral x(t)
Gruß Markus
PS: Kann mir jemand sagen, was mein Denkfehler in Beitrag #3 ist?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
15.09.2011, 18:02 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2011 20:28 von jg.)
(15.09.2011 07:43 )Y-P schrieb: PS: Kann mir jemand sagen, was mein Denkfehler in Beitrag #3 ist?
1) Dein VI ist in dieser Form erst ab LV2009 gültig, erst da gab es die Auswahl der Integrationsmethode.
2) Fehler ist, dass du den Standardwert bei Intial- und Final Condition nicht geändert hast. Die ist nämlich jeweils ein Array mit einem Element, nämlich Null. Schau mal in die Beschreibung zu Integral(x).
Bei der Trapezregel wird auf ein Wert x_(j-1) benötigt, bei der Simpson Regel auch noch ein Wert x_(j+1).
Also: Bei der Trapezregel einen Wert für Initial Condition anschließen, bei Simpson Intial + Final:
Gruß, Jens
EDIT: Link korrigiert
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Auswertung Beschleunigungsensor in Strecke
Jetzt stimmen die beiden oberen Ergebnisse, aber 1/2*x^2 (untere For-Schleife) stimmt nicht mehr.
Wieso schreibe ich bei Initial (bei Simpson auch bei Final) den Wert 10 rein?
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
15.09.2011, 22:54 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2011 06:44 von jg.)
Ist im Screenshot zu sehen, dass du bei deinem 3. Integral auch ein Array [10] anschließen sollst? Nein!
Nochmals (nach dem inzwischen der Link stimmt), schau dir die Erklärung zur Mathematik in der Hilfe an.
Und meinen Screenshot für die Integration deiner Konstanten-Funktion revidiere auf das hier:
zumindest, wenn der erste Wert des Ausgabe-Array das Integral von 0 bis 0 sein soll. Das ist jetzt aber haargenau auf die dahinterliegende Mathematik/Numerik angepasst.
Mach' mer mal a Bilde zur Erklärung, hier dein erstes Bsp, konstante Funktion, definiert an den Stellen x=0,1,2,...,9 (die weiße Linie)
Rot dargestellt sind die Rechtecke, die die LabVIEW-Integral-Funktion bei Verwendung der Trapezregel aufaddiert, wenn man die Initial Condition auf dem Default-Wert [0] belässt. (Die Darstellung stimmt nicht ganz, da sich die Rechtecke berühren müssen, aber dann hätte man sie nicht mehr erkannt). Die numerische Integrations-Funktion gibt dir auch ein Array mit 10 Element zurück. Etwas unklar ist, was das Array-Element 0 darstellt. Ist es das Integral von 0 bis 0? Oder von 0 bis 0,5? Oder gar von 0 bis 1? Laut Hilfe soll es das Integral von 0 bis 0 sein. Wie man aber sieht, wird beim Default-Wert [0] eben noch eine Fläche von 5*1 dazu addiert.
Und deshalb funktioniert die Trapezregel "zufällig" bei deinem 2. Bsp, der numerischen Integration einer Geraden durch den Ursprung bei Verwendung der Default-Wert [0]:
Abschließende Bemerkung: Wir sind bei numerischer Integration. Das wird dir in den seltensten Fällen das absolut richtige Ergebnis liefern.
Ein Delta von 1 bei numerischer Integration, das ist ein Killerkriterium für ein einigermaßen korrektes Resultat. Man will schließlich in der Regel möglichst kleine Rechtecke aufaddieren.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
RE: Auswertung Beschleunigungsensor in Strecke
OK. Danke Jens. Belassen wir es am besten mal dabei. Ich blicke allerdings immer noch nicht, wieso man (auf einmal) -50 und +10 anschließen muss (bzw. -10 bei Trapezoidal) und vor allem, dass man das als Array anschließen muss (bei der Hilfe blicke ich nicht wirklich durch).
Komisch ist es allerdings schon, dass LabVIEW es nicht schafft eine einfache Funktion wie "x" zu integrieren.
Ich stelle mir eine Funktion vor, wo ich vorne mein Signal (in dem Fall eine Steigung von 0-10, also "x") anlege und hinten kommt 1/2 * x^2 heraus (also vorne 0, 1, 2, 3,... und hinten 0, 0.5, 2, 4.5,...) Gibt es so was nicht?
Gruß Markus
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------