![]() |
---|
Hallo Zusammen, ich habe einen Z-Taster an einer CNC-Anlage mit dem ich 4 "XYZ-Punkte" im Raum abtaste. Die Positionen für und sind fest definiert. Position wird jeweils ausgemessen. Mir ist bewusst, dass man zur Bestimmung einer Ebene nur 3 Punkte im Raum brauch. Ich brauche jedoch Aufgrund der Genauigkeit, die Ausgleichsebene der 4 Punkte. Ich habe hier auch schon einen Lösungsansatz gefunden, jedoch ist mir noch nicht klar, wie der genaue Rechenweg dahin aussieht? Wie genau komme ich auf die 4 neu errechneten "Z-Werte"? Die Berechnung soll später über ein AHK-Script (AutoHotkey) automatisiert werden. Für Hilfe wäre ich sehr dankbar. Ausgemessene Z-Positionen: Anhang: - Grafik zur veranschaulichung (jedoch mit verdrehtem Vorzeichen bei - Bisher gefundener Lösungsansatz Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
![]() |
![]() |
Hallo, Du bildest eine -Matrix Zahl der Messpunkte, 3: Zahl der zu bestimmenden Parameter. 1. Spalte: alle . Spalte: x-Werte, 3. Spalte: y-Werte. Dann löst Du das Gleichungssystem Z-Werte). Die Lösung enthält dann Gruß pwm |
![]() |
Hallo Oder... Ich vermute, das hätte heissen wollen: Wenn du definierst: Abweichung z_ideal - z_gemessen Fehlerquadratsumme: und die Fehlerquadratsumme minimierst, dann bekommst du drei Gleichungen für deine drei Parameter . |
![]() |
PS: Für dein Zahlenbeispiel ergibt sich: |
![]() |
Sei die gesuchte Ebenengleichung. Seien und die Vektoren mit den und Koordinaten deiner vier Punkte. Da deine und Koordinaten bereits zentriert sind und sich nicht ändern, kannst du die gesuchten Koeffizienten wie folgt errechnen: Seit Dabei soll zB für das Skalarprodukt der beiden Vektoren und stehen. Nun gilt und ist der Mittelwert der z-Werte. Zum Nachlesen zB http//www.gfai.de/%7Egoetze/links/Approxim_2_5.pdf |
![]() |
Vielen Dank für die Hilfe. Ich verstehe jetzt wie ich mit der Ebenengleichung auf meine 4 neuen Z-Werte kommen müsste. Was ich nicht verstehe ist, wie ich jetzt auf die Koeffizienten und komme? Ich bin leider nicht so fit in Mathe. Wenn ich den Beitrag von "Roman-22" nehme und versuche "D" "a" und "b" zu errechnen, frage ich mich welche und und Werte ich jetzt von all denen die mir zur Verfügung stehen nehmen soll? Könnte mir jemand zur Verdeutlichung die Gleichung mit Zahlen vom Beispiel füllen, so dass ich den genauen Rechenweg bis zum neuen Z-Wert sehen kann? Bis jetzt schon mal vielen Dank für alle Beiträge!! |
![]() |
frage ich mich welche und und Werte ich jetzt von all denen die mir zur Verfügung stehen nehmen soll? Lies den Anfang meines Beitrags nochmals durch, dort steht es! "Seien und die 4×1 Vektoren mit den x−,y− und z− Koordinaten deiner vier Punkte." UNd weiter unten steht auch noch, das zB XY für das Skalarprodukt aus den beiden Vektoren und steht. Analog natürlich XX, XZ, etc. Aber da sich bei dir die und y-Werte (also die ja nicht ändern, kann ich es dir noch ein weniger einfacher liefern. Seien bis die z-Koordinaten deiner vier Punkte und zwar genau in der Reihenfolge, in der du ursprünglich die Punkte hier angegeben hast. Also is die z-Koordinate des Punktes etc. Dann ist Das lässt sich sicher leicht in deinem Skript umsetzen und wenn du die Werte, die du hier gepostet hast, einsetzt, solltest auf das Ergebnis kommen, welches kreador schon genannt hatte, nämlich Zur Erinnerung, es geht um die Gleichung . |
![]() |
Ich hatte oben schon den Ansatz hingeschrieben: Fehlerquadratsumme: Minimieren, das heisst die partiellen Ableitungen sind Null: dF/da_0 (Hierbei ist die Anzahl an Stützpunkten. In deinem Beispielfall also dF/da_1 dF/da_2 Jetzt mache dir klar, sämtliche folgende Größen sind bekannt: . du hast ein lineares Gleichungssystem mit nur noch den unbekannten Größen und eben die drei Bestimmungsgleichungen: Wunderbar - einfach auflösen. Ich habe das mal für dich gemacht. (Aber bitte erwarte nicht, dass ich den ganzen Rechenweg hier in Tastendrücke ausführe) Nenner=n*sum x*y)/Nenner y^2)/Nenner x*z_i)/Nenner |
![]() |
Vielen Dank für die Hilfe! Das Abtasten der Oberfläche und Generieren der Ausgleichsebene klappt inzwischen über das Script. |
![]() |
EDIT |
Diese Frage wurde automatisch geschlossen, da der Fragesteller kein Interesse mehr an der Frage gezeigt hat.
|