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:

Positionen (Werte) in Matrix speichern



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!

11.02.2018, 13:53 (Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2018 14:49 von tahity94.)
Beitrag #31

tahity94 Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2017

17.0f2
-
DE



RE: Positionen (Werte) in Matrix speichern
Hallo,

aufgrund der fortgeschrittenen Zeit würde ich von einer kompletten Umstrukturierung lieber absehen. Den Fehler mit dem CSV-File konnte ich beheben, indem ich den Datenfluss an der richtigen Stelle aufhalte. Und somit stimmen die Werte in der Tabelle, die ich inzwischen mit Python geplottet habe:

   

   

Da sieht man auch gut die Abweichungen für kleinere Schritte, weshalb eine Statemachine zum Warten bis der Motor an der richtigen Position angekommen ist, zu Problemen führen könnte.

Nichtsdestotro würde ich gerne auch die z-Matrix fehlerfrei darstellen, um eine "richtige" Intensitätsmatrix zu bekommen und nicht nur das CSV-File. Ich frage mich vorallem, wie diese Sprünge darein kommen und woher die 0 kommen, die in der Tabelle gar nicht zu sehen sind. Kann das auch ein Timimg-Problem sein? Da es sich da ja um eine Zählrate handelt, kann das durchaus die unterschiedlichen Werte erklären, oder?
Vielleicht kann man diesen Wert ja zeitlich irgendwie mitteln über zum Beispiel 1000ms und dann diesen gemittelten Wert weitergeben? Sodass in das z-Array und in die Tabelle jeweils der gleiche, gemitteltete Wert geschrieben wird.


   


Hier ist noch eine Notiz aus der Library für den Detektor:
Zitat:Note: Observe that most of the PH_xxxx library calls must be made sequentially in exactly the right order. They cannot be called
in parallel as is the default in LabVIEW. Typically this is achieved by sequence structures or data flow dependency

Was ich jetzt noch geändert habe, ist eine flache Sequenzstruktur in der inneren For-Loop. Im ersten Rahmen wird der Motor bewegt und etwas gewartet, dann werden im zweiten Rahmen die Positionen der Achsen und der Messwert (Zählrate) abgefragt, die dann in den dritten Rahmen übergehen, wo die Daten (Positionen und Messwert) dann einmal in die Tabelle geschrieben werden und die Messwerte an die richtige Stelle des Arrays geschrieben werden. So ist es zwar nicht zeitlich gemittelt. Aber so erhoffe ich mir, dass zumindest der gleiche Wert in Z-Array und ins CSV-File geschrieben werden, weil die Rahmen ja erst durchgeführt werden, wenn alle notwendigen Daten anliegen. Mache ich mir da zurecht Hoffnung?
Allerdings sprechen diese Regelmäßigkeiten, die im Vergleich von Tabelle und z-Matrix auffallen, ja eher für eine falsche Implementierung..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2018, 08:31
Beitrag #32

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Positionen (Werte) in Matrix speichern
Hallo Maik,

bin zurück vom Wochenende…

Zitat:Nichtsdestotro würde ich gerne auch die z-Matrix fehlerfrei darstellen, um eine "richtige" Intensitätsmatrix zu bekommen und nicht nur das CSV-File. Ich frage mich vorallem, wie diese Sprünge darein kommen und woher die 0 kommen, die in der Tabelle gar nicht zu sehen sind. Kann das auch ein Timimg-Problem sein? Da es sich da ja um eine Zählrate handelt, kann das durchaus die unterschiedlichen Werte erklären, oder?
Leider hast du mal wieder kein aktuelles VI angehangen…

Könnte das ganze auch mit dem ständigen Umkehren der Y-Achse bei dir zu tun haben?
Die ersten Z-Werte im CSV lauten ja 10, 80, 120, 70,40, 60 - bei aufsteigenden Y-Werten. In deinem 2D-Array für den Intensitätsgraph landen die Werte aber verkehrt herum in der ersten Spalte - und der erste Wert "10" fehlt, wahrscheinlich wegen falsch verwendeter Arrayindizes…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2018, 11:17
Beitrag #33

tahity94 Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2017

17.0f2
-
DE



RE: Positionen (Werte) in Matrix speichern
Hallo Gerd,

Zitat:Könnte das ganze auch mit dem ständigen Umkehren der Y-Achse bei dir zu tun haben?
Die ersten Z-Werte im CSV lauten ja 10, 80, 120, 70,40, 60 - bei aufsteigenden Y-Werten. In deinem 2D-Array für den Intensitätsgraph landen die Werte aber verkehrt herum in der ersten Spalte - und der erste Wert "10" fehlt, wahrscheinlich wegen falsch verwendeter Arrayindizes…

Genau, die Werte landen verkehrt herum in der ersten Spalte, weil da der Startpunkt ist. Leider ist mit der Sequenzstruktur das Problem nach wie vor vorhanden. Bzgl. des ständigen Umkehrens der Y-Achse wüsste ich keinen Punkt, der für dieses "falsche" Array in Frage kommen würde. Was genau meinst du denn da?

Die Arrayindizes habe ich mit den Iterationszählern verbunden: Die äußere Schleife eintspricht ja den Spalten, weil die sich ja in x bewegt und die innere Schleife entspricht den Zeilen, weil sich der Motor da in y bewegt.
Prinzipiell stimmt auch die Reihenfolge, nur diese "Sprünge" und die Nullen verstehe ich noch nicht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2018, 11:41
Beitrag #34

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Positionen (Werte) in Matrix speichern
Hallo Maik,

Zitat:nur diese "Sprünge" und die Nullen verstehe ich noch nicht.
Die Nullen könnten der Standardwert sein, den du beim Initialisieren des Arrays festgelegt hast.
Wenn dann dieses Element nicht mit einem "echten Messwert" überschrieben wird, dann bleibt halt die Null darin stehen.

Zitat:Was genau meinst du denn da?
Kannst du mal wieder einen aktuellen Stand deines VIs bereitstellen?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2018, 12:41
Beitrag #35

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Positionen (Werte) in Matrix speichern
Hallo Maik,

du hast vor dem ArraySubset noch eine Case-Struktur, die auf die auf-/absteigenden Y-Werte reagiert.
Dort ist eine Subtract-Funktion drin, die "N-i" berechnet. Dummerweise gibt es bei Array der Größe "N" kein Element mit dem Index "N": die Elemente werden ab Null beginnend gezählt, das letzte Element ist dann "N-1"!

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2018, 16:32
Beitrag #36

tahity94 Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2017

17.0f2
-
DE



RE: Positionen (Werte) in Matrix speichern
Hallo Gerd,

Zitat:du hast vor dem ArraySubset noch eine Case-Struktur, die auf die auf-/absteigenden Y-Werte reagiert.
Dort ist eine Subtract-Funktion drin, die "N-i" berechnet. Dummerweise gibt es bei Array der Größe "N" kein Element mit dem Index "N": die Elemente werden ab Null beginnend gezählt, das letzte Element ist dann "N-1"!
Perfekt! Daran hat es gelegen :-)
Vielen Dank.

Jetzt gibt es noch eine Kleinigkeit beim Intensitätsgraphen:

   

Wenn man sich das anschaut, fällt auf, dass da etwas verkehrt ist. Und zwar sind bei dem Bild im Anhang in der ersten Spalte des z-Arrays "unten" die Werte 60, beim Intensitätsgraphen werden sie aber in der ersten Spalte "oben" dargestellt. Woran liegt das und wie kann man das beheben?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2018, 17:04
Beitrag #37

GerdW Online
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Positionen (Werte) in Matrix speichern

Akzeptierte Lösung

Hallo Maik,

Zitat:Wenn man sich das anschaut, fällt auf, dass da etwas verkehrt ist. Und zwar sind bei dem Bild im Anhang in der ersten Spalte des z-Arrays "unten" die Werte 60, beim Intensitätsgraphen werden sie aber in der ersten Spalte "oben" dargestellt. Woran liegt das und wie kann man das beheben?
Bei einem 2D-Array zählt der Y-Index von oben nach unten, "oben" ist Zeile 0, darunter kommt Zeile 1 usw.
Beim Intensitätsgraphen liegt der Koordinatenursprung dagegen in der linken unteren Ecke, wie man in deinem Bild sehr schön sieht…

Lösung:
- einfach die Y-Achse invertieren (im Einstellungsdialog oder per Propertynode)
- Daten im 2D-Array entsprechend umsortieren…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.02.2018, 18:10
Beitrag #38

tahity94 Offline
LVF-Grünschnabel
*


Beiträge: 19
Registriert seit: Dec 2017

17.0f2
-
DE



RE: Positionen (Werte) in Matrix speichern
Hallo Gerd,

ich dachte, dass es dafür eine andere Möglichkeit gäbe, aber die Achse invertieren ist in Ordnung.
Super, dann steht das Programm soweit. Vielen Dank für deine Hilfe! :-)
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
  Maximalwerte in Matrix erkennen und mit zugehörigem neuen Wert überspeichern MartinNewBee 16 11.830 08.02.2018 16:31
Letzter Beitrag: MartinNewBee
  Werte speichern mit Zeitangabe und Title patriote00 2 5.445 15.01.2016 13:52
Letzter Beitrag: patriote00
  Werte aus Signalverlaufsdiagramm in Datei speichern und laden montanaro 5 8.716 15.07.2015 06:56
Letzter Beitrag: montanaro
  1D Array in 6er xD matrix formatieren Da_Rudi 9 7.994 27.11.2013 15:22
Letzter Beitrag: Da_Rudi
  Werte in einer .txt-datei speichern tom102 38 33.686 28.07.2010 12:06
Letzter Beitrag: GerdW
  Werte aus Datei in Arrays speichern Fysi 4 5.981 07.09.2009 09:04
Letzter Beitrag: Lucki

Gehe zu: