![]() |
---|
Hallo zusammen, benötige Hilfe. Bin dabei mir einen Temperaturfühler zu bauen und habe eine mV - Tabelle und das dazugehörige Polynom. Habe das Polynom in Excel eingegeben, um die Tabelle zu überprüfen. Leider war das Ergebnis ernüchternd. Wenn jemand sich zutraut dieses Polynom zu optimieren, der soll sich bitte melden- ein Unkostenbeitag ist möglich. A*(mV)^6 B*(mV)^5 C*(mV)^4 D*(mV)^3 E*(mV)^2 F*(mV) Tabelle: Bei entsprechendem (mV) soll das Polynom die angegebene Temperatur in der Tabelle ergeben. Das obere Polynom kommt leider nicht ganz hin. Tabelle im Anhang. Viele Grüsse Faro1 Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen." |
Hierzu passend bei OnlineMathe: Online-Übungen (Übungsaufgaben) bei unterricht.de: |
![]() |
![]() |
Ich geh mal davon aus, dass das in deinem Polynom nichts mit dem im Spaltenkopf deiner Tabelle zu tun hat. Letzteres bedeutet vermutlich Grad Celsius. Ferner gehe ich davon aus, dass die komischen Zahlen die du in der zweiten Zeile bei . stehen hast nur die sieben Koeffizienten deines Polynoms darstellen sollen - im Bild sind sie ein klein wenig besser erkennbar. Du willst also, wenn ich dich richtig verstehe, die Werte in deiner Tabelle, die offenbar einer Reihe von Temperaturen von -18°C bis 524°C einen Spannungswert (angegeben in mV) zuordnen, in eine möglichst gut passende Funktion gießen. Und zwar für die umgekehrte Zuordnung . Du hast, woher auch immer, eine Polynomfunktion sechsten Grade mit der du aus nicht näher erklären Gründen nicht zufrieden bist. Nahezu jede Kurvenanpassung wird "ungenau" sein, als idR keinen einzigen deiner Tabellenwerte genau treffen. Warum hast du dir gerade eine Polynomfunktion gewählt und warum eine vom Grad 6? Hast du Grund zur Annahme, dass deine Werte tendenziell einem Polynom folgen. Ich schätze es wird hier niemand bereit sein, all diese Werte abzutippen um dir eine bessere Funktion zu suchen. Du müsstest dazu schon entweder die Daten in einem leicht weiterverwendbaren Format irgendwo zum download bereitstellen, oder aber dein Glück selbst versuchen. ich kann dir dazu das genau darauf spezialisierte Programm "CurveExpert Professional" empfehlen. Du kannst davon eine Testversion beim Hersteller runterladen. Diese ist zwar, was Exportfunktionen anlangt eingeschränkt, wird aber für deine Zwecke reichen. Außerdem kannst du sie zum Testen gratis für 1 Monat (glaube ich) als Vollversion freischalten, danach ist sie weiterhin mit eingeschränktem (aber durchaus sehr brauchbarem) Funktionsumfang verwendbar. Kann Excel nicht ohnedies auch eine Polynomregression durchführen? Ich nehme an, dass du das ganze irgendwo reinprogrammieren möchtest. Warum dann der Aufwand mit der Funktionssuche?. Deine Tabelle scheint doch recht engmaschig zu sein. Übernimm sie einfach in dein Programm und verwende simple (lineare) Interpolation für Zwischenwerte. |
![]() |
Hallo Roman-22, das Format der Daten ist vorgegeben. Außer jpg, png... ist nichts erlaubt. Als Texteingabe wurde es in der Vorschau so verbogen dargestellt, dass ich es vorzog es als Bild einzufügen. In der Einleitung steht, dass ich mit den Ergebnisse nicht zufrieden bin, weil es bei einigen Messpunkte zu sehr hohen Abweichungen kommt von bis zu °C zwischen Ist- und Soll-Wert. Danke für den Hinweis der Software. Zum einen ist das nicht mein Fachgebiet und zum Anderen habe ich nict die Zeit mich in eine solche Software einzuarbeiten. Tabelle Download: www.hidrive.strato.com/share/2x-ig04ccz Gruss Faro1 |
![]() |
Ja, ich weiß. dass man hier in diesem Forum unverständlicherweise keine anderen Dateien außer bestimmte Bildformate uploaden kann und ich meinte daher auch einen externen Hoster. Als Text hättest du die Daten so zur Verfügung stellen können, dass du erst nur die komplette Spalte mit allen u-Werten und danach die Spalte der t-Werte einbindest. Die Bedienung des Programms ist ziemlich selbsterklärend - die beiden Datenspalten in das Formular, das wie eine Tabellenkalkulation aussieht, reinkopieren (u-Werte links in die Spalte, t-Werte in die Spalte) und dann "Tools" "Curve Finder" klicken. Das wars dann . auch schon. Das Programm geht dann eine Reihe verschiedener vordefinierter Funktionstypen durch und gibt dir danach die Liste der Funktonen, geordnet nach bestem Fit, an. Wenn ich mal Zeit habe werd ichs mit deinen Daten probieren, obwohl das Textformat und dort noch dazu die Mehrspaltigkeit eine direkte Verarbeitung verhindern. Du bist allerdings die Antwort auf ein paar Fragen schuldig geblieben. Woher stammt die Polynomfunktion? Und warum solls ausgerechnet eine Polynomfunktion sein? Wie groß dürfte denn die zulässige Abweichung maximal betragen? Was spricht gegen einfache lineare Interpolation? Bzw wie genau möchtest du die Funktion dann später verwenden? Hast du es selbst schon in Excel versucht? Nämlich einerseits deine Daten zu plotten um zu sehen, wie der Verlauf aussieht (dann kann man auch leichter entscheiden, von welcher Bauart die Funktion, mit der man sein Glück versucht, sein könnte. Und hast du schon versucht in Excel mit deinen Daten eine Regression durchzuführen? (Die Daten im ExcelFormat oder CSV-Format wären auch hilfreicher gewesen). |
![]() |
Hallo Roman-22, hier die Antworten. Woher stammt die Polynomfunktion? Antwort: Ist mir zugesandt worden mehr weiss ich leider auch nicht. Und warum solls ausgerechnet eine Polynomfunktion sein? Antwort: weil das nicht der einzige Fühler ist und sonst zu viel Speicher benötigt wird. Wie groß dürfte denn die zulässige Abweichung maximal betragen? Antwort: 1 °C geht °C wäre super genial Was spricht gegen einfache lineare Interpolation? Antwort: Das habe ich mir für Plan reserviert - bevorzugt ist ein Polynom Bzw wie genau möchtest du die Funktion dann später verwenden? Siehe oben (so genau, wie es nur eben geht) Mit Excel habe ich mir nur ein Tool gemacht, um das Polynom zu überprüfen Wie gesagt, es ist nicht mein Fachgebiet. Wenn das jemand bis zu 1 °C hinbekommt werde ich mich erkenntlich zeigen. Gruss Faro1 |
![]() |
Nun, Regresspolynome zu finden ist einfach und geht auch in Excel - glaub ich jedenfalls, denn ich verwende Excel eigentlich sehr ungern für mathematisch-technische Probleme. Das Polynom 6. Grades, welches mit gewöhnlicher Regression zu finden ist, hat allerdings bei deinen Daten eine Abweichung von °C bis °C. Hier machen kleine Änderungen durch runden oder abschneiden bei den Koeffizienten . bei schon recht viel aus. Die angegebenen Werte gelten für die von mir im Programm (In einem anderen) ermittelten Koeffizienten (die . mit den deinen übereinstimmen, aber eben doch etwas genauer sind). Wenn ich die von dir angegeben Koeffizienten nehme, erhalte ich Abweichungen von °C bis °C. Diese Abweichungen stellen sich beim ersten und beim letzten Wert ein mV und mV). Für eine maximale Abweichung von 1° benötigt man schon ein Polynom vom Grad für ° ein Polynom mit einem Grad von mehr als . Also wenns nur Polynome sein dürfen und kein anderer Funktionstyp, dann wirst du mit den relativ großen Abweichungen leben oder aber Polynome von höherem Grad verwenden müssen. Warum sollte ein anderer Funktionstyp als ein Polynom eigentlich mehr Speicher benötigen? Falls Polynome höherer Ordnung für dich ein Thema ist - im Abspann sind die Koeffizienten einer Polynomfunktion vom Grad mit Abweichungen von °C bis °C. Der erste Wert ist das freie Glied (die der letzte Wert ist der Koeffizient vom und wie du an der Größenordnung siehst, wirst du da möglicherweise gar nicht die nötige Genauigkeit bei der Implementation erreichen. Eine andere, gangbare Vorgangsweise ist, deine Kurve in zwei bis vier Abschnitte zu unterteilen und für jeden Abschnitt getrennt ein Polynom einzupassen. Ich denke, dass das die Genauigkeit erhöhen müsste (den Implementationsaufwand natürlich auch). Koeffizienten für ein Polynom vom Grad (beginnend mit jenem von bis zu jenem für Und falls es dich interessiert - hier die Koeffizienten, die mein Programm für das Polynom vom Grad 6 errechnet hat: |
![]() |
Hallo Faro1, Die Werte in der Tabelle beschreiben eine Parabel - also ein Polynom 2.Ordnung. Mit dem Nachteil, dass die Parabel gekippt ist und damit zur Wurzelfunktion wird. Das bedeutet auch, dass es bei den Werten im unteren Bereich die größten Schwierigkeiten gibt, da hier die Steigung sehr hoch wird. Die Parabel sieht aus wie im ersten Bild. Man sieht zwar keine Abweichungen, aber das liegt am großen Massstab. Das zweite Bild ist ein Diagramm mit den Unterschieden der Messwerte zu der idealen Parabel. Und dort sieht man den Ärger im unteren Bereich - wie vorhergesagt - aber auch eine Schwingung mit einer Amplitude von ca. 0,5Grad. D.h. auf eine Genauigkeit von 0,5Grad zu kommen ist mit einem Polynom illusiorisch und auch nicht sinnvoll. Du solltest auf jeden Fall noch mal die Messwerte prüfen. Diese Schwingung ist sicher aufgesetzt und kann u.U. beseitigt werden. Unterm Strich würde ich vorschlagen, dass man die Näherung aus einer Wurzelfunktion und einem Polynom 6.Ordnung zusammensetzt. Dann kommt man IMHO auch unter 1Grad Näherung. Die Wurzelfunktion lautet: Fragen: Wie kommst Du zu den Messwerten - sind die mit mehr als einem Sensor ermittelt worden? Benötigst Du den gesamten Bereich - insbesondere bis -18Grad? Gruß Werner |
![]() |
Ganz entsprechen die Werte keiner Wurzelfunktion, aber fast. Mit deiner Funktion kommt es zu Abweichungen im Bereich von °C bis °C, wie deine zweite Grafik ja auch zeigt. Wenn man sich nicht auf eine Quadratwurzel beschränkt und wenn man noch ein quadratisches Glied nachschießt, um im oberen Bereich ein wenig aufzuräumen und zu glätten, kommt man mit einer recht einfachen Funktion mit nur vier Parametern auf eine maximale Abweichung von nicht ganz °C, Das ist schon recht ordentlich. Bild Und wenn man sich zwei unterschiedliche Polynomfunktionen sechsten Grades gönnt, kommt man ebenfalls in diesen Bereich und könnte natürlich mit Erhöhung des Polynomgrads weitere Zehntelgrade rausschinden. Bild |
![]() |
Hallo Werner, hallo Roman-22, Roman-22 - erst einmal danke für Deine Mühe. Antwort zu Deiner Frage Werner: die Angaben in der Tabelle sind echte Werte, die am Sensor ermittelt wurden. Die Anregung die Tabelle zu unterteilen haben ich auch überlegt. Das würde bei der Fülle sehr viele verschiedene Sensortypen geben. Liegt auch als Plan bereit, wenn es keine bessere Lösung gibt. Die Lösung mit einer Wurzelfunktion gefällt mir gut, wenn der Fehler überall nicht höher ist als 05°C bis maximal 1°C. Frage: Welche Alternativen und elegante Lösungen bieten sich für die Aufgabe hier an, um so präzise wir möglich diesen Verlauf nachzubilden? Es sind noch sehr viele ähnliche Tabellen mit ähnlichem Verlauf, die integriert werden müssen. Wenn es nur um diese eine Tabelle ging, wäre es kein Problem. Bei der Menge ist das aber nicht möglich, zumal ich nicht weiss, ob morgen noch welche hinzukommen. Ich benötige viel Speicher im Controller für das Betriebssystem selbst. Viele Grüsse Faro1 |
![]() |
Welche Alternativen und elegante Lösungen bieten sich für die Aufgabe hier an, um so präzise wir möglich diesen Verlauf nachzubilden? Wie genau meinst du das? Wie du in meinem letzten Post gesehen hast, kommst du mit einer Funktion der Bauart zu einem sehr guten Ergebnis. Ebenso mit der Aufteilung in zwei Polynome sechsten Grades. Die Koeffizienten müssten natürlich für jeden neuen Datensatz auch neu angepasst werden und Garantie, dass sich der absolute Fehler auch bei jedem neuen Datensatz bloß im Bereich +. °C bewegen wird, gibts klarerweise keine. Die bequemste und allgemein gültigste Variante ist sicher die lineare Interpolation. Du musst dazu ja auch nicht die gesamte Tabelle mit ihren Wertepaaren heranziehen, sondern kannst die Tabelle ja ein wenig ausdünnen. Obwohl die rund Wertepaare pro Sensor ja auch keine sooo riesige Datenmenge darstellen. Eine lineare Interpolation ist sicher rasch und einfach implementiert und danach ist für jeden neuen Sensor nur noch sein Profil in Form dieses lookup tables einzubringen. Solange du mit Funktionen hantierst musst du dich sonst eben für jeden neuen Sensor rechnerunterstützt herumspielen bis du passende Parameter für die Funktion ermittelt hast und Garantie dafür, dass ein Funktionstyp für alle Sensoren passend ist, gibts auch nicht. |
![]() |
Hallo Roman-22, sende mir bitte per E-Mail eine Kontakt- E-Mail-Adresse, wo ich dir was zusenden kann. Gruss Faro1 |
![]() |
Nö, aber wenns sein muss kannst du ja per PM einen Downloadlink schicken |
![]() |
nööö, muss nicht sein! |
![]() |
Hallo Faro1, Du schreibst. "Antwort zu Deiner Frage Werner: die Angaben in der Tabelle sind echte Werte, die am Sensor ermittelt wurden." Das ist mir schon klar. Die Frage bezieht sich eher darauf, wie verlässlich diese Daten sind. Wie hast Du die Temperatur gemessen? Wie oft wurde gemessen? Mit wie viel verschiedenen Temperatursensoren? Einen Bereich von -18 bis +500Grad auf ein halbes Grad genau abzubilden ist schon ziemlich anspruchsvoll. Und an Diener Stelle würde ich mir zunächst mal Gedanken über diese Schwingungen machen. Die kosten Dich schon mal per se mindestens ein halbes Grad Genauigkeit. Gruß Werner |
![]() |
Hallo Werner, die Werte sind absolut korrekt und verlässlich mit sehr viel Mühe ermittelt.Keine Störungen keine Schwingungen alles läuft korrekt. Diese Elktronik ist schon lange mit allen möglichen verschiedenen Fühlern im Einsatz. Ich habe heute die Berechnungen von Roman-22 überprüft und bis zum Wert °C stimmt es rechnererisch auf unter 1°C erstaunlich genau. Diese Polynome müssen nun noch in die Software und dann mit den Fühlern verglichen werden. Natürlich ist zwischen Theorie und Praxis immer Spielraum. Ich mache das schon viele Jahre und lebe von dieser Tätigkeit. Hardwaremäßig ist alles ok. Was mir gefehlt hatte ist die Abbildung der Tabelle. Gruss Faro1 |
![]() |
Hallo Faro1, versteh' mich nicht falsch. Ich möchte Deine Messwerte nicht anzweifeln. Aber gibt Dir diese ziemlich regelmäßige Schwingung - und die ist ohne Zweifel vorhanden - nicht zu denken? Gruß Werner |
![]() |
"die Werte sind absolut korrekt" Das nennt man dann vermutlich Wunder - keine Toleranzbereiche gibts nicht. Schon mal garnicht über so weite Spannen. |
![]() |
Wenn Du Wunder suchst, empfehle ich Dir die katholische Kirche. Diese Tabelle ist vom Hersteller erstellt worden und jeder Wert dieser Tabelle bildet den Durchschnittswert aus vielen Messungen an baugleichen Sensoren. Diese Fühler haben (laut Datenblatt ) eine Wiederholgenauigkeit von typisch °C. Hallo Werner, ich habe noch nicht verstanden, wie Du aus einer Tabelle ein Schwingen herleiten willst. Meine Frage hier war aber eine andere, diese ist mittlerweile beantwortet worden und deshalb schieße ich hier ab. Gruß Faro1 |