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 

Zyklus im Signalverlauf erkennen und isolieren



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!

15.07.2008, 11:26
Beitrag #1

Sidd Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jun 2008

8.5
2008
de

50622
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Hallo Zusammen,

ich bin neu bei LabVIEW und bin auf ein Problem gestossen, dass ich mit der Suchfunktion des Forums leider nicht lösen kann.

Worum geht es?
Ich arbeite an einem Programm, mit dem man Messdaten analysieren soll. Ich habe dafür mehrere unterschiedliche Messungen gemacht, die jeweils eine Messzeit von etwa 5 Sekunden haben. Im angehängten Bild "Messung" kann man die graphische Oberfläche und die Darstellung des Signals erknennen.
Die weiße Linie gibt die Spannung wieder und somit den Taktzyklus der Maschine.

Momentan stellt er mir die gesamte Messung (ca. 5 Sekunden) dar. Ich brauche für die Analyse allerdings nur einen Taktzyklus. Ich habe deshalb zwei Regler erstellt (oben am Rand von Messung zu erkennen) mit denen ich manuell nur den Ausschnitt eines Taktzyklus erkennen kann. Das ist aber leider nervig und ungenau.

Wobei ich also Hilfe brauche ist ein kleines Programm, dass quasi als Filter fungiert und das Signal auf einen Taktzyklus "zurechtschneidet".

Im Bild "Messung2" ist der Ort zu sehen, wo es implementiert werden soll.

Der eingehende Signalverlauf hat drei Attribute, wobei das erste die Spannung wiedergibt und damit das ausschlaggebende sein soll nach dem gefiltert wird.

Was ist ein Taktzyklus?
Beginn: die SPannung geht von nahezu 0 auf 10
Ende: die SPannung steigt wieder von 0 auf 10
also quasi ein Berg und ein Tal


Ich hoffe Ihr könnt mir helfen und ich habe das Problem verständlich beschrieben.
WIe gesagt ich bin sehr neu und beschäftige mich noch nicht allzulange mit LabVIEW.

Dank und Gruß,

Moritz


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2008, 14:00 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2008 14:01 von Grobi.)
Beitrag #2

Grobi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 220
Registriert seit: Jan 2007

2013
2006
kA

26725
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Hallo, vielleicht geht es so:

Du bestimmst die Periodendauer des Taktes mit dem Baustein: Einzelfrequenz extrahieren.

1/f ergibt dann schonmal die Dauer eines Zyklus.

Dann bestimmst du mit dem Trigger Baustein den Zeitpunkt eines Nulldurchganges.
Anschließend wird ab der ermittelten Position für 1/f das Signal ausgeschnitten.
Du hast nun nur noch einen Taktzyklus.

Obs funktioniert? Keine Ahnung war nur so eine Idee, vielleicht hilft es dir weiter.

mfG
Robert


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

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Zyklus im Signalverlauf erkennen und isolieren
Was wohl auch gehen sollte ist einfach beim Array mit dem Taktsignal positive Flanken suchen, die jeweiligen Indexe herausnehmen und anschließend vom Datenarray ein Signal zwischen zwei Flankenindexen herausfiltern.
Das klappt jedoch nur, wenn beide Arrays das gleiche t0, sowie delta_t haben. (was dem Anschein nach bei dir der Fall ist)

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.07.2008, 18:32
Beitrag #4

Sidd Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jun 2008

8.5
2008
de

50622
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Vielen Dank euch beiden für die schnelle Antwort.

@ Grobi, ich werde versuchen deine Idee umzusetzen und dann hier berichten, ob es funktioniert. Super auch das Bild, wie gesagt bin Laie, werde versuchen das nachzubauen.

@Kvasir, hört sich gut an, leider verstehe ich das aber nicht. Mein Wissen ist wirklich sehr begrenzt, da ich das Programm nur erweitere und nicht selber geschrieben habe. Zudem ist dies meine erste Erfahrung mit LabVIEW. Vielleicht könntest du deine Idee etwas laienhafter darstellen, oder grafisch skizzieren, wie Grobi das gemacht hat.

Nochmals Danke, Berichte über Erfolg/Misserfolg werden folgen...

Gruß,

Moritz
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2008, 08:48
Beitrag #5

Sidd Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jun 2008

8.5
2008
de

50622
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Guten Morgen,

ich habe eben versucht deine Konstruktion nachzubauen Grobi.
Leider haben sich Probleme ergeben.

Wie man im Anhang erkennen kann, kommt LabVIEW mit den Verbindungstypen nicht so ganz klar. Ich habe versucht das Array irgendwie umzuwandeln, damit es funktioniert, es aber leider nicht hinbekommen.

Weiss jemand, wie das gehen könnte?!

Dank und Gruß,

Moritz


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2008, 09:05 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2008 09:12 von Grobi.)
Beitrag #6

Grobi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 220
Registriert seit: Jan 2007

2013
2006
kA

26725
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Hallo,

das liegt daran, dass dein Signlaverlauf noch in einem Arary steckt.

Hol mal mit dem Baustein Array indizieren den Signalverlauf (Eingangssignal)
daraus und schließ es dann an die nachfolgenden Bausteine an.

mfG
Robert

edit:
Ich habs grad mal getestet und anstatt des Eingangssignals einen Sinusgenerator angeschlossen.
Es müsste funktioneren. Graph 1 ist vor der Bearbeitung und Graph 2 danach.


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

Sidd Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jun 2008

8.5
2008
de

50622
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Hallo Grobi,

SUUUUPER!

Habe das Problem der Verbindungen doch noch selber gelöst, zwar etwas unschöner als Du, aber najaSmile

Wenn ich das Programm jetzt laufen lasse bekomme ich allerdings eine Fehlermeldung --> Anhang.

Kann das vielleicht damit zusammenhöngen, dass meine Messdaten nicht exakt zwischen o und 10 schwanken, sondern 0 ca 0,032446 entspricht und 10 etwa 9,622145 ?! Das sind AUszuüge aus meiner Messreihe.

Habe versucht deine Array Aufschlüsselung zu implementieren, wie füge ich denn nachher alle 8 Signale wieder zu einem Array zusammen?

Dank und Gruß,

Moritz


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

Grobi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 220
Registriert seit: Jan 2007

2013
2006
kA

26725
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Hallo Moritz,

dein Eingangssignal ist ja nicht zu 100% sauber. Nun ist es so, dass der Baustein "Einzelfrequenz"
dann auch keinen 100% geraden Wert liefert. Somit sind sehr geringe Ungenauigkeiten vorhanden.

Der Baustein "Signalverlaufsabschnitt lesen" schaut nun ob die von dir angegebene Dauer 1/f ein
vielfaches vom dt (zeitlicher Abstand zwischen 2 Abtastpunkten deines Signals) ist. Ist dies nicht
der Fall spuckt er dir einen Fehler aus.

Schließ an den Baustein mit dem Abschnitt lesen einen Fehlerbehandler an den "errour out" an, der
auf kein Dialog steht, damit du nicht bei jedem Durchlauf diese Meldung erhälst.

mfG
Robert

edit:
Zitat:Habe versucht deine Array Aufschlüsselung zu implementieren, wie füge ich denn nachher alle 8 Signale wieder zu einem Array zusammen?

Das kannst du machen indem du "Array erstellen" einfügst, diesen Baustein kannst du nach unten hin aufziehen und deine Signale
dort anschließen.


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

Sidd Offline
LVF-Grünschnabel
*


Beiträge: 22
Registriert seit: Jun 2008

8.5
2008
de

50622
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Hallo Robert,

Thema Fehlermeldung:
Ich habe, genau wie du gesagt hast, einen Fehlerbehadler angeschlossen und keine Fehlermeldung mehr erhalten. Allerdings hat die Fehlermeldung intern dazu geführt, dass die innere große Case Struktur im Programm Signalverlaufsabschnitt lesen nicht auf "False", sondern auf "True" steht. Konkret hat das Programm also die Fehlermeldung nicht mehr ausgespuckt, aber auch sonst nichts gemacht.
Ich habe das Problem gelöst indem ich anstatt des Vergleichs, der eine boolsche Variable ausgegeben hat, einfach eine Variable mit "False" deklariert habe.
(Siehe Bild im Anhang)
Geht das so?

Nun läuft das Programm durch, allerdingsgibt das Programm nichts aus, d. h. anstatt mehrerer Taktzyklen wie am Anfang sehe ich nun keine mehr.
Ich habe mal die Eingänge des Blockes, der den neuen Signalverlauf erstellen soll gemessen:

34: ist das Eingangssignal, welches bearbeitet werden soll
33: entspricht t0 (ich weiss nicht, was das ist)
36: dies ist der Index(0), ab hier soll das neue Signal also starten
37: dies ist die Länge des Arrays
36&37: sie ergeben zusammen die Signalverlaufskomponente, die als 35 dargestellt wird und 0 ist, weil 36 = -37 ist.

Ich denke hier liegt auch irgendwie das Problem, nach meinem Verständnis baut er halt das neue Signal über eine Zeitachse mit dem Wert 0, also keine Ausgabe.

Hast Du eine Idee, woran das liegen könnte. Er scheint ja Probleme damit zu haben die Taktzyklen zu erfassen, vielleicht muss ich die Parameter der Triggerflankenerkennung verändern.

Anbei nochmal ein kleiner Auszug meiner Messdaten als Bild.

Dank und Gruß,

Moritz


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

Grobi Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 220
Registriert seit: Jan 2007

2013
2006
kA

26725
Deutschland
Zyklus im Signalverlauf erkennen und isolieren
Äääh ja...

Also das ist ja nun das Blockdiagramm von dem Baustein wenn ich das richtig sehe..
Ich erkenn daran nichts ehrlich gesagt..

Zeig doch mal, wie in deinem Programm die Signale an den Bausteinen aussehen.

Interessant zu sehen wäre:

Graph Eingangssignal
Triggerzeitpunkt am Triggerbaustein.
Festgestellte Frequenz -->1/f
und das Signal was am Signalverlaufsabschnitt lesen rauskommt.
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
  Erkennen der numerischen Wertänderung FCBFAN 3 4.516 20.05.2014 20:28
Letzter Beitrag: GerdW
  Abweichung eines Zyklus grafisch darstellen Spaxel 7 4.541 14.02.2013 16:57
Letzter Beitrag: jg
  Mehrfache Werte erkennen und weiterverarbeiten Enemy 2 3.281 09.01.2013 20:45
Letzter Beitrag: Enemy
  Funktion erkennen und Koeffizienten bestimmen stoevinho 3 5.042 12.11.2012 13:46
Letzter Beitrag: stoevinho
  Anzahl von true Bools im Array bestimmen / LED Farbe erkennen Topps 7 6.144 15.11.2011 16:05
Letzter Beitrag: unicorn
  Events im Chart erkennen law 3 3.668 05.03.2010 11:05
Letzter Beitrag: GerdW

Gehe zu: