INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Schwellwert bei jedem Graph



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!

07.09.2022, 10:56
Beitrag #1

giwreh Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Sep 2022

2016
-
DE



Schwellwert bei jedem Graph
Hallo!

Ich bräuchte ein Funktion, die mir aus einem Array den Index (bzw. gebrochenen Index) jenes ersten Wertes angibt, der genau mit dem davor definierten Wert übereinstimmt. Sprich ähnlich dem Schwellwert VI, nur das mein Graph aus dem Array sowohl fallend und steigend sein darf.
Und eigentlich mit der Zusatzbedingung, dass der Wert bei dem ausgegebene Index kein Maximum oder Minimum meines Graphen ist. (Was passieren könnte wenn der Punkt zufällig genau meinem definiertem Wert entspricht.
Gibt es so eine Funktion, bzw. wie kann ich mir so eine Funktion selber programmieren? (Bin leider noch nicht so ganz fit in Labview)

Danke schonmal im voraus.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.09.2022, 12:14
Beitrag #2

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 429
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Schwellwert bei jedem Graph
Hallo giwreh,

herzlich Willkommen im Forum.

(07.09.2022 10:56 )giwreh schrieb:  Ich bräuchte ein Funktion, die mir aus einem Array den Index (bzw. gebrochenen Index) jenes ersten Wertes angibt, der genau mit dem davor definierten Wert übereinstimmt.

Was denn? "gebrochenen Index" oder "der genau mit dem davor definierten Wert"

Der Graph ist auch nicht zweifelsfrei, denn nach meinem bisherigen Verständnis gibt es doch am Ende noch einen Punkt bei dem der definierte Wert überschritten wird.

Zitat:Sprich ähnlich dem Schwellwert VI, nur das mein Graph aus dem Array sowohl fallend und steigend sein darf.

Wenn du das Array von hinten nach vorne betrachtest, wird aus fallen ein steigend und umgekehrt.

Zitat:Und eigentlich mit der Zusatzbedingung, dass der Wert bei dem ausgegebene Index kein Maximum oder Minimum meines Graphen ist. (Was passieren könnte wenn der Punkt zufällig genau meinem definiertem Wert entspricht.

Zwei Fließkommazahlen auf Gleichheit zu prüfen ist eher keine gute Idee, denn dabei spielen allerkleinste Abweichungen eine Rolle ob die Zahlen gleich sind, oder nicht.

Zitat:Gibt es so eine Funktion, bzw. wie kann ich mir so eine Funktion selber programmieren? (Bin leider noch nicht so ganz fit in Labview)

Das Wichtigste hast du schon gefunden: Threshold 1D Array
Und die Maxima und Minima lassen sich z.B. mit dem Peak Detektor finden.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2022, 12:20
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Schwellwert bei jedem Graph
Hallo giwreh,

herzlich willkommen im Forum!

Zitat:Ich bräuchte ein Funktion, die mir aus einem Array den Index (bzw. gebrochenen Index) jenes ersten Wertes angibt, der genau mit dem davor definierten Wert übereinstimmt. Sprich ähnlich dem Schwellwert VI, nur das mein Graph aus dem Array sowohl fallend und steigend sein darf.
Und eigentlich mit der Zusatzbedingung, dass der Wert bei dem ausgegebene Index kein Maximum oder Minimum meines Graphen ist. (Was passieren könnte wenn der Punkt zufällig genau meinem definiertem Wert entspricht.
- Was unterscheidet den "zu ignorierenden" Punkt vom eigentlich" gesuchten? Der "zu ignorierende" ist doch auch kein (absolutes) Minimum deines Arrays!?
- Wie genau ist "genau übereinstimmen"? Du weißt um die Probleme beim Testen von FloatingPoint-Zahlen auf Gleichheit?

Prinzipiell kannst du alles programmieren, was du willst!
Du musst nur deinen Algorithmus sauber formulieren… Big Grin

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2022, 14:02
Beitrag #4

giwreh Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Sep 2022

2016
-
DE



RE: Schwellwert bei jedem Graph
Zitat: Was denn? "gebrochenen Index" oder "der genau mit dem davor definierten Wert"

Der Graph ist auch nicht zweifelsfrei, denn nach meinem bisherigen Verständnis gibt es doch am Ende noch einen Punkt bei dem der definierte Wert überschritten wird.

Ich brauch den gebrochenen Index da es in meinem Fall eigentlich fast immer um einen interpolierten Wert gehen wird. Beispiel: Array [1;3;4;3;6] und ich möchte wissen, bei welchem Index die 3,4 Horizontale geschnitten wird. Da wäre der Index dann 1,4.

Es geht mir immer nur um den 1. Wert, alles danach interessiert mich nicht mehr. Da komme in meinem Verlauf noch viele Schnittpunkte.

Zitat: Wenn du das Array von hinten nach vorne betrachtest, wird aus fallen ein steigend und umgekehrt.

Das geht eben leider nicht, da dahinter noch x-beliebig viele Schnittpunkte kommen. Drum muss ich das Array von vorne durchlaufen. Da brauch ich den ersten Schnittpunkt, egal ob steigende oder fallende Gerade.

Zitat:Das Wichtigste hast du schon gefunden: Threshold 1D Array
Und die Maxima und Minima lassen sich z.B. mit dem Peak Detektor finden.

Treshold 1D Array funkioniert, wenn ich das richig verstanden habe doch nur, wenn ich einen Wert suche, der auch im Array enthalten ist. Ich suche aber einen (in 99% der Fällen) interpolierten Wert- also wie bei Schwellwert.
Peak Detektor gibt mir nur das globale Maxima und Minima aus. Ich brauche aber das 1. lokale Maxima oder Minima nach dem mein Graph meinen definierten Wert geschnitten hat.

Zitat: Was unterscheidet den "zu ignorierenden" Punkt vom eigentlich" gesuchten? Der "zu ignorierende" ist doch auch kein (absolutes) Minimum deines Arrays!?
- Wie genau ist "genau übereinstimmen"? Du weißt um die Probleme beim Testen von FloatingPoint-Zahlen auf Gleichheit?

-Der zu ignorierende Punkt ist ein lokales Minimum genau auf meinem Wert. Ich brauch vor und nach dem Schnittpunkt Werte in meinem Array.
- Das ich den Punkt suche, wo mein interpolierter Graph sich mit meiner Horizontalen schneidet.

Zitat:Prinzipiell kannst du alles programmieren, was du willst!
Du musst nur deinen Algorithmus sauber formulieren…
Big Grin Und man muss wissen, wie man es eben macht- da steh ich grad an.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2022, 14:18
Beitrag #5

ewiebe Offline
LV Fortgeschrittener
**


Beiträge: 60
Registriert seit: Mar 2011

LV bis 2021
2005
DE

32xxx
Deutschland
RE: Schwellwert bei jedem Graph
Hallo,

könntest du bitte ein Beispiel-VI geben mit folgenden Informationen:
- den einzelnen Punkten (X/Y)
- wo die threshold Linie liegen soll, bei welchem Wert
- was du als Ergebnis sehen möchtest

Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.09.2022, 16:52
Beitrag #6

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 429
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Schwellwert bei jedem Graph
Zitat:
Zitat: Wenn du das Array von hinten nach vorne betrachtest, wird aus fallen ein steigend und umgekehrt.

Das geht eben leider nicht, da dahinter noch x-beliebig viele Schnittpunkte kommen. Drum muss ich das Array von vorne durchlaufen. Da brauch ich den ersten Schnittpunkt, egal ob steigende oder fallende Gerade.

Anstatt die Reihenfolge des Array zu ändern kannst du auch Threshold und Array negieren.

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.09.2022, 08:27 (Dieser Beitrag wurde zuletzt bearbeitet: 08.09.2022 08:35 von giwreh.)
Beitrag #7

giwreh Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Sep 2022

2016
-
DE



RE: Schwellwert bei jedem Graph
Zitat:Anstatt die Reihenfolge des Array zu ändern kannst du auch Threshold und Array negieren.
Das mit dem negieren funktioniert leider auch nicht, da ich auf meinem Messsignal Schwingungen habe (hier bei dem simulieren Signal hab ich mir diese gespart)
Signal wird dann ungefähr so ausschauen wie das Bild im Anhang

Ich habe folgendes VI. Das simulierte Signal wird später noch durch ein Messsignal ersetzt. Jetzt hier nur mal als Beispiel. Das spätere Signal wird aus einem Signal mit ungefähr 100Hz Abtastfrequenz sein und über 30 Sekunden gemessen.
Aber der Verlauf ist gleich. (Am Anfang schwingungen, dann ein Peak und dann Endschwingungen die höher liegen als am Anfang)

Bei dem Signal will ich nun bei dem Horizontalen Wert 1,986 alle Schnittpunkte nach dem Peak wissen. Sprich ich brauch von jedem dieser Schnittpunkte den gebrochenen Index. Mit der Funktion Schwellwert geht dies allerdings nicht, da, wie schon gesagt der Graph erst fallend ist.


Angehängte Datei(en) Thumbnail(s)
   

16.0 .vi  Forum Vorlage.vi (Größe: 95,04 KB / Downloads: 127)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2022, 10:03
Beitrag #8

ewiebe Offline
LV Fortgeschrittener
**


Beiträge: 60
Registriert seit: Mar 2011

LV bis 2021
2005
DE

32xxx
Deutschland
RE: Schwellwert bei jedem Graph
Hallo

Hier mein Test. Vielleicht richtig ;-)

Gruß
Eugen


Angehängte Datei(en) Thumbnail(s)
       

16.0 .vi  Gebrochenen Index von oben und unten.vi (Größe: 12,11 KB / Downloads: 128)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2022, 10:09
Beitrag #9

Martin.Henz Offline
LVF-Team
LVF-Team

Beiträge: 429
Registriert seit: Jan 2005

2.5.1 bis 20
1992
kA

74363
Deutschland
RE: Schwellwert bei jedem Graph
Hallo giwreh,

jetzt kommen wir der Sache langsam näher.

Threshold 1D Array funktioniert schon, nur musst du natürlich noch diese kleinen Peaks detektieren oder herausfiltern. Aber auch wenn du nicht Threshold 1D Array verwendest, hast du immer auch diese Peaks und evtl. ein Signalrauschen, das zusätzliche Maßnahmen oder ganz andere Ansätze erforderlich macht.
Simulierte Daten helfen an der Stelle nur dann weiter, wenn sie den realen Daten sehr nahe kommen. Da nutzen 25 rausch- und peakfreie Werte gar nichts, wenn es real 3000 Werte mit Rauschen und Peaks sind.

Außerdem brauchen wir viel mehr Informationen. Du schreibst, dass später das Signal mit ungefähr 100 Samples pro Sekunde aufgenommen wird. Geht es auch sehr viel schneller (1000 S/s?) und was bedeudet das "ungefähr"? Und das mit dem Messwert der genau dem Schwellwert entspricht, das kannst du auch ganz schnell vergessen, bzw. musst es ganz anders definieren.

Und dann solltest du uns auch alles erzählen, was wir benötigen um die weiterzuhelfen und bis jetzt noch nicht erfahren haben.


BTW: an alle die Fragen haben: Es ist sehr ärgerlich, wenn jede einzelne Information nur sehr zögerlich und erst nach zig Postings heraus kommen. Da machen sich alle möglichen Leute Gedanken darüber und das stellt sich dann als sinnfreie Zeitverschwendung heraus. Angry

Martin Henz
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.09.2022, 10:28
Beitrag #10

ewiebe Offline
LV Fortgeschrittener
**


Beiträge: 60
Registriert seit: Mar 2011

LV bis 2021
2005
DE

32xxx
Deutschland
RE: Schwellwert bei jedem Graph
Hallo nochmal,

Ich habe mich noch erinnert, dass in dem Buch "Messdatenanalyse mit LabView" auch etwas dazu stehen könnte...
Da habe ich mal nachgeschaut und was gefunden:
siehe Anhang

Es liefert zwar keinen gebrochenen Index, aber das könntest du ja programmieren ;-)

P.S. das Buch findet sich hier:
https://vogel-fachbuch.de/elektronik/mes...it-labview
Ist auf jeden Fall der Investition wert.

Gruß
Eugen


Angehängte Datei(en)
14.0 .vi  trigger.vi (Größe: 28,06 KB / Downloads: 150)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Array Elementweise einlesen und mittels Schwellwert ändern DaniusM 9 6.399 05.01.2016 11:32
Letzter Beitrag: ThomasS.
  LV 2012: SystemWebServer.exe stürzt bei jedem Windows-Start ab A_Bachmann 1 3.588 15.10.2012 21:13
Letzter Beitrag: jg
  Datenausgabe einer While-Schleife nach jedem Iterationsschritt?? Sternhagel 7 8.678 01.03.2011 20:35
Letzter Beitrag: Sternhagel
  Eventstrukturen in jedem Case einer State-Machine Lupin 1 4.608 24.09.2010 18:35
Letzter Beitrag: GerdW
  Erhöhen der Spannung in jedem Durchlauf Kübi 6 6.080 25.08.2010 14:39
Letzter Beitrag: Matze
  Schwellwert selma 9 8.054 10.04.2010 08:37
Letzter Beitrag: Lucki

Gehe zu: