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.




Unsere Partner:

DIAdem-Forum.de Partner

DIAdem-Forum.de Partner






Stellenangebote:
Big Data Scientist / Analyst (m/w) Messdatenmanagement
Ingolstadt

Diplom-Ingenieur/-in Geoinformatik / Fernerkundungsdatenverwaltung
Frankfurt am Main

Projektmanager Visualisierung (m/w)
München, Fulda

Entwicklungsingenieur/-in im Bereich HV Energie-Bordnetz für Elektro- und Hybridfahrzeuge
Böblingen

BI - Analyst (m/w)
Unterföhring bei München





.
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5

Doppelte Hysteresekurve Min und Max
24.08.2016, 12:39,
#1
DIAdem-Version: 11.2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
Doppelte Hysteresekurve Min und Max

Hallo Leute,

ich benötige Hilfe bei einer automatisierten Auswertung einer doppelten Hysteresekurve, Bild siehe Anhang.

Die Kurve besitzt 8 Extremstellen (blau markiert). Die Kurve besteht aus 25 einzelnen Kurven, die sich alle in einem Kanal befinden. Jede blau markierte Stelle besitzt also 25 Maxima oder Minima - je nachdem, um welche Stelle es sich handelt.

Meine Aufgabe besteht darin, die X- und Y- Werte aller Maxima/ Minima von allen 25 Kurven zu erfassen.
Sprich, ich brauche 25 x 8 Punkte.

Da die Erfassung aller Punkte sehr zeitaufwendig ist und ich mehrere solcher Kurven habe, brauche ich dafür ein Script.


Mein bisheriges Vorgehen: Ich habe zunächst händisch angefangen die Extrempunkte zu erfassen: Cursor Maximum/Minimum --> Flag setzten --> Flags in neuen Kanal kopieren

So ähnlich stelle ich mir auch die automatisierte Version vor.
Bisher habe ich jedoch nur herausgefunden, wie man Flags setzen kann: Call chnFlagSet (5,60,100, true)

Als unerfahrener DIAdem Nutzer mit Amateurmäßigen Programmierkenntnissen komme ich nun nicht weiter.
Wie erfasse ich NUR die Maxima/Minima aller Kurven in den gewünschten Stellen?
Optional:
Wie lege ich diese Maxima/Minima in einen Kanal je Extremstelle ab?



Angehängte Dateien Thumbnail(s)
   
Antworten
25.08.2016, 05:57,
#2
DIAdem-Version: 11.2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: Doppelte Hysteresekurve Min und Max

Hier noch eine Detailansicht von einem Extrempunkt.



Angehängte Dateien Thumbnail(s)
   
Antworten
25.08.2016, 06:28,
#3
DIAdem-Version: 11.2
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2011
RE: Doppelte Hysteresekurve Min und Max

Habe mir überlegt, es möglicherweise so umzusetzen:

1. Bereich eingrenzen, in dem Extremstellen liegen
2. Abfrage, ob Maxima oder Minima vorhanden
3. Wenn Abfrage true setze Flag

Kann mir jemand helfen, wie ich das programmiere?

Antworten
25.08.2016, 08:51,
#4
DIAdem-Version: 12
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 2006
RE: Doppelte Hysteresekurve Min und Max

Hallo,

ich habe vor geraumer Zeit mal ein ähnliches Problem gehabt. Ich hatte einen Sägezahn und wollte von dem alle Maxima und Minima haben.
Ich habe das eher "simpel" gelöst. Ich bin den Kanal Wert für Wert durchgegangen und habe den aktuellen Wert immer mit fünf Werten davor und danach verglichen. Wenn z.B. alle Werte davor und danach kleiner Waren habe ich den Wert als Maxima in einen extra Kanal gespeichert. Mit den Minima natürlich umgekehrt. Weiß nicht ob das der einfachste Weg war, aber es hat funktioniert.
Ich weiß noch, dass ich etwas mit der Anzahl der vergleichenden Werte herumspielen musste (also ob fünf oder mehr) um eine Sichere Aussage zu erhalten. Das hängt bei dir von der Anzahl der Werte ab. Du musst halt aufpassen das du bei dir mit einem solchen Verfahren nicht die "Plateaus" mit erkennst.
Ich kann mal schauen ob ich das Skript dazu noch finde. Schick mir mal ne PM mit deiner Email-Adresse, dann schicke ich dir das zu.

Ansonsten wie man das mit Flags etc. löst kann ich nicht sagen.
Gruß
Tobias

Antworten
25.08.2016, 14:24, (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2016, 14:33 von chaosyeti.)
#5
DIAdem-Version: 2017 Beta2 / seit 4.0 dabei
DIAdem-Sprachversion: DE
DIAdem Erfahrung seit: 1996
RE: Doppelte Hysteresekurve Min und Max

Moin,

wie's aussieht, scheinen die Kurven ja alle recht definiert zu sein. Wenn Du die Teilbereiche, in denen jeweils ein Minimum und Maximum auftritt, in die jeweiligen Zeilen aufteilen kannst - versuch's mal damit:

Code:
Dim Kurve, i, j, Block(4), ErgebnisN, ErgebnisW
Kurve = Data.Root.ChannelGroups(1).Channels("Name der Kurve").Name
Set ErgebnisN = Data.Root.ActiveChannelGroup.Channels.Add("Ergebnis Name",DataTypeString)
Set ErgebnisW = Data.Root.ActiveChannelGroup.Channels.Add("Ergebnis Wert",DataTypeFloat64)

'-- vier auszuwertende Blöcke bestimmen, mit je einem Min und Max
Block(1) = "1-2500"
Block(2) = "2501-5000"
Block(3) = "5001-7500"
Block(4) = "7501-10000"

For i = 1 To 22
  StatSel(i) = "No"
Next
STATSEL(4)       ="Yes"   'Min rechnen
STATSEL(5)       ="Yes"   'Max rechnen
STATCLIPCOPY     =0
STATCLIPVALUE    =0
STATFORMAT       =""
StatResChn       =0
For j = 1 to 4
  Call STATBLOCKCALC("Channel",Block(j), Kurve)
  ErgebnisN.Values(j*2-1)="Maximum "&j&":"
  ErgebnisN.Values(j*2)="Minimum "&j&":"
  ErgebnisW.Values(j*2-1)=StatMax
  ErgebnisW.Values(j*2)=StatMin
next

Geht vielleicht auch eleganter, aber das hier war mal "so eben schnell" ;-)

Gruß
Yeti

Antworten


Gehe zu: