WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Interpolation / Approximation von Messdaten

 

kyoto
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2013, 14:15     Titel: Interpolation / Approximation von Messdaten
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 12.03.2013, 14:43     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
kyoto
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2013, 15:14     Titel:
  Antworten mit Zitat      
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.

Messdaten.zip
 Beschreibung:

Download
 Dateiname:  Messdaten.zip
 Dateigröße:  23.85 KB
 Heruntergeladen:  681 mal
Interpolation.jpg
 Beschreibung:

Download
 Dateiname:  Interpolation.jpg
 Dateigröße:  66.15 KB
 Heruntergeladen:  1558 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 12.03.2013, 16:02     Titel:
  Antworten mit Zitat      
Hier ist ein 3d Beispiel: http://www.mathworks.de/de/help/cur.....-curves-in-2d-and-3d.html

Andreas
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
kyoto
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.03.2013, 16:16     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 13.03.2013, 08:27     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 14.03.2013, 09:32     Titel:
  Antworten mit Zitat      
Hallo,

besteht die Frage noch?

Grüße, Marc
Private Nachricht senden Benutzer-Profile anzeigen
 
kyoto
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 17.03.2013, 12:54     Titel:
  Antworten mit Zitat      
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ß
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.03.2013, 10:37     Titel: Re: Interpolation / Approximation von Messdaten
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
kyoto
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 12.03.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.03.2013, 14:54     Titel:
  Antworten mit Zitat      
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. Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 18.03.2013, 17:39     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.