Schwerpunktberechnung < Sonstiges < Hochschule < Mathe < Vorhilfe
|
Aufgabe | Ich habe 4 gleichmässig verteilte Sensoren. Aufgeteilt wie ein Koordinatensysten und in jedem Quadranten liegt an der selben Position ein Sensor. Jeder der Sensoren kann einen Wert von 0 - 34 annehmen. Die Sensoren sind wie folgt benannt: TopLeft, TopRight, BottomLeft und BottomRight.
Nun hätte ich gerne die korrekte mathematische Darstellung der Schwerpunktberechnung. |
In meiner Applikation habe ich die X- und Y-Position wie folgt berechnet:
1) Berechnung X-Wert
deltaX = (TopRight + BottomRight) / (TopLeft + BottomLeft)
if (deltaX > 1)
x = [((TopLeft + BottomLeft) / (TopRight + BottomRight)) * (-1)] + 1
else
x = deltaX - 1
2) Berechnung Y-Wert
deltaY = (BottomLeft + BottomRight) / (TopLeft + TopRight)
if (deltaY > 1)
y = [((TopLeft + TopRight) / (BottomLeft + BottomRight)) * (-1)] +1
else
y = deltaY - 1
Ich denke, dass diese Berechnung so stimmt, sieht bei mir in meiner entworfenen Applikation zumindest so korrekt aus ;)
Mein Problem liegt nun in der korrekten mathematischen Darstellung. Wäre klasse wenn mir da jemand helfen könnte.
Ich habe die Frage auch in einem anderen Forum gestellt, jedoch kein Matheforum und wohl deshalb dort auch keine Antwort erhalten hier.
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:08 Di 22.11.2011 | Autor: | Stoecki |
ich habe eine kurze verständnisfrage dazu:
ist es richtig, dass die sensorenstärke als ein gewicht angesehen werden soll? also an der koordinate [mm] (x_{1},y_{1}) [/mm] steht sensor nr. 1 und hat ein gewicht [mm] w_{1} \in [/mm] [0,34]. In dem falle könnte eine gewichtete konvexe linearkombination helfen.
das ginge so: sei z = summe der gewichte.
sei c der schwerpunkt. dann ist c = [mm] \sum_{i=1}^{4} \bruch{w_{i}}{z} [/mm] * [mm] (x_{i},y_{i})
[/mm]
am besten vergleichst du dein ergebnis mal hiermit. gib mal bitte bescheid ob es passt. es interessiert mich
gruß bernhard
|
|
|
|
|
Hi, danke für deine Antwort. Ja du hast vollkommen Recht, es sind Sensoren die eine Gewicht annehmen. Um es genau zu sagen, es handelt sich hierbei um das Wii Balance Board.
Ich führe jetzt mal beide Berechnungen mit folgenden Werten durch:
TopLeft = 20kg | TopRight = 10 kg
--------------------------------------------
BottomLeft = 20 kg | BottomRight = 50kg
Für meine Formeln ergibt sich dann:
dX = (TR+BR) / (TL+BL) = 60kg/40kg = 1,5
dX > 1
--> x = -((TL+BL)/(TR+BR)) + 1 = -(40/60)+1 = ~0,33
x = 0,33
dY = (BL+BR)/(TL+TR) = 70 / 30 = 2,33
dY > 1
--> y= -((TL+TR)/(BL+BR)) +1 = -(30/70) +1 = ~0,57
Für deine Rechnung nehme ich nun an, dass die Sensoren an den Punkten P1 (-1,1), P2 (1,1), P3 (1,-1) und P4 (-1,-1) liegen. Ich hoffe das ist so korrekt.
Für die Rechnung ergibt sich nun folgendes:
c = wP1/z * P1 + wP2/z * P2 + wP3/z * P3 + wP4/z * P4
= 20/100 * (-1,1) + 10/100 * (1,1) + 50/100 * (1,-1) + 20/100 * (-1,-1)
x = 1/5 * -1 + 1/10 * 1 + 1/2 * 1 + 1/5 * -1
x = 0,2
y = 1/5 * 1 + 1/10 * 1 + 1/2 * -1 + 1/5 * -1
y = -0,4
Also kommt auf jedne Fall schonmal was unterschiedliches dabei raus.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:52 Di 22.11.2011 | Autor: | Stoecki |
deine zahlen halte ich für zu hoch. meine kann man mit dem hebelgesetz beweisen:
der hebel der oberen 30 kg muss um einem faktor k größer sein, als der der 70 kg unten.
also k*30 = 70
=> k = [mm] \bruch{70}{30}. [/mm]
bei deinen koordinaten ist der gesamthebel bzgl der y-achse 2 (von (0,1) zu (0,-1)
also [mm] \bruch{70}{30} [/mm] * h +h = 2 (h ist die hebellänge von den unteren beiden gewichten)
es folgt: [mm] h*(\bruch{70}{30} [/mm] +1) = 2
=> h = 0,6
damit wäre y = -0,4 = -1+h
analoge rechnung für x: [mm] h*(\bruch{40}{60} [/mm] +1) = 2
also h= 1,2
damit wäre x = -1 + h = 0,2
gruß bernhard
|
|
|
|
|
Alles klar,
vielen Dank. Ich werde es mir heute Abend nochmals in Ruhe anschauen.
Falls dies noch jemand anderes bestätigen kann der das besser als ich beurteilen kann wäre ich natürlich dnakbar :)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 12:10 Di 22.11.2011 | Autor: | Stoecki |
ich hab gerade noch mal über die konvexe linearkombination nachgedacht. die gewichte entsprechen genau dem gewichtsverhältnis und gleichen diese hebel aus. daher sollte der ansatz funktionieren.
gruß bernhard
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 08:43 Mi 23.11.2011 | Autor: | chrisno |
Hallo
ich versteh nicht, wie Du auf Deine Formel kommst. Die von Stoecki sehe ich sofort ein.
Eine Probe:
Nimm an, dass der Schwerpunkt auf der x-Achse liegt. Dann zeigen die Sensoren oberhalb und unterhalb das Gleiche an. Also brauchen wir nur einen Wert zu betrachten. Dann wird bei Dir:
[mm] $\Delta [/mm] x = [mm] \bruch{R}{L}$
[/mm]
Nun lege ich einen Gegenstand mit m = 30 kg so auf deine Waage, dass der Schwerpunkt näher bei dem linken Sensor liegt. Dabei soll das Verhältnis der Abstände zu den Sensoren 1 zu 2 sein. Dann muss der linke Sensor 20 kg und der rechte 10 kg anzeigen. Die Positionen der Sensoren seien -1 und 1. Dann liegt der Schwerpunkt bei [mm] $-\bruch{1}{3}$.
[/mm]
Deine Formel ergibt: [mm] $\Delta [/mm] x = [mm] \bruch{R}{L} [/mm] = [mm] \bruch{10}{20} [/mm] = 0,5$. Das ist kleiner als 1, also ist das Ergebnis 0,5 - 1 = -0,5 und nicht [mm] $-\bruch{1}{3}$.
[/mm]
Bei Stoecki ergibt sich: $z = [mm] \bruch{-20}{30} [/mm] + [mm] \bruch{10}{30} [/mm] = [mm] -\bruch{1}{3}$.
[/mm]
Das halte ich für richtig.
|
|
|
|
|
Hi,
wollte mich abschliessend nochmals melden. Vielen Dank nochmals für die Hilfe. Ich habe mir das mittlerweile auch nochmals genauer angeschaut, auf dem Papier mal nachgerechnet und auch in meiner Implementierung geändert. Danke!
@Stoecki Ich hatte meine Formel aus einer C-Bibliothek(wiic) die ich im Netz gefunden hatte. Ich habe Anfangs nur die Funktionalität übernommen und rein die grafische Ausgabe sah soweit in Ordnung aus. Erst als ich versucht habe die Formel zu verstehen und Alternativformeln versucht habe, kam ich auf dem Papier auf unterschiedliche Ergebnisse was Anlass zu diesem Thread war :)
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 08:17 Fr 25.11.2011 | Autor: | Stoecki |
kein Problem. was man draus lernt: traue keiner open source-bib
|
|
|
|
|
So jetzt habe ich doch noch ein weiteres Problem. Und zwar liegen meine 4 Sensoren jetzt nicht an :
P1 (-1, 1)
P2 ( 1, 1)
P3 ( 1,-1)
P4 (-1,-1)
sondern an den Stellen:
P1 (-21.5, 12)
P2 ( 21.5, 12)
P3 ( 21.5,-12)
P4 (-21.5,-12)
Meinem Verständnis nach kann ich hier aber genauso gut die von Stoecki vorgeschlagene gewichtete konvexe linearkombination.
Einziger Unterschied ist das ich nun als Ergebnis einen anderen Wertebereich bekomme:
Cx [mm] \in [/mm] [-21.5, 21.5] und
Cy [mm] \in [/mm] [-12, 12]
Ich könnte die Werte ja jetzt normalisieren indem ich sage
CN = (Cx/21.5, Cy/12)
und für CN gilt dann CNx, CNy [mm] \in [/mm] [-1, 1]
Ist das so korrekt?
Danke schonmal
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 10:07 Do 08.03.2012 | Autor: | chrisno |
Das ist in Ordnung so.
|
|
|
|