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 

Dieses Thema hat akzeptierte Lösungen:

Spannungsverlauf detektieren



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.11.2013, 13:11
Beitrag #1

dbuckl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 190
Registriert seit: Sep 2013

10
2013
DE


Deutschland
Spannungsverlauf detektieren
Hallo Leute,

wer meine bisherigen Themen verfolgt hat weiß warscheinlich um was es geht.
Nunja ich generiere Lastsprünge um ein Produkt zu testen. Um die Ergebnisse davon zu sehen nehme ich die Spannungskurve auf und soll daraus verschiedene Werte auslesen.

Den Spannungsverlauf erhalte ich als waveform graph. Aus den verschiedenen Bereichen sollte ich die Werte für Umax/min/soll und die Dauer der Regelung, sowie eine FFT des Lastbereiches zwecks Oberschwingungen auslesen können.

In dem Bild im Anhang ist die Spannungskurve rot dargestellt und in den Zeiten t1 und t2 sieht man wie einer unserer Regler in etwa reagiert.

Das größte Problem hierbei ist jetzt das ganze in die die einzelnen Bereiche aufzuteilen, das will mir einfach nicht gelingen.
Die max/min Werte und eine FFT schaffe ich dann denke ich selbst.
um die Regelungen zu erkennen macht man hier normalerweise eine Erkennung der einer Unterschreitung von 90% der vorherigen Werte bei t1 und bei t2 das gleiche mit einer 10% Überschreitung. Da das Signal sehr verrauscht ausgelesen wird müsste man zusätzlich eine Hysterese einbauen an den Stellen der Erkennung.

Hat jemand schon eine ähnliche Detektion gemacht und kann mir sagen welche Elemente man dafür benutzen könnte? Bin schon dauernd am Suchen unter Signal-Processing finde mich aber nicht wirklich zurecht.

Gruß Domi


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

dbuckl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 190
Registriert seit: Sep 2013

10
2013
DE


Deutschland
RE: Spannungsverlauf detektieren
Ich bin jetzt selbst einigermaßen weiter gekommen und konnte schon mal den Bereich 1. auftrennen.
Für den Bereich 2 versuche ich bei einer Unterschreitung des Bereichs von Umin zu Umittel um 20% zu triggern auf eine fallende Flanke um damit zu erkennen welche Zeit ich in meinen "Waveform Subset"-Baustein als Startzeit einglesen muss um den Bereich zu trennen.

Das ist mir denke ich von der Logik auch gelunden jedoch kommt folgende Fehlermeldung wie im Bild zu sehen. Scheinbar ist die
Zeit die ich erhalte kein vielfaches von dt. Daraufhin habe ich das Subvi das ihr in dem Bild seht eingefügt das den Wert erst durch dt teilt und ein "Round Toward +Infinity" danach wird es wieder mit dt multipliziert. Damit sollte es ja eigentlich gerundet sein, doch wie ihr in dem Bild "round.vi" zu dem SubVI seht sind es am ende mindestens genauso viele Stellen.
Ich weiß gerade echt nicht mehr weiter Confused

Hoffe Ihr könnt mir helfen?

Gruß Domi


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.11.2013, 10:11 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2013 10:12 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Spannungsverlauf detektieren
Hallo Domi,

Zitat:sind es am ende mindestens genauso viele Stellen.
Mal überlegen: man multipliziert eine Zahl mit 17 (angezeigten) Stellen in der Mantisse (dein dt im Bild!) mit einer Ganzzahl. Wieviele Stellen wird die Mantisse des Produktes haben?

In meiner Signatur findest du einen Link auf das Basiswissen zum Umgang mit Floatingpoint-Zahlen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.11.2013, 11:19
Beitrag #4

dbuckl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 190
Registriert seit: Sep 2013

10
2013
DE


Deutschland
RE: Spannungsverlauf detektieren
Danke schonmal für die Antwort!

Ich finde es ja gut das du immer Lösungsansätze gibst bei denen man dann selbst gefordert ist, doch diesmal verstehe ich leider überhaupt nicht wo hier der Fehler ist.

Was ich aus dem Text verstanden habe ist das die Matisse und Exponent nur mit einer begrenzten Genauigkeit gespeichert werden und deshalb fehler beim rechnen damit entstehen können. Scheinbar kann dadurch auch ein unpassender Teiler entstehen wie das bei mir wohl der fall ist.

Doch dem weiteren Text wie man das Problem löst konnte ich nciht ganz folgen, scheinbar muss man einen Faktor namens machine epsilon multiplizieren um den eigentlichen Ausdruck zu präzisieren. Wie oder wo ich das bei mir in meinem VI einbinde habe ich leider noch nicht verstanden.
Außerdem wo multipliziere ich denn mit einer Ganzzahl? Die Ausgegebene Zeit an der der Trigger erkannt wird steht bei mir im SubVI als 0.997... ?

Tut mir leid wenn ich mich etwas blöd anstelle aber ich bin wirklich gerade etwas überfordert Blink

Gruß Domi
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.11.2013, 11:23 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2013 11:31 von GerdW.)
Beitrag #5

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Spannungsverlauf detektieren
Hallo Domi,

Zitat:Ich finde es ja gut das du immer Lösungsansätze gibst bei denen man dann selbst gefordert ist
Learning by doing... Big Grin

Zitat:Außerdem wo multipliziere ich denn mit einer Ganzzahl?
Direkt nach dem RoundToInf... (Ich habe nicht I32 oder U32 gesagt, nur "Ganzzahl". Auch DBL/SGL können Ganzzahlen darstellen!)

