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 

Kennfelder in LabVIEW



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.09.2007, 17:16
Beitrag #1

gringo Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Sep 2007

8.2
-
kA


Deutschland
Kennfelder in LabVIEW
Hallo!
Ich habe folgendes Problem: Ich will ein Kennfeld von Messdaten erstellen und dieses dann so ähnlich als eine Konstante benutzen, so wie man das vielleicht von MatLab kennt. Ich selbst bin kein MatLab-Kenner, weiss nur das so was gibt's. Das Prinzip ist eigentlich einfach: man hat zwei Eingangsgrößen z.B. Druck und Temperatur und eine Ausgangsgröße z.B. Volumen. D.h. man gibt Temperatur T_x und Druck P_y ein und bekommt aus diesem Kennfeld den entsprechenden Wert fürs Volumen. Es wäre einfach toll, wenn jemand so was schon mal gemacht hat, oder einfach eine gute Idee hat wie man so was realisieren kann!

Vielen Dank im voraus!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.09.2007, 18:00
Beitrag #2

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
Kennfelder in LabVIEW
Wenn ich dich richtig verstehe dann willst du also im Vorhinein ein (2D) Feld eingeben (willkürlich), bei dem du zu den jeweiligen Spalten und Zeilen Werten (z.B.: Druck, Temp) dann eine sich ergebende 3. Größe (z.B. Volumen) eingibst.
Anschließend willst du, dass das Programm dir für beliebige Werte der Eingangsgrößen den entsprechenden Wert aus dem Kennfeld ausgibt?

Hab leider kein LV zur Hand, aber ich würde das so angehen:

1. Erzeuge 2 1D Arrays, in denen du die Werte für Druck, Temp eingibst.
2. Erzeuge ein 2D Array, indem du deine Werte eingibst. Wichtig hierbei: Die Zeilen, Spalten müssen sich auf dieselben Werte für Druck und Temp beziehen, wie in den 1D Arrays.
3. Erhältst du nun deine Eingangsdaten durchsucht du den jeweiligen 1D Array nach dem nähestem enthaltenen Wert und lässt dir den Index angeben. Mit den zwei erhaltenen Indizes greifst du dir den passenden Wert aus dem 2D Array.

Gruß

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
21.09.2007, 19:11 (Dieser Beitrag wurde zuletzt bearbeitet: 22.12.2007 18:45 von jg.)
Beitrag #3

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Kennfelder in LabVIEW
Es geht schon so wie Kvasir sagt, aber das Ergebnis wird doch - ja nach Größe Deiner Tabelle - um Größenordnugen genauer, wenn Du , statt den nächstgelegenen Wert aus der Tabelle zu nehmen, zwischen den Werten interpolierst. Die Werte im 2D-Feld bilden dann nur die Stützstellen in einem Kontinuum.
Und nun die gute Nachricht 1:
Für ID-Arrays gibt es fertige Interpolations-VI für beide Richtungen.
Krummwertiger Index (dbl) nach Wert: "1D-Array interpolieren.vi"
Wert nach Index (DBL): "Schwellwert (1D Array).vi" (Das funktioniert natürlich nur, wenn die Array- Werte einen monotonen Verlauf haben)
Und die gute Nachricht 2: Mit ein paar Schleifen läßt sich die erstgenannte Funktion auch auf 2D erweitern - zumindest hat es bei mir schon mal funktioniert und ich habe es hier sogar schon mal gepostet.

Du hast also, genau wie Kvasir es gesagt hat, diese Arrays:
a) Einen 1D-Array für die Temperaturwerte
b) Einen 1D-Array für die Druckwerte.
c) Die Tabelle, bei denen die X-Indizees den Temperwerten von Array a und die Y-Indizees den Druckwerten von Array b entsprechen

Gesucht: Volumen zu Punkt [T,p]
1. Schritt: Mit "Schwellwert(1D Array).VI" die Indizees x(T) bzw. y(p) ermitteln.
2. Schritt: mit x(T) und y(T) in in ein selbstgebasteltes Sub-VI "2D Array interpolieren" hineingehen, um das Volumen zu ermittelen. (Dieses VI enthält die Funktion "1D-Array interpolieren.vi" und ein paar schlaue Schleifen für 2D-Erweiterung --> Deine Aufgabe).

Versuche mal etwas in dieser Richtung, und wenn Du nicht klar kommst, melde Dich, dann wirst Du geholfen.

Edit: Habe das VI gefunden, da müßte Dir helfen:
   

(VI LV 8.2)


Angehängte Datei(en)
Sonstige .vi  Matrixinterpolation.vi (Größe: 13,73 KB / Downloads: 366)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.09.2007, 08:54
Beitrag #4

gringo Offline
LVF-Neueinsteiger


Beiträge: 2
Registriert seit: Sep 2007

8.2
-
kA


Deutschland
Kennfelder in LabVIEW
:top1:Vielen vielen Dank an euch beide, ihr habt mir sehr geholfen! Gleich werd' ich das ausprobieren.Tippen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: