LabVIEWForum.de
Numerische Integration (nicht äquidistant) Error -20049 - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Numerische Integration (nicht äquidistant) Error -20049 (/Thread-Numerische-Integration-nicht-aequidistant-Error-20049)

Seiten: 1 2


Numerische Integration (nicht äquidistant) Error -20049 - jeannyLab - 07.07.2012 15:00

Hallo!

Ich stehe etwas ratlos vor folgendem Problem:

Mein Ziel ist die Berechnung der Schneidarbeit einer Stanzmaschine aus den Kraft- und Wegdaten über Berechnung des Integrals der Weg-Kraft-Kurve.

Mit dem Labview-Block 'Numerische Integration (nicht äquidistant)' müsste das eigentlich problemlos funktionieren.

Bei manchen Wegverläufen allerdings ist das Ergebnis nur NaN und der Fehlercode -20049 (Die x-Werte müssen unterschiedlich sein) wird angegeben.
Versteht ihr, warum die x-Werte unterschiedlich sein müssen? (Abgesehen davon sind meine Wegwerte unterschiedlich...)

Wenn ich den Wegverlauf mit einem Polynom approximiere, taucht das Problem nicht auf (möchte ich allerdings umgehen).

Das Problem scheint am Ende meiner Wegdaten zu liegen, da beim frühzeitigeren Abschneiden der Wegdaten das Problem ebenfalls verschwindet.

Habt ihr eine Idee, was genau das Problem an meinen Wegdaten sein könnte?
Gibt es eine minimal notwendige x-Wert-Differenz?

Im Anhang ist ein VI mit Integrationsversuch beispielhafter, problematischer Daten.

Danke im Voraus für Eure Hilfe!
glg jeanny


RE: Numerische Integration (nicht äquidistant) Error -20049 - GerdW - 07.07.2012 15:17

Hallo jeanny,

wo ist der Anhang?

Abgesehen davon: die Funktion prüft auf exakt gleiche X-Werte (kann man sich ja anschauen) und gibt dann diesen Fehler aus. Also einfach selbst mal die X-Werte überprüfen!?


RE: Numerische Integration (nicht äquidistant) Error -20049 - jeannyLab - 07.07.2012 16:43

sorry, hatte den Anhang zwar angegeben, aber den hinzufügen-Knopf vergessen.


RE: Numerische Integration (nicht äquidistant) Error -20049 - GerdW - 07.07.2012 16:51

Hallo Jeanny,

also LabVIEW findet durchaus X-Werte, die gleich sind. Siehe Anhang...


RE: Numerische Integration (nicht äquidistant) Error -20049 - jeannyLab - 07.07.2012 17:39

Dankeschön Gerd.

Mir ist inzwischen auch klar, wieso das ein Problem für LabVIEW ist (es sind ja x- und keine y-Werte).

Die Frage ist nur, wie ich jetzt meine Integration trotzdem hinkriege...


RE: Numerische Integration (nicht äquidistant) Error -20049 - GerdW - 07.07.2012 17:48

Hallo jeanny,

die pragmatische Lösung wäre, pro X-Wert nur einen Y-Wert zuzulassen. (Sonst hast du bei jeder numerischen Integration Probleme!)
Entweder löscht man überzählige Einträge einfach raus (die simple Variante) oder man mittelt die Y-Werte für gleiche X-Werte (die geringfügig kompliziertere Variante)...


RE: Numerische Integration (nicht äquidistant) Error -20049 - jeannyLab - 08.07.2012 12:53

Das ist jetzt aber seltsam:

Ich habe nun gleiche X-Werte einfach mal herausgelöscht und er hat trotzdem Probleme bei der Integration und gibt immer noch die selbe Fehlermeldung aus!

Gleichzeitig habe ich mal einen Versuch mit ganz einfachen Werten gemacht und da hat er auch bei gleichen x-Werten kein Problem bei der Integration (siehe VI).

???


RE: Numerische Integration (nicht äquidistant) Error -20049 - Lucki - 08.07.2012 13:51

Habe mir zum Sonntag das VI mal kurz angesehen, kann Dir auf die Schnelle auch nicht sagen woran das liegt. Aber: Das Integrations-Vi ist zwar mehrfach verschachtelt, aber die BD's lassen sich alle öffnen, man sieht den Code, der die Fehlermeldung macht. Von daher wäre es doch möglich, genau zu verfolgen, warum der Fehler ausgegeben wird.
Der Fehlermeldung selbst ist natürlich Blödsinn, also selbst ein Fehler: Am Integrations-VI hat man die Eingänge T und X, über T wird integriert. Die "X"-Werte sind also die Ordinatenwerte, die gewöhnlich mit Y bezeichnet werden. Und wenn davon mehrere gleich sind, dann werden eben mit der gleichen Formel Rechteckelemente statt Trapezelemente berechnet, warum sollte das nicht möglich sein?


RE: Numerische Integration (nicht äquidistant) Error -20049 - jeannyLab - 08.07.2012 15:57

Also auch wenn die Funktion mit den Eingangsarrays T und X arbeitet, werden diese in späteren Unterfunktionen dann wie gewöhnlich mit X und Y bezeichnet.

Wenn er also nach unterschiedlichen X-Werten verlangt meint er damit schon wie üblich die x-Achse.

Ich denke ich habe inzwischen zumindest herausgefunden, wie ich die Fehlermeldung umgehen kann: Wenn die x-Werte zuerst aufsteigend sortiert werden (was er zwar eigentlich selbst auch nochmal macht) dann berechnet er das Integral Problemlos - auch bei gleichen x-Werten.


RE: Numerische Integration (nicht äquidistant) Error -20049 - GerdW - 09.07.2012 07:24

Hallo jeanny,

Zitat:wie ich die Fehlermeldung umgehen kann: Wenn die x-Werte zuerst aufsteigend sortiert werden (was er zwar eigentlich selbst auch nochmal macht) dann berechnet er das Integral Problemlos - auch bei gleichen x-Werten.
Ja, genau das macht das subVI - aber nur, um zu prüfen, ob die Daten sortiert vorliegen!
In deinem Beispiel-VI entfernst du zwar gleiche aufeinanderfolgende X-Werte, aber das subVI prüft diese Bedingung nach dem Sortieren der X-Werte - du dagegen nicht. Deshalb kommt weiterhin die Fehlermeldung "gleiche X-Werte": deine Werte liegen nicht sortiert vor und weisen gleiche X-Werte auf!