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 

Werte auf- und absteigend suchen



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!

21.04.2020, 19:57
Beitrag #1

JoeHännes Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Apr 2020

2014
-
DE



Werte auf- und absteigend suchen
Hallo zusammen,

ich bin neu in Labview und habe heute erst damit begonnen. Ich habe den ganzen Tag gegoogelt unter anderem in diesem Forum und sehr viele nützliche Dinge gefunden.
Ich möchte die Fläche der dargestellten Kurve in den Schnittpunkten der roten Linie berechnen. Also den Teil der weiß dargestellt ist.

Die Werte(Daten 1.txt) und mein aktuelles .vi habe ich in den Anhang geladen. Die Werte beschreiben Drehzahl(X) und Leistung(Y).

Für mich ist es wichtig die Schnittpunkte der roten Linie zu ermitteln. Das habe ich mit den Funktionen Schwellwert(1-D) und Array indizieren für den ersten Schnittpunkt (bei ca. 10200 rpm) schon geschafft.
Er gibt mir die Zeilennummer aus und dann kann ich in dem 1-D Drehzahl-Array danach suchen und den Wert ausgeben. Bisher gebe ich die rote Linie vor. Das werde ich automatisieren, sobald ich die Daten der Schnittpunkte habe.

Ich habe große Schwierigkeiten den zweiten Schnittpunkt bei absteigenden Werten zu identifizieren.
Die Datenstruktur ist mit steigender Drehzahl aufgebaut. Wenn ich jetzt nach dem Leistungswert der roten Linie suche, bekomme ich immer den ersten Schnittpunkt.
Ich habe dann versucht über den Startindex (ab der Stelle der größten Leistung) bei der Funktion Schwellwert zu suchen. Jedoch gibt er mir dann immer den Wert ersten Wert nach dem Startindex zurück.

Wie kann ich die absteigenden Werte nach einer möglichst genauen Übereinstimmung durchsuchen?
Es wird keine exakte Übereinstimmung geben, da die rote Linie 2/3 von Pmax ist und dieser Wert berechnet ist, sodass es dazu vielleicht keinen Drehzahl-Wert gibt.


Desweiteren will ich dann so vorgehen, dass ich mir ein Teil-Array über den Bereich der roten Linie erstelle.
Diesen Bereich, von der Nulllinie bis zur weißen Kurve werde ich dann über die Funktion Nummerische Integration (nicht äquidistant) integrieren, da die Werte der X-Achse nicht immer den selben Abstand haben.
Anschließend berechne ich die Fläche von Bereich 2. Meine tatsächliche Fläche ist dann Gesamtfläche - Bereich 2.

Wenn ich das mit fiktiven Werten durchprobiere, bekomme ich schon etwas raus. Mir fehlt jetzt der Automatismus den zweiten Schnittpunkt zu ermitteln.

Könnte mir jemand einen Tipp geben?

Danke und beste Grüße
Johannes


Angehängte Datei(en) Thumbnail(s)
   

14.0 .vi  Leistungskurve.vi (Größe: 25,12 KB / Downloads: 250)

