11.08.2009, 17:21
Beitrag #1
|
silver
LVF-Grünschnabel
Beiträge: 42
Registriert seit: Mar 2009
8.5
2008
de
97279
Deutschland
|
Interpolation
Hallo,
vielleicht kann mir jemand bei meinem Problem helfen. Zwar bekomme ich von einem Barometer ein Spannungssignal. Vom Hersteller hab ich lediglich die Spannungswerte für 600, 700, 800, 900, 950, 1000, und 1050hPa gegeben. Nun muss ich die restlichen Spannungswerte, wenn diese auftreten interpolieren. Das heißt ich brauch ein VI, dass bei einer Spannung, die zwischen 600hPa und 700hPa liegt, zwischen diesen Werten interpoliert.
Kann mir vielleicht jemand sagen, wie das funktionieren könnte.
Vielen Dank
|
|
|
11.08.2009, 17:49
Beitrag #2
|
|
|
11.08.2009, 17:53
Beitrag #3
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Interpolation
Im M&A-Explorer eine Skalierung erstellen (Skalierung/Neu). Bei Dir bietet sich die Polynom-Interpolation an.
Die Skalierung kanst Du entweder in einem Virtuellen Task, der ebenfalls im M&A-Explorer erstellt würde, verwenden. Oder Du schließt den Namen der erstellten Skalierung am entsprechenden Eingang des VI "DAQmx Create Virtual Channel" an.
Wenn Du das machst, kommen aus dem DAQmx Lesen am Ausgang keine Spannungswerte heraus, sondern direkt die Polynom-Interpolierten Druckwerte. Eleganter gehts wirklich nicht.
|
|
|
11.08.2009, 17:55
Beitrag #4
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Interpolation
Sollte er da nicht ein Gerät von NI haben, das DAQmx unterstützt?
Gruß Markus
' schrieb:Im M&A-Explorer eine Skalierung erstellen (Skalierung/Neu). Bei Dir bietet sich die Polynom-Interpolation an.
Die Skalierung kanst Du entweder in einem Virtuellen Task, der ebenfalls im M&A-Explorer erstellt würde, verwenden. Oder Du schließt den Namen der erstellten Skalierung am entsprechenden Eingang des VI "DAQmx Create Virtual Channel" an.
Wenn Du das machst, kommen aus dem DAQmx Lesen am Ausgang keine Spannungswerte heraus, sondern direkt die Polynom-Interpolierten Druckwerte. Eleganter gehts wirklich nicht.
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
11.08.2009, 18:39
Beitrag #5
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Interpolation
' schrieb:Sollte er da nicht ein Gerät von NI haben, das DAQmx unterstützt?
Nein. Bei Erstellung eine Skalierung wird als erstes gefragt, ob für DAQmx oder für Traditionelles DAQ. Selbst die Polynom-Interpolation funktioniert mit beiden.
Und wenn eine Karte/ein USB-Modul eines anderen Herstellers zum Einlesen der Spannungen benutzt wird, welches mit ganz anderen Treibern daherkommt - ich weiß nicht, ob es so etwas überhaupt gibt - dann gehts allerdings nicht.
|
|
|
11.08.2009, 22:30
(Dieser Beitrag wurde zuletzt bearbeitet: 12.08.2009 08:26 von unicorn.)
Beitrag #6
|
unicorn
LVF-Freak
Beiträge: 680
Registriert seit: Jul 2009
8.6.1, 2010 - 2012
1994
EN
10xxx
Deutschland
|
Interpolation
' schrieb:Hallo,
also ich würde das ja nicht interpolieren nennen, aber wenn es bloß die 7 möglichen Fälle gibt, würde ich das mit einer case-Struktur machen.
Fall1: <650 wird 600 zugewiesen
Fall2: 651 bis 750 wird 700 zugewiesen
Fall3: 751 bis 850 wird 800 zugewiesen
usw..
Wäre doch eine Möglichkeit. Wenn ich das überhaupt richtig verstanden habe!?
Gruß Peter
So ein Treppchen sollte man aus den Kalibrierdaten des Herstellers auf keinen Fall machen. Der Sensor liefert ein kontinuierliches Signal, das wahrscheinlich nur wenig von einem linearen Verhalten abweicht. Da der Hersteller nicht hundert Werte ausmessen will und auch nicht braucht, da sich das Sensorsignal zwischen den angegebenen Werten gutartig verhalten wird, muss man eben interpolieren.
Falls einmal Sensorsignale in einer Kalibrierkurve ein wenig schwanken bietet sich eine Spline-Interpolation an, die die Kurve geringster Krümmung durch alle Punkte darstellt. Im Gegensatz dazu kann ein Polynom n-ten Grades zwar auch exact durch n+1 Punkte gehen, aber zwischen den Punkten enorm schwanken.
Bei dem Sensor, der hier genannt ist, besteht sicherlich kein Grund zur Panik. Ich denke die Kalibrierwerte liegen schön in einer schwach gekrümmten Linie.
|
|
|
12.08.2009, 06:57
Beitrag #7
|
Andora
LVF-Gelegenheitsschreiber
Beiträge: 124
Registriert seit: Jul 2008
2009
2001
de
81539
Deutschland
|
Interpolation
Hallo,
' schrieb:Vom Hersteller hab ich lediglich die Spannungswerte für 600, 700, 800, 900, 950, 1000, und 1050hPa gegeben.
Ich würde anhand dieser Werte die Funktion, eventuell mit :
dann mir den Druck aus der gemessen Spannung direkt berechnen.
Gruß,
Daniel
|
|
|
12.08.2009, 09:29
Beitrag #8
|
silver
LVF-Grünschnabel
Beiträge: 42
Registriert seit: Mar 2009
8.5
2008
de
97279
Deutschland
|
Interpolation
Vielen Dank für die vielen und schnellen Antworten. Ich werde mal sehen, was ich daraus machen kann, denn ich bin noch nicht so lange mit Programm vertraut.
Aber nochmals danke für die reichlichen Antworten
|
|
|
12.08.2009, 15:52
(Dieser Beitrag wurde zuletzt bearbeitet: 27.08.2009 07:56 von Lucki.)
Beitrag #9
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Interpolation
' schrieb:Vielen Dank für die vielen und schnellen Antworten. Ich werde mal sehen, was ich daraus machen kann, denn ich bin noch nicht so lange mit Programm vertraut.
Aber nochmals danke für die reichlichen Antworten
Vielleicht noch ein kleiner Hinweis:
Die Diskussionsbeiträge sind zwar von der Theorie her alle richtig. aber - und als alter Praktiker darf ich das mal sagen - es wird über das Ziel hinausgeschossen (Auch ich bekenne mich mitschuldig, indem ich die Polynominterpolation ins Gespräch gebracht habe)
Denn die Praxis síeht so aus: Wenn die Herstellerfirma des barometrischen Sensors seriös ist, reicht sie Dir entweder selbst eine Interpolationsfomel mit. Da ist aber eher selten. Meist - und das ist hier der Fall - liefert sie eine Tabelle, und zwar mit mit so viel Kalibrierpunkten, daß eine lineare Interpolation zur Bestimmung der Zwischenwerte ausreichend ist. Darüber hinausgehende Interpolationstechniken tragen also überhaupt nichts mehr zur Genauigkeit bei.
Konkret heißt das:[list]Bei Skalierung im M&A-Explorer: Tabellen-Interpolation verwenden
Bei Skalierung im VI: Funktion "ID-Interpolation" (Unter Arrays) verwenden:
<>
[st]
|
|
|
26.08.2009, 22:09
|
Newton2k1
LVF-Neueinsteiger
Beiträge: 4
Registriert seit: Aug 2009
Developer Suite -> immer die neueste :-)
1995
DE_EN
5430
Schweiz
|
Interpolation
Ich habe auch sehr oft die VI's für die lineare Interpolation verwendet, da in meinem Fall die Frequenzgänge damit fast immer genügend genau repräsentiert werden konnten. Falls es jedoch in LabVIEW einen VI für die Interpolation mittels Spline geben sollte so wäre es wahrscheinlich nicht sehr kompliziert, diesen zumindest mal kurz zu testen. Ich wage zu behaupten, dass man evtl. zuerst einen subVI mit linearer Interpolation programmieren kann und dann nur den eigentlichen Funktionsaufruf für den Test kurz wechseln muss. Momentan habe ich kein LV8.X hier zur Hand und kann das alles nicht ausprobieren, aber diese nötigen ca. 15min empfinde ich als wertvoll um dabei auch grad mal den spline fit von LV zu testen :-)
Wahrscheinlich bemerkt man die Knickstellen in der Kalibrationskurve eh nicht da der Drucksensor einen viel höheren Fehler hat als durch die lineare Aproximation jemals erreicht wird.
|
|
|
| |