|
|
Interpolation / Approximation von Messdaten |
|
kyoto |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.03.2013, 14:15
Titel: Interpolation / Approximation von Messdaten
|
|
Hallo zusammen,
arbeite mich gerade in Matlab ein und stehe vor folgendem Problem. Ich habe eine Reihe von Messpunkten (X,Y,Z) entlang eines Kurvenverlaufs aufgenommen. Diese Messpunkte möchte ich gerne über eine Spline-Interpolation oder -Approximation (Best-Fit) abbilden. Wenn möglich würde ich mir gerne anschließend noch alle x,y und z-Werte entlange des Splines ausgeben lassen und die Krümmung der Kurve bestimmen.
Wäre klasse wenn ihr mir bei der Lösung des Problems helfen könntet.
Gruß Kyoto
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 12.03.2013, 14:43
Titel:
|
|
Es gibt sowohl in MATLAB als auch der Cirve Fitting Toolbox Spline Funktionalitäten. Gibts da spezielle Fragen oder Probleme oder geht es um den Start?
Andreas
|
|
|
kyoto |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.03.2013, 15:14
Titel:
|
|
|
|
|
Es geht eher um den "Start", sprich das finden einer geeingeten Matlab Funktion zur Interpolation der Raumkurve und wie ich anschließend an die x,y,z-Werte komme.
Ich hatte mich schon versucht in einigen Foren und der Matlabhilfe schlau zu machen, bin dabei allerdings immer wieder auf das Problem gestoßen, dass die Interpolation von Datenpunkten immer nur für den ebenen, zweidimensionalen Fall beschrieben steht.
Ich hatte es bereits geschafft mit der Matlab Funktion "cscvn" eine parametrische kubische Spline-Interpolation der Raumkurve durchzuführen, allerdings kann ich nicht so recht nachvollziehen, was die Funktion macht. Zudem sieht es in der grafischen Darstellung so aus, als würde eine stückweise lineare Interpolation durchgeführt.
Ich habe die Messdaten und die Visualisierung der Messdaten in den Anhang gelegt, damit man sieht wo ich mit welchen Daten hin will.
Beschreibung: |
|
Download |
Dateiname: |
Messdaten.zip |
Dateigröße: |
23.85 KB |
Heruntergeladen: |
681 mal |
Beschreibung: |
|
Download |
Dateiname: |
Interpolation.jpg |
Dateigröße: |
66.15 KB |
Heruntergeladen: |
1558 mal |
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 12.03.2013, 16:02
Titel:
|
|
|
|
kyoto |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 12.03.2013, 16:16
Titel:
|
|
danke für die schnelle Antwort, aber dieses Beispiel haben ich mir bereits schon angeschaut und durchgespielt. Wie beschrieben, sieht die grafischen darstellung wie eine stückweise lineare Interpolation aus. Kann aber auch täuschen. Kannst du mir denn Sagen ob und wenn ja wie ich mit diesem Interpolationsverfahren die x-,y- und z-Werte entlange des Kurvenverlaufs auslesen kann?
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 13.03.2013, 08:27
Titel:
|
|
Nee, ist nicht so mein Thema. Wenn hier keine Mathematiker die Info geben (vielleicht die Anfrage hier umformuliert neu stellen, weil längere Threads nicht so angeschaut werden), dann mal an den Support wenden.
Andreas
|
|
|
MaFam |
Forum-Meister
|
|
Beiträge: 799
|
|
|
|
Anmeldedatum: 02.05.12
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2009b
|
|
|
|
|
|
Verfasst am: 14.03.2013, 09:32
Titel:
|
|
Hallo,
besteht die Frage noch?
Grüße, Marc
|
|
|
kyoto |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 17.03.2013, 12:54
Titel:
|
|
Entschuldige die späte Antwort, war die letzten Tage nicht im Lande.
Ja, dass Problem besteht weiterhin. Wenn du mir helfen könntest wäre ich sehr dankbar.
Gruß
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 18.03.2013, 10:37
Titel: Re: Interpolation / Approximation von Messdaten
|
|
Hallo kyoto,
Dann erkläre Dein Probleme bitte nochmal genauer.
Du kannst nicht "alle x,y und z-Werte entlange des Splines" ausgeben lassen, weil es unednlich viele davon gibt.
Möchtest Du wirklich ein Spline-Fit? Der neigt zu Überschwingen, so dass es je nach Aufgabenstellung ungeeignet sein kann. Bitte erkläre, wofür Du den Fit genau benötigst. Soll die Kurve durch alle Punkte gehen, oder möglichst glatt im least-squares-Sinn an den Punkten vorbei gehen?
Gruß, Jan
|
|
|
kyoto |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 12.03.13
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 18.03.2013, 14:54
Titel:
|
|
|
|
|
Zur Problemstellung:
Ich habe taktil eine Reihe von Messpunkten entlang des Bogenverlaufs eines Biegebauteils aufgenommen. Die Messpunkten sind entlang des Bogens nicht in einem konstantem Abstand aufgenommen worden. Somit gibt es Bogenabschnitt wo die aufeinanderfolgenden Punktdichte mal höher und mal niedriger ist. Dies ist der EXCEL-Datei mit den aufgenommenen Messpunkten auch zu entnehmen.
Da die Messdaten immer Messfehler mit sich bringen, soll die Kurve nicht durch alle Punkten hindurch gehen, sondern möglichst glatt an den Punkten vorbei laufen, sprich möglichst gut angenähert werden.
Anschließend möchte ich den Krümmungsverlauf dieser Kurve bestimmen. Dies wollte ich über die allgemeine Gleichung für die Krümmung k machen:
k= f'' / [(1+f'^2)^(3/2)]
Die Ableitungen wollte ich mit Hilfe der numerischen Differentiation durchführen. Dazu brauche ich eine Vielzahl von Koordinatenpunkten entlang des Kurvenverlauf.
Ich hoffe es ist nun etwas klarer, was ich vor habe.
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 18.03.2013, 17:39
Titel:
|
|
|
|
|
Hallo kyoto,
Die physikalische Bedeutung der Werte ist für die Implementierung nicht von belang. Wichtiger ist die Anzahl und Typ der Daten.
Zitat: |
Da die Messdaten immer Messfehler mit sich bringen, soll die Kurve nicht durch alle Punkten hindurch gehen, sondern möglichst glatt an den Punkten vorbei laufen, sprich möglichst gut angenähert werden. |
Das ist nicht genau genug: Du kannst eine möglichst gute Ausgleichsgerade durch die Punkte legen, oder ein Polynom von Grad 3 durch jeweils 4, 5, 6, oder auch 17 benachbarte Punkte. Du kannst dann noch bestimmte Anschluß-Kriterien zwischen benachbarten Polynomen definieren (damit wärst du wieder beim Spline), aber auch ein BSpline ist möglich, oder ein trigonometrisches Polynom oder eines in e^x.
Du musst also zuerst festlegen, welche Funktion Du an die Messdaten fitten möchtest, bevor Du daran gehen kannst nach den Parametern zu suchen. Dabei gibt es einige Tücken: Ein Polynom von niedrigem Grad wird sich nicht nah an die Punkte biegen lassen, aber eines von zu hohem Grad schwingt an den Randpunkten wild durch die Gegend. Bei stückchenweisen Funktionen musst Du entscheiden, ob Du jeweils n Punkte nehmen möchtest, oder alle Punkt innerhalb eines gewissen Abstandes (entlang einer Kurve, die Du noch nicht hast!).
Man kann also nicht einfach eine "beste" Kurve wählen, die zu beliebigen Punkten passt. Man muss zunächst die analystische Representation der Kurve wählen und kann danach die Parameter anpassen. Beispiel: Die Punkte, die in 3D auf einer Geraden, einem Kreis, einer Fläche oder einer Sinuskurve liegen, lassen sich nicht effizient mit den gleichen Funktionen approximieren. Das ist irgendwie anschaulich, oder?
Wenn Du ein Polynom verwendest, ist der Krümmungsverlauf einfach bestimmbar ohne numerische Differentiation. Hier zunächst möglichst viele datenpunkte zu erzeugen wäre reine Zeitverschwendung.
Gruß, Jan
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|