MinimumZoneCircle (FPScript)

21.09.2021

Berechnet die Referenzkreise der minimalen Zone (MZCI) einer zweidimensionalen Punktemenge. Wird verwendet zur Rundheitsbestimmung.

Syntax

MinimumZoneCircle(Points, [ OutputOptions = MZCI_OUTPUT_INSCRIBED_CIRCLE + MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ], [ Iterations ] [ , StepWidth ])
oder
MinimumZoneCircle(Y, X, [ OutputOptions = MZCI_OUTPUT_INSCRIBED_CIRCLE + MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE ], [ CircleSize = 5000 ], [ Iterations ] [ , StepWidth ])

 

Die Syntax der MinimumZoneCircle-Funktion besteht aus folgenden Teilen:

Teil

Beschreibung

Points

Die Y- und X-Punktemenge, für die die konzentrischen Referenzkreise der minimalen Zone berechnet werden sollen. 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 der konzentrischen Referenzkreise der minimalen Zone 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 der konzentrischen Referenzkreise der minimalen Zone 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 arithmetischen Mittelkreises und die Rundheit ausgegeben werden sollen, so muss das Argument den Wert MZCI_OUTPUT_MIDDLE_CIRCLE_RADIUS + MZCI_OUTPUT_ROUNDNESS enthalten.

Das Argument OutputOptions kann folgende Werte haben:

Konstante

Bedeutung

+ MZCI_OUTPUT_ALL

Alle verfügbaren Ausgaben.

+ MZCI_OUTPUT_CENTER_X

X-Koordinate der konzentrischen Referenzkreise. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ MZCI_OUTPUT_CENTER_Y

Y-Koordinate der konzentrischen Referenzkreise. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ MZCI_OUTPUT_MIDDLE_CIRCLE

Der arithmetisch gemittelte Mittelkreis zwischen den konzentrischen Referenzkreisen, d.h. dem kleinsten Außenkreis und dem größten Innenkreis. Das Ergebnis ist ein Signal.

+ MZCI_OUTPUT_MIDDLE_CIRCLE_RADIUS

Radius des arithmetisch gemittelten Mittelkreises. Das Ergebnis ist ein 64-Bit-Fließkommawert.

+ MZCI_OUTPUT_INSCRIBED_CIRCLE

Der berechnete Innenkreis (Referenzkreis). Das Kreiszentrum des Innenkreises stimmt mit dem Kreiszentrum des Außenkreises (zweiter Referenzkreis) überein. Das Ergebnis ist ein Signal.

+ MZCI_OUTPUT_INSCRIBED_CIRCLE_RADIUS

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

+ MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE

Der berechnete Außenkreis (Referenzkreis). Das Kreiszentrum des Innenkreises stimmt mit dem Kreiszentrum des Innenkreises (zweiter Referenzkreis) überein. Das Ergebnis ist ein Signal.

+ MZCI_OUTPUT_CIRCUMSCRIBED_CIRCLE_RADIUS

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

+ MZCI_OUTPUT_ROUNDNESS

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

Wenn das Argument nicht angegeben wird, wird es auf den Vorgabewert MZCI_OUTPUT_INSCRIBED_CIRCLE + MZCI_OUTPUT_CIRCUMSCRIBED_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.

Iterations

Anzahl der Iterationen zur Berechnung der konzentrischen Referenzkreise mit der kleinstmögliche Radiendifferenz, d.h. der kleinstmöglichen Rundheitsabweichung. Wenn Sie das Argument weglassen, so wird die Anzahl der Iterationen auf einen automatischen Wert gesetzt (abhängig von der Größe der Eingangsdatensätze). Je größer die Anzahl der Iterationen, desto exakter ist das Ergebnis (aber desto länger dauert die Berechnung).

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

Der Wert muss größer gleich 1 sein.

StepWidth

Schrittweite für die iterative Berechnung der konzentrischen Referenzkreise mit der kleinstmöglichen Radiendifferenz, d.h. der kleinstmöglichen Rundheitsabweichung. Wenn Sie das Argument weglassen, so wird die Schrittweite auf einen automatischen Wert gesetzt (abhängig von den Eingangsdatensätzen).

Erlaubte Datenstrukturen sind Einzelwert. Unterstützte Datentypen sind 64-Bit Fließkomma.

Der Wert muss größer 0 sein.

Anmerkungen

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

Die konzentrischen Referenzkreise der minimalen Zone (MZCI) werden im ersten Iterationsschritt durch die durch den Least-Squares Circle (LSCI) berechneten Innen- und Außenkreise geschätzt. Anschließend wird das Ergebnis iterativ verbessert. Um den Mittelpunkt der aktuellen konzentrischen Innen- und Außenkreise wird dazu mit Hilfe einer zweidimensionalen Normalverteilung (Standardabweichung entspricht dem Argument StepWidth) ein neuer Punkt zufällig ausgewählt. Es wird geprüft, ob die auf den neuen Punkt neu berechneten konzentrischen Innen- und Außenkreise eine geringere Radiendifferenz als zuvor aufweisen. Falls ja, wird der Punkt zum neuen Mittelpunkt. Das Verfahren wird iterativ gemäß dem Wert des Arguments Iterations N-mal wiederholt. Das iterative Verfahren konvergiert gegen die konzentrischen Referenzkreise mit der kleinstmögliche Radiendifferenz, d.h. gegen die Referenzkreise der minimalen Zone. Je größer die Anzahl der Iterationen, desto exakter ist das Ergebnis. Beim Algorithmus handelt es sich also um ein Monte-Carlo Verfahren.

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 der konzentrischen Referenzkreise.

.["Center_Y"]

Y-Koordinate des Kreiszentrums der konzentrischen Referenzkreise.

.["Middle_Circle"]

Arithmetisch gemittelter Mittelkreis zwischen den konzentrischen Referenzkreisen.

.["Middle_Circle_Radius"]

Radius des arithmetisch gemittelten Mittelkreises der Referenzkreise.

.["Inscribed_Circle"]

Der Innenkreis (Referenzkreis).

.["Inscribed_Circle_Radius"]

Radius des Innenkreises.

.["Circumscribed_Circle"]

Der Außenkreis (Referenzkreis).

.["Circumscribed_Circle_Radius"]

Radius des Außenkreises.

.["Roundness"]

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

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

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

Verfügbarkeit

FlexPro Professional, Developer Suite

Beispiele

MinimumZoneCircle(y, x)

Berechnet die MZCI-Referenzkreise einer Punktemenge.

MinimumZoneCircle(y, x, MZCI_OUTPUT_ROUNDNESS)

Berechnet die MZCI-Kreise einer Punktemenge und gibt nur die Rundheit zurück.

MinimumZoneCircle(points, MZCI_OUTPUT_MIDDLE_CIRCLE_RADIUS + MZCI_OUTPUT_ROUNDNESS)

Berechnet die MZCI-Kreise einer Punktemenge. Als Ergebnis wird der Radius des Mittelkreises 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, "Minimum Zone Circle", MinimumZoneCircle(points))

Berechnet die MZCI-Kreise von zufällig verteilten Punkten in der zweidimensionalen Ebene.

Siehe auch

LeastSquaresCircle-Funktion

MaximumInscribedCircle-Funktion

MinimumCircumscribedCircle-Funktion

GaussianFilter-Funktion

NonLinCurveFit-Funktion

Approximation-Funktion

Analyseobjekt Kreisapproximation

Literatur

[1] 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