|
|
Bogenlänge über die Zeit von einer Messreihe bestimmen |
|
doehr |

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 03.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 00:33
Titel: Bogenlänge über die Zeit von einer Messreihe bestimmen
|
 |
Hallo zusammen,
ich bin ein absoluter Neuling mit Matlab und habe auch gleich eine für mich schier unlösbare Aufgabe. Ich habe eine Messreihe aufgenommen, die eine Oberfläche über die Zeit aufnimmt. Während der Aufnahme wird die Oberfläche deformiert. Ich bekomme also entlang der x-Achse (Oberfläche im Profil) jeweils die y-Position der Oberfläche und das ganze über insgesamt 140 frames pro Aufnahme. Ich möchte nun die Bogenlänge der Oberfläche pro Frame bestimmen. Problem hierbei ist, dass am Anfang die Oberfläche eine Parabel ist und ab einem bestimmten Zeitpunkt die Oberfläche aber einer Polynomfunktion 4. Grades folgt. Aus diesem Grund kann ich das Ganze auch nicht mehr in Excel machen, da meine Integrationsfähigkeiten schon bei der Quadratischen Funktion fast am Ende waren.
Kann mir dazu jemand helfen?
Vielen Dank schon mal.
|
|
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 17:51
Titel:
|
 |
Hallo,
ist so schwierig vorstellbar - insbesondere wie bei einer Oberfläche eine Bogenlänge bestimmt werden soll. Grundsätzlich würde ich Messreihen mit
trapz
integrieren.
Grüße,
Harald
|
|
|
doehr |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 03.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 18:06
Titel:
|
 |
Hallo Harald,
vielen Dank für deine Antwort. Die Oberfläche wird im Profil erfasst also immer nur ein kleiner horizontaler Bereich der gesamten Oberfläche.
Die Matrix der Messreihe sieht dann so aus
t x -4mm -3mm -2mm -1mm 0mm 1mm 2mm 3mm 4mm
0ms und hier werden die y-
1ms Werte an jedem x über die
2ms Zeit aufgenommen
3ms
Was ich jetzt ausrechnen möchte, ist die Bogenlänge zu jedem Zeitpunkt.
Ich habe es jetzt schon über die Fkt cumtrapz versucht, aber es funktioniert leider nicht. Dies liegt glaub ich daran, dass ich die Tabellen nicht richtig hinbekomme. Hast du mit der Funktion und so einer Matrix eine Idee?
Vielen Dank für deine Hilfe!
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 18:10
Titel:
|
 |
Hallo,
dann zeig doch bitte mal, was du versucht hast und welche Probleme dabei genau aufgetreten sind - am besten anhand von Beispieldaten und mit erwarteten Ergebnissen.
Grüße,
Harald
|
|
|
doehr |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 03.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 18:22
Titel:
|
 |
Ich habe folgendes Versucht:
Hier bekomme ich die Fehlermeldung:
>> createFit Error using cumtrapz (line 71) LENGTH(X) must equal the length of Y in dim 2.
Error in createFit (line cum_arclength = cumtrapz(z, ds);
Problem zusätzlich ist noch, dass ich es mit der Lösung für jeden Zeitpunkt per Hand ausrechnen müsste.
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 18:25
Titel:
|
 |
Hallo,
im Workspace kannst du die Dimensionen der Variablen sehen und damit auch, wieso es zu der Fehlermeldung kommt. Wenn du Daten zur Verfügung stellst, kann man sich das auch anschauen.
Und wenn du ohnehin nur das letzte Ergebnis von cumtrapz brauchst, kannst du auch gleich trapz verwenden.
Grüße,
Harald
|
|
|
doehr |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 03.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 18:32
Titel:
|
 |
Vielen Dank für deine Hilfe! Im Anhang findest du die Datei.
Beschreibung: |
|
 Download |
Dateiname: |
Bogenlaenge.m |
Dateigröße: |
469 Bytes |
Heruntergeladen: |
420 mal |
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 19:39
Titel:
|
 |
Hallo,
sei mir nicht böse, aber was soll ich denn jetzt bitte mit der Datei? Was x, y, z sind, weiß ich jetzt genauso wenig wie vorher.
Grüße,
Harald
|
|
|
doehr |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 03.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 19:54
Titel:
|
 |
Entschuldige, Ich habe gerade erst gesehen, dass die Datei nicht mit dran hängt. Kannst du sie öffnen?
Beschreibung: |
|
 Download |
Dateiname: |
bogenlaenge.mat |
Dateigröße: |
578.45 KB |
Heruntergeladen: |
421 mal |
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 20:06
Titel:
|
 |
Hallo,
wie gesagt, schau dir die Dimensionen an. z sind 140 Werte, ds sind 572 - das kann nicht zusammenpassen.
Die entscheidende Frage ist auch: willst du einen Pfad entlang der Zeit integrieren? Falls z die Zeit ist, müsstest du zu jedem z-Wert x- und y-Werte liefern.
Oder willst du (so habe ich es verstanden) für jeden z-Wert entlang x integrieren? Dann müsste das z im cumtrapz-Befehl ein x sein.
Grüße,
Harald
|
|
|
doehr |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 03.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 20:31
Titel:
|
 |
Hallo,
vielen Dank für deine Antwoet. Die Länge 140 bezieht sich auf die Zeitachse und 572 auf die x-Achse. Die Zeit besteht insgesamt aus 140 Frames bei der jeweils die y-Position der Oberfläche entlang des Profils (572 Teilstücke) aufgezeichnet wurde.
Die x-Werte sind somit immer die selben. Die y Werte sind Variable.
Ich möchte so wie du sagst für jeden Zeit-Wert entlang x-integrieren und am ende die Bogenlänge pro Zeitpunkt rausbekommen. Das funktioniert nun auch, ich in cumtrapz das x einsetzte.
Wie kann ich es nun hinbekommen nicht für jeden Zeitpunkt das ganze per Hand reinzukopieren, sondern das gleich die gesamten y-Reihen analysiert werden?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 20:47
Titel:
|
 |
Hallo,
mit einer for-Schleife
Grüße,
Harald
|
|
|
doehr |
Themenstarter

Forum-Anfänger
|
 |
Beiträge: 12
|
 |
|
 |
Anmeldedatum: 03.10.15
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 03.10.2015, 21:19
Titel:
|
 |
Prima, vielen lieben Dank! Funktioniert einwandfrei! Ganz lieben Dank nochmal für die Hilfe.
|
|
|
|
|
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 - 2025
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.
|
|