Zitat:doch diesmal verstehe ich leider überhaupt nicht wo hier der Fehler ist.
Der Fehler dürfte wahrscheinlich in der begrenzten Genauigkeit von FP-Zahlen begründet sein. Du hast einen sehr kleinen FP-Wert (dt), der mit einem deutlich größeren Wert (t) verglichen wird. Aufgrund der hohen Anzahl an Stellen in der Mantisse wird es dabei immer zu Rundungsfehlern kommen (das erläutert der verlinkte Text), was wiederum mit der gezeigten Fehlermeldung quittiert wird...

Quick&Dirty-Lösung:
Die Funktionalität von WaveformAbschnittLesen durch ein eigenes subVI erledigen, in welchem man auf Rundungsfehler pfeift! Du brauchst dazu nur das ArraySubset, um deine Werte aus den Y-Daten der Waveform auszuschneiden...
Bitte nochmal deine Werte überprüfen. Es wird "Start value too large" bemängelt. Ist dein Startwert größer als der Zeitpunkt des letzten Samples im Waveform? Einfach mal diese Funktion mit Highlighting und Sonden anschauen...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.11.2013, 13:12 (Dieser Beitrag wurde zuletzt bearbeitet: 25.11.2013 13:20 von dbuckl.)
Beitrag #6

dbuckl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 190
Registriert seit: Sep 2013

10
2013
DE


Deutschland
RE: Spannungsverlauf detektieren
Da hast Recht, irgendwie wird gar nicht getriggert Blink
Das ist mir davor gar nicht aufgefallen, scheinbar wird der Trigger erst beim letzten Wert erkannt. Oder das "Get XY Value" gibt mir einen falschen Wert aus.
Was bedeutet denn der Wert der aus [56] trigger location augegeben wird?
Ich habe das so interpretiert das es die Nummer bzw. der Index des Zeitwertes im Array ist?

Anbei noch ein Bild des mit Probes bestücktem VI und eines in dem der, zu detectierende Graph zu sehen ist (rot).
Der Graph sieht noch nicht so aus wie auf meiner Zeichnung weiter oben, da die Spannung bzw. der Strom nur so geringfügig geändert werden das der Regler momentan noch "hinterherkommt". So wurde es mir zumindest erklärt.

EDIT: Durch das Screenshots erstellen entdeckt man selbst immer wieder Fehler Big Grin in dem Ablaufzeiten Array ist der letzte Wert natürlich 0.499.........habe vergessen es mit dt zu verbinden. Das behebt allerdings nicht mein Problem Dodgy


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.11.2013, 13:41
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Spannungsverlauf detektieren
Leider kann man auf Grund deines Screeenshots nicht erkennen, welchen Eingang du wirklich an deinem "Round-VI" setzt.
Vermutung Glas1
Du übergibst aktuell den Wert "Value", und dt hat als Standardwert = 0. Value geteilt durch Null gibt Inf, mal 0 gibt NaN...

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
25.11.2013, 13:53
Beitrag #8

dbuckl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 190
Registriert seit: Sep 2013

10
2013
DE


Deutschland
RE: Spannungsverlauf detektieren
(25.11.2013 13:41 )jg schrieb:  Leider kann man auf Grund deines Screeenshots nicht erkennen, welchen Eingang du wirklich an deinem "Round-VI" setzt.
Vermutung Glas1
Du übergibst aktuell den Wert "Value", und dt hat als Standardwert = 0. Value geteilt durch Null gibt Inf, mal 0 gibt NaN...

Gruß, Jens

Oh du hast recht tut mir Leid ich habe vergessen dt wieder zu verkabeln, hier nochmal das Bild.
Nun entsteht kein Fehler mehr aber ich verstehe auch noch nicht wieso der Trigger erst am Ende des kompletten Graphen erkannt wird Blink der rote Spannungsverlauf endet nämlich etwa bei 0.997 und dort wurde auch der Trigger erkannt doch eigentliche müsste er kurz vor 0.1 erkannt werden. Irgendwo ist da noch der Wurm drin Huh


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.11.2013, 15:18
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Spannungsverlauf detektieren
Hallo domi,

der hier übliche Ratschlag lautet:
Häng ein VI an, welches die gezeigten Waveforms als Standardwerte enthält. Dann können wir nicht nur Screenshots anschauen, sonderm mal an echten Daten rumspielen...

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

dbuckl Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 190
Registriert seit: Sep 2013

10
2013
DE


Deutschland
RE: Spannungsverlauf detektieren
Ja das is wohl das Beste Blush

Lv10

EDIT: hier in dem GEN_Lastsprung_V15.vi ist mal alles drin, also auch mit Pulsgenerator und gespeicherter Aufnahme der Antwort, einfach das gleichnamige VI aus dem Ordner GEN öffen.
Das was ganz unten zu sehen ist, neben "trigger detected?" zeigt (bzw. soll) den gerade ausgewählten Abschnitt (Enum weiter oben) des Spannungsverlaufes. Bisher funktioniert allerdings nur Bereich 1 und 3

lv11_img


Angehängte Datei(en)
0.0 .zip  Waveform_Subset Folder.zip (Größe: 97,97 KB / Downloads: 151)

0.0 .zip  GEN_Lastsprung_V15 Folder.zip (Größe: 733,41 KB / Downloads: 183)
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
  Pulswelle detektieren und extrahieren PLH 1 3.398 18.05.2015 12:39
Letzter Beitrag: GerdW

Gehe zu: