LeastSquaresCircle (FPScript)

21.09.2021

Berechnet den Least-Squares Kreis (LSCI) einer zweidimensionalen Punktemenge (Referenzkreis der kleinsten Abweichungsquadrate). Wird verwendet zur Rundheitsbestimmung.

Syntax

LeastSquaresCircle(Points, [ OutputOptions = LSCI_OUTPUT_MIDDLE_CIRCLE ], [ CircleSize = 5000 ] [ , Algorithm = LSCI_ALGORITHM_KASA ])
oder
LeastSquaresCircle(Y, X, [ OutputOptions = LSCI_OUTPUT_MIDDLE_CIRCLE ], [ CircleSize = 5000 ] [ , Algorithm = LSCI_ALGORITHM_KASA ])

 

Die Syntax der LeastSquaresCircle-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

Points

Die Y- und X-Punktemenge, für die der Least-Squares Kreis berechnet werden soll. Beide Komponenten des Signals müssen die gleiche Einheit besitzen.

Erlaubte Datenstrukturen sind Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

Y

Die Y-Punktemenge, die zur Berechnung des Least-Squares Kreises verwendet wird. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Die Einheit muss mit der Einheit des Arguments X übereinstimmen.

Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

X

Die X-Punktemenge, die zur Berechnung des Least-Squares Kreises verwendet wird. Wenn Sie ein Signal angeben, wird dessen Y-Komponente verwendet. Die Einheit muss mit der Einheit des Arguments Y übereinstimmen.

Erlaubte Datenstrukturen sind Datenreihe und Signal. Es sind alle reellen Datentypen erlaubt außer Kalenderzeit und Zeitspanne.

OutputOptions

Gibt an, welche Ergebnisse zurückgegeben werden sollen. Mehrere Ergebnisse werden als Liste ausgegeben. Wenn z. B. der Radius des Referenzkreises und die Rundheit ausgegeben werden sollen, so muss das Argument den Wert LSCI_OUTPUT_MIDDLE_CIRCLE_RADIUS + LSCI_OUTPUT_ROUNDNESS enthalten.

Das Argument OutputOptions kann folgende Werte haben:

Konstante

Bedeutung

+ LSCI_OUTPUT_ALL

Alle verfügbaren Ausgaben.

+ LSCI_OUTPUT_CENTER_X

X-Koordinate des Kreiszentrums des Referenzkreises. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_CENTER_Y

Y-Koordinate des Kreiszentrums des Referenzkreises. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_MIDDLE_CIRCLE

Der berechnete Referenzkreis (Referenzkreis der kleinsten Abweichungsquadrate). Das Ergebnis ist ein Signal.

+ LSCI_OUTPUT_MIDDLE_CIRCLE_RADIUS

Radius des Referenzkreises. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_INSCRIBED_CIRCLE

Der auf den Referenzkreis bezogene größte Innenkreis. Das Kreiszentrum des Innenkreises stimmt mit dem Kreiszentrum des Referenzkreises überein. Der Radius des Innenkreises ergibt sich als der minimale Abstand der Punktemenge zum Kreiszentrum. Das Ergebnis ist ein Signal.

+ LSCI_OUTPUT_INSCRIBED_CIRCLE_RADIUS

Radius des auf den Referenzkreises bezogenen Innenkreises. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_CIRCUMSCRIBED_CIRCLE

Der auf den Referenzkreis bezogene kleinste Außenkreis. Das Kreiszentrum des Außenkreises stimmt mit dem Kreiszentrum des Referenzkreises überein. Der Radius des Außenkreises ergibt sich als der maximale Abstand der Punktemenge zum Kreiszentrum. Das Ergebnis ist ein Signal.

+ LSCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS

Radius des auf den Referenzkreises bezogenen Außenkreises. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_ROUNDNESS

Die Rundheitsabweichung. Ergibt sich als Differenz der Radien des Außen- und Innenkreises. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_ROUNDNESS_MAX_TO_REF

Spitze-zu-Referenz Rundheitsabweichung. Ergibt sich als Differenz von LSCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS und LSCI_OUTPUT_MIDDLE_CIRCLE_RADIUS. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_ROUNDNESS_REF_TO_MIN

Referenz-zu-Tal Rundheitsabweichung. Ergibt sich als Differenz von LSCI_OUTPUT_MIDDLE_CIRCLE_RADIUS und LSCI_OUTPUT_INSCRIBED_CIRCLE_RADIUS. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ LSCI_OUTPUT_ROUNDNESS_QUADRATIC_MEAN

Quadratischer Mittelwert der Abweichungen der Datenpunkte zum Referenzkreis. Entspricht der Quadratwurzel aus dem Mittelwert der Quadrate der örtlichen Rundheitsabweichungen zum Referenzkreis der kleinsten Abweichungsquadrate. Das Ergebnis ist ein 64-Bit-Fließkommawert.

Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert LSCI_OUTPUT_MIDDLE_CIRCLE gesetzt.

CircleSize

Gibt die Anzahl der Werte zur Darstellung der gefitteten Kreise an. Wenn Sie Null angeben, bleibt die ursprüngliche Werteanzahl erhalten. Das Argument wird nur berücksichtigt, wenn für OutputOptions einer der aufgelisteten Kreise gewählt wurde.

Erlaubte Datenstrukturen sind Einzelwert. Es sind alle ganzzahligen Datentypen erlaubt.

Der Wert muss größer gleich 0 sein.

Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert 5000 gesetzt.

Algorithm

Bestimmt den Algorithmus zur Berechnung des Least-Squares Kreises. Es wird stets die Methode der kleinsten Fehlerquadrate verwendet.

Das Argument Algorithm kann folgende Werte haben:

Konstante

Bedeutung

LSCI_ALGORITHM_KASA

Zur Berechnung des LSCI-Kreises mit der Methode der kleinsten Fehlerquadrate wird folgendes modifiziertes zu minimierendes Funktional verwendet: Damit kann die Kurvenanpassung mit Hilfe eines linearen Least-Squares Ansatzes explizit gelöst werden kann. Das Verfahren ist bekannt als die Kasa-Methode, siehe [1], [2, Chapter 2] oder [4]. Der Algorithmus ist einfach, schnell und robust. Der Algorithmus liefert gute Ergebnisse, wenn die Datenpunkte entlang eines ganzen Kreises oder eines großen Teils davon (mindestens Halbkreis) abgetastet sind. Wenn die Datenpunkte allerdings nur entlang eines kleinen Kreisbogens abgetastet werden, so ist das Ergebnis verzerrt und man erhält Kreise, die zu oft zu klein sind.

LSCI_ALGORITHM_PRATT

Zur Berechnung des LSCI-Kreises mit der Methode der kleinsten Fehlerquadrate wird folgendes modifiziertes zu minimierendes Funktional verwendet: Das Verfahren ist bekannt als die Pratt-Methode, siehe [3] oder [4]. Der Algorithmus ist etwas langsamer als die Kasa-Methode, allerdings akkurat und immer noch schnell. Gegenüber der Kasa-Methode werden bessere Ergebnisse erzielt, wenn die Datenpunkte innerhalb eines kleinen Kreisbogens vorliegen.

Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert LSCI_ALGORITHM_KASA gesetzt.

Anmerkungen

Die Werte werden vor der Berechnung in 64-Bit Fließkommazahlen gewandelt.

Die Ausgabeoptionen des Arguments OutputOptions sind im folgenden Diagramm visualisiert:

Auf die Ergebnisse kann mit folgenden Listenelementnamen zugegriffen werden:

Konstante

Bedeutung

.["Center_X"]

X-Koordinate des Kreiszentrums des Referenzkreises.

.["Center_Y"]

Y-Koordinate des Kreiszentrums des Referenzkreises.

.["Middle_Circle"]

Referenzkreis (Referenzkreis der kleinsten Fehlerquadrate).

.["Middle_Circle_Radius"]