0.0 .txt  Daten 1.txt (Größe: 11,78 KB / Downloads: 272)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.04.2020, 20:17 (Dieser Beitrag wurde zuletzt bearbeitet: 21.04.2020 20:19 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Werte auf- und absteigend suchen
Hallo Johannes,

herzlich willkommen im Forum!

Mal eine Idee:
   

Threshold1DArray arbeitet nur mit aufsteigenden Werten, steht so in der LabVIEW-Hilfe. Du könntest aber "von hinten anfangend" suchen, indem du dein Y-Werte-Array einmal mit Reverse1DArray umdrehst…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.04.2020, 09:03
Beitrag #3

JoeHännes Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Apr 2020

2014
-
DE



RE: Werte auf- und absteigend suchen
Hallo Gerd,

danke dir für deine schnelle Hilfe.
Ich habe mich heute Morgen gefreut sofort eine Antwort erhalten zu haben.

Deine skizzierte Idee "filtert" die Werte mit der Bedingung alles > X % von Pmax. Das ist eine sehr gute Herangehensweise, welche ich direkt nachgebaut habe. Allerdings bleibt dann das Problem des Zeilenindex wo die Schnittpunktwerte stehen.
Ich habe deinen Lösungsvorschlag mit der Funktion 1D Array umkehren beherzigt und das Ergebnis ist ein voller Erfolg. Thanx
Es macht jetzt genau das was ich möchte. Allerdings musste ich nicht nur das Y-Array umdrehen, sondern auch das X-Array, da sonst die Zeilennummer nicht gepasst hat.
So ist es es möglich die Zeile mit dem Wert zu finden und diese Zeilennummer dann in dem umgedrehten X-Array zu suchen. Schon hatte ich den zweiten Schnittpunkt.
Habe das Ergebnis in den Anhang geladen.

Ich hätte allerdings noch eine Frage zu der Funktion Schwellwert (1D-Array). Dort steht in der Hilfe, "bis zwei aufeinander folgende Elemente gefunden werden, bei denen der Schwellwert y größer als der erste Wert und kleiner gleich dem zweiten Wert ist." D.h. übersetzt doch die Zelle finden in der der Wert größer als der Suchwert ist?

Außerdem hätte ich eine noch eine Frage zur Achsenskallierung. Ist es möglich die X-Achse in Abhängigkeit der Messwerte zu skallieren?
Ich werte ja die Drehzahl der maximalen Leistung aus n(Pmax). Kann ich die X-Achse bei z.B 50 % von n(Pmax) beginnen lassen und dann bis zum Ende darstellen? Ich möchte die Skallierung jedoch nicht händisch anpassen, sondern eine Funktion diese Aufgabe übernehmen lassen.
Ich habe durch die Suche eine Funktion Aktive Scale gefunden, jedoch erziele ich damit keinen Erfolg.


Vielen Dank für die schnelle Unterstützung trotz meiner "Neuling"-Fragen Thanx


Angehängte Datei(en)
14.0 .vi  Leistungskurve_V2.vi (Größe: 23,94 KB / Downloads: 236)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.04.2020, 10:08
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Werte auf- und absteigend suchen
Hallo Johannes,

Zitat:Allerdings bleibt dann das Problem des Zeilenindex wo die Schnittpunktwerte stehen.
Mit meinem Vorschlag musst du nur gucken, wo ein Wert ungleich Null steht (Anfang) und danach der erste Null-Wert (Ende). Das kann mit mit Search1DArray sehr gut erledigen…


Zitat:Ist es möglich die X-Achse in Abhängigkeit der Messwerte zu skallieren?
Ja klar ist das möglich!
Wenn dir also die Autoskalierung nicht zusagt, musst du eben selbst Min/Max der Achse festlegen. Dafür nimmt man Propertynodes…

Zitat:Ich habe durch die Suche eine Funktion Aktive Scale gefunden, jedoch erziele ich damit keinen Erfolg.
Wenn du die X-Achsen-Eigenschaften bearbeiten willst, solltest du die passende Eigenschaft unter "X Scale" finden…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
22.04.2020, 10:15 (Dieser Beitrag wurde zuletzt bearbeitet: 22.04.2020 10:15 von jg.)
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Werte auf- und absteigend suchen
(21.04.2020 19:57 )JoeHännes schrieb:  Hallo zusammen,

ich bin neu in Labview und habe heute erst damit begonnen.

Könnte mir jemand einen Tipp geben?

Danke und beste Grüße
Johannes
Hallo,

ein wenig Off-Topic: aktuell sind alle Self-Paced Learning Kurse bei NI kostenlos zugänglich:
https://www.labviewforum.de/Thread-NI-News-eLearning

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.04.2020, 12:42
Beitrag #6

BNT Offline
LVF-Freak
****


Beiträge: 744
Registriert seit: Aug 2008

5.0 - 22Q3
1999
EN

64291
Deutschland
RE: Werte auf- und absteigend suchen
Guck Dir doch mal den "Peak Detector" an.

Die gesuchte Schwelle von Deiner Kurve subtrahieren, Betrag bilden und die Minima suchen.

Kleine Hausaufaufgabe: Jeden Tag eine Funktions-Subpalette mit Hilfe der Kontexthilfe anschauen, um einen Überblick über vorhandene Funktionen zu bekommen.

Gruß Holger

NI Alliance Partner & LabVIEW Champion
GnuPG Key: 6C077E71, refer to http://www.gnupg.org for details.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: