Ich messe mit einer Quelle Strom und Spannung über einer Last, hier einmal über einem Widerstand. Nun sind die gemessenen Werte mit rauschen behaftet und die Quelle kann nicht mit beliebiger Genauigkeit eingestellt werden. Im Beispielplot sieht man eine Aufnahme der gemessenen Daten. Es sind die kleinen Cluster zu erkennen je nach eingestellter Spannung. Insgesamt handelt es sich also um eine Punktwolke, die eine Strom-Spannunsgkennlinie darstellt. Meine Frage ist nun was eine gute Interpolationsmöglichkeit wäre um für eine beliebige Spannung einen Strom zu berechnen. Zu beachten ist dabei, dass alle Messwerte letztendlich beliebig in einer 2D Ebene verteilt sein können. Idealerweise möchte ich für jeden interpolierten Punkt noch einen Fehlerbalken angeben können. Was wäre hier Ansätze oder wo kann ich anfangen zu recherchieren?
In Matlab und Tecplot gibts entsprechende Curve-Fits. Mit Python gehts bestimmt auch. Aber bei den paar Daten gehts bestimmt auch mit Excel. Datennplotten, Trendlinie hinzufügen. Es ist ja fast kinear, also wirst du mit einem Polinom 2. oder 3. Grades gut hinkommen. Was hast du denn bisher? Womit erfasst und plottest du deine Daten?
Stellst du den Strom oder Spannung ein? Deine Daten sind ja offensichtlich keine Punktewolke, sondern für jede Stromstufe hast du eine Streuung der Spannungswerte. Ich würde es glaube ich mal andersrum plotten, Spannung über Strom.
:
Bearbeitet durch User
Radial basis function wäre eins der zauberwörter. Ansonsten ist ein 2d curve-fit auch nicht außergewöhnlich kompliziert... Die Position und Anzahl der stützstellen ist aber durchaus kritisch. Mehr ist dabei nicht unbedingt besser. Sinc-interpolation kann auch sinnvoll sein, weil du dadurch einen glatteren/stetigeren Verlauf bekommst. Ist halt die Frage, was du später mit den Daten machst. 73
Nils B. schrieb: > Was hast du denn bisher? Womit erfasst und plottest du deine Daten? Die Daten kommen von einer Messelektronik in einem Textformat (CSV). Ich lese die mit Python (pandas) ein. Als ersten Schritt habe ich noch veruscht mal den Strom für gleiche Spannungswerte zu mitteln. Jeder der Werte ist am Ende diskret und es gibt pro Spannung immer mehrere Stromwerte je nach rauschen. Nils B. schrieb: > Es ist ja fast kinear, also wirst du mit einem > Polinom 2. oder 3. Grades gut hinkommen. Ja das ist hier nun linear weil ich einen Widerstand vermessen. Es muss nicht linear sein ich könnte ja auch nicht Lineare Lasten vermessen oder das externe Rauschen ist extrem hoch. Nils B. schrieb: > Stellst du den Strom oder Spannung ein? > Deine Daten sind ja offensichtlich keine Punktewolke, sondern für jede > Stromstufe hast du eine Streuung der Spannungswerte. Ich würde es glaube > ich mal andersrum plotten, Spannung über Strom. Ich stelle an der Quelle die Spannung ein und messe den Strom. Die Daten sind ja durchaus eine Punktwolke, wenn sie aus dem Sourcemeter kommen, nur befinden sich die Punkte eben annähernd um eine gerade.
Wenn du schon alles in Python hast, wird sich doch irgendein curve fit modul finden lassen oder zur Not eine Methode selber programmieren lassen. Ich finde aber deine Daten komisch. Du sagst, du stellst die Spannung ein, aber du hast zu jedem Messpunkt mehre unterschiedliche Spannungswerte mit nahezu gleichem Strom. Da frage ich mich wie das zustande kommt. Irgendwas ist faul am Versuchsaufbau oder der Datenerfassung. Warum ist dein Scatter in der Eingangsgröße soviel größer als der Scatter der Ausgangsgröße? Ein grundsätzliches Problem könnte außerdem sein, einen mathematischen Ansatz zu funden, der nicht nur diesen, sondern jeden Verlauf sinnvoll abbildet. Nicht ihne Grund gibt es ja verschiedene Ansätze, linear, polynomisch, logarithmisch usw. ChatGPT schon gefragt?
"es gibt pro Spannung immer mehrere Stromwerte je nach rauschen" Ich sehe pro Strom mehrere Spannungswerte.
Nils B. schrieb: > Ich finde aber deine Daten komisch. Du sagst, du stellst die Spannung > ein, aber du hast zu jedem Messpunkt mehre unterschiedliche > Spannungswerte mit nahezu gleichem Strom. Ja das ist auch klar, denn die ADCs liefern diskete Werte pro eingestelltem Spannungspunkt und messen nicht immer den gleichen Spannungswert. Die Auflösung der ADCs muss nicht zwangsweise gleich sein das macht meiner Ansicht nach schon Sinn.
Wenn ich mal feine Details aus dem Diagramm weg ignoriere, sehe ich folgendes: Die Spannung wurde in recht groben Stufen eingestellt, jedoch mit einer viel höheren Auflösung und erheblichem Rauschen gemessen wurde. Der Strom wurde mit einer zu geringen Auflösung gemessen. Eine Interpolation würde eine Messgenauigkeit vortäuschen, die nicht vorhanden war. Statt einer Linie müssee man einen Korridor einzeichnen, wie bei der Temperaturprognose der Wettervorhersage. Für den gewählten Bereich waren alle drei Geräte (Spannungsquelle, Voltmeter und Amperemeter) ungeeignet.
:
Bearbeitet durch User
Wenn das, was du dort gemessen hast, wirklich ein einfacher Widerstand ist, würde ich mir den Messaufbau nochmal vorknöpfen, und nicht an den Daten rummachen.
Nils B. schrieb: > Wenn das, was du dort gemessen hast, wirklich ein einfacher Widerstand > ist, würde ich mir den Messaufbau nochmal vorknöpfen, und nicht an den > Daten rummachen. Intern macht das Gerät einen Faktor 250 für die Spannungsmessung. Das sollte also überschlagen passen wenn man mal annimmt, dass der ADC anstatt 16 effektiv 15 Bit Auflösung hat.
Wie wurde denn gemessen? Immer auf/absteigende Reihen mit je einem Messpunkt pro Wert? Oder x Messerte hintereinander bei jedem Wert? Zeichne doch mal die Verbingskurven der Messwerte ein. Vielleicht sehen wir von Messreihe zu Messreihe auch nur die Erwärmung des Messobjektes oder des Messhunts? Und ich verstehe immer noch nicht warum die angeblich eingestellten Spannungswerte so eine große Streuung haben.
Das Verfahren nennt sich "lineare Regression". Allerdings scheint dein "Messverfahren" durchaus noch verbesserungswuerdig zu sein. Auch bei einer Ausgleichsrechnung gilt: "Murks rein" := "Murks raus".
Nils B. schrieb: > Wie wurde denn gemessen? Immer auf/absteigende Reihen mit je einem > Messpunkt pro Wert? Oder x Messerte hintereinander bei jedem Wert? > Zeichne doch mal die Verbingskurven der Messwerte ein. Es wurde ein Spannungswert eingestellt und X Messwerte gemessen (Hier 10). Dann wird der nächste Spannungswert angefahren. Nils B. schrieb: > Vielleicht sehen wir von Messreihe zu Messreihe auch nur die Erwärmung > des Messobjektes oder des Messhunts? Möglich das kann ich nicht überprüfen. Nils B. schrieb: > Und ich verstehe immer noch nicht warum die angeblich eingestellten > Spannungswerte so eine große Streuung haben. Nehmen wir an ich habe einen 16 Bit ADC mit differentiellem Eingang und 2,5V Referenzspannung. Dann entspricht ein LSB 5V / 2^16 = 76,3µV. Über einen Messwiderstand für die Spannung mit dem Faktor 250 entspicht ein LSB demnach 76,3µV * 250 = 19mV. Wenn man nun annimmt, dass der ADC nur 15 Bit effektiv hat und extern noch rauschen da ist kann man die Streuung erklären.
Wenn es immer mehre Messwerte für den gleichen Messpunkt sind, würde ich doch mal gucken, on es zufällig hin und herspringt oder sich tendenziell in eine Richtung bewegt.
Gustav G. schrieb: > Nehmen wir an ich habe einen 16 Bit ADC mit differentiellem Eingang und > 2,5V Referenzspannung. Dann entspricht ein LSB 5V / 2^16 = 76,3µV. Über > einen Messwiderstand für die Spannung mit dem Faktor 250 entspicht ein > LSB demnach 76,3µV * 250 = 19mV. Wenn man nun annimmt, dass der ADC nur > 15 Bit effektiv hat und extern noch rauschen da ist kann man die > Streuung erklären. Versuche es einmal mit einem "echten" Vorverstaerker. Dann musst du auch weniger "annehmen".
Motopick schrieb: > Versuche es einmal mit einem "echten" Vorverstaerker. > Dann musst du auch weniger "annehmen". Du hast recht aber der bringt nicht viel wenn man zum Beispiel einen Bereich von +-250V abdecken will. Dann kann man zwar für kleinere Bereiche die Auflösung erhöhen aber wird nach oben begrenzt. Wenn der Verstärkungsfaktor 1 ist dann wird es bei den 19mV bleiben oder verstehe ich es falsch worauf du hinaus willst?
Nils B. schrieb: > Wenn es immer mehre Messwerte für den gleichen Messpunkt sind, würde ich > doch mal gucken, on es zufällig hin und herspringt oder sich tendenziell > in eine Richtung bewegt. Das werde ich mal probieren. Das müsste man ja prüfen können indem man pro Spannungswert mal deutlich mehr Punkte aufnimmt.
Gustav G. schrieb: > ich es falsch worauf du hinaus willst? Ich wuerde Spannungsabfaelle ueber einem Messshunt ja auch nicht im 200 V Bereich eines Multimeters messen. Liegt der Shunt potentialmaessig "hoch", muss man eben entweder mit einem geeigneten Verstaerker "highside" messen, oder das Ganze potentialfrei machen.
Motopick schrieb: > Ich wuerde Spannungsabfaelle ueber einem Messshunt ja auch > nicht im 200 V Bereich eines Multimeters messen. Liegt der Shunt > potentialmaessig "hoch", muss man eben entweder mit einem > geeigneten Verstaerker "highside" messen, oder das Ganze > potentialfrei machen. Also der Shunt ist low side und der wird vorverstärkt es geht sich hier um die Messung der Spannung. Diese wird über einen Spannungsteiler gemessen der eben 250 Teilungsfaktor hat.
Was genau möchtest du denn haben? Ein datenbasiertes Modell? Z.B. eine stetige, geschlossen darstellbare Funktion f mit f(V)=I, wobei V die unabhängige, eingestellte Spannung, und I der gemessene Strom ist, oder ist es was anderes? Welche Größen sind fehlerbehaftet, beide? Das hat nämlich Konsequenzen auf die Methode, die genutzt werden soll. Meistens ist es eine Art von Least-Squares, siehe https://en.wikipedia.org/wiki/Least_squares. Ist aber die unabhängige Variable fehlerbehaftet, müsstest du eher https://en.wikipedia.org/wiki/Errors-in-variables_model und ähnliches nutzen. Eventuell ist das für dich aber auch überhaupt kein Problem hier, weil z.B. inkonsistente Schätzer hier egal sind. Mal doch mal eine Kurve in deine Daten, wie stellst du dir die vor?
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.