Hallo zusammen, ich bin gerade am verweifeln, beim Versuch Sensordaten zu nullieren. Bei einem Abstandssensor muss ich, unabhängig vom Abstand in der x-Achse (norm: x=31000) in y immer den selben Wert angezeigt bekommen. In der Zeichnung anbei habe ich das skizziert, d.h. in der oberesten Kurve soll unabhängig von x immer der Wert von y=31000 ausgegeben werden,also ca.0,9. Ich würde gerne über die Steigung den y-Wert einfach ausgleichen durch einfache lineare Addition, aber ich bekomme es nicht raus, wie man die Steigung in jeden Punkt aus den Daten auslesen kann und mathematisch beschreibt. Steh da leider gerade leider auf dem Schlauch. Es muss doch so funktionieren, weil ich es per Hand auch in etwa einzeichnen könnte ;-) Vielleicht habt ihr ja einen Tipp? Vielen Dank schon mal, Michael
Sollte es sich um Geraden handeln, die sich alle in einem gemeinsamen Ursprungspunkt treffen, musst du zunächst diesen Ursprungspunkt x0|y0 ermitteln. Von diesem Punkt ausgehend kannst du dann zu jedem x|y Paar auf den y-Wert zu x=31000 schließen y = y0 + (31000 - x0) * ((y-y0)/(x-x0))
:
Bearbeitet durch User
Sehr unklare Aufgabenstellung bzw. -Formulierung. Bitte beim nächsten Mal mehr Mühe geben. Ich habe es so verstanden: du suchst die Gleichung der Korrekturgeraden, die man zur Originalgeraden addieren muss, um auf eine konstante Funktion y=0,9 bzw. y=f(31000) zu kommen. Die Korrekturfunktion yk=ak+bk*x hat die negative Steigung der Originalgeraden. Und der Offset ak muss so gewählt werden, dass der Schnittpunkt bei x=31000 / y=0,9 liegt.
Die Koeffizienten der Trendlinienformel werden bei Excel mit den Standardeinstellungen nur auf 5 Stellen (z.B. 7e-06) ausgegeben und ist deswegen ungenau. Rechtsklick auf die Formel | Trendlinie formatieren und dann entweder: "Zahl" auswählen mit höherer Stellenzahl oder "Text", dann wird die Stellenzahl automatisch angepasst.
Vorn N. schrieb: > Sehr unklare Aufgabenstellung bzw. -Formulierung. > Bitte beim nächsten Mal mehr Mühe geben. > > Ich habe es so verstanden: du suchst die Gleichung der Korrekturgeraden, > die man zur Originalgeraden addieren muss, um auf eine konstante > Funktion y=0,9 bzw. y=f(31000) zu kommen. > Die Korrekturfunktion yk=ak+bk*x hat die negative Steigung der > Originalgeraden. Und der Offset ak muss so gewählt werden, dass der > Schnittpunkt bei x=31000 / y=0,9 liegt. Ja genau, das ist mein Ansinnen. Danke für die klarere Formulierung.
Joe F. schrieb: > Sollte es sich um Geraden handeln, die sich alle in einem gemeinsamen > Ursprungspunkt treffen, musst du zunächst diesen Ursprungspunkt x0|y0 > ermitteln. > Von diesem Punkt ausgehend kannst du dann zu jedem x|y Paar auf den > y-Wert zu x=31000 schließen > y = y0 + (31000 - x0) * ((y-y0)/(x-x0)) Die geraden haben leider keinen gemeinsamen Ursprung.
Korrektur: Und der Offset ak muss so gewählt werden, dass der Schnittpunkt bei x=31000 / y=0,9 liegt. Und der Offset ak muss so gewählt werden, dass der Schnittpunkt mit der x-Achse bei x=31000 / y=0,0 liegt. Es geht tatsächlich so, wie Joe es beschrieb: Für die blaue Linie lautet die Korrekturgleichung
1 | y = (0,382262-0,258359)/(31000-13100)*31000 - (0,382262-0,258359)/(31000-13100)*x |
2 | y = (0,382262-0,258359)/(31000-13100)*(31000-x) (vgl. Joe) |
3 | y = 0,214581 - 6,92196e-6*x |
Ein kleines Problem ist allerdings, dass die Steigung im ersten Abschnitt nicht genau gleich der Steigung im zweiten Abschnitt ist. Ich habe die mittlere Steigung der gesamten Geraden verwendet. Ggf. Fallunterscheidung, ob 1. oder 2. Abschnitt.
:
Bearbeitet durch User
Vorn N. schrieb: > Es geht tatsächlich so, wie Joe es beschrieb: > Für die blaue Linie lautet die Korrekturgleichung >
1 | > y = (0,382262-0,258359)/(31000-13100)*31000 - |
2 | > (0,382262-0,258359)/(31000-13100)*x |
3 | > y = (0,382262-0,258359)/(31000-13100)*(31000-x) (vgl. Joe) |
4 | > y = 0,214581 - 6,92196e-6*x |
5 | > |
> Ein kleines Problem ist allerdings, dass die Steigung im ersten > Abschnitt nicht genau gleich der Steigung im zweiten Abschnitt ist. > Ich habe die mittlere Steigung der gesamten Geraden verwendet. > > Ggf. Fallunterscheidung, ob 1. oder 2. Abschnitt. Danke für deine Antwort. Es geht schon so, wie du es dargestellt hast, nur leider habe ich die Sensordaten nicht so wie hier geplottet, sondern ich habe habe einen Sensorwert als Punkt, der irgendwo im Diagramm verortet ist. An dem Ort bräuchte ich dann die Steigung der Ausgleichsgeraden. Delta x habe ich ja durch 31000-x, nur das Delta y habe ich nicht, da den y-Wert bei 31000 für die Kurve nicht habe.
Michael F. schrieb: > Die geraden haben leider keinen gemeinsamen Ursprung. Auch nicht mit etwas "Spielraum" (sieht graphisch so aus)? Falls nicht hast du ein Problem, denn du kannst eine einzelne x|y Koordinate nur dann einer der Geraden zuordnen, wenn ein 2. Punkt auf der selben Geraden bekannt ist.
:
Bearbeitet durch User
Joe F. schrieb: > Michael F. schrieb: >> Die geraden haben leider keinen gemeinsamen Ursprung. > > Auch nicht mit etwas "Spielraum" (sieht graphisch so aus)? > Falls nicht hast du ein Problem, denn du kannst eine einzelne x|y > Koordinate nur einer der Geraden zuordnen, wenn ein 2. Punkt auf der > selben Geraden bekannt ist. Ja, das fürchte ich auch, dass die Gesetzte der Mathematik mir da einen Strich durch die Rechnung machen.
Michael F. schrieb: > dass die Gesetzte der Mathematik mir da einen > Strich durch die Rechnung machen nennt sich "Gleichung mit zu vielen Unbekannten". Aber wie gesagt, eigentlich sieht es schon so aus, als ob sich die Geraden irgendwo weit links aussen treffen... Wo kommen die Daten denn her (Anwendungsfall)?
:
Bearbeitet durch User
Dann musst du dir einen kleinen Memory (Array) anlegen, in dem Du ein paar Werte (Stützstellen) speicherst und daraus die Steigungen errechnest, ggf. mit Interpolation und Fallunterscheidung.
Wenn du mit einem Fehler von max. 0,32% für das Ergebnis leben kannst ist folgende Funktion für deine drei Beispielgeraden passend: y_31000 = 0,329084662 + (31000 + 71880) * (y - 0,329084662) / (x + 71880) Der zur Hilfe genommene (gemittelte) Schnittpunkt der 3 Geraden liegt dabei bei (-71880,0 | -0,329084662)
:
Bearbeitet durch User
Joe F. schrieb: > Wenn du mit einem Fehler von max. 0,32% für das Ergebnis leben > kannst > ist folgende Funktion für deine drei Beispielgeraden passend: > > y_31000 = 0,329084662 + (31000 + 71880) * (y - 0,329084662) / (x + > 71880) > > Der zur Hilfe genommene (gemittelte) Schnittpunkt der 3 Geraden liegt > dabei bei (-71880,0 | -0,329084662) Vielen dank für deine Berechnung. Mit welchem Programm hast du diesen Schnittpunkt errechnet? Ich habe leider nur Excel zur Verfügung und müsste bei neuen Daten das ja selbst errechnen...
Michael F. schrieb: > Mit welchem Programm hast du diesen > Schnittpunkt errechnet? Mit einer Tabellenkalkulation. Du musst halt über 2 (möglichst weit auseinanderliegenden Punkten) die Steigung (a) und den y-Wert bei x=0 (y0) ermitteln, um die Geradengleichung aufzustellen y = y0 + a * x Dann nimmst du jeweils 2 Gleichungen und setzt sie gleich, um den Schnittpunkt zu ermitteln y0_a + a_a * x = y0_b + a_b * x Aufgelöst nach x ergibt das die x-Koordinate des Schnittpunktes x = (y0_b - y0_a) / (a_a - a_b) x des Schnittpunktes setzt du dann in eine der Geradengleichungen ein und erhältst y des Schnittpunktes. Das machst du für mehrere Kombinationen von Geraden und mittelst dann die Koordinaten des Schnittpunktes. Michael F. schrieb: > und > müsste bei neuen Daten das ja selbst errechnen... Solange die neuen Daten zu den 3 Beispiel-Geraden passen (ähnlicher Schnittpunkt) musst du an der Formel eigentlich nichts ändern.
:
Bearbeitet durch User
Wow, vielen Dank für deine Hilfe. Ich muss mir das nochmal durch den Kopf gehen lassen, aber ich denke, dass ist die Lösung.
Ich habe dir hier mal beispielshalber eine 4. Gerade dazu fantasiert. Messwert wäre bei x=20000 y=0,6 Über die Funktion y_31000 = 0,329084662 + (31000 + 71880) * (y - 0,329084662) / (x + 71880) erhältst du auf dieser Geraden dann für x=31000 den y-Wert 0,711 (schwarze Linie)
:
Bearbeitet durch User
Joe F. schrieb: > Ich habe dir hier mal beispielshalber eine 4. Gerade dazu fantasiert. > > Messwert wäre bei x=20000 y=0,6 > Über die Funktion > y_31000 = 0,329084662 + (31000 + 71880) * (y - 0,329084662) / (x + > 71880) > > erhältst du auf dieser Geraden dann für x=31000 den y-Wert 0,711 > (schwarze Linie) Die von dir errechneten Werte bzgl. Koordinatennullpunkt haben einen fast perfekten Ausgleich der Sensordaten übergeben, viele Dank nochmal. Nun habe ich nochmal veränderte Sensordaten und wollte in Excel den Schnittpunkt selbst errechen, habe aber erstmal die gleichen Zahleninput verwendet. Leider komme ich auf einen anderen Schnittpunkt, nämlich 70980 (x) und 1,2096 (y). Welches Tabellenkalkulation hast denn du dafür verwendet? Ist finde das sehr eigenartig, bei dem lineraren Gleichugnssystem sollte es doch eingentlich keine so großen Unterschiede geben, oder?
Joe F. schrieb: > x des Schnittpunktes setzt du dann in eine der Geradengleichungen ein > und erhältst y des Schnittpunktes. Hier kommen, je nachdem in welcher der beiden Gleichungen den Schnittpunkt eingebe, verschiedene Werte raus. Wie kann das denn sein?
Michael F. schrieb: > Wie kann das denn sein? Dann ist dir beim Gleichsetzen und Auflösen der Geradengleichungen nach x ein Fehler passiert. Zeige mal den Rechenweg.
:
Bearbeitet durch User
Joe F. schrieb: > Michael F. schrieb: >> Wie kann das denn sein? > > Dann ist dir beim Gleichsetzen und Auflösen der Geradengleichungen nach > x ein Fehler passiert. > Zeige mal den Rechenweg. Ich habs genau so gemacht, wie du oben beschrieben. Im Bild die einzelnen Steigungen und Achsenabschnitte meiner 3 Kurven (1,2,4.
Ich kann das so nicht nachvollziehen, aber es muss ein Fehler in deiner Berechnung sein. Der Schnittpunkt muss sowohl vom x als auch vom y Wert her negativ sein, zumindest, wenn es sich um deine ursprünglich genannten Daten handelt.
1 | x1 y1 x2 y2 Steigung y0 (bei x=0) |
2 | Gerade G1 13100 0,258358955 31000 0,382262452 0,000006922 0,167680977 |
3 | Gerade G2 13100 0,402419441 31000 0,556392110 0,000008602 0,289735532 |
4 | Gerade G3 13100 0,679917928 31000 0,892776455 0,000011892 0,524138783 |
5 | |
6 | |
7 | x y |
8 | Schnittpunkt G1/G2 -72658,354 -0,335 |
9 | Schnittpunkt G1/G3 -71728,318 -0,329 |
10 | Schnittpunkt G2/G3 -71253,410 -0,326 |
11 | |
12 | Mittelwert -71880,027 -0,330 |
Der Schnittpunkt S einer Gerade A und B errechnet sich so: x_S = (y0_A - y0_B) / (s_B - s_A) y0_A und y0_B sind deine "Achsenabschnitte" (Schnittpunkt der Gerade mit y-Achse), s_A und s_B sind die Steigungen der Geraden A und B. Wenn du dann x_S in eine der beiden Geradegleichungen y_A = y0_A + s_A * x_S oder y_B = y0_B + s_B * x_S einsetzt, muss das gleiche für y_A und y_B herauskommen (= y_S)
:
Bearbeitet durch User
Hallo, sorry, ja war natürlich mein Fehler. Habe bei der Errechnung des x-Werts des Schnittpunkts im Nenner das falsche von einander subtrahiert, entschuldige bitte.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.