LabVIEWForum.de - nichtlineare Kurvenanpassung vi

LabVIEWForum.de

Normale Version: nichtlineare Kurvenanpassung vi
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich beschäftige mich mit der Kalibrierung einer Kamera und möchte daher das nichtlinear Kurvenanpassung vi ( Levenberg- Marquardt Algorithmus) benutzen. Ich habe die Projektionsparameter mit der linearen kleinste Quadrate Methode bereits berechnet (bis auf die Linsenverzerrung). Diese soll man laut Literur als Startwerte verwenden.
Als Formel möchte ich den Zusammenhang Pc = Sk*K*(R,t)*Pw übergeben. Sk,K, (R,t) sind Matrizen und in Sk ist die Verzerrung verpackt.

Wie kann ich dem vi mehrere Variablen übergeben da der Weltpunkt Pw = (xw, yw, zw)? In den Beispielen sind nur einfache Zusammenhänge angebeben: z.B.: y = e^-x. Da werden dem X- und Y- Eingang einfach Arrays übergeben. Ich habe aber ein System mit mehreren variablen z.B.: y = e^-x+e^-w+e^-z. Wie schaut da der X Eingang aus (für mehrere Weltpunkte), bzw. wie gebe ich dann den Formelstring an?

lg
Hi
In Nonlinear Curie Fit.vi kannst Du die Instanz mit VI-Referenz als Eingang auswählen. In diesem VI codierst Du Deine Modell-Funktion und die partiellen Ableitungen nach den Fit-Parametern. Falls keine Ableitung implementiert ist, also ein Array mit Null Elementen zurückgegeben wird, macht das VI eine numerische Ableitung.

Nonlinear Curie Fit.vi hat in dieser Instanz einen weiteren Variant-Eingang data, in dem du beliebige Daten (auch als Variant-Attribute) hinterlegen kannst, z.B. deine Weltpunkte. Pw = (xw, yw, zw).

Der Rest sollte sich aus den LV-Beispielen ergeben.

Hintergrundinformationen sind gut in dem Buch Numerical Recipes nachzulesen.

Gruß Holger
Referenz-URLs