Radius des Referenzkreises.

.["Inscribed_Circle"]

Der auf den Referenzkreis bezogene größte Innenkreis.

.["Inscribed_Circle_Radius"]

Radius des auf den Referenzkreis bezogenen größten Innenkreises.

.["Circumscribed_Circle"]

Der auf den Referenzkreis bezogene kleinste Außenkreis.

.["Circumscribed_Circle_Radius"]

Radius des auf den Referenzkreis bezogenen kleinsten Außenkreises.

.["Roundness"]

Rundheitsabweichung als Differenz der Radien des Außen- und Innenkreises.

.["Roundness_Max_to_Ref"]

Spitze-zu-Referenz Rundheitsabweichung.

.["Roundness_Ref_to_Min"]

Referenz-zu-Tal Rundheitsabweichung.

.["Roundness_Quadratic_Mean"]

Quadratischer Mittelwert der Abweichungen der Datenpunkte zum Referenzkreis.

Sie können auch stets die Syntax Formel.Listenelementname verwenden.

Hinweis        Die LSCI-Rundheitsberechnungen orientieren sich an der aktuell gültigen Norm zur Rundheitsbestimmung, siehe [5].

Verfügbarkeit

FlexPro Professional, Developer Suite

Beispiele

LeastSquaresCircle(y, x)

Berechnet den LSCI-Kreis (Referenzkreis der kleinsten Abweichungsquadrate) einer Punktemenge.

LeastSquaresCircle(y, x, LSCI_OUTPUT_ROUNDNESS)

Berechnet den Least-Squares Kreis einer Punktemenge und gibt nur die Rundheit zurück.

LeastSquaresCircle(points, LSCI_OUTPUT_MIDDLE_CIRCLE_RADIUS + LSCI_OUTPUT_ROUNDNESS)

Berechnet den Least-Squares Kreis einer Punktemenge. Als Ergebnis wird der Radius des Referenzkreises und die Rundheit als Liste ausgegeben.

Dim alpha = Series(0, 2*PI, 0.05)
Dim r = 11.5 + Noise(1 # NumberOfRows(alpha), NOISE_NORMAL)
Dim points = Signal(Noise(1) + r*Sin(alpha), Noise(1) + r*Cos(alpha))
List("Points", points, "Least-Squares Circle", LeastSquaresCircle(points))

Berechnet den Least-Squares Kreis von zufällig verteilten Punkten in der zweidimensionalen Ebene.

Siehe auch

MaximumInscribedCircle-Funktion

MinimumCircumscribedCircle-Funktion

MinimumZoneCircle-Funktion

GaussianFilter-Funktion

NonLinCurveFit-Funktion

Approximation-Funktion

Analyseobjekt Kreisapproximation

Literatur

[1] I. Kasa: A curve fitting procedure and its error analysis. In: IEEE Trans. Inst. Meas., Vol. 25, Pages 8-14. http://ieeexplore.ieee.org/document/6312298/,1976.

[2] L.D. Coope: Circle fitting by linear and nonlinear least squares. In: Journal of Optimization Theory and Applications, Vol. 76, Issue 2, Pages 381-388. https://link.springer.com/article/10.1007/BF00939613,1993.

[3] V. Pratt: Direct least-squares fitting of algebraic surfaces. In: Computer Graphics, Vol. 21, Pages 145-152. https://dl.acm.org/citation.cfm?id=37420,1987.

[4] A. Al-Sharadqah and N. Chernov: Error Analysis for circle fitting algorithms. In: Electron. J. Statist., Vol. 3, Pages 886-911. https://projecteuclid.org/euclid.ejs/1251119958,2009.

[5] DIN Deutsches Institut für Normung e.V.: Part 1: Vocabulary and parameters of roundness (ISO 12181-1:2011); English translation of DIN EN ISO 12181-1:2011. In: Geometrical product specifications (GPS)- Roundness. 2011.

Artikel teilen oder als Email versenden:

Diese Beiträge könnten Sie ebenfalls interessieren