im Anhang seht ihr die xyz-Koordinaten eines Schaufel-Profilschnittes.
Ich möchte jetzt herausfinden, wo bei diesem Profilschnitt das Dickenmaximum liegt.
Heißt also ich möchte jeden x-Wert durchgehen und wenn man sich eine senkrechte an diesem x-Wert vorstellt, müsste es immer zwei Schittpunkte der Profilkontur mit dieser Senkrechten geben. Ich bräuchte also diese Schnittpunkte, müsste von den Schnittpunkten die Differenz bilden und die betragsmäßig größte Differenz wäre dann mein Dickenmaximum an der Stelle x.
Bisher habe ich es nur gebacken bekommen die Datei einzulesen
danke für die Antwort und sorry für meine späte Reaktion.
Das mit dem Aufspalten verstehe ich noch nicht ganz: Du checkst ob die Differenz zweier aufeinanderfolgender x-Werte kleiner als -0,1 ist, um den oberen vom unteren Teil zu trennen. Also was der Code tut ist mir klar (obwohl ich nicht weiß was die letzte 1 bei find(diff(x) < -0.1, 1) bewirkt), aber mir fehlt irgendwie das Verständnis.
Wenn die Differenz kleiner als-0,1 ist heißt es, dass der obere Teil da endet. Warum?
das liegt an der Organisation deiner Daten. Wenn du dir die x-Werte ansiehst, dann steigen sie zunächst an (1. Teil), fallen dann rapide ab und steigen dann wieder (2. Teil).
Mir ist aber gerade aufgefallen, dass die Berechnung des Dickenmaximums ja falsch ist. Wir berechnen oben ja zu jedem x-Wert die Differenz der beiden y-Werte zu diesem x-Wert, aber das ist ja nicht das Dickenmaximum.
Für das Dickenmaximum muss man ja den Durchmesser des größten Kreises innerhalb des Profils bestimmen (siehe Anhang) und der Mittelpunkt dieses Kreises ist dann die Position des Dickenmaximums.
Sowas kriegt man mit Matlab nicht hin oder?
du bekommst mit MATLAB alles hin, was du mathematisch beschreiben kannst. Du kannst beispielsweise zu jedem oberen Punkt die minimale Distanz zu einem unteren Punkt berechnen und kommst so dem gewünschten schon sehr nahe.
da hast du sicher Recht. Wie wäre es mit diesem Ansatz.
Man führt den ersten Teil deines Codes aus, um die Kurve in einen oberen und unteren Teil zu teilen.
Dann erstellt man von der oberen und der unteren Kurve ganz viele Offsetkurven, so dass sich diese (wie im Anhang) schneiden. Und der größte Offset ist dann die Position der maximalen Dicke.
Könnte man so vorgehen und wenn ja, wie könnte man das in Matlab umsetzen?
Viele Grüße
der Ansatz mit den Offsetkurven ist m.E. deutlich schwieriger umzusetzen als mein Vorschlag, da die Verschiebung ja in die "richtige" Richtung erfolgen muss. Nur, was ist die richtige Richtung?
Also:
Zitat:
zu jedem oberen Punkt die minimale Distanz zu einem unteren Punkt berechnen
Ja das ist auch wahr. Nur leider gucken wir uns bei der Differenz die rote Gerade im Anhang an, allerdings interessiert mich (näherungsweise) die grüne Gerade.
Aber da ist wieder das Problem, dass ich nicht weiß, welchen Winkel diese grüne Gerade hat...
Ich plotte übrigens die z- und y-Koordinaten (plot(z,y)).
Wenn man das Profil noch irgendwie drehen könnte, dass die untere Kurve ungefähr waagerecht ist, würde das mit der Differenz funktionieren.
Vielleicht die Skizze so drehen, dass zwei Punkte vorne und hinten am Profil die gleiche Höhe (also die gleiche y-Koordinate) haben? dann wär das Profil ja annähernd gerade.
Der Abstand zwischen zwei Punkten sollte ja machbar sein. Dann den oberen Punkt zunächst festhalten und eine Schleife über die unteren Punkte. Dann um das ganze herum noch eine Schleife über die oberen Punkte.
Idealerweise dann noch darüber nachdenken, ob sich min. eine der Schleifen vermeiden lässt.
Aber ich bin der Meinung den Abstand so zu bilden, ist noch immer nicht das was ich suche. Ich suche ja den maximalen Abstand, und da wird er mir bei meinem Code natürlich den Abstand von dem Punkt ganz vorne zum Punkt ganz hinten ausgeben. Aber das ist ja dann nicht das gesuchte Dickenmaximum.
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
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.