LabVIEWForum.de - Signalanstieg rausfinden.

LabVIEWForum.de

Normale Version: Signalanstieg rausfinden.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Dann bitte Profil_ergaenzen.

Gruß Markus

' schrieb:Ich benutze LabView 8.6
Hallo tiko,

es gäbe da die Möglichkeit über die Steigung. Das Maxima ist ja bekannt und über die Steigung (also an dem Punkt an dem die Steigung zum Maxima am größten ist) lässt sich der Anstiegspunkt bestimmen. Somit ergibt sich für die drei Datenverläufe Folgendes s. Bilder.

Gruß snuz

P.S. Türkieser Punkt Maxima, grüner Punkt Steigungsanfang

P.S.S. Da bei den Kurven die Werte beim Anstieg auch wieder kurz fallen funktioniert das VI vom Anfang nicht - es sucht ja immer nach dem Punkt an dem es fällt und bis zum Maxima nur ansteigt, wenn dazwischen der Wert wieder fällt ist der neue "Einbruch" der neu Anstiegspunkt.

P.S.S.S. Die Auswertung über die Steigung wird allerdings genauso lange dauern, einen schnelleren Programmablauf wird man nicht erreichen.
Ah, mir ist noch ein kleiner Fehler unterlaufen. Im ersten Bild (Bild links), stimmt der Punkt nicht, die Punkte habe ich grob ausgewählt (also nach Größe der Steigung) - der errechnete Punkt liegt (s.B.) etwas weiter links.

so bis morgen snuz
Hallo tiko,

Zitat:wollte mal fragen ob es ne möglichkeit gibt, das programm zu beschleunigen.

Ja, eine ganz einfache: Man befolgt die Grundregel, das "konstante" Operationen außerhalb von Schleifen durchgeführt werden. Wenn man dann noch die WhileLoop durch eine ForLoop mit AutoIndexing ersetzt, geht's schneller als du gucken kannst...

Edit: Hat deine Tastatur keine Shift-Taste?

Lv86_img
Gestern hat sie wohl wieder funktioniert. Wink

Gruß Markus

' schrieb:Hallo tiko,
Edit: Hat deine Tastatur keine Shift-Taste?
Y-P Lol
;)Und nicht wundern, wenn in Deinem Profil jetzt LabVIEW 8.6 steht. Ich hatte Dich ja oben darauf hingewiesen es zu ändern, aber weil ja gerade Weihnachten war, habe ich es gleich für Dich von LabVIEW 8.5 auf 8.6 geändert. Lol

Gruß Markus

' schrieb:Y-P Lol
Hallo snuz,
leider hab ich es mit deiner Idee nicht geschafft, ich hab es so gemacht, die Steigung (F-max - Aktueller Wert) / (Max Indizes - Aktueller Indizes) berechnet, also alle werte bis Max und die Steigungwerte in einem Array gelegt und nach Max-Steigung gesucht, aber wie gesagt erfolglos, kannst du mal bitte ausführlich erklähren , einen Bild vom Programm hochladen .
vielen dank noch ma
Gruß Tiko
Hallo tiko,

deine Rechnung ist vollkommen in Ordnung. Ich selber habe mit folgender Gleichung gerechnet (F_max - aktueller Wert)/((Max_Indizes*0,0005)-(aktueller Indizes*0,0005)). Die 0,0005 = dt, somit errechnet man sich mit (Indizes*0,0005) den Zeitpunkt an dem die Kraft vorliegt. Das war für mich wichtig, da ich mir Punkte einzeichnen lasse, als optische Kontrolle und somit wissen musste zu welchem Zeitpunkt die Kraft anliegt. Wenn man nun die Gleichung stehen hat, kann man mit dieser die größte Steigung suchen (Prinzip gleich dem ersten VI) und daraus ergeben sich die Bilder / Ergebnisse die ich oben gepostet hatte.

Fraglich sind hier die Ergebnisse, bezogen auf deinen ersten Post, da dein gesuchter Punkt, ich sag jetzt mal, so um die 200 ms vorher ist. Der errechnete Punkt über die Steigung gibt an, wann die Steigung maximal ist, zeigt aber nicht an, wann das Ereignis eingetroffen ist - nämlich vorher. Schau dir die Bilder nochmal genau an ob das überhaupt das gewünschte Ergebnis ist.

Wenn dem so ist und das gesuchte Ergebnis deinem ersten Post entspricht, musst Du nach der größten Steigung suchen und dann nach links "rechnen" und nach dem kleinsten Wert suchen bis er wieder steigt. Falls Du noch Hilfe brauchst, schreib einfach.

P.S. Das VI läuft nicht automatisch ab, es gibt dir den F_max an den Rest musst du manuell eingeben - die automatische Rechnung musste Du noch einfügen und evtl. die Suche, die ich erwähnte im vorherigen Absatz. Und der größte Teil des VI besteht darin das Zeitsignal herauszufinden und die Punkte einzuzeichnen.

P.S.S. Achja und wie GerdW geschrieben hat, alle Konstanten raus und so umsetzen wie er es gemacht hat.

[attachment=31436] LabView 8.6
Hallo snuz,

- Warum schleppst du alle Einzelkomponenten des DateTimeRecords durchs Blockdiagramm, wenn du nur die Sekundenanteile veränderst? Die anderen Komponenten stecken doch im Cluster drin und müssen nicht extra verdrahtet werden...
- Warum stellst du überhaupt auf den DateTimeRecord um und rechnest nicht direkt mit dem Timestamp?
Beides würde dein Blockdiagramm halbieren...

- Wozu die beiden versteckten boolschen Anzeigen? Ist dir der Draht ausgegangen oder wolltest du die Racecondition gezielt nutzen?
Seiten: 1 2 3
Referenz-URLs