Interpolation von Kennlinienfeld



  • Servus,
    jetzt wird mathematisch.
    Ich habe einen Datensatz, Beispiel siehe weiter unten.
    WertA bis WertC sind Eingangsvariablen
    WertD ist die Ausgangsgröße

    Ich suche eine Möglichkeit, ein Kennlinienfeld zu interpolieren. Deshalb, weil unterschiedliche Anzahl an Messreihen und Messpunkte zur Verfügung stehen.
    Es ist also nichts anderes als eine Punktewolke gegeben, über die eine Fläche gelegt werden soll.

    Wie geh ich das an. Ich habe gestern Abend auf der HP von Numerical Recipes for C im Kapitel 3.6 Interpolation in Two or More Dimensions gefunden. Leider kann ich das hier auf der Arbeit nicht aufrufen, wegen dem Plugin.
    Ist ja auch egal.

    Welche mathematische Methoden gibt es da. Spline Funktionen mit Randbedingungen kenn ich nur für y = f(x) aber nicht für d = f(a,b,c).

    Ich nutze GNU Scientific Library und es soll ein Datensatz entstehen, der für das Simulationsprogram Simplorer nutzbar ist.

    Für Anregungen bin ich dankbar.

    WertA    WertB    WertC    WertD
    25	500	25,9	0,00279
    25	500	202	0,0164
    25	500	234	0,0185
    25	500	290	0,0245
    25	500	400	0,0405
    25	600	27	0,00386
    25	600	105	0,0118
    25	600	235	0,0255
    25	600	290	0,0336
    25	600	401	0,0543
    25	700	25,1	0,00459
    25	700	48,9	0,00782
    25	700	289	0,0451
    25	700	400	0,072
    25	840	25,4	0,00619
    25	840	202	0,0405
    25	840	285	0,0596
    25	840	393	0,094
    125	500	27	0,0048
    125	500	52,4	0,00728
    125	500	396	0,0588
    125	600	27,5	0,00654
    125	600	133	0,0209
    125	600	165	0,0257
    125	600	200	0,0315
    125	700	49,4	0,0124
    125	700	73,5	0,0166
    125	700	99,5	0,0212
    125	700	129	0,0265
    125	700	163	0,033
    125	700	410	0,104
    125	840	25,7	0,0106
    125	840	49,4	0,0166
    125	840	162	0,0444
    125	840	201	0,0553
    


  • Mit Spline liegst du schon mal nicht schlecht.
    Es bieten sich z.B. Bezier Spline Flächen oder alternativ auch B Splines an.



  • Bezier ist aber nur für Bildverarbeitung gut. Bei Messpunkten wird zwar eine Fläche ausgegeben, diese liegt bei großer Krümmung aber fern der gemessenen Punkte.



  • nur die randkoeffizienten der bezierkurven interpolieren die gegeben stützpunkte genau. durch blossoming können aber auch koeffizienten bestimmt werden, deren bezierkurven vom grad q q+1 Punkte interpolieren.

    Jetzt zum 2/3 dimensionalen Fall ... hast du sozusagen ein "Höhenfeld" gegeben, also für x,y nur einen zugeordneten z-wert? Sind die x,y werte auf einem äquidistantem Gitter? dann bietet sich ersteinmal lineare interpolation mit tensorprodukten/dreieckspatches von grad 1 in Bernstein Bezier Form, deren Grad (Glattheit) man dann noch relativ einfach erhöhen könnte....

    Ansonsten werd ich dann nochmal darüber nachdenken ...



  • die Schrittweite der x,y Punkte ist nicht aquidistant.
    Der Messaufbau sieht so aus:
    Eine Sollkurve wird durchfahren. Wenn ein bestimmter Spannungs und Stromwert erreicht wird löst die Messung aus. Diese liegen dabei nicht genau auf den Auslösewerten und sind somit nicht äquidistant.
    Dieser Messvorgang wird für verschiedene Temperaturen wiederholt.
    Also haben wir drei Parameter und eine Ausgangsgröße.
    Da die Anzahl dieser Messpunkte variiert ist eine lineare Interpolation unvorteilhaft.



  • ich meine aber stückweise lineare interpolation. also ein spline vom grad 1... uns sowas gibts halt auch im bi- und trivariaten Fall.

    Möchtest du das Ergebnis visualisieren oder nur "Werte dazwischen" bestimmen?



  • Beides.
    Aus diesen Messwerten möchte ich beliebige Werte bestimmen, aus denen dann wiederum ein neuer Datensatz entsteht.



  • Dann schau dir mal Bezier-Tensorproduktflächen und Bezier Dreiecks Patches an. Einen Spline machst du dann daraus indem du aus 4 bzw. 3 Punkte ein Tensorprodukt bzw. Dreickspatch konstruierst und diese ganzen dinger dann zusammenklebst. Diese kann man relativ einfach visualisieren (zumindest die Dreickspatches (vom Grad 1 = Dreieck)) und natürlich auch auswerten.



  • Hier das ist super einfach und bringt recht gute Ergebnisse.

    http://www.num.math.uni-goettingen.de/wendland/Forschung/ifasd.pdf

    Das was die dort vorstellen ist im Prinzip ne Gaussprozessregression, aber das brauchst du gar nicht zu wissen ...


Anmelden zum Antworten