Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   
Bücher:

Fachkräfte:
Entwicklungsingenieur (m/w) für modellbasierte Softwareentwicklung
Modellbasierte Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Softwareentwickler (m/w) für automatische Codegenerierung
Softwareentwicklung mit MATLAB/Simulink und dSPACE TargetLink im Bereich Fahrwerkregelsysteme
Elektronische Fahrwerksysteme GmbH - Ingolstadt

Applikationsingenieur (w/m) Testsysteme HIL-Simulation
Projektierung von Hardware-in-the-Loop-Systemen (Hardware und Software) in Kundenprojekten
dSPACE GmbH - Paderborn

Ingenieure (m/w) Funktionsentwicklung für Automatisiertes Fahren
Entwicklung von Software Funktionskomponenten für assistierte und automatisierte Fahrfunktionen
Continental AG - Frankfurt

Hardware Entwickler (m/w)
Bestückung, Inbetriebnahme, Planung und Durchführung von Tests
Innoventis GmbH - Würzburg

weitere Angebote

Partner:


Vermarktungspartner


Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Schwerpunkt einer Fläche bestimmen

 

Michel
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 09:39     Titel: Schwerpunkt einer Fläche bestimmen
  Antworten mit Zitat      
Hallo,

ich komme leider wieder ins stocken...
Über einen Tipp für mein kleines Problem würde ich mich daher sehr freuen!

Ich habe eine Punktwolke, die eine halbwegs eliptische Fläche beschreibt. Aus dieser Punktwolke möchte ich den Schwerpunkt bestimnmen. Die Verteilung der Punkte ist aber inhomogen.

Mit convhull, bestimme ich die außenliegenden Punkte, wie ich aus diesen Indizes auf einen Schwerpunkt der Fläche komme.
Darüber kann ich ein Polygon bilden.
Nur komme ich leider nicht auf den Schwerpunkt.

Hat jemand zufällig einen Tipp für mich?

Herzlichen Dank!
Private Nachricht senden Benutzer-Profile anzeigen


MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.10.2012, 12:02     Titel:
  Antworten mit Zitat      
Hallo,

der Schwerpunkt eines Polygons lässt sich sehr einfach berechnen. Man addiere alle Ortsvektoren zu den Punkten und teile die Komponenten durch die Anzahl der Punkte.

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

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 12:51     Titel:
  Antworten mit Zitat      
Sehr gute Idee.

Vielen Dank!
Private Nachricht senden Benutzer-Profile anzeigen
 
Michel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 12:59     Titel:
  Antworten mit Zitat      
Gibt es dazu noch weitere Voraussetzungen? Wenn ich mehrere Punkte konzentriert in einer Ecke habe, ist das Ergebnis ja ein anderes, als bei einer homogenen Verteilung, obwohl die Fläche gleich bleibt.

Zuletzt bearbeitet von Michel am 09.10.2012, 13:08, insgesamt einmal bearbeitet
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.10.2012, 13:05     Titel:
  Antworten mit Zitat      
Wenn du den "normalen" Schwerpunkt berechnen willst, gibt es keine weiteren Bedingungen. Der Schwerpunkt liegt dann eben da, wo der Schwerpunkt liegt. Diese Tautologie soll nur ausdrücken, dass die Lage natürlich systemabhängig ist. Eine Konzentration von Punkten in einem lokalen Bereich führt dann auch natürlich zu einer Verlagerung des Schwerpunktes in Richtung dieses Bereiches.

Abgesehen davon kann man Teilmengen der Punktwolke höher gewichten, wenn man eine inhomogene Verteilung zugrunde legen möchte. Ist das gewollt?
Private Nachricht senden Benutzer-Profile anzeigen
 
Michel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 13:12     Titel:
  Antworten mit Zitat      
Ich habe mich leider etwas missverständlich ausgedrückt:

Die Punktwolke beschreibt eine Fläche. Von dieser (homogenen) Fläche möchte ich den Schwerpunkt wissen. Unabhängig davon wo eine hohe Konzentration an Punkten den Umriss der Fläche beschreibt. Daher auch die Umrandung über convexhull.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.10.2012, 13:15     Titel:
  Antworten mit Zitat      
Dann würde ich eine (approximierende?!) Funktionsgleichung aufstellen und den Schwerpunkt über Integrale berechnen.

Es ist ja dann eher die Frage, bei deinem Ansatz, wie gut gleichverteilt die Punkte auf der konvexen Hülle liegen...
Private Nachricht senden Benutzer-Profile anzeigen
 
