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 

Kompensationsprofil auf Messkurve anwenden



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!

04.09.2009, 10:38
Beitrag #1

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Kompensationsprofil auf Messkurve anwenden
Moin Moin,

da hab ich endlich mal eine Frage fürs Forum.^_^

>> Wie kompensiert man eine Messkurve mit einer Nullkurve? Lösung ok, oder gibt es elegantere Wege?

Also... mein Vorgänger hat mir ein Programm hinterlassen, welches intensiven Gebrauch von Sequenzstrukturen und lokalen Variablen macht.Huh
Der Sinn des Programmes besteht darin, mit einem Ultraschallsensor den Abstand zu einer Messfläche aufzuzeichnen. Das Programm zeigt dann auch noch die Abstandskurve mit Absolutwerten an, was eigentilch keinen Sinnmacht, da es ja um die relative Änderung des Abstands geht (also erledige ich das gleich mit). Der Sensor wird dabei von einer Traverse über die Messfläche bewegt. Leider (und ich hab im Moment keine Lust das zu ändern) erfolgt die Bewegung und Messwertaufnahme in einer Forschleife. Der Sensor ruckelt also immer 3 mm vor und nimmt einen Wert auf.

Das große Manko hat sich allerdings jetzt erst gezeigt:
Die Traverse ist nicht optimal ausgerichtet oder verspannt eingebaut worden (ja da waren die firmen-eigenen Schlosser am Werk, frei nach dem Motto "viel Hebelarm hilft viel"). Die von mir aufgezeichnete Nullkurve zeigt einen reproduzierbaren Anstieg des Abstands auf dem ersten Meter des Messwegs, leider wurde vor lauter Sequenzrahmen und Variablen anscheinend vergessen einen Kompensation der Nullkurve in das Programm einzubauen.

So und hier komme ich dann ins Spiel...
Die Nullkurve muss von den eigentlichen Messkurven abgezogen werden.

Meine Idee sieht dann so aus: [list=1]
[*]Ich normiere meine Nullkurve auf Null, d.h. ich subtrahiere den ersten Messwert von allen Messwerten der Kurve.
Die normierte Kurve startet also im Nullpunkt und zeigt die relative Abstandsänderung (des Systems). Das speichere ich dann in einer Array-Konstanten ab.<>
[*]Dann normiere ich die Messkurven auf Null.<>
[*]Jetzt subtrahiere ich jeden Punkt meiner Messkurve mit dem entsprechenden Punkt der Nullkurve. Dann erhalte ich eine kompensierte, normierte Messkurve. Fertig.<>
[st]Bekanntlich sagt ein Bild mehr als tausend Worte, aber ohne ein bisschen Text wüsste ja auch Keiner was ich eigentlich will.Big Grin
Um euch aber nicht mit dem Sequenzrahmen-Dschungel zu belästigen, hab ich das mal in ein einfaches Beispiel verpackt.

Links: Messkurve im Moment, Rechts: Messkurve wie sie eigentlich sein sollte
       

Die Messwerte werden im eigentlichen Programm innerhalb der Forschleife vom Sensor eingelesen, fürs Beispiel hab ich die Werte in ein Array gepackt.
"Messprogramm":
   

Kompensation[SubVI]:
   

Lv85_img
Sonstige .vi  Kompensationsprofil.vi (Größe: 21,15 KB / Downloads: 299)

Lv85_img
Sonstige .vi  Kompensation_SubVI_.vi (Größe: 39,24 KB / Downloads: 255)


So was meint ihr, kann man das so machen oder habt ihr einen bessere, intelligentere, einfachere, tollere, schönere, buntere Idee?

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.09.2009, 11:31
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Kompensationsprofil auf Messkurve anwenden
Hab' zwar den technischen Hintergrund nicht so ganz verstanden, aber Dein Bsp. sieht doch gut aus und vor allem ist die Frage mal löblich gestellt. Top2 Das muss man auch mal erwähnen. Wink

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.09.2009, 11:41
Beitrag #3

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Kompensationsprofil auf Messkurve anwenden
Vom technischen Hintergrund mal abgesehen, gehts mir ja auch hauptsächlich um die Umstetzung der Kompensation. Ist das erste Mal das ich vor dieser Problematik stehe und da:google:keine generelle Vorgehenweise zum Begriff "Kompensationsprofil" (oder nennt man das anders?)rausrückt wollte ich mal nachfragen. Wink

Gruß SeBa

PS:
Ich stelle Fragen so, wie ich sie selbst gerne vorfinden würde.

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.09.2009, 13:55
Beitrag #4

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Kompensationsprofil auf Messkurve anwenden
Hab mal ein Bild gemalt:

Die zu messende Fläche kann beliebig durchhängen. Das Durchhängen messen wir als Abstand von Sensor zur Fläche.

Bewegt sich der Senor parallel über eine nicht durchhängende Fläche wäre der Durchhang null. Bei idealer Sensorbewegung kann ich für den Durchhang einer Fläche also einfach den Abstandswert des Sensors nehmen.

Der Sensor ist jetzt aber an einer Traverse befestigt und die hat eine Krümmung/Schieflage ect.
Also ist die gemessene Kurve eine Überlagerung aus Schieflage der Traverse und Durchhang der Fläche.

Um nur den Durchhang der Fläche zu bekommen, muss die Schieflage der Traverse abgezogen werden.
(Traverse bewegt Sensor in y-Richtung, Fläche hängt in z-Richtung durch)

   


Hmm, hilft das der Vorstellungskraft weiter?

Gruß SeBa

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.09.2009, 16:53
Beitrag #5

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Kompensationsprofil auf Messkurve anwenden
Es hört sich alles sehr einfach an, ich verstehe trotzden nicht alles. Z.B kenne ich den Begriff Skew in etlichen Bedeutungen (s. Wikipedia), aber in diesem Zusammenhang kommt mir das komisch vor.
Da Du aber sagst, das VI funktioniert, dann muß man ja gar nichts verstehen, es geht nur darum, das Programm evtl zu vereinfachen.
Ja, es geht, allerdings: der Begriif "vereinfachen" reicht hier gar nicht aus, da das Progrämmchen auf eine unglaublich gigantische, umständliche Art realisiert wurde. Z.B.: Noch nie etwas davon gehört, daß man, um die Elemente zweier Arrays zu summieren, einfach das Additionssymbol verwenden kann?

   
Lv86_img
Sonstige .vi  Kompensationsprofil2.vi (Größe: 14,88 KB / Downloads: 247)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.09.2009, 17:39
Beitrag #6

SeBa Offline
LVF-Guru
*****


Beiträge: 2.025
Registriert seit: Oct 2008

09SP1 & 10 FDS
2008
DE

65xxx
Deutschland
Kompensationsprofil auf Messkurve anwenden
' schrieb:Noch nie etwas davon gehört, daß man, um die Elemente zweier Arrays zu summieren, einfach das Additionssymbol verwenden kann?

Doch, aber die Messwerte werden ja zur Laufzeit erstellt und angezeigt, also muss ich den gemessenen Wert auch direkt kompensieren. Sonst müsste ich (nix anzeigen und) warten, bis die Messung beendet ist und es dann so machen wie du beschrieben hast. Da das Programm aber nicht auf meinem Mist gewachsen ist, möchte ich die Veränderungen so gering wie möglich halten (bis ich Zeit finde es komplett neu zu schreiben).

Zum Thema Skew... keine Ahnung warum das so heißt. Die Kollegen auf der anderen Seite der Welt nennen das so, daher nennen wir das auch so. Jaja, die liebe Firmenpolitik. Soll ja alles vergleichbar sein.Tongue

Gruß SeBa


Edit:
Ích glaube ich hätte es noch ausführlicher beschreiben sollen.
Also die kleine Forschleife, in der im Beispiel die Kompensation durchgeführt wird, ist im realen Programm vollgestopft mit Befehlen zur Traversenbewegung und dem Auslesen der Sensoren. Daran kann ich ohne weiteres nix ändern. Es wird also in jedem Schleifendurchlauf der Sensor ein Stück in y-Richtung bewegt und ein Messwert (Abstand Sensor -> Fläche in z-Richtung) aufgenommen. Der wird dann auch dirket auf den Plot geschickt.
Daher mein Ansatz zwischen Aufnahme-Messwert und Anzeige-Messwert ein KompensationsVI einzufügen.

Im Beispiel bedeutet das, das Kompensationswertearray existiert vollständig und zu jeder Zeit. Das Messwertearray gibt es eigentlich garnicht, ich habe es nur erstellt um die Messwertaufnahme (dank Autoindizierung) zu simulieren. Es ist also bei jedem Schleifendurchlauf nur der aktuelle Messwert, das Kompenstionsarray und die Position der Traverse bekannt, wobei ein Schleifendurchlauf die Traversenposition um einen Schritt inkrementiert.

Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.

Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.

Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.09.2009, 18:21 (Dieser Beitrag wurde zuletzt bearbeitet: 04.09.2009 18:22 von Lucki.)
Beitrag #7

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Kompensationsprofil auf Messkurve anwenden
' schrieb:Doch, aber die Messwerte werden ja zur Laufzeit erstellt und angezeigt, also muss ich den gemessenen Wert auch direkt kompensieren.
Ja, im Hinterkopf hatte ich auch diesen Verdacht, und ich hätte diese Möglichkeit einräumen sollen, statt mich über die vermeintliche Umständlichkeit des Programms aufzuplustern. Ich finde es immer noch besser, wenn ein vereinfachtes Programm erstellt wird und das zu einem Missverständnis führt, als wenn einem - wie es meist geschieht - das Originalprogramm in voller Länge vor die Füße geknallt wird.
Bei Gelegenhait schau ich mirs noch mal an, ob sich in dieser neuen Situation noch etwas vereinfachen läßt.
Gruß Ludwig
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
  LabView in Powerplant anwenden treu 5 4.157 06.06.2011 21:52
Letzter Beitrag: macmarvin
Rainbow Eigenschaftsknoten (Property Nodes) auf Elemente in Array anwenden ??? Flobias 6 8.874 10.03.2011 08:34
Letzter Beitrag: Lucki
  Case Struktur richtig anwenden Jabbad 4 12.703 26.10.2009 19:01
Letzter Beitrag: schrotti
  User Events auf Beispiel anwenden Spark 4 6.078 26.10.2009 17:19
Letzter Beitrag: Spark

Gehe zu: