LabVIEWForum.de
Interpolierte Funktion aufrufen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Interpolierte Funktion aufrufen (/Thread-Interpolierte-Funktion-aufrufen)

Seiten: 1 2 3


Interpolierte Funktion aufrufen - amine - 22.03.2013 14:25

Hey,

ich habe eine Polynom Interpolation entworfen für die Tabelle von PD (im Anhang).Es wird hier nur die positive Bereich betrachtet aus genauigkeitgründe PIn [0 dBm bis 10 dBm].die Idee war dass ich für jede jeweiligen Frequenzen immer eine neuer interpolierten Funktion erstellt wurde. das ist mir soweit klar. Nun möchte ich die polynomiale koeffizienten irgendwie speichern , vor Beginn der Messung (die 80 DAQ kanäle einlesen) soll das Programm erkennen welche interpolierte polynom verwendet wird. der Sinn des Programms ist zu wissen, für eine gelieferte Spannungswert vom AD Wandler die zugehörige Leistung aus der Tabelle PD bekommen wird. Die gennante Punkte sind mir unklar und habe keine idee wie muss ich weiter noch das ganz machen ...ich hoffe dass Sie mir helfen könnten.

Gruß Amin

[attachment=44077]
[attachment=44078]


RE: Interpolierte Funktion aufrufen - Lucki - 22.03.2013 15:39

Kann jetzt Deine Frage nicht beantworten, habe aber aber einen Blick auf dein VI (richtiger müsste es heißen: auf deine VI-Tapete ) geworfen.
Du willst doch sicherlich das Ergebnis der Interpolation auch optisch im Graphen erleben? So wie du das machst geht das aber nicht: bei nur 6 Originalpunkten muss natürlich der interpolierte Plot aus mehr als 6 Samples bestehen, sonst sieht man statt einer glatten Polynomkurve nur die linearen Verbindunglinien zwischen den 6 Punkten.
So wäre es besser:
[attachment=44082]


RE: Interpolierte Funktion aufrufen - amine - 22.03.2013 16:56

Danke Lucki,

Also Das Ziel wäre, dass man die Ausgangsspannung UOUT in Abhängigkeit der zwei Variablen Frequenz F und Leistung PIN mit einem funktionalen Zusammenhang
f(F,PIN)=UOUT beschreiben kann... Von daher gibt der User zuerst die Frequenz ein
dadurch bildet sich eine Polynome Interpolation. ich habe jeder frequenz selber betrachtet. und für eine unbekannte Frequenz die keine Stützpunkte hat muss der User die Stützpunkte selber eingeben durch messen (ist nur bei einer neuer Frequenz bsp F=20 MHz)
und das Programm berechnet die Interpolation. Hier ist genau meine frage wie kann ich die ganze Interpolationsdaten speichern sodass das Programm nach der Eingabe der Frequenz weiß welche Polynom Interpolation verwenden, und wie macht es den Aufruf diesem Polynom??

ich hoffe dass ich


RE: Interpolierte Funktion aufrufen - GerdW - 22.03.2013 17:00

Hallo amine,

der ganze Aufwand ist nur gerechtfertigt, wenn du bestimmte (nicht-lineare) Interpolationen durchführen willst. Für das einfache Interpolieren in einem 2D-Kennfeld gibt es schon fertige Funktionen wie diese hier...

So kann das aussehen, wenn man zu einem X-/Y-Punkt den Z-Wert sucht:
[attachment=44084]
(Du musst noch eine "schöne" Methode wie bilinear wählen...)


RE: Interpolierte Funktion aufrufen - Lucki - 22.03.2013 17:58

(22.03.2013 16:56 )amine schrieb:  Also Das Ziel wäre, dass man die Ausgangsspannung UOUT in Abhängigkeit der zwei Variablen Frequenz F und Leistung PIN mit einem funktionalen Zusammenhang
f(F,PIN)=UOUT beschreiben kann...
Das VI von Gerd macht genau das:
Uout für jedes f und jedes Pin auszugeben.
Aber Uout würde eben nicht aus einem "funktionalem Zusammenhang" heraus berechnet, sondern durch intelligente (- damit meine ich besser als lineare -) Interpolation zwischen den Werten der gegebenen Tabelle.
Der Zweck wäre aber doch in beiden Fällen erreicht. Was würde Dich denn stören, wenn Du keine analytische Funktion hast? Als einziger Grund fällt mir ein, dass es höherwertige schöngeistige Interessen sind, die Dich nach einer solchen Funktion suchen lassen. Aber ein praktischer Grund fällt mit da nicht ein.


RE: Interpolierte Funktion aufrufen - Lucki - 22.03.2013 19:40

Habe mir mal die Mühe gemacht und das VI von Gerd mit Werten bestückt. Allerdings nicht die vollständige Tabelle mit 11*11 + 11 +11 Werten, sondern nur 3*3 +3 + 3 Werte. Aber du kannst immerhin sehen wie es lang läuft:

[attachment=44085]


RE: Interpolierte Funktion aufrufen - amine - 22.03.2013 20:38

Oh cool
ich bin euch beide sehr dankbar Smile
@Lucki ich würde es denn noch für die weitere 11*11 erweitern....
Gruß Amin


RE: Interpolierte Funktion aufrufen - Lucki - 22.03.2013 23:48

(22.03.2013 20:38 )amine schrieb:  @Lucki ich würde es denn noch für die weitere 11*11 erweitern....

..und für das Ergebnis besteht dann Vorzeigepflicht! (Forumsregel §0815)
Gruß Ludwig

Edit: Da hatte ich doch glatt vergessen, in dem geposteten VI die mühsam eingetippten Werte "als Standard" zu speichen, so dass die Tabelle leer daherkam. Habs oben geändert. Das wird Dir hoffentlich nicht passieren, wenn Du die Tabelle vervollständigst und das VI postest!


RE: Interpolierte Funktion aufrufen - amine - 23.03.2013 17:06

@Lucki
Was würde Dich denn stören, wenn Du keine analytische Funktion hast?

Zu deiner Frage: Vlt war ich nicht genauer bei der Darstellung des Problems...Es liegt eine Störung vor... ja mein Ziel nach dieser Interpolation ist eine Mathematische Zusammenhang zwischen die Spannung die Leistung und die Frequenz zu erschaffen...Warum?
der AD Wandler liefert pro Kanal eine Spannung und die obere Tabelle stellt die Zusammenhang zwischen den 3 Größen bei dem Power Detektor...Dies ist eine Bauteil mit der Aufgabe die Umwandlung Leistung-Spannung unter bestimmten Frequenz...meine Aufgabe wäre eine lernfähiges Programm zu entwerfen sodass für eine momentane Spannung die von einem Kanal der AD Wandler geliefert wird die zugehörige Leistung anzeigen. der User muss immer die Frequenz eingeben. Beispiel aus der Tabelle der PD:

wenn F =10 MHz
die momentane Spannung bei Kanal ai0 der AD Wandler U=85,210mV
ich bekommme dann die Leistung P = 0dBm

Deswegen brauche ich eine funktionale Zusammenhang zwischen den Größen ..andres geht nicht glaube ich oder?

Gruß Amin


RE: Interpolierte Funktion aufrufen - Lucki - 24.03.2013 10:35

Das verstehe ich trotzdem nicht. Angenommen, Du hast ein SubVI mit 2 Eingängen (Spannung, Frequenz) und einem Ausgang (Leistung). Es berechnet dir genau das was Du suchst. Was interessiert Dich dann, wie das SubVÍ im Inneren funktioniert? Ob es den Ausgangswert mittels einer Funktion oder mittels Interpolation einer Tabelle berechnet? (Der Unterschied ist nur: Die Tabelleninterpolation ist der Spatz in der Hand, die Berechnung mit Funktion die Taube auf dem Dach)

Nicht nur Labview, auch kein anderes Programm wird so schlau sein, dass es Dir eine Funktion benennt, die am besten zu irgendwelchen Messwerten passt. Diese Funktion musst Du selbst wählen. Da ist es z.B. vorteilhaft zu wissen, welche physikalischen Gesetzte dahinter stehen.
Beispiel: Approximation mit Polynom a + b*x + c*x²
Die Entscheidung für ein Polynom mit 3 Koeffizhienten musste von Dir kommen. Labview kann dann die optimalen Koeffizienten a, b, c finden. Genau so funktionert das auch mit Funktionen mit 2 unabhänigen Variablen.

Fazit: Wenn Du unbedingt den funktionalen Zusammenhang haben willst, benenne zuerst eine passende Funktion z = f(x,y) (mit freien Parametern so viel du willst). Der Rest ist Routine.