LabVIEWForum.de - Interpolation

LabVIEWForum.de

Normale Version: Interpolation
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
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
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.
Sollte er da nicht ein Gerät von NI haben, das DAQmx unterstützt? Unsure

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.
' schrieb:Sollte er da nicht ein Gerät von NI haben, das DAQmx unterstützt? Unsure
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.
' 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.
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 :
[attachment=20431]

dann mir den Druck aus der gemessen Spannung direkt berechnen.

Gruß,
Daniel
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
' 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:
[attachment=20462]<>
[st]
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.
Referenz-URLs