Nichtlinearität einer Kennline bestimmen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Nichtlinearität einer Kennline bestimmen (/Thread-Nichtlinearitaet-einer-Kennline-bestimmen) |
Nichtlinearität einer Kennline bestimmen - Lucki - 22.02.2010 19:37 Gegeben ist eine Kennlinie als Punktarray. Für die Bestimmung der Nichtlinearität bräuchte ich eine optimale Gerade durch diese Punkte. Für gewöhnlich werden die Koeffizienten a und b einer solchen Geraden a+bx nach der Methode der kleinsten Quadrate bestimmt, und hierfür gibt es ein fertiges VI. Leider ist das nicht das, was ich brauche. Gesucht ist die Gerade, bei der der Absolutwert der maximalen Differenz zu den Originalpunkten ein Minimum ist. Da es hier um Absolutbeträge geht, ist das Problem wahrscheinlich mathematisch nicht elegant lösbar, sondern nur mit ekelhafter Iteration. Das würde ich auch hinbekommen, nur: Was ich will, ist doch nichts anderes als die Nichtlinearität zu bestimmen, wie sie gängigerweise definiert ist, auch in einschlägigen Standards. Ergo müsste da irgendwo eine Lösung des Problem als fertiges VI herumliegen. Kann mir da jemand einen Tipp geben? Wo könnte man da fündig werden? Gruß Ludwig Nichtlinearität einer Kennline bestimmen - jg - 22.02.2010 22:33 Suchst du diese "beste" Gerade? [attachment=24606] Gruß, Jens Nichtlinearität einer Kennline bestimmen - Lucki - 23.02.2010 09:45 ' schrieb:Suchst du diese "beste" Gerade?Eine "beste Gerade" suche ich schon, nur nicht diese. Will mal an einem Beispiel verdeutlichen, was ich suche. Statt einer "Punktwolke" benutzte ich im folgenden Beispiel ein analytische Kurve, und statt eines ansteigenden, annähernd linearen Kurvenverlaufs benutzte ich eine symmetrische Parabel. Von diesen praxisfernen Vorgaben sollte man sich aber nicht irritieren lassen. Wenn ich also von der Parabel Y=0.1*x² im Bereich -10..+10 die Ausgleichsgerade nach der Methode der kleinsten Quadrate berechne, dann lautet deren Gleichung Y=3.4. Der maximale absolute Fehler zwischen Kurve und Ausgleichsgeraden beträgt 6.6. Ich suche aber diejenige Gerade, bei der dieser absolute maximale Fehler ein Minimum ist. Hier erkennt man ohne Berechnung sofort, daß das die Gerade Y=5 wäre. Der maximale Fehler zwischen Gerade und Kurve würde hier nur 5 betragen. In diesem Sonderfall diese Gerade zu erechnen ist ein Kinderspiel, aber wie macht man es allgemein? [attachment=24608] Nichtlinearität einer Kennline bestimmen - gottfried - 23.02.2010 10:46 Ich verstehe nicht, was Du gegen die Lösung von Jens hast? Kannst Du das Problem noch einmal verdeutlichen? Wie ich es verstehe: in irgendwelchen Normen ist die Nichtlinearität als Abweichung von einem Geradenfit nach der Methode Summe(min(abs(dy)) definiert. Na dann Tu es doch, ziehe von Deinen Punkten die Gerade ab und bewerte (Norm nachschlagen ... keine Ahnung) das Residuum. Oder? Nichtlinearität einer Kennline bestimmen - dimitri84 - 23.02.2010 13:44 ' schrieb:Wenn ich also von der Parabel Y=0.1*x² im Bereich -10..+10 die Ausgleichsgerade nach der Methode der kleinsten Quadrate berechne, dann lautet deren Gleichung Y=3.4.Was kommt denn raus, wenn man die Ring-Konstante anschließt mit der Methode "Minimieren von Residuum"? Wie bei Jens. (Ich find das VI für die Parabel nicht, sonst hätte ich es selbst ausprobiert.) Und mich würde auch interessieren wie das Bewerten vonstatten geht, wenn man denn endlich die passende "beste" Gerade vorliegen hat. Nichtlinearität einer Kennline bestimmen - Andora - 23.02.2010 14:45 [attachment=53039:Unliniarit_t.vi] ' schrieb:Was kommt denn raus, wenn man die Ring-Konstante anschließt mit der Methode "Minimieren von Residuum"? Wie bei Jens. zum Spielen Nichtlinearität einer Kennline bestimmen - Lucki - 23.02.2010 15:38 ' schrieb:Was kommt denn raus, wenn man die Ring-Konstante anschließt mit der Methode "Minimieren von Residuum"?Als ich das sah, dachte ich "das isses". Ist es aber nicht. Was da gamacht wird, weiß ich zwar nicht, aber auf jeden Fall kommt nicht das raus was ich möchte. Der Beschreibung nach geht es darum, den Einfluss von Ausreißern auf das Ergebnis zu verringern. Bei dem was ich will, würden gerade Ausreißer das Egebnis entscheidend beeinflussen. (Sie dürfen deshalb nicht vorhanden sein, gegebenenfalls wäre die Kurve vorher zu glätten.) Zitat:Und mich würde auch interessieren wie das Bewerten vonstatten geht, wenn man denn endlich die passende "beste" Gerade vorliegen hat.Die maximale Abweichung wird durch die Spanne (Xmax-Xmin) dividiert und das Ergegnis in Prozent ausgedrückt. Üblich ist dann allerdings die Angabe der "Linearität" = 100% -Nichltinearität. Soweit klar - nur: Man kann das alles von der X- oder von der Y- Achse aus machen. Bleibt die Nichtlinearität bei Vertauschung der Achsen gleich? Darüber muß ich mir noch Gedanken machen. Werde (in anderem Posting) noch ein Beispiel aus dem wirklichen Leben liefern, damit es verständlicher wird. Nichtlinearität einer Kennline bestimmen - Lucki - 24.02.2010 19:26 Hab das Problem inzwischen gelöst, Dank an alle, die mich hier unterstützt haben. Es war gar nicht so schwer. Ausgangspunkt ist die mittlere Gerade aus dem VI "Lineare Anpassung". Wenn ich die von der Originalkurve subtrahiere, dann erhalte ich ein horizontale, aber gewellte Kurve entsprechend der Nichtlinearität. Diese Kurve hat noch den Schönheitfehler, daß die Absolubeträge von Maximum und Minimum nicht gleich groß sind. (D.h.: Der Absolutbetrag der hieraus abgelesenen max. Abweichung lät sich also noch etwas reduzieren, wenn man die Kurve im Anstieg und Versatz etwas modifiziert) Ich habe deshalb, ausgehend von dieser Fehlerkurve, Anstieg a1 und Versatz a0 der Referenzgeraden iiterativ in kleinen Schritten verändert, bis das Optimum (=Minimum der maxmalen Abweichung) erreicht ist. Entscheidend war dabei die Erkenntnis, daß man nur einen Parameter iterativ optimieren muß: a1. Den Versatz ao muß man nicht iterieren, der läßt sich jederzeit rein rechnerisch leicht auf geich große Abweichungen zu beiden Seiten trimmen. Wenns jemand interessiert, hier das VI. (Beispielkurve ist als Standardwert gespeichert. Wens interessiert: Die Daten beziehen sich auf ein Galvanometer Typ 6860 von CTI) lv90 [attachment=24655] Nichtlinearität einer Kennline bestimmen - dimitri84 - 24.02.2010 20:05 ' schrieb:Die maximale Abweichung wird durch die Spanne (Xmax-Xmin) dividiert und das Ergegnis in Prozent ausgedrückt.Wer hat das so definiert? Ich finde da haben die Ausreißer aber 'nen ziemlich hohen Einfluss. Wieso nimmt man nicht den durchschnittlichen (anstatt den maximalen) Abstand der realen Kennline zur konstruierten Gerade? Fänd' ich aussagekräftiger. Aber Norm ist Norm ... Nichtlinearität einer Kennline bestimmen - Lucki - 24.02.2010 22:45 ' schrieb:Wer hat das so definiert? Ich finde da haben die Ausreißer aber 'nen ziemlich hohen Einfluss.Weiß nicht, ob es sich hier überhaupt um eine Norm handelt, es ist eher eine Definition, und außerdem nicht die einzige dieser Art. Eine primitivere Definitionen ist z.B. die "Endpunkt-Linearität": Durch die Endpunkt der Kennlinie wird eine Gerade gezogen, und die maximale Abweichung der Kurve von dieser Geraden, dividiert durch die Spanne, ist das Maß für die Linearität. In den Datenblättern werden, sofern es sich um Garantiewerte handelt, fast immer Maximalwerte, also Toleranzen, benannt und nicht irgendwelche mittleren Quadratsummen. Stell Dir vor: Die Kennline ist extrem linear, ausgenommen unmittelbar an einer der Grenzen des Bereichs. Da nützt es dem Anwender gar nichts, wenn er schriftlich hat, daß die über die gesamte Kennline aus den Quadratsumen berechnete durchschnittliche Abweichung einen ganz guten Eindruck macht: der Sensor ist Schrott. Es kann allerdings ein messtechnisches Problem geben: Ausreißer können auch aus Messfehlern bei der Kennlinienaufnahme resultieren, d.h. sie haben gar nichts mit dem Sensor zu tun. Der Linearitätswert würde dann durch die Messung sehr leicht verfälscht. Wenn damit zu rechen ist, dann muß eben durch Datenkonditionierung dafür gesorgt werden, daß solche Aureißer vorher eliminiert werden. Falls ich bei meinem Projekt dieses Problem haben sollte, dann weiß ich schon was ich mache: Die gemessenen Punkte (ca. 500) werden vorher durch ein Polynom 10 Grades approximiert. Das kostet mit LabVIEW überhaupt nichts, man muß das entsprechende VI nur dazwischenschalten. Gruß Ludwig |