Michel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 13:41     Titel:
  Antworten mit Zitat      
Die liegen leider sehr ungleichmäßig verteilt. (ca. 50% auf 1/4 der Umrandung)
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.10.2012, 13:48     Titel:
  Antworten mit Zitat      
Das klingt nicht gut, bzw. bedarf dann eines Approximationsansatzes:

http://www.google.de/url?sa=t&r.....n2eGlkc5gCx0g&cad=rja

Im Paper befinden sich Infos über 2D und 3D sowie Mittelpunktsberechnungen.
Private Nachricht senden Benutzer-Profile anzeigen
 
Michel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 09.10.2012, 14:17     Titel:
  Antworten mit Zitat      
Vielen Dank dafür, ich denke dann werde ich die Formel aus Wikipedia umsetzen:

http://de.wikipedia.org/wiki/Geometrischer_Schwerpunkt

Als Beispiel nehme ich ein Quadrat mit der Fläche 1. Und möchte den Schwerpunk xs berechnen.

Code:

X=[0,1,1,0]
Y=[0,0,1,1]
[m,n] = size (X)
A = polyarea(X,Y)


for i=1:n

    xs= 1/6*A*((X+X(i))*(X*Y(i+1)- X(i+1)*Y))

end

 


gibt es noch einen Trick, dass ich auch wirklich die richtige Summe bilde?
1/2 bekomme ich leider nicht raus.
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 09.10.2012, 14:38     Titel:
  Antworten mit Zitat      
Der Ansatz ist schick, aber wie soll man damit die Unregelmäßigkeit kompensieren?
Private Nachricht senden Benutzer-Profile anzeigen
 
Michel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.10.2012, 08:42     Titel:
  Antworten mit Zitat      
Laut Wikipedia müsste die Formel eigentlich funktionieren.
"für...unregelmäßigen Polygons mit N Eckpunkten "


Leider habe ich sie unter MATlab aber falsch umgesetzt und finde den Fehler nicht.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 10.481
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 10.10.2012, 15:09     Titel:
  Antworten mit Zitat      
Hallo Michel,

In Deiner Implementierung wird der Wert von "xs" in jeder Iteration überschrieben. Deshalb hat "xs" zum Schluss den Wert der letzten Iteration, also für "i == n".

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
MaFam
Forum-Meister

Forum-Meister


Beiträge: 799
Anmeldedatum: 02.05.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 10.10.2012, 19:48     Titel:
  Antworten mit Zitat      
Code:

clc
format long

n=2;

% Ellipse ersellen
t=[0:0.06:(2*pi)^(1/n)];
x=[2*cos(t.^n)+1;sin(t.^n)+1];
% Abschluss
% x(1,end+1)=x(1,1);
% x(2,end+1)=x(2,1);

plot(x(1,:), x(2,:),'r.');
axis equal

A = polyarea(x(1,:),x(2,:));

%% xs
xs=0;

for i=1:n-1

    xs = xs + (x(1,i)+ x(1,i+1))*(x(1,i)*x(2,i+1) - x(1,i+1)*x(2,i));

end

xs=xs/(6*A)

%% ys
ys=0;

for i=1:n-1

    ys = ys + (x(2,i)+ x(2,i+1))*(x(1,i)*x(2,i+1) - x(1,i+1)*x(2,i));

end

ys=ys/(6*A)
 


Mit n lässt sich eine höhere Konzentration am Ende der Kurve erzeugen. Die Ergebnisse verwirren mich allerdings. Der Schwerpunkt liegt eindeutig bei [1,1]. Es kommt aber immer ein Wert um die [0,0] heraus. Ich sehe im Moment keinen Fehler in meinem Code.
Private Nachricht senden Benutzer-Profile anzeigen
 
Michel
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 14.09.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.10.2012, 09:04     Titel:
  Antworten mit Zitat      
Vielen Dank, das sieht sehr gut aus!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen

Gehe zu Seite 1, 2  Weiter

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
.


goMatlab ist ein Teil des goForen-Labels
goForen.de goMATLAB.de goLaTeX.de goPCB.de


 Impressum  | Nutzungsbedingungen  | Datenschutz  | Werbung/Mediadaten | Studentenversion | FAQ | goMatlab RSS Button RSS


Copyright © 2007 - 2017 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
Partner: LabVIEWforum.de

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.