|
Foray_07 |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 24.06.13
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 24.06.2013, 11:06
Titel:
|
 |
|
 |
|
Hallo Funkyspike und Jan S,
ich habe mich nun auch entschlossen, mich hier anzumelden und auszutauschen, da ich momentan ein ähnliches Thema bearbeite und dabei auch über kleine Probleme stolpere...
Meine Aufgabe besteht darin, abgefahrene Formen auszuwerten, bisher nur 2-dimensional, aber es soll noch auf 3-dimensional erweitert werden. D.h. ich taste meine aktuellen Positionssoll- und -istwerte ab. Hierbei ist wichtig, dass die Istposition zur Sollposition voreilen, nacheilen oder zeitlich gleich sein kann. Ich kann somit nicht Istposition-Matrix mit x und y-Werten an Abtatstzeitpunkt/Index 1 mit Sollposition-Matrix mit Abtatstzeitpunkt/Index 1 nehmen, sondern muss dies zuerst prüfen.
Daher mein Ablauf wie folgt, habe auch einen Screenshot zum Ablauf angehängt:
1. Euklidischer Abstand von Soll- zu Istpunkten bestimmen. Damit zu jedem Sollpunkt einen Istpunkt, mit minimalem euklidischem Abstand gefunden.
2. Ich berechne meine Abweichung immer mit einer Normalen (Steigung m_Normale), die am betrachteten Sollpunkt ansetzt. Diese Normale bestimme ich aus der Steigung des vorangegangenen Sollpunktes und des betrachteten Sollpunktes (Steigung m). => m_Normale=-1/m
3. Ich bestimme mir den Vektor von betrachteten Sollpunkt zu vorangegangenen Sollpunkt (Vektor_Soll) und den Vektor von betrachteten Sollpunkt zu Istpunkt mit geringstem Euklidischen Abstand (Vektor_Min_Punkt). Daraus berechne ich mir den Schnittwinkel alpha über alpha = arccosinus((Vektor_Soll*Vektor_Min_Punkt)/(Betrag(Vektor_Soll)*Betrag(Vektor_Min_Punkt)))
4. Nun unterscheide ich, ober der Schnittwinkel alpha groesser, kleiner oder gleich 90 Grad ist. Ist er gleich 90 Grad, kann ich den Schnittpunkt mit dem Istverlauf berechnen. Ist er kleiner 90 Grad, muss ich den Index erhöhen und den nächsten Istpunkt der Matrix abfragen, Vektor_Min_Punkt zu diesem Punkt neu berechnen und den Schnittwinkel neu berechnen und Werte wieder aus, bis ich einen Istpunkt mit Schnittwinkel groessergleich 90 Grad gefunden habe Dann kann ich zu Geradenstück Istpunkt und vorigem Istpunkt einen Schnittpunkt mit der normalen berechnen. Ist der Schnittwinkel groesser muss ich den Index erniedrigen und Schnittwinkel berechnen, solang bis ich einen Winkel kleinergleich 90 Grad finde. Dann kann ich den Schnittpunkt aus Normalen und Istgeraden berechnen.
5. Über Vektormathematik berechne ich mir die Abweichung in der Position über betrachteten Sollpunkt zu Berechnetem Schnittpunkt auf der Istgeraden.
Das funktioniert soweit. Nur bin ich durch die Normale richtungsabhängig. Hättet ihr mir einen Tipp, wie ich diese Positionsabweichung noch berechnen könnte? Es ist auch so, dass z.B. Steigung der Sollpositionen 0 oder nicht definiert, ich mir keine Normale bilden kann und damit auch keine Positionsabweichung bekomme.
Auch hätte ich eine Frage, ob es möglich wäre , den oben genannten Algorithmus auf 3-dimensional zu erweitern? Oder habt ihr einen Vorschlag, wie die Positionsabweichung zu berechnen einfacher ginge, im 2-dimensionalen oder 3-dimensionalen?
Vielen Dank für Eure konstruktiven Beiträge auf meine Antwort und ich hoffe, die bisherigen Diskussionsteilnehmer können mit meinem Ablauf eventuell weiterkommen bzw. er ist für sie nützlich.
Viele Grüße!
Foray_07
Beschreibung: |
|
 Download |
Dateiname: |
Erklärung.png |
Dateigröße: |
33.7 KB |
Heruntergeladen: |
325 mal |
|
|
|
Gesplittet: 24.06.2013, 13:14 Uhr von Jan S Von Beitrag Abstand zwischen zwei Kurven berechnen aus dem Forum Programmierung |
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 24.06.2013, 13:26
Titel:
|
 |
Hallo Foray_07,
Bitte poste eine neue Frage immer in einem neuen Thread. Danke!
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 - 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.
